Perform a real closeout audit for the thread-scoped task and, when requested, land it through commit, push, and CI. Use when the user says "/session:thread:land", "are you done", "can we close this", "is anything still open", "wrap this session up", or wants to end the thread without losing unfinished work, buried follow-ups, or useful loose ends.
Close the thread honestly. Use this skill when the user wants a real completion verdict or a closeout that preserves loose ends instead of losing them in chat.
Answer: Can this thread close without losing required work or useful value?
Do two things:
Default to the task requested in this conversation. Precedence:
.session, branch, or issue context
Do not let broader session state override a narrower thread ask.Treat subagents as part of the thread's closeout surface, not background noise.
Before Done verdict: yes or any landing claim:
running, idle/reachable, closed/archived, or unknownrunning as a blocker to landingUse this systematic process:
idle/reachable subagent, request a short land-ready report with a timeout.Interpretation rules:
running from closed, treat the state as unknown and block landing until resolved.git status, .session/SESSION.md, and the relevant thread directory (.session/thread.<slug>/) — read tasks.md, plan.md or done.plan.md, and any active review.*.md files.Done: completed and realOpen: still required for thread closure — must trace back to the thread's scope: its plan/tasks (when they exist), conversation commitments, or explicit in-thread promises. If it wasn't in the thread's scope, it is not Open.Missed Value: useful non-blocking follow-ons or insights that are still at risk of being lost unless preserved now. This includes issues discovered during thread work that were never thread obligations..session/thread.<slug>/ files for thread-scoped work.session/SESSION.md for session-level decisionsClassification rule:
.session, code, issue tracker, etc.), it is not Missed ValueDone or Evidence, depending on whether you are describing the preservation action or proving it happenedMissed Value is only for value that has not yet been extracted and would otherwise disappear with the threadAfter the done verdict passes and all work is landed, execute these steps in order:
Debrief — invoke /session:debrief to write a reflective debrief.md into the thread directory. This is best-effort: if it fails, log a warning and continue. Do not block landing on a debrief failure.
Mark done — use the CLI to close the thread:
~/.claude/skills/session/scripts/session.sh thread done <slug>
This renames thread.<slug>/ → done.thread.<n>.<slug>/, auto-assigning the next sequence number to preserve completion order. The debrief file moves with the directory.
Allow Done verdict: yes only when:
plan.md/done.plan.*.md and tasks.md when they exist, or by the conversation's stated goals and acceptance criteria when no plan exists)no.These do not block Done verdict: yes:
These belong in Missed Value (if worth preserving) or Next (if actionable), never in Open.
If the user wants landing, require:
Start with exactly one line: Done verdict: yes or Done verdict: no
Then use exactly:
DoneOpenMissed ValueEvidenceNext
Rules:Done only completed factsOpen every remaining blocker; write - none if emptyMissed Value only non-blocking value that is not yet durably preserved; write - none if emptyEvidence concrete checks, repo state, landing state, and at least one earlier-thread obligation that was consideredNext one highest-priority next move, or say the thread can closeOpen — it belongs in Missed Value or NextMissed ValueDone verdict: yes Done
tasks.mdtasks.md shows 8/8 checkedplan.md scope matches delivered workDone verdict: no Done
.session/thread.schema-design/tasks.md still shows one unchecked closeout item (promised in plan task 4)
Missed Valuepnpm test tree-lib passeddone.thread.3.schema-design/ (next sequence after existing done.thread.1.* and done.thread.2.*)
Next