ci: consume Ladon PR reviewer from adcontextprotocol/actions#2384
Conversation
There was a problem hiding this comment.
AAO-SECRETARIAT is not auto-reviewing this PR because it modifies the review system itself (.github/workflows/ai-review.yml, .secretariat/ai-review/README.md, .secretariat/ai-review/arbiter/.gitignore, .secretariat/ai-review/arbiter/action.yml, .secretariat/ai-review/arbiter/dist/33.index.js, .secretariat/ai-review/arbiter/dist/index.js, .secretariat/ai-review/arbiter/dist/package.json, .secretariat/ai-review/arbiter/package-lock.json, .secretariat/ai-review/arbiter/package.json, .secretariat/ai-review/arbiter/scripts/generate-rules.mjs, .secretariat/ai-review/arbiter/src/_rules.generated.ts, .secretariat/ai-review/arbiter/src/anthropic.test.ts, .secretariat/ai-review/arbiter/src/anthropic.ts, .secretariat/ai-review/arbiter/src/decision.test.ts, .secretariat/ai-review/arbiter/src/decision.ts, .secretariat/ai-review/arbiter/src/diff-stats.test.ts, .secretariat/ai-review/arbiter/src/diff-stats.ts, .secretariat/ai-review/arbiter/src/enforce.test.ts, .secretariat/ai-review/arbiter/src/enforce.ts, .secretariat/ai-review/arbiter/src/findings.test.ts, .secretariat/ai-review/arbiter/src/findings.ts, .secretariat/ai-review/arbiter/src/index.ts, .secretariat/ai-review/arbiter/src/post.test.ts, .secretariat/ai-review/arbiter/src/post.ts, .secretariat/ai-review/arbiter/src/prior-decision.ts, .secretariat/ai-review/arbiter/src/render.test.ts, .secretariat/ai-review/arbiter/src/render.ts, .secretariat/ai-review/arbiter/src/teams.test.ts, .secretariat/ai-review/arbiter/src/teams.ts, .secretariat/ai-review/arbiter/tsconfig.json, .secretariat/ai-review/review/.gitkeep, .secretariat/ai-review/review/action.yml, .secretariat/ai-review/reviewer/action.yml, .secretariat/ai-review/reviewer/findings-schema.json, .secretariat/ai-review/reviewer/rules/.gitkeep, .secretariat/ai-review/reviewer/rules/arbiter-decision.md, .secretariat/ai-review/reviewer/rules/coverage.md, .secretariat/ai-review/reviewer/rules/governance-gates.md, .secretariat/ai-review/reviewer/rules/inline-comments.md, .secretariat/ai-review/reviewer/rules/severity.md, .secretariat/ai-review/reviewer/rules/voice.md, .secretariat/ai-review/scripts/check-dist.sh, .secretariat/ai-review/scripts/precommit.sh, .secretariat/ai-review/setup/.gitignore, .secretariat/ai-review/setup/action.yml, .secretariat/ai-review/setup/dist/index.js, .secretariat/ai-review/setup/dist/package.json, .secretariat/ai-review/setup/package-lock.json, .secretariat/ai-review/setup/package.json, .secretariat/ai-review/setup/src/aao-secretariat-md.test.ts, .secretariat/ai-review/setup/src/aao-secretariat-md.ts, .secretariat/ai-review/setup/src/diff.test.ts, .secretariat/ai-review/setup/src/diff.ts, .secretariat/ai-review/setup/src/event.test.ts, .secretariat/ai-review/setup/src/event.ts, .secretariat/ai-review/setup/src/gated-paths.test.ts, .secretariat/ai-review/setup/src/gated-paths.ts, .secretariat/ai-review/setup/src/high-risk.test.ts, .secretariat/ai-review/setup/src/high-risk.ts, .secretariat/ai-review/setup/src/index.ts, .secretariat/ai-review/setup/src/markers.test.ts, .secretariat/ai-review/setup/src/markers.ts, .secretariat/ai-review/setup/src/resolve-config.test.ts, .secretariat/ai-review/setup/src/resolve-config.ts, .secretariat/ai-review/setup/src/short-circuit.test.ts, .secretariat/ai-review/setup/src/short-circuit.ts, .secretariat/ai-review/setup/tsconfig.json). A human reviewer should review and merge this PR; AAO-SECRETARIAT resumes on subsequent PRs once these changes land on main.
There was a problem hiding this comment.
AAO-SECRETARIAT is not auto-reviewing this PR because it modifies the review system itself (.github/workflows/ai-review.yml, .secretariat/ai-review/README.md, .secretariat/ai-review/arbiter/.gitignore, .secretariat/ai-review/arbiter/action.yml, .secretariat/ai-review/arbiter/dist/33.index.js, .secretariat/ai-review/arbiter/dist/index.js, .secretariat/ai-review/arbiter/dist/package.json, .secretariat/ai-review/arbiter/package-lock.json, .secretariat/ai-review/arbiter/package.json, .secretariat/ai-review/arbiter/scripts/generate-rules.mjs, .secretariat/ai-review/arbiter/src/_rules.generated.ts, .secretariat/ai-review/arbiter/src/anthropic.test.ts, .secretariat/ai-review/arbiter/src/anthropic.ts, .secretariat/ai-review/arbiter/src/decision.test.ts, .secretariat/ai-review/arbiter/src/decision.ts, .secretariat/ai-review/arbiter/src/diff-stats.test.ts, .secretariat/ai-review/arbiter/src/diff-stats.ts, .secretariat/ai-review/arbiter/src/enforce.test.ts, .secretariat/ai-review/arbiter/src/enforce.ts, .secretariat/ai-review/arbiter/src/findings.test.ts, .secretariat/ai-review/arbiter/src/findings.ts, .secretariat/ai-review/arbiter/src/index.ts, .secretariat/ai-review/arbiter/src/post.test.ts, .secretariat/ai-review/arbiter/src/post.ts, .secretariat/ai-review/arbiter/src/prior-decision.ts, .secretariat/ai-review/arbiter/src/render.test.ts, .secretariat/ai-review/arbiter/src/render.ts, .secretariat/ai-review/arbiter/src/teams.test.ts, .secretariat/ai-review/arbiter/src/teams.ts, .secretariat/ai-review/arbiter/tsconfig.json, .secretariat/ai-review/review/.gitkeep, .secretariat/ai-review/review/action.yml, .secretariat/ai-review/reviewer/action.yml, .secretariat/ai-review/reviewer/findings-schema.json, .secretariat/ai-review/reviewer/rules/.gitkeep, .secretariat/ai-review/reviewer/rules/arbiter-decision.md, .secretariat/ai-review/reviewer/rules/coverage.md, .secretariat/ai-review/reviewer/rules/governance-gates.md, .secretariat/ai-review/reviewer/rules/inline-comments.md, .secretariat/ai-review/reviewer/rules/severity.md, .secretariat/ai-review/reviewer/rules/voice.md, .secretariat/ai-review/scripts/check-dist.sh, .secretariat/ai-review/scripts/precommit.sh, .secretariat/ai-review/setup/.gitignore, .secretariat/ai-review/setup/action.yml, .secretariat/ai-review/setup/dist/index.js, .secretariat/ai-review/setup/dist/package.json, .secretariat/ai-review/setup/package-lock.json, .secretariat/ai-review/setup/package.json, .secretariat/ai-review/setup/src/aao-secretariat-md.test.ts, .secretariat/ai-review/setup/src/aao-secretariat-md.ts, .secretariat/ai-review/setup/src/diff.test.ts, .secretariat/ai-review/setup/src/diff.ts, .secretariat/ai-review/setup/src/event.test.ts, .secretariat/ai-review/setup/src/event.ts, .secretariat/ai-review/setup/src/gated-paths.test.ts, .secretariat/ai-review/setup/src/gated-paths.ts, .secretariat/ai-review/setup/src/high-risk.test.ts, .secretariat/ai-review/setup/src/high-risk.ts, .secretariat/ai-review/setup/src/index.ts, .secretariat/ai-review/setup/src/markers.test.ts, .secretariat/ai-review/setup/src/markers.ts, .secretariat/ai-review/setup/src/resolve-config.test.ts, .secretariat/ai-review/setup/src/resolve-config.ts, .secretariat/ai-review/setup/src/short-circuit.test.ts, .secretariat/ai-review/setup/src/short-circuit.ts, .secretariat/ai-review/setup/tsconfig.json). A human reviewer should review and merge this PR; AAO-SECRETARIAT resumes on subsequent PRs once these changes land on main.
Replace the vendored review engine (.secretariat/ai-review/) with the shared Ladon action tree, consumed by floating major tag adcontextprotocol/actions/ladon/review@ladon/review/v1. Mirrors how scope3data/actions/argus-v2 is pulled into scope3data/agentic-api. - Delete the forked setup/reviewer/arbiter/review tree and its dist-sync check - Rename AAO-SECRETARIAT.md -> LADON.md (content unchanged; read by the shared setup action) - Repoint .github/workflows/ai-review.yml at the tagged remote action, keeping the public-repo posture (pull_request_target, base-SHA checkout, workflow-mod gate) and narrowing the gate/paths-ignore to LADON.md + the workflow file - Revert scripts/install-hooks.js to its pre-fork state (the dist-rebuild hook is obsolete) and drop the .secretariat entries from .prettierignore and the CodeQL config Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16ed76d to
29930cb
Compare
There was a problem hiding this comment.
AAO-SECRETARIAT is not auto-reviewing this PR because it modifies the review system itself (.github/workflows/ai-review.yml, .secretariat/ai-review/README.md, .secretariat/ai-review/arbiter/.gitignore, .secretariat/ai-review/arbiter/action.yml, .secretariat/ai-review/arbiter/dist/33.index.js, .secretariat/ai-review/arbiter/dist/index.js, .secretariat/ai-review/arbiter/dist/package.json, .secretariat/ai-review/arbiter/package-lock.json, .secretariat/ai-review/arbiter/package.json, .secretariat/ai-review/arbiter/scripts/generate-rules.mjs, .secretariat/ai-review/arbiter/src/_rules.generated.ts, .secretariat/ai-review/arbiter/src/anthropic.test.ts, .secretariat/ai-review/arbiter/src/anthropic.ts, .secretariat/ai-review/arbiter/src/decision.test.ts, .secretariat/ai-review/arbiter/src/decision.ts, .secretariat/ai-review/arbiter/src/diff-stats.test.ts, .secretariat/ai-review/arbiter/src/diff-stats.ts, .secretariat/ai-review/arbiter/src/enforce.test.ts, .secretariat/ai-review/arbiter/src/enforce.ts, .secretariat/ai-review/arbiter/src/findings.test.ts, .secretariat/ai-review/arbiter/src/findings.ts, .secretariat/ai-review/arbiter/src/index.ts, .secretariat/ai-review/arbiter/src/post.test.ts, .secretariat/ai-review/arbiter/src/post.ts, .secretariat/ai-review/arbiter/src/prior-decision.ts, .secretariat/ai-review/arbiter/src/render.test.ts, .secretariat/ai-review/arbiter/src/render.ts, .secretariat/ai-review/arbiter/src/teams.test.ts, .secretariat/ai-review/arbiter/src/teams.ts, .secretariat/ai-review/arbiter/tsconfig.json, .secretariat/ai-review/review/.gitkeep, .secretariat/ai-review/review/action.yml, .secretariat/ai-review/reviewer/action.yml, .secretariat/ai-review/reviewer/findings-schema.json, .secretariat/ai-review/reviewer/rules/.gitkeep, .secretariat/ai-review/reviewer/rules/arbiter-decision.md, .secretariat/ai-review/reviewer/rules/coverage.md, .secretariat/ai-review/reviewer/rules/governance-gates.md, .secretariat/ai-review/reviewer/rules/inline-comments.md, .secretariat/ai-review/reviewer/rules/severity.md, .secretariat/ai-review/reviewer/rules/voice.md, .secretariat/ai-review/scripts/check-dist.sh, .secretariat/ai-review/scripts/precommit.sh, .secretariat/ai-review/setup/.gitignore, .secretariat/ai-review/setup/action.yml, .secretariat/ai-review/setup/dist/index.js, .secretariat/ai-review/setup/dist/package.json, .secretariat/ai-review/setup/package-lock.json, .secretariat/ai-review/setup/package.json, .secretariat/ai-review/setup/src/aao-secretariat-md.test.ts, .secretariat/ai-review/setup/src/aao-secretariat-md.ts, .secretariat/ai-review/setup/src/diff.test.ts, .secretariat/ai-review/setup/src/diff.ts, .secretariat/ai-review/setup/src/event.test.ts, .secretariat/ai-review/setup/src/event.ts, .secretariat/ai-review/setup/src/gated-paths.test.ts, .secretariat/ai-review/setup/src/gated-paths.ts, .secretariat/ai-review/setup/src/high-risk.test.ts, .secretariat/ai-review/setup/src/high-risk.ts, .secretariat/ai-review/setup/src/index.ts, .secretariat/ai-review/setup/src/markers.test.ts, .secretariat/ai-review/setup/src/markers.ts, .secretariat/ai-review/setup/src/resolve-config.test.ts, .secretariat/ai-review/setup/src/resolve-config.ts, .secretariat/ai-review/setup/src/short-circuit.test.ts, .secretariat/ai-review/setup/src/short-circuit.ts, .secretariat/ai-review/setup/tsconfig.json). A human reviewer should review and merge this PR; AAO-SECRETARIAT resumes on subsequent PRs once these changes land on main.
Why
The PR reviewer forked into this repo in #2354 (as
AAO-SECRETARIAT) has since been lifted intoadcontextprotocol/actionsand renamed Ladon (actions PR #2, now tagged). Carrying a vendored copy of the engine here means every fix has to be re-forked. This repo should consume it remotely, the same wayscope3data/agentic-apipulls inscope3data/actions/argus-v2.What Changed
.secretariat/ai-review/**(setup → reviewer → arbiter → review, dist, tests, rules) and itssecretariat-dist-check.yml(dist is now built/validated in the actions repo).AAO-SECRETARIAT.md→LADON.md— content unchanged; the sharedsetupaction readsLADON.mdfrom the repo root and its H2 sections (Repo Context,High-Risk Paths,Escalation Reviewers,Trivial Paths) match the parser, so this repo's rules carry over intact..github/workflows/ai-review.ymlat the tagged remote action:uses: adcontextprotocol/actions/ladon/review@ladon/review/v1(floating major tag, tracks fixes). Kept the public-repo security posture —pull_request_target, base-SHA-only checkout (head never fetched/executed), the workflow-modification gate,model: claude-opus-4-8, and the existingSECRETARIAT_APP_ID/SECRETARIAT_APP_PRIVATE_KEY/ANTHROPIC_API_KEYsecrets. Narrowedpaths-ignore+ the gate toLADON.md+ the workflow file (droppedladon/**— no such dir here). Job namecode_reviewis unchanged, so the status-check context is preserved.scripts/install-hooks.jsto its pre-fork state (the.secretariatdist-rebuild pre-commit hook is obsolete), and dropped the.secretariat/ai-review/entries from.prettierignoreand.github/codeql/codeql-config.yml.Fixes a live bug in passing: the forked
setuphad apull_request-only event gate under apull_request_targettrigger, so the reviewer likely wasn't firing. The shared module acceptspull_request_target.Notes for the reviewer
.github/+ a root.md+.prettierignore+ dev-onlyscripts/install-hooks.js(not inpackage.json#files) → no changeset needed (per this repo's CLAUDE.md).pull_request_targetruns from the base SHA, the true end-to-end (against the remote tagged action) is only exercisable after this lands onmain— same constraint as ci(aao-secretariat): fork the PR reviewer into a TypeScript GitHub Action #2354.dist-in-syncjob (it was path-filtered, so almost certainly not).🤖 Generated with Claude Code