state
$
npx mdskill add cwinvestments/memstack/state*Maintain a living document of where you are right now in a project.*
SKILL.md
.github/skills/stateView on GitHub ↗
---
name: state
description: "Use when the user says 'update state', 'project state', 'where was I', or at session start to load current context."
version: 1.0.0
---
# 📍 State — Updating Project State...
*Maintain a living document of where you are right now in a project.*
## Activation
When this skill activates, output:
`📍 State — Updating project state...`
Then execute the protocol below.
## Context Guard
| Context | Status | Priority |
|---------|--------|----------|
| **User says "update state", "save state", "project state"** | ACTIVE — update STATE.md | P1 |
| **User says "where was I", "where did I leave off"** | ACTIVE — read and present STATE.md | P1 |
| **User starts a session and STATE.md exists** | ACTIVE — read silently, use as context | P2 |
| **User says "save diary" or "log session"** | DORMANT — Diary handles full session logs | — |
| **User says "save project" or "handoff"** | DORMANT — Project skill handles lifecycle | — |
| **User asks to recall past sessions** | DORMANT — Echo handles historical recall | — |
## Protocol
### Reading State (session start or "where was I")
1. **Check for STATE.md** in the current project's `.claude/` directory:
```
{project_dir}/.claude/STATE.md
```
2. If found, read it and present a brief summary:
- What was being worked on
- Any blockers
- The immediate next step
3. If not found, say: "No STATE.md exists yet. I can create one after we start working."
### Writing/Updating State
1. **Gather current state:**
- What task/phase is actively being worked on right now
- Decisions made during this session (with rationale)
- Open blockers or unanswered questions
- Explicit next steps (not vague — specific enough to resume cold)
- Key files modified recently
2. **Check git status** for uncommitted work:
```bash
git status --short
```
3. **Write STATE.md** to the project's `.claude/` directory:
```markdown
# Project State
*Last updated: {YYYY-MM-DD HH:MM}*
## Currently Working On
{Active task or phase — be specific}
## Decisions Made
- {Decision}: {Rationale}
## Blockers
- [ ] {Blocker description}
## Next Steps
1. {Immediate next action — specific enough to start cold}
2. {Following action}
## Recently Modified Files
- {file path} — {what changed}
## Uncommitted Changes
{List any unstaged/uncommitted work, or "None — clean working tree"}
```
4. **Confirm** with a brief summary of what was saved.
## Deconfliction
| Skill | What it tracks | When |
|-------|---------------|------|
| **State** | Current snapshot — where you are *right now* | During session, living document |
| **Diary** | Historical log — what you *did* in a session | End of session, append-only |
| **Project** | Project lifecycle — handoff between sessions | Session boundaries |
| **Work** | Task list — what *needs to be done* | When planning/tracking todos |
State is the **present tense** complement to Diary's **past tense**. State tells you where to resume; Diary tells you what happened.
## Inputs
- Current working context (project, files, git status)
- User's description of current state (or auto-detected from session)
## Outputs
- `{project_dir}/.claude/STATE.md` — updated living document
- Brief confirmation summary
## Example Usage
**User:** "update state"
```
📍 State — Updating project state...
Saved: C:\Projects\AdminStack\.claude\STATE.md
Currently: Building CC Monitor notification system
Blockers: None
Next: Wire up WebSocket events to notification dropdown
This will auto-load next session for seamless pickup.
```
## Level History
- **Lv.1** — Base: Living STATE.md creation and update protocol. Read via Work Step 0 or manual invocation. Deconfliction with Diary/Project/Work. (Origin: MemStack v3.1, Feb 2026)
More from cwinvestments/memstack
- compressUse when the user says 'headroom', 'compression', 'token savings', 'proxy status', or asks about context window usage.
- diaryUse when the user says 'save diary', 'log session', 'wrapping up', or at end of a productive session.
- echoUse when the user references past sessions, asks 'what did we do', 'do you remember', 'last session', 'recall', or 'continue from'.
- familiarUse when the user says 'dispatch', 'send familiar', 'split task', or needs work split across parallel CC sessions.
- forgeUse when the user says 'forge this', 'new skill', 'create enchantment', or wants to create a MemStack skill.
- governorUse when the user says 'new project', 'project init', 'what tier', 'scope', or discusses project maturity, complexity budget, or what's appropriate to build.
- grimoireUse when the user says 'update context', 'update claude', 'save library', or after significant project changes.
- memstack-automation-api-integrationUse this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs system-to-system connectors with authentication, rate limit handling, and error recovery. Generates API integration code with authentication (OAuth, API key, JWT), request/response mapping, rate limit handling, error recovery with circuit breakers, and sync monitoring. Do NOT use for visual n8n workflows or webhook receiving.
- memstack-automation-content-pipelineUse this skill when the user says 'content pipeline', 'content automation', 'auto-publish', 'repurpose content', 'multi-platform publishing', or needs end-to-end content workflow from ideation through cross-platform formatting and publishing. Do NOT use for single social media posts or individual blog posts.
- memstack-automation-cron-schedulerUse this skill when the user says 'cron job', 'scheduled task', 'run every', 'cron expression', 'recurring job', or needs production-grade scheduled jobs with overlap prevention, monitoring, and structured logging. Do NOT use for n8n workflows or event-driven webhooks.