agentleFS
armenrarmenr/modelmux/.claude/skills/sitrep/SKILL.md

sitrep

Skill2 starsChanged 4 months agoMITView on GitHub

Write a WRITE-ONCE, timestamped 10-point zero-loss checkpoint to .agent-docs/checkpoints/YYYY-MM-DD-HHMMSS-<slug>.md, keyed to the active WU. The anti-naive-summarization tier — preserves what a lossy summary silently drops (dead-ends, rejected alternatives, in-flight pause point). Use before risky operations, at phase gates, before compaction, or whenever losing the conversation would lose investigation rationale. Immutable: never edited after write; new information = a NEW checkpoint that references the prior.

12 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 8 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Write an immutable, timestamped situation report that survives compaction with zero loss of rationale.

    line 12
  2. Very specific:

    Foreground in the main agent: Only the agent holding the session context knows the dead-ends and the rejected alternatives.

    line 18
  3. Distinctive:

    Every verdict in the sitrep cites on-disk evidence (CONVENTIONS §7.3).

    line 53
  4. Very specific:

    Write to .agent-docs/checkpoints/YYYY-MM-DD-HHMMSS-<slug>.md.

    line 64
  5. Distinctive:

    Point 6 — Investigation results INCLUDING dead-ends: Every path explored that did NOT pan out, with the reason it failed.

    line 82
  6. Very specific:

    If a decision in point 5 is ADR-worthy: "Decision in §5 should be promoted to an ADR — queue at next /handoff."

    line 100
  7. Distinctive:

    Do NOT edit a written sitrep — write a new one referencing it.

    line 120
  8. Distinctive:

    Do NOT drop dead-ends or rejected alternatives to look tidier.

    line 121
  9. Distinctive:

    Do NOT skip the addendum check (point 10) — it is the findings-to-disk net.

    line 122
  10. Distinctive:

    Do NOT include secrets / regulated or user data / sensitive material — reference paths / store keys (CONVENTIONS "What NOT to do").

    line 123
  11. Distinctive:

    Do NOT claim WIRED without a reachability proof — IMPL ≠ WIRED (the #1 recurring trap).

    line 124
  12. Distinctive:

    Do NOT delegate to a sub-agent — it has zero session context.

    line 125

“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/sitrep — the 10-point zero-loss checkpoint contract

Write an immutable, timestamped situation report that survives compaction with zero loss of rationale. This is the checkpoint contract, keyed to the active work-unit (WU-NNNN).

The ten points are canonical in CONVENTIONS.md §6 — read §6 once for the WHY, then instantiate templates/checkpoint-template.md (which names all ten). This skill governs the write contract (filename, frontmatter, immutability, when to fire), not the point rationale — do not restate §6 here.

A /sitrep is NOT a /flush. /flush keeps now/* current and is editable; /sitrep is a frozen forensic record. The single defining job: preserve what a naive summary deletes — the dead-ends, the rejected alternatives, the exact in-flight pause point. The recurring failure it kills: "findings only in conversation are DEAD at compaction."

Foreground in the main agent. Only the agent holding the session context knows the dead-ends and the rejected alternatives. A sub-agent with zero context cannot author this — briefing it on what to write IS the work. (Same reasoning as /flush.)

When to invoke

  • Before a risky / irreversible operation — a migration, a workspace-wide refactor, a destructive fs op. The sitrep is the restore point for your reasoning, not just your code.
  • At a phase gate — when a multi-phase work-unit completes a phase and you STOP for review.
  • Before context compaction / near ~80% context — capture the forensic state, THEN /handoff consumes it.
  • When a deep investigation has accumulated dead-ends — paths explored that did not pan out. These are the highest-value, most-summarization-fragile content. Write them down before they evaporate.
  • When the operator asks for a "checkpoint" / "sitrep" / "save the investigation state."

When NOT to invoke

  • For routine mid-session now/* housekeeping → use /flush (editable, keeps momentum).
  • For session-end / the cross-session bridge → use /handoff (which regenerates handoff.md and consumes the latest sitrep).
  • For a trivial one-line state nudge — overkill; just /flush or keep working.
  • To AMEND an existing sitrep — you never edit one. Write a NEW sitrep that references the prior by filename (see Immutability below).

Steps

1. Identify the active work-unit and compute the filename

The checkpoint is keyed to a WU. Find the active WU-NNNN from .agent-docs/now/work-plan.md (the board). If no WU is active, that is itself a finding — note it in point 1 and use the closest tracked unit, or open one in now/work-plan.md first.

pwd && git rev-parse --abbrev-ref HEAD          # cwd + branch (standing-rules cwd-check)
git rev-parse --show-toplevel                    # which repo am I actually in
TS=$(date -u +%Y-%m-%d-%H%M%S)                    # UTC — machine-sortable filename (CONVENTIONS §3)
# slug = short kebab description of THIS checkpoint's moment, e.g. "pre-storage-migration"
echo ".agent-docs/checkpoints/${TS}-<slug>.md"

Filename is checkpoints/YYYY-MM-DD-HHMMSS-<slug>.md, UTC timestamp (machine-sortable). Frontmatter created/last-modified use the LOCAL date (date +%Y-%m-%d) per CONVENTIONS §2.

2. Pull the on-disk ground truth (evidence behind the verdicts)

Every verdict in the sitrep cites on-disk evidence (CONVENTIONS §7.3). Gather what is relevant to THIS segment — don't over-fetch:

git log --oneline -8
git status -s

If the session touched runtime-facing code, capture the relevant gate / reachability evidence you already have (a bun run build / bun run lint / bun test test/ result; a the TypeScript language server reachability output for a wiring claim). That reachability output is the WIRED proof for point 8 — capture it verbatim if a work-unit is mid-wiring. Do NOT run fresh heavy builds just to populate the sitrep; cite the freshest evidence you legitimately have and say so.

3. Write the checkpoint — all TEN points, none optional

Write to .agent-docs/checkpoints/YYYY-MM-DD-HHMMSS-<slug>.md. Instantiate templates/checkpoint-template.md; the ten mandated points and their rationale are CONVENTIONS.md §6 — do not re-derive them. The doc linter (CONVENTIONS lint rule 14) FAILS a checkpoint missing any of the ten numbered points.

Frontmatter:

---
provenance: llm-autonomous          # llm-reviewed only after operator sign-off
created: <local date>
last-modified: <local date>
work-unit: WU-NNNN                   # the active WU — must resolve in now/work-plan.md (lint rule 15)
tags: [checkpoint]
related: []                          # the prior sitrep if this is an addendum; relevant ADRs / OQs
---

Body — the ten points named by CONVENTIONS.md §6 and templates/checkpoint-template.md (# Checkpoint YYYY-MM-DD-HHMMSS — <slug>). Two points carry the anti-summarization weight and are the ones a summary silently drops — do NOT skimp on them:

  • Point 5 — Decisions made WITH rejected alternatives. What was rejected and why, not just what was chosen (mirrors the ADR ## Alternatives Considered field). A decision recorded without its rejected branches has lost its WHY. If ADR-worthy, note → should become ADR-NNNN and the WU.
  • Point 6 — Investigation results INCLUDING dead-ends. Every path explored that did NOT pan out, with the reason it failed. If the segment had no dead-ends, say so explicitly; "none" is a real answer, not a skip.
  • Point 8 — Files / artifacts touched carry each path's wiring / reachability status (IMPL / WIRED / DEFER). WIRED requires a traced path from a production entrypoint — cite the the TypeScript language server output, or the fallback menu (LSP find-references → call-hierarchy → a language call-graph tool → grep-the-callers floor → a manual-trace note). Record the state in traceability/ (Full profile) or inline. Code that compiles ≠ code that is reachable.
  • Point 10 — Addendum check is the findings-to-disk net: re-read points 1–9, name anything still living only in the conversation (a verbal operator ruling, a scratch artifact built outside the repo, a recipe, an anti-assumption "looks like X → actually Y"), and ADD it here. Mandatory even when it lands "nothing further."

4. Append to the journal

.agent-docs/log.md (newest at top):

## [YYYY-MM-DD] checkpoint | <slug> — <one-line what-state-was-frozen>

WU-NNNN. Sitrep at checkpoints/<filename>. <1 line: the load-bearing thing it preserved, e.g. dead-end set / phase-gate state>.

5. Report

  • "/sitrep written → .agent-docs/checkpoints/<filename> (WU-NNNN)"
  • One line naming what it most protects (the dead-ends captured / the in-flight pause point / the phase-gate state).
  • If a decision in point 5 is ADR-worthy: "Decision in §5 should be promoted to an ADR — queue at next /handoff."

DO NOT auto-commit. The operator controls git.

Immutability + addenda (the WRITE-ONCE rule)

A checkpoint is never edited after write (CONVENTIONS §6 · §1 write-discipline WRITE-ONLY). New information after a sitrep ⇒ a NEW sitrep with a fresh timestamp whose frontmatter related: and point 1 reference the prior by filename. The chain of timestamped sitreps IS the forensic record — editing one would destroy the property that makes it trustworthy under compaction.

Relationship to /flush and /handoff

SkillSurfaceEditable?Job
/flushnow/* + log.mdyes (UPDATE-IN-PLACE)keep working state current, keep momentum
/sitrepcheckpoints/<ts>-<slug>.mdno (WRITE-ONCE)freeze a zero-loss forensic record — dead-ends + rejected alternatives
/handoffnow/handoff.md (+ archive)yes (regenerated)the cross-session bridge; consumes the latest sitrep

/flush and /sitrep are complementary, not redundant: /flush repairs drift in the live state; /sitrep snapshots an immutable record of the reasoning at a moment. /handoff reads the latest sitrep to reconstruct cold-start state and to fold its dead-ends / decisions into the handoff's anti-assumptions + detour-chain sections.

Anti-patterns

  • Do NOT edit a written sitrep — write a new one referencing it.
  • Do NOT drop dead-ends or rejected alternatives to look tidier. They ARE the value (CONVENTIONS §6).
  • Do NOT skip the addendum check (point 10) — it is the findings-to-disk net.
  • Do NOT include secrets / regulated or user data / sensitive material — reference paths / store keys (CONVENTIONS "What NOT to do").
  • Do NOT claim WIRED without a reachability proof — IMPL ≠ WIRED (the #1 recurring trap).
  • Do NOT delegate to a sub-agent — it has zero session context.
  • Do NOT auto-commit.

Design rationale

The 10-point zero-loss contract is canonical in CONVENTIONS.md §6. Lifecycle design + why dead-ends and rejected alternatives are load-bearing: standing-rules-core.md (§Context lifecycle, §Findings-decisions-and-review-feedback-to-disk).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.