refactor: remove AgentRole, derive reviewer pool + completion proof from flags #1226

Closed
opened 2026-05-16 21:08:32 +00:00 by claude-desktop · 0 comments
Collaborator

As a developer, I want AgentRole and all role-keyed tables removed so agent behaviour derives from is_reviewer + penpot_mcp instead of a hardcoded enum.

Depends on: #1225 (is_reviewer migration).

Acceptance criteria

AgentRole deleted

  • AgentRole union type, AGENT_ROLES constant, isAgentRole(), baseSkillForRole() removed from webhook-routing.ts
  • All imports of these across the codebase deleted

Reviewer / design / code pools

  • isReviewerAgent(login) — looks up resolved agent, returns agent.is_reviewer === true
  • reviewerAgents() set — built from DB rows where is_reviewer = 1
  • designAgents() set — built from DB rows where penpot_mcp = 1
  • codeFlowAgents() set — built from DB rows where penpot_mcp = 0

Completion proof (completion-proof.ts)

  • COMPLETION_PROOF_RULES_BY_ROLE deleted
  • PROOF_ROLES_HANDLED_BY_B10 (role-keyed) deleted
  • proofCheckForAgentType rewritten using (penpot_mcp, is_reviewer):
    • false + falseshaChangedProof
    • false + truereviewerProof
    • true + falsedesignerProof
    • true + truedesignReviewerProof
  • Deprecated COMPLETION_PROOF_RULES and PROOF_RULES_HANDLED_BY_B10 type-keyed maps removed

Pipeline / board

  • ROLE_TO_STAGE in pipeline.ts replaced with flag-based derivation
  • AGENT_ROLE_RULES in board-actions.ts replaced with flag-based derivation
  • BAKED_DEFAULT_ROLES removed from pipeline.ts

Config parser / lookup

  • roleForType(), typeForRole(), resolveAgentByRole() removed from webhook-config-lookup.ts
  • RoutingInputType.role removed from webhook-routing.ts
  • webhook-config-parser.ts no longer parses role

Tests

  • All tests referencing AgentRole / isAgentRole / AGENT_ROLES updated
  • webhook-routing.test.ts pool membership tests updated to use flag-based fixtures
  • completion-proof tests updated

Out of scope

  • agentTypeRouting table removal (separate issue)
  • Flow schema regen (separate issue)

References

  • webhook-routing.ts:63 — AgentRole definition
  • completion-proof.ts:280 — COMPLETION_PROOF_RULES_BY_ROLE
  • post-ci.ts:519 — isReviewerAgent call
  • dispatch.ts:96 — codeFlowAgents call
As a developer, I want `AgentRole` and all role-keyed tables removed so agent behaviour derives from `is_reviewer` + `penpot_mcp` instead of a hardcoded enum. Depends on: #1225 (is_reviewer migration). ## Acceptance criteria ### AgentRole deleted - [ ] `AgentRole` union type, `AGENT_ROLES` constant, `isAgentRole()`, `baseSkillForRole()` removed from `webhook-routing.ts` - [ ] All imports of these across the codebase deleted ### Reviewer / design / code pools - [ ] `isReviewerAgent(login)` — looks up resolved agent, returns `agent.is_reviewer === true` - [ ] `reviewerAgents()` set — built from DB rows where `is_reviewer = 1` - [ ] `designAgents()` set — built from DB rows where `penpot_mcp = 1` - [ ] `codeFlowAgents()` set — built from DB rows where `penpot_mcp = 0` ### Completion proof (`completion-proof.ts`) - [ ] `COMPLETION_PROOF_RULES_BY_ROLE` deleted - [ ] `PROOF_ROLES_HANDLED_BY_B10` (role-keyed) deleted - [ ] `proofCheckForAgentType` rewritten using `(penpot_mcp, is_reviewer)`: - `false + false` → `shaChangedProof` - `false + true` → `reviewerProof` - `true + false` → `designerProof` - `true + true` → `designReviewerProof` - [ ] Deprecated `COMPLETION_PROOF_RULES` and `PROOF_RULES_HANDLED_BY_B10` type-keyed maps removed ### Pipeline / board - [ ] `ROLE_TO_STAGE` in `pipeline.ts` replaced with flag-based derivation - [ ] `AGENT_ROLE_RULES` in `board-actions.ts` replaced with flag-based derivation - [ ] `BAKED_DEFAULT_ROLES` removed from `pipeline.ts` ### Config parser / lookup - [ ] `roleForType()`, `typeForRole()`, `resolveAgentByRole()` removed from `webhook-config-lookup.ts` - [ ] `RoutingInputType.role` removed from `webhook-routing.ts` - [ ] `webhook-config-parser.ts` no longer parses `role` ### Tests - [ ] All tests referencing `AgentRole` / `isAgentRole` / `AGENT_ROLES` updated - [ ] `webhook-routing.test.ts` pool membership tests updated to use flag-based fixtures - [ ] `completion-proof` tests updated ## Out of scope - `agentTypeRouting` table removal (separate issue) - Flow schema regen (separate issue) ## References - `webhook-routing.ts:63` — AgentRole definition - `completion-proof.ts:280` — COMPLETION_PROOF_RULES_BY_ROLE - `post-ci.ts:519` — isReviewerAgent call - `dispatch.ts:96` — codeFlowAgents call
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/agent-hooks#1226
No description provided.