# Savepoint Protocols — Quickstart Guide v02.1

**Purpose:** A transactional continuity system for saving, restoring, comparing, and safely ingesting agent/project state across chats, project folders, and direct uploads.

## Core Lifecycle

`review → preview → conflict register → operator approval → commit → new savepoint`

Applies to state-changing operations: `/restore commit`, `/diff commit`, `/absorb commit`.

## Core Rules

- `/save` records current state; it is non-destructive and does not require approval.
- `/restore`, `/diff`, and `/absorb` must preview before commit.
- Commit requires explicit operator approval and must generate a new savepoint.
- Current system/developer/operator instructions outrank savepoints.
- Cross-agent context may transfer; another agent's identity must not transfer.
- Unclear, stale, private, or conflicting items must be flagged, not silently merged.

## Authority Order

1. Current system / developer instructions
2. Current operator instructions
3. Current chat state
4. Current canonical project files
5. Active savepoint
6. Historical savepoints
7. Foreign-agent savepoints
8. Model inference

## Storage Rules

| Location | Best For | Not Enough For |
|---|---|---|
| Project Sources | durable availability, lookup, reference | automatic restore |
| Direct Upload | restore, diff, absorb, handoff | long-term organization |
| Agent-Level Packet | stable protocol behavior | project-specific state |
| Active Index | current-version lookup | full continuity detail |

**Rule:** Project Sources preserve availability. Direct uploads establish operational authority. Active index prevents version drift.

## Canonical Filename

`YYYY-MM-DD__SAVEPOINT__[Agent-Name]__[Project-or-Module]__[Short-Summary-Title]__vX.X.md`

Example:  
`2026-05-15__SAVEPOINT__Agent-Handoff-Compiler__Command-Hub__Protocol-Packet-v02.1__v2.1.md`

## Commands

### Core
- `/save` — create current-state savepoint.
- `/restore preview` — inspect restore candidate; no state change.
- `/restore commit` — apply approved restore items; generate new savepoint.
- `/diff preview` — compare same-agent historical savepoint; no state change.
- `/diff commit` — apply approved same-agent deltas; generate new savepoint.
- `/absorb preview` — review foreign-agent savepoint; identity firewall active.
- `/absorb commit` — apply approved cross-agent context; generate new savepoint.

### Maintenance
- `/validate savepoint` — structure, metadata, privacy, conflict, and JSON check.
- `/status savepoint` — active lineage, conflicts, open questions, drift risks.
- `/archive savepoint` — mark archived, superseded, deprecated, quarantined, or rejected.
- `/deployment status` — identify packet/source/index/registry/candidate and direct-upload needs.

## IDs / Tags

| Field | Purpose |
|---|---|
| `savepoint_id` | unique artifact ID |
| `parent_savepoint_id` | lineage tracking |
| `artifact_status` | draft / active / superseded / archived / quarantined / rejected |
| `transfer_mode` | same_agent / cross_agent / project_only / restore_candidate / historical_reference |
| `identity_bearing` | whether same-agent identity layer exists |
| `deployment_context` | agent_level / project_source / project_instruction / direct_upload / unknown |
| `approval.status` | not_requested / pending / approved / rejected |

## Retention Labels

`retain_active` · `retain_reference` · `restore_active` · `coordination_only` · `historical_only` · `superseded` · `do_not_import` · `do_not_restore` · `requires_operator_confirmation` · `conflict_with_current_state` · `privacy_restricted` · `identity_layer_nontransferable`

## Project Folder Set

`_PROJECT_PROTOCOLS/` packet files  
`_ACTIVE_STATE/` active index + agent registry  
`_AGENT_SAVEPOINTS/<Agent>/active|archive|quarantine/`  
`_HANDOFFS/pending|approved|archived/`

## Operator Approval Examples

Valid: `Approved: commit restore items R-001 and R-003 only.`  
Invalid for commit: `Looks good.`

## Golden Rule

**Project folder = library/index. Direct upload = selected evidence. Project instructions = activation switch. Active index = current-truth pointer.**
