Skip to content

ADR 010 Scoped Development Exceptions

Joseph Roberts edited this page Oct 2, 2026 · 3 revisions
  • ID: ADR-010
  • Status: Accepted
  • Date: 2026-10-02
  • Date meaning: Recorded proposal date; not an acceptance date.
  • Implementation: Not implemented; this document proposes the contract.
  • Approval qualification: Acceptance is separate from drafting, publication, and implementation authorization.

Context

An integrity failure can block useful, bounded development work. A bypass needs explicit authority, exact limits, expiry and visible tracking so it cannot become a silent or permanent waiver.

Decision

Provide a reusable development-exception skill, initially supporting only the eligible ADR-integrity failures defined in its supporting contract.

  • Bind each exception to the exact repository, failed condition, content, operation and scope. Require explicit owner authorization, an accountable person, an expiry and concrete resolution criteria.
  • Record it in an open GitHub issue associated with the work. Bind approval to the exact record version; shared GitHub credentials and an “approved” comment do not prove owner authorization.
  • Permit only the narrowly defined retained-content, missing-record, stale-hash and informational uncatalogued-record cases. Never waive changed accepted bodies, unresolved authority or scope, missing baselines, unsafe inputs or unauthorized transitions.
  • Recheck eligibility, content and current approval before dependent work. Expiry, revocation, resolution, issue closure or changed approval terms invalidate reliance. Renewal requires new explicit authority.
  • Report proceeding under exception, never verified. Keep the integrity problem visible until direct checks establish repair; expiration alone does not resolve it.

The supporting contract defines eligibility, the issue-record schema, approval binding, validation, labels, recovery and test requirements. It remains proposed alongside this ADR. Additional exception categories require deliberate authorization and a new architectural decision.

Rationale

A bounded exception allows necessary work while preserving the unresolved failure and its owner. Reusing the existing issue avoids a separate approval database. Exact content and approval binding prevent an exception from silently expanding to different work.

Boundaries and consequences

An exception cannot override STOP, grant execution or destructive-action permissions, accept a decision, edit an accepted body or reset its baseline. Retrieved content remains untrusted data.

Fresh GitHub access and trusted authorization context are required for exception-dependent work. Ordinary verified work does not depend on the exception service. Labels provide visibility, not authority.

Checks and subsequent actions are not atomic. A withdrawal never observed and absent from retained history cannot be detected. The skill must disclose these limits rather than claim universal enforcement. Implementation and activation await owner acceptance.

Clone this wiki locally