close
Skill2 starsChanged 8 months agoMITView on GitHub
Record this session in the shared memory folder. Use when: "/close", "wrap up", "done for today", "end session", or "that's it". Finishing a helper task is not a close. Helpers never write shared memory, even if a parent says "close".
26 other projects use a version of this.
Adopted by
Most recently taken up by
- matthewwong525/WongStacktheir own version, first seen Nov 8, 2026
- vzhukovs/podman-desktop-kittheir own version, first seen Nov 1, 2026
- sophonfinance-wq/finance-automation-portfoliotheir own version, first seen Nov 1, 2026
- PapiScholz/session-closuretheir own version, first seen Oct 17, 2026
- charly-vibes/incitacionestheir own version, first seen Oct 14, 2026
- playingpossumm/loose-endstheir own version, first seen Oct 13, 2026
Used with
Projects with it also use open, reconcile and 5 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.
BlockSkillopen
Open markdown documents in Penpal for collaborative review. Use when you want a human to review a document, plan, or research artifact.
Also in 5 projects that use this
howellsSkillreconcile
Audit a project against current plugin conventions and offer to update structure.
Also in 3 projects that use this
Microsoft AzureSkillvalidate
Run the full CI validation workflow locally before submitting a PR. Use this as a final check to ensure all Azure DevOps CI pipeline steps will pass.
Also in 4 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 8 projects that use this
OpenAISkillbootstrap
Project bootstrapping orchestrator for repos that depend on Vercel-linked resources (databases, auth, and managed integrations). Use when setting up or repairing a repository so linking, environment provisioning, env pulls, and first-run db/dev commands happen in the correct safe order.
Also in 3 projects that use this
genomewalkerSkillresume
Resume a thread by loading its ~800-token context capsule
Also in 3 projects that use this
Other versions26 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 26
- Kanevry/session-orchestrator★ 53same name
- wrg32786/aigent-os★ 25same name
- sophonfinance-wq/finance-automation-portfolio★ 16same name
- maxwellsdm1867/wheeler★ 12same name
- matteo-stratega/claude-cortex★ 8same name
- matthewwong525/WongStack★ 7same name
- snapsynapse/skill-provenance★ 7same name
- BriGadja/iapreneurs-claude-code-kit★ 6same name
- Magnus-Gille/claude-skills★ 5same name
- apideck-libraries/api-skills★ 4same name
16 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.
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- examples/CLAUDE.mdCLAUDE.md
- claudeceptionSkill
- ideaSkill
- investigateSkill
- office-hoursSkill
- plan-ceo-reviewSkill
- reflectSkill
- retroSkill
- reviewSkill
- scopeSkill
- shipSkill
- startSkill
- tddSkill
- verify-before-doneSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 14 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 21 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Leave the next session a clean starting point — in any tool.
- Distinctive: line 23
If the user asks this session to close and no other closer is named, this session is the designated closer (typical when working alone).
- Distinctive: line 25
If someone else was named as closer, stop unless the user transfers that role to you.
- Distinctive: line 27
Not knowing who owns an unrelated open row is not evidence of an active writer.
- Distinctive: line 28
Leave that row as-is.
- Very specific: line 29
If you see conflicting writes (shared files changed since this close's last read), pause all shared-memory writes (log, handoff, open.md, …
- Very specific: line 58
Always include heading, Summary, Work done, Next steps (- None is fine).
- Very specific: line 69
New close: if memory/YYYY-MM-DD.md for the ending date does not exist, create it from memory/_TEMPLATE.md.
- Distinctive: line 71
Retry of an already-recorded close: keep that same file and same heading, even if midnight has passed.
- Distinctive: line 74
Never edit other blocks. Never append a second copy.
- Very specific: line 90
Handoff-only leftovers: if the current handoff lists next steps or carried items that are not already rows in open.md, do not replace the …
- Very specific: line 102
If next steps and open.md disagree, open.md wins.
- Distinctive: line 112
add rows this session originated
- Distinctive: line 113
update named rows the user transferred to this session ("continue the outline")
- Very specific: line 117
Keep Origin as the previous locator if useful.
- Distinctive: line 120
If the user did not name which items continue, ask.
- Distinctive: line 130
Do not make new decisions at close.
- Distinctive: line 140
If those files changed since this close's last read, that is a conflicting write: pause all shared-memory writes and ask.
- Very specific: line 143
If there is no conflict, write.
- Distinctive: line 159
If the file may have changed: stop all shared-memory proposals except asking for current contents.
- Distinctive: line 178
Never say saved, committed, or pushed unless that actually happened.
“Common” is measured: kept by at least 6 in 10 of the 21 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
Close Session
Leave the next session a clean starting point — in any tool.
Close records. It does not start work, apply new rules, commit, or push.
Who may write shared memory
- Helpers never write
memory/handoff.md,memory/open.md, daily logs, orMEMORY.md. Return results in chat (or a file the parent named). The parent records. - If the user asks this session to close and no other closer is named, this session is the designated closer (typical when working alone). No extra ceremony.
- If someone else was named as closer, stop unless the user transfers that role to you.
- Written instructions are a convention, not a lock.
- Not knowing who owns an unrelated open row is not evidence of an active writer. Leave that row as-is.
- If you see conflicting writes (shared files changed since this close's last read),
pause all shared-memory writes (log, handoff,
open.md,MEMORY.md) and ask. There is no exception that still writes your own log block during a conflict.
The Session Close Block (the one format every tool uses)
This is the single source of truth for how a session is recorded. The daily-log template
and AGENTS.md keep this block identical.
## YYYY-MM-DD HH:MM — <short title> (<tool>)
**Summary** — one line: what this session accomplished.
**Work done**
- <what changed / what was produced>
**Next steps**
- <what the next session should do>
**Decisions** — include ONLY if a real decision was made
- <decision> — <why>
**Blockers** — include ONLY if something is blocking progress
- <what is stuck and what would unblock it>- Always include heading, Summary, Work done, Next steps (
- Noneis fine). - Decisions / Blockers only when they happened.
- Time is local finish time. Add a zone if you move between timezones (
14:30 UTC). - No session numbers. The heading is the identity.
Step 1: This session's log block
Recorded identity = the heading + the log file first used for this block.
- New close: if
memory/YYYY-MM-DD.mdfor the ending date does not exist, create it frommemory/_TEMPLATE.md. Append this block at the bottom. - Retry of an already-recorded close: keep that same file and same heading, even if midnight has passed. Find the heading anywhere in that file. If the text is already identical, leave it. If this session's wording changed, update only that block. Never edit other blocks. Never append a second copy.
Step 2: Winning session (same rule as /start)
Among recorded close headings:
- Later finish time wins.
- Equal or missing times → lower block in the file wins.
Rewrite memory/handoff.md only if this block is the winner.
Retrying an older/upper block (including the same minute as a later heading) must not
replace a later session's handoff. If you are not the winner, leave handoff, say so, and
still update this block (when there is no conflicting write).
Handoff-only leftovers: if the current handoff lists next steps or carried items that are
not already rows in open.md, do not replace the handoff until those items exist in
open.md with their original ownership (Session = the old Last Session heading; do not
assign them to this session as a new current task). Do not drop them. Do not import them as
new work you just started. If you cannot preserve them that way, leave the handoff file unchanged.
Handoff is short navigation, not current-truth:
- last session title + date/time
- 1–3 next steps for that thread of work
Open work: see memory/open.md.(no counts)
If next steps and open.md disagree, open.md wins.
Step 3: memory/open.md
This file owns unfinished work. Do not replace it with last-session next steps.
You may:
- add rows this session originated
- update named rows the user transferred to this session ("continue the outline")
On a named transfer: keep the same row (no duplicate). Set Session to this session's
locator of the same type already on the row (heading vs heading, or thread ID vs thread ID).
Keep Origin as the previous locator if useful. You may mark that row done. Do not delete
rows. Leave unrelated rows untouched.
If the user did not name which items continue, ask. Do not take the whole table. Do not tell them they must drop inherited work they asked to finish.
Compare locators consistently. Never treat a heading and a thread ID as the same key.
Step 4: MEMORY.md only if already decided
Touch it only for a long-term fact that already changed during this session. Do not make new decisions at close. Keep the file short.
Step 5: Write or prepare paste — do not invent git
If this tool can edit files
Re-read memory/handoff.md, memory/open.md, today's or the recorded log if it exists,
and (if you will touch it) MEMORY.md.
If those files changed since this close's last read, that is a conflicting write:
pause all shared-memory writes and ask. Do not still write your own log block.
If there is no conflict, write. Do not overwrite a newer handoff or someone else's
open.md rows. Named transfer is required before you retitle inherited rows.
Do not git add .. Do not commit or push unless the user already asked for that
specific action and named the files. Commit is not push.
If this tool cannot edit files
Prepare exact text. Confirm: Not saved — exact paste text prepared.
Name each destination:
memory/YYYY-MM-DD.md— this session's one close block (recorded file + heading)memory/handoff.md— proposed full file, only if Step 2 allows replacementmemory/open.md— proposed row edits (full file only against a supplied unchanged copy)
Replacement of a full file or full block is allowed only against that unchanged copy. If the file may have changed: stop all shared-memory proposals except asking for current contents. Retry of the same heading: propose replacing that block, do not duplicate.
Confirm
Session closed.
- Log: this session's block saved locally / prepared for paste (recorded file + heading kept on retry)
- Handoff: saved rewrite because this block won / left unchanged / proposed rewrite / proposed leave unchanged
- Open work: saved row changes / proposed row changes / none
- Long-term memory: saved yes/no / proposed yes/no
- Files: saved locally / Not saved — exact paste text prepared
- Git: none / committed (asked) / pushed (asked)For unsaved paste, say prepared / proposed, never “updated” or “rewritten” as if the files changed.
Never say saved, committed, or pushed unless that actually happened.
/ship does not replace /close. After shipping, still close so the session is recorded.
Close does not commit unless the user asked to commit.
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.

