Skip to content

ci: consume Ladon PR reviewer from adcontextprotocol/actions#2384

Merged
andybevan-scope3 merged 2 commits into
mainfrom
migrate-pr-reviewer-to-actions
Jul 22, 2026
Merged

ci: consume Ladon PR reviewer from adcontextprotocol/actions#2384
andybevan-scope3 merged 2 commits into
mainfrom
migrate-pr-reviewer-to-actions

Conversation

@andybevan-scope3

Copy link
Copy Markdown
Collaborator

Why

The PR reviewer forked into this repo in #2354 (as AAO-SECRETARIAT) has since been lifted into adcontextprotocol/actions and 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 way scope3data/agentic-api pulls in scope3data/actions/argus-v2.

What Changed

  • Deleted the vendored tree .secretariat/ai-review/** (setup → reviewer → arbiter → review, dist, tests, rules) and its secretariat-dist-check.yml (dist is now built/validated in the actions repo).
  • Renamed AAO-SECRETARIAT.mdLADON.md — content unchanged; the shared setup action reads LADON.md from 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.
  • Repointed .github/workflows/ai-review.yml at 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 existing SECRETARIAT_APP_ID / SECRETARIAT_APP_PRIVATE_KEY / ANTHROPIC_API_KEY secrets. Narrowed paths-ignore + the gate to LADON.md + the workflow file (dropped ladon/** — no such dir here). Job name code_review is unchanged, so the status-check context is preserved.
  • Cleanup: reverted scripts/install-hooks.js to its pre-fork state (the .secretariat dist-rebuild pre-commit hook is obsolete), and dropped the .secretariat/ai-review/ entries from .prettierignore and .github/codeql/codeql-config.yml.

Fixes a live bug in passing: the forked setup had a pull_request-only event gate under a pull_request_target trigger, so the reviewer likely wasn't firing. The shared module accepts pull_request_target.

Notes for the reviewer

  • .github/ + a root .md + .prettierignore + dev-only scripts/install-hooks.js (not in package.json#files) → no changeset needed (per this repo's CLAUDE.md).
  • Because pull_request_target runs from the base SHA, the true end-to-end (against the remote tagged action) is only exercisable after this lands on main — same constraint as ci(aao-secretariat): fork the PR reviewer into a TypeScript GitHub Action #2354.
  • The workflow-mod gate means this PR won't auto-review itself; a human owns it.
  • Confirm no branch-protection required status check pointed at the deleted dist-in-sync job (it was path-filtered, so almost certainly not).

🤖 Generated with Claude Code

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

benminer
benminer previously approved these changes Jul 22, 2026

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@andybevan-scope3
andybevan-scope3 enabled auto-merge (squash) July 22, 2026 16:17
andybevan-scope3 and others added 2 commits July 22, 2026 12:56
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>
@andybevan-scope3
andybevan-scope3 force-pushed the migrate-pr-reviewer-to-actions branch from 16ed76d to 29930cb Compare July 22, 2026 16:56

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@benminer
benminer self-requested a review July 22, 2026 16:58
@andybevan-scope3
andybevan-scope3 merged commit 731a7f2 into main Jul 22, 2026
32 checks passed
@andybevan-scope3
andybevan-scope3 deleted the migrate-pr-reviewer-to-actions branch July 22, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants