mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-05 13:15:24 +02:00
fix: enrich JSONL review logs for accurate plan file report
CEO reviews now log scope_proposed/accepted/deferred counts, eng reviews log total issues_found, design reviews log initial_score for before→after tracking, and codex reviews log findings_fixed. Report generator references these fields directly instead of requiring agents to reconstruct from partial data. Also fixes footer replacement to handle mid-file sections robustly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+23
-17
@@ -367,11 +367,12 @@ CROSS-MODEL ANALYSIS:
|
||||
|
||||
7. Persist the review result:
|
||||
```bash
|
||||
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"codex-review","timestamp":"TIMESTAMP","status":"STATUS","gate":"GATE","findings":N}'
|
||||
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"codex-review","timestamp":"TIMESTAMP","status":"STATUS","gate":"GATE","findings":N,"findings_fixed":N}'
|
||||
```
|
||||
|
||||
Substitute: TIMESTAMP (ISO 8601), STATUS ("clean" if PASS, "issues_found" if FAIL),
|
||||
GATE ("pass" or "fail"), findings (count of [P1] + [P2] markers).
|
||||
GATE ("pass" or "fail"), findings (count of [P1] + [P2] markers),
|
||||
findings_fixed (count of findings that were addressed/fixed before shipping).
|
||||
|
||||
8. Clean up temp files:
|
||||
```bash
|
||||
@@ -394,17 +395,19 @@ After displaying the Review Readiness Dashboard in conversation output, also upd
|
||||
Read the review log output you already have from the Review Readiness Dashboard step above.
|
||||
Parse each JSONL entry. Each skill logs different fields:
|
||||
|
||||
- **plan-ceo-review**: \`status\`, \`unresolved\`, \`critical_gaps\`, \`mode\`, \`commit\`
|
||||
→ Findings: "{N} proposals, {M} accepted, {K} deferred" (from your Completion Summary)
|
||||
- **plan-eng-review**: \`status\`, \`unresolved\`, \`critical_gaps\`, \`mode\`, \`commit\`
|
||||
→ Findings: "{N} issues, {M} critical gaps, mode: {MODE}"
|
||||
- **plan-design-review**: \`status\`, \`overall_score\`, \`unresolved\`, \`decisions_made\`, \`commit\`
|
||||
→ Findings: "score: {N}/10 → {M}/10, {K} decisions made"
|
||||
- **codex-review**: \`status\`, \`gate\`, \`findings\`
|
||||
→ Findings: "{N} findings, {M}/{N} fixed"
|
||||
- **plan-ceo-review**: \`status\`, \`unresolved\`, \`critical_gaps\`, \`mode\`, \`scope_proposed\`, \`scope_accepted\`, \`scope_deferred\`, \`commit\`
|
||||
→ Findings: "{scope_proposed} proposals, {scope_accepted} accepted, {scope_deferred} deferred"
|
||||
→ If scope fields are 0 or missing (HOLD/REDUCTION mode): "mode: {mode}, {critical_gaps} critical gaps"
|
||||
- **plan-eng-review**: \`status\`, \`unresolved\`, \`critical_gaps\`, \`issues_found\`, \`mode\`, \`commit\`
|
||||
→ Findings: "{issues_found} issues, {critical_gaps} critical gaps"
|
||||
- **plan-design-review**: \`status\`, \`initial_score\`, \`overall_score\`, \`unresolved\`, \`decisions_made\`, \`commit\`
|
||||
→ Findings: "score: {initial_score}/10 → {overall_score}/10, {decisions_made} decisions"
|
||||
- **codex-review**: \`status\`, \`gate\`, \`findings\`, \`findings_fixed\`
|
||||
→ Findings: "{findings} findings, {findings_fixed}/{findings} fixed"
|
||||
|
||||
For the review you just completed, use details from your own Completion Summary (richer
|
||||
than the JSONL). For prior reviews, use the JSONL fields to reconstruct a summary.
|
||||
All fields needed for the Findings column are now present in the JSONL entries.
|
||||
For the review you just completed, you may use richer details from your own Completion
|
||||
Summary. For prior reviews, use the JSONL fields directly — they contain all required data.
|
||||
|
||||
Produce this markdown table:
|
||||
|
||||
@@ -433,12 +436,15 @@ Below the table, add these lines (omit any that are empty/not applicable):
|
||||
file you are allowed to edit in plan mode. The plan file review report is part of the
|
||||
plan's living status.
|
||||
|
||||
- If a \`## GSTACK REVIEW REPORT\` section already exists at the end of the plan file,
|
||||
**replace it** entirely using the Edit tool (match from \`## GSTACK REVIEW REPORT\` to
|
||||
the end of the file). If the Edit fails (e.g., concurrent edit changed the content),
|
||||
re-read the plan file and retry once with the updated content.
|
||||
- Search the plan file for a \`## GSTACK REVIEW REPORT\` section **anywhere** in the file
|
||||
(not just at the end — content may have been added after it).
|
||||
- If found, **replace it** entirely using the Edit tool. Match from \`## GSTACK REVIEW REPORT\`
|
||||
through either the next \`## \` heading or end of file, whichever comes first. This ensures
|
||||
content added after the report section is preserved, not eaten. If the Edit fails
|
||||
(e.g., concurrent edit changed the content), re-read the plan file and retry once.
|
||||
- If no such section exists, **append it** to the end of the plan file.
|
||||
- Always place it as the very last section in the plan file.
|
||||
- Always place it as the very last section in the plan file. If it was found mid-file,
|
||||
move it: delete the old location and append at the end.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+3
-2
@@ -126,11 +126,12 @@ CROSS-MODEL ANALYSIS:
|
||||
|
||||
7. Persist the review result:
|
||||
```bash
|
||||
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"codex-review","timestamp":"TIMESTAMP","status":"STATUS","gate":"GATE","findings":N}'
|
||||
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"codex-review","timestamp":"TIMESTAMP","status":"STATUS","gate":"GATE","findings":N,"findings_fixed":N}'
|
||||
```
|
||||
|
||||
Substitute: TIMESTAMP (ISO 8601), STATUS ("clean" if PASS, "issues_found" if FAIL),
|
||||
GATE ("pass" or "fail"), findings (count of [P1] + [P2] markers).
|
||||
GATE ("pass" or "fail"), findings (count of [P1] + [P2] markers),
|
||||
findings_fixed (count of findings that were addressed/fixed before shipping).
|
||||
|
||||
8. Clean up temp files:
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user