architect
Given a PRD, produces an implementation architecture: file tree, component breakdown, data model, and a phased build plan with end conditions that Archon can…
Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest.
$ npx -y skills add SethGammon/Citadel --skill infra-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/infra-auditContext preview
The summary Claude sees to decide when to auto-load this skill.
Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest.
name: infra-audit license: MIT description: >- Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest. user-invocable: true auto-trigger: false trigger_keywords: - infra - infrastructure - what databases - what systems - docker-compose - infra audit - map infrastructure - what does this connect to last-updated: 2026-03-29
**Do not use when:**
Scan the project for infrastructure configuration files. Check each category:
**Container orchestration:**
**Environment and secrets:**
**Database and ORM:**
**Message queues and event streaming:**
**Cache:**
**Search:**
**Object storage:**
**External APIs:**
**CI/CD:**
For each discovered item, record:
For each discovered system, trace how the application connects:
1. Find connection strings in env files or config 2. Find the client initialization code (imports, `new Client()`, `createPool()`) 3. Identify which modules/services use this connection 4. Note connection pooling, retry logic, health checks if present
Build a connection graph:
App --> [pool: 10] --> PostgreSQL (primary store) App --> [ioredis] --> Redis (cache + pub/sub) App --> [SDK] --> Stripe (payments)
Based on what's connected and how it's used, identify:
**Access patterns:**
**Missing layers** (flag only when evidence supports the need):
| Signal | Likely Missing | Evidence Required | |---|---|---| | Repeated identical DB queries in hot paths | Cache layer (Redis/Memcached) | Same query in 3+ request handlers | | `setTimeout`/`setInterval` for deferred work | Job queue (Bull/BullMQ/Celery) | Processing that doesn't need to block the response | | Full-text search via `LIKE '%term%'` | Search engine (Elasticsearch/Meilisearch) | Text search on >10K rows | | Large file uploads stored in DB or local disk | Object storage (S3/MinIO) | Binary columns or `fs.writeFile` for user content | | Analytics queries on production tables | Analytics DB (Snowflake/BigQuery/ClickHouse) | Aggregation queries mixed with OLTP | | Multiple services sharing one DB | Event bus or API gateway | 2+ repos writing to same schema | | No connection pooling | Connection pooler (PgBouncer) | Direct connections in serverless/high-concurrency |
**Do not flag something as missing unless the evidence is in the code.**
Output the infrastructure manifest to `.planning/infra-manifest.md`:
# Infrastructure Manifest
> Generated: {ISO date}
> Project: {project name from package.json or repo name}
## Current Systems
### {System Name} -- {Role}
- **Type**: {database|cache|queue|search|storage|auth|payments|...}
- **Product**: {PostgreSQL 15|Redis 7|Stripe SDK|...}
- **Config**: `{file path}`
- **Connection**: {method -- pooled, direct, SDK, ORM}
- **Used by**: {modules/services that import the client}
(repeat for each system)
## Connection Graph
{ASCII diagram of connections -- use /ascii-diagram conventions}
## Access Patterns
- {Pattern 1}: {evidence}
- {Pattern 2}: {evidence}
## Opportunities
### {Opportunity Title}
- **Signal**: {what in the code suggests this}
- **System**: {what would address it -- e.g., "Redis as cache layer"}
- **Impact**: {what improves -- latency, scalability, separation of concerns}
- **Effort**: low | medium | high
(repeat for each opportunity)
## Multi-Repo Considerations
{If the project references other repos, APIs, or shared databases, note them here.
This section feeds directAn open-source operating layer for Claude Code and OpenAI Codex. Citadel routes requests, preserves repository state between sessions, coordinates parallel work, applies repository safeguards, and records evidence and handoffs around the coding agent you
Repo: SethGammon/Citadel
Given a PRD, produces an implementation architecture: file tree, component breakdown, data model, and a phased build plan with end conditions that Archon can…
Autonomous multi-session campaign agent. Decomposes large work into phases, delegates to sub-agents, reviews output, and maintains campaign state across…
Generate perfectly aligned ASCII diagrams — architecture, flow, sequence, box-and-arrow. Uses a programmatic character-grid approach so alignment is guaranteed…
Intake-to-delivery pipeline. Processes pending items from .planning/intake/: briefs new ideas, executes approved work through research → plan → build → verify.…
Deep cost exploration and transparency. Shows real token usage, session costs, campaign spend, burn rates, and model breakdown. Reads Claude Code's native…
End-to-end app creation from a single description. Five tiers: blank project, guided, templated, fully generated, or feature addition to existing codebase.…