with one click
review
// Reviews and validates work across sessions for consistency and correctness. Triggers: "review session work", "validate debriefs", "approve session reports", "end-of-day review".
// Reviews and validates work across sessions for consistency and correctness. Triggers: "review session work", "validate debriefs", "approve session reports", "end-of-day review".
| name | review |
| description | Reviews and validates work across sessions for consistency and correctness. Triggers: "review session work", "validate debriefs", "approve session reports", "end-of-day review". |
| version | 2 |
| tier | protocol |
Reviews and validates work across sessions for consistency and correctness. [!!!] CRITICAL BOOT SEQUENCE:
~/.claude/directives/COMMANDS.md, ~/.claude/directives/INVARIANTS.md, and ~/.claude/directives/TAGS.md.¶INV_SKILL_PROTOCOL_MANDATORY.Output this block in chat with every blank filled:
Boot proof:
- COMMANDS.md — §CMD spotted:
________- INVARIANTS.md — ¶INV spotted:
________- TAGS.md — §FEED spotted:
________
[!!!] If ANY blank above is empty: STOP. Go back to step 1 and load the missing file. Do NOT read Phase 0 until every blank is filled.
[!!!] DO NOT USE THE BUILT-IN PLAN MODE (EnterPlanMode tool). This protocol has its own structure — Phase 2 (Dashboard & Per-Debrief Interrogation) is the iterative work phase. The engine's artifacts live in the session directory as reviewable files, not in a transient tool state. Use THIS protocol's phases, not the IDE's.
Merge into the JSON passed to session.sh activate:
{
"taskType": "RESOLVE",
"phases": [
{"major": 0, "minor": 0, "name": "Setup"},
{"major": 1, "minor": 0, "name": "Discovery"},
{"major": 2, "minor": 0, "name": "Dashboard & Interrogation"},
{"major": 3, "minor": 0, "name": "Synthesis"}
],
"nextSkills": ["/implement", "/document", "/brainstorm", "/analyze", "/chores"],
"provableDebriefItems": ["§CMD_MANAGE_DIRECTIVES", "§CMD_PROCESS_DELEGATIONS", "§CMD_DISPATCH_APPROVAL", "§CMD_CAPTURE_SIDE_DISCOVERIES", "§CMD_MANAGE_ALERTS", "§CMD_REPORT_LEFTOVER_WORK"],
"directives": [],
"logTemplate": "~/.claude/skills/review/assets/TEMPLATE_REVIEW_LOG.md",
"debriefTemplate": "~/.claude/skills/review/assets/TEMPLATE_REVIEW.md",
"requestTemplate": "~/.claude/skills/review/assets/TEMPLATE_REVIEW_REQUEST.md",
"responseTemplate": "~/.claude/skills/review/assets/TEMPLATE_REVIEW_RESPONSE.md",
"modes": {
"quality": {"label": "Quality", "description": "Thorough validation, evidence-driven", "file": "~/.claude/skills/review/modes/quality.md"},
"progress": {"label": "Progress", "description": "Cross-session status reporting", "file": "~/.claude/skills/review/modes/progress.md"},
"evangelize": {"label": "Evangelize", "description": "Stakeholder communication, narrative", "file": "~/.claude/skills/review/modes/evangelize.md"},
"custom": {"label": "Custom", "description": "User-defined", "file": "~/.claude/skills/review/modes/custom.md"}
}
}
Intent: Execute §CMD_REPORT_INTENT_TO_USER.
- I am starting Phase 0: Setup phase.
- I will
§CMD_USE_ONLY_GIVEN_CONTEXTfor Phase 0 only (Strict Bootloader — expires at Phase 1).- My focus is REVIEW (
§CMD_REFUSE_OFF_COURSEapplies).- I will
§CMD_LOAD_AUTHORITY_FILESto ensure all templates and standards are loaded.- I will
§CMD_FIND_TAGGED_FILESto identify unvalidated debriefs (#needs-reviewand#needs-rework).- I will
§CMD_PARSE_PARAMETERSto define the flight plan.- I will
§CMD_MAINTAIN_SESSION_DIRto establish working space.- I will select the Review Mode (Quality / Progress / Evangelize / Custom).
- I will
§CMD_ASSUME_ROLEusing the selected mode's preset.- I will obey
§CMD_NO_MICRO_NARRATIONand¶INV_CONCISE_CHAT(Silence Protocol).
Constraint: Do NOT read any project source code in Phase 0. Only load system templates/standards and discover tagged files.
Required Context: Execute §CMD_LOAD_AUTHORITY_FILES (multi-read) for the following files:
~/.claude/skills/review/assets/TEMPLATE_REVIEW_LOG.md (Template for continuous session logging)~/.claude/skills/review/assets/TEMPLATE_REVIEW.md (Template for the final review report)~/.claude/skills/_shared/TEMPLATE_DETAILS.md (Template for Q&A capture)Discover Debriefs: Execute §CMD_FIND_TAGGED_FILES for BOTH:
#needs-review — never-validated debriefs.#needs-rework — previously rejected debriefs.sessions/ directory.¶INV_TERMINAL_FILE_LINKS (Full variant).Parse parameters: Execute §CMD_PARSE_PARAMETERS - output parameters to the user as you parsed it.
contextPaths MUST include all discovered debrief files.Session Location: Execute §CMD_MAINTAIN_SESSION_DIR - ensure the directory is created.
sessions/[YYYY_MM_DD]_REVIEW_[N] where N increments if multiple review sessions exist for the same date.5.1. Review Mode Selection: Execute AskUserQuestion (multiSelect: false):
> "What review lens should I use?"
> - "Quality" (Recommended) — Correctness-focused: verify work quality, consistency, and completeness
> - "Progress" — Status-focused: track completion, identify blockers, measure velocity
> - "Evangelize" — Communication-focused: frame results for stakeholders, highlight wins
> - "Custom" — Define your own role, goal, and mindset
**On selection**: Read the corresponding `modes/{mode}.md` file. It defines Role, Goal, Mindset, and Review Strategy.
**On "Custom"**: Read ALL 3 named mode files first (`modes/quality.md`, `modes/progress.md`, `modes/evangelize.md`), then accept user's framing. Parse into role/goal/mindset.
**Record**: Store the selected mode. It configures:
* Phase 0 role (from mode file)
* Phase 2 review criteria (from mode file)
6. Assume Role: Execute §CMD_ASSUME_ROLE using the selected mode's Role, Goal, and Mindset from the loaded mode file.
§CMD_INIT_OR_RESUME_LOG_SESSION (Template: REVIEW_LOG.md).Output this block in chat with every blank filled:
Phase 0 proof:
- Mode:
________(quality / progress / evangelize / custom)- Role:
________(quote the role name from the mode preset)- Session dir:
________- Templates loaded:
________,________,________- Debriefs discovered:
________- Parameters parsed:
________
Phase 0 always proceeds to Phase 1 — no transition question needed.
Read everything. Build the global picture.
Intent: Execute §CMD_REPORT_INTENT_TO_USER.
- I am moving to Phase 1: Discovery & Cross-Session Analysis.
- I will read ALL discovered debrief files AND their sibling
_LOG.mdfiles.- I will
§CMD_APPEND_LOG_VIA_BASH_USING_TEMPLATEto log aDebrief Cardfor each debrief.- I will perform the Cross-Session Analysis and log any
Cross-Session Conflictfindings.- I will
§CMD_THINK_IN_LOGthroughout.
Before calling any tool, ask yourself:
Have I made 2+ tool calls since my last log entry?
→ YES: Log NOW before doing anything else. This is not optional.
→ NO: Proceed with the tool call.
[!!!] If you make 3 tool calls without logging, you are FAILING the protocol. The log is your brain — unlogged work is invisible work.
Action:
_LOG.md file(s) (e.g., IMPLEMENTATION_LOG.md, BRAINSTORM_LOG.md)_PLAN.md files for additional context.§CMD_APPEND_LOG_VIA_BASH_USING_TEMPLATE with the Debrief Card schema.§CMD_APPEND_LOG_VIA_BASH_USING_TEMPLATE with the Cross-Session Conflict schema.Constraint: Do NOT present findings to the user yet. Complete the full analysis first.
Output this block in chat with every blank filled:
Phase 1 proof:
- Debriefs read:
________- Sibling logs/plans read:
________- Debrief Cards logged:
________- Cross-session checks:
________/ 4- Conflicts found:
________
Execute §CMD_TRANSITION_PHASE_WITH_OPTIONAL_WALKTHROUGH:
completedPhase: "1: Discovery"
nextPhase: "2: Dashboard & Interrogation"
prevPhase: "0: Setup"
custom: "Skip to Phase 3: Synthesis | I already know the verdicts, just write the report"
Present the global picture first.
Intent: Execute §CMD_REPORT_INTENT_TO_USER.
- I am moving to Phase 2a: Dashboard.
- I will present ALL debrief summary cards and cross-session analysis findings.
- I will
§CMD_WAIT_FOR_USER_CONFIRMATIONbefore drilling into individual debriefs.
Action:
[Session Dir][Debrief Filename] (#needs-review | #needs-rework)#needs-rework: Include the previous ## Rework Notes content and ask: "This was previously rejected. Has the underlying work been redone?"Execute AskUserQuestion (multiSelect: false):
"Dashboard presented. How to proceed?"
- "Proceed to per-debrief review" — Walk through each debrief individually
- "Discuss dashboard first" — I want to talk about the cross-session findings
Walk through each debrief with the user.
Intent: Execute §CMD_REPORT_INTENT_TO_USER.
- I am moving to Phase 2b: Per-Debrief Interrogation.
- I will
§CMD_EXECUTE_INTERROGATION_PROTOCOLfor each debrief.- I will
§CMD_LOG_TO_DETAILSto capture the Q&A.- I will use the Standard Validation Checklist as internal guidance.
- After each debrief, I will tag the outcome (validate or mark for rework) using the tag swap procedures below.
Before starting per-debrief review, present this choice via AskUserQuestion (multiSelect: false):
"How thorough should the per-debrief review be?"
| Depth | Minimum Rounds Per Debrief | When to Use |
|---|---|---|
| Short | 1 round | Quick validation, trusted agent, small scope |
| Medium | 2 rounds | Standard review, moderate complexity |
| Long | 3+ rounds | Deep audit, critical changes, untrusted work |
| Absolute | Until ALL concerns resolved | High-risk sessions, production changes, security-sensitive |
Record the user's choice. This sets the minimum per debrief — the agent can always ask more, and the user can always say "approve" after the minimum is met.
Examples of themes to explore per debrief. Adapt to the session — skip irrelevant ones, invent new ones as needed.
Standard topics (typically covered once per debrief):
Repeatable topics (can be selected any number of times):
[!!!] This is YOUR internal rubric — do NOT present it as a form. Use it to generate contextualized findings.
For each debrief (sequentially):
[!!!] CRITICAL: You MUST complete at least the minimum rounds per debrief for the chosen depth. Track your round count visibly.
Round counter: Output it on each debrief: "Reviewing debrief N of M — Round R / {depth_minimum}+"
Analyze Against Checklist (Internal): Review the debrief against the Standard Validation Checklist. Filter & contextualize — skip checks that aren't relevant. For each relevant check, prepare a specific, contextualized finding.
mutate() context has 3 dedicated tests covering capture, backwards compat, and before snapshot."Present to User: Use AskUserQuestion with structured options:
Process User Response:
~/.claude/scripts/tag.sh swap "$FILE" '#needs-review,#needs-rework' '#done-review'
Record the verdict in REVIEW_LOG.md. Log Verdict: Validated. No leftovers.Leftover Spawned. These become micro-dehydrated prompts in the Leftovers section of the final REVIEW.md report.~/.claude/scripts/tag.sh swap "$FILE" '#needs-review' '#needs-rework'
Then append a ## Rework Notes section at the end with: the date of rejection, the user's stated reason, and specific items to address. If ## Rework Notes already exists, append a new dated entry under it.
Record the verdict in REVIEW_LOG.md. Ask user for the rework reason. Log Verdict: Needs Rework. The leftover prompt generated for this rework MUST include the instruction:
§CMD_SWAP_TAG_IN_FILE to replace #needs-rework with #done-review.## Rework Notes section:
### [YYYY-MM-DD] Resolved
[1-2 lines describing what was done]
See: [REVIEW.md](../YYYY_MM_DD_REVIEW_N/REVIEW.md)
Log: Execute §CMD_LOG_TO_DETAILS after each user interaction. Execute §CMD_APPEND_LOG_VIA_BASH_USING_TEMPLATE with the verdict schema.
Repeat for next debrief.
After reaching minimum rounds for a debrief, present this choice via AskUserQuestion (multiSelect: true):
"Debrief review round complete (minimum met). What next?"
- "Approve and move to next debrief" — (terminal: if selected, skip all others and proceed)
- "More review (1 more round)" — Standard review round, then this gate re-appears
- "Devil's advocate round" — 1 round challenging the session's decisions, then this gate re-appears
- "What-if scenarios round" — 1 round exploring hypotheticals, then this gate re-appears
- "Deep dive round" — 1 round drilling into a prior topic, then this gate re-appears
Execution order (when multiple selected): Standard round first → Devil's advocate → What-ifs → Deep dive → re-present exit gate.
For Absolute depth: Do NOT offer the exit gate until you have zero remaining concerns. Ask: "Round N complete. I still have concerns about [X]. Continuing..."
Output this block in chat with every blank filled:
Phase 2 proof:
- Dashboard presented:
________- User confirmed:
________- Depth chosen:
________- Debriefs reviewed:
________- Verdicts tagged:
________- REVIEW_LOG.md entries:
________- DETAILS.md entries:
________
Produce the review report and spawn leftovers.
1. Announce Intent
Execute §CMD_REPORT_INTENT_TO_USER.
- I am moving to Phase 3: Synthesis.
- I will
§CMD_PROCESS_CHECKLISTS(if any discovered checklists exist).- I will
§CMD_GENERATE_DEBRIEF_USING_TEMPLATE(followingassets/TEMPLATE_REVIEW.mdEXACTLY) to create the review report.- I will spawn leftover sessions with micro-dehydrated prompts.
- I will
§CMD_REPORT_RESULTING_ARTIFACTSto formally close the session.- I will
§CMD_REPORT_SESSION_SUMMARYto provide a concise session overview.
STOP: Do not create the file yet. You must output the block above first.
2. Execution — SEQUENTIAL, NO SKIPPING
[!!!] CRITICAL: Execute these steps IN ORDER. Do NOT skip to step 3 without completing step 1. The review report FILE is the primary deliverable — chat output alone is not sufficient.
Step 0 (CHECKLISTS): Execute §CMD_PROCESS_CHECKLISTS — process any discovered CHECKLIST.md files. Read ~/.claude/directives/commands/CMD_PROCESS_CHECKLISTS.md for the algorithm. Skips silently if no checklists were discovered. This MUST run before the debrief to satisfy ¶INV_CHECKLIST_BEFORE_CLOSE.
Step 1 (THE DELIVERABLE): Execute §CMD_GENERATE_DEBRIEF_USING_TEMPLATE (Dest: REVIEW.md).
/implement, /fix, /test, /analyze) with a self-contained prompt referencing the review report and original session.Step 2: Execute §CMD_REPORT_RESULTING_ARTIFACTS — list all created/modified files in chat.
Step 3: Execute §CMD_REPORT_SESSION_SUMMARY — output a final count: "Validated: N, Needs Rework: M, Leftovers Spawned: K."
Output this block in chat with every blank filled:
Phase 3 proof:
- REVIEW.md written:
________(real file path)- Tags line:
________- Per-debrief verdicts:
________- Leftovers:
________- Artifacts listed:
________- Session summary:
________
If ANY blank above is empty: GO BACK and complete it before proceeding.
Step 4: Execute §CMD_DEACTIVATE_AND_PROMPT_NEXT_SKILL — deactivate session with description, present skill progression menu.
Post-Synthesis: If the user continues talking (without choosing a skill), obey §CMD_CONTINUE_OR_CLOSE_SESSION.
[HINT] Download the complete skill directory including SKILL.md and all related files