On rules that must be
read to bind.
This document secures the truth that a rule does not govern by existing; it governs only when it is read at the moment it applies.
Whereas the cross-cutting invariants hold across every Project, each Project shall accumulate its own non-negotiables that do not generalise: banned tokens, sentence locks, regulatory triggers, and cross-repo coupling.
These Articles establish how such directives shall be captured, so that they fire at the right moment, and are not sprawled into the common file nor left to memory alone.
Of the single directives note.
For each major Project, a single directives note shall be maintained.
The note shall map each invariant to its canonical source, and shall not restate the rule. It shall point to where the rule lives, that the canonical artefact remain the source of truth and the note not drift.
The note shall map each surface to its specialist: when work touches surface X, consult source Y, dispatch agent Z. The triggers shall live beside the invariants, not buried in the descriptions of the agents.
The note shall hold an append-only learning log. Each time a slip occurs that the existing canon should have caught, it shall be written down: what happened, what canon should have fired, why it did not, and what calibration is learned.
Of the founding principle.
Rules existing somewhere shall not be held to enforce them.
It is rules being read at the right moment, and not rules being written down, that shall be held to bind.
No note, standing alone, shall be deemed enforcement. A note without a firing mechanism is but another file that may be forgotten.
Of when a note shall be created.
No directives note shall be raised before a Project has crossed the threshold of need.
A Project shall be held to have crossed the threshold when any of these obtain: three or more project-specific invariants exist that the cross-cutting file does not cover; a specialist agent has been built that fires only on this Project's surfaces; a failure has occurred where the rule existed but did not fire; or the Project spans multiple repos with cross-coupling rules not obvious from any single repo.
Below the threshold, the Project's invariants shall live in memory entries and canonical files alone. To add a directives note before then is overhead, and shall not be done.
Of where the note lives and how it fires.
The note may live in any place consultable, but it shall not stand without a firing mechanism.
The location shall matter less than the mechanism that surfaces the note. A vault, a docs/directives.md within the repo, or a synced markdown file shall each suffice as a home.
Two mechanisms are ordained, in order of strength. First, the Memory Pointer: a small entry in MEMORY.md naming the note's path and its trigger conditions, which survives sessions and relies upon the Hand reading its memory at the start of each. Second, the Hook upon tool use: a PreToolUse hook in settings.json that fires on a matching Write or Edit, mechanical and not dependent upon the Hand remembering, at higher cost of setup but stronger enforcement.
Of the failure from which this was extracted.
This pattern shall be remembered as drawn from a real failure, not from theory.
Em dashes were written into a public-facing page though the brand voice file had held a zero-tolerance rule for above a year. The rule existed, was discoverable, and was correctly written; it was simply not read before the drafting.
The post-mortem narrowed the cause to two: the work was framed as implementing a design, which routed the Hand toward design-token files and away from voice files held to be a different class of canon; and the specialist agent that exists to catch such drift required dispatch, there being no mechanism to fire it on writes to the surface. The first gap is closed by extending the cross-cutting Ground-in-canon rule to cover voice and style files; the second, broader gap, by this pattern and its firing mechanism.
Of portability and maintenance.
This document describes a pattern, and not an instance; the pattern shall travel across machines, but the instances shall not.
Over canon itself shall come this pattern doc, the cross-cutting invariants, the principles, and the framework. There shall not come any specific Project's directives note, the pointer that fires it, the hook that enforces it, nor the canonical files of a Project that lives elsewhere. On a fresh machine the deploy shall be: clone canon and read the prose; identify which Projects have crossed the threshold, knowing most will not; create a note for each that has; and wire its firing mechanism per that machine's setup.
The note is a derived view: its pointers are not the source of truth, the linked files are. When a canonical source moves, the pointer shall be updated and the rule not restated. The learning log alone is append-only. Quarterly, every invariant shall be checked to still hold a live canonical source, resolved log entries shall be pruned, and it shall be asked whether any recurrence-prevention candidate from the log has been adopted.
These Articles may be amended in the open, as a charter shows its revisions.
The cursor waits for the next hand.