Refine and validate system-level ADRs through targeted clarification questions. Use when ADRs need review, gaps need filling, or ADR status must be approved before architecture generation.
npx skills add https://github.com/tikalk/adlc-team-skills --skill architect-clarify
Identify underspecified areas in existing ADRs and refine them through targeted clarification questions. Ensure ADRs are complete, consistent, and ready for architecture generation.
You act as an Architecture Reviewer ensuring ADR quality by:
Use this skill:
/architect-init: Refine initial ADRs before architecture generationDo not use this skill when:
/architect-init first to create ADRs/architect-init to reverse-engineer ADRs from code$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Examples of User Input:
"Focus on data architecture decisions - we're reconsidering database choice""Security ADRs need more detail for compliance review""ADR-003 consequences seem incomplete"Identify underspecified areas in existing ADRs and refine them through targeted clarification questions. Ensure ADRs are complete, consistent, and ready for architecture generation.
Each ADR should have:
{REPO_ROOT}/.adlc/drafts/adr/ (individual file format) and {REPO_ROOT}/.adlc/memory/constitution.mdIMPORTANT - Path Resolution:
REPO_ROOT - use this to determine the correct paths.adlc directory.adlc/drafts/adr.md - always use {REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.mdadr/ directory.adlc may be in the parent directoryObjective: Establish current ADR state
scripts/bash/setup-architect.sh from repo root{REPO_ROOT}/.adlc/drafts/adr/adr.md for the ADR list{REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.md{REPO_ROOT}/.adlc/memory/constitution.md if it existsObjective: Identify quality gaps in each ADR
Objective: Identify operational gaps, technical debt, SPOFs, and security concerns NOT documented across all views
Analysis Dimensions:
| Dimension | Views to Check | What to Look For |
|-----------|---------------|------------------|
| Operational Gaps | Operational (3.7), Deployment (3.6) | Missing monitoring, undefined on-call, no runbooks, unclear rollback |
| Technical Debt | Development (3.5), Information (3.3) | Deprecated dependencies, no tests, legacy code, schema debt |
| Single Points of Failure | Deployment (3.6), Concurrency (3.4) | Single DB instance, no redundancy, critical path bottlenecks |
| Security Concerns | All views | Unencrypted data, no auth, exposed secrets, missing audit trails |
Gap Identification Process:
Gap ID Format: Section-based (e.g., 3.6.1 = Deployment View, gap #1)
Objective: Check ADRs against constitution for duplication and compliance
Analysis:
Constitution Cross-Reference Table:
| Issue Type | ADR | Constitution Principle | Action Required |
|------------|-----|----------------------|-----------------|
| Duplicate | ADR-002 | §DataStorage mandates PostgreSQL | Remove or convert to reference |
| Violation | ADR-003 | §Security requires JWT | Add override justification or change |
| Unclear | ADR-004 | Silent on caching | Clarify relationship |
Objective: Prioritize clarification needs
Generate a gap report:
## ADR Clarification Report
### Summary
- Total ADRs: [N]
- Complete: [N]
- Needs Clarification: [N]
### Gaps by ADR
| ADR | Title | Gap Type | Severity | Priority |
|-----|-------|----------|----------|----------|
| ADR-001 | [Title] | Missing alternatives | HIGH | 1 |
| ADR-002 | [Title] | Incomplete consequences | MEDIUM | 2 |
### Cross-ADR Issues
| Issue | ADRs Affected | Description |
|-------|---------------|-------------|
| [Conflict] | ADR-001, ADR-003 | [Description of conflict] |
Objective: Fill gaps through targeted questions
For each gap requiring clarification:
## Clarification [N]: [ADR-XXX] - [Gap Type]
**Current State**:
[Quote current ADR content]
**Gap Identified**:
[Explain what's missing or unclear]
**Question**:
[Specific question to address the gap]
**Suggested Options** (if applicable):
| Option | Description |
|--------|-------------|
| A | [Option A] |
| B | [Option B] |
| C | [Custom response] |
Reply with your choice or provide additional context.
When constitution issues are detected:
For Duplicates:
## Clarification [N]: Constitution Duplication Detected
**Question**: How should this duplicate ADR be handled?
**ADR**: ADR-XXX - [Title]
**Constitution Principle**: §[Section] - [Principle Name]
**Issue**: This ADR documents a decision already mandated by constitution
**Options**:
| Option | Action | Result |
|--------|--------|--------|
| A | Remove ADR | Decision covered by constitution only |
| B | Convert to Reference | Keep ADR as "See Constitution §X" |
| C | Add Context | Keep ADR with "Aligns with Constitution §X" |
| D | Extend | Keep ADR as "Extends Constitution §X" |
Reply with your choice (A/B/C/D).
For Violations (Option A PRIMARY - Amend Constitution):
## Clarification [N]: Constitution Violation Detected ⭐
**Question**: How should this constitutional violation be resolved?
**ADR**: ADR-XXX - [Title]
**Decision**: [What the ADR decides]
**Constitution Principle**: §[Section] - [Principle]
**Conflict**: [How they conflict]
**The constitution should evolve with the project's needs.**
**⭐ RECOMMENDED: A. Amend Constitution**
Update constitution §[Section] to accommodate this decision. This establishes a new principle for future decisions.
**Alternative Options**:
B. Override in ADR - Document justification for deviation
C. Revise ADR - Change decision to comply with constitution
D. Remove ADR - Delete and follow existing constitution
**Consider Amendment If**:
- [ ] This decision will be used again in the future
- [ ] Team's approach has evolved since constitution was written
- [ ] Existing principle is too restrictive for current needs
**Amendment Text**: [If choosing A, provide the specific constitutional amendment]
Reply with: "A [amendment text]" or "B/C/D [reasoning]"
Objective: Write refined ADRs back to file
{REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.md filesadr.md and adr.md index after updatesObjective: Get user confirmation to approve ADRs before architecture generation
This step is critical because implement only processes ADRs with "Accepted" status. ADRs with "Discovered" or "Proposed" status will be skipped.
## ADR Approval ⭐
**Total ADRs**: [N]
**Status Distribution**:
- Accepted: [N]
- Proposed: [N]
- Discovered: [N]
**⚠️ Important**: Only "Accepted" ADRs will be processed by `/architect-implement`
### Options
| Option | Action |
|--------|--------|
| A | Accept All - Change Proposed/Discovered → Accepted |
| B | Review Specific - Select individual ADRs to accept |
| C | Defer - Keep current status, decide later |
**Note**: You can also run `/architect-clarify` again later to approve additional ADRs.
Reply with A, B, or C (or "done" to skip).
If user chooses Option A:
## Confirm Bulk Approval
Change [N] ADRs from Proposed/Discovered → Accepted?
| ADR | Current Status | New Status |
|-----|----------------|-------------|
| ADR-001 | Proposed | Accepted |
| ADR-002 | Discovered | Accepted |
Reply with "yes" to confirm or "no" to cancel.
If user chooses Option B, present ADRs one-by-one:
## ADR Approval: ADR-XXX
**Title**: [Title]
**Current Status**: [Proposed/Discovered]
**Context**: [Brief summary]
**Options**:
| Option | Action |
|--------|--------|
| A | Accept - Change to "Accepted" |
| B | Keep - Keep current status |
| C | Skip - Move to next ADR |
Reply with A, B, or C for ADR-XXX.
After approval (or if user chooses C to defer):
## ADRs Approved
**Status Changes Applied**:
- ADR-001: Proposed → Accepted
- ADR-002: Discovered → Accepted
- ADR-007: Kept as Proposed
**Ready for Implementation**:
- Accepted ADRs: [N]
- Pending Approval: [N]
Run `/architect-implement` to generate AD.md from accepted ADRs.
After approval, you MUST write the workflow state file. Create the directory if it doesn't exist, then write {REPO_ROOT}/.adlc/architect/state.json:
mkdir -p {REPO_ROOT}/.adlc/architect
Write this JSON content to the file (replace [N] with the actual count of approved ADRs and the timestamp with the current time):
{
"workflow": {
"clarify_completed": true,
"clarify_completed_at": "2024-01-20T10:30:00Z",
"adrs_approved_count": [N],
"implement_started": false,
"implement_started_at": null
}
}
IMPORTANT: This workflow state file is REQUIRED before /architect-implement will execute.
The implement command checks this state during pre-flight validation. If you skip this step, the implement command will halt with a validation error.
After clarification ends (all gaps addressed or user signals "done"):
## ADR Clarification Complete
**Changes Made**:
- ADR-001: Updated consequences section
- ADR-002: Added Common Alternatives (neutral trade-offs)
- ADR-003: Resolved conflict with ADR-001
- Constitution: Amended §DataStorage to allow NoSQL for document flexibility
**Risks & Gaps Status**:
- Critical gaps identified: [N] → [N resolved]
- High priority gaps: [N] → [N resolved]
- Cross-view inconsistencies: [N] → [N resolved]
- Integration with AD sections: [N updates]
**Remaining Gaps** (deferred):
- 3.6.2: Minor operational documentation (LOW)
**Cross-ADR Consistency**: ✅ Verified
**Constitution Alignment**:
- Duplicates resolved: [N]
- Violations addressed: [N]
- Constitution amended: [N] (if applicable)
- References added: [N]
**Recommended Next Steps**:
1. Review updated ADRs in `{REPO_ROOT}/.adlc/drafts/adr/adr.md`
2. Run `/architect-implement` to generate AD.md
3. Or run `/architect-specify` to create new ADRs for additional decisions
⚠️ Required: You MUST run /architect-clarify before /architect-implement to approve ADRs.
Status Workflow:
Note: Do NOT invent intermediate statuses like "Validated". ADRs go directly from Discovered/Proposed → Accepted upon user approval.
$ARGUMENTS
After clarify completes, run /architect-implement to generate the Architecture Description (AD.md).
Only ADRs with status Accepted are included in the architecture generation. If needed, re-run this skill to approve additional ADRs before proceeding.
Concrete outputs of this skill:
{REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.md with clarified content{REPO_ROOT}/.adlc/drafts/adr/adr.md{REPO_ROOT}/.adlc/architect/state.json with clarify_completed: trueTake tikalk/architect-clarify from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.