ADR-0024: Writers as skills, reviewers as agents for governance artifacts
Status: accepted | Date: 2026-02-11
References: ADR-0023
Context
Context
govctl manages three governance artifact types — RFCs, ADRs, and work items. We need to add AI-assisted capabilities for both creating (writing) and reviewing these artifacts.
Per ADR-0023, the assets/ directory is organized into commands/, skills/, and agents/ subdirectories. Skills and agents are synced to .claude/skills/ and .claude/agents/ respectively.
Problem Statement
Each artifact type needs writing guidance (structure, conventions, quality patterns) and review criteria (completeness checks, quality gates). The question: should each capability be a skill (augments the main agent inline) or an agent (runs as isolated subagent with its own system prompt)?
Key Distinction
- Skills run in the main agent’s context. They have full access to the conversation and codebase. They augment what the main agent knows.
- Agents run in isolated contexts with custom system prompts. They receive delegated tasks and return results. They have no access to the main conversation.
Constraints
- Skills MUST be <250 lines per SKILL.md (progressive disclosure via
references/) - Agents MUST have focused system prompts
- Each capability should follow “one skill, one capability” principle
- The existing
/discussand/govcommands orchestrate workflows that need writing knowledge
Decision
Decision
Writers are skills. Reviewers and auditors are agents. Seven items total:
Skills (in assets/skills/)
| Skill | Purpose |
|---|---|
rfc-writer | How to write well-structured RFCs: normative language (MUST/SHOULD/MAY), clause structure, versioning, since fields |
adr-writer | How to write effective ADRs: context/decision/consequences, trade-off analysis, alternatives documentation |
wi-writer | How to write good work items: acceptance criteria with category prefixes, description quality |
Agents (in assets/agents/)
| Agent | Purpose |
|---|---|
rfc-reviewer | Review RFC drafts for completeness, normative language quality, clause coverage, cross-references |
adr-reviewer | Review ADR drafts for context quality, decision clarity, alternatives, honest consequences |
wi-reviewer | Review work items for acceptance criteria structure, category correctness, description quality |
compliance-checker | Verify code conforms to normative RFC clauses and ADR decisions — detect spec violations in implementation |
Rationale
-
Writers need conversation context. An RFC writer must know why the user is creating the RFC — what problem, what constraints, what existing artifacts relate. Skills run inline and have full context.
-
Reviewers benefit from cognitive isolation. When the main agent writes an artifact and then reviews it, confirmation bias is unavoidable. An isolated review agent has no memory of authoring — it evaluates purely on quality criteria.
-
Compliance checking is auditing, not writing. The
compliance-checkeragent cross-references source code against normative RFC clauses (MUST/MUST NOT) and ADR decisions. It is distinct from artifact reviewers — those check if an artifact is well-written, this checks if code follows what artifacts specify. Isolation ensures no “I wrote this code so it must conform” bias. -
Seven separate, not consolidated. Each capability is genuinely different. Each stays well under 250 lines. The ~15% shared knowledge (govctl commands,
[[ref]]syntax) is 3-5 lines of duplication — not worth coupling distinct capabilities to eliminate.
Integration
/discussand/govcommands will reference writer skills for quality guidance- Review agents can be invoked at quality gates (e.g., after drafting, before finalization)
compliance-checkercan be invoked during/govPhase 4 (testing) or on demandsync-assets.shalready syncs bothskills/andagents/directories
Consequences
Consequences
Positive
- Writers augment the main agent with domain knowledge while preserving conversation context
- Reviewers provide unbiased quality checks through cognitive isolation
- Compliance checker catches spec violations that
govctl checkcannot (it validates references exist; the agent validates semantic conformance) - Seven focused items follow “one skill, one capability” — each stays under 250 lines
- Future artifact types get their own skill + agent pair without touching existing files
sync-assets.shalready supports the directory structure (ADR-0023)
Negative
- 7 files to maintain (mitigation: each is small and focused, changes are rare)
- ~15% knowledge duplication across items (mitigation: 3-5 lines per file, not worth abstracting)
- Review/audit agents lack conversation context (mitigation: they evaluate on merit, which is the point)
- Compliance checking is inherently imprecise — agent may flag false positives (mitigation: output is advisory, not blocking)
Neutral
- Existing
/discussand/govcommands continue to work unchanged initially; skills/agents integration is additive govctl checkcontinues to handle structural validation;compliance-checkerhandles semantic validation — complementary, not competing