diff --git a/plan-devex-review/sections/review-sections.md b/plan-devex-review/sections/review-sections.md index 9c588f201..db1be2a96 100644 --- a/plan-devex-review/sections/review-sections.md +++ b/plan-devex-review/sections/review-sections.md @@ -585,7 +585,7 @@ PLAN MODE GATE's "review log was called" check depend on it. **PLAN MODE EXCEPTI ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-devex-review","timestamp":"TIMESTAMP","status":"STATUS","initial_score":N,"overall_score":N,"product_type":"PRODUCT_TYPE","tthw_current":"TTHW_CURRENT","tthw_target":"TTHW_TARGET","mode":"MODE","persona":"PERSONA","competitive_tier":"COMPETITIVE_TIER","unresolved":N,"commit":"COMMIT"}' ``` -STATUS = "clean" if score 8+ AND 0 unresolved, else "issues_open"; other fields from the DX Scorecard + Step 0; COMMIT = `git rev-parse --short HEAD`. +TIMESTAMP = current ISO 8601 datetime; STATUS = "clean" if score 8+ AND 0 unresolved, else "issues_open"; other fields from the DX Scorecard + Step 0; COMMIT = `git rev-parse --short HEAD`. ## Review Readiness Dashboard diff --git a/plan-devex-review/sections/review-sections.md.tmpl b/plan-devex-review/sections/review-sections.md.tmpl index a047d8f65..eca5dbcca 100644 --- a/plan-devex-review/sections/review-sections.md.tmpl +++ b/plan-devex-review/sections/review-sections.md.tmpl @@ -343,7 +343,7 @@ PLAN MODE GATE's "review log was called" check depend on it. **PLAN MODE EXCEPTI ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-devex-review","timestamp":"TIMESTAMP","status":"STATUS","initial_score":N,"overall_score":N,"product_type":"PRODUCT_TYPE","tthw_current":"TTHW_CURRENT","tthw_target":"TTHW_TARGET","mode":"MODE","persona":"PERSONA","competitive_tier":"COMPETITIVE_TIER","unresolved":N,"commit":"COMMIT"}' ``` -STATUS = "clean" if score 8+ AND 0 unresolved, else "issues_open"; other fields from the DX Scorecard + Step 0; COMMIT = `git rev-parse --short HEAD`. +TIMESTAMP = current ISO 8601 datetime; STATUS = "clean" if score 8+ AND 0 unresolved, else "issues_open"; other fields from the DX Scorecard + Step 0; COMMIT = `git rev-parse --short HEAD`. {{REVIEW_DASHBOARD}} diff --git a/test/skill-e2e-plan.test.ts b/test/skill-e2e-plan.test.ts index 042cfd069..27e4d74d8 100644 --- a/test/skill-e2e-plan.test.ts +++ b/test/skill-e2e-plan.test.ts @@ -746,7 +746,9 @@ This review report at the bottom of the plan is the MOST IMPORTANT deliverable o // bullet of an UNRESOLVED DECISIONS block, with nothing (CODEX/CROSS-MODEL/VERDICT/ // prose) after it. expect(afterReport).toContain('UNRESOLVED DECISIONS'); - const nonEmpty = planContent.split('\n').map(l => l.trim()).filter(l => l !== ''); + // Compute from afterReport (the report section to EOF), not the whole file, so a + // mid-file report surfaces the real trailing content in the failure message. + const nonEmpty = afterReport.split('\n').map(l => l.trim()).filter(l => l !== ''); const lastLine = nonEmpty[nonEmpty.length - 1]; const isSentinel = lastLine === 'NO UNRESOLVED DECISIONS'; const isUnresolvedBullet =