Knowledge is a planning-time input, not a runtime one. The planning agent
reads the knowledge base while producing a plan and writes the relevant parts
into the plan itself; the implement workflow then works only from the plan. So
the knowledge base shapes what gets planned, and the plan, not a live lookup,
is the contract the implementation is held to. This keeps implementation
reproducible: the same plan builds the same thing, regardless of how the
knowledge base changes afterwards.
One registry is the single source of truth for the category model. The six
categories and their tiers are declared once, in code. That single declaration
scaffolds a new project’s directories and READMEs, decides each category’s
retrieval behaviour, and tells the assistant where a new entry belongs. Adding
a category, or moving one between tiers, is a change in exactly one place.
Two tiers, split by how knowledge is retrieved. Always-applied knowledge
(conventions, glossary) is the small set every plan must reflect and the
vocabulary needed to read everything else, so it is loaded in full each time.
Looked-up knowledge (architecture, gotchas, learnings, decisions) is the
larger reference body, fetched only when a query matches it. Because tier
membership lives in that one registry, re-tiering a category is a single,
self-consistent action: the full-load reader starts including it and search
stops returning it at the same moment, so the two behaviours cannot drift
apart.
De-duplication is exact, not fuzzy. When the same knowledge is written more
than once, the mechanical check for “this is already here” matches on exact
byte-identity rather than a similarity score. That is deliberate, because
lexical similarity does not track meaning: “always retry” and “never retry”
are nearly identical text but opposite instructions, while “add jitter to
retries” and “randomize backoff intervals” share almost no words yet say the
same thing. Exact matching claims the one thing it can prove, that two entries
are byte-for-byte the same, and leaves every genuinely semantic judgement to a
human or the assistant, which is where that judgement belongs.
Sources are layered, most-specific first. When several scopes hold
knowledge about the same thing, the most specific one wins: a project entry
overrides a team entry, which overrides a global one. A refinement is resolved
in favour of the most-specific source and noted rather than hidden, while a
genuine disagreement between sources is surfaced as a conflict instead of being
silently resolved.