dfg-inc/praxis-architect/record-decision
Claude Code and agent skill by dfg-inc/praxis-architect
- community
Checking that the SKILL.md file is still in the repository.
Record an architecture decision from templates/architecture-decision.md — binding scope, divergence prevented, rule introduced, rejected alternatives (WBS 4.8). Refuse incomplete records missing rejected alternatives.
Install
npx vskill@latest install dfg-inc/praxis-architect/record-decisionSKILL.md
Record Decision
Persist a human-chosen architecture alternative as an auditable ADR. The template’s four binding fields are mandatory: what it binds, what divergence it prevents, what rule it introduces, what was rejected and why.
When to use
- After human chose an alternative (post-
grill/ post-council/ post-error-cost-gateskip path). - Never before
error-cost-gatehas run for irreversible candidates. - Never to draft speculative options — use
present-alternativesfor that.
Inputs
| Input | Path / source | |
|---|---|---|
| Template | plugins/architect/templates/architecture-decision.md | |
| Chosen alternative | Human-confirmed (session + grill/council artifacts) | |
| Rejected set | From alternatives trail / council dissent | |
| Related ids | Requirement ids, WP id, contract paths, NFR budgets | |
| Gate | error-cost-gate result; council verdict if required |
Template fields (all required for accepted)
Copy from plugins/architect/templates/architecture-decision.md:
- Context — forces driving the decision.
- Decision — what we choose.
- Divergence prevented — incompatible paths this closes.
- Rule introduced — normative statement implementers must follow.
- Consequences — positive and negative.
- Rejected alternatives — non-empty table: Option | Why rejected.
- Frontmatter:
id,title,status,date,workPackageId,relatedRequirements. - Links — platform contracts, NFR budgets.
Steps
- Preflight gates
- If
error-cost-gate=council-required, require a machine council outcome + recorded human choice (architecture-governance.mjs assert-record-decision). Else refuse. - Confirm human choice is explicit (not inferred from silence).
- Mint id
Scan architecture/decisions/ for highest ADR-NNN; next id = ADR-<NNN+1> (zero-pad to 3). If folder missing, create it.
- Draft from template
Write architecture/decisions/<id>-<kebab-title>.md by filling the template. Keep status: proposed until the completeness check passes.
- Completeness check — refuse incomplete (WBS
4.8.2)
Refuse to set accepted / finalize if any of:
# Rejected alternativestable empty or only placeholder rows.# Divergence preventedempty.# Rule introducedempty or non-normative (“consider…”, “try to…”).# Decisionempty.- Alternatives existed in the trail but none appear under Rejected.
On refuse: leave file as status: incomplete (or delete draft if human prefers) and list missing fields in the reply. Do not invent fake rejected options.
- Link related artifacts
Fill relatedRequirements, Links to architecture/contracts/ (or platform-contract paths), NFR budget files. Decision must be referenceable from a tracker (path stable under architecture/decisions/).
- Human wording gate
AskUserQuestion: confirm binding rule text + rejected table. On approve, set status: accepted and date: YYYY-MM-DD.
- Announce
Return id + repo-relative path for handoff / Jira attach-decision-link.
Human gates
| Gate | Required | |
|---|---|---|
| Choice of alternative | Yes — before drafting ADR body as accepted | |
| Wording of rule + rejected list | Yes — before status: accepted | |
| Council (when gate required) | Yes — prior skill |
Done when
- File exists under
architecture/decisions/with all four binding fields filled. Rejected alternativeshas ≥1 real rejected option with reason (when ≥2 options were considered).
If only one conceivable option existed, document that explicitly under Rejected as N/A — sole feasible option and state why no alternative was viable; empty table still refuses.
status: acceptedonly after human confirm.- Path is stable for tracker links (WBS
4.8.1).
Failure modes
| Mode | Response | |
|---|---|---|
| Missing rejected alternatives | Refuse finalize; mark incomplete; list missing field | |
| Soften rule to non-normative | Rewrite or refuse | |
| Record before council when required | Refuse; point to error-cost-gate | |
| Invent rejected options to pass check | Forbidden | |
Store outside architecture/decisions/ without project convention override | Prefer convention; if project .project defines another root, use that and say so | |
| Accept on silence | Forbidden — AskUserQuestion |
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/architect/skills/record-decision/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/dfg-inc/praxis-architect/record-decision)