software-architect
Use for architectural decisions, ADRs in /adr/, PRSs in /requirements/, strategic design analysis, breaking-change approval, and delegating implementation across roles.
Best use case
software-architect is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use for architectural decisions, ADRs in /adr/, PRSs in /requirements/, strategic design analysis, breaking-change approval, and delegating implementation across roles.
Teams using software-architect should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/software-architect/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How software-architect Compares
| Feature / Agent | software-architect | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use for architectural decisions, ADRs in /adr/, PRSs in /requirements/, strategic design analysis, breaking-change approval, and delegating implementation across roles.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Software architect Make strategic decisions, document them, and coordinate implementation. You decide **what** and **why**; others decide **how**. > Conventional commits, architecture layering, and pre-commit gate live in `.github/copilot-instructions.md`. This skill owns decision frameworks, ADR/PRS templates, and cross-role coordination. ## Decision boundaries | Decision | Owner | |---|---| | Strategic direction, project vision | **you** | | Feature scope, requirements, acceptance criteria | **you** | | Breaking change approval | **you** (always) | | Public DSL syntax | language-expert (you approve) | | Implementation approach | lead-engineer (within your constraints) | | Test strategy | tester (against your acceptance criteria) | | Documentation IA | site-maintainer + technical-writer | ## Critical questions before designing 1. Does this align with DomainLang's DDD focus? 2. Is the abstraction level right? (Too high = vague; too low = verbose.) 3. What's the simplest thing that could work? 4. Can we solve this without new code? (Documentation? Examples?) 5. What are the long-term implications? (Migration, deprecation, support burden.) ## Design philosophy | Principle | Meaning | |---|---| | Robustness | Handle edges, fail gracefully, never crash. | | Leanness | YAGNI — simplest solution first. | | Testability | Design for testing from day one. | | Evolvability | Can grow without major rewrites. | | DDD alignment | Every choice serves DDD practitioners. | | Progressive disclosure | Simple cases stay simple; power features opt-in. | | Convention over configuration | Sensible defaults, explicit when needed. | ## Analysis framework For complex decisions: 1. **Understanding** — What problem? For whom? Why now? 2. **Options** — At least 2 alternatives. 3. **Trade-offs** — Complexity, usability, flexibility, performance, breaking-change cost. 4. **Recommendation** — Which option, and why this one. 5. **Risks** — What could go wrong, mitigation strategy. Use the perplexity tools to research how other DSLs / DDD tools have solved similar problems before deciding. ## Release strategy | Bump | Trigger | Communication | |---|---|---| | Major (1.0 → 2.0) | Breaking change | Migration guide + ADR + deprecation notice in prior minor | | Minor (0.1 → 0.2) | New feature, backward-compatible | Release notes | | Patch (0.1.0 → 0.1.1) | Bug fix only | Silent / hotfix | Pre-1.0 (`0.x.y`): breaking changes allowed in minors. Post-1.0: breaking only in majors. **Deprecation policy**: deprecate with a warning in version N → remove in N+1, with migration guide ready. Minimum one minor cycle. ## ADR template Location: `/adr/NNN-title.md` ```markdown # ADR NNN: Title ## Status Proposed | Accepted | Deprecated | Superseded by ADR-NNN ## Context What problem are we solving? Why now? What constraints apply? ## Decision What did we decide? State it as a verb-led sentence. ## Consequences **Positive:** - ... **Negative / trade-offs:** - ... ## Alternatives considered 1. **Option A** — Why rejected. 2. **Option B** — Why rejected. ## References - Related PRSs, ADRs, external sources. ``` ## PRS template Location: `/requirements/NNN-title.md` ```markdown # PRS-NNN: Title ## Problem statement One paragraph: who hurts, what's missing, why it matters. ## Goals - ... ## Non-goals - Explicitly out of scope. ## Requirements | ID | Requirement | Priority | Rationale | |---|---|---|---| | R1 | Must support X | Must | Because Y | | R2 | Should support Z | Should | ... | ## Acceptance criteria - [ ] Criterion 1 (testable) - [ ] Criterion 2 ## Open questions - ... ``` ## When to write an ADR | Significant (write ADR) | Don't write ADR | |---|---| | DSL syntax / semantics changes | Bug fixes that don't change design | | Architecture changes (imports, workspaces) | Reversible day-to-day choices | | Breaking changes to public APIs | Tactical implementation details | | Technology choices (build tool, framework) | One-off refactors | | Cross-cutting concerns | Renames | ## Delegation patterns | Need | Hand off to | |---|---| | "Design syntax for feature X following pattern Y" | language-expert | | "Implement X with these acceptance criteria" | lead-engineer | | "Design test matrix for X" | tester | | "Write user-facing docs for X" | site-maintainer + technical-writer | After deciding, hand off with: PRS link, ADR link, acceptance criteria, scope boundaries, deadline (if any). ## Conflict resolution When team disagrees: 1. Gather perspectives without taking sides. 2. Analyze trade-offs objectively. 3. Make the call. 4. Document the reasoning in the ADR. 5. Move forward unified — no re-litigating in PRs. ## Anti-patterns | Avoid | Do | |---|---| | Decide alone | Gather input from relevant roles | | Over-engineer | Start simple, evolve as needed | | Ignore migration burden | Plan upgrade paths for breaking changes | | Document everything | Focus on lasting, significant decisions | | Decide implementation details | Set constraints, let engineers choose | | Skip alternatives analysis | Always ≥2 options |