audit-pre-commit-coverage expects agent-compose-drift but apply omits it - fleet audit can never pass clean #170

Closed
opened 2026-06-04 11:07:59 +00:00 by coilysiren · 1 comment
Owner

Problem

audit-pre-commit-coverage.py and apply-agentic-os-hooks.py disagree on the
canonical managed hook set, so the fleet audit can never pass clean.

  • audit-pre-commit-coverage.py derives its expected set from ALL hook IDs in
    .pre-commit-hooks.yaml (16 IDs, including the three agent-compose-*).
  • apply-agentic-os-hooks.py DEFAULT_HOOK_IDS ships only 15: it deliberately
    omits agent-compose-drift.

agent-compose-drift is a machine-state check ("Verify
~/.config/agent-compose/COMPOSED.md is reproducible ... no-op without a
config"), so it correctly does NOT belong in every repo's managed block. But
because the audit expects it, every repo reports missing: agent-compose-drift
even immediately after a clean apply sweep.

Repro

Run apply-agentic-os-hooks.py against any repo, then
audit-pre-commit-coverage.py. The freshly-applied repo still shows
missing: agent-compose-drift.

Fix direction (pick one, maintainer's call)

  1. Make the audit's expected set match the applied set: exclude machine-state
    hooks (anything not in apply's DEFAULT_HOOK_IDS) from expected_hook_ids.
  2. Teach the audit about per-repo skips (the eco-* -> code-comments skip in
    apply is also invisible to the audit today) and machine-state hooks.

Both scripts already live side by side in scripts/; the cleanest fix is to
have the audit import apply's DEFAULT_HOOK_IDS / hook_ids_for(repo) rather
than re-deriving from .pre-commit-hooks.yaml.

Why this matters

This is the structural blocker for coilyco-bridge/agentic-os-kai#279 (re-enable
all canonical pre-commit hooks on every coilysiren/* repo): the "audit clean"
done-condition is unreachable for any repo until this mismatch is resolved.

Surfaced 2026-06-04 while landing the agentic-os-kai code-comments re-enable.

**Problem** `audit-pre-commit-coverage.py` and `apply-agentic-os-hooks.py` disagree on the canonical managed hook set, so the fleet audit can never pass clean. - `audit-pre-commit-coverage.py` derives its expected set from ALL hook IDs in `.pre-commit-hooks.yaml` (16 IDs, including the three `agent-compose-*`). - `apply-agentic-os-hooks.py` `DEFAULT_HOOK_IDS` ships only 15: it deliberately omits `agent-compose-drift`. `agent-compose-drift` is a machine-state check ("Verify ~/.config/agent-compose/COMPOSED.md is reproducible ... no-op without a config"), so it correctly does NOT belong in every repo's managed block. But because the audit expects it, every repo reports `missing: agent-compose-drift` even immediately after a clean `apply` sweep. **Repro** Run `apply-agentic-os-hooks.py` against any repo, then `audit-pre-commit-coverage.py`. The freshly-applied repo still shows `missing: agent-compose-drift`. **Fix direction (pick one, maintainer's call)** 1. Make the audit's expected set match the applied set: exclude machine-state hooks (anything not in `apply`'s `DEFAULT_HOOK_IDS`) from `expected_hook_ids`. 2. Teach the audit about per-repo skips (the `eco-* -> code-comments` skip in `apply` is also invisible to the audit today) and machine-state hooks. Both scripts already live side by side in `scripts/`; the cleanest fix is to have the audit import `apply`'s `DEFAULT_HOOK_IDS` / `hook_ids_for(repo)` rather than re-deriving from `.pre-commit-hooks.yaml`. **Why this matters** This is the structural blocker for coilyco-bridge/agentic-os-kai#279 (re-enable all canonical pre-commit hooks on every coilysiren/* repo): the "audit clean" done-condition is unreachable for any repo until this mismatch is resolved. Surfaced 2026-06-04 while landing the agentic-os-kai code-comments re-enable.
Author
Owner

Backlog burndown 2026-06-17: closing low-priority (P3/P4) to bring the open count to a manageable level. Nothing lost — reopen if this resurfaces. Batch tag: burndown-2026-06.

Backlog burndown 2026-06-17: closing low-priority (P3/P4) to bring the open count to a manageable level. Nothing lost — reopen if this resurfaces. Batch tag: `burndown-2026-06`.
coilysiren 2026-06-17 08:23:07 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/agentic-os#170
No description provided.