MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
First-run experience for the harness. An agent skill from SethGammon/Citadel.
$ npx skills add SethGammon/Citadel --skill setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SethGammon/Citadel setup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/setup .claude/skills/setup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "setup" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/setup into .claude/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/SethGammon/Citadel/tree/main/skills/setupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add SethGammon/Citadel --skill setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SethGammon/Citadel setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/setup .agents/skills/setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "setup" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/setup into .agents/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SethGammon/Citadel --skill setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SethGammon/Citadel setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/setup .cursor/skills/setup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "setup" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/setup into .cursor/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/SethGammon/Citadel.git --path skills/setup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add SethGammon/Citadel --skill setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SethGammon/Citadel setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/setup .gemini/skills/setup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "setup" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/setup into .gemini/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install SethGammon/Citadel setupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add SethGammon/Citadel --skill setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/setup .github/skills/setup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "setup" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/setup into .github/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SethGammon/Citadel --skill setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SethGammon/Citadel setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/setup .opencode/skills/setup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "setup" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/setup into .opencode/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
setupFirst-run experience for the harness. An agent skill from SethGammon/Citadel.
Setup is an agent skill from SethGammon/Citadel. First-run experience for the harness. Three modes: Recommended (guided, ~3 min), Full Tour (guided + skill walkthrough, ~8 min), and Express (zero questions, ~30 sec). Installs hooks first, detects stack, configures harness.json, runs a live demo on real code, and prints a reference card.
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `__benchmarks__/already-configured.md` and `__benchmarks__/fresh-project.md`).
It sits in Agent Workflows. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodecodexnpxmypygocargogitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ANTHROPIC_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Setup loads about 4.5k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,781 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 1,781 words, ~4,500 tokens.
.claude/skills/setup/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Configures the harness for a specific project: installs hooks, detects stack, writes harness.json, and optionally demos the system on real code. Flag: /do setup --express skips mode selection and runs Express directly. Reference tables and layouts: docs/SETUP_REFERENCE.md.
Use when: first-run configuration of Citadel on a new project -- installs hooks, generates harness.json, scaffolds .planning/. Don't use when: harness is already configured and you want to verify it (use /verify); adding a single skill to an existing project (copy SKILL.md manually).
Run ls docs/citadel/ 2>/dev/null. If docs/citadel/ exists and contains .md files with citadel-archive: true in frontmatter, extract the exported-at date and prompt once:
Found a Citadel archive from {exported-at date}.
Campaigns: {N} Postmortems: {N} Backlog items: {N} Research: {N}
Restore history into .planning/ during setup? [Y/n]Y or Enter → set restoreArchive = true, restore after Step 1 (below). n → skip silently. No archive found → skip entirely, no output.
ARCHIVE RESTORE (runs after Step 1 if restoreArchive = true). Splitting: each ## Section Title becomes one restored file; strip frontmatter before writing.
| File | Restore to |
|---|---|
campaigns.md | Split sections → .planning/campaigns/completed/{name}.md |
postmortems.md | Split sections → .planning/postmortems/{name}.md |
research.md | Split sections → .planning/research/{name}.md |
backlog.md | Split sections → .planning/intake/{name}.md |
discoveries.md | Split sections → .planning/discoveries/{name}.md |
project.md | Strip frontmatter → .citadel/project.md |
harness.json.md | Strip frontmatter → .claude/harness.json (Citadel's shared config path for all runtimes, including Codex) |
After restore: ✓ Archive restored — {N} campaigns, {N} postmortems, {N} backlog items
Welcome to Citadel.
How would you like to get started?
[1] Recommended — auto-detect your stack, install hooks, live demo (~3 min)
[2] Full Tour — everything in Recommended + guided skill walkthrough (~8 min)
[3] Express — zero questions, auto-detect, hooks installed, done (~30 sec)
Press Enter for Recommended, or type 1, 2, or 3.If harness.json already exists with full config, add: [4] Update — reconfigure existing setup (current: {language}, {skillCount} skills). Default: Recommended. If --express flag passed: skip mode selection, run Express.
Hooks must be live before anything else. Run node {citadel-root}/scripts/install-hooks.js. Find {citadel-root}: read .citadel/plugin-root.txt; fallback: directory containing this SKILL.md. The installer resolves the current config (or the bootstrap Standard + Core + Persistence default), writes .citadel/effective-config.json, installs only hooks owned by effective bundles, preserves non-Citadel settings, and is idempotent.
On success: ✓ {N} hooks installed (protect-files, external-gate, circuit-breaker, quality-gate + more)
On failure: output the error, explain manual install path (node /path/to/Citadel/scripts/install-hooks.js), continue — setup must not abort.
Auto-detect by scanning the project root. Never ask what can be read. (Readable tables: docs/SETUP_REFERENCE.md#stack-detection-tables.)
tsconfig.json → TypeScript; package.json without tsconfig → JavaScript; requirements.txt or pyproject.toml → Python; go.mod → Go; Cargo.toml → Rust; pom.xml or build.gradle → Javanext → Next.js; react (no next) → React; vue → Vue; svelte → Svelte; @angular/core → Angular; express → Express; fastify → Fastifypnpm-lock.yaml → pnpm; yarn.lock → yarn; bun.lockb → bun; package-lock.json → npm; requirements.txt → pip; Pipfile → pipenvjest, vitest, mocha, jasmine; Python: pytest in requirements.txt or pyproject.tomlnpx tsc --noEmit (per-file: no, project-scope incremental); Python mypy {file} or pyright {file} (per-file: yes); Go go vet ./..., Rust cargo check, JavaScript none (per-file: no)Confirmation (Recommended + Full Tour only): output Detected: {language}{+ framework if any} · {packageManager} · {testFramework if any}, then Correct? [y/n/edit]. y/Enter → proceed; n/edit → ask for corrections inline. Express: skip confirmation, use detected values.
Create .planning/tmp/citadel-stack.json with only the detected compatibility
fields below. This input is not authoritative and must not contain profile,
bundle, consent, trust, or policy fields:
{
"language": "typescript",
"framework": "react",
"packageManager": "npm",
"typecheck": { "command": "npx tsc --noEmit", "perFile": false, "timeoutMs": 25000 },
"test": { "command": "npm test", "framework": "vitest" },
"qualityRules": { "builtIn": ["no-confirm-alert", "no-transition-all"], "custom": [] },
"protectedFiles": [".claude/harness.json", ".claude/settings.json"],
"features": { "intakeScanner": true, "telemetry": true },
"registeredSkills": ["do", "review"],
"registeredSkillCount": 2,
"agentTimeouts": { "skill": 600000, "research": 900000, "build": 1800000 }
}Substitute the detected values and complete skill list; use JSON null when no
framework or test framework is detected.
Preview the deterministic version-2 config migration without writing:
node {citadelRoot}/scripts/citadel-config.js initialize \
--input .planning/tmp/citadel-stack.json --runtime {claude-code|codex|opencode} --jsonShow profile, bundles, source/candidate digests, and changed fields. Apply only after the selected setup mode authorizes this exact plan:
node {citadelRoot}/scripts/citadel-config.js initialize \
--input .planning/tmp/citadel-stack.json --runtime {claude-code|codex|opencode} --apply --jsonRecommended and Express use standard@1.0.0 with Core + Persistence. Full Tour
may preview Parallel and Operations, but each bundle needs an explicit enable
plan. If the runtime is partial, show the named adapter and require
--allow-degraded-runtime; never silently describe degraded support as full.
Delivery remains off until the user explicitly enables it.
The apply creates a sibling backup when replacing an existing config, validates
the observed digest, rolls back a failed write, and reconciles
.citadel/effective-config.json. Re-run install-hooks.js after the final
bundle choice so disabled hook families are removed from the generated runtime
projection.
Note: perFile applies to Python checkers only; TypeScript always runs a project-scope incremental check and ignores perFile with an advisory.
Skill registry rebuild: populate registeredSkills from every directory under {citadelRoot}/skills/ plus .claude/skills/. Set registeredSkillCount to match.
Routing table regeneration: run node {citadelRoot}/scripts/generate-routing.js, then verify with node {citadelRoot}/scripts/generate-routing.js --check — exit 0 means all routing surfaces are in sync (what it regenerates: docs/SETUP_REFERENCE.md#routing-surfaces). If the script is missing (older Citadel install), skip this step silently.
Dependency pattern suggestions (Recommended + Full Tour only): read package.json for @tanstack/react-query, zustand, date-fns, zod. For each match ask: "I see {package} installed. Warn agents when they use {anti-pattern}? [y/n]" and add accepted patterns to dependencyPatterns in harness.json (anti-pattern and message table: docs/SETUP_REFERENCE.md#dependency-pattern-suggestions).
Run node {citadelRoot}/scripts/bootstrap-project-guidance.js --project-root {projectRoot} — creates .citadel/project.md and compatible CLAUDE.md plus AGENTS.md guidance. Safe to run — it preserves user-authored files.
Claude Code v2.1.277 or later can use only AGENTS.md, but the version alone does not prove the built-in support is available in the current environment. When the operator has confirmed the Project instructions setting or an AGENTS.md loaded startup notice, run node {citadelRoot}/scripts/bootstrap-project-guidance.js --project-root {projectRoot} --claude-agents-md-supported. The script detects the installed Claude Code version, migrates only byte-for-byte unchanged Citadel guidance, and retains CLAUDE.md when the version or capability is unknown or project guidance would take precedence.
Project description (Recommended + Full Tour only): ask "What's this project? One line is fine — or press Enter to use the package name." Skip if CLAUDE.md already exists with content.
CLAUDE.md merge rules:
## Citadel Harness section noting the harness and .claude/harness.json## Citadel Harness section → append that section at bottom only## Citadel Harness → skip, don't duplicatePresent as one prompt:
Optional integrations — choose any, or press Enter to skip all:
[g] GitHub — scaffold Claude triage workflow for issues + PRs
[m] MCP — create .mcp.json with common servers pre-configured
[b] Both
[s] SkipGitHub: create .github/workflows/ if missing; copy .planning/_templates/claude-triage.yml → .github/workflows/claude-triage.yml and .planning/_templates/REVIEW.md → REVIEW.md (skip any that already exist). Output: "Add ANTHROPIC_API_KEY to Settings > Secrets > Actions to activate."
MCP: copy .planning/_templates/.mcp.json → .mcp.json (skip if exists). Output: "Edit .mcp.json to uncomment the servers you want."
Run node {citadelRoot}/scripts/repository-memory.js status --project-root {projectRoot} --json.
enabled: report the stored file/version counts and do not prompt.unavailable: skip the prompt; this optional capability requires Node.js 22.13+."Preserve completed Citadel lessons across disposable clones in a local user-level SQLite database? [y/N]"On yes, run:
node {citadelRoot}/scripts/repository-memory.js enable --project-root {projectRoot}State exactly what is stored: completed campaigns, postmortems, research,
discoveries, backlog Markdown, and .citadel/project.md. State what is excluded:
active work, telemetry, worktrees, consent, runtime config, and credentials. Raw
remote URLs and clone paths are excluded as identity metadata, but allowlisted
documents are stored verbatim and may mention either. Express mode never opts in
automatically, but an already-enabled repository continues to restore and sync
through lifecycle hooks.
Find target file: git diff --name-only HEAD~1 HEAD 2>/dev/null | head -5, filter for source files, use the most recently changed. If no git history, use find for recently modified files.
Pain point question:
What's your biggest frustration with AI coding tools right now?
[a] Repetitive context — I keep re-explaining my codebase
[b] Quality — the agent breaks things or misses issues
[c] Context loss — every new session starts from zero
[d] Scale — fine for small tasks, falls apart on big ones
[e] Something else / skip demoDemo by pain point — execute on real code, show output:
/review on target file — "This review uses the harness.json config you just set up — it already knows your stack, conventions, and quality rules."/review on target file — "The quality-gate hook just ran on every edit made during setup. Here's what that looks like on your code:".planning/ structure, explain campaigns — "Sessions now persist. Start a campaign today, close your laptop, resume tomorrow."/review on largest source file — "For bigger work: /marshal for multi-step sessions, /archon for multi-day campaigns, /fleet for parallel agents."Present the five skill families in order, using the per-skill one-liners and timings from docs/SETUP_REFERENCE.md#full-tour-walkthrough:
/review, /test-gen, /systematic-debugging — show by running /review on the Step 6 file if not already done/scaffold, /refactor, /create-skill/research (add --parallel for multi-scout), /infra-audit/marshal, /archon, /fleet/do next, /dashboard, /cost, /learnAfter walkthrough: That's the system. Everything routes through /do — you never have to choose the right tool.
Print the reference card using the canonical boxed layout at docs/SETUP_REFERENCE.md#reference-card, filled with actual counts from the detected config. It must contain, in order:
CITADEL READY — {N} skills · {N} hooks live · {language}{+ framework}/do [anything] — describe what you want in plain English, the router handles the rest/do review [file], /do fix [description], /do why is [thing] broken, /do build [feature], /do test [file], /do next, /do status, /do continue/marshal (multi-step, one session), /archon (multi-session campaign), /fleet (parallel agents)/do --list, /create-skill, /improve [target]docs/SKILLS.md · INSTALL.md · /do --listExpress mode: print abbreviated card (THE ONE COMMAND + WHAT'S NOW PROTECTING only).
Express: Done. {N} hooks live, {N} skills registered.
Type /do [anything] to start.
Recommended: Setup complete. Citadel is configured for {language}{+ framework}.
{N} hooks are protecting this session. {N} skills are registered.
Type /do [anything] to get started — or /do --list to browse all skills.
Full Tour: Tour complete. You've seen the full system.
{N} hooks live · {N} skills registered · trust level: {level}
The best next thing: /do "review the most important file in this codebase"
Update: Configuration updated. {N} hooks reinstalled, {N} skills re-registered.
Changes: {list what changed vs previous config}Plugin not found (.citadel/plugin-root.txt missing): Prompt for Citadel install path. Write answer to .citadel/plugin-root.txt.
Project has no source files: Skip demo. Output: "Once you have code, try /review [file] to see the harness in action."
harness.json is protected and Write tool is blocked: Do not bypass the hook.
Use the plan-first citadel-config.js initialize flow above.
Existing CLAUDE.md with no blank line at end: Append newline before ## Citadel Harness section.
Stack detection fails entirely: Fall back to: "What's your primary language? (typescript / javascript / python / go / rust / other)"
Re-running setup on configured project (Update mode): Show diff of what would change. Don't silently overwrite. Confirm each change.
bootstrap-project-guidance.js not found: Skip silently — fall back to manual CLAUDE.md template.
Disclosure: "Configuring Citadel for this project. Will preview a versioned config, reconcile the effective receipt, and install hooks owned by the selected bundles."
Reversibility: amber. Writes receipted config/hook state and creates .planning/; undo through node scripts/adopt.js leave plan --target . --out ../citadel-leave.plan.json, then apply that reviewed plan with its exact token
Trust gates:
registeredSkillCount matching actual skill count.citadel/effective-config.json must be current for the harness source digestDo not output a HANDOFF block. Setup is the beginning. After the closing line, wait for the user's next command.
© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/setup of SethGammon/Citadel.
Open the folder on GitHubat commit e41ff1d
Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Setup this skillSethGammon/Citadel | 922 | — | ~4.5k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 62 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 37k | 11 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 34 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Executing Plans Inlineobra/superpowers | 296k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 37k | 8 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
SethGammon/Citadel
Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.
SethGammon/Citadel
Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.
Categories
First-run experience for the harness. An agent skill from SethGammon/Citadel. Setup is an agent skill from SethGammon/Citadel. First-run experience for the harness.
Setup fits situations like: agent Workflows work in your project.
Run `npx skills add SethGammon/Citadel --skill setup -a claude-code`. Or copy the skill folder (skills/setup in SethGammon/Citadel) into .claude/skills/setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SethGammon/Citadel --skill setup -a codex`. Or copy the skill folder (skills/setup in SethGammon/Citadel) into .agents/skills/setup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/setup, .gemini/skills/setup, .github/skills/setup and .opencode/skills/setup in your project.
Going by SKILL.md and its folder, Setup needs the command-line tools its instructions call (node, codex, npx, mypy, go and cargo) and credentials named ANTHROPIC_API_KEY. Our summary lists: Python 3; Node.js; A credential in ANTHROPIC_API_KEY.
SKILL.md contains no URLs. Its commands use npx and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Setup is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Setup: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 37k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 296k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 922 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 1, 2026.
Source: SethGammon/Citadel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.