This skill should be used when the user asks to "validate an architecture spec", "check the arch spec", "review this architecture document", "is this arch spec complete?", "audit the architecture spec", "check architecture quality", "validate the ADRs", "is this arch spec ready for approval?", "is the architecture document ready to use?", or wants a structured quality review of an existing architecture technical specification document.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pragmatic-devx-plugin:pragmatic-arch-spec-validateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Validate a software architecture tech spec for completeness, consistency, and architectural soundness.
Validate a software architecture tech spec for completeness, consistency, and architectural soundness.
Run a structured review of an architecture spec and produce a PASS/WARN/FAIL report grouped by severity. Do not modify the spec — only report findings with actionable suggestions.
pragmatic-arch-spec-create → [pragmatic-arch-spec-validate] → pragmatic-arch-spec-check → pragmatic-arch-spec-update
Use this skill immediately after pragmatic-arch-spec-create to verify the spec is ready, or at any point when the spec needs a quality review before being used as reference for pragmatic-arch-spec-check.
Use this skill when an arch spec already exists and the user wants to assess its quality, completeness, or soundness — without touching the codebase.
Do not use when:
pragmatic-arch-spec-checkpragmatic-arch-spec-createpragmatic-arch-spec-updateKey distinction from pragmatic-arch-spec-check: this skill reviews the spec document in isolation; pragmatic-arch-spec-check compares the spec against the actual codebase. If the user says "check the arch spec" without further context, clarify: "Check the spec document for completeness, or check if the code follows the spec?"
Infer the report language from the existing arch spec:
Language: metadata field, use itAskUserQuestion:In which language would you like the validation report to be generated?
1. pt-BR — Portuguese (Brazil)
2. es-ES — Spanish (Spain)
3. en-US — English (United States)
4. Other — specify which language
Record the chosen language and use it for all report content — section headings, check descriptions, notes, suggestions, and recommended actions.
Find the architecture spec file. Common locations: docs/arch/, or any .arch.md file matching the provided path. Read the full document before running any checks.
This is a mandatory step before running any checks.
After reading the spec in Step 1, count all [TODO: ...] occurrences across the document. If any are found, use AskUserQuestion to ask:
"I found N open TODO item(s) in this arch spec. These will result in WARN or FAIL findings. Would you like to:
- Resolve them first with
pragmatic-arch-spec-update— for a cleaner validation report- Continue with validation as-is — TODOs will be reported as findings"
STOP. Wait for the user's choice before proceeding. If the user chooses to resolve TODOs first, end this skill and defer to pragmatic-arch-spec-update.
Evaluate each criterion below. Report PASS, WARN, or FAIL with a short explanation.
[TODO: ...] placeholders remain (WARN if present)*Service, *Repository) are specific enough to be matched against actual file namesProduce the report in this format:
## Architecture Tech Spec Validation Report
**File:** <file path>
**System/Module:** <name from spec>
**Date:** <today>
**Overall Status:** PASS | WARN | FAIL
### Summary
- Passed: X checks
- Warnings: X checks
- Failed: X checks
### Failed Checks (FAIL)
Must be addressed before approval:
1. **[Check name]** — explanation
- How to resolve:
- **Option A — Fix the spec** (if the check criterion is valid and the spec is incomplete):
- Concrete suggestion to address the gap in the spec
- **Option B — Reconsider the criterion** (if the spec reflects a deliberate, documented decision that makes this check inapplicable):
- Explain why the criterion does not apply, and add a note in the spec's Constraints or ADR section to make the intent explicit
### Warnings (WARN)
Should be addressed but not blocking:
1. **[Check name]** — explanation
- Concrete suggestion to address
### Suggestions (INFO)
Optional improvements.
### Checks Passed
- Check name ✓
- ...
pragmatic-arch-spec-check against this spec and do not use it as an implementation reference until FAIL items are resolved. Use pragmatic-arch-spec-update to address them."pragmatic-arch-spec-check to verify the codebase conforms to this specOnly offer this step when the overall validation status is PASS.
After printing the report, use AskUserQuestion to ask:
Would you like to generate Claude project rules from this architecture spec?
This creates a `.claude/rules/<spec-name>-arch.md` file with concrete architectural
constraints that Claude will follow automatically during development in this project
(e.g. forbidden imports, naming conventions, component boundary rules).
Extract only rules that passed Section E (Checkability) criteria — rules that are concrete, named, and verifiable. Do not extract vague guidelines.
Map spec content to rule types:
| Spec content | Rule type |
|---|---|
| Forbidden dependency direction (e.g., domain must not import infrastructure) | Never import <X> inside <Y> |
| Allowed dependency direction | <A> may only depend on <B> |
Naming conventions (e.g., *Service, *Repository) | Files in <path> must follow <pattern> naming |
| Component boundary (e.g., all external calls via ACL) | <X> must not call <Y> directly — route through <Z> |
| Communication style (sync/async enforcement) | <X> must communicate with <Y> via <mechanism> |
Write the file to .claude/rules/<spec-name>-arch.md using this format:
# Architecture Rules — <System/Module Name>
# Source: <path to .arch.md file>
# Generated: <today's date>
## Dependency Rules
- <rule>
## Naming Conventions
- <rule>
## Component Boundaries
- <rule>
Only include sections that have at least one rule. Omit empty sections.
After writing the file, state the path created and how many rules were extracted, and include this note:
Note: Claude rules guide Claude during development sessions but are not guaranteed enforcement — Claude may not follow them perfectly in long conversations or when the user overrides them. For guaranteed architectural conformance, run
pragmatic-arch-spec-checkin CI.
npx claudepluginhub rvfvazquez/pragmatic-devx-plugin --plugin pragmatic-devx-pluginProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.