Skip to content
cccskills
FreePublished on GitHub

progress-reading-protocol

Run the fixed 6-step session-opening sequence — pwd, read progress, git log, count remaining features, init.sh, smoke-test last feature — before touching any new work. The orientation ritual that lets fresh-context sessions reconstruct project state in under a minute.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Progress-Reading Protocol

You have no memory of the previous session. The repo does. Every fresh session burns 5-10 minutes reconstructing state unless you follow a fixed opening sequence — with the sequence, it drops to 30-60 seconds. The cost is 2-4k tokens at the top of every session; the payoff crosses over past four sessions on the same project.

Skipping steps is the failure mode. Sessions that skip the smoke-test step (6) reliably build new features on top of silently broken ones. See the "looks shipped, isn't shipped" bug (originally documented in the shift-work harness pattern).

When to apply

  • First tool calls of any coding-agent session in a multi-session project.
  • After a context reset, compaction, or crash mid-project — treat the resumed context as a fresh session.
  • Before you write a single line of new code. No exceptions for "quick fixes."

Procedure — run in order, no skipping

  1. pwd — confirm you are in the project directory. You may only edit files below this path.
  2. Read claude-progress.txt (or whatever the project's shift-notes file is called). This is the previous session's prose handoff. 2b. Read claude-decisions.json — the machine-readable ledger of decisions the loopkit pre-compact hook extracts before each compaction. Prose in claude-progress.txt tells you what the last session did; JSON in claude-decisions.json tells you what was chosen and rejected. If the two disagree on a specific choice, the JSON is the durable record. See [[active-memory-reminder]].
  3. git log --oneline -20 — see what was actually committed. If the progress file and the git log disagree, trust the git log. The progress file can be truncated by a crashed write; the log is append-only.
  4. Count remaining features — cat feature_list.json | jq '[.[] | select(.passes==false)] | length'. Adjust the field name to the project's schema. This anchors you to the source of truth for completion state.
  5. ./init.sh — bring up the dev server. If this fails, fixing it is your only job this session. Do not skip to feature work with a broken environment.
  6. Smoke-test the most recently "completed" feature — drive it end-to-end via the browser-automation tool, curl, or the actual CLI. Not unit tests. If it fails, invoke [[broken-window-check]]: revert the offending commit, flip the feature back to passes: false, and fix it before touching new work.

Only after all six steps pass do you pick new work (see [[shift-notes]] for selection heuristics).

Anti-patterns

  • "I already know this repo, I'll skip the read." You do not. The context you have is the context in front of you.
  • Reading the progress file but not the git log. The prose lies; the log does not.
  • Running init.sh and assuming success without smoke-testing a feature. The dev server can start clean while every route is broken.
  • Smoke-testing with unit tests. Unit tests can pass while the feature is end-to-end broken — wrong route, missing header, config mismatch. Drive the runtime path.
  • Batching the 6 steps into "let me just get oriented." The steps are cheap because they are fixed. Improvising the orientation is where tokens leak.

Cost/benefit

Roughly 2-4k tokens and 30-60 seconds of wall-clock at the top of every session. Payoff crosses over past ~4 sessions on the same project; below that, the ritual is overhead. If your project is one-shot, use [[verification-before-completion]] instead.

Related

  • [[shift-notes]] — the prose ledger this protocol reads and writes.
  • [[active-memory-reminder]] — the paired JSON decisions ledger read in step 2b.
  • [[broken-window-check]] — the sub-protocol for step 6 when the smoke test fails.
  • [[single-feature-per-session]] — what to do once orientation is complete.
  • [[clean-state-contract]] — the mirror discipline at session-end that makes this protocol cheap for the next session.

When NOT to apply: single-shot sessions with no prior state, or the very first session of a project (there is nothing to read yet — run the initializer instead).

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Catch the accessibility failures that ship in almost every AI-built UI. Use after building any interactive component.

The English summary is being prepared. Showing the original description.

Archive228/loopkit755Updated Jul 15, 2026

Before compaction Loopkit extracts decisions into claude-decisions.json (machine-readable). Read it alongside claude-progress.txt at session start — prose is for humans, JSON is for the loop.

The English summary is being prepared. Showing the original description.

Archive228/loopkit755Updated Jul 15, 2026

Review a diff against the goal spec assuming the code is BROKEN. The reviewer that lives in the maker's head always agrees with itself — this pulls review into a hostile, separate pass. Invoke after every code change before marking work done.

The English summary is being prepared. Showing the original description.

Archive228/loopkit755Updated Jul 15, 2026

Verify that an endpoint checks ownership, not just authentication. Use on any handler that reads or mutates user data.

The English summary is being prepared. Showing the original description.

Archive228/loopkit755Updated Jul 15, 2026

Find the exact commit that introduced a bug. Use when something worked before and broke, and you don't know which change did it.

The English summary is being prepared. Showing the original description.

Archive228/loopkit755Updated Jul 15, 2026

Before picking new work, smoke-test the last "completed" feature. If it's broken, revert and re-open it before touching anything else. Kills the "looks shipped, isn't shipped" bug across sessions.

The English summary is being prepared. Showing the original description.

Archive228/loopkit755Updated Jul 15, 2026

See all skills by Archive228

Report a problem with this skill