Status: Drift-control manifest for the Agentic Architecture Audit package.
This manifest records the intended relationship among the files in this package and the procedure that keeps them from drifting apart. The authority texts are the profile directive and the audit specification. The companion documents are derived guidance and must be updated when the authority texts change. If a companion document conflicts with an authority text, the authority text wins.
| File | Role | Current target |
|---|---|---|
profile-directive.md |
Profile snapshot authority | Project Profile Discovery Directive v1.6, 2026-06-10 |
audit-spec.md |
Audit authority | Agentic Architecture Audit Specification v3.5, 2026-06-10 |
| File | Role | Must target |
|---|---|---|
companions/kickoff-prompt.md |
Copy/paste operational prompt for audit agents | Audit Spec v3.5 and Profile Directive v1.6 |
companions/explainer.md |
Operator-facing explainer | Audit Spec v3.5 and Profile Directive v1.6 |
.agents/skills/run-agentic-audit/SKILL.md |
Cross-agent skill entry point for running the audit | Defers to companions/kickoff-prompt.md (no independent version) |
Each derived file is attested against the exact authority-text content (sha256 of file
bytes) it was last synced to. The drift linter compares these lines against the current
authority texts and fails on divergence — including a duplicate or unrecognized binding
line — so an authority cut cannot ship a stale or ambiguous attestation. The hash gate
enforces the re-attestation; re-syncing the derived files first is the documented cut
procedure, not something the hashes can prove (regenerate the lines with
python3 scripts/check_drift.py --print-bindings, replacing the previous lines; the
cut-time procedure is in CONTRIBUTING.md under "Releasing and
provenance verification").
Adopted 2026-06-10 (the review's P-013) via
adr/0003-cross-application-review-dispositions.md.
companions/kickoff-prompt.md @ audit-spec.md=sha256:fa4c799df5dfb37a91dfe51267fc753b9fe5b71ee093e40bc3ee652bbb4bc339 profile-directive.md=sha256:d7940f32fac0ee0cb2630aa838b9466c5dd6d08debf5b9064e70dac36b167bb3
companions/explainer.md @ audit-spec.md=sha256:fa4c799df5dfb37a91dfe51267fc753b9fe5b71ee093e40bc3ee652bbb4bc339 profile-directive.md=sha256:d7940f32fac0ee0cb2630aa838b9466c5dd6d08debf5b9064e70dac36b167bb3
.agents/skills/run-agentic-audit/SKILL.md @ audit-spec.md=sha256:fa4c799df5dfb37a91dfe51267fc753b9fe5b71ee093e40bc3ee652bbb4bc339 profile-directive.md=sha256:d7940f32fac0ee0cb2630aa838b9466c5dd6d08debf5b9064e70dac36b167bb3
The binding is to the authority content, not the derived file's own bytes: a stale hash means "this derived file was last attested against authority text that has since changed." Whether the derived prose semantically agrees with the authority texts (drift-check steps 4–5) remains human review.
The package version (see CHANGELOG.md and the git tags) tracks the directive set as a
whole. Each authority text also declares its own version inside its header.
- A change to an authority text bumps the package minor or major.
- A companion-only edit bumps the package patch.
- Every release is tagged. The tag message names the contained authority versions.
| Item | Treatment |
|---|---|
| Research brief used for the 2026 modernization of the directive set | Input evidence only, not an authority text; intentionally not bundled. |
| Supporting source material from the original working directory | Not bundled and not consumed by a run unless separately transcribed or cited. |
Project agents should not treat the research inputs as operational authority during a run.
Before publishing a new package revision:
- Confirm
profile-directive.mdandaudit-spec.mddeclare the intended versions and dates. - Confirm
companions/kickoff-prompt.mdandcompanions/explainer.mddeclare the same target authority versions. - Search all markdown files for stale prior-version references, old filenames, and outdated section numbers.
- Confirm companion documents do not introduce rules that contradict the authority texts.
- If an authority text changes behavior, update this manifest, the companions, and
CHANGELOG.mdin the same revision.
Steps 1–3 and cross-reference resolution are automated by scripts/check_drift.py, a
pre-commit hook that also runs in CI (the hygiene workflow runs pre-commit run --all-files).
Section-number references are resolved against the specific authority text a line names,
so a reference attributed to the wrong authority is caught, not just an unknown number.
Since 2026-06-10 the linter also enforces: the identifier convention below (bare-id
flagging, with exactly the exclusions stated there); the "Content-hash binding" lines
above against the current authority texts; and that AGENTS.md quotes the directive's
current directive_version / audit_spec_target schema-identifier literals. Each of
these rules carries a negative self-test in scripts/check_drift.py --self-test.
Steps 4–5 remain human review.
Identifier convention: self-audit fitness-function and finding ids (FF-NNN, F-NNN)
are per-cycle identifiers — each audit cycle starts its own namespace. Any live, undated
surface that outlives its cycle (README, configs, instruction files, commit messages) must
cycle-qualify them, e.g. 2026-06-07/FF-004 (the drift linter) vs 2026-06-08/FF-001 (its
self-test). Dated artifacts carry their cycle context and keep bare ids: cycle outputs,
CHANGELOG.md entries, and ADRs (dated by their Status/Source header and frozen once
merged — never retro-edited).
(Adopted 2026-06-10 via adr/0003-cross-application-review-dispositions.md; the spec-level
durable-id rule shipped in Audit Spec v3.5 via
adr/0004-evidence-discipline-and-enforcement-honesty.md.)
Mechanically enforced since the 2026-06-10 gate hardening: the drift linter flags a bare
FF-/F- id (three digits, no YYYY-MM-DD/ qualifier) on every git-tracked surface
except the authority texts, CHANGELOG.md, adr/, and examples/; a genuinely
cycle-free line may opt out with the inline marker drift-check: ignore-bare-id.
This package is expected to pass the profile directive's Phase D (conventions) drift check.
A release or self-audit must record which claims were verified through which evidence lane
— repo-local, GitHub-hosted, or unavailable — rather than asserting "protected main,
green CI, signed commits" as one verified fact. The checklist, with the per-lane facts and
the verifying commands, lives in CONTRIBUTING.md under "Releasing and
provenance verification."