← The board

N5 What connects to what

Area
N — Companion
Audience
operator
Kind
feature
Status
accepted
Maturity
built
Labels
mobile, extensibility, ux
Requires
N1F4F5
Relates to
F2F6F7F9N2

The feature in the specification · Read at

Requirements

  1. N5-R1acceptedMUST

    A contested capability MUST be presented as a choice naming every claimant, and the app MUST NOT settle it — by default, by install order, or by any ordering of its own.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhatSettledIt.phptests/Feature/ChoosingWhoAnswersTest.phptests/Feature/WiringTheServicesTest.php
    cited by
    lemonfiber-companion@7b59164c23lemonfiber-companion@faa9f4b139lemonfiber-companion@328e73f19c
  2. N5-R2acceptedMUST

    Before the choice is made, the app MUST state what the stack reaches for now and what it would reach for after.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/AFill.phpapp-modules/sdk/src/Api/Substitutions.phptests/Contract/ChoosingAFillerContractTest.phptests/Feature/ChoosingWhoAnswersTest.php
    cited by
    lemonfiber-companion@7b59164c23
  3. N5-R3acceptedMUST

    A choice MUST be recorded as the operator's, and a settlement the stack made MUST NOT be presented as one the operator made.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhoSettledIt.phpapp-modules/sdk/src/Api/Links.phptests/Contract/LinkingContractTest.phptests/Feature/WiringTheServicesTest.php
    cited by
    lemonfiber-companion@dd3bd68ad3
  4. N5-R4acceptedMUST

    A substitution MUST state what it would leave unfilled before it is agreed to, naming each service and the capability it would lose.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/AFill.phpapp-modules/kernel/src/Api/WhatNothingFills.phptests/Contract/ChoosingAFillerContractTest.phptests/Feature/ChoosingWhoAnswersTest.php
    cited by
    lemonfiber-companion@7b59164c23
  5. N5-R5acceptedMUST

    A capability nothing fills MUST be shown as a state with what is asking for it, and MUST NOT be presented as a fault or omitted because nothing is broken.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/Unfilled.phpapp-modules/kernel/src/Api/WhatNothingFills.phptests/Feature/WiringTheServicesTest.php
    cited by
    lemonfiber-companion@dd3bd68ad3lemonfiber-companion@faa9f4b139
  6. N5-R6acceptedMUST

    A by-name wiring MUST be shown as by-name and MUST carry the reason it was made.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/HowItReaches.phptests/Feature/WiringTheServicesTest.php
    cited by
    lemonfiber-companion@dd3bd68ad3lemonfiber-companion@faa9f4b139
  7. N5-R7acceptedMUST

    The app MUST NOT offer to create a wiring a plugin is forbidden to create (F4-R12).

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/sdk/src/Api/Fillers.phptests/Feature/ChoosingWhoAnswersTest.phptests/Arch/TheAppOpensOnlyTheseDoorsTest.php
    cited by
    lemonfiber-companion@7b59164c23
  8. N5-R8acceptedMUST

    A catalogue entry MUST carry what the household is without it, and MUST NOT be presented as a name and a description alone.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhatAServiceIsFor.phpapp-modules/sdk/src/Api/Catalogues.phptests/Feature/SeeingWhatEachServiceIsForTest.php
    cited by
    lemonfiber-companion@8ec163a4ealemonfiber-companion@80550703ad
  9. N5-R9acceptedMUST

    A service removed from the catalogue MUST name what replaced it where the contract carries one.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/AServiceDropped.phpapp-modules/kernel/tests/Api/TheCatalogueTest.phptests/Feature/SeeingWhatEachServiceIsForTest.php
    cited by
    lemonfiber-companion@8ec163a4ealemonfiber-companion@80550703ad
  10. N5-R10acceptedMUST

    A plugin install MUST carry its provenance at the moment it is offered, and an install the core refuses MUST be shown with the refusal rather than omitted.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhatVouchesForAPlugin.phpapp-modules/operator/resources/views/components/the-plugin.blade.phptests/Feature/WhatExtendsThisStackTest.php
    cited by
    lemonfiber-companion@1dbd1d426d
  11. N5-R11acceptedMUST

    An install in progress MUST NOT be rendered as installed until the core reports it.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/APluginInstall.phptests/Feature/WhatExtendsThisStackTest.php
    cited by
    lemonfiber-companion@1dbd1d426d
  12. N5-R12acceptedMUST

    The app MUST hold no copy of the capability vocabulary, and MUST render the names, states and consequences the core answers with.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/Capability.phpapp-modules/kernel/src/Api/HowItSettled.phptests/Contract/LinkingContractTest.php
    cited by
    lemonfiber-companion@dd3bd68ad3
  13. N5-R13acceptedMUST

    Where the wiring cannot be read, the app MUST say so and MUST NOT render the stack as settled.

    locked by
    0.18.0 met
    recorded done
    lemonfiber-companionapp-modules/kernel/src/Api/WhatTheLinksSaid.phptests/Contract/EveryAdapterAnswersWhatItCannotReadTest.phptests/Feature/WiringTheServicesTest.php
    cited by
    lemonfiber-companion@dd3bd68ad3