Skip to content

Independent R&D project · Cologne

Back to the COADF overview

Governance templates

Three templates and one description. All four are practice rather than mechanism, and all four are published in full.

AI agent charter

When agents write production code they need the governance a developer has, and a little more. The ladder is about how much an agent may do before a person looks. The list under it is about what nobody delegates, at any rung.

The autonomy ladder

  1. L1 · Supervised

    The agent proposes and a person reads every line before it merges. The default for every new agent.

  2. L2 · Semi-autonomous

    The agent implements inside a defined ticket scope and a person reviews the pull request. Reached after three L1 cycles with no fence violation.

  3. L3 · Autonomous within guardrails

    The agent implements, tests and opens the pull request; a person reads the test results and the guard output. Requires mature fence coverage and a track record. Rare, and it should stay rare.

Never autonomous

A person decides these, at every rung of the ladder.

  • Database schema changes.
  • Security configuration: authentication, secrets, network.
  • External interface contracts, where the change breaks a caller.
  • Changes to an output format that a regulation reads.
  • Deletion of anything in the audit trail.
  • Changes to the fence system itself.

The agent's source of truth

Architecture documentation first, then the key registry, then the fence system, then the ticket scope. Where two of them disagree, the higher one wins, and the disagreement is written down rather than resolved silently.

Audit trail schema

The record written at every step, published in full. A trail that cannot be read by somebody who did not build the system is not a trail, so the field names are part of the framework rather than an implementation detail.

FieldMeaning
trace_idThe identifier of P-4, the same value on every entry that belongs to one transaction.
timestampWhen the step happened, as a timestamp with its offset.
event_typeWhich kind of step: intake, extraction, validation, confidence assessment, human verification, publication, access.
actorWho acted, and of what kind: the system, a person, or an agent.
inputWhat the step was about: the document, the attribute.
outputWhat the step produced: the value, its confidence, the extraction method.
decisionWhere a person acted: what they did and the reason they gave.
source_hashA digest of the source the step read, so the same input can be recognised later.
immutableThe entry is never edited. A correction is a new entry that supersedes it.

Fence registry, a published subset

A published subset of the project's own registry, with the identifiers the project actually uses. Each entry carries an identifier, the rule, how the rule is enforced and its current status. The full registry is longer and stays internal: some of its entries name what they protect, and a list of what is watched is a map of what is guarded.

The identifiers are the operational ones. An earlier edition of the framework document printed an eight-row illustrative table under the same numbers with different rules; that template is retired, every one of its rules was carried across to the identifier that now holds it, and nothing was lost in the renumbering.

FenceRuleEnforcementStatus
F-03Values derived by a language model always carry the method they were extracted by and never reach a published output without human verification.Automated check, on every changeEnforced
F-04A required attribute with no evidence is never fabricated and never defaulted.Automated check, on every changeEnforced
F-05No real personal or company documents in code, fixtures, tests or commits.Scope: The guard covers export-document access keys and issuer data. It does not cover every identifier shape, and the residue is carried internally as its own gap.Automated check, on every changeEnforced
F-08A passport carrying a low-confidence or missing required attribute is never published; the publication gate is code, not a habit.Automated check, on every changeEnforced
F-09No database schema change without a migration and a working downgrade.Automated job, on every changeEnforced
F-13The tenant and trace identifiers travel with every request and every stored row.Scope: The request-path half is tested. The stored-row half is not asserted column by column, and is carried internally as its own gap.Automated check, on every changeEnforced
F-14Code and identifiers in English; reader-facing copy in five locales, with every key present in every one.Automated check, on every changeEnforced
F-16Interface copy never asserts legal conformity or an unverified fact; an attestation renders as an attestation and never as a verification.Automated check, on every changeEnforced
F-18A trace identifier on every console interface response, errors included; an incoming one is honoured rather than reminted.Automated check, on every changeEnforced
F-22Every factual claim on a public surface resolves to a primary source or to a named test.Automated check, on every changeEnforced
F-23The running site loads only same-origin resources and sets exactly one cookie, for language.Automated check, on every changeEnforced
F-37Every crawled public page meets WCAG 2.2 AA in a real browser.Automated job, on every changeEnforced
F-02No new infrastructure service beyond the agreed set, and no new dependency without a named section in the change request.Named person, at mergeManual
F-10No merge with failing checks.Named person, at mergeManual
P-4-not-null-columnsEvery stored row carries the tenant and trace identifiers as required columns.Nothing todayGap
P-5-disclosure-renderedA published output whose attributes include a machine-extracted one always renders the disclosure line.Nothing todayGap

The confidence engine, in words

The engine is given an attribute, a value, the method the value was extracted by, and the documents it came from. It returns the attribute, the value, a confidence level, the provenance and whether a person verified it. Three levels exist, the lowest never reaches a published output, and where evidence is absent the engine returns nothing at all rather than a level.

Not published

The table that maps an extraction method to a level, and the rules that combine several sources, stay in the internal edition. What is above is the description a reader needs in order to understand the architecture. It is deliberately not a specification anybody could build from.

Public feedback

Disagree with an assumption, found a source issue, or applied this in practice? Contributions are reviewed before publication and stay linked to this version.

Give feedbackPublic feedback on this page

COADF · Compliance-Oriented AI Development Framework · Version 2.2 · September 2026

COADF is publicly documented as a development framework. No authority has assessed, audited or endorsed it.

Proposed licence: CC BY-SA 4.0 for the text, MIT for the schemas. Not yet granted.

COADF, by L. C. Hogrefe (AnyLAI), version 2.2, 2026

About the author

IP and publication status