ci: port the latest Claude actions from documentation - #6
Merged
Conversation
The 2026-07-30 migration copied the composite actions from megaeth-labs/documentation, but the copy was taken from that repo's 2026-07-20 state (0de71e1) rather than its main — ten days and ~10 commits stale. claude-interactive, claude-issue-triage, and claude-label-check were unaffected (byte-identical either way); claude-pr-review was not. The visible symptom: consumers that adopted the new location pass `github_identity_token`, an input the stale copy never declared, so Actions drops it with `##[warning]Unexpected input(s) 'github_identity_token'` and the review silently falls back to the job token — no unified identity and no review-thread resolution. mega-agents run 30596025629 shows the warning. Sync claude-pr-review to documentation@main (dc68b9c). That brings the staged review pipeline the action now depends on — review_pipeline.py, review-output.schema.json, and its tests, none of which the migration carried over — plus `github_identity_token`, `incremental_model`, the sticky status comment, and the turn budgets. Also add .github/workflows/actions-test.yml. These actions ship to every repo in the org at @main, so a merge here reaches all consumers with no consumer-side review; documentation ran the pipeline unit tests on every PR and this repo had no CI at all. The one intentional divergence from upstream is test_workflow_loads_actions_from_trusted_main. It asserts that the repo's own claude.yml consumes the actions by owner/repo@main rather than the local ./.github/actions path, so a PR cannot modify the action that reviews it. This repo is the actions' home and has no consumer claude.yml, so the test skips until one exists. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The bug
The 2026-07-30 migration (#5) said the actions were copied verbatim from
megaeth-labs/documentation. They were — but from that repo's 2026-07-20state, not its
main. The copiedclaude-pr-review/action.ymlis byte-identicalto documentation
0de71e1(2026-07-20), ten days and ~10 commits behinddc68b9c(2026-07-28).The other three actions were unaffected —
claude-interactive,claude-issue-triage, andclaude-label-checkare byte-identical either way.claude-pr-reviewwas not.Live symptom. mega-agents and mega-e2e were repointed here on 2026-07-30 and
both pass
github_identity_token, an input the stale copy never declared. Actionsdrops undeclared inputs with a warning, so the review falls back to the job token:
no unified identity, and no review-thread resolution. From mega-agents run
30596025629,
today:
What this does
Syncs
claude-pr-reviewto documentationmain(dc68b9c). Beyondgithub_identity_token, the stale copy was missing the entire staged reviewpipeline the current action shells out to —
review_pipeline.py,review-output.schema.json, andtest_review_pipeline.pywere never carriedover — plus
incremental_model, the🔄 Review in progresssticky comment, andthe semantic-stage turn budgets.
The action loads everything through
$GITHUB_ACTION_PATH, so it relocatesunchanged; no consumer edits are needed. mega-agents and mega-e2e start honouring
their identity token the moment this merges.
Also adds
.github/workflows/actions-test.yml. These actions ship to every repoin the org at
@main, so a merge here reaches all consumers with no consumer-sidereview — documentation gated that with the pipeline unit tests on every PR, and
this repo had no CI at all. 77 tests, passing locally.
One intentional divergence from upstream
test_workflow_loads_actions_from_trusted_mainasserts the repo's ownclaude.ymlconsumes the actions viaowner/repo@mainrather than the local./.github/actionspath — the guard that stops a PR from modifying the actionthat reviews it. That invariant belongs to a consumer repo; this repo is the
actions' home and has no
claude.yml, so the test now skips when the file isabsent (and expects
megaeth-labs/.github/...when one is added). It's the singleskip in the run.
Notes
README.mdhere is documentation's current version, with theHomenoteand the
pr-lintsection preserved and allmegaeth-labs/documentation/...references repointed. Two upstream sentences describing documentation's own
dogfooding were rewritten for this repo.
describe a
.github/workflows/pr-lint.ymlreusable workflow, but only.github/actions/pr-lint/action.ymlexists onmain. The README's usageexample is for the composite action and is correct; the workflow appears to have
been dropped. Not touched here.
Deleting them (and repointing documentation's
claude.yml) is the naturalfollow-up once all consumers are migrated.