agentleFS
jiten-singh-shahijiten-singh-shahi/salesforce-claude-code/.cursor/skills/save-session/SKILL.md

save-session

Skill15 starsChanged 7 months agoMITView on GitHub

Use when saving current Salesforce development session state. Persist org context, Apex progress, and pending work to a dated file for future session resumption.

19 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use status and ship.

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.
  • AnthropicSkill

    status

    Case status summary by audience — client-facing (plain language), internal (for the professor), or court-ready (formal caption format per local rules). Same facts, different framing and depth. Use when a student needs to update the client, brief the professor, or prepare a court status report.

    Also in 3 projects that use this

  • AWSSkill

    ship

    Finalize dev work on an issue branch — update docs, push, and open a PR.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 10 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 18 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before hitting context limits (run this first, then start a fresh session)

    line 15
  2. Distinctive:

    After solving a complex Salesforce problem you want to remember

    line 16
  3. Distinctive:

    Before writing the file, collect:

    line 23
  4. Distinctive:

    Read all files modified during this session (use git diff or recall from conversation)

    line 25
  5. Distinctive:

    Check current test/sf-deployment status if relevant

    line 28
  6. Very specific:

    Create ~/.claude/sessions/YYYY-MM-DD-<short-id>-session.md, using today's actual date and a short-id:

    line 39
  7. Distinctive:

    No uppercase letters, no underscores, no spaces

    line 43
  8. Distinctive:

    Keep session files under ~500 lines.

    line 51
  9. Distinctive:

    Write every section honestly.

    line 53
  10. Distinctive:

    After writing, display the full contents and ask:

    line 57
  11. Distinctive:

    Wait for confirmation. Make edits if requested.

    line 65
  12. Very specific:

    Use the canonical global session store: ~/.claude/sessions/

    line 175

“Common” is measured: kept by at least 6 in 10 of the 18 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 Session — Capture and Persist Session Context

Capture everything that happened in this session — what was built, what worked, what failed, what's left — and write it to a dated file so the next session can pick up exactly where this one left off.

When to Use

  • End of a work session before closing Claude Code
  • Before hitting context limits (run this first, then start a fresh session)
  • After solving a complex Salesforce problem you want to remember
  • Any time you need to hand off context to a future session

Process

Step 1: Gather context

Before writing the file, collect:

  • Read all files modified during this session (use git diff or recall from conversation)
  • Review what was discussed, attempted, and decided
  • Note any errors encountered and how they were resolved (or not)
  • Check current test/sf-deployment status if relevant
  • Note org-specific details (scratch org alias, connected org, CLI version)

Step 2: Create the sessions folder if it doesn't exist

mkdir -p ~/.claude/sessions

Step 3: Write the session file

Create ~/.claude/sessions/YYYY-MM-DD-<short-id>-session.md, using today's actual date and a short-id:

  • Allowed characters: lowercase a-z, digits 0-9, hyphens -
  • Minimum length: 8 characters
  • No uppercase letters, no underscores, no spaces

Full valid filename example: 2026-03-18-apex-trig-session.md

The short-id should include the project name to enable cross-project isolation (e.g., myapp-apex-trig instead of just apex-trig). This prevents session file collisions when working across multiple Salesforce projects that share the same ~/.claude/sessions/ directory.

Step 4: Populate the file with all sections below

Keep session files under ~500 lines. Focus on decisions, blockers, and next steps — not full code dumps. If you need to reference large code blocks, point to file paths instead.

Write every section honestly. Do not skip sections — write "Nothing yet" or "N/A" if a section genuinely has no content.

Step 5: Show the file to the user

After writing, display the full contents and ask:

Session saved to [actual resolved path to the session file]

Does this look accurate? Anything to correct or add before we close?

Wait for confirmation. Make edits if requested.


Session File Format

# Session: YYYY-MM-DD

**Started:** [approximate time if known]
**Last Updated:** [current time]
**Project:** [project name or path]
**Topic:** [one-line summary of what this session was about]

---

## What We Are Building

[1-3 paragraphs describing the feature, bug fix, or task. Include enough
context that someone with zero memory of this session can understand the goal.
Include: what it does, why it's needed, how it fits into the Salesforce org.]

---

## What WORKED (with evidence)

[List only things that are confirmed working. For each item include WHY you
know it works — test passed, deployment succeeded, scratch org validated, etc.
Without evidence, move it to "Not Tried Yet" instead.]

- **[thing that works]** — confirmed by: [specific evidence]

If nothing is confirmed working yet: "Nothing confirmed working yet."

---

## What Did NOT Work (and why)

[This is the most important section. List every approach tried that failed.
For each failure write the EXACT reason so the next session doesn't retry it.
Be specific: "threw X error because Y" is useful. "didn't work" is not.]

- **[approach tried]** — failed because: [exact reason / error message]

If nothing failed: "No failed approaches yet."

---

## What Has NOT Been Tried Yet

[Approaches that seem promising but haven't been attempted.]

- [approach / idea]

If nothing is queued: "No specific untried approaches identified."

---

## Current State of Files

[Every file touched this session. Be precise about what state each file is in.]

| File              | Status         | Notes                      |
| ----------------- | -------------- | -------------------------- |
| `path/to/file.cls` | Complete    | [what it does]             |
| `path/to/file.cls` | In Progress | [what's done, what's left] |
| `path/to/file.js` | Broken      | [what's wrong]             |

If no files were touched: "No files modified this session."

---

## Decisions Made

[Architecture choices, tradeoffs accepted, approaches chosen and why.]

- **[decision]** — reason: [why this was chosen over alternatives]

If no significant decisions: "No major decisions made this session."

---

## Blockers & Open Questions

[Anything unresolved that the next session needs to address.]

- [blocker / open question]

If none: "No active blockers."

---

## Exact Next Step

[The single most important thing to do when resuming.]

---

## Environment & Setup Notes

[Only fill if relevant — scratch org alias, connected org, SF CLI version, etc.]

Notes

  • Each session gets its own file — never append to a previous session's file
  • The "What Did NOT Work" section is the most critical — future sessions will blindly retry failed approaches without it
  • The file is meant to be read by Claude at the start of the next session via the resume-session skill
  • Use the canonical global session store: ~/.claude/sessions/

Examples

/save-session
/save-session Save progress on the AccountManagement feature refactor
/save-session Checkpoint before switching to the hotfix branch

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.