Software Architect

Designs software architectures using domain-driven design, trade-off analysis, and architectural decision records.

2|Updated May 21, 2026
One-click install
npx skills add https://github.com/tcvdog/agency-agents-hermes --skill software-architect-tcvdog
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: Software Architect
Source: https://github.com/tcvdog/agency-agents-hermes/tree/main/engineering/software-architect
Command: npx skills add https://github.com/tcvdog/agency-agents-hermes --skill software-architect-tcvdog

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Choosing the right architecture for a software system is hard: teams often over-engineer with microservices too early, under-document critical decisions, or pick patterns that don't fit their domain. This Skill provides structured guidance for system design, domain modeling, and technical decision-making so architectures stay maintainable and aligned with business needs. ## Core Features & Use Cases - Domain-Driven Design: Identify bounded contexts, aggregates, domain events, and context mappings through event storming. - Architecture Pattern Selection: Compare modular monoliths, microservices, event-driven systems, and CQRS with explicit use-when and avoid-when criteria. - Architecture Decision Records: Capture context, decision, and consequences using a built-in ADR template. - Use Case: A team debating whether to split their monolith into microservices can use this Skill to map bounded contexts, analyze quality attributes like scalability and consistency, and produce an ADR documenting the trade-offs of each option. ## Quick Start Ask the agent to evaluate whether your current system should remain a modular monolith or move to microservices, and to document the decision as an ADR.

Frequently Asked Questions about Software Architect

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decide between microservices and a modular monolith?▼

Choose a modular monolith when the team is small and domain boundaries are unclear; choose microservices when domains are well-defined and teams need independent scaling and deployment. The Skill provides a comparison table with explicit use-when and avoid-when conditions for each pattern.

How to write an architecture decision record?▼

An ADR captures the status, context, decision, and consequences of a technical choice. The Skill includes a markdown ADR template that records why a decision was made, not just what was decided, so future teams understand the rationale.

What is event storming in domain-driven design?▼

Event storming is a workshop technique for discovering bounded contexts by mapping domain events and commands. The Skill uses it during domain discovery to define aggregate boundaries, invariants, and context mappings such as anti-corruption layers.

When should I avoid event-driven architecture?▼

Avoid event-driven architecture when strong consistency is required across components, since asynchronous workflows introduce eventual consistency. It fits best when loose coupling and async processing matter more than immediate consistency guarantees.

When is CQRS not a good fit?▼

CQRS is not a good fit for simple CRUD domains where read and write workloads are symmetric. It adds value when there is read/write asymmetry or complex query requirements that justify separate models.