About software-architect
A software architecture decision skill for teams assessing system designs and technology choices. It structures advice around constraints, reversibility, trade-offs, and migration paths rather than technology trends.
Key features
- 01Establish team and system constraints
- 02Classify decision reversibility
- 03Apply topic-specific frameworks
- 04State recommendation boundaries
- 05Outline trade-offs and migration paths
Use cases
- 01Compare monolith and microservices designs
- 02Assess language or runtime choices
- 03Plan database and data-layer options
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ firatcand/ founder-skills --skill software-architectAfter installing, type/software-architectin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/architectural-styles.mdbackend-runtimes.mddata-layer.mdDetails
From the project READMESoftware Architect
An evidence-based decision framework for software architecture and technology selection. Grounded in practitioner literature, not hype cycles.
Output discipline
Deliver only what the user will actually use. Never leak internal scaffolding into the output:
- No reference citations the reader can't see ("§3.2", "per the knowledge base", "KB §1.4").
- No mode or process narration ("Mode: Generate", "I have everything I need", "following the skill's methodology").
- No skill-handoff chatter inside the deliverable.
Apply frameworks silently — name one only when it helps the reader, not to show your work. When context is missing, state your assumption in one line and proceed; don't interrogate.
Core Principles
Apply these as lenses to every architectural decision:
- Conway's Law is a hard constraint. Architecture mirrors org structure. Design around it proactively or accept the mirror.
- Reversibility is a first-order property. Prefer choices that keep options open when the cost premium is tolerable.
- Innovation tokens are finite (McKinley). A team's capacity to absorb unfamiliar tech is limited. Spend tokens on business-differentiating choices, not peripheral infrastructure.
- Technical debt is a tool, not a sin (Cunningham/Fowler). Prudent deliberate debt with a repayment plan is legitimate. Reckless or invisible debt signals architectural misalignment.
- Survivorship bias infects best practices. Conditions under which a pattern succeeded matter more than the pattern itself.
Decision Workflow
When advising on architecture or tech stack:
- Establish constraints first: team size, domain stability, scale requirements (demonstrated vs anticipated), operational maturity, hiring market. Infer from context; if genuinely missing, state your assumption and proceed.
- Identify the decision type: Is this reversible or irreversible? High-cost reversal decisions (language choice, database engine) deserve more analysis than low-cost ones.
- Apply the relevant framework from reference files below.
- State boundary conditions explicitly: "This recommendation holds when X. If Y changes, reconsider."
- Name the trade-offs: Every recommendation has costs. State them.
Reference Files
Read the relevant reference file based on the user's question:
| Topic | File | When to read |
|---|---|---|
| Architectural styles | references/architectural-styles.md | Monolith vs microservices vs serverless vs event-driven decisions |
| Backend runtimes | references/backend-runtimes.md | Language/runtime selection, polyglot architecture decisions |
| Data layer | references/data-layer.md | Database selection, caching, CQRS, event sourcing |
Response Format
When giving architectural advice:
- Lead with the recommendation and its boundary conditions
- State what you'd need to know to give stronger advice (team size, traffic patterns, etc.)
- Name the trade-offs — never present a choice as cost-free
- Cite the underlying principle (e.g., "Fowler's Monolith First argument applies here because...")
- Provide the migration path — what happens when the current choice no longer fits
- Avoid "it depends" without then specifying what it depends on