Why: 1929ffd and b9c7762 preserved every constant, hook ID and error string,
but two don't-re-litigate notes were lost. Both were guard-rails — they fired
from preloaded context, before the mistake. Restoring the sentence to an
on-demand spec doc restores the text without restoring the function, since an
on-demand file is opened after a plan is formed, not before.
Implementation notes: placed by when each note must fire, not by what it is
about.
- "Do not expect `apm pack` to refresh the .github/plugin/marketplace.json
mirror" now lives in the DRIFT failure message of the script and hook that
already catch that exact mistake. It costs no preloaded tokens, fires at the
moment of the error, and cannot be missed. No test asserts on that message;
--check and shellcheck both pass.
- Plugin self-containment has no gate that fires on it, so it goes in
architecture.md's Plugin model beside "self-contained plugin units", stated as
the constraint it is rather than a description, with the two consequences that
make it load-bearing: the duplicated Vale styles (ADR-0014) and ADR-0020's
constants copied into three validators.
Impact: the every-session set is unchanged — neither note returns to AGENTS.md.