Skip to content

Session Continuity Protocol

A file-based protocol that gives AI agents perfect continuity across independent sessions using three artifacts and a strict session loop.

Problem

AI agents lose all context between sessions. Without a deliberate protocol, this leads to:

  • Duplicated work — agents redo tasks already completed in prior sessions
  • Premature completion — agents see existing progress and declare the project finished, missing substantial remaining work
  • Broken state — agents make changes that conflict with prior work because they don't understand what came before

The Pattern

Three Artifacts

Every long-running agent project uses exactly three persistence mechanisms:

  • TASKS.md — source of truth for what needs doing
  • LOG.md — append-only session log
  • Git — versioned ground truth

TASKS.md

A markdown file with rich prose describing each task. Each task represents one end-to-end capability (not a substep) and contains a fenced metadata block tracking completion status:

markdown
## Implement user authentication

Users can log in with email and password. The system rejects invalid
credentials and locks accounts after 3 failed attempts.

\`\`\`yaml
done: false
evidence:
\`\`\`

Agents may only edit the metadata block (done, evidence). They may not rewrite descriptions, delete tasks, reorder tasks, or add new tasks unless explicitly instructed.

LOG.md

One entry per session documenting what happened, what was verified, and which commits were produced. Agents may only append — never edit or delete past entries. This is the primary orientation tool for the next session.

markdown
## Session 2025-11-27T14:30Z

**Task:** Implement user authentication
**Outcome:** Completed. Login, rejection, and lockout all verified.
**Commits:** a1b2c3d — implement auth flow; e4f5g6h — update task status
**Notes:** Rate limiter config is in `config/auth.yaml`. Password hashing
uses bcrypt with cost factor 12.

Git

All work happens on a single designated branch. Git commits are the authoritative record of what changed. Each session must end with at least one commit referenced in LOG.md.

The Session Loop: Orient, Execute, Report

Every session follows exactly this sequence. No skipping, no merging steps.

Phase 1: Orient

Goal: understand current state and choose one task.

  1. Read the prompt/instructions fully
  2. Read LOG.md from the bottom up to understand recent work
  3. Read TASKS.md and identify tasks with done: false
  4. Inspect recent git history on the working branch (git log -10)
  5. Choose exactly one task to work on this session

If no tasks remain, stop and report completion in LOG.md.

Phase 2: Execute

Goal: complete the chosen task.

Allowed: run the project, run tests, modify application code for the chosen task only.

Prohibited: update TASKS.md, write to LOG.md, commit, or start additional tasks. These all happen in Report.

Phase 3: Report

Goal: leave a clean, unambiguous record for the next session.

There are three outcomes — completed, partial, or blocked — but the sequence is the same regardless:

  1. Verify — re-run all required tests
  2. Update TASKS.md — if the task is fully verified, mark done: true and add evidence; if incomplete, leave done: false and add a status note describing what remains
  3. Commit — code changes + task update in one commit
  4. Append to LOG.md — include commit hash, outcome, and (if incomplete) what the next session should do
  5. Commit the log — separate log-only commit

Branch Rules

  • All agent work happens on a single branch (e.g., agent/main)
  • No feature branches — one branch keeps the protocol simple
  • No rebasing or history rewriting — the log must be trustworthy
  • Each session produces at least one commit

Stop Conditions

End the session immediately when any of these occurs:

  • The selected task is completed and reported
  • Remaining context drops below 50%
  • Tests cannot be made to pass within reasonable effort
  • The task is larger than expected and needs to be split

In all cases, the agent must still produce a Report. An incomplete task gets documented honestly — this is far more valuable than a rushed, broken completion.

Non-Negotiable Rules

  • One task per session
  • No task marked done without verification
  • No session ends without a report
  • Never edit past log entries
  • Never rewrite git history
  • Optimize for clarity and continuity, not speed

When to Use

  • Multi-session projects where an agent works incrementally across many independent invocations
  • Tasks too large for a single context window
  • Projects where multiple agents (or agent + human) collaborate asynchronously
  • Any workflow where session-to-session continuity is critical

Trade-offs

Benefits:

  • Perfect continuity — every session picks up exactly where the last left off
  • Auditable — LOG.md and git history provide a complete record
  • Recoverable — if an agent produces bad work, the clear commit history makes it easy to revert
  • Simple — three files and one loop; no external infrastructure needed

Costs:

  • Overhead — the Orient phase and Report phase consume context that could go toward implementation
  • Rigidity — one-task-per-session may feel slow for simple tasks
  • Requires discipline — the protocol only works if the prompt enforces it strictly; agents will cut corners if given room

References