📍 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 |
none |
| User says "save project" or "handoff" |
DORMANT, Project skill handles lifecycle |
none |
| User asks to recall past sessions |
DORMANT, Echo handles historical recall |
none |
Protocol
Reading State (session start or "where was I")
- Check for STATE.md in the current project's
.claude/ directory:{project_dir}/.claude/STATE.md
- If found, read it and present a brief summary:
- What was being worked on
- Any blockers
- The immediate next step
- If not found, say: "No STATE.md exists yet. I can create one after we start working."
Writing/Updating State
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
Check git status for uncommitted work:
git status --short
Write STATE.md to the project's .claude/ directory:
# 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"}
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)
1---2name: state3description: Use when the user says 'update state', 'project state', 'where was I', or at session start to load current context.4---567# 📍 State: Updating Project State...8*Maintain a living document of where you are right now in a project.*910## Activation1112When this skill activates, output:1314`📍 State: Updating project state...`1516Then execute the protocol below.1718## Context Guard1920| Context | Status | Priority |21|---------|--------|----------|22| **User says "update state", "save state", "project state"** | ACTIVE: update STATE.md | P1 |23| **User says "where was I", "where did I leave off"** | ACTIVE, read and present STATE.md | P1 |24| **User starts a session and STATE.md exists** | ACTIVE, read silently, use as context | P2 |25| **User says "save diary" or "log session"** | DORMANT, Diary handles full session logs | none |26| **User says "save project" or "handoff"** | DORMANT, Project skill handles lifecycle | none |27| **User asks to recall past sessions** | DORMANT, Echo handles historical recall | none |2829## Protocol3031### Reading State (session start or "where was I")32331. **Check for STATE.md** in the current project's `.claude/` directory:34 ```35 {project_dir}/.claude/STATE.md36 ```372. If found, read it and present a brief summary:38 - What was being worked on39 - Any blockers40 - The immediate next step413. If not found, say: "No STATE.md exists yet. I can create one after we start working."4243### Writing/Updating State44451. **Gather current state:**46 - What task/phase is actively being worked on right now47 - Decisions made during this session (with rationale)48 - Open blockers or unanswered questions49 - Explicit next steps (not vague, specific enough to resume cold)50 - Key files modified recently51522. **Check git status** for uncommitted work:53 ```bash54 git status --short55 ```56573. **Write STATE.md** to the project's `.claude/` directory:58 ```markdown59 # Project State60 *Last updated: {YYYY-MM-DD HH:MM}*6162 ## Currently Working On63 {Active task or phase: be specific}6465 ## Decisions Made66 - {Decision}: {Rationale}6768 ## Blockers69 - [ ] {Blocker description}7071 ## Next Steps72 1. {Immediate next action, specific enough to start cold}73 2. {Following action}7475 ## Recently Modified Files76 - {file path}: {what changed}7778 ## Uncommitted Changes79 {List any unstaged/uncommitted work, or "None: clean working tree"}80 ```81824. **Confirm** with a brief summary of what was saved.8384## Deconfliction8586| Skill | What it tracks | When |87|-------|---------------|------|88| **State** | Current snapshot, where you are *right now* | During session, living document |89| **Diary** | Historical log, what you *did* in a session | End of session, append-only |90| **Project** | Project lifecycle, handoff between sessions | Session boundaries |91| **Work** | Task list, what *needs to be done* | When planning/tracking todos |9293State is the **present tense** complement to Diary's **past tense**. State tells you where to resume; Diary tells you what happened.9495## Inputs96- Current working context (project, files, git status)97- User's description of current state (or auto-detected from session)9899## Outputs100- `{project_dir}/.claude/STATE.md`: updated living document101- Brief confirmation summary102103## Example Usage104105**User:** "update state"106107```108📍 State: Updating project state...109110Saved: C:\Projects\AdminStack\.claude\STATE.md111112Currently: Building CC Monitor notification system113Blockers: None114Next: Wire up WebSocket events to notification dropdown115116This will auto-load next session for seamless pickup.117```118119## Level History120121- **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)