save-conversation
Skill1 starsChanged 18 days agoMITView on GitHub
Use when the user wants the current conversation captured for later — phrases like "save this conversation", "write this up", "archive this chat", or "/save-conversation" — or wants to update a conversation folder saved earlier. Writes a structured folder under docs/custom-agents/conversations/ with a TL;DR + detailed breakdown, metadata, references, and artifacts.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- bengillin/walkietalkiebottheir own version, first seen Nov 1, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- bengillin/walkietalkiebot★ 4same name
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.
- CLAUDE.mdCLAUDE.md
- context-auditSkill
- daily-reportSkill
- disk-cleanupSkill
- end-of-daySkill
- finish-ticketSkill
- gmail-organizeSkill
- gov-job-finderSkill
- rebuild-integrationSkill
- resume-ticketSkill
- side-noteSkill
- start-of-daySkill
- start-ticketSkill
- ticket-statusSkill
- transcribe-videoSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
32 rules. About 0 are common, 15 are distinctive, and 17 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈15
Distinctive · estimate
This author's own choices. Worth a look.
17
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
All conversation folders are saved under a docs/custom-agents/conversations/ directory.
- Very specific: line 25
If the conversations/ directory does not exist yet, create it in Step 8 along with the conversation folder.
- Very specific: line 29
Check if the skill was invoked with arguments (e.g., /save-conversation update or /save-conversation update <folder-name>).
- Very specific: line 33
If invoked with update and no folder name:
- Distinctive: line 47
Wait for the user to confirm a folder name.
- Very specific: line 51
If invoked with update and a folder name:
- Distinctive: line 53
Verify the folder exists:
- Distinctive: line 57
If the folder does not exist, tell the user:
- Distinctive: line 60
Wait for their response and proceed accordingly.
- Distinctive: line 61
If the folder exists, go to Update Flow below.
- Very specific: line 77
metadata.md: Update date_updated, refresh tags and related_conversations, keep date_created unchanged
- Distinctive: line 83
If no arguments were provided, proceed normally through Steps 1–9.
- Distinctive: line 106
Wait for the user to confirm or provide an alternative.
- Distinctive: line 112
Check if a folder with this name already exists:
- Distinctive: line 118
If it exists, ask the user:
- Very specific: line 124
If updating, read the existing chat.md, metadata.md, and references.md (if it exists) first, then apply the update rules from the Update …
- Distinctive: line 126
If creating new, go back to Step 2 for a new name.
- Very specific: line 130
Write chat.md following this exact format:
- Distinctive: line 165
Pivot handling: When the user scrapped a direction, do NOT include it in the TL;DR or Conversation sections.
- Very specific: line 174
Place it in the artifacts/ subdirectory, preserving the original filename
- Very specific: line 176
Only create the artifacts/ directory if there are artifacts to save.
- Very specific: line 202
Type column (Local Paths): Use searched if the path was used for Glob/Grep/find, read if file contents were read, explored if the directory …
- Distinctive: line 203
Only create this file if there is at least one reference to record.
- Distinctive: line 241
Wait for confirmation before writing.
- Distinctive: line 245
Create the folder and write all files:
- Very specific: line 247
Create the conversation directory and a docs/ subfolder for manual reference files:
- Very specific: line 252
Write chat.md using the Write tool
- Very specific: line 253
Write references.md using the Write tool (if references exist)
- Very specific: line 255
If artifacts exist, create artifacts/ and write each file using the Write tool
- Very specific: line 259
Only with
contextBranchset: commit the folder straight onto contextBranch in the main checkout and push, per start-ticket's Context home … - Distinctive: line 266
If the push is rejected, stop and report — never pull, rebase or force in the shared checkout.
- Very specific: line 270
Check if the docs/ folder has any manually-added files:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Save Conversation
You are saving the current conversation to a structured folder for future reference. Follow these steps exactly.
Base Path
All conversation folders are saved under a docs/custom-agents/conversations/ directory. Where that directory lives depends on the repo's config — apply start-ticket's config discovery and Context home rule:
pwd
HUB=$(git worktree list --porcelain 2>/dev/null | sed -n 's/^worktree //p' | head -1) # main checkout is always first
CFG="$HUB/docs/custom-agents/ticket-workflow.config.json"
[ -f "$CFG" ] || CFG="$(git rev-parse --show-toplevel 2>/dev/null)/docs/custom-agents/ticket-workflow.config.json"$CFGsetscontextBranch→ the base path is$HUB/docs/custom-agents/conversations/, never the current worktree's. The hub must be oncontextBranch; if it isn't, STOP and tell the user (never switch it). Step 8 also commits and pushes the folder tocontextBranch.- Local mode (no
contextBranch, folder gitignored — same rule) → the base path is$HUB/docs/custom-agents/conversations/, no branch check, and nothing is committed. - Otherwise → the base path is
<current working directory>/docs/custom-agents/conversations/, as always, and nothing is committed.
If the conversations/ directory does not exist yet, create it in Step 8 along with the conversation folder.
Argument Parsing
Check if the skill was invoked with arguments (e.g., /save-conversation update or /save-conversation update <folder-name>).
Update mode: /save-conversation update
If invoked with update and no folder name:
- List existing conversation folders:
ls <base-path>/- Present the list to the user and ask which one to update:
Here are your saved conversations:
<folder-1><folder-2>...Which conversation would you like to update?
- Wait for the user to confirm a folder name. Then go to Update Flow below.
Update mode: /save-conversation update <folder-name>
If invoked with update and a folder name:
- Verify the folder exists:
ls <base-path>/<folder-name>/ 2>/dev/null- If the folder does not exist, tell the user:
No conversation folder named
<folder-name>was found. Would you like to save it as a new conversation instead?
Wait for their response and proceed accordingly. 3. If the folder exists, go to Update Flow below.
Update Flow
Skip Steps 1 and 2. Read the existing files first:
<base-path>/<folder-name>/chat.md<base-path>/<folder-name>/metadata.md<base-path>/<folder-name>/references.md(if it exists)
Then apply these update rules throughout Steps 4–9:
- TL;DR: Replace entirely with the current final state
- Conversation sections: Append new numbered sections, continuing from the last number
- Key Decisions table: Append new rows; do not duplicate existing rows
- Open Items: Replace entirely with the current state
- Artifacts: Preserve existing artifacts; add new ones; overwrite if same filename with newer version
- references.md: Append new references; do not duplicate existing rows. Create if it doesn't exist yet but new references exist
- metadata.md: Update
date_updated, refresh tags and related_conversations, keepdate_createdunchanged
Jump to Step 1 (scan only — no name suggestion needed) then continue from Step 4.
No arguments
If no arguments were provided, proceed normally through Steps 1–9.
Step 1: Scan the Conversation
Review the full current conversation. Identify:
- The main topic(s) discussed
- Key decisions made
- Any pivots where the user changed direction (watch for: "nvm", "scrap that", "forget that", "actually let's", "scratch that", "never mind", "disregard")
- Any code files, configs, or artifacts that were written or discussed with concrete code
- Unresolved questions or open items
- References used: Any local folders/files that were searched or read, and any MCP servers or connectors that were invoked to retrieve external data
Step 2: Suggest a Name
Skip this step if in update mode (argument parsing resolved the folder name already).
Propose a short, descriptive folder name for this conversation. Use lowercase kebab-case. For example: "building-a-login-page", "debugging-auth-middleware", "planning-api-redesign".
Present it to the user:
Suggested conversation name:
<your-suggestion>Want to use this name, or would you like a different one?
Wait for the user to confirm or provide an alternative. Do not proceed until you have a confirmed name.
Step 3: Check for Existing Folder
Skip this step if in update mode (the folder was already verified in argument parsing).
Check if a folder with this name already exists:
ls <base-path>/<confirmed-name>/ 2>/dev/nullIf it exists, ask the user:
A conversation folder named
<name>already exists. Would you like to:
- A) Update it — append new sections to chat.md and refresh metadata
- B) Create a new one with a different name
If updating, read the existing chat.md, metadata.md, and references.md (if it exists) first, then apply the update rules from the Update Flow in Argument Parsing above.
If creating new, go back to Step 2 for a new name.
Step 4: Generate chat.md
Write chat.md following this exact format:
# <Conversation Title>
## TL;DR
- Bullet points summarizing final decisions, outcomes, and what was built
- Only the final state — scrapped ideas do NOT appear here
- Be specific: include tech choices, file names, key conclusions
## Conversation
### 1. <Topic/Phase Name>
**Context:** What prompted this part of the conversation
**Discussion:** What was explored and the key back-and-forth points
**Outcome:** What was decided or produced
### 2. <Topic/Phase Name>
**Context:** ...
**Discussion:** ...
**Outcome:** ...
(Continue for each distinct phase/topic of the conversation)
## Key Decisions
| Decision | Reasoning | Alternatives Considered |
|----------|-----------|------------------------|
| <decision> | <why this was chosen> | <what else was considered, including scrapped directions> |
## Open Items
- Any unresolved questions or next steps from the conversation
- If none, write "None — conversation fully resolved."Rules for chat.md:
- Pivot handling: When the user scrapped a direction, do NOT include it in the TL;DR or Conversation sections. Collapse it into a brief note in the "Alternatives Considered" column of Key Decisions.
- Context preservation: Someone reading this file should be able to fully resume the work without the original conversation. Include enough detail: specific file paths, function names, config values, reasoning behind choices.
- No fluff: Be concise but complete. Every sentence should carry information.
- Code snippets: Include short, critical code snippets inline if they are essential to understanding a decision. Do not reproduce entire files — those go in artifacts/.
Step 5: Identify and Write Artifacts
Scan the conversation for any files that were written, created, or discussed with concrete code blocks. For each artifact:
- Recreate it from the conversation context (the version that reflects the final state, not intermediate drafts)
- Place it in the
artifacts/subdirectory, preserving the original filename
Only create the artifacts/ directory if there are artifacts to save. If none, skip this step entirely.
Step 6: Generate references.md
Scan the conversation for any local paths that were searched, read, or explored, and any MCP servers or connectors that were used to retrieve external data. If there are no references of either kind, skip this step entirely.
Write references.md following this exact format:
# References
## Local Paths
| Path | Type | Purpose |
|------|------|---------|
| `/path/to/folder/or/file` | `searched` / `read` / `explored` | Brief description of why this path was accessed |
## External Sources
| Source | Type | Purpose |
|--------|------|---------|
| `mcp-server-name` | MCP Server | What data was retrieved and why |
| `connector-name` | Connector | What it was used for |Rules for references.md:
- Local Paths: Include any directory or file that was accessed via Glob, Grep, Read, Bash (
ls,find, etc.), or any file-reading tool. Group by purpose when multiple files in the same directory were accessed — use the directory path instead of listing every file. - External Sources: Include any MCP server (e.g.,
mcp__slack__search,mcp__github__search,mcp__jira__get_issue) or external connector/API that was invoked during the conversation. Use the MCP server's base name (e.g.,slack,github,jira) and describe what was retrieved. - Type column (Local Paths): Use
searchedif the path was used for Glob/Grep/find,readif file contents were read,exploredif the directory was listed or broadly navigated. - Only create this file if there is at least one reference to record.
Step 7: Generate metadata.md
Auto-suggest tags and related conversations, then present them to the user for confirmation.
First, check for existing conversations to find related ones:
ls <base-path>/Then write metadata.md with this exact format:
---
topic: <Human-Readable Conversation Title>
date_created: <YYYY-MM-DD>
date_updated: <YYYY-MM-DD>
status: <in-progress|completed|paused|abandoned>
tags: [<auto-suggested tags based on conversation content>]
related_conversations: [<folder names of related conversations, or empty []>]
model: <model used in this conversation>
project: <name of current project directory>
---Present the suggested tags, status, and related conversations to the user:
Suggested metadata:
- Status:
<suggestion>- Tags:
[<suggestions>]- Related:
[<suggestions or none>]Look good, or would you like to change anything?
With contextBranch set, add one line to that prompt — > Saving to <contextBranch> in the main checkout — it will be committed and pushed there. — so this one confirmation covers the write, the commit and the push.
Wait for confirmation before writing.
Step 8: Write Everything
Create the folder and write all files:
- Create the conversation directory and a
docs/subfolder for manual reference files:
mkdir -p <base-path>/<name>/docs/- Write
chat.mdusing the Write tool - Write
references.mdusing the Write tool (if references exist) - Write
metadata.mdusing the Write tool - If artifacts exist, create
artifacts/and write each file using the Write tool
The docs/ folder is reserved for manually-created reference files (specs, notes, designs, context docs). Do not auto-populate it — its contents are managed by the user.
- Only with
contextBranchset: commit the folder straight ontocontextBranchin the main checkout and push, per start-ticket's Context home rule. Stage the one folder by explicit path and commit only it, so a parallel session's staged work is never swept in:
F=docs/custom-agents/conversations/<name> # relative to $HUB
git -C "$HUB" add -f -A -- "$F" # the folder is gitignored off contextBranch
git -C "$HUB" commit -m "docs(conversation): <name>" -- "$F" # on update: "docs(conversation): update <name>"
git -C "$HUB" push <contextRemote, default origin> <contextBranch>If the push is rejected, stop and report — never pull, rebase or force in the shared checkout. Never open a PR for it.
Step 9: Confirm
Check if the docs/ folder has any manually-added files:
ls <base-path>/<name>/docs/ 2>/dev/nullPrint a summary:
Conversation saved!
- Location:
<base-path>/<name>/[ — committed to<contextBranch>as<sha>, pushed][ — local only, not committed]- Files: chat.md, metadata.md[, references.md][, artifacts/ (N files)]
- Docs folder:
docs/— place any manual reference files here (specs, notes, designs)[ — currently contains:<list files if any>]- References: N local paths, N external sources (or "none")
- Status:
<status>- Tags:
[<tags>]
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.

