Requirements
The app MUST open on the overall verdict, and MUST render unknown as its own answer rather than as healthy or as an absence.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/HowItStands.phpapp-modules/kernel/src/Api/Standings.phptests/Feature/SeeingHowAStackIsTest.php
- cited by
- lemonfiber-companion@78dd109fddlemonfiber-companion@8ec163a4ealemonfiber-companion@80550703adlemonfiber-companion@d137cea4d1lemonfiber-companion@9f865bf626lemonfiber-companion@b3f8f43fe1lemonfiber-companion@5c544bc666lemonfiber-companion@1913829674lemonfiber-companion@ad2b24592elemonfiber-companion@45169cea94
Findings MUST be ordered by severity, worst first.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/operator/src/Internal/Screens/HowThisStackIs.phpapp-modules/health/src/Api/Queries/WorstFirst.phpapp-modules/health/tests/Api/Queries/WorstFirstTest.phptests/Feature/SeeingAStacksFindingsInOrderTest.php
- cited by
- lemonfiber-companion@87c78a4855lemonfiber-companion@3b394eb57dlemonfiber-companion@bc0047724a
Every finding shown MUST carry its plain-language meaning and its remedy, in the words the core produced. Its code MUST be available from it and MUST NOT lead (G4-R4): a finding about a service MUST carry its code to the log view it opens, and a finding about the machine MUST carry it in the detail at the foot of the finding.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/CouldNotSay.phpapp-modules/sdk/src/Api/Reports.phpapp-modules/kernel/tests/Api/FindingTest.phpapp-modules/sdk/tests/Api/ReportsTest.php
- cited by
- lemonfiber@23ed612364lemonfiber-companion@de072c486dlemonfiber-companion@47a294a046lemonfiber-companion@87c78a4855lemonfiber-companion@3b394eb57dlemonfiber-companion@691151ca5clemonfiber-companion@cd3fcf6a08lemonfiber-companion@de822caa91lemonfiber-companion@a4a70bcd04
Where the core offers a repair, the app MUST offer it, and MUST state what it does, what else it affects, and whether it can be undone, before asking for confirmation.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/EffectSaysNothing.phpapp-modules/sdk/src/Api/OfferIsUnreadable.phpapp-modules/kernel/tests/Api/ConfirmedTest.phpapp-modules/kernel/tests/Api/MendedTest.php
- cited by
- lemonfiber-companion@8ec163a4ealemonfiber-companion@80550703adlemonfiber-companion@f03149f9eflemonfiber-companion@149bd6a9a4lemonfiber-companion@9f865bf626lemonfiber-companion@941f5f8342lemonfiber-companion@f74ed250edlemonfiber-companion@8136512700lemonfiber-companion@c8e0ccf8calemonfiber-companion@2adfebfc16lemonfiber-companion@2e6395f29alemonfiber-companion@32a4d65d4e
A repair MUST NOT be carried out without an explicit confirmation distinct from the act of viewing the finding.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Confirmed.phpapp-modules/dx/src/Internal/WhatTheWireWouldAnswer.phpapp-modules/kernel/tests/Api/ConfirmedTest.phpapp-modules/kernel/tests/Api/MendedTest.php
- cited by
- lemonfiber-companion@eb09710ffclemonfiber-companion@f03149f9eflemonfiber-companion@149bd6a9a4lemonfiber-companion@de822caa91lemonfiber-companion@c8e0ccf8calemonfiber-companion@2adfebfc16lemonfiber-companion@32a4d65d4elemonfiber-companion@76b1eb691a
A repair confirmed against one reading MUST NOT be carried out if the reading has changed; the app MUST refuse and re-offer.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/HowAgreedWorkIsGoing.phpapp-modules/sdk/src/Api/Menders.phpapp-modules/kernel/tests/Api/ConfirmedTest.phpapp-modules/kernel/tests/Api/OfferTest.php
- cited by
- lemonfiber@33ea43f663lemonfiber-companion@734b5be4e8lemonfiber-companion@c8e0ccf8calemonfiber-companion@2adfebfc16lemonfiber-companion@32a4d65d4elemonfiber-companion@76b1eb691a
The app MUST offer start, stop and restart by form and by service.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Daemon.phpapp-modules/kernel/src/Api/HowAServiceRuns.phpapp-modules/kernel/tests/Api/AgreedToTest.phpapp-modules/kernel/tests/Api/DaemonTest.php
- cited by
- lemonfiber-companion@88328508f5lemonfiber-companion@1a5c1a267alemonfiber-companion@8ec163a4ealemonfiber-companion@80550703adlemonfiber-companion@1c7d31be3flemonfiber-companion@f3ffe45e8dlemonfiber-companion@8c3236d6a3lemonfiber-companion@acac2246bclemonfiber-companion@de4ed2afd7lemonfiber-companion@1771a43a3flemonfiber-companion@9f865bf626lemonfiber-companion@f74ed250edlemonfiber-companion@8136512700lemonfiber-companion@c8e0ccf8calemonfiber-companion@2adfebfc16
A disruptive action MUST state what it disturbs, and MUST state the bound on the disturbance the stack reported or that the stack reported none (B2-R16), before it is confirmed. The app MUST NOT estimate a duration of its own.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/AgreedTo.phpapp-modules/sdk/src/Internal/Costs.phpapp-modules/kernel/tests/Api/AgreedToTest.phpapp-modules/kernel/tests/Api/DaemonTest.php
- cited by
- lemonfiber-companion@c7aa0f5b77lemonfiber-companion@83be3ba32dlemonfiber-companion@f0c16ed27clemonfiber-companion@c6e5977291lemonfiber-companion@47a294a046lemonfiber-companion@4f4a568ef3lemonfiber-companion@8ec163a4ealemonfiber-companion@80550703adlemonfiber-companion@acac2246bclemonfiber-companion@e9311c476dlemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43lemonfiber-companion@8136512700lemonfiber-companion@3d66181a0f
Stuck downloads, provider health, disk pressure and VPN verification MUST each be reachable.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Stage.phpapp-modules/sdk/src/Api/Stalls.phpapp-modules/kernel/tests/Api/HowMuchIsShownTest.phpapp-modules/kernel/tests/Api/StageTest.php
- cited by
- lemonfiber-companion@c25cd9120elemonfiber-companion@f03149f9eflemonfiber-companion@70b3f11f25lemonfiber-companion@21308d4695lemonfiber-companion@d63dfcaf83lemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@4b51add1d7lemonfiber-companion@f74ed250edlemonfiber-companion@8136512700lemonfiber-companion@de822caa91lemonfiber-companion@4cc7a5304b
Logs MUST be offered as a bounded, searchable read, MUST name the service, and MUST state that the view is a window rather than the whole.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/HowManyLines.phpapp-modules/sdk/src/Api/LineIsUnreadable.phpapp-modules/kernel/tests/Api/AboutWhatTest.phpapp-modules/kernel/tests/Api/HowManyLinesTest.php
- cited by
- lemonfiber-companion@c6e5977291lemonfiber-companion@de072c486dlemonfiber-companion@f5e2b5d557lemonfiber-companion@ca4d83973alemonfiber-companion@47a294a046lemonfiber-companion@8ec163a4ealemonfiber-companion@80550703adlemonfiber-companion@de4ed2afd7lemonfiber-companion@f74ed250edlemonfiber-companion@8136512700lemonfiber-companion@625ae74917lemonfiber-companion@de822caa91
Requests awaiting a decision MUST be surfaced with enough to decide on, and MUST be approvable and refusable from the app.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Decided.phpapp-modules/kernel/src/Api/HowARequestStands.phpapp-modules/kernel/tests/Api/DecidedTest.phpapp-modules/kernel/tests/Api/RequestedTest.phpapp-modules/kernel/src/Api/WhatARequestIsCalled.phptests/Feature/SeeingWhatTheHouseholdAskedForTest.php
- cited by
- lemonfiber-companion@da105d58a3lemonfiber-companion@458dd86e29lemonfiber-companion@f03149f9eflemonfiber-companion@b9d060606elemonfiber-companion@f74ed250edlemonfiber-companion@8136512700lemonfiber-companion@ea7fa11002
The app MUST NOT offer to set or change a credential's value.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/sdk/tests/Api/SupervisorsTest.phptests/Arch/TheAppOpensOnlyTheseDoorsTest.php
- cited by
- lemonfiber-companion@8a6bac1655lemonfiber-companion@5a286ac227lemonfiber-companion@ebf258b1cclemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43lemonfiber-companion@8136512700lemonfiber-companion@de822caa91lemonfiber-companion@2e6395f29alemonfiber-companion@5567a07a5blemonfiber-companion@3956ff5927lemonfiber-companion@bc0047724a
A reading older than the current session MUST carry its age wherever it is shown, including on the opening verdict.
Where the contract does not carry something a requirement here asks the app to state, the app MUST NOT substitute a value of its own; the gap MUST be raised against the contract (N1-R17) and the requirement MUST be answered there.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Daemons.phpapp-modules/sdk/src/Api/Households.phpapp-modules/sdk/tests/Api/UpkeepersTest.phptests/Arch/WhatTheContractDoesNotCarryTest.php
- cited by
- lemonfiber-companion@8cdbc61f06lemonfiber-companion@734b5be4e8lemonfiber-companion@73bbe5aab3lemonfiber-companion@e5ec8250b7lemonfiber-companion@87c78a4855lemonfiber-companion@3b394eb57dlemonfiber-companion@691151ca5clemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@c34cac6f42lemonfiber-companion@ef7d16cc43lemonfiber-companion@8136512700lemonfiber-companion@de822caa91
The app MUST report where the stack stands on updates — current, with updates available, or how the last update ended — as the stack reported it (E1), and MUST NOT derive that answer by comparing version strings of its own. Whether the release notes match the running build is a separate fact (N14-R7) and MUST NOT be reported as the stack's standing.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/AgainstThePins.phpapp-modules/kernel/src/Api/Standings.phpapp-modules/sdk/tests/Api/StandingsTest.phptests/Contract/KeepingCurrentContractTest.php
- cited by
- lemonfiber-companion@9fd5d52ff6lemonfiber-companion@594227ad72lemonfiber-companion@9f865bf626lemonfiber-companion@e9311c476dlemonfiber-companion@21308d4695lemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@4b51add1d7lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43
Where an update is pending, the app MUST distinguish a release the household will notice from one it will not, and MUST NOT present a withdrawn release as an update.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Release.phpapp-modules/kernel/src/Api/Standings.phpapp-modules/sdk/tests/Api/StandingsTest.phptests/Contract/KeepingCurrentContractTest.php
- cited by
- lemonfiber-companion@594227ad72lemonfiber-companion@e9311c476dlemonfiber-companion@9b691a667blemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43
Applying an update MUST be confirmed before it runs, and the confirmation MUST name the services it would change.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/KeepingCurrent.phpapp-modules/operator/src/Internal/Screens/HowCurrentThisStackIs.phpapp-modules/sdk/tests/Api/StandingsTest.phpapp-modules/sdk/tests/Api/UpkeepersTest.php
- cited by
- lemonfiber-companion@73bbe5aab3lemonfiber-companion@594227ad72lemonfiber-companion@8c3236d6a3lemonfiber-companion@825970cdb0lemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43
The app MUST report how an applied update ended for each service, and MUST distinguish updated, not fetched, not started and not reached from one another rather than reporting a single failure.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/HowItEnded.phpapp-modules/sdk/src/Api/Upkeepers.phpapp-modules/sdk/tests/Api/StandingsTest.phpapp-modules/sdk/tests/Internal/EndingsTest.php
- cited by
- lemonfiber-companion@4d3cc07381lemonfiber-companion@73bbe5aab3lemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43
Where an update can be undone, the app MUST say which way it can be undone — a rollback and a restore are not one offer — and MUST NOT offer undoing where the stack named neither.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/HowAServiceTookIt.phpapp-modules/kernel/src/Api/Standings.phpapp-modules/sdk/tests/Internal/EndingsTest.phptests/Contract/KeepingCurrentContractTest.php
- cited by
- lemonfiber-companion@5bbb9efe0alemonfiber-companion@73bbe5aab3lemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43
The app MUST NOT apply an update the stack did not report as pending, and MUST NOT offer to apply one where the stack reported the version in use is current.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/AgainstThePins.phpapp-modules/kernel/src/Api/Standings.phptests/Feature/SeeingHowCurrentAStackIsTest.phptests/Feature/TypesThatMustNotMeetTest.php
- cited by
- lemonfiber-companion@594227ad72lemonfiber-companion@9b691a667blemonfiber-companion@4f42694f94lemonfiber-companion@bb85e6460elemonfiber-companion@8d40d48158lemonfiber-companion@aa5aaa07e4lemonfiber-companion@ef7d16cc43
Where the stack reports containers running on the machine that its own configuration does not declare, the app MUST make them reachable, MUST name each and state what it is running, and MUST NOT present one as part of the stack or offer a verb against it.
Where the stack reports that a change an update would make cannot be undone, the confirmation MUST say so before it is agreed to, and MUST name the services it is true of.
While a start the operator asked for runs, the app MUST show what the stack says it is waiting for, from the start lines on the event stream, and MUST NOT put a progress indicator of its own in their place (B2-R2).
The app MUST offer fetching a form's images ahead of starting it, and before the fetch runs MUST say that it may take long and may use a lot of the line, without putting a duration or a size of its own on either (B2-R12, B2-R16, N2-R8). What the fetch came to MUST be shown from the stack's answer.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/Disturbances.phpapp-modules/sdk/src/Internal/Costs.phpapp-modules/operator/src/Internal/Presenters/HowAVerbReads.phptests/Feature/DecidingWhatToDoWithOneThingTest.phpapp-modules/kernel/src/Api/WhatToDoWithIt.phpapp-modules/kernel/tests/Api/DaemonsTest.phpapp-modules/kernel/tests/Api/WhatIsRunningTest.php
- cited by
- lemonfiber-companion@c7aa0f5b77lemonfiber-companion@8ec163a4ealemonfiber-companion@80550703ad
The operator MUST be able to open the member's application as a member with the household's default access and allowance would see it, drawn in the member theme from what the core answers for such a member (D6-R20). It MUST be marked as a preview on every screen, and MUST NOT show a named member's requests, allowance or watch history.
The member's application opened as a preview (N2-R25) MUST NOT send any request, allowance spend or other change to the stack. A control that would do so on a member's own session MUST be drawn and MUST NOT be usable, with a note saying a preview cannot do it.
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companiontests/Feature/PreviewingTheMembersSideTest.php
- cited by
- lemonfiber-companion@6867af0fec
A confirmed update and a confirmed restart MUST carry back the offer the stack answered with when the operator was shown what each would do (ARCH-R164). Where the stack refuses the agreement because that offer has moved, the app MUST NOT report it as a failure, MUST read again what the action would do, and MUST offer that for a fresh agreement, as for a repair (N2-R6, ARCH-R142).
- locked by
- 0.20.0 met
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/AnOffer.phptests/Contract/KeepingCurrentContractTest.phptests/Contract/SupervisingContractTest.phptests/Feature/FollowingWhatAVerbCameToTest.phptests/Feature/SeeingWhatAnUpdateTakenHereCameToTest.php
- cited by
- lemonfiber-companion@7e25093fc6
The operator MUST be able to see what the household is playing now. It MUST list every session the media server reports. Each session MUST name the member, the title or the series, season and episode, the device, and whether it is paused. The list MUST be kept current from the stack's playing event without the operator asking again. It MUST say plainly when nothing is playing, and MUST say when it last heard where the stream has stopped. A member MUST NOT be shown this list or any other member's session.
The operator MUST be able to choose, for the whole household and for each member, what happens to what they ask for and how many requests a period allows, in the stack's words (D7-R1, D7-R2). The change MUST be rehearsed first and the rehearsal MUST show what would change, labelled as a rehearsal (N6-R1); only a separate act MUST apply it. Naming only a limit MUST leave the policy as it is, and naming only a policy MUST leave the limit as it is. It MUST be offered only on the operator's side.
- locked by
- no version locks it yet
- recorded done
- lemonfiber-companionapp-modules/kernel/src/Api/AnAllowanceChange.phpapp-modules/sdk/src/Api/Allowers.phpapp-modules/operator/src/Internal/Screens/WhatTheHouseholdIsAllowed.phptests/Contract/ChoosingWhatTheHouseholdMayAskContractTest.phptests/Feature/ChangingWhatTheHouseholdMayAskTest.php
Where the stack warns about a choice rather than a fault, the app MUST offer accepting it, and before it is accepted MUST show what the stack says the choice costs and MUST take an explicit confirmation distinct from viewing the finding (N2-R5). An accepted warning MUST stay readable as accepted and MUST NOT be presented as resolved (G7-R14). The app MUST NOT offer accepting a fault, or a warning the stack does not raise in that answer. It MUST be offered only on the operator's side.
Where the stack reports moves in place an update would take (ARCH-R299), the update's confirmation MUST name each one, the stack's own service and the plugin that would take its place, apart from the services the update would change (N2-R17), before it is agreed to.
The app MUST report what became of each move in place an applied update tried, as taken or as not taken, and where one was not taken MUST state why in the stack's words. A move MUST NOT be reported as how a service took the update (N2-R18).
Where what a start came to names moves in place on offer (ARCH-R299), the app MUST name each one, the stack's own service and the plugin that would take its place, and MUST say that a start does not take it and an update does.