skills/setup/SKILL.md
First-run experience for the harness. Detects the project stack, scaffolds the .citadel/ state directory, generates configuration, runs one real task as a demo, and prints a reference card of all available skills. Gets someone from install to first `do` command in 5 minutes.
npx skillsauth add special-place-administrator/citadel_codex setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are the setup wizard. You configure the harness for a new project. Your job is to make the first 5 minutes feel effortless — by the end, the user has a working harness, they've seen it operate on their code, and they know every skill available.
Run do setup on any new project to configure the harness. This is the
first thing a user does after installing Citadel Codex skills into their
AI harness.
This skill is invoked through the do router — the first thing the user
experiences IS the system they'll use for everything.
Q1: Project description Ask: "What's your project? One sentence is fine."
.citadel/config.jsonQ2: Stack detection Auto-detect first by scanning the project root:
tsconfig.json → TypeScriptpackage.json (no tsconfig) → JavaScriptrequirements.txt / pyproject.toml → Pythongo.mod → GoCargo.toml → Rustpom.xml / build.gradle → JavaAlso detect:
Confirm with user: "I detected [language] with [framework] using [package manager]. Correct?" If detection fails: ask "What's your primary language and framework?"
Q3: Pain point Ask: "What's your biggest pain point with AI coding assistants right now?" Present options:
Purpose: determines which skill to demonstrate and which features to highlight.
Verify .citadel/ directory exists
node runtime/cli.js init to create the state treeGenerate .citadel/config.json based on detected stack:
{
"project": "{user's description or repo name}",
"language": "{detected}",
"framework": "{detected or null}",
"packageManager": "{detected}",
"testFramework": "{detected test framework}",
"typecheck": {
"command": "{language-appropriate command}",
"perFile": true
},
"registeredSkills": ["{list of all skill directory names}"],
"registeredSkillCount": "{count of skill directories}"
}
Skill registry rebuild: Register all skills from skills/*/SKILL.md.
Populate registeredSkills with every skill directory name and set
registeredSkillCount to match.
Language-specific typecheck configuration:
| Language | Command | Per-file? |
|---|---|---|
| TypeScript | npx tsc --noEmit | yes |
| Python (mypy) | mypy | yes |
| Python (pyright) | pyright | yes |
| Go | go vet ./... | no (package-level) |
| Rust | cargo check | no (project-level) |
| JavaScript | (none) | no |
| Java | (none) | no |
If the language checker isn't installed, log a message: "Note: [mypy/pyright] not found. Install it for per-file type checking, or the typecheck check will be skipped."
Pick a demo task based on the user's pain point:
| Pain Point | Demo | What It Shows |
|---|---|---|
| (a) Repetitive prompts | Run do review on a recently changed file | Skill loading, structured output |
| (b) Quality issues | Run do review on a file with potential issues | Quality enforcement, specific findings |
| (c) Context loss | Show the campaign file structure, explain persistence | Campaign system |
| (d) Scaling | Run do review on the most complex file | Depth of analysis |
| (e) Something else | Run do review on the most recently modified file | Safe default |
Execute the demo on the user's actual code. Not a canned example.
If the project has no source files yet (empty project), skip the demo and say:
"Once you have some code, try do review [file] to see the harness in action."
Print this reference card:
┌──────────────────────────────────────────────────────┐
│ │
│ HARNESS READY — 25 skills registered │
│ │
│ do [anything] Route to the right tool │
│ do status Show active work │
│ do continue Resume where you left off │
│ do --list Show all 25 skills │
│ │
│ CORE SKILLS │
│ review 5-pass code review │
│ test-gen Generate tests that run │
│ doc-gen Generate documentation │
│ refactor Safe multi-file refactoring │
│ scaffold Project-aware scaffolding │
│ create-skill Build your own skills │
│ │
│ RESEARCH & DEBUGGING │
│ research Structured investigation │
│ research-fleet Parallel multi-scout │
│ experiment Metric-driven optimization │
│ systematic-debugging Root cause analysis │
│ │
│ ORCHESTRATORS │
│ marshal [thing] Multi-step, one session │
│ archon [thing] Multi-session campaigns │
│ fleet [thing] Parallel campaigns │
│ │
│ NEXT STEPS │
│ 1. Try `do review [your most important file]` │
│ 2. Run `do create-skill` to capture a pattern │
│ 3. See docs/SKILLS.md for the full reference │
│ │
└──────────────────────────────────────────────────────┘
.citadel/ directory must exist (create if missing)config.json must be generated with correct language detectionAfter printing the reference card:
"Setup complete. The harness is configured for {language} with {framework}.
Type do [anything] to get started."
Do not output a HANDOFF block — this is the beginning, not the end.
development
GitHub issue and PR investigator. Pulls open issues/PRs, classifies them, searches the codebase for root cause or reviews contributed code, proposes fixes with file:line references, and optionally implements fixes. Handles both issues and pull requests.
development
Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns
development
Four-phase root cause analysis: observe, hypothesize, verify, fix. Enforces investigation before code changes and stops guess-and-check debugging.
data-ai
Summarize the current session into a compact HANDOFF block for the next session or delegated agent.