software-architecture
Skill0 starsChanged 10 months agoMITView on GitHub
Guide for quality focused software architecture. Use when designing software systems, reviewing architecture, analyzing code structure, planning refactors, or mentoring on architectural patterns.
30 other projects use a version of this, 8 of them edited.
Adopted by
Most recently taken up by
- juninmd/skillstheir own version, first seen Nov 8, 2026
- nohemi20231/design-skillstheir own version, first seen Nov 8, 2026
- kazemcodes/skill-treetheir own version, first seen Nov 8, 2026
- its-ash/skillstheir own version, first seen Nov 1, 2026
- AntonioMellies/claude-code-skillstheir own version, first seen Nov 1, 2026
- edhahn/agent-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use backend-engineering, backend-dev-guidelines and 6 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
rogue-dev-studioSkillbackend-engineering
Expert backend application engineering: layered architecture, domain services, validation, transactions, caching boundaries, background jobs, and framework idioms (e.g. Laravel/Node) without leaking business rules into controllers. Use when implementing or refactoring server-side features, services, form requests/DTOs, policies, queues, or integrating persistence with APIs.
Also in 3 projects that use this
weirdgmeSkillbackend-dev-guidelines
Comprehensive backend development guide for Node.js/Express/TypeScript microservices. Use when creating routes, controllers, services, repositories, middleware, or working with Express APIs, Prisma database access, Sentry error tracking, Zod validation, unifiedConfig, dependency injection, or async patterns. Covers layered architecture (routes → controllers → services → repositories), BaseController pattern, error handling, performance monitoring, testing strategies, and migration from legacy patterns.
Also in 3 projects that use this
AnthropicSkilldocumentation
Write and maintain technical documentation. Trigger with "write docs for", "document this", "create a README", "write a runbook", "onboarding guide", or when the user needs help with any form of technical writing — API docs, architecture docs, or operational runbooks.
Also in 3 projects that use this
Microsoft AzureSkillgit-workflow
Squad branching model: dev-first workflow with insiders preview channel
Also in 4 projects that use this
nilssonrSkillseo
Full SEO workflow for auditing pages and creating SEO-optimized content. Provides checklists with educational explanations aligned with Google Search Central documentation.
Also in 3 projects that use this
SentrySkillskill-creator
Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.
Also in 8 projects that use this
Other versions30 projects use a version of this.
Word for word · 0
None found.
Edited · 8
- voly-codes/voly★ 1680% same
- xfstudio/skills★ 994% same
- nek1987/auto-agent-harness★ 494% same
- ai4brands-design/claude-skills★ 294% same
- bcastelino/agent-skills-kit★ 294% same
- Ghosteken/agent-harness★ 283% same
- kharlamenkodev/skills★ 194% same
- Tgoldi/claude-skills★ 094% same
Wrote their own version · 22
- magnus919/agent-skills★ 172same name
- sabahattink/antigravity-fullstack-hq★ 30same name
- zeeshanhanif/agentic-sdlc-kit★ 17same name
- Bbeierle12/Skill-MCP-Claude★ 9same name
- keez97/claude-architecture-skills★ 8same name
- madeinlowcode/skills-claude-code★ 7same name
- ManzarIMalik/my-agent-skills★ 6same name
- DjordjeMojsilovic/Djordjes-Claude-Setup★ 4same name
- AthArvA-188/top-10-claude-skills★ 3same name
- foreturn/product-studio★ 3same name
12 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- architectSkill
- brainstormingSkill
- concise-planningSkill
- context-engineerSkill
- data-deprecation-analysisSkill
- data-modelerSkill
- data-pipeline-engineerSkill
- data-quality-frameworksSkill
- dbt-transformation-patternsSkill
- github-workflow-automationSkill
- guardianSkill
- implementerSkill
- json-to-pydanticSkill
- llm-app-patternsSkill
- navigatorSkill
- ops-managerSkill
- orchestratorSkill
- principal-data-engineerSkill
- product-manager-toolkitSkill
- proj-memorySkill
- prompt-librarySkill
- qa-testerSkill
- researcherSkill
- senior-data-engineerSkill
- spark-optimizationSkill
- sql-optimization-patternsSkill
- state-managerSkill
- subagent-driven-developmentSkill
- thinkerSkill
- top-web-vulnerabilitiesSkill
- verification-before-completionSkill
- web-design-guidelinesSkill
- workflow-managerSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 19 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 26 edited versions we read keep these.
19
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Early return pattern: Always use early returns when possible, over nested conditions for better readability
- Distinctive: line 23
Avoid code duplication through creation of reusable functions and modules
- Distinctive: line 25
Use arrow functions instead of function declarations when possible
- Distinctive: line 32
Check npm for existing libraries that solve the problem
- Distinctive: line 34
Consider third-party APIs for common functionality
- Very specific: line 35
Use libraries instead of writing your own utils or helpers.
- Distinctive: line 39
When external dependencies would be overkill
- Distinctive: line 41
When existing solutions don't meet requirements after thorough evaluation
- Distinctive: line 46
Follow domain-driven design and ubiquitous language
- Distinctive: line 48
Keep business logic independent of frameworks
- Distinctive: line 53
Follow bounded context naming patterns
- Distinctive: line 56
Do NOT mix business logic with UI components
- Distinctive: line 57
Keep database queries out of controllers
- Distinctive: line 59
Ensure proper separation of responsibilities
- Distinctive: line 64
Don't build custom auth when Auth0/Supabase exists
- Distinctive: line 65
Don't write custom state management instead of using Redux/Zustand
- Distinctive: line 66
Don't create custom form validation instead of using established libraries
- Distinctive: line 81
Avoid deep nesting (max 3 levels)
- Distinctive: line 82
Keep functions focused and under 50 lines when possible
- Distinctive: line 83
Keep files focused and under 200 lines of code when possible
“Common” is measured: kept by at least 6 in 10 of the 26 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Software Architecture Development Skill
This skill provides guidance for quality focused software development and architecture. It is based on Clean Architecture and Domain Driven Design principles.
Code Style Rules
General Principles
- Early return pattern: Always use early returns when possible, over nested conditions for better readability
- Avoid code duplication through creation of reusable functions and modules
- Decompose long (more than 80 lines of code) components and functions into multiple smaller components and functions. If they cannot be used anywhere else, keep it in the same file. But if file longer than 200 lines of code, it should be split into multiple files.
- Use arrow functions instead of function declarations when possible
Best Practices
Library-First Approach
- ALWAYS search for existing solutions before writing custom code
- Check npm for existing libraries that solve the problem
- Evaluate existing services/SaaS solutions
- Consider third-party APIs for common functionality
- Use libraries instead of writing your own utils or helpers. For example, use
cockatielinstead of writing your own retry logic. - When custom code IS justified:
- Specific business logic unique to the domain
- Performance-critical paths with special requirements
- When external dependencies would be overkill
- Security-sensitive code requiring full control
- When existing solutions don't meet requirements after thorough evaluation
Architecture and Design
- Clean Architecture & DDD Principles:
- Follow domain-driven design and ubiquitous language
- Separate domain entities from infrastructure concerns
- Keep business logic independent of frameworks
- Define use cases clearly and keep them isolated
- Naming Conventions:
- AVOID generic names:
utils,helpers,common,shared - USE domain-specific names:
OrderCalculator,UserAuthenticator,InvoiceGenerator - Follow bounded context naming patterns
- Each module should have a single, clear purpose
- AVOID generic names:
- Separation of Concerns:
- Do NOT mix business logic with UI components
- Keep database queries out of controllers
- Maintain clear boundaries between contexts
- Ensure proper separation of responsibilities
Anti-Patterns to Avoid
- NIH (Not Invented Here) Syndrome:
- Don't build custom auth when Auth0/Supabase exists
- Don't write custom state management instead of using Redux/Zustand
- Don't create custom form validation instead of using established libraries
- Poor Architectural Choices:
- Mixing business logic with UI components
- Database queries directly in controllers
- Lack of clear separation of concerns
- Generic Naming Anti-Patterns:
utils.jswith 50 unrelated functionshelpers/misc.jsas a dumping groundcommon/shared.jswith unclear purpose
- Remember: Every line of custom code is a liability that needs maintenance, testing, and documentation
Code Quality
- Proper error handling with typed catch blocks
- Break down complex logic into smaller, reusable functions
- Avoid deep nesting (max 3 levels)
- Keep functions focused and under 50 lines when possible
- Keep files focused and under 200 lines of code when possible
Outputs & Deliverables
- Primary Output: Architecture guidance documents, decision records, and recommended module boundaries
- Secondary Output: Sample directory layouts and interface contract templates
- Success Criteria: Clear, implementable architecture with trade-offs documented and no ambiguous module responsibilities
- Quality Gate: Review by
architectandimplementerprior to implementation
Constraints
- Technical Constraints: Provide design guidance only; do not implement or refactor existing code directly
- Scope Constraints: Focus on architecture and high-level design; low-level implementation details belong to
implementer - Governance Constraints: Major changes require
orchestratorsign-off when they touch cross-cutting concerns
Common Pitfalls
- Mixing Layers: Business logic in API handlers, database queries in controllers. Respect Clean Architecture boundaries.
- Generic Naming:
utils.js,helpers,commonare dumping grounds. Use domain-specific names likeOrderCalculator,UserAuthenticator. - Missing Abstraction Levels: Low-level technical details in high-level domains. Create proper abstractions between layers.
- Ignoring the Implicit Contract: Changing a module's interface breaks callers. Always version APIs; communicate breaking changes.
- Over-Optimizing: Choosing performance-first architecture before measuring. Start simple; optimize when data shows bottlenecks.
- Too Much Coupling: Direct imports between distant modules create a tangled dependency graph. Use dependency injection.
Integration Points
| Phase | Input From | Output To | Context |
| Design Input | Requirements, constraints | Architecture guidance | Recommend module boundaries and patterns |
| Decision Recording | Architecture decisions | state-manager | Log decisions in decisions.md for future reference |
| Handoff | Architecture defined | implementer | Provide clear module contracts and responsibilities |
| Evolution | Changing requirements | Architecture review | Update design when new constraints emerge |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

