distributions/direct/example/closeout/SKILL.md
Session-end ritual that walks back through plans authored and atoms touched in this session, assigning each a closure status (DONE-NNN, IRF-XXX-NNN, or `~/.Codex/plans/abandoned/`). Verifies git state. Produces CLOSEOUT_SUMMARY.md. Triggers on "/closeout", "close out the session", "end of session", "wrap up", "session close", or before any planned `git push`. Addresses the 90.4% plan-orphan rate documented in docs/evaluation/self-review-2026-05-05/stale-plans-and-orphan-commits.md.
npx skillsauth add a-organvm/a-i--skills closeoutInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/closeout, "close out", "wrap up", "end the session"git push (the close-out should precede the push)Run, in parallel where possible:
# What files did this session create or modify?
git status --short
# What plans were authored in this session?
ls -t ~/.Codex/plans/*.md 2>/dev/null | head -10
# What's the current branch and where does it stand vs origin?
git branch --show-current
git log @{u}.. 2>/dev/null || echo "(no upstream tracking)"
Surface a brief inventory table to the user:
For each plan authored this session (filter ~/.Codex/plans/*.md by mtime within session window):
For each plan, classify it as one of:
DONE-NNN reference. No action.IRF-XXX-NNN reference but no DONE-NNN. Update its frontmatter to confirm continued status.~/.Codex/plans/abandoned/ with a brief abandonment-reason.Ask the user for ambiguous cases. Do NOT bulk-classify without confirmation — the home-scope AGENTS.md rule "Atoms are permanent — never batch-close" applies to plans-as-artifacts too.
If data/prompt-registry/prompt-atoms.json was touched this session, identify atoms that were closed in this session and confirm their status field is updated.
If not (most sessions), skip.
Cross-check:
ls /Users/4jp/Workspace/*.txt should be empty)If stray exports exist (the auto-named 2026-MM-DD-NNNNNN-this-session-being-continued-from-a-previous-c.txt pattern), move them to ~/Documents/session-exports/ or delete if duplicative.
If the active repo has a CLAUDE.md carrying <!-- ORGANVM:AUTO:START --> / <!-- ORGANVM:AUTO:END --> sentinels, run the gate:
~/.local/bin/claude-md-autogen-gate
If it exits non-zero, the autogen tail is older than 7 days. Refuse to mark the session as DONE. Refresh first:
organvm context sync --write # autogen sections only
# or
organvm refresh # full 10-step pipeline
Then re-stage CLAUDE.md and commit (the claude-md-autogen-freshness pre-commit hook will re-verify), and re-run the gate.
Bypass only with explicit user authorization:
AUTOGEN_FRESHNESS_THRESHOLD_DAYS=999 ~/.local/bin/claude-md-autogen-gate
Pairs with the pre-commit hook (claude-md-autogen-freshness); together they catch staleness at both the commit boundary and the session boundary. Root-cause precedent: 32-day autogen-tail staleness traced on 2026-05-16 to organvm refresh step 6 soft-failing on system-system--system: invalid tier 'sovereign' (closed via schema + validator lockstep edit; see GH 4444J99/domus-semper-palingenesis#30, IRF-DOM-048).
If .conductor/active-handoff.md exists in any active repo, update it with:
This is the cross-session continuity gate.
Produce a session-close-out summary at ~/.Codex/plans/closeout-{date}.md with:
# Session Close-Out — {date}
## Outputs
- {N} files created, {M} modified
- {K} plans authored: {filenames}
- {L} commits made (SHAs): {sha-list}
## Closure marks
- EXECUTED plans (DONE-NNN refs): {list}
- IN-PROGRESS plans (IRF refs): {list}
- ABANDONED plans (moved): {list}
## Pending
- Uncommitted changes: {if any}
- Unpushed commits: {if any}
- Active handoff: {path if exists}
## Hand-off note for next session
{one-paragraph context for resumability}
abandoned/ instead, preserving the history (per the plan-discipline section of the home AGENTS.md).Per docs/evaluation/self-review-2026-05-05/stale-plans-and-orphan-commits.md:
90.4% of plans are ORPHANED. Of 427 plans in
~/.Codex/plans/, 386 contain neither a DONE-NNN nor IRF reference. Only 20 (4.7%) are EXECUTED, 21 (4.9%) are IN-PROGRESS.
The orphan rate is a direct artifact of the absence of a close-out ritual. This skill is the ritual.
The cost of skipping is invisible bookkeeping debt: plans accumulate, atoms stay open against doctrine that already encodes them, the system can't programmatically answer "what was done?". The cost of doing it is ~3-5 minutes per session.
docs/evaluation/SELF-REVIEW-MASTER-2026-05-05.md — Pathology #4: plan-author cadence vastly exceeds plan-execution cadence (21:1)docs/evaluation/self-review-2026-05-05/stale-plans-and-orphan-commits.md — full data behind the 90.4% orphan ratetesting
Designs systems for encoding, scoring, and generating choreographic movement using Laban notation, computational geometry, and procedural animation principles.
tools
Manage monorepos and multi-package repositories with workspace tools, dependency management, selective builds, and change detection. Covers npm/pnpm workspaces, Turborepo, and Python monorepo patterns. Triggers on monorepo setup, workspace management, or multi-package repository requests.
development
Curated bundle for managing monorepos with containerized deployment pipelines. Includes monorepo management, Docker containerization, CI/CD deployment, and coding standards. Use when setting up or improving multi-package repository infrastructure.
development
Apply modular synthesis principles to system design, workflow architecture, and conceptual frameworks. Use when designing modular systems, creating architecture diagrams using synthesis metaphors, applying signal flow thinking to data pipelines, or translating between audio engineering and software concepts. Triggers on modular architecture design, signal flow diagrams, synthesis-inspired system thinking, or "oscillator/patch" metaphors.