done
Skill4 starsChanged 3 months agoMITView on GitHub
Confirm or abandon the session goal with NAT-backed evidence evaluation. Triggered by /done, /done confirm, /done abandon <reason>, /done amend <text>, /done override [reason].
- Reads credentials
We split this skill into the rules it gives an agent
2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 32 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 17
When the user wants to record ABANDONED <reason> or amend the goal.
- Very specific: line 43
Default model: DONE_NAT_MODEL env if set, else the public catalog ID nvidia/nemotron-3-ultra-550b-a55b:free.
“Common” is measured: kept by at least 6 in 10 of the 32 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/done
Surfaces a candidate verdict against the captured session goal using a NAT-backed goal-evaluator panelist, and writes the authoritative user.verdict into the daily outcomes log.
When to use
- End of a session, when the user believes the goal has been met (or not).
- When the user wants to record
ABANDONED <reason>or amend the goal.
Subcommands
| Subcommand | Behavior |
/done or /done confirm | Read latest outcomes evidence + last goal stanza. Invoke NAT goal-evaluator. AGREE → write user.verdict=MET. DISAGREE → surface NAT rationale; ask user to override or amend. INSUFFICIENT → ask user for explicit verdict using NAT's GAPS. NAT ERROR → fall through to user_only. |
/done abandon <reason> | Skip NAT call. Write user.verdict=ABANDONED with reason=<reason>. |
/done amend <text> | Forward to /goal amend <text>; no outcomes entry written. |
/done override [reason] | Skip NAT call. Write user.verdict=MET with evaluator=user_override, nat_verdict=OVERRIDDEN, and reason=<reason> (default "user override" if omitted). |
override exists because the user is authoritative and NAT is advisory: when NAT's DISAGREE
or INSUFFICIENT_EVIDENCE verdict is wrong (e.g. it misread evidence), the user needs a way to
close the goal without either being stuck in a confirm loop or having to lie about NAT's
verdict — override records the disagreement honestly via evaluator=user_override /
nat_verdict=OVERRIDDEN, it does not fake an AGREE.
Implementation
The skill runs ~/.claude/skills/done/done.sh (and eval.py) via Python 3.12. Run with the
sandbox disabled — done.sh writes the outcomes log under ~/.claude/audit/, which the Bash
sandbox blocks. UUID resolution matches goal.sh ($CLAUDE_SESSION_ID → $CLAUDE_CODE_SESSION_ID
→ $$.json → newest-file-with-warning), so /done grades the right session. The Python module mirrors the validate-recommendation v3 panel/dispatch.py pattern: a single mockable _invoke_nat seam and ERROR-fallback wrapping so all NAT/HTTP/parse failures degrade gracefully to user_only.
NAT model
Default model: DONE_NAT_MODEL env if set, else the public catalog ID
nvidia/nemotron-3-ultra-550b-a55b:free.
Backend: DONE_BACKEND selects the provider — nat-nim (default) or
nat-openai for any OpenAI-compatible endpoint, including OpenRouter.
Endpoint resolution: DONE_NAT_ENDPOINT if set, else (for nat-openai)
OPENAI_BASE_URL.
Auth key resolution: DONE_NAT_API_KEY if set, else (for nat-openai)
OPENAI_API_KEY.
OpenRouter :free routes may log prompts for provider training; use a paid route or a self-hosted endpoint for sensitive work.
Private hub-specific details — internal model ID forms, the nat-nim
panel-fallback endpoint/key chain, and the internal endpoint host — live in
docs/nat-hub-endpoints.md and are never extracted to the public toolkit.
Spec
docs/superpowers/specs/2026-05-18-done-hook-design.md §Component 5.
Other versions36 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 36
- bholmesdev/hubble.md★ 1.5ksame name
- bholmesdev/skills★ 179same name
- endlessblink/master-plan★ 26same name
- fredoliveira/agents★ 24same name
- Melvynx/ai-maxxing-skills★ 23same name
- oldwinter/skills★ 10same name
- duthaho/skillhub★ 9same name
- Trejon-888/ix-claude-code-starter-kit★ 9same name
- HaipingShi/coderail★ 8same name
- ohm41321/luciazero★ 6same name
26 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use work, simplify and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
vbrevikSkillwork
Use when the user says 'plan', 'todo', 'copy plan', 'append plan', 'resume plan', 'priorities', or 'what's next'.
Also in 3 projects that use this
Hugging FaceSkillsimplify
Refactor code after tests pass. The "Refactor" phase of Red-Green-Refactor.
Also in 5 projects that use this
OpenAISkilltranscribe
Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio/video, extract text from recordings, or label speakers in interviews or meetings.
Also in 3 projects that use this
genomewalkerSkilllearn
Learn from web sources, generate SKILL.md, and store key patterns in soul memory. Trigger keywords: learn, skill-gen, web-learn, documentation, tutorial.
Also in 3 projects that use this
GoogleSkillgrill-me
A relentless interview to sharpen a plan or design.
Also in 4 projects that use this
In this repository48 other files it gives its agents.
- .claude/templates/AGENTS.mdAGENTS.md
- docs/agents.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- .cursor/rules/core.mdcCursor rule
- .cursor/rules/go.mdcCursor rule
- .cursor/rules/k8s.mdcCursor rule
- .cursor/rules/node.mdcCursor rule
- .cursor/rules/python.mdcCursor rule
- .cursor/rules/rust.mdcCursor rule
- .cursor/rules/tdd.mdcCursor rule
- .cursor/rules/workbench.mdcCursor rule
- llms-full.txtllms.txt
- llms.txtllms.txt
- cmux-sprint-orchestratorSkill
- config-auditSkill
- eurekaSkill
- goalSkill
- go-reviewSkill
- handoffSkill
- js-reviewSkill
- k8s-debugSkill
- k8s-reviewSkill
- kickoffSkill
- pr-review-ingestSkill
- pr-reviewSkill
- python-reviewSkill
- reflectionSkill
- skill-evalSkill
- tdd-protocolSkill
- team-executeSkill
- team-planSkill
- team-shutdownSkill
- test-reviewSkill
- validate-recommendationSkill
- worktree-guideSkill
- babysitSkill
- canvasSkill
- create-hookSkill
- create-ruleSkill
- create-skillSkill
- create-subagentSkill
- migrate-to-skillsSkill
- sdkSkill
- shellSkill
- split-to-prsSkill
- statuslineSkill
- update-cli-configSkill
- update-cursor-settingsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

