ci: install Ladon PR reviewer, replacing the Argus workflow - #983
Open
andybevan-scope3 wants to merge 1 commit into
Open
ci: install Ladon PR reviewer, replacing the Argus workflow#983andybevan-scope3 wants to merge 1 commit into
andybevan-scope3 wants to merge 1 commit into
Conversation
Ladon is the shared AdCP PR reviewer, maintained in adcontextprotocol/actions (ladon/) and consumed by floating major tag. This repo carried its own reviewer — a claude-code-action invocation driving a 245-line vendored prompt — so every engine fix had to be re-ported by hand. - Replace .github/workflows/ai-review.yml with the canonical consumer workflow from ladon/INSTALL.md, copied verbatim. It pins adcontextprotocol/actions/ladon/review@ladon/review/v1 and keeps the pull_request_target posture: base-SHA-only checkout, PR head never fetched or executed, every github.event.* value reaching a shell via env:. Job name code_review is unchanged, so the status-check context is preserved. - Delete .github/ai-review/expert-adcp-reviewer.md. Voice, severity model, largest-file rule, test-plan honesty, and inline-comment format now come from the baseline rules in the actions repo. - Add LADON.md carrying the repo-specific half of the retired prompt as parsed config: semver signal on the adcp.* surface, discriminated-union forward compat, types import layering, generated-code-is-not-source (including the codegen renumbering-churn rule from CLAUDE.md), ctx_metadata credential prohibition, CI-gate regressions, and the high-risk / trivial path globs. Secrets move from IPR_APP_ID / IPR_APP_PRIVATE_KEY to SECRETARIAT_APP_ID / SECRETARIAT_APP_PRIVATE_KEY; both pairs plus ANTHROPIC_API_KEY already resolve to this repo as org-level secrets. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
The automated review encountered an issue (possibly reached max turns, timed out, or failed to post the final This is an automated message from the Argus AI review workflow. |
benminer
approved these changes
Jul 29, 2026
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.
Why
Ladon is the shared AdCP PR reviewer, maintained in
adcontextprotocol/actionsand consumed by floating major tag. This repo carried its own reviewer instead — aclaude-code-actioninvocation driving a 245-line vendored prompt at.github/ai-review/expert-adcp-reviewer.md— so every engine fix had to be re-ported here by hand. Installed perladon/INSTALL.md, following the "replacing an existing reviewer" path.What changed
.github/workflows/ai-review.yml— replaced with the canonical consumer workflow fromINSTALL.md, copied verbatim. Pinsadcontextprotocol/actions/ladon/review@ladon/review/v1(tag resolves to2b4b3aa), keepsmodel: claude-opus-4-8, and preserves thepull_request_targetposture: base-SHA-only checkout, PR head never fetched or executed, everygithub.event.*value reaching a shell viaenv:. Adds the workflow-modification gate the old workflow lacked..github/ai-review/expert-adcp-reviewer.md— voice, severity model, largest-file rule, test-plan honesty, operational-readiness audit, and inline-comment format now come from the baseline rules in the actions repo (ladon/reviewer/rules/*.md). Nothing else referenced this file.LADON.md— the repo-specific half of the retired prompt, restated as parsed config.## Repo Contextcarries the mandatory rules that are only true here: semver signal on theadcp.*surface (release-please cuts a minor fromfeat:, so a breaking diff under it ships without a major), discriminated-union forward compat, thetypesimport-layering allowlist, generated-code-is-not-source including the codegen renumbering-churn rule fromCLAUDE.md, thectx_metadatacredential prohibition, and CI-gate regressions. Plus## High-Risk Paths,## Trivial Paths,## Escalation Reviewers, and## Release Stack Branches.Job name
code_reviewis unchanged, so the required-status-check context is preserved.Secrets
The reviewer moves from
IPR_APP_ID/IPR_APP_PRIVATE_KEYtoSECRETARIAT_APP_ID/SECRETARIAT_APP_PRIVATE_KEY. All ofSECRETARIAT_APP_ID,SECRETARIAT_APP_PRIVATE_KEY, andANTHROPIC_API_KEYalready resolve to this repo as org-level secrets (verified viarepos/.../actions/organization-secrets) — no new secrets to add.One prerequisite I could not verify: whether the AAO Secretariat GitHub App is installed on this repo (reading that requires org-admin scope). Per
INSTALL.md, secrets existing is not the same as the App being installed — if the token-mint step fails on the first run without a secret-not-found error, that is the cause.Notes for the reviewer
Two deltas where verbatim-copy conflicts with what this repo was already doing.
INSTALL.mdsays "copy it verbatim: do not reconstruct it," so I did, but both are worth a decision:actions/checkout@v5andactions/create-github-app-token@v1; the Argus workflow used@v6and@v3. Same asadcp-client's live workflow.persist-credentials: falseis gone from the checkout step — the Argus workflow set it, the template does not. Low impact (nothing pushes, and PR-head code is never executed), but it was real hardening. Happy to add it back if you'd rather keep it.Also:
ladon/review'sapp-idinput is marked deprecated in favour ofclient-id, butINSTALL.md's template still usesapp-idand the action still accepts it. Left as-is to stay on the documented template.No
## Gated Pathssection — this repo has noCODEOWNERS(removed in #968), and perAUTHORING.mda gated path without a matching CODEOWNERS + branch-protection rule becomes a permanently un-liftable block.I dropped a
## Skip Bot Authorssection I had initially written: the action's own default isdependabot[bot],renovate[bot],github-actions[bot], and because LADON.md overrides rather than extends that default, listing onlydependabot[bot]would have narrowed coverage.## Release Stack Brancheshandles the release-please PRs (branchrelease-please--branches--main--components--adcp, authored byapp/aao-ipr-bot) deterministically instead.Test plan
code_review; trigger,paths-ignore, permissions, and all five steps verified.LADON.mdverified against the real parser (ladon/setup/src/ladon-md.ts) — all six H2 headings resolve, 17 high-risk globs / 3 trivial globs / 1 reviewer / 1 release branch parse,## Repo Contextcaptures all 7 H3 rule blocks.ladon/review/v1tag exists; passed inputs match the action's declared inputs at that tag.SECRETARIAT_APP_ID/SECRETARIAT_APP_PRIVATE_KEY/ANTHROPIC_API_KEYconfirmed available to this repo..github/ai-review/anywhere in the tree.scripts/check-pr-title.cjs.pull_request_targetregisters from the default branch and runs from the base SHA, and the workflow-mod gate makes Ladon decline to self-review. This PR needs a human approver; Ladon starts on the next PR. After merge, confirm registration with:.github/workflows/ai-review.ymlmust be listed andactive.🤖 Generated with Claude Code