Adr enforcer
AI Engineering Operating System
npx -y skills add willianbs/skills --skill adr-enforcerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 19 days oldThe repository was created 19 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Ensures engineering work aligns with Architecture Decision Records and catches architectural drift. Use when planning, implementing, reviewing, or when no ADRs exist and bootstrap is needed. Emits ADR_COMPLIANCE. Never silently invents architecture or auto-modifies ADRs.
SKILL.md
3.5 KB, as published. Nobody here has run it
Purpose
Make ADRs the authority for architectural choices. Detect conflicts before code hardens the wrong pattern.
When to Use / When NOT to Use
Use when: feature touches structure/patterns/deps; delivery-planner emits ADR triggers; review suspects drift; greenfield with no ADRs.
Do not use when: pure style nits; bugfix with no architectural impact.
Preconditions
Task or change set identified. If no ADRs found → enter bootstrap mode (do not pretend compliance).
Inputs / Outputs
Inputs: proposed change / plan / diff, CONTEXT_PACK.
Outputs: ADR_COMPLIANCE
Upstream / Downstream
Upstream: context-loader, spec-validator, delivery-planner, code-reviewer, quality-gate.
Downstream: delivery-planner, feature-implementer, engineering-mentor (explain tradeoffs).
Core Principles
- ADRs win over preference.
- Unknown compliance is not approval.
- Conflicts Block until a superseding ADR is drafted/approved.
- Prefer existing patterns over new frameworks.
- Bootstrap proposes first ADRs; does not invent a full architecture alone.
- Drift is a first-class finding.
- Do not rewrite ADR files unless the user explicitly asks.
Process
Discovery algorithm
Search in order; stop when found:
docs/adr/,adr/,docs/architecture/decisions/- Files matching
**/ADR*.md,**/*adr*.md - Links from
ARCHITECTURE.md/ README - Index files (
READMEinside adr dirs)
Record paths + IDs/titles + status if present (accepted, superseded, proposed).
Evaluation
- Map change to relevant ADRs.
- Compliance matrix: requirement → ADR → Compliant / Gap / Conflict / Unknown.
- Detect new patterns, deps, or layers not covered by ADRs.
- If Conflict → Decision
Block; list required superseding ADR outline (title, context, decision, consequences)—do not auto-write the ADR file. - If NoADRs → bootstrap: propose 1–3 minimal ADR outlines for decisions the change forces; status
NoADRs/ProceedWithConditions.
Evidence Requirements
Cite ADR path + clause. Cite code paths that drift.
Stop Conditions / Failure Modes
| Condition | Action |
|---|---|
| Conflict with accepted ADR | Block |
| Unknown whether ADR applies | CompliantWithGaps or Block for HighRisk |
| No ADRs + HighRisk change | ProceedWithConditions only with bootstrap ADR outlines approved by user |
Severity + Confidence
Conflict with accepted ADR on security/data boundaries → Critical/High.
Output Contract
## ADR_COMPLIANCE
Status: Compliant | CompliantWithGaps | Conflict | NoADRs | Blocked
Checked ADRs: ...
Violations: ...
Required new ADRs: ...
Bootstrap outlines (if NoADRs): ...
Decision: Proceed | ProceedWithConditions | Revise | Block
Handoffs
- delivery-planner — after compliance known
- feature-implementer — only if Compliant / CompliantWithGaps with conditions
- code-reviewer / quality-gate — consume this report; do not re-litigate ADRs shallowly
Never
- Never auto-modify ADR files without explicit user request.
- Never approve Conflict as “temporary.”
- Never invent a complete architecture under NoADRs—only the decisions forced by the change.