Progress-Reading Protocol
SkillMonitoring & opsRun 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Progress-Reading Protocol skill
What this skill tells your AI
The instructions your AI receives, as published by archive228/loopkit in skills/progress-reading-protocol/SKILL.md and read by ahel’s review.
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
pwd— confirm you are in the project directory. You may only edit files below this path.- Read
claude-progress.txt(or whatever the project's shift-notes file is called). This is the previous session's prose handoff. 2b. Readclaude-decisions.json— the machine-readable ledger of decisions the loopkitpre-compacthook extracts before each compaction. Prose inclaude-progress.txttells you what the last session did; JSON inclaude-decisions.jsontells you what was chosen and rejected. If the two disagree on a specific choice, the JSON is the durable record. See [[active-memory-reminder]]. 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.- 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. ./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.- 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 topasses: 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.shand 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).
Signals
- GitHub stars
- 754
- Forks
- 126
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
progress-reading-protocol- Source
- github.com/archive228/loopkit