agentleFS
FabianoArthurFabianoArthur/claude-code-kitchen/skills/save/SKILL.md

save

Skill4 starsChanged 47 days agoMITView on GitHub

Use when the user wants to save the state of the session so the next one can pick it up — "save the session", "save progress", "log where we are", "/save", or at the end of a work block before /clear. Writes LOCALLY into the task doc (one doc per task, the same one plan and execute use) — rewrites Current state, updates Pending, prepends a Session log entry (Changed · Decisions · Pending), marks sync_pending, keeps ## Links. No commit, no push, no tracker call; pushing to a tracker is a separate, explicit step. Pairs with /resume.

36 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use load, ingest and 9 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.
  • TheLatentSpaceLabSkill

    load

    Load a document into memory for RAG

    Also in 4 projects that use this

  • JaimeGBASkill

    ingest

    Digest an external source (article, paper, transcript, URL, book chapter) and integrate its content into the knowledge base

    Also in 8 projects that use this

  • ArtemXTechSkill

    query

    Query data from this vault. USE WHEN user asks about projects, clients, tasks, daily notes. Use grep to extract frontmatter - do NOT read full files.

    Also in 4 projects that use this

  • szweibelSkill

    idea

    Generate a wide field of options when the user is brainstorming, exploring, expanding, or pressure-testing — not recommending or implementing

    Also in 3 projects that use this

  • GoogleSkill

    dashboard

    Configures and launches the GKE Capacity & Triage Dashboard scoped to a GCP project ID, GKE cluster name, or target ML workload ID. Uses the configure-and-launch-dashboard action and launch-workload-dashboard workflow to verify local dashboard health, discover cluster capacity, trigger live scans, and generate deep-linked URLs. Use when the user types "/dashboard", says "launch dashboard", "open dashboard", "show capacity", or "view triage dashboard" with a project, cluster, or workload. Don't use for general workload log querying or automated failure attribution (use the troubleshoot skill).

    Also in 4 projects that use this

  • Microsoft AzureSkill

    lint

    Run all linting and spell checking for TypeScript and Rust code. Run this before committing to catch style issues, clippy warnings, and misspellings.

    Also in 5 projects that use this

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 31 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    No argument → the active task: git branch --show-current against the branch: front matter key, then the most recently updated: doc.

    line 30
  2. Very specific:

    No match → create <vault.cards>/<slug>.md from the template of /plan (also examples/task.md), using the argument as slug and title.

    line 32
  3. Very specific:

    Durable decision?: If the session settled something that constrains work *outside* this task, and the adapter has vault.permanent, write …

    line 68
  4. Very specific:

    Do not touch ## Outcome (written by /execute from git) or any section the doc template does not define.

    line 74
  5. Distinctive:

    Commit, stage, push or open a PR — the diff of the repo is not its business.

    line 85
  6. Very specific:

    Call a tracker — no tracker call, no MCP, no API.

    line 87
  7. Distinctive:

    Start working on the pending items.

    line 90

“Common” is measured: kept by at least 6 in 10 of the 31 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/save — the session's state, into the task doc

/save                  the active task (from the branch, or the most recently updated doc)
/save <slug|id>        that task; creates the doc if it does not exist yet

Read ../orchestrate/CORE.md §1 — the adapter (.claude/orchestrator.md, found walking up from cwd) provides vault.cards (where task docs live), backlog.* (status vocabulary) and, optionally, vault.permanent. No adapter, or no vault.cards → ask where task docs go and write the answer into the adapter; do not invent a path.

Companion: /resume reads what this writes. The doc is the same one /plan creates and /execute fills (## Outcome), so one task has one doc for its whole life.

Local first. This skill writes one local Markdown file. It does not touch a tracker, the manifest or git. The tracker (if you use one) catches up in a separate, explicit step; the only signal between the two is sync_pending: true in the front matter. That is what keeps saving free: no API call, no tokens spent on a remote read.

Step 1 — Resolve the target doc

  • Argument given → match it against file names in <vault.cards>, then against card_id and title in the front matter. One match → use it.
  • No argument → the active task: git branch --show-current against the branch: front matter key, then the most recently updated: doc. Do not query a tracker to find it.
  • No match → create <vault.cards>/<slug>.md from the template of /plan (also examples/task.md), using the argument as slug and title. Fields you cannot know (priority, size, repos, card_id) stay empty — never guess them; /plan --revise or the human fills them. If the argument looks like a tracker id, put it in card_id:.
  • Several candidates and no way to tell → ask one question (CORE §10 allows it: the answer changes where you write).

Step 2 — Update the doc

Get the date with date +%F — never from memory.

  1. ## Current state — rewrite it: one self-contained paragraph, what is true now (it overwrites the previous one; the history is the log).
  2. ## Pending — a checklist of what is left. Create the section (after ## Current state) if the doc has none; tick what this session finished, add what it discovered.
  3. ## Session log — prepend (newest first) a new entry:

    ### YYYY-MM-DD — saved by /save ⏳ to sync
    - **Changed:** what was done, with `file:line` where it helps (describe, do not stage).
    - **Decisions:** what was decided and why — the part nobody can rederive from the diff.
    - **Pending:** what is left, in one line (the checklist above has the detail).

    The ⏳ to sync marker is what /sync looks for: it posts the marked entries to the tracker and flips the marker to ✅ synced <date>. Without a tracker it is just a harmless label.

    Several saves in one day → one entry per save; do not merge them. Never edit older entries.

  4. Front matter — updated: <date> and sync_pending: true. Change the status field (backlog.status_field) only if the session clearly moved the task, and only to a value from the adapter's vocabulary (open_statuses and friends); otherwise leave it.
  5. ## Links — keep the section and make sure it holds the repo or integration the session touched and any permanent note it used or created. Missing section → create it before ## Session log.
  6. Durable decision? If the session settled something that constrains work outside this task, and the adapter has vault.permanent, write one line to <vault.permanent>/<area>.md with a link back to the doc (CORE §6 — the cut is "if this is forgotten, will someone break or re-litigate it in 3 months?"). No vault.permanent → leave it in the task doc; do not create a folder.

Do not touch ## Outcome (written by /execute from git) or any section the doc template does not define. Do not describe code structure in prose — that is a code graph's job.

Step 3 — Confirm

Report: the doc's path and sync_pending: true. If the adapter has a status_push command (or you use /sync), name it and say the push is a separate step you did not run; if it has none, say nothing about trackers.

This skill does NOT

  • Commit, stage, push or open a PR — the diff of the repo is not its business. No commit, no push.
  • Call a tracker — no tracker call, no MCP, no API. sync_pending is the handoff.
  • Clear sync_pending — only whoever actually pushes to the tracker does (/sync).
  • Edit a manifest — each kitchen owns its own row (CORE §7).
  • Start working on the pending items.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.