phase-skeleton.md, kind-container.md and kind-story.md restated — the skeleton phase and the container kinds
Three packs that a skeleton pass loads together — the phase and the two container kinds. Measured with REGISTER.count.py at origin/main a9caaa1:
| pack | lines | cautionary | prescriptive | ratio |
|---|---|---|---|---|
phase-skeleton.md | 246 | 9 | 1 | 9.0x |
kind-story.md | 251 | 7 | 1 | 7.0x |
kind-container.md | 51 | 0 | 0 | — |
| total | 548 | 16 | 2 | 8.0x |
They are one card because a pass planning an epic's stories or a story's subtasks concatenates all three, so a rule restated in one and left cautionary in the next reads as inconsistent to the same reader in the same prompt.
phase-skeleton.md is one long rule with many limbs, not many rules. The dependency-arrow rule's head — every blocked_by edge is between two siblings of the same kind under the same parent; each level carries its own graph; the graph is a DAG — is method and stays. Around it hang: the no-legal-lift limb, the reuse-axis direction, the UI-versus-non-UI question, the measurement limb, the host-surface limb, the design-allocation corollary, the readiness cascade, the never-a-done-parent limb, the same-level audit and its three valid fixes. Each is a keep-or-migrate decision on its own.
kind-story.md carries the independent-testable-Story rule, the Story-level journey audit, a STORY MAY SPAN REPOSITORIES, the story boundary, and the canonical-composition material. kind-container.md is one rule — plan along the user journey — and already scores zero cautionary, so its likely disposition is restated for voice, nothing migrated; say so in its row rather than leaving it out of the table.
Two limbs to keep whatever the register says, because a plan pass cannot be run without them: the readiness cascade (a node is ready ⟺ its parent is ready AND every sibling blocker is done) and the three valid fixes when the audit fires (lift / re-file / split at the seam). Both are decision procedures rather than warnings, and both are what a pass actually executes.
Same discipline as the proof pack: keep means the imperative with no incident narrative, no > **Warrant:** block and no fixture pointer; migrate means the body goes to the lesson store and the one-line directive stays; a limb whose lesson row is not yet written is marked pending and its text left in place.
Acceptance criteria
RESTATEMENT.mdgains one section per pack — three sections — each with a table row per unit or named limb, carrying the disposition, the before/after line count, and for a migrate the destinationsourceRef.- The dependency-arrow head, the readiness cascade and the three valid fixes survive as instructions with their decision content intact; the PR body quotes the restated readiness-cascade sentence in full so a reviewer can check nothing was lost from it.
kind-container.mdhas a row stating its measured 0 cautionary and what, if anything, changed.- Every migrated paragraph is verbatim under
#restatementinprompts/plan-rules/fixtures/<pack>.mdfor its own pack.fixtures/kind-container.mddoes not exist ata9caaa1; create it only if that pack migrates something. python3 prompts/plan-rules/REGISTER.count.py phase-skeleton kind-story kind-container, at this card's base and again on the result, with both sets of figures and the base ref in the PR body.- No cross-pack move: a rule that lives in
phase-skeleton.mdstays there. If restating one makes a different pack the better home, record that in the table as an observation and leave the text where it is. COMPRESSION.conserve.pyis expected to FAIL on the packs this card re-words; quote it, cite MOTIR-3377, and change no rule text to chase it.- The change lands via a branch and a PR against
main; no direct commit.
Context refs
motir-metaprompts/plan-rules/phase-skeleton.md·kind-story.md·kind-container.md.motir-metaprompts/plan-rules/fixtures/phase-skeleton.md·fixtures/kind-story.md— the existing conservation fixtures to append to.motir-metaprompts/plan-rules/RESTATEMENT.md·REGISTER.count.py.motir-metaprompts/plan-procedure.md— steps 1-3 declare these three as the skeleton phase's read set; the restated wording has to still answer what those steps ask of it.- MOTIR-3308 — the worked example of the table and the restated voice.