A pair of skills (/standup and /conclude) that give any Claude Code project persistent memory across sessions. They solve the universal problem of context loss between conversations by creating a structured read-write loop: /conclude captures everything at session end, /standup ingests it at session start.
Also works with Cowork projects and any environment that supports Claude Code skills.
Every time you start a new session in a persistent project, you lose context. Decisions made three sessions ago? Gone. That file you created last week? You have to re-explain it. The priority shift from yesterday? Forgotten. You end up spending the first 10 minutes of every session re-feeding context manually.
Two skills that bookend every session:
/standup runs at session start. It reads your project's state files in a defined sequence, checks for staleness, and produces a structured summary. You confirm it's accurate, then work begins — with full context.
/conclude runs at session end. It audits everything that happened, writes a session log with machine-readable metadata, updates your state files, and performs a workspace hygiene sweep. The next /standup ingests what /conclude wrote. Zero context loss.
Session N Session N+1
┌──────────────┐ ┌──────────────┐
│ /standup │ │ /standup │
│ ... work ...│ │ ... work ...│
│ /conclude │ │ /conclude │
└──────┬───────┘ └──────────────┘
│ ▲
│ writes │ reads
▼ │
┌─────────────────────────────────────┘
│ session-logs/YYYY-MM-DD-session-log.md
│ STATUS.md (updated)
└──────────────────────────────────────
/conclude writes a session log and updates STATUS.md. The next /standup reads both. Each session log includes a structured metadata block (HTML comment, invisible when rendering) that /standup parses for quick anomaly detection — open thread counts, staleness flags, and suggested next focus.
- Copy
standup/andconclude/into your project's.claude/skills/directory - Copy
STATUS-TEMPLATE.mdto your project root asSTATUS.md - Create an empty
session-logs/directory in your project root - Add to your
CLAUDE.md: "Every session starts with/standup. When ending a session, run/conclude." - Start a session and type
/standup
That's it. The skills handle the rest. See Examples for what the output looks like in practice.
Copy the standup/ and conclude/ directories into your project's .claude/skills/ folder:
your-project/
├── .claude/
│ └── skills/
│ ├── standup/
│ │ └── SKILL.md
│ └── conclude/
│ └── SKILL.md
├── STATUS.md
├── session-logs/
│ └── .gitkeep
└── ... your project files ...
STATUS.md — Your project's current state. Use the included STATUS-TEMPLATE.md as a starting point — copy it to your project root and rename it to STATUS.md. At minimum, include a "Last updated" date line and sections for priorities and open decisions.
session-logs/ — Create this directory in your project root. /conclude writes individual session logs here, one file per session, named YYYY-MM-DD-session-log.md. Add a .gitkeep to track the empty directory.
Both skills have clearly marked [CUSTOMIZE] blocks inside HTML comments. At minimum, update:
- File paths in the standup read sequence (point to your actual state files)
- STATUS.md sections in conclude's update step (match your STATUS.md structure)
- Naming conventions in the hygiene sweep (match your project's conventions)
If your project only uses STATUS.md and session logs (no additional state files), delete the placeholder examples in the [CUSTOMIZE] blocks — the skills work without them.
Add a reminder to your project's CLAUDE.md or instructions file:
Every session starts with
/standup— no exceptions. When ending a session, run/conclude.
For Cowork projects, add the same line to the Project Instructions field.
The examples/ directory contains a complete set of examples from a fictional project, all consistent with each other:
session-log-example.md— A filled-in session log showing every section populated, including the<!-- session-state -->metadata blockstatus-example.md— What a well-maintained STATUS.md looks like after several sessionsstandup-output-example.md— What/standupactually produces when it runs — the summary format users see at the start of each session
These examples are the fastest way to understand the system. Read them before customizing the skills.
The skills work out of the box with just STATUS.md and session-logs/. The standup reads status + latest log, the conclude writes a log and updates status. Everything else is optional.
If your project has additional state files (architecture docs, roadmaps, workstream trackers), add them to the standup's read sequence. The more state files the standup reads, the better the context — but each file adds to startup time.
Both skills support Incoming/ and Outgoing/ directories for cross-project context sharing. If your work spans multiple projects, enable the handoff steps. If not, they skip silently when the directories don't exist.
The standup supports conditional reads — files that only get read when the session topic requires them. Add entries for reference docs, technical specs, or any file that's valuable context for specific work but unnecessary overhead for every session. If you don't need this feature, delete the placeholder entries in the standup skill.
The standup checks how old your state files are and flags potential gaps. Adjust the staleness threshold (default: 7 days) based on how frequently you work in the project.
- Claude Code: Skills discovered automatically from
.claude/skills/in the working directory - Cowork: Skills discovered from the project's mounted folder (project-scoped), or place in your root
.claude/skills/for cross-project availability - Programmatic use: Skills can be invoked via dispatch or scheduled tasks in any environment that supports Claude Code skills
See CONTRIBUTING.md for guidelines.
MIT — see LICENSE.