chore(ci): boil-the-ocean (Node 24 bump + claude drop + J5 runner) - #274
Merged
Conversation
Three-section plan.md (task / expected outputs / judge.md harness pointer), research.md context dump (actions tag landscape + claude-action root cause + J5 driver-agent limits), judge.md md playbook with V1/V2/V3 RUN/DUMP/READ covering: GH Actions bump CI green, claude workflows real-deletion, J5 runner playbook well-formedness. Per project hard rule: judge harness is md playbook, not scripts/*.sh. Verifies post-PR-#270 follow-up bundle (Node 24 deadline 2026-09-16, claude workflow noise, J5 nice-to-have helper).
GitHub default runner switches to Node 24 on 2026-06-02; v4 actions removed from Node 20 mode on 2026-09-16. Ahead of that deadline: - actions/checkout @v4 -> @v5 (9 workflows, 13 occurrences) - actions/setup-node @v4 -> @v5 (9 workflows) - pnpm/action-setup @v4 -> @v5 (7 workflows) - actions/upload-artifact @v4 -> @v5 (install-verify only) - actions/upload-pages-artifact @V3 -> @v5 (landing-deploy only) - actions/deploy-pages @v4 -> @v5 (landing-deploy only) - actions/github-script @v7 -> @v8 (install-canned-answer-check + v5-fixture-replay) Bump target rationale (research.md §1.2): @v5 is the minimum Node 24 compatible major; @v6/@v7/@v9 each carry collateral changes (cache key algorithm, fetch-tags defaults, ESM-only require breakage in github-script v9). One bump, one verifiable goal. CI verifies on wip/** push. No semantic changes to triggers, env, concurrency, or step ordering.
Both workflows fail on every PR with anthropics/claude-code-action@v1
"Internal error: directory mismatch for directory ... tsconfig.json, fd 4"
plus secrets.ANTHROPIC_API_KEY null (repo only has MINIMAX_API_KEY +
CLAUDE_CODE_OAUTH_TOKEN). Each PR shows red X in statusCheckRollup, pure
visual noise.
ADR-0007 makes local /review skill the authoritative POSTPR gate; cloud
claude-code-action review is supplementary and currently broken. Three
remediation paths considered (research.md §2.4):
A. delete — 5 min, no functional loss (ADR-0007 covers)
B. continue-on-error — 10 min, fake green hides the bug
C. fix root cause — 1 hr + real Anthropic billing (MiniMax not supported
by claude-code-action)
User recommended A. This commit takes A.
If/when cloud Claude review is wanted again, restore both files and
configure a real ANTHROPIC_API_KEY (not a MiniMax token).
J5 in 2026-05-10-inner-loop-on-ci shipped lite form (single sample at N=5, loadavg_1m=8.54 vs baseline 274, 32x headroom). Spec asked for a 4-point curve (N=1/2/3/4); driver agent cannot spawn user GUI Claude Code windows, so full curve was deferred as nice-to-have follow-up. This commit adds runner.md — a markdown playbook (NOT a .sh) walking the operator through 4 N-archs, each ~5 min, total ~20-30 min: - N=1 single CC + 1 wip push, toohot --once - N=2 two CC sessions push concurrently, toohot --once - N=3 three CC sessions, toohot --once - N=4 four CC sessions (matches spec baseline N), toohot --once - merge into post_change_samples array in loadavg-curve.json loadavg-curve.json.follow_up_for_full_curve now points to runner.md. Existing lite single-point sample is preserved (samples[0]); the runner adds post_change_samples without overwriting baseline or lite evidence. PASS verdict in _overall/verdict.md is unchanged; this commit ships the upgrade path, not the upgraded data.
…atement) Initial V3 spec used `grep -cE '\.sh\b|bash -c' runner.md`, which counted every '.sh' string including anti-statements like "md playbook (NOT a .sh script)" in §0 prose — those are PROOF the rule is followed, not violations. Refined V3.RUN now distinguishes: - total_sh_mention_count (forensic context, all .sh references) - procedural_step_sh_mention_count (only §2-§5 step bodies; pass criterion) awk slice '/^## [2-5] /,/^## [^2-5]/' isolates procedure sections; grep inside that slice catches violations only. Anti-statements in §0/§1 stay in the total count but don't gate pass/fail. Also fixed §V3.RUN grep pattern '^## [0-9]+ N=[1-4]\\b' to match the actual runner.md heading format '## <num> N=<n>' (was '## N=<n>', missed all 4).
Third-party judge harness §V1/§V2/§V3 RUN+DUMP evidence (READ stage runs as separate claudefast -p probes per md playbook rule): V1 (Node 24 bump CI green): - ci_run.conclusion=success, status=completed (run #25628617294, 87s) - static_check.remaining_v4_or_v3_pins = [] (zero @v4/@V3 in active workflows) V2 (claude workflows real-deletion): - claude_yml_exists=false, claude_code_review_yml_exists=false - find_returned_paths=[] (both files gone from .github/) - post_pr_*_runs_count=0 (workflow deletion in same PR; no future trigger) V3 (J5 runner.md well-formedness): - runner_md_exists=true, sections N=1..4 = 4 - toohot mentions = 9, procedural_step_sh_mentions = 0 - both '.sh' occurrences classified as anti-statement (§0/§1 rule citations) - loadavg_curve.json.follow_up_for_full_curve links runner.md All three probes satisfy their pass criteria. /review will dispatch claudefast READ probes to verify independently.
Report status: PR-OPEN. inner-loop.yml CI green (run #25628617294, 87s). 4 atomic commits land plan/research/judge + 9-workflow @v4→@v5 bump + 2 claude-workflow deletes + J5 runner playbook. Risks documented (4 rows): @v5 in PR ci.yml path differing from inner-loop, github-script @v8 polyfills, upload-pages-artifact @V3→@v5 cross-2-major, and @claude comment expectation post-deletion (mitigated by ADR-0007). §post-merge section to be appended after squash-merge with merge SHA, /review verdict, P1/P2 handling, ci.yml + landing-deploy.yml main-push runs, and worktree cleanup outcome.
… claude-* workflows
Adversarial reviewer (Step 5.7) found 6 docs describing the deleted
claude.yml + claude-code-review.yml workflows as if they were still live.
Mechanical fix-up before merge:
- docs/POSTPR.md §Caveats: 2 bullets that called the cloud
claude-code-review.yml the "supplementary signal" rewritten to past
tense; "Re-trigger /review" bullet no longer references a cloud
auto-fire counterpart that no longer exists
- docs/PR-PLAN.md §What it is: review-source list pruned to (CI / local
/review / human / self-audit); the cloud-action mention now reads
as a removal note pointing at PR #274
- docs/HOWTO-PLAN-PR.md §After PR opens: "After PR #190, every PR also
gets an automated cloud review..." paragraph rewritten to past tense
and points at the PR #274 deletion + root cause
- docs/README.md: removed the table row pointing at the now-historical
features/claude-code-action.md page from the navigation
- docs/features/INDEX.md: row marked HISTORICAL — feature removed
- docs/features/claude-code-action.md: deprecation banner at the top
+ §"How the auto-review fires" / §dual-signal-table converted to
past tense; body kept as historical narrative for anyone arriving
via stale links
Plus J5 runner.md §2.3 wording fix from /review:
- 10s wait clarified as "let local git push exit", NOT
"synchronize with CI runner CPU peak" (CI runs remote; local
loadavg has no causal link to CI runner CPU)
False-positive findings dismissed (verified, not real):
- "actions/upload-pages-artifact@v5 doesn't exist" — gh api confirms
v5.0.0 is the latest tag; release notes show the v3→v5 jump
internally bumps to upload-artifact v7
- "pnpm/action-setup@v5 needs explicit `version:` input" — packageManager
inference from package.json (pnpm@9.15.9) is preserved in v5; CI
on this PR (ubuntu + windows) already proves it works without
`version:` set
…eport.md §review-loop section captures the 10 findings from 2 subagents (adversarial + distribution-specialist), classified as: - 1 TRUE-CRITICAL (dangling docs) — fixed in commit a3cb647 - 1 TRUE-INFO (J5 runner wording) — fixed in same commit - 2 FALSE-CRITICAL (v5 doesn't exist / pnpm needs version) — verified against gh api + green CI; agent wrong - 6 post-merge INFO (untested workflows + orphaned secret + SHA pin hardening) — accepted as bounded risk §post-merge stub adds the orphaned CLAUDE_CODE_OAUTH_TOKEN cleanup task (GitHub repo admin must delete it from Secrets after merge).
This was referenced May 10, 2026
Owner
Author
中文 proof-of-work 图片
|
5 tasks
LiuShiyuMath
added a commit
that referenced
this pull request
May 12, 2026
PR #274 (Node 24 bump) flipped actions/setup-node v4→v5 and pnpm/action-setup v4→v5 but kept the old v4 ordering. setup-node v5 defaults to package-manager-cache: true, which probes for pnpm before pnpm/action-setup gets to install it — breaking the build with: ##[error]Unable to locate executable file: pnpm. The pnpm-recommended order is install-pnpm-first, then setup-node with cache: pnpm. This restores the same "build green" state as the last successful run (25589007614 / 2026-05-09). Verified locally: workflow YAML diff is a 3-line swap; pnpm action 4→5 ordering matches the canonical pattern documented at https://pnpm.io/continuous-integration#github-actions. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Owner
Author
CEO 鸭鸭中文 proof-of-work 人审图鸭鸭说:这个 PR 已经合进 |
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
Bundles all 3 PR-able post-PR-#270 follow-ups into one cleanup PR:
@v4 → @v5foractions/checkout,actions/setup-node,pnpm/action-setup,actions/upload-artifact,actions/deploy-pages;@v3 → @v5foractions/upload-pages-artifact;@v7 → @v8foractions/github-script. v5 is the minimum Node 24-compatible major; not bumping to absolute latest avoids cross-2-major collateral damage..github/workflows/claude.yml+.github/workflows/claude-code-review.ymldeleted. Both fail every PR withanthropics/claude-code-action@v1directory mismatch ... tsconfig.json fd 4+secrets.ANTHROPIC_API_KEYnull. ADR-0007 makes local/reviewskill the authoritative POSTPR gate; cloud review is supplementary and currently broken. User recommended option A (delete) over continue-on-error or fixing root cause (which needs real Anthropic billing —claude-code-actiondoesn't accept the MiniMax base URL we use elsewhere).docs/plans/2026-05-10-inner-loop-on-ci/judge/J5/runner.mdis a markdown playbook (NOT a.shper project's judge-harness rule) walking the operator through 4 manual N-archs (~20-30 min total) for the full loadavg curve. Driver agent cannot spawn user-side Claude Code GUI windows; existing N=5 lite single-point sample (loadavg_1m=8.54at 32× headroom under threshold) is preserved assamples[0].loadavg-curve.json.follow_up_for_full_curvenow points to the runner.Out of scope (intentional)
@v6/@v7/@v9carry cache key / fetch-tags / ESM-only-require breakage. v5 satisfies the Node 24 deadline cleanly.uses:version pins changed.Test plan
plan.md/research.md/judge.mdcommitted underdocs/plans/2026-05-10-boil-the-ocean-cleanup/with three-section task / expected-outputs / judge-harness rulejudge.mdis md playbook (forbidden fixed scripts; uses §V1/§V2/§V3 RUN/DUMP/READ structure)judge/V1/result.jsonfrom inner-loop CI run #25628617294 (87s, conclusion=success, all@v5action steps green)judge/V2/result.jsonconfirming both claude workflow files physically deleted (find returns [])judge/V3/result.jsonconfirming runner.md has 4 sections N=1..4, 9 toohot mentions, 0 procedural-step.shreferences (2 anti-statement.shmentions in §0/§1 prove rule compliance not violation)git push origin HEAD:wip/boil-the-ocean-cleanuptriggered inner-loop.yml on the bumped actions; all 3 v5 action steps +pnpm install --frozen-lockfile+pnpm test+pnpm verifygreen/reviewloop runs and PASSes per ADR-0007 authoritative gategh pr merge --squash --delete-branch(no--merge/--rebase)report.md§post-mergesection appended after merge with merge SHA + /review verdictEvidence
docs/plans/2026-05-10-boil-the-ocean-cleanup/plan.mddocs/plans/2026-05-10-boil-the-ocean-cleanup/research.mddocs/plans/2026-05-10-boil-the-ocean-cleanup/judge.mddocs/plans/2026-05-10-boil-the-ocean-cleanup/report.md🤖 Generated with Claude Code