Skip to content

Story (D): full-file on:/permissions drift guard in compliance-audit [#604] #607

Description

@don-petry

Part of the shim-identity epic #604Story D-audit (full-file guard in compliance-audit).

The compliance audit is field-allowlist, not full-file, so a trimmed on: block passes. check_dev_lead_stub() validates channel pin + agent_ref + no per-stub concurrency: + statuses: read but never on:; the RING branch of check_centralized_workflow_stubs() validates pin only.

Changes (petry-projects/.github)

  • Add a tier-normalized full-file identity check: for each enrolled shim, re-derive the expected stub = canonical standards/workflows/<name>.yml repinned to the target repo's ring tier (reuse deploy-standard-workflows.sh repin logic / ring_canonical_ref, mirroring how template_stub_drift.sh emits-and-compares), then compare against the repo's deployed file. Any diff beyond the tier channel pin → finding.
  • At minimum, guard the on: trigger surface, permissions: block, and absence of per-stub concurrency: for dev-lead and all RING shims (fold into the full-file check or add explicit sub-checks).
  • Tests in the compliance-audit suite: trimmed trigger, added/removed permission, injected concurrency → each flagged; a correctly-tiered stub → clean.

Acceptance

  • A dev-lead.yml (or any RING shim) with a trimmed on: block is flagged by the weekly audit.
  • A stub that differs from the canonical template only by its correct tier channel pin is not flagged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev-leadFor dev-lead agent pickup

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions