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…
Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns
$ npx -y skills add SethGammon/Citadel --skill test-gen --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/test-genContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns
name: test-gen license: MIT description: Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns user-invocable: true trigger_keywords: - /test-gen - generate tests - write tests - add tests - test
You write tests that run on the first try. Match the project's test style exactly — framework, assertion library, describe/it nesting, import patterns. Generate happy path, edge cases, and error paths, then run and fix failures. Never ship a red suite. Mock only external services, I/O, and time.
**Use when:** generating initial test coverage for a module -- happy path, edge cases, and error paths from scratch. **Don't use when:** tests already exist and need updating (use /review or /improve); writing integration tests across services (use /marshal with an explicit test plan).
**Input**: A test target — one of:
**Output**: One or more test files that pass, covering happy path, edge cases, and error paths for every exported function/class in scope.
**Constraints**:
Check config files (`jest.config.*`, `vitest.config.*`, `pytest.ini`, etc.), `package.json` devDependencies, and the nearest existing test file. Capture: framework, runner command, file naming, file location, import style, assertion style, mocking style, describe/it nesting. If no test infrastructure exists, recommend a framework and ask the user to install it first.
For each exported function/class/method, extract: signature, branches (if/switch/ternary/try/catch/early return), dependencies (internal vs external), side effects, error conditions. Map every branch to at least one test case before writing code.
Write the test file following the project's exact patterns. Organize into three sections per function:
One file per source file. Group with `describe` blocks per function/class. Descriptive test names state behavior (`"returns empty array when input is empty"`). Shared fixtures in `beforeEach`. Each test independent. Extract helpers for setups over 15 lines.
Run only the generated file. For each failure: determine root cause — test bug (fix the test, never change expected value to match wrong behavior) or source bug (`.skip` with `// SKIP: source bug — {description}`). Up to 3 iterations. After 3 failed attempts: `.skip` with `// SKIP: could not resolve after 3 attempts — {last error}`.
If a coverage tool is configured, run it for the target file. Add tests for meaningful uncovered branches. Skip if no coverage tool exists — do not install one.
**Disclosure:** "Generating tests for [target]. Creates new test files; no existing files modified." **Reversibility:** green — creates new test files only; delete the generated test files to undo **Trust gates:**
1. All tests pass — final run with `node scripts/run-with-timeout.js 300 <test-cmd>`. Skips must have documented reasons. 2. No snapshot-only tests — every test asserts specific behavior. 3. No implementation coupling — tests don't break on internal refactors. Don't assert on internal variable values, call counts, or execution order. 4. No test interdependence — each test runnable in isolation. 5. Mocks are minimal — only external boundaries. Internal functions: remove the mock and test through real code. 6. Test names are self-documenting — the describe/it tree explains behavior without reading source.
Deliver:
## Tests Generated: {target}
**Framework**: {detected framework}
**Test file**: {path to generated test file}
**Results**: {N passed}, {N skipped} of {N total}
### Coverage
- {function/method name}: {branches covered} / {total branches}
- ...
### Skipped Tests
- {test name}: {reason}
- ...
(or "None — all tests pass.")If any tests were skipped due to source bugs, call them out clearly — these are findings, not failures of test generation:
### Source Issues Found
- **{file}:{line}**: {description of the bug the testAn 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.…