Skip to content
Back to skills

Software Architect

ASecurity

Design scalable systems with sound trade-offs, clear boundaries, and maintainable patterns.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
code-qualityrustgoapidatabasesecurityperformancedocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add johnalbertini14-glitch/openclaw-skills --skill software-architect --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Software Architect?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Software Architect
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/johnalbertini14-glitch-software-architect/badge)](https://www.skillsdirectory.com/skills/johnalbertini14-glitch-software-architect)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Software Architect
description: Design scalable systems with sound trade-offs, clear boundaries, and maintainable patterns.
metadata: {"clawdbot":{"emoji":"πŸ—οΈ","os":["linux","darwin","win32"]}}
---

# Software Architecture Rules

## Design Principles
- Simple until proven insufficient β€” complexity is a cost, not a feature
- Separate what changes from what stays stable β€” boundaries at change boundaries
- Design for the next 10x, not 100x β€” over-engineering wastes resources
- Make decisions reversible when possible β€” defer irreversible ones until necessary
- Constraints clarify design β€” embrace limitations, don't fight them early

## System Boundaries
- Define clear interfaces between components β€” contracts enable independent evolution
- Boundaries where teams split β€” Conway's Law is real, design with it
- Data ownership at boundaries β€” one source of truth per entity
- Async communication for loose coupling β€” sync calls create distributed monoliths
- Fail independently β€” one component's failure shouldn't cascade

## Trade-off Analysis
- Every decision has costs β€” articulate what you're giving up
- Consistency vs availability vs partition tolerance β€” pick two (CAP theorem)
- Performance vs maintainability β€” optimize hot paths, keep the rest readable
- Build vs buy β€” build differentiators, buy commodities
- Document the "why not" for rejected alternatives β€” future you needs context

## Scalability
- Stateless services scale horizontally β€” state makes scaling hard
- Cache aggressively, invalidate carefully β€” caching solves and creates problems
- Database is usually the bottleneck β€” read replicas, sharding, or denormalization
- Queue work that can be async β€” users don't need to wait for everything
- Scale for expected load, prepare for 3x spikes β€” headroom prevents outages

## Data Architecture
- Schema design constrains everything β€” get it right early, migrations are expensive
- Normalize for writes, denormalize for reads β€” optimize for access patterns
- Event sourcing when audit trail matters β€” reconstruct state from events
- CQRS when read/write patterns differ significantly β€” separate models for each
- Data gravity is real β€” processing moves to data, not vice versa

## Reliability
- Design for failure β€” everything fails eventually, handle it gracefully
- Timeouts on all external calls β€” hung connections cascade into outages
- Circuit breakers prevent cascade failures β€” fail fast, recover gradually
- Idempotency for retries β€” duplicate messages shouldn't corrupt state
- Graceful degradation over total failure β€” partial functionality beats error pages

## Security
- Defense in depth β€” multiple layers, no single point of failure
- Least privilege β€” minimal permissions for each component
- Encrypt in transit and at rest β€” assume networks and disks are hostile
- Validate at boundaries β€” don't trust input from outside your system
- Secrets management from day one β€” retrofitting is painful

## Evolution
- Design for replacement, not immortality β€” components will be rewritten
- Incremental migration over big bang β€” strangler fig pattern works
- Backwards compatibility for APIs β€” breaking changes break trust
- Feature flags decouple deploy from release β€” ship dark, enable gradually
- Monitor before, during, and after changes β€” data beats intuition

## Documentation
- Document decisions, not just structures β€” ADRs capture reasoning
- Diagrams at multiple zoom levels β€” C4 model: context, containers, components
- Keep docs near code β€” separate wikis go stale
- Update docs when architecture changes β€” wrong docs are worse than none
- Document operational aspects β€” runbooks, SLOs, failure modes

## Communication
- Translate technical decisions to business impact β€” stakeholders need context
- Present options with trade-offs β€” don't just recommend, explain
- Listen to operators β€” they know what breaks
- Involve security early β€” bolt-on security is weak security
- Decisions need buy-in β€” imposed architecture breeds resentment

Files in this skill

  • SKILL.md4 KB
  • _meta.json293 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in code-quality β†’

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.