Repository navigation
feat(agents): add a starter agent catalog - #684
Conversation
cr ships no reviewers, so a new profile cannot review anything until someone writes agent prompts. starter-agents/ is a general catalog to use as a profile agent source: baseline correctness, repository-conventions and docs reviewers that run on every matching PR, and optional tests, security, design, repo-health, CI, Go, Rust, Tauri, macOS and frontend reviewers. Its README covers using it as a profile source, extending it with organization and repository-local agents, and turning AGENTS.md rules into a repository-local reviewer. The Rust, Tauri and macOS agents move here from this repository's own .codereview/agents, where they never applied. A test loads the catalog with the strict profile-source parser and checks that the README lists every agent. Twapp-Session: 886ed389-9240-4a5d-8220-ce9a6862b406
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: cc8663b7583e
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| documentation:docs | 0 |
| go:implementation-tests | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
| harness-engineering:repo-health | 1 |
Approval Withheld
No blocking or major findings were reported. Approval is withheld because at least one reviewer did not complete its assigned review obligations:
unassigned—⚠️ unassigned: changed files were not assigned to a selected reviewer- 14 files had no body inspection or relocation-impact review by any reviewer; examples:
starter-agents/architecture/design/prompt.md,starter-agents/automation/ci-release/prompt.md,starter-agents/documentation/docs/prompt.md,starter-agents/frontend/accessibility/prompt.md,starter-agents/frontend/correctness/prompt.md; 9 omitted
Re-running the same review may reproduce this. Closing the gap means resolving the incomplete obligations above, either by having the assigned reviewer inspect the remaining file content or establish that a certified relocation needs no body reread after its impact was reviewed.
harness-engineering:repo-health (1 finding)
Minor - internal/agents/starter_catalog_test.go:31
The README sync check is
strings.Contains(readme, ""+agent.ID+""), which passes when the ID appears anywhere in the file (prose, an example, a code block), not only in the agent table. Removing a table row passes silently if the ID is mentioned elsewhere, and the 'Runs' column (required_on_match vs selected) is not checked against the loaded agents, nor are README rows for IDs that no longer load. The table can drift from the catalog while the test stays green. Fix: parse the table rows (lines starting with| ````) into an ID set and compare it to the loaded IDs in both directions, and assert that the 'Every PR' rows match the agents with RequiredOnMatch.
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
documentation:docs— complete (broad); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; context (not coverage): 4 files; examples:internal/agents/starter_catalog_test.go,starter-agents/documentation/docs/index.yaml,starter-agents/general/correctness/index.yaml,starter-agents/general/repo-conventions/index.yaml; constraints: Verified README claims against cobra command definitions (config agent-source add, agents list, review --agents-dir/--dry-run), the 5-optional-reviewer default in README.md and docs/review-guidance.md, and the glob/required_on_match values in the three baseline index.yaml files. Did not read the ...go:implementation-tests— complete (broad); scope: 1 file; examples:internal/agents/starter_catalog_test.go; body-inspected: 1 file; examples:internal/agents/starter_catalog_test.go; skipped: none; context (not coverage): 1 file; examples:starter-agents/README.md; constraints: Tests were not executed; review is static. Only the assigned test file was in scope; renamed index.yaml files are metadata moves and were not body-inspected.policies:conventions— complete (broad); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; constraints: Did not verify the strict profile-source parser test (internal/agents/starter_catalog_test.go) since it is outside the assigned scope. Optional-reviewer limit of five per run was not verified against code.structure:repo-health— complete (broad); scope: 6 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md,starter-agents/documentation/docs/index.yaml,starter-agents/general/correctness/index.yaml; 1 omitted; body-inspected: 6 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md,starter-agents/documentation/docs/index.yaml,starter-agents/general/correctness/index.yaml; 1 omitted; skipped: none; context (not coverage): 6 files; examples:starter-agents/macos/index.yaml,starter-agents/macos/swift-appkit/index.yaml,starter-agents/rust/implementation-tests/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/config-ipc/index.yaml; 1 omitted; constraints: Did not verify the loader's same-ID replacement or optional-reviewer limit behavior against internal/agents/agents.go and internal/cmd/reviewcmd; README claims about them were not checked. Renamed index.yaml files were inspected by content at the pinned head; prompt.md files were confirmed present under starter-agents/. out-of-assignment inspected paths are context only and do not count toward assignment coverageharness-engineering:repo-health— complete (constrained); scope: 27 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 22 omitted; body-inspected: 24 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 19 omitted; skipped: none; context (not coverage): 1 file; examples:starter-agents/README.md; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Prompt.md bodies for the new starter agents were not individually read; review covered the test, catalog index files, README table, and relocation path impact. Static inspection of the assigned index.yaml files only; sibling prompt.md bodies were listed but not read, and tests were not run. Tests were not executed.unassigned—⚠️ unassigned; skipped: 14 files; examples:starter-agents/architecture/design/prompt.md,starter-agents/automation/ci-release/prompt.md,starter-agents/documentation/docs/prompt.md,starter-agents/frontend/accessibility/prompt.md,starter-agents/frontend/correctness/prompt.md; 9 omitted; diagnostic: changed files were not assigned to a selected reviewer
0 PR discussion threads considered. 0 summarized; 0 resolved.
Note: This PR modifies reviewer definitions under
.codereview/agents/. The review was conducted using base-branch versions; changes will affect future reviews after merge.
Completed in 2m 21s | ~$2.61 (est.) | claude-sonnet-5-5 | cr 0.10.344
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | documentation:docs, go:implementation-tests, policies:conventions, structure:repo-health, harness-engineering:repo-health |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 2m 21s wall · 5m 24s compute |
| Cost | ~$2.61 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 82 in / 16.3k out |
Per-workstream usage
orchestrator-selection— claude-sonnet-5-5- In: 6
- Out: 1.9k
- Cache read: 59.2k
- Cache create: 56.4k
- Cost: ~$0.26 (est.)
- Duration: 24s
documentation:docs— claude-sonnet-5-5- In: 18
- Out: 3.1k
- Cache read: 406.2k
- Cache create: 63.2k
- Cost: ~$0.36 (est.)
- Duration: 1m 02s
go:implementation-tests— claude-sonnet-5-5- In: 6
- Out: 988
- Cache read: 63.1k
- Cache create: 54.0k
- Cost: ~$0.24 (est.)
- Duration: 29s
policies:conventions— claude-sonnet-5-5- In: 10
- Out: 2.0k
- Cache read: 173.4k
- Cache create: 59.4k
- Cost: ~$0.29 (est.)
- Duration: 37s
structure:repo-health— claude-sonnet-5-5- In: 18
- Out: 3.7k
- Cache read: 396.5k
- Cache create: 62.4k
- Cost: ~$0.37 (est.)
- Duration: 1m 18s
harness-engineering:repo-health— claude-sonnet-5-5- In: 18
- Out: 3.8k
- Cache read: 423.3k
- Cache create: 151.0k
- Cost: ~$0.73 (est.)
- Duration: 1m 11s
orchestrator-rollup— claude-sonnet-5-5- In: 6
- Out: 893
- Cache read: 140.1k
- Cache create: 81.0k
- Cost: ~$0.36 (est.)
- Duration: 21s
The README check matched an agent ID anywhere in the file, so prose that names an agent hid a missing table row. Parse the table rows instead, require a row for every loaded agent and an agent for every row, and check the Runs column against required_on_match. Twapp-Session: 2cffedba-c2e2-4183-88d9-3e29627dc08a
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: ba9eadf5e31f
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| documentation:docs | 0 |
| go:implementation-tests | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
| harness-engineering:repo-health | 0 |
Approval Withheld
No blocking or major findings were reported. Approval is withheld because at least one reviewer did not complete its assigned review obligations:
unassigned—⚠️ unassigned: changed files were not assigned to a selected reviewer- 14 files had no body inspection or relocation-impact review by any reviewer; examples:
starter-agents/architecture/design/prompt.md,starter-agents/automation/ci-release/prompt.md,starter-agents/documentation/docs/prompt.md,starter-agents/frontend/accessibility/prompt.md,starter-agents/frontend/correctness/prompt.md; 9 omitted
Re-running the same review may reproduce this. Closing the gap means resolving the incomplete obligations above, either by having the assigned reviewer inspect the remaining file content or establish that a certified relocation needs no body reread after its impact was reviewed.
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
documentation:docs— complete (broad); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; context (not coverage): 6 files; examples:starter-agents/macos/index.yaml,starter-agents/macos/swift-appkit/index.yaml,starter-agents/rust/implementation-tests/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/config-ipc/index.yaml; 1 omitted; constraints: Checked the documented commands (config agent-source add, agents list, review --dry-run, --agents-dir) and the optional-agent limit against the Go source. Did not execute them. Did not read the 14 prompt.md files or the starter_catalog_test.go beyond what the README and index.yaml routing claims required. out-of-assignment inspected paths are context only and do not count toward assignment coveragego:implementation-tests— complete (broad); scope: 1 file; examples:internal/agents/starter_catalog_test.go; body-inspected: 1 file; examples:internal/agents/starter_catalog_test.go; skipped: none; constraints: Did not run the test; inspected the file body only. Did not read Load, LoadOptions or the README table format beyond what the test file shows.policies:conventions— complete (broad); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; context (not coverage): 6 files; examples:starter-agents/macos/index.yaml,starter-agents/macos/swift-appkit/index.yaml,starter-agents/rust/implementation-tests/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/config-ipc/index.yaml; 1 omitted; constraints: Did not verify the default limit of five optional reviewers against the source. Reviewed only the assigned docs and renamed index.yaml files; catalog prompt bodies and the Go test were outside scope. out-of-assignment inspected paths are context only and do not count toward assignment coveragestructure:repo-health— complete (broad); scope: 6 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md,starter-agents/macos/swift-appkit/index.yaml,starter-agents/rust/implementation-tests/index.yaml; 1 omitted; body-inspected: 6 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md,starter-agents/macos/swift-appkit/index.yaml,starter-agents/rust/implementation-tests/index.yaml; 1 omitted; skipped: none; context (not coverage): 2 files; examples:README.md,docs/review-guidance.md; constraints: Reviewed only the assigned files; the prompt.md bodies of the starter agents are outside scope and were not read. The README claim that repo-local agents replace four starter agents by ID was checked against the directory listing only, not by running cr.harness-engineering:repo-health— complete (constrained); scope: 27 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 22 omitted; body-inspected: 24 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 19 omitted; skipped: none; context (not coverage): 2 files; examples:Makefile,starter-agents/README.md; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Did not execute the tests. Reviewed manifests, the catalog test and the README table; did not read every prompt.md body in depth (prompt text is outside the manifest scope).unassigned—⚠️ unassigned; skipped: 14 files; examples:starter-agents/architecture/design/prompt.md,starter-agents/automation/ci-release/prompt.md,starter-agents/documentation/docs/prompt.md,starter-agents/frontend/accessibility/prompt.md,starter-agents/frontend/correctness/prompt.md; 9 omitted; diagnostic: changed files were not assigned to a selected reviewer
0 PR discussion threads considered. 0 summarized; 0 resolved.
Note: This PR modifies reviewer definitions under
.codereview/agents/. The review was conducted using base-branch versions; changes will affect future reviews after merge.
Completed in 2m 25s | ~$2.03 (est.) | claude-sonnet-5-5 | cr 0.10.344
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | documentation:docs, go:implementation-tests, policies:conventions, structure:repo-health, harness-engineering:repo-health |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 2m 25s wall · 4m 27s compute |
| Cost | ~$2.03 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 64 in / 11.9k out |
Per-workstream usage
orchestrator-selection— claude-sonnet-5-5- In: 4
- Out: 1.6k
- Cache read: 12.0k
- Cache create: 53.8k
- Cost: ~$0.23 (est.)
- Duration: 43s
documentation:docs— claude-sonnet-5-5- In: 18
- Out: 3.2k
- Cache read: 424.1k
- Cache create: 52.3k
- Cost: ~$0.33 (est.)
- Duration: 53s
go:implementation-tests— claude-sonnet-5-5- In: 6
- Out: 802
- Cache read: 63.3k
- Cache create: 53.5k
- Cost: ~$0.23 (est.)
- Duration: 28s
policies:conventions— claude-sonnet-5-5- In: 10
- Out: 1.6k
- Cache read: 165.3k
- Cache create: 58.4k
- Cost: ~$0.28 (est.)
- Duration: 40s
structure:repo-health— claude-sonnet-5-5- In: 10
- Out: 1.8k
- Cache read: 175.0k
- Cache create: 60.1k
- Cost: ~$0.29 (est.)
- Duration: 39s
harness-engineering:repo-health— claude-sonnet-5-5- In: 12
- Out: 2.5k
- Cache read: 238.9k
- Cache create: 63.5k
- Cost: ~$0.33 (est.)
- Duration: 48s
orchestrator-rollup— claude-sonnet-5-5- In: 4
- Out: 471
- Cache read: 59.5k
- Cache create: 78.2k
- Cost: ~$0.33 (est.)
- Duration: 14s
## Summary Adds `catalog:starter-agents`, a repo-local reviewer for `starter-agents/`, the general catalog proposed in #684. Without it, no reviewer of this repository is assigned the catalog's `prompt.md` files: this repo's `documentation:docs` replaces any profile docs agent by ID and matches only top-level Markdown and `docs/`, and the other repo-local agents do not match `starter-agents/**`. The review of #684 withheld approval for exactly that reason (14 unassigned prompt files). Repo-local agents load from the base branch, so #684 cannot add this coverage for its own review; this lands first. The reviewer matches only `starter-agents/**` and sets `required_on_match`, so any PR touching the catalog gets it and no other PR pays for it. It checks what is specific to shipping prompts to other teams: no organization-specific content, the shared prompt structure and review bar, lane scoping without naming other agents, instructions a sandboxed reviewer can follow, routing that matches the prompt, and README accuracy. ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Documentation update - [x] Repo scaffolding / maintenance ## Checklist - [x] I have read the contributing guide - [x] My change follows the project structure and conventions - [ ] `make tidy` passes - [ ] `make lint` passes - [ ] `make test` passes - [ ] `make build` passes Agents-only change; `cr agents show catalog:starter-agents --agents-dir .codereview/agents` loads it under the strict parser. ## Related Issues Needed before #684 can be reviewed with full coverage. <!-- twapp-session: b7acef9e-0a9c-4af5-8ab8-775953bbc6e1 --> Model: Claude Opus 5.5 (1M context, xhigh effort) in Claude Code.
…viewer Twapp-Session: b7acef9e-0a9c-4af5-8ab8-775953bbc6e1
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: fc647ac7f373
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| catalog:starter-agents | 5 |
| documentation:docs | 0 |
| policies:conventions | 0 |
| go:implementation-tests | 0 |
| harness-engineering:repo-health | 0 |
| structure:repo-health | 0 |
Approval Withheld
No blocking or major findings were reported. Approval is withheld because at least one reviewer did not complete its assigned review obligations:
catalog:starter-agents—⚠️ incomplete (skipped files): assigned review coverage remains unresolved
Every changed file was either body-inspected or received relocation-impact review by some reviewer. The withhold comes from the per-reviewer statuses above, which are evaluated one reviewer at a time.
catalog:starter-agents (5 findings)
Minor - starter-agents/rust/implementation-tests/index.yaml:14
Lane scoping: the catalog convention is that a prompt stays in its lane without suppressing findings by pointing at other reviewers; overlap is handled by the rollup. This applies_when says not to select the agent for changes 'a dedicated style, security, or architecture reviewer already covers'. The selector reads applies_when, so a Rust PR that touches anything a security or architecture agent might also review (any Rust change that is also security-relevant) can be left without the Rust implementation and test reviewer, and the selector cannot know what other agents will cover. Inferred from reading how applies_when is used, not run. Fix: drop the clause and keep 'Do not select for non-Rust changes'. The same pattern appears in starter-agents/tauri/config-ipc/index.yaml line 14 and starter-agents/macos/swift-appkit/index.yaml line 16.
Minor - starter-agents/tauri/config-ipc/index.yaml:14
Lane scoping: this applies_when excludes 'concerns owned by the Rust reviewer', and starter-agents/tauri/config-ipc/prompt.md line 1 ends with 'Rust idiom and test quality belong to the Rust reviewer.' That names another agent to suppress findings, which the catalog avoids; it also assumes the Rust agent is installed, which is not true for a team that copies only part of the catalog. The prompt already has a 'What not to report' entry for Rust concerns with no security or IPC angle, so the sentence in the prompt is redundant. Fix: remove the 'owned by the Rust reviewer' clause from applies_when and the last sentence of prompt.md line 1.
Minor - starter-agents/macos/swift-appkit/index.yaml:16
Lane scoping: 'concerns owned by a dedicated policy or structure reviewer' is a leftover from a repository-specific setup (the catalog has no policy agent) and tells the selector to skip this agent based on other reviewers. A Swift or entitlements PR that also touches repository guidance could be left without the macOS reviewer. This line was carried over unchanged from the previous repository-local copy; it is now shipped as product content. Fix: delete the trailing clause and keep the test-only exclusion.
Minor - starter-agents/general/correctness/prompt.md:39
Lane scoping: 'another reviewer covers test quality' (line 39) and 'another reviewer covers security' (line 41) use other agents as the reason to drop findings. For a team that adopts only part of the catalog, or whose selector skips tests:behavior or security:trust-boundaries (both optional), these checks are dropped with nothing covering them, and the Review bar's 'report a central lane issue even if another reviewer might also notice it' points the other way. The same wording is at starter-agents/general/repo-conventions/prompt.md line 42 ('Those belong to other reviewers'). Fix: state the exclusion by content, for example 'Missing tests with no bug you can describe' and 'Security issues that are not a plain bug you can show', without naming who covers them.
Minor - starter-agents/frontend/correctness/prompt.md:86
Lane scoping: the catalog convention is that a prompt stays in its lane without naming other agents to suppress findings. The 'What not to report' entry 'Accessibility issues. The accessibility reviewer covers them.' drops accessibility findings because of another agent. frontend:accessibility is optional and only selected for rendered UI changes, so a team that installs only frontend:correctness, or a PR the selector does not send to the accessibility agent, gets no accessibility coverage and this reviewer will not report even a plain bug it finds. Inferred from reading the prompt and index files, not run. Fix: scope by content, for example 'Accessibility barriers such as missing labels, focus handling and ARIA misuse', and drop the sentence naming the other reviewer.
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
catalog:starter-agents—⚠️ incomplete (skipped files); scope: 41 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 36 omitted; body-inspected: 38 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 33 omitted; skipped: 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; missing: 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; context (not coverage): 1 file; examples:starter-agents/README.md; constraints: Category index.yaml files (3 lines each) were checked for name, description and owner only. Read-only checkout; no cr execution. Routing, README and lane scoping checked by reading. Not every prompt was read in full: general:correctness, general:repo-conventions (Read first and Review bar), tauri:config-ipc and the Read first and Review bar of macos and rust were read; the rest were gre... Read-only static review; nothing was run. Path impact of the three renamed category index.yaml files (maco…; diagnostic: assigned review coverage remains unresolveddocumentation:docs— complete (broad); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; context (not coverage): 3 files; examples:.codereview/agents/catalog/starter-agents/index.yaml,starter-agents/documentation/docs/index.yaml,starter-agents/general/correctness/index.yaml; constraints: Renamed starter-agents index.yaml files (indices 7-12) are outside assignment scope and were not inspected. Verified commands (config agent-source add, agents list, review --dry-run, --agents-dir), the default five optional agents, repo-local override precedence, and the required_on_match globs against source and agent index.yaml files. Did not execute any cr command.policies:conventions— complete (broad); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; constraints: Did not read the shared cli-common docs; judged only against conventions visible in the diff and repo. Renamed index.yaml files and deleted prompts are outside assignment scope and were not reviewed.go:implementation-tests— complete (broad); scope: 1 file; examples:internal/agents/starter_catalog_test.go; body-inspected: 1 file; examples:internal/agents/starter_catalog_test.go; skipped: none; constraints: Did not run the test or read starter-agents/README.md; the table-row regexp was judged against the test's own comments and the discussion thread. Renamed index.yaml files and deleted prompt files in the assignment were not individually inspected; scope was limited to the added Go test.harness-engineering:repo-health— complete (constrained); scope: 27 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 22 omitted; body-inspected: 24 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 19 omitted; skipped: none; context (not coverage): 2 files; examples:.codereview/agents/catalog/starter-agents/index.yaml,starter-agents/README.md; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Did not execute make test or the catalog test. Prompt.md bodies for the starter agents are not in the assigned manifest and were not reviewed; only index.yaml files and the catalog test were inspected. Static inspection of index.yaml files only; prompt.md bodies are outside the assigned scope and the catalog test was not executed.structure:repo-health— complete (broad); scope: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; body-inspected: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; skipped: none; context (not coverage): 4 files; examples:.codereview/agents/catalog/starter-agents/index.yaml,starter-agents/documentation/docs/index.yaml,starter-agents/general/correctness/index.yaml,starter-agents/general/repo-conventions/index.yaml; constraints: Did not run the Go test suite; inspected the test source and README table statically. Renamed index.yaml files and deleted prompts were outside assignment scope and not reviewed.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Note: This PR modifies reviewer definitions under
.codereview/agents/. The review was conducted using base-branch versions; changes will affect future reviews after merge.
Completed in 3m 09s | ~$3.55 (est.) | claude-sonnet-5-5 | cr 0.10.344
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | catalog:starter-agents, documentation:docs, policies:conventions, go:implementation-tests, harness-engineering:repo-health, structure:repo-health |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 3m 09s wall · 5m 37s compute |
| Cost | ~$3.55 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 96 in / 23.3k out |
Per-workstream usage
orchestrator-selection— claude-sonnet-5-5- In: 6
- Out: 4.2k
- Cache read: 62.9k
- Cache create: 58.0k
- Cost: ~$0.29 (est.)
- Duration: 31s
catalog:starter-agents— claude-sonnet-5-5- In: 26
- Out: 7.9k
- Cache read: 807.4k
- Cache create: 192.1k
- Cost: ~$1.01 (est.)
- Duration: 1m 42s
documentation:docs— claude-sonnet-5-5- In: 16
- Out: 3.1k
- Cache read: 356.3k
- Cache create: 65.4k
- Cost: ~$0.36 (est.)
- Duration: 42s
policies:conventions— claude-sonnet-5-5- In: 10
- Out: 1.6k
- Cache read: 169.2k
- Cache create: 57.3k
- Cost: ~$0.28 (est.)
- Duration: 25s
go:implementation-tests— claude-sonnet-5-5- In: 6
- Out: 818
- Cache read: 63.3k
- Cache create: 53.4k
- Cost: ~$0.23 (est.)
- Duration: 20s
harness-engineering:repo-health— claude-sonnet-5-5- In: 18
- Out: 3.4k
- Cache read: 432.2k
- Cache create: 154.1k
- Cost: ~$0.74 (est.)
- Duration: 1m 04s
structure:repo-health— claude-sonnet-5-5- In: 8
- Out: 1.5k
- Cache read: 117.3k
- Cache create: 58.4k
- Cost: ~$0.27 (est.)
- Duration: 33s
orchestrator-rollup— claude-sonnet-5-5- In: 6
- Out: 853
- Cache read: 149.1k
- Cache create: 83.8k
- Cost: ~$0.37 (est.)
- Duration: 18s
Several prompts and applies_when lines dropped findings or skipped selection because another reviewer was assumed to cover them. A team that installs part of the catalog, or a PR the selector does not send to that reviewer, then loses the check. Each exclusion now names the content it leaves out. Twapp-Session: b7acef9e-0a9c-4af5-8ab8-775953bbc6e1
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: bddc4501f4fb
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| catalog:starter-agents | 1 |
| documentation:docs | 0 |
| policies:conventions | 0 |
| go:implementation-tests | 0 |
| harness-engineering:repo-health | 0 |
| structure:repo-health | 0 |
catalog:starter-agents (1 finding)
Minor - starter-agents/architecture/design/prompt.md:1
Shared structure: the catalog prompts keep a 'What not to report' section, and the starter-agents README says every prompt has one. This prompt has no such section and no 'Read first' section (the 'Order of authority' section covers reading the repository rules). Its Universal rules include checks that overlap other lanes: U-T1 'Behavior changes carry tests', U-G1 'new third-party dependencies are justified', and U-L2 on error contracts. This agent runs at the large tier on every structural PR and has no stated exclusions, so it will likely repeat missing-test, dependency and error-handling findings that other reviewers report, and raise untouched-code and taste-level complaints. Inferred from reading the prompt, not from a run. Fix: add a 'What not to report' section covering untouched-code debt, style the repository does not state, missing tests for trivial logic, and anything a repository linter enforces.
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
catalog:starter-agents— complete (constrained); scope: 41 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 36 omitted; body-inspected: 38 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 33 omitted; skipped: none; context (not coverage): 1 file; examples:internal/agents/starter_catalog_test.go; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Read-only checkout; cr and go test were not run. Findings come from reading the prompts and category index.yaml files at bddc450. Read-only checkout; cr and go test were not run. Routing, README and lane scoping were checked by reading and grep. Only the lane-naming clauses and the head index.yaml files were re-read in full at bddc450; prompts not touched by the lane fixes were reviewed only by grep for lane-naming, organiz...documentation:docs— complete (constrained); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; context (not coverage): 3 files; examples:.codereview/agents/catalog/starter-agents/index.yaml,starter-agents/documentation/docs/index.yaml,starter-agents/general/correctness/index.yaml; constraints: Renamed starter-agents index.yaml files (indices 7-12) are outside assignment scope and were not inspected. The assigned docs are byte-identical to the previously reviewed head (git diff fc647ac..bddc450 shows no change to them); commands, flags, defaults and globs were verified against source in that earlier pass. No cr command was executed.policies:conventions— complete (constrained); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; constraints: Did not read the shared cli-common docs; judged only against conventions visible in the diff and repo. Renamed index.yaml files and deleted prompts are outside assignment scope and were not reviewed.go:implementation-tests— complete (constrained); scope: 1 file; examples:internal/agents/starter_catalog_test.go; body-inspected: 1 file; examples:internal/agents/starter_catalog_test.go; skipped: none; constraints: Did not run the test or read starter-agents/README.md. Scope was limited to the added Go test; renamed index.yaml files and deleted prompt files were not inspected.harness-engineering:repo-health— complete (constrained); scope: 27 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 22 omitted; body-inspected: 24 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 19 omitted; skipped: none; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Did not execute make test or the catalog test. Prompt.md bodies are outside the assigned manifest; only index.yaml files were inspected, plus the diff stat since the previously reviewed head. Starter prompt.md bodies and starter-agents/README.md are outside the assigned manifest and were not reviewed. internal/agents/starter_catalog_test.go was read in an earlier pass at fc647ac; the diff since then (bddc450) does not touch it.structure:repo-health— complete (constrained); scope: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; body-inspected: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; skipped: none; constraints: Did not run the Go test suite; inspected the test source and README table statically. The three in-scope files are byte-identical to the previously reviewed head (git diff fc647ac..bddc450 is empty for them); renamed index.yaml and deleted prompt files were outside assignment scope.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Note: This PR modifies reviewer definitions under
.codereview/agents/. The review was conducted using base-branch versions; changes will affect future reviews after merge.
Completed in 2m 28s | ~$2.93 (est.) | claude-sonnet-5-5 | cr 0.10.345
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | catalog:starter-agents, documentation:docs, policies:conventions, go:implementation-tests, harness-engineering:repo-health, structure:repo-health |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 2m 28s wall · 4m 35s compute |
| Cost | ~$2.93 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 68 in / 12.2k out |
Per-workstream usage
catalog:starter-agents— claude-sonnet-5-5- In: 20
- Out: 5.0k
- Cache read: 889.4k
- Cache create: 125.7k
- Cost: ~$0.73 (est.)
- Duration: 1m 28s
documentation:docs— claude-sonnet-5-5- In: 8
- Out: 1.2k
- Cache read: 222.8k
- Cache create: 79.5k
- Cost: ~$0.37 (est.)
- Duration: 28s
policies:conventions— claude-sonnet-5-5- In: 8
- Out: 1.1k
- Cache read: 195.4k
- Cache create: 69.2k
- Cost: ~$0.33 (est.)
- Duration: 33s
go:implementation-tests— claude-sonnet-5-5- In: 8
- Out: 900
- Cache read: 193.9k
- Cache create: 61.9k
- Cost: ~$0.30 (est.)
- Duration: 17s
harness-engineering:repo-health— claude-sonnet-5-5- In: 14
- Out: 2.7k
- Cache read: 463.5k
- Cache create: 91.3k
- Cost: ~$0.49 (est.)
- Duration: 1m 01s
structure:repo-health— claude-sonnet-5-5- In: 6
- Out: 966
- Cache read: 131.0k
- Cache create: 71.8k
- Cost: ~$0.32 (est.)
- Duration: 29s
orchestrator-rollup— claude-sonnet-5-5- In: 4
- Out: 354
- Cache read: 91.0k
- Cache create: 93.7k
- Cost: ~$0.40 (est.)
- Duration: 15s
The README says every starter prompt carries one. Without it the large-tier design agent had no stated exclusions for untouched debt, unstated style, trivial missing tests, or implementation bugs with no design cause. Twapp-Session: 2cffedba-c2e2-4183-88d9-3e29627dc08a
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: 8583ab986c79
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| catalog:starter-agents | 0 |
| documentation:docs | 0 |
| policies:conventions | 0 |
| go:implementation-tests | 0 |
| harness-engineering:repo-health | 0 |
| structure:repo-health | 0 |
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
catalog:starter-agents— complete (constrained); scope: 41 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 36 omitted; body-inspected: 38 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 33 omitted; skipped: none; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Read-only checkout; cr and go test were not run. All 31 assigned files were read in full at head 8583ab9. Routing, lane scoping, generality, shared Review bar text and reviewer-executability were checked by reading, not by running the selector. Read-only checkout; cr and go test were not run. The only change since the last reviewed head (bddc450) is architecture/design/prompt.md at 8583ab9, which I read in full. Other files were not re-read in full this pass; earlier passes covered the lane-nam…documentation:docs— complete (constrained); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; constraints: Renamed starter-agents index.yaml files (indices 7-12) are outside assignment scope and were not inspected. The assigned docs are byte-identical to the previously reviewed head (git diff bddc450..8583ab9 shows no change to them); commands, flags, defaults and globs were verified against source in an earlier pass. No cr command was executed.policies:conventions— complete (constrained); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; constraints: Did not read the shared cli-common docs; judged only against conventions visible in the diff and repo. Renamed index.yaml files and deleted prompts are outside assignment scope and were not reviewed.go:implementation-tests— complete (constrained); scope: 1 file; examples:internal/agents/starter_catalog_test.go; body-inspected: 1 file; examples:internal/agents/starter_catalog_test.go; skipped: none; constraints: Did not run the test or read starter-agents/README.md. Scope was limited to the added Go test; renamed index.yaml files and deleted prompt files were not inspected.harness-engineering:repo-health— complete (constrained); scope: 27 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 22 omitted; body-inspected: 24 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 19 omitted; skipped: none; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Did not execute make test or the catalog test. Prompt.md bodies are outside the assigned files and were not reviewed in this pass. Prompt.md bodies are outside the assigned manifest; only index.yaml files and the diff stat since the previously reviewed head (one prompt.md, +8 lines) were inspected.structure:repo-health— complete (constrained); scope: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; body-inspected: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; skipped: none; constraints: Did not run the Go test suite; inspected the test source and README table statically. The three in-scope files are unchanged since the previously reviewed head bddc450 (git diff is empty for them); renamed index.yaml and deleted prompt files were outside assignment scope.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Note: This PR modifies reviewer definitions under
.codereview/agents/. The review was conducted using base-branch versions; changes will affect future reviews after merge.
Completed in 2m 04s | ~$1.29 (est.) | claude-sonnet-5-5 | cr 0.10.345
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | catalog:starter-agents, documentation:docs, policies:conventions, go:implementation-tests, harness-engineering:repo-health, structure:repo-health |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 2m 04s wall · 3m 59s compute |
| Cost | ~$1.29 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 64 in / 11.7k out |
Per-workstream usage
catalog:starter-agents— claude-sonnet-5-5- In: 16
- Out: 4.9k
- Cache read: 918.6k
- Cache create: 62.8k
- Cost: ~$0.48 (est.)
- Duration: 1m 12s
documentation:docs— claude-sonnet-5-5- In: 8
- Out: 1.0k
- Cache read: 344.1k
- Cache create: 13.5k
- Cost: ~$0.13 (est.)
- Duration: 27s
policies:conventions— claude-sonnet-5-5- In: 8
- Out: 966
- Cache read: 300.3k
- Cache create: 12.2k
- Cost: ~$0.12 (est.)
- Duration: 34s
go:implementation-tests— claude-sonnet-5-5- In: 6
- Out: 732
- Cache read: 216.5k
- Cache create: 13.7k
- Cost: ~$0.11 (est.)
- Duration: 14s
harness-engineering:repo-health— claude-sonnet-5-5- In: 16
- Out: 3.0k
- Cache read: 719.8k
- Cache create: 31.5k
- Cost: ~$0.30 (est.)
- Duration: 1m 01s
structure:repo-health— claude-sonnet-5-5- In: 6
- Out: 823
- Cache read: 230.4k
- Cache create: 12.2k
- Cost: ~$0.10 (est.)
- Duration: 13s
orchestrator-rollup— claude-sonnet-5-5- In: 4
- Out: 311
- Cache read: 188.6k
- Cache create: 2.6k
- Cost: ~$0.05 (est.)
- Duration: 15s
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: f8944a26c08b
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| catalog:starter-agents | 0 |
| documentation:docs | 0 |
| policies:conventions | 0 |
| go:implementation-tests | 0 |
| harness-engineering:repo-health | 0 |
| structure:repo-health | 0 |
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
catalog:starter-agents— complete (constrained); scope: 41 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 36 omitted; body-inspected: 38 files; examples:starter-agents/README.md,starter-agents/architecture/design/index.yaml,starter-agents/architecture/design/prompt.md,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml; 33 omitted; skipped: none; context (not coverage): 1 file; examples:internal/reviewrun/superseded_approval_test.go; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Checked against the catalog bar: shared Review bar text identical across prompts, required sections present, no organization-specific names or paths, no lane-naming, no fetch or network instructions, severity scales use only the four allowed levels. Read-only checkout; cr and go test were not run. All 32 residual files were read in full at head f8944a2 in this pass. Findings from the primary pass are retained separately and were not repeated. Read-only checkout; cr and go test were not run. The…documentation:docs— complete (constrained); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; context (not coverage): 1 file; examples:.codereview/agents/catalog/starter-agents/index.yaml; constraints: Base moved to bf3131a. Assigned docs diff identically against the new base; re-checked that agent-source, agents-dir, the five-optional-agent default, the .codereview/agents layout (policies:conventions, catalog) and internal/agents/starter_catalog_test.go still match. No cr command was exec... Renamed starter-agents index.yaml files (indices 7-12) are outside assignment scope and were not inspected.policies:conventions— complete (constrained); scope: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; body-inspected: 4 files; examples:README.md,docs/development.md,docs/review-guidance.md,starter-agents/README.md; skipped: none; constraints: Did not read the shared cli-common docs; judged only against conventions visible in the diff and repo. Renamed index.yaml files and deleted prompts are outside assignment scope and were not reviewed.go:implementation-tests— complete (constrained); scope: 1 file; examples:internal/agents/starter_catalog_test.go; body-inspected: 1 file; examples:internal/agents/starter_catalog_test.go; skipped: none; constraints: Did not run the test or read starter-agents/README.md. Scope was limited to the added Go test; renamed index.yaml files and deleted prompt files were not inspected.harness-engineering:repo-health— complete (constrained); scope: 27 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 22 omitted; body-inspected: 24 files; examples:internal/agents/starter_catalog_test.go,starter-agents/architecture/design/index.yaml,starter-agents/architecture/index.yaml,starter-agents/automation/ci-release/index.yaml,starter-agents/automation/index.yaml; 19 omitted; skipped: none; context (not coverage): 1 file; examples:starter-agents/README.md; relocation-impact-reviewed (not body-inspected): 3 files; examples:starter-agents/macos/index.yaml,starter-agents/rust/index.yaml,starter-agents/tauri/index.yaml; constraints: Compared each agent's required_on_match and globs against the starter-agents/README.md table rows; no mismatch found. Prompt.md bodies are outside the assigned manifest and were not reviewed. Ran go test ./internal/agents -run StarterCatalog, which passed. The only change since the last reviewed head is a merge of main (an unrelated test file in internal/reviewrun); the starter catalog files are unchanged.structure:repo-health— complete (constrained); scope: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; body-inspected: 3 files; examples:docs/development.md,internal/agents/starter_catalog_test.go,starter-agents/README.md; skipped: none; constraints: Did not run the Go test suite; inspected the test source, README table and docs hunk statically. The README and test were not re-diffed against the previously reviewed head; their content matches what was reviewed earlier (same table, same assertions). Renamed index.yaml and deleted prompt files were outside assignment scope.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Note: This PR modifies reviewer definitions under
.codereview/agents/. The review was conducted using base-branch versions; changes will affect future reviews after merge.
Completed in 2m 16s | ~$1.55 (est.) | claude-sonnet-5-5 | cr 0.10.345
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | catalog:starter-agents, documentation:docs, policies:conventions, go:implementation-tests, harness-engineering:repo-health, structure:repo-health |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 2m 16s wall · 4m 40s compute |
| Cost | ~$1.55 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 74 in / 13.1k out |
Per-workstream usage
catalog:starter-agents— claude-sonnet-5-5- In: 22
- Out: 5.4k
- Cache read: 1.5M
- Cache create: 58.2k
- Cost: ~$0.59 (est.)
- Duration: 1m 23s
documentation:docs— claude-sonnet-5-5- In: 8
- Out: 1.4k
- Cache read: 399.4k
- Cache create: 15.1k
- Cost: ~$0.15 (est.)
- Duration: 35s
policies:conventions— claude-sonnet-5-5- In: 8
- Out: 1.1k
- Cache read: 353.4k
- Cache create: 16.2k
- Cost: ~$0.15 (est.)
- Duration: 33s
go:implementation-tests— claude-sonnet-5-5- In: 6
- Out: 738
- Cache read: 259.1k
- Cache create: 13.5k
- Cost: ~$0.11 (est.)
- Duration: 22s
harness-engineering:repo-health— claude-sonnet-5-5- In: 16
- Out: 2.9k
- Cache read: 842.6k
- Cache create: 32.3k
- Cost: ~$0.33 (est.)
- Duration: 1m 01s
structure:repo-health— claude-sonnet-5-5- In: 8
- Out: 1.1k
- Cache read: 367.7k
- Cache create: 14.3k
- Cost: ~$0.14 (est.)
- Duration: 31s
orchestrator-rollup— claude-sonnet-5-5- In: 6
- Out: 426
- Cache read: 294.5k
- Cache create: 3.1k
- Cost: ~$0.08 (est.)
- Duration: 13s
Summary
crships no reviewers: with no profileagent_sources, no repository.codereview/agents/and no--agents-dir,cr reviewstops with "no reviewer agents available". Everything a review checks comes from agent prompts someone has to write. This addsstarter-agents/, a general catalog to use as a profile agent source, and documents how to build on it.Agents (14):
required_on_match):general:correctness,general:repo-conventions(checks changes against the rules a repository writes inAGENTS.md,CLAUDE.md,CONTRIBUTING,ARCHITECTUREanddocs/, including nestedAGENTS.mdfiles above each changed path, and cites the document and section), anddocumentation:docs.tests:behavior,security:trust-boundaries,architecture:design,structure:repo-health,automation:ci-release,go:implementation-tests,rust:implementation-tests,tauri:config-ipc,macos:swift-appkit,frontend:correctness,frontend:accessibility.Every prompt shares one review bar: report only what the PR introduces or worsens, with a concrete consequence and the input or sequence that shows it, stated as confirmed or inferred, actionable from the changed code, and not already caught by a tool the repository runs. Each also has a "What not to report" list and a severity scale for its lane.
Docs:
starter-agents/README.mdcovers using the catalog as a profile source, extending it with an organization catalog and repository-local agents (including how a repository-local agent with the same ID replaces a starter agent), and turningAGENTS.mdrules into a repository-local conventions reviewer.README.md,docs/review-guidance.mdanddocs/development.mdpoint to it.This repository: the Rust, Tauri and macOS agents move from
.codereview/agents/into the catalog, since they never apply to this repository's own PRs. The remaining repository agents replacedocumentation:docs,structure:repo-health,automation:ci-releaseandgo:implementation-testsby ID when this repository is reviewed with the starter catalog as a profile source.Test:
internal/agents/starter_catalog_test.goloads the catalog with the strict profile-source parser, requires the three baseline agents to stayrequired_on_match, and fails whenstarter-agents/README.mddoes not list an agent (checked by removing one row from the table).Validation
Dry runs with the catalog passed through
--agents-dir, pinned with--review-base-sha/--review-head-shaand--without-discussion, nothing posted:ba163234). The starter reviewers that ran (general:correctness,documentation:docs,tests:behavior,architecture:design,go:implementation-tests) reported 4 of the 6 problems the first published review raised: the lossy-write guard failing open when the storage body is missing, the undocumentedstructured macrosrule, regex matching that only catches adjacent markup, and README text naming two constructs where the code refuses three. They also reported two the published review did not: the README adds--allow-lossyto thepage createflag table though onlypage editregisters it, and the refusal tests never check that no write reached the server.general:repo-conventionsreported nothing.general:correctnessreported that the checksum download sends anAuthorizationheader that urllib carries across the asset API's redirect to the storage host (not yet confirmed against a live run), andtests:behaviorreported untested fail-closed branches in the asset resolution.Type of Change
Checklist
make tidypassesmake lintpassesmake testpassesmake buildpassesRelated Issues
Proposal for giving every reviewer base-pinned guidance without per-prompt discovery: #682.
Model: Claude Opus 5.5 (1M context, xhigh effort) in Claude Code.