roadmap(#220-222): Anthropic 2026-04-23 post-mortem learnings - #215
Merged
Conversation
Contributor
Claude Code Review SummaryStatus: Skipped (trivial changes) This PR only contains documentation or configuration changes. Code review skipped to save API costs. To force a review, add the |
3 tasks
Contributor
E2E Quick Check (Tier 1) ✅Fast quality gate - single comparison per commit.
Result: No change in SDLC compliance (stable)
Criteria Breakdown
Historical ContextThis scenario avg: 10.0 (4 runs) Add Tier 1: 1x run each. SDP adjusts for external model conditions. |
5 tasks
Codex batch doc-review (batch-doc-prs-209-211-215-218, 2026-04-23) raised P1 on PR #215's #221(c) wording. Original claim overattributed the 3% drop to a single sentence. Post-mortem actually describes a broader length-limit prompt change with that sentence among other brevity edits; ablation measured ~3% drop on one evaluation attributed to the broader change. Fix: reword to attribute to the broader length-limit prompt change (not single sentence). Keeps the sentence as example of the class of change without overclaiming causation.
BaseInfinity
added a commit
that referenced
this pull request
Apr 23, 2026
* chore: record E2E score [skip ci] * fix(ci): #215 Tier 2 persist-scores gate uses real step output (has_baseline, not should_simulate) Regression from #193. The Tier 2 'Persist scores to PR branch' step was gated on steps.check-baseline.outputs.should_simulate, but the Tier 2 check-baseline step only emits has_baseline. The step had been silently dead — score-history.jsonl never got appended from Tier 2. Fix: - Change the if: gate to steps.check-baseline.outputs.has_baseline - Add regression test that parses ci.yml and asserts every steps.<id>.outputs.<name> reference resolves to a real emitted output (same-job scope). Catches heredoc outputs (NAME<<EOF) as well as NAME=value. Regex tightened after initial false-positives. --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
# Conflicts: # ROADMAP.md # tests/e2e/score-history.jsonl
Contributor
PR Review in Progress
|
Three backlog items drawn from the post-mortem (anthropic.com/engineering/april-23-postmortem): #220: token-spike anomaly detection — our effectiveness scoreboard doesn't track token burn; post-mortem's caching bug was only visible as usage drain. #221: fold the 3 concrete lessons into wizard docs — explicit effort (validates our stance), extended-thinking + caching + idle sessions gotcha, and the 25-word-constraint intelligence drop. Includes a grep audit of our skills/hooks for verbosity caps. #222: prompt-compounding audit harness — generalize the verbosity-cap lesson to an A/B that blanks each prompt and measures impact.
6 tasks
BaseInfinity
added a commit
that referenced
this pull request
Apr 30, 2026
Implements EXECUTION PLAN from Codex strategic-priority review (.reviews/grouping-review.md). Single zero-API hygiene release. Fixed (#211 historical): - Backfilled 5 corrupted rows in tests/e2e/score-history.jsonl (lines 22-25 + 30) from max_score:10 to max_score:11. UI scenarios with design_system criterion get an 11th point; the live writer was already correct (PR #214, v1.36.0) but the historical data remained corrupted. Codex-verified all 5 rows have criteria.design_system == true and remain valid JSON. Closed paperwork-stale (already shipped, table rows just stale): - #207 community scanner (shipped v1.39.0 + v1.56.0) - #215 Tier 2 dead persist step (fixed v1.36.0; jobs later deleted) - #217 model-effort-check loud warning (shipped 2026-04-24) - #78 firmware E2E fixture - #79 domain-adaptive testing diamond - #80 SDLC effectiveness scoreboard Verified (#219 doc-only): - CC 2.1.118 local / 2.1.123 npm latest. Both settings.json files have no model key (jq verified). #198 recommendation unchanged. - Optional manual UX check noted in roadmap row. Codex round 1 CERTIFIED 9/10. Non-blocking P2 (stale response.json from prior review) cleaned up. No code changes outside the score-history backfill — pure roadmap hygiene. Reduces backlog noise so future "what's next" reads honestly.
BaseInfinity
added a commit
that referenced
this pull request
May 5, 2026
Implements EXECUTION PLAN from Codex strategic-priority review (.reviews/grouping-review.md). Single zero-API hygiene release. Fixed (#211 historical): - Backfilled 5 corrupted rows in tests/e2e/score-history.jsonl (lines 22-25 + 30) from max_score:10 to max_score:11. UI scenarios with design_system criterion get an 11th point; the live writer was already correct (PR #214, v1.36.0) but the historical data remained corrupted. Codex-verified all 5 rows have criteria.design_system == true and remain valid JSON. Closed paperwork-stale (already shipped, table rows just stale): - #207 community scanner (shipped v1.39.0 + v1.56.0) - #215 Tier 2 dead persist step (fixed v1.36.0; jobs later deleted) - #217 model-effort-check loud warning (shipped 2026-04-24) - #78 firmware E2E fixture - #79 domain-adaptive testing diamond - #80 SDLC effectiveness scoreboard Verified (#219 doc-only): - CC 2.1.118 local / 2.1.123 npm latest. Both settings.json files have no model key (jq verified). #198 recommendation unchanged. - Optional manual UX check noted in roadmap row. Codex round 1 CERTIFIED 9/10. Non-blocking P2 (stale response.json from prior review) cleaned up. No code changes outside the score-history backfill — pure roadmap hygiene. Reduces backlog noise so future "what's next" reads honestly.
BaseInfinity
added a commit
that referenced
this pull request
May 5, 2026
#206) * feat(hooks): self-healing PreCompact on merged-PR stale handoff (#209) Bug hit live 2026-04-19 after PR #205 merged — `.reviews/handoff.json` stayed at PENDING_RECHECK, every subsequent /compact got blocked by the user's own stale review artifact. Ships to consumers via CLI + plugin, so every adopter of the handoff protocol who forgets to flip status after merge will hit the same wall. Fix: when status is PENDING_REVIEW/PENDING_RECHECK, parse optional pr_number from handoff. If present AND gh is available, query `gh pr view <pr_number> --json state` — MERGED unblocks (implicit CERTIFIED). Missing pr_number, missing gh, offline, or any error falls through to existing block (safe default). 4 new tests with mocked gh binary: merged unblocks, open blocks, no pr_number blocks, gh-errors blocks. Hook suite 106 → 110. Codex xhigh design review ran before implementation (verdict: RECOMMENDED_ALTERNATIVE: 2, priority 9/10). Branch-awareness alternative rejected — false-unblocks trunk-based workflows. * chore: record E2E score [skip ci] * test(hooks): add zero-stderr + gh-missing assertions (PR #206 Codex R1) * chore: record E2E score [skip ci] * docs(sdlc,ci): require Codex xhigh audit on CI logs in shepherd loop * chore: record E2E score [skip ci] * docs(roadmap): file #210 Node24 false-green + #211 tier1 11/10 (Codex CI-log audit on #206) * chore: record E2E score [skip ci] * docs(roadmap): add #212 local-Max E2E shepherd (zero-API alt) * docs(sdlc): run Codex audit on Tier 1 AND Tier 2 CI logs separately * docs(roadmap): #213 CLI template env-block gap — adaptive thinking + autocompact vars documented but not shipped * docs(roadmap): #214 Prove-It A/B for adaptive thinking; gate #213 on result * docs(roadmap): #215 Tier 2 persist step is dead code (Codex Tier 2 audit on #206) --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
BaseInfinity
added a commit
that referenced
this pull request
May 5, 2026
* chore: record E2E score [skip ci] * fix(ci): #215 Tier 2 persist-scores gate uses real step output (has_baseline, not should_simulate) Regression from #193. The Tier 2 'Persist scores to PR branch' step was gated on steps.check-baseline.outputs.should_simulate, but the Tier 2 check-baseline step only emits has_baseline. The step had been silently dead — score-history.jsonl never got appended from Tier 2. Fix: - Change the if: gate to steps.check-baseline.outputs.has_baseline - Add regression test that parses ci.yml and asserts every steps.<id>.outputs.<name> reference resolves to a real emitted output (same-job scope). Catches heredoc outputs (NAME<<EOF) as well as NAME=value. Regex tightened after initial false-positives. --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
BaseInfinity
added a commit
that referenced
this pull request
May 5, 2026
* roadmap(#221): reword 3% intelligence drop attribution (Codex P1) Codex batch doc-review (batch-doc-prs-209-211-215-218, 2026-04-23) raised P1 on PR #215's #221(c) wording. Original claim overattributed the 3% drop to a single sentence. Post-mortem actually describes a broader length-limit prompt change with that sentence among other brevity edits; ablation measured ~3% drop on one evaluation attributed to the broader change. Fix: reword to attribute to the broader length-limit prompt change (not single sentence). Keeps the sentence as example of the class of change without overclaiming causation. * chore: record E2E score [skip ci] * roadmap(#220, #221, #222): Anthropic 2026-04-23 post-mortem learnings Three backlog items drawn from the post-mortem (anthropic.com/engineering/april-23-postmortem): #220: token-spike anomaly detection — our effectiveness scoreboard doesn't track token burn; post-mortem's caching bug was only visible as usage drain. #221: fold the 3 concrete lessons into wizard docs — explicit effort (validates our stance), extended-thinking + caching + idle sessions gotcha, and the 25-word-constraint intelligence drop. Includes a grep audit of our skills/hooks for verbosity caps. #222: prompt-compounding audit harness — generalize the verbosity-cap lesson to an A/B that blanks each prompt and measures impact. * chore: record E2E score [skip ci] --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
BaseInfinity
added a commit
that referenced
this pull request
May 5, 2026
BaseInfinity
added a commit
that referenced
this pull request
May 5, 2026
Implements EXECUTION PLAN from Codex strategic-priority review (.reviews/grouping-review.md). Single zero-API hygiene release. Fixed (#211 historical): - Backfilled 5 corrupted rows in tests/e2e/score-history.jsonl (lines 22-25 + 30) from max_score:10 to max_score:11. UI scenarios with design_system criterion get an 11th point; the live writer was already correct (PR #214, v1.36.0) but the historical data remained corrupted. Codex-verified all 5 rows have criteria.design_system == true and remain valid JSON. Closed paperwork-stale (already shipped, table rows just stale): - #207 community scanner (shipped v1.39.0 + v1.56.0) - #215 Tier 2 dead persist step (fixed v1.36.0; jobs later deleted) - #217 model-effort-check loud warning (shipped 2026-04-24) - #78 firmware E2E fixture - #79 domain-adaptive testing diamond - #80 SDLC effectiveness scoreboard Verified (#219 doc-only): - CC 2.1.118 local / 2.1.123 npm latest. Both settings.json files have no model key (jq verified). #198 recommendation unchanged. - Optional manual UX check noted in roadmap row. Codex round 1 CERTIFIED 9/10. Non-blocking P2 (stale response.json from prior review) cleaned up. No code changes outside the score-history backfill — pure roadmap hygiene. Reduces backlog noise so future "what's next" reads honestly.
BaseInfinity
added a commit
that referenced
this pull request
May 7, 2026
…335) Rows #78, #79, #80, #215, #217 each say in their own cell text: Stale duplicate of <canonical row>; <work> shipped. v1.62.0 paperwork close. The canonical entries live earlier in the file. Keeping the duplicates just inflates the unprioritized table without adding info — every field reduces to "see <other row>." Removing them shrinks the unprioritized table by 5 rows and removes the "wait, is this still open?" friction when scanning. doc-consistency tests 35/35 still green (no test asserts row count).
BaseInfinity
added a commit
that referenced
this pull request
May 11, 2026
Rows #78, #79, #80, #215, #217 each say in their own cell text: Stale duplicate of <canonical row>; <work> shipped. v1.62.0 paperwork close. The canonical entries live earlier in the file. Keeping the duplicates just inflates the unprioritized table without adding info — every field reduces to "see <other row>." Removing them shrinks the unprioritized table by 5 rows and removes the "wait, is this still open?" friction when scanning. doc-consistency tests 35/35 still green (no test asserts row count).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Three backlog items from the Anthropic 2026-04-23 post-mortem (anthropic.com/engineering/april-23-postmortem).
model-effort-check.shstance), (b) extended-thinking + caching + idle-session failure mode (document as gotcha), (c) verbosity caps can cost intelligence (a single 25-word constraint caused a 3% drop in their incident). Includes a grep audit of our SKILL.md and hook stdout for verbosity constraints.Why PR
Branch protection blocks direct push to main.
Test plan