Agent skill

Decision Map

by SethGammon in SethGammon/Citadel

Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time.

MITAuto-check passedAgent Workflows

Install Decision Map

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

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

GitHub CLI
$ gh skill install SethGammon/Citadel decision-map --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/decision-map .claude/skills/decision-map && 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
decision-map
GitHub stars
922
Token cost
~1.4k tokens
SKILL.md length
675 words
Files
1
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time.

  • Works in 4 steps: ONE MAP PER PLANNING EFFORT. A single… → ONE TICKET PER SESSION. Resolve exactly… → FOG OF WAR. The map is deliberately… → …
  • Agent Workflows work in your project
  • SKILL.md covers Orientation, Protocol, Quality Gates and Fringe Cases, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Decision Map is an agent skill from SethGammon/Citadel. Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time. The planning-loop engine for work that is still being figured out — too fuzzy for a campaign, too big for a single intake item. Resolved tickets graduate into .planning/intake/ for the autopilot to build.

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

It sits in Agent Workflows. It works with Git. 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.

When your agent uses it

  • Agent Workflows work in your project

Example prompts

  • “/decision-map”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. ONE MAP PER PLANNING EFFORT. A single Markdown file at
  2. ONE TICKET PER SESSION. Resolve exactly one ticket, then stop. Map-building is
  3. FOG OF WAR. The map is deliberately incomplete past the frontier. Do not invent
  4. BLOCKING EDGES ARE REQUIRED. Every ticket declares what blocks it. Never resolve

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    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

Decision Map loads about 1.4k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 675 words of instructions outside code blocks.

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

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). 675 words, ~1,406 tokens.

Download SKILL.mdSave it as .claude/skills/decision-map/SKILL.md (or your agent's skills folder).
name
decision-map
description
Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time. The planning-loop engine for work that is still being figured out — too fuzzy for a campaign, too big for a single intake item. Resolved tickets graduate into .planning/intake/ for the autopilot to build.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
decision map, plan this out, figure this out, investigation plan, planning map

Identity

You are the planning-loop engine. You hold thinking state across sessions in one compact, git-tracked artifact — lighter than a campaign, heavier than a TODO. You sit below archon and fleet: use this for the figuring-out that precedes a campaign, when work is still being discovered rather than executed. When a ticket resolves into buildable work, it graduates into .planning/intake/ for autopilot.

Orientation

Use when:

  • An idea has open questions that must be resolved before it can be built.
  • The work is too fuzzy for a campaign and too large for a single intake item.
  • Planning needs to survive across sessions without re-deriving context each time.

Don't use when:

  • The work is already buildable — write a .planning/intake/ item directly.
  • The work is already scoped and sequenced — run a campaign (archon / fleet).

Protocol

Critical constraints (do not violate)
  1. ONE MAP PER PLANNING EFFORT. A single Markdown file at .planning/decision-maps/<slug>.md, git-tracked. It is the canonical artifact and is reloaded whole as context at the start of every session.
  2. ONE TICKET PER SESSION. Resolve exactly one ticket, then stop. Map-building is its own session; do not bootstrap and resolve in the same run.
  3. FOG OF WAR. The map is deliberately incomplete past the frontier. Do not invent tickets you cannot yet see. Push the frontier forward by resolving, not speculating.
  4. BLOCKING EDGES ARE REQUIRED. Every ticket declares what blocks it. Never resolve a ticket whose blockers are open.
Ticket types
  • Research — read docs, third-party APIs, or local resources (planning notes, knowledge base, source). Output: findings recorded in the ticket body.
  • Prototype — throwaway code that answers a question (a small harness for logic/state, or alternate UIs for look-and-feel). Keep only the answer, not the code.
  • Grilling — a conversation that sharpens a decision. Runs the grill discipline.
Mode A — Bootstrap (new map)
  1. Surface the open decisions behind the idea via the grill discipline. Default to explore-and-recommend mode: resolve what the repo and docs answer yourself, and attach a recommended answer to each surfaced fork as the default to confirm later. Escalate to interactive one-question-at-a-time grilling only for forks the repo genuinely cannot resolve.
  2. Write .planning/decision-maps/<slug>.md from the template below, with the frontier marked and initial tickets typed and edged. Each ticket carries its recommendation; leave Resolution empty (resolving is Mode B).
  3. Stop. Building the map is one session's work.
Show full SKILL.md (284 more words)Show less
Mode B — Resume (existing map)
  1. Load the whole map as context.
  2. Pick one frontier ticket whose blockers are all resolved. Resolve it using the right type discipline (grill / prototype / research read).
  3. Record the resolution inline in the ticket body (the decision and why).
  4. Add any newly-discovered tickets with correct blocking edges. Advance the frontier.
  5. If the ticket produced buildable work, write a .planning/intake/<slug>.md item and link it from the ticket.
  6. Stop.
Map template
markdown
# Decision Map: {Effort Name}
Status: active | resolved
Goal: {one line — what this planning effort is trying to decide}

## Frontier
{The tickets currently resolvable. Everything past here is fog.}

## Tickets
### T1 — {title}  [Research|Prototype|Grilling]
Blocked by: {none | T#, T#}
Question: {the specific thing this ticket resolves}
Resolution: {filled in when resolved — the decision and why}
Graduated to: {.planning/intake/<slug>.md, if buildable}

### T2 — ...

Quality Gates

  1. Exactly one map file exists per planning effort, and it is git-tracked.
  2. Exactly one ticket was resolved this session (or the map was only bootstrapped).
  3. No ticket was resolved while any of its blockers were still open.
  4. Every resolution records the decision and its reason inline.
  5. Buildable outcomes were graduated to .planning/intake/, not left in the map.

Fringe Cases

  • .planning/ does not exist: create .planning/decision-maps/ (and .planning/intake/ when graduating) on first write. If the project clearly has no planning convention yet, say so and offer to set it up rather than failing.
  • Map already exists at bootstrap: do not overwrite — switch to Mode B and resume the existing map instead.
  • No frontier ticket is resolvable (all blockers open): report the deadlock and resolve a blocking ticket first; never force-resolve past an open blocker.
  • A ticket turns out unbuildable or moot: record why in its body and close it; do not graduate it to .planning/intake/.

Exit Protocol

Stop after one ticket. If every ticket is resolved, set the map Status: resolved, summarize the decisions, and list the intake items it graduated. Do not roll the map into a campaign here — hand the graduated intake items to autopilot / archon / fleet.

© 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/decision-map of SethGammon/Citadel.

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Decision Map 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.

Decision Map compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Decision Map this skillSethGammon/Citadel922—~1.4kAutomated safety check: PassMIT
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
CodeGraph Agent Evalcolbymchenry/codegraph73k—~950Automated safety check: PassMIT
Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills21k—~1.9kAutomated safety check: PassMIT
O2 Review Loopopenobserve/openobserve22k—~3.7kAutomated safety check: PassAGPL-3.0
Beads Task Memorygastownhall/beads28k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • CodeGraph Agent Eval

    colbymchenry/codegraph

    Benchmarks how much CodeGraph helps a coding agent on a real repository, comparing runs with and without it for a chosen local or published version.

    73k GitHub stars~950 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Neat-Freak Knowledge Closeout

    KKKKhazix/khazix-skills

    Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.

    21k GitHub stars~1.9k tokensUpdated 6 days ago
    Agent WorkflowsAuto-check passed
  • O2 Review Loop

    openobserve/openobserve

    Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.

    22k GitHub stars~3.7k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Beads Task Memory

    gastownhall/beads

    Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.

    28k GitHub stars~1.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.

    24k GitHub stars~3.1k tokensUpdated today
    Agent WorkflowsAuto-check passed

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.

    922 GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

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

    922 GitHub stars~2.2k tokensUpdated 6 days ago
    Auto-check passed
  • Loop

    SethGammon/Citadel

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

    922 GitHub stars~1.4k tokensUpdated 6 days ago
    Auto-check passed
  • Triage

    SethGammon/Citadel

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

    922 GitHub stars~2.7k tokensUpdated 6 days ago
    Auto-check passed
  • Watch

    SethGammon/Citadel

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

    922 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check passed
  • Archon

    SethGammon/Citadel

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

    922 GitHub stars~5.4k tokensUpdated 6 days ago
    Auto-check passed

Works with

Categories

Questions about Decision Map

What does Decision Map do?

Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time. Decision Map is an agent skill from SethGammon/Citadel. Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time.

When should I use Decision Map?

Decision Map fits situations like: agent Workflows work in your project.

How do I install Decision Map in Claude Code?

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

How do I install Decision Map in Codex?

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

Can I use Decision Map 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 decision-map -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/decision-map, .gemini/skills/decision-map, .github/skills/decision-map and .opencode/skills/decision-map in your project.

What does Decision Map need to run?

SKILL.md names no scripts, command-line tools or credentials: Decision Map is instructions for the agent only.

Does Decision Map 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 Decision Map 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 Decision Map use?

Decision Map 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 Decision Map use?

About 1.4k tokens (SKILL.md is roughly 5.6k 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 Decision Map?

Skills that share tags, products or a category with Decision Map: Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars), CodeGraph Agent Eval (colbymchenry/codegraph, 73k stars), Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars) and O2 Review Loop (openobserve/openobserve, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Decision Map?

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.