core.md's planning rules and its plan-time-gates index restated — the second half of the always-injected pack
The other half of the always-injected pack — everything in core.md outside the gate checklist: the file header and its two read-order notes (lines 1-45), the ## Planning rules body (lines 460-795), and the ## The plan-time gates destination index (lines 796-820). Applying the epic's two marker lists to that region gives 406 lines, 16 cautionary, 8 prescriptive, of a whole-file 820 / 42 / 13 measured with REGISTER.count.py core at origin/main a9caaa1.
blocked_by the gate-checklist card for one reason: both edit core.md, and two branches holding the same 820-line file open produce a conflict on every hunk. Take your base AFTER that card has merged, re-derive the region boundaries from the file as it then stands — the line numbers above are from a9caaa1 and the sibling will have moved them — and re-measure before you start.
Four units, plus the header:
- Recommend the BEST solution, not the quickest — a standing stance the planner applies on every recommendation. Method.
- The decision-authority ladder — the rung model for who decides what. Method, and one of the constants the mirror carries.
- Plan WITH the project's coding conventions — read the repo's
CLAUDE.md, plan to its architecture. Method wrapped in incident. - CARDINALITY is an assumption too — ask how many, and what decides that. Method with a standing instance.
- The plan-time gates index (796-820) is pure navigation: seventeen destinations plus the note explaining why "below" no longer means below. It carries 0 cautionary markers already and should mostly survive as-is; where a destination moved because of this rollout, re-point it.
Same disposition discipline as the sibling: keep means state it in the imperative with no incident narrative, no > **Warrant:** block and no fixture pointer; migrate means the body goes to the lesson store and a one-line residue stays. Where a lesson row is not yet written, mark the row pending and leave the text.
Do not touch the gate NUMBERS or the gate checklist region. If restating a rule down here changes what a gate should point at, change the pointer, not the gate.
Acceptance criteria
RESTATEMENT.mdgains acore.md — the planning rulessection with one row per unit and per named limb, each carrying its disposition, before/after line count, and for a migrate the destinationsourceRef.- Every kept unit reads as an instruction; the recommend-the-BEST stance and the decision-authority ladder survive with their decision content intact, not compressed into a slogan.
- The
## The plan-time gatesindex still resolves: every one of its seventeen destinations names a pack that carries that gate's rule after this card and its sibling have both landed, verified by opening each. - Every migrated paragraph is verbatim under
#restatementinprompts/plan-rules/fixtures/core.md, appended after the sibling's block rather than replacing it. python3 prompts/plan-rules/REGISTER.count.py coreat this card's base and again on the result: the whole-file cautionary count falls further and prescriptive rises; both pairs and the base ref are in the PR body, alongside the sibling's figures so the two halves read as one movement.- The PR body states the region boundary respected — first and last line touched — and confirms nothing landed inside the gate checklist.
COMPRESSION.conserve.py coreis expected to FAIL; 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/core.md— lines 1-45 and 460-820 ata9caaa1; re-derive after the sibling merges.motir-metaprompts/plan-rules/RESTATEMENT.md·fixtures/core.md·REGISTER.count.py.motir-aisrc/llm/planningRulePacks.ts—DECISION_AUTHORITY_LADDER,CODING_CONVENTIONS_AND_ONE_REPO_ONE_PR,CAPTURE_PLANNING_MISTAKES,SEARCH_THE_LESSONS_IN_TAKEAWAY_REGISTER,AUTHOR_ONE_CARD_AT_A_TIME— read-only here, to see which of these units the mirror carries before you re-word them.core.md's per-card gate checklist restated — the sibling whose merge is this card's base.