Agent skill

Unharness

by SethGammon in SethGammon/Citadel

Safely leave Citadel using the active adoption receipt. An agent skill from SethGammon/Citadel.

MITAuto-check passed

Install Unharness

skills CLI
$ npx skills add SethGammon/Citadel --skill unharness -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SethGammon/Citadel unharness --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/unharness .claude/skills/unharness && rm -rf skills-src

Use ~/.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/

Facts

Skill name
unharness
GitHub stars
923
Token cost
~1.1k tokens
SKILL.md length
473 words
Files
1
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Safely leave Citadel using the active adoption receipt. An agent skill from SethGammon/Citadel.

  • Works in 4 steps: Locate Citadel and inspect adoption… → Create a no-write leave plan → Obtain explicit approval → …
  • SKILL.md covers Orientation, Protocol, Export-only compatibility and Fringe Cases, plus 2 more sections
  • Calls node

What it does

Unharness is an agent skill from SethGammon/Citadel. Safely leave Citadel using the active adoption receipt. Produces a no-write, reviewable plan, preserves a portable archive, removes only exact owned material, and reports modified or externally registered surfaces as retained or unknown. Legacy installs must be imported before exact leave is claimed.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

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.

Example prompts

  • “/unharness”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Locate Citadel and inspect adoption authority
  2. Create a no-write leave plan
  3. Obtain explicit approval
  4. Apply and verify

What it can do on your machine

Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unharness loads about 1.1k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 473 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 473 words, ~1,133 tokens.

Download SKILL.mdSave it as .claude/skills/unharness/SKILL.md (or your agent's skills folder).
name
unharness
description
Safely leave Citadel using the active adoption receipt. Produces a no-write, reviewable plan, preserves a portable archive, removes only exact owned material, and reports modified or externally registered surfaces as retained or unknown. Legacy installs must be imported before exact leave is claimed.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
unharness, remove citadel, uninstall citadel, clean up citadel, remove harness, uninstall harness
last-updated
2026-07-30

/unharness - Receipt-owned exit from Citadel

Orientation

Use this skill when the user wants Citadel removed from a project. Exit is a two-step, receipt-owned operation. A plan never mutates the project. Apply requires the exact saved plan and its confirmation token.

Do not infer ownership from familiar paths. Do not delete .planning/, .citadel/, runtime settings, hooks, skills, or registrations merely because they look Citadel-related.

Protocol

1. Locate Citadel and inspect adoption authority

Read .citadel/plugin-root.txt when present. Otherwise use the directory containing this skill. Check for .citadel/adoption/active.json; the adoption planner also checks the private recovery ledger.

2. Create a no-write leave plan

Choose a plan path inside the project, such as .planning/adoption/leave.plan.json, and run:

bash
node {citadelRoot}/scripts/adopt.js leave plan \
  --target {projectRoot} \
  --out {planPath} \
  --json

Show the user:

  • exact files that will be removed or restored;
  • modified or ambiguous footprint entries that will be retained;
  • portable archive path;
  • runtime registrations whose removal evidence is unknown;
  • the plan digest and confirmation token.

If the result is NOT_ADOPTED, stop. Create a conservative legacy inventory:

bash
node {citadelRoot}/scripts/adopt.js import plan {citadelRoot} \
  --target {projectRoot} \
  --out {importPlanPath} \
  --json

Apply that import only after its own explicit approval. Then create a new leave plan from the resulting receipt. Never describe legacy cleanup as exact removal.

3. Obtain explicit approval

Leaving is destructive. Ask the user to approve the displayed plan and exact confirmation token. Do not apply from an unsaved or regenerated plan.

4. Apply and verify

After approval:

bash
node {citadelRoot}/scripts/adopt.js leave apply {planPath} \
  --confirm {confirmationToken} \
  --json

node {citadelRoot}/scripts/adopt.js doctor \
  --target {projectRoot} \
  --json

Doctor may report not_adopted after a clean leave. Report the leave receipt, archive path, removed entries, retained conflicts, and every unknown unregistration observation. “Citadel removed” is permitted only when the receipt proves every required local and external removal.

Export-only compatibility

When the user explicitly wants a human-readable export without leaving:

bash
node {citadelRoot}/scripts/unharness.js {projectRoot} --export-only

This writes the legacy Markdown archive but does not remove harness material.

Show full SKILL.md (192 more words)Show less

Fringe Cases

  • If .planning/ does not exist, treat it as an empty portable-state set and show the setup/import hint; do not create it merely to leave.
  • Missing or invalid adoption authority blocks leave. Use import plan or private-ledger recovery; never guess ownership.
  • A changed saved plan, source, target, or pre-image requires a fresh plan.
  • An unavailable runtime unregister API stays unknown; report the manual observation required.
  • If the Citadel root cannot be located, stop with the exact missing path.

Quality gates

  • Planning is read-only unless the user explicitly requests --out.
  • Apply consumes the exact saved plan and revalidates source, target, and pre-images.
  • Modified owned material is retained with an explicit conflict.
  • Shared runtime files restore exact pre-images only while installed bytes remain exact.
  • Missing receipts, malformed receipts, and unenumerable registrations are unknown or blocked, never successful.
  • The portable archive and private receipt ledger remain available for restore and recovery.

Exit Protocol

Return the leave operation ID and receipt digest, portable archive path, exact removed/restored counts, retained conflicts, and unknown external removals. State plainly whether exact exit was proved. Do not claim success from a completed command when required removal evidence is missing.

© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/unharness of SethGammon/Citadel.

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Unharness 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.

Unharness compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unharness this skillSethGammon/Citadel923—~1.1kAutomated safety check: PassMIT
AdoptDonchitos/Claude-Code-Game-Studios26k—~1.2kAutomated safety check: NotesMIT
Leave Managementsickn33/agentic-awesome-skills47k1 repos~3.7kAutomated safety check: PassMIT
Modeling Activation MetricsPostHog/posthog40k—~1.4kAutomated safety check: PassCustom licence
Receipt Accountingsickn33/agentic-awesome-skills47k1 repos~5.5kAutomated safety check: PassMIT
Bug Receiptgithub/awesome-copilot40k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Adopt

    Donchitos/Claude-Code-Game-Studios

    Brownfield audit — do existing artifacts actually work?. An agent skill from Donchitos/Claude-Code-Game-Studios.

    26k GitHub stars~1.2k tokensUpdated yesterday
    Game DevelopmentAuto-check: notes
  • Leave Management

    sickn33/agentic-awesome-skills

    Leave register: request, leave type, employee and department, manager and approver, start and end dates, days requested, leave balances, handover notes and status.

    47k GitHub starsUsed in 1 repo~3.7k tokens
    Auto-check passed
  • Official

    Build reusable activation models — an activation-rate metric and a per-user/per-account activated flag — on either PostHog data-warehouse views (HogQL) or an external dbt project.

    40k GitHub stars~1.4k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Receipt Accounting

    sickn33/agentic-awesome-skills

    Receipt register: payer, mode, gross amount received, invoice allocation, unapplied amount and TDS collected.

    47k GitHub starsUsed in 1 repo~5.5k tokens
    Business, Finance & HRAuto-check passed
  • Bug Receipt

    github/awesome-copilot

    Official

    Close defects and incidents with a BUG RECEIPT and VERIFIED, PARTIAL, or BLOCKED status after diagnosis, repair, or recovery.

    40k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Summarize Activity

    alpinejs/alpine

    Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.

    32k GitHub stars~1.6k tokensUpdated 3 days ago
    Backend & APIsAuto-check: notes

More from SethGammon/Citadel

All 48 skills in this repo
  • Create Skill

    SethGammon/Citadel

    Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.

    923 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

    Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.

    923 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Loop

    SethGammon/Citadel

    Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.

    923 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Triage

    SethGammon/Citadel

    GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.

    923 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Watch

    SethGammon/Citadel

    File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.

    923 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Archon

    SethGammon/Citadel

    Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.

    923 GitHub stars~5.4k tokensUpdated today
    Auto-check passed

Questions about Unharness

What does Unharness do?

Safely leave Citadel using the active adoption receipt. An agent skill from SethGammon/Citadel. Unharness is an agent skill from SethGammon/Citadel. Safely leave Citadel using the active adoption receipt.

How do I install Unharness in Claude Code?

Run `npx skills add SethGammon/Citadel --skill unharness -a claude-code`. Or copy the skill folder (skills/unharness in SethGammon/Citadel) into .claude/skills/unharness in your project. Claude Code loads it when a task matches its description.

How do I install Unharness in Codex?

Run `npx skills add SethGammon/Citadel --skill unharness -a codex`. Or copy the skill folder (skills/unharness in SethGammon/Citadel) into .agents/skills/unharness in your project. Codex loads it when a task matches its description.

Can I use Unharness in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill unharness -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unharness, .gemini/skills/unharness, .github/skills/unharness and .opencode/skills/unharness in your project.

What does Unharness need to run?

Going by SKILL.md and its folder, Unharness needs the command-line tools its instructions call (node).

Does Unharness access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Unharness safe to install?

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.

What licence does Unharness use?

Unharness is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unharness use?

About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Unharness?

Skills that share tags, products or a category with Unharness: Adopt (Donchitos/Claude-Code-Game-Studios, 26k stars), Leave Management (sickn33/agentic-awesome-skills, 47k stars), Modeling Activation Metrics (PostHog/posthog, 40k stars) and Receipt Accounting (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unharness?

SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 923 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 8, 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.