Step 1 of milestone 410 "One owner per piece of guidance". The later steps
delete duplicate copies of agent guidance; this guard stops the last copy of
a topic going with them.
- tests/test_guidance_ownership.py holds the registry: 30 topics from the
ownership map in decision #4027, each with its owner and marker phrases,
and one definition of a delivered surface (_INSTRUCTIONS, tool docstrings,
each skill, the static context, the adapter commands, the live session
context).
- The loss guard: every topic is stated in full, with all its markers
together, on at least one delivered surface. A miss names the nearest
partial match.
- The owner column is recorded but not asserted yet; step 6 adds the
exactly-one-owner guard once the moves are done.
- test_the_loss_guard_can_fail proves split and absent markers are reported
(rule 167).
- The old DISPLACED_TOPICS list in test_instruction_surfaces_agree is folded
in, so there is one list rather than two.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>