Hold exactly one schema in force over a scope; never hold a second beside it.
Take the schema that chain reaches as the schema in force; never read another source once that schema is in hand.
Count a missing or unreadable target as a chain reaching no schema; never stop the resolution on one.
Read the project's configuration file at .claude/memento.yaml when the chain reaches no schema; never look elsewhere for a project's own schema.
Take the shipped default — the schema at config/default.yaml in this plugin — when the project has no configuration file; never treat a missing configuration file as a missing schema.
Take the whole of whichever source answers first; never merge two sources.
Let a project's configuration file replace the shipped default outright; never fill a gap in one source from another.
Find the schema's own kind, home, and tier declared beside every other kind; never place the schema outside what it declares.
Let the pointer in the charter bring the schema along with it; never copy the schema's content into that file.
Take the schema as the owner's own declaration; never author one in the owner's place.
Amend the schema on the owner's word; never amend it otherwise.
Record what each amendment replaced; never leave it unrecorded.
Check a record on three points: that its kind is one the scope admits, that it sits at the home that kind gives, and that its provenance matches the declared form; never pass a record on fewer.
Leave the event kinds to event-capture and the checking depth to record-promotion; never apply either declaration here.
Take a configuration file's own kind, home, and provenance form from the shipped default; never take them from that configuration file itself.
Resolve the schema in force before a configuration file's own check; never hold resolution for that check.
Keep the shipped default outside a scope's records; never count it as one.
Check the shipped default against nothing; never search for a schema behind it.