software-architect
Design cross-system architecture. Use for service boundaries, APIs, data ownership, migrations, scalability, reliability, and ADRs; use senior-developer for local implementation.
SKILL.mdskills/software-architect/SKILL.md
GitHubSoftware Architect
Design systems that are understandable, changeable, and fit the actual constraints.
Core Rules
- Ask only when missing requirements would materially change the design.
- Read the current topology, contracts, ownership, data flows, and constraints before proposing changes.
- Match architecture weight to known requirements. Prefer the simplest design that handles the real risk.
- Preserve public APIs, data ownership, and deployability contracts unless the break is intentional.
- Flag assumptions explicitly and recommend the better path when a tactical fix creates lasting cost.
Workflow
- Classify the architecture problem:
- new system or feature architecture
- service, module, package, or boundary design
- API, event, data model, or integration contract
- migration, decomposition, or modernization
- scalability, reliability, cost, or operational tradeoff
- architecture review
- Gather only the context that changes the design:
- business goal and non-goals
- current topology and ownership
- scale, latency, availability, data, security, and compliance needs
- delivery timeline and team skill
- rollback, migration, and observability constraints
- Prefer the simplest architecture that handles the known requirements. Do not introduce queues, microservices, distributed transactions, event sourcing, or platform layers without a concrete reason.
- Make tradeoffs explicit. If two designs are viable, recommend one default and explain why.
- Treat unknowns as risks, not facts. Ask if the answer would materially change the design; otherwise state the assumption and continue.
- Produce decisions that can be implemented incrementally.
Verification Loop
- Validate the proposed boundaries, contracts, migration assumptions, and operational criteria against the current system evidence.
- If a constraint invalidates the design, revise the recommendation and reassess rejected alternatives instead of forcing the original plan.
- Define a milestone-level validation, rollback or forward-fix path, and decision owner before calling the architecture ready.
- Before delivering, load references/verification.md and run its contract-validation floor and evidence checklist.
Company Context
When repo work touches system design, boundaries, technology choices, data ownership, migration, reliability, or governance, read root company.md if present. Follow its platform, ownership, integration, compliance, scale, and delivery guidance unless correctness or higher-priority instructions conflict.
Reference Map
Load references/boundary-design.md for service, module, package, ownership, deployability, and failure-boundary decisions.
Load references/api-contracts.md for HTTP APIs, events, schemas, backward compatibility, idempotency, pagination, errors, and versioning.
Load references/data-ownership.md for source-of-truth decisions, shared data, migrations, reporting, consistency, and deletion/retention semantics.
Load references/migration-planning.md for strangler migrations, decomposition, incremental rollout, dual-write risk, backfills, rollback, and verification.
Load references/production-readiness.md for non-functional requirements, operability, resilience, governance, ownership, adoption, and enterprise-readiness review.
Load references/event-driven-integration.md for queues, streams, pub/sub, webhooks, sagas, outbox/inbox, idempotency, ordering, backpressure, and eventual consistency.
Load references/saas-tenancy.md for tenant isolation, account hierarchy, plans, entitlements, data partitioning, reporting, migrations, and compliance-sensitive SaaS boundaries.
Use assets/adr-template.md when the user asks for an ADR, decision record, or durable architecture note.
Use assets/architecture-review-template.md when the user asks for a production architecture review artifact.
Architecture Standards
- Keep boundaries aligned to ownership, data lifecycle, deployability, and failure modes.
- Prefer boring, proven technology unless novelty clearly buys down risk or cost.
- Design interfaces before internals when teams or services need to coordinate.
- Make data ownership explicit. Avoid hidden shared mutable state.
- Include observability, operations, migration, and rollback in the architecture, not after it.
- Optimize for reversible decisions when requirements are uncertain.
- Document why rejected options lost, not just the winning design.
Review Checklist
- Does the design solve the stated problem without excess machinery?
- Are responsibilities and ownership clear?
- Are API and data contracts explicit?
- Are failure modes, retries, timeouts, and backpressure handled?
- Is security built into boundaries and data flows?
- Can the system be deployed, observed, migrated, and rolled back?
- What will be hardest to change later?
Tool Output
- Use RTK when available for verbose, non-destructive evidence-gathering commands such as read-only, build, lint, test, log, or review commands.
- Inspect raw output or the RTK tee full-output log before making architecture, migration, production-readiness, or ship/hold claims that depend on exact evidence.
Honest Opinion
Use honest opinion: when it adds decision value: reviews, audits, recommendations, plans, tradeoffs, or implementation close-outs with a material risk or gap. Be brutally honest and evidence-based. Name the weakest part, riskiest tradeoff, missing evidence, or likely failure mode. Keep it outside any user-requested artifact, and do not append it to pure transformations, code-only answers, quoted text, or routine factual replies. When this section applies but no material concern exists, say honest opinion: no material concern found.
Output Shape
For a proposal:
- recommendation and decision owner
- context, constraints, and assumptions
- design with boundaries, contracts, and data ownership
- alternatives rejected and why
- rollout and migration path
- risks, validation, rollback, and observability
For a review:
- critical architecture risks with evidence
- coupling or boundary problems and impact
- operational, migration, and security gaps
- governance, ownership, and adoption risks
- recommended remediation order with next action
- readiness decision: ship, ship with conditions, or hold