Background
Triage opened #3110 (closing #3106 — list_accounts handler) without me asking. CI failed on the storyboard idempotency_key lint, and I posted a comprehensive review comment with three concrete blockers (missing idempotency_key, cursor-codec duplication with #3109, bootstrap primitive drift from the seeded-storyboard precedent).
It's unclear whether triage:
- Reads PR comments and iterates.
- Watches its own PRs for CI failures and auto-iterates.
- Treats its first push as final and waits for human takeover.
Asks
1. Discoverability — how do humans know a PR is "owned" by triage?
The branch name pattern `claude/issue-NNNN-*` is one signal but not advertised. Add one of:
- A label (e.g. `claude-triaged`, `triage-owned`) auto-applied on creation.
- A line in the PR body identifying the owning agent and its iteration policy ("This PR is managed by triage. Comments tagged `@triage` will be picked up on the next pass.").
- A bot identity that's distinct from the human reviewer's identity (right now PRs appear from `@bokelley`'s account).
Issue `#3106` already carries the `claude-triaged` label — extend the same to PRs.
2. Iteration loop on review comments
If triage doesn't currently iterate on PR comments, document that in the PR body so reviewers know whether to (a) wait, (b) push fixes themselves, or (c) ping a specific channel. If it does iterate, document the trigger (slash command, mention, label change?) and the latency expectation.
If triage DOES auto-fix in response to CI failures, confirm and document. Right now I'd assume the bot pushes once and stops, which means human reviewers need to either fix or send back manually.
3. Pre-flight check parity with what reviewers run
The triage internal review on #3110 claimed code-reviewer + ad-tech-protocol-expert approval but missed the storyboard `idempotency_key` lint, which is a build-time check at `scripts/build-compliance.cjs:251`. Either:
- Triage's prep checklist should run `node scripts/build-compliance.cjs` before opening the PR (this would have caught the lint locally).
- Or triage should wait for CI to go green before declaring `ready for review` (currently shipped as DRAFT, which is correct, but still surprised the human reviewer who saw "approved" in the body).
Scope
This issue is about agent ergonomics, not blocking any PR. The pagination conformance series (#3095, #3100, #3109, #3110, #3111, #3112) keeps moving — I'll just fix #3110 directly this round. Filing this so the next round either (a) is clearer about who owns what, or (b) automates the iteration loop so humans only step in when actually needed.
Pointers
Background
Triage opened #3110 (closing #3106 — list_accounts handler) without me asking. CI failed on the storyboard idempotency_key lint, and I posted a comprehensive review comment with three concrete blockers (missing idempotency_key, cursor-codec duplication with #3109, bootstrap primitive drift from the seeded-storyboard precedent).
It's unclear whether triage:
Asks
1. Discoverability — how do humans know a PR is "owned" by triage?
The branch name pattern `claude/issue-NNNN-*` is one signal but not advertised. Add one of:
Issue `#3106` already carries the `claude-triaged` label — extend the same to PRs.
2. Iteration loop on review comments
If triage doesn't currently iterate on PR comments, document that in the PR body so reviewers know whether to (a) wait, (b) push fixes themselves, or (c) ping a specific channel. If it does iterate, document the trigger (slash command, mention, label change?) and the latency expectation.
If triage DOES auto-fix in response to CI failures, confirm and document. Right now I'd assume the bot pushes once and stops, which means human reviewers need to either fix or send back manually.
3. Pre-flight check parity with what reviewers run
The triage internal review on #3110 claimed code-reviewer + ad-tech-protocol-expert approval but missed the storyboard `idempotency_key` lint, which is a build-time check at `scripts/build-compliance.cjs:251`. Either:
Scope
This issue is about agent ergonomics, not blocking any PR. The pagination conformance series (#3095, #3100, #3109, #3110, #3111, #3112) keeps moving — I'll just fix #3110 directly this round. Filing this so the next round either (a) is clearer about who owns what, or (b) automates the iteration loop so humans only step in when actually needed.
Pointers