# Sitrep

> Use when the user invokes /sitrep — an occasional "state of the union" re-orientation sweep. Verifies what has actually shipped versus what handoffs, specs, memory, and chat history claim shipped (across git in one or more repos, handoff docs, specs, optional chat-history/memory MCPs, and open issues), surfaces loose ends and loss-risk (unpushed commits, stale/stray worktrees & branches, unchecked plan boxes, never-closed handoff pending sections), then resets what matters next as a milestone-anchored list plus a bounded off-roadmap-drift section. Writes a report to docs/digests/ and proposes (never applies) a roadmap diff. Triggers on /sitrep, "state of play", "what's actually shipped", "what did I leave hanging", "re-orient me on this project".

- Skill: `iamneilroberts/sitrep` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add iamneilroberts/sitrep`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iamneilroberts/sitrep/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: iamneilroberts (https://skillmd.com/u/iamneilroberts)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/iamneilroberts/sitrep

---


# /sitrep — state of the union re-orientation

> **Optional integrations** (each missing one degrades to a noted DATA GAP, never a failure): a `curator` verification subagent (see `agents/curator.md` in this collection) for escalated claims; a session-history MCP and a memory MCP for the historical lane; a `docs/roadmap/MILESTONES.md` for milestone anchoring; sibling skills `/pm` and `/focus`.

Occasional deep sweep. Three jobs: verify shipped-vs-claimed, surface loose ends / loss-risk (unpushed commits, stale worktrees, unchecked plans, unclosed handoffs), and reset what's next. Read-only except for the report file it writes; the MILESTONES.md change is PROPOSED, never applied.

`/pm`-style live boards are the daily at-a-glance; `/sitrep` is periodic truth-reconciliation, and its loose-ends/at-risk section is loss-risk & staleness reconciliation, not a live board.

## Step 1 — Args + window
`/sitrep` takes no required args. Determine the git/since window: read the newest prior `docs/digests/*-sitrep.md`; if found, window = its date → today; else default 14 days. Pass the window string (e.g. `14 days ago` or `2026-05-14`) to the backbone lane.

## Step 2 — Dispatch both lanes IN PARALLEL
In a single message, dispatch two general-purpose subagents (Agent tool, no subagent_type):
- BACKBONE: "Read `~/.claude/skills/sitrep/references/gatherer-protocol.md`. Act as the BACKBONE lane, window=<window>. Return only the claim list."
- HISTORICAL: "Read `~/.claude/skills/sitrep/references/gatherer-protocol.md`. Act as the HISTORICAL lane. Return only the claim list with the CONTINUITY LAG note at top."

## Step 3 — Validate digests
Read `~/.claude/skills/sitrep/references/synthesis-rules.md` §1. For each lane: confirm schema completeness; mark missing/errored sources as DATA GAPs.

## Step 4 — Synthesize
Per synthesis-rules.md §2–§4: group claims by subject, resolve conflicts by claim_type + freshness gate, compute the escalation score, dispatch the `curator` subagent for claims scoring ≥3, fold verdicts back. Route `loose-end` claims into section 2 (rank Loss-risk → Stale → Unfinished); a loose-end is a direct git/fs fact and rarely escalates, but curator-check any that contradicts a `shipped` claim (e.g. handoff says "shipped" but commits are unpushed). Determine INCOMPLETE SWEEP if any backbone source is a gap.

## Step 5 — Write report + terminal summary
Write `docs/digests/YYYY-MM-DD-sitrep.md` (overwrite if it exists) using the template below. Then print a terminal summary: status (OK / INCOMPLETE SWEEP), CONTRADICTED count, loss-risk count (loose-ends in the Loss-risk bucket), the single top next-action, and the report path. Do not paste the full report into chat.

### Report template
````
# /sitrep — YYYY-MM-DD

**Status:** OK | INCOMPLETE SWEEP
**Window:** <since> → today · **Continuity lag:** <N>d

## 1. Shipped vs claimed
### CONTRADICTED (look here first)
- <claim> — <curator verdict / evidence> · confidence <h/m/l> · freshness <date>
### Unverified
- <claim> — why unconfirmed
### Verified shipped
- <claim> — <SHA/date>

## 2. Loose ends / at-risk   <!-- always shown, even on INCOMPLETE SWEEP -->
From `loose-end` claims, ranked most-at-risk first. Omit a bucket if empty; if all three are empty, write "None — tree, plans, and handoffs are clean."
### Loss-risk (would vanish on a crash)
- <unpushed-commit / uncommitted-nothing> — <branch/repo · count · newest SHA/date>
### Stale (in-flight but untouched >7d)
- <stale worktree / branch> — <path/branch · last-commit date · PR? · `active` if heartbeating the journal>
### Unfinished (committed but not closed out)
- <plan with unchecked boxes / handoff pending section> — <file:line · "N of M unchecked" or marker text>

## 3. Milestone-anchored next steps   <!-- WITHHELD if INCOMPLETE SWEEP -->
Iterate milestones top-to-bottom, first unchecked next_action; anything explicitly parked "below the line" is NEVER suggested. If you keep a roadmap (`docs/roadmap/MILESTONES.md`) consume it; otherwise anchor to the most recent priorities from the handoffs/journal. (If you have a `/focus`-style daily driver, consume today's digest instead of recomputing.)
- **Primary — M<n>:** <next_action>
- **Backfill — M<m>:** <next_action>

## 4. Off-roadmap drift (max 3, propose-only)
- <item> — impact: <…> — tag: `roadmap-it` | `consciously-defer-until-<date>`

## 5. Proposed MILESTONES.md diff   <!-- WITHHELD if INCOMPLETE SWEEP -->
Bounded to `status:` + `- [ ]/[x]` next_action lines ONLY. Never add/remove milestones; never touch below-the-line. Per-hunk rationale. PROPOSED — apply only on user approval.
```diff
<hunks>
```

## 6. Sweep completeness
- Loaded: <sources>
- DATA GAPS: <sources that failed, or "none">
````

## Behavior rules
- No fabrication; DATA GAP over invention.
- Read-only: never apply the diff; never edit specs/memory/prod. Writing the report file is the only write.
- Idempotent same-day overwrite.
- Off-roadmap section: hard cap 3, mandatory tag, propose-only.

