Skip to content

The Two Pillars: Extraction and Delivery ​

Governance is two questions. What are the rules? When does the model see them? Extraction answers the first. Delivery answers the second. Everything else in edikt serves one of the two.

EXTRACTION — what are the rules?DELIVERY — when does the model see them?Your decisionsADRs — a choice with a rejected alternativeInvariants — a property that always holdsGuidelines — a default with a named exceptionplain markdown, yoursExtractorone sentence per rule · force · intentnever invents, never paraphrasesSidecardirectives with provenance — the source line/edikt:gov:compiledeterministic merge · drift and grounding measuredcompiled surfacesAmbient corealways loaded — the non-negotiablesTopic filesloaded when a matching file is touchedSkill packagesloaded when the task calls for the topicread by judgementthe modelthe workat the end of a phasePhase-end reviewverifies the work against the same directivescites the directives it used — uncited ones are pruned by evidenceedikt does not inject on every edit and does not deny writesIt blocks exactly one thing: edits to its own managed regions. Delivery is “load the right rules, then check the work.”

Extraction: from your decisions to rules a model can follow ​

You write decisions, invariants and guidelines in plain markdown. edikt extracts each into directives: one sentence per rule, its force stated as must or should, its intent, the line it came from, and the observation that would prove it broken.

The extractor never invents and never paraphrases. Every directive traces back to a sentence you wrote, and you can follow the trace in the sidecar next to the artifact.

Quality is measured, not assumed. Compile checks that every directive is grounded in its source, that the source still says what the directive says, and that nothing has drifted since the last extraction.

You ownedikt owns
Inputartifacts that extract well: the right kind (invariant, decision, guideline), one rule per sentence, force and intent statedthe extractor, its contract, and its pins
Output—the sidecar, the compiled surfaces, the drift report
Measured by—grounding, provenance, drift, double-loading

Delivery: the right rule in front of the model at the right time ​

Rules reach the model on three surfaces, chosen by when each rule is needed:

  • The ambient core. A small set of non-negotiables, loaded in every session.
  • Topic files. Loaded when the model touches a file matching the topic's paths.
  • Skill packages. Loaded when the task calls for the topic, before any file is touched.

The model reads them by judgement. Then, at the end of a phase, a review verifies the work against the same directives and cites the ones it used.

Delivery is load the right rules, then check the work. It is not block the keystroke.

What edikt does not do ​

edikt does not inject rules into every edit and does not deny writes. Deterministic checks in the write path are flaky, fire on correct code, and their effect on behaviour was never measured. The one delivery mechanism with a measured effect is the ambient core: in the counter-pattern experiment, loading it moved rule-following from zero of nine sessions to four of seven, against a codebase that demonstrated the violation. That is what edikt ships and stands behind.

edikt blocks exactly one thing: edits to its own managed regions in the files it generates. It says so when it does.

How the pillars meet ​

Extraction quality is delivery cost. Every directive extracted is a directive loaded, so an artifact that extracts into noise is paid for on every session. Two tools keep the two honest:

  • The session tally shows which rules were in scope for the files you touched.
  • Prune by evidence. A directive that a review never cites is a candidate for removal, decided by the count, not by opinion.

Where to go next ​

Released under the Elastic License 2.0. Free to use, not for resale.