agent-health
Reads production/traces/agent-metrics.jsonl and displays a per-agent performance summary table for the current or a specified session. Highlights agents with…
Decomposes a product concept into architectural components, domain systems, data models, and integration boundaries. Use when starting system architecture or when the user mentions system design or component breakdown.
$ npx -y skills add tranhieutt/software_development_department --skill design-system --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/design-systemContext preview
The summary Claude sees to decide when to auto-load this skill.
Decomposes a product concept into architectural components, domain systems, data models, and integration boundaries. Use when starting system architecture or when the user mentions system design or component breakdown.
name: design-system type: reference description: "Decomposes a product concept into architectural components, domain systems, data models, and integration boundaries. Use when starting system architecture or when the user mentions system design or component breakdown." effort: 3 allowed-tools: Read, Glob, Grep, Write, Edit, Bash user-invocable: true when_to_use: "When designing system architecture, defining domain boundaries, or creating a component breakdown for a new product or feature"
Ask before designing: 1. **Scale**: How many users/requests/day? Read-heavy or write-heavy? 2. **Consistency**: Strong (banking) or eventual (social feed)? 3. **Availability target**: 99.9% (8.7h/yr downtime) or 99.99% (52min/yr)? 4. **Latency budget**: p99 < 100ms? < 1s? 5. **Geography**: Single region or multi-region?
1M users/day active → ~12 req/s avg, ~120 req/s peak (10x) 1KB per request → 1M req/day = ~1GB/day = ~365GB/year Read:write ratio 10:1 (typical social) → optimize read path first 1 server handles ~1000 req/s (rule of thumb for I/O-bound services)
Client layer → Web / Mobile / API consumers CDN → Static assets, edge caching API Gateway → Rate limiting, auth, routing, SSL termination Services → Domain-specific services (User, Order, Payment, Notification) Cache → Redis for hot data (sessions, rate limits, computed results) Database → Primary DB + Read replicas Message queue → Async operations, event-driven decoupling Storage → Object storage for files (S3/GCS) Monitoring → Metrics, logs, traces, alerts
| Need | Choose | |---|---| | ACID transactions, relations | PostgreSQL | | High-scale document store | MongoDB | | Key-value, cache, pub/sub | Redis | | Time-series data | TimescaleDB / InfluxDB | | Graph relationships | Neo4j | | Full-text search | Elasticsearch | | Analytical/OLAP | ClickHouse / BigQuery |
Cache-aside (read): App checks cache → miss → DB → write to cache Write-through: Write to cache AND DB simultaneously (consistent, slower writes) Write-behind: Write to cache → async flush to DB (fast writes, risk of loss) Read-through: Cache handles DB reads automatically TTL guidelines: - Sessions: 15-30 min - User profile: 5 min - Product catalog: 1 hour - Config/settings: 24 hours
When to use queues: ✓ Async processing (email, PDF generation, notifications) ✓ Rate-limiting downstream services ✓ Decoupling services (order → payment → shipping) ✓ Fan-out (1 event → multiple consumers) Queue selection: - RabbitMQ: complex routing, request-reply, low latency - Kafka: high throughput, event log/replay, stream processing - SQS: managed, simple, AWS-native, at-least-once delivery - Redis Streams: lightweight, same infra as cache
REST: Standard CRUD, simple clients, team familiarity (default choice) GraphQL: Multiple clients with different data needs, reduce over-fetching gRPC: Internal service-to-service, binary protocol, streaming needed WebSocket: Real-time bidirectional (chat, live updates, collaborative tools)
Vertical (scale up): More CPU/RAM — quick, limited ceiling Horizontal (scale out): More instances — requires stateless services Database read replicas: Offload read traffic (good for 80%+ read workloads) Database sharding: Shard by user_id, geography — last resort, complex CQRS: Separate read/write models — when read/write patterns diverge heavily
| Mistake | Better approach | |---|---| | Over-engineering for scale you don't have | Start monolith, extract services at clear pain points | | Synchronous calls to all dependencies | Use async queues for non-critical paths | | No caching strategy | Cache at API layer + DB query results | | Storing sessions in DB | Use Redis; DB sessions don't scale horizontally | | Single point of failure | Redundancy at every critical layer |
Repo: tranhieutt/software_development_department
Reads production/traces/agent-metrics.jsonl and displays a per-agent performance summary table for the current or a specified session. Highlights agents with…
Provides the vendored agent-style v0.3.5 prose rule pack as a portable Claude skill. Use when installing, syncing, applying, or auditing SDD Agent-Style…
Provides Angular best practices for components, modules, services, and reactive patterns. Use when working with Angular TypeScript files, component templates,…
Records unexpected API behaviors, undocumented caveats, version bugs, or non-obvious workarounds into .claude/memory/annotations.md. Use immediately when an…
Defines REST and GraphQL API contracts including endpoints, request/response schemas, auth flows, and versioning strategy. Use when designing a new API,…
Manages the ADR (Architecture Decision Record) registry. Use when recording tech-stack choices, design patterns, or infrastructure decisions with context,…