# Project

> Use when the user says 'save project', 'handoff', or when context is running low and state must be preserved.

- Skill: `cwinvestments/project` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cwinvestments/project`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cwinvestments/project/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cwinvestments (https://skillmd.com/u/cwinvestments)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cwinvestments/project

---



# 💾 Project: Saving Project State...
*Save and restore project state between CC sessions for seamless handoffs.*

## Activation

When this skill activates, output:

`💾 Project: Saving project state...`

Then execute the protocol below.

## Protocol

### Saving (handoff):

1. **Capture current state:**
   - What was accomplished this session
   - What's currently in progress (uncommitted changes, partial work)
   - Open questions or decisions pending
   - Next steps in priority order
   - Key file paths that were modified
2. **Run git status** to capture uncommitted state
3. **Save project context to SQLite:**

   Write the payload to a file, then pipe it in with `-` as the argument. A payload on stdin is never seen by the shell's parser, so a redirection operator inside your prose cannot be read as one.

   ```bash
   cat context.json | python "${CLAUDE_PLUGIN_ROOT}/db/memstack-db.py" set-context -
   ```

   `context.json` contains:
   ```json
   {"project":"<name>","status":"active","current_branch":"<branch>","last_session_date":"<YYYY-MM-DD>","known_issues":"<issues>","backlog":"<next tasks>"}
   ```
4. **Also save markdown handoff** to `memory/projects/{project}-{date}.md`
5. **Present the ready-to-paste prompt** for the next CC session

### Loading (restore):

1. **Load project context from SQLite:**
   ```bash
   python "${CLAUDE_PLUGIN_ROOT}/db/memstack-db.py" get-context <project>
   ```
2. **Load recent sessions:**
   ```bash
   python "${CLAUDE_PLUGIN_ROOT}/db/memstack-db.py" get-sessions <project> --limit 3
   ```
3. **Load plan if exists:**
   ```bash
   python "${CLAUDE_PLUGIN_ROOT}/db/memstack-db.py" get-plan <project>
   ```
4. **Fallback:** Check `memory/projects/` for markdown handoffs
5. **Present combined state** so CC can continue immediately

## Inputs
- Project name
- Current session context (what was done, what's pending)

## Outputs
- Project context saved to SQLite database
- Markdown handoff in memory/projects/ (backup)
- Ready-to-paste prompt for next CC session

## Example Usage

**User:** "context is running low: save project"

```
💾 Project: Saving project state...

Saved: memory/projects/adminstack-2026-02-18.md

--- PASTE INTO NEXT CC SESSION ---
Working directory: /path/to/your-project
Read $MEMSTACK_PATH/MEMSTACK.md

Resume AdminStack. Last session completed:
- Built CC Monitor page with auto-refresh
- Fixed API key validation

Next steps:
1. Build cc-reporter.js script
2. Add WebSocket updates
--- END HANDOFF ---
```

## Level History

- **Lv.1**: Base: Session state capture and handoff generation. (Origin: MemStack v1.0, Feb 2026)
- **Lv.2**: Enhanced: Added YAML frontmatter, activation message, template integration. (Origin: MemStack v2.0 MemoryCore merge, Feb 2026)
- **Lv.3**: Advanced: SQLite-backed project context, combined restore from DB + sessions + plan. (Origin: MemStack v2.1 Accomplish-inspired upgrade, Feb 2026)

