Skip to content

Refresh built-in personas: Solo, Kit, Scout + Kit & Scout team#499

Merged
wesbillman merged 4 commits into
mainfrom
persona-review-builtins
May 7, 2026
Merged

Refresh built-in personas: Solo, Kit, Scout + Kit & Scout team#499
wesbillman merged 4 commits into
mainfrom
persona-review-builtins

Conversation

@wesbillman
Copy link
Copy Markdown
Collaborator

Summary

  • Retire Reviewer; rename Ralph → Kit. Existing user records get demoted to custom personas via a new merge step (is_builtin flips to false; record is retained so any references keep working).
  • Rewrite Solo, Kit, and Scout prompts based on what's been working in custom team personas (Brain/Pinky, Rick & Morty, Devin). New shape: sizing taxonomy (CHORE / SMALL / STANDARD / CONTINUATION), adversarial Codex review as the fresh-context second opinion, BLOCK/CHANGE/NIT severity, autonomy ladder (resolve via context → adversarial pass → research subagent → safest option), phase-boundary status updates, and a 9/10+ Quality Bar for Solo and Kit.
  • Built-in personas now default to is_active: true for fresh installs. Existing user records preserve their is_active value via merge_personas.
  • Add a built-in Kit & Scout team (id builtin-team:kit-scout). Mirrors the persona built-in pattern: merge_teams adds missing built-ins, restores the is_builtin flag if hand-edited, demotes retired built-ins, and preserves user customizations to a built-in team's name/description/membership. validate_team_deletion blocks deletion of built-in teams.
  • Migration semantics: existing builtin:ralph and builtin:reviewer records get demoted to custom personas on first run. Stored Solo/Scout get their system_prompt refreshed to the new content (content-drift detection in merge_personas). New builtin:kit and the Kit & Scout team get added.
  • 25 persona tests + 17 team tests pass; full Rust suite (221) green. Biome, typecheck, and JS unit tests green.

Roles

  • Solo — single-agent, autonomous. Adapts process to task size; uses Codex for adversarial plan and code review on STANDARD work.
  • Kit — orchestrator + builder + refactorer. Pairs with Scout for plan review and code review; falls back to Codex when Scout is absent.
  • Scout — read-only researcher + reviewer. Modes: PLAN REVIEW + RESEARCH, FULL REVIEW, VERIFY.

Test plan

  • Cargo tests: 221 passing (25 persona, 17 team)
  • Biome / typecheck / JS unit tests
  • Manual smoke on local dev build: Solo/Kit/Scout default-active, Kit & Scout team appears with both members, built-in team can't be deleted, Ralph and Reviewer demoted on existing stores
  • Reviewer: verify on a clean store that built-ins all start active and the team is present
  • Reviewer: verify on a store with stored builtin:ralph / builtin:reviewer that they get demoted and remain visible as custom personas

🤖 Generated with Claude Code

wesbillman and others added 4 commits May 7, 2026 08:52
Drops the Reviewer entry from BUILT_IN_PERSONAS along with its
fixtures in Rust unit tests, the e2e mock bridge, and the
agents.spec e2e tests (now exercising builtin:scout instead).

Adds a merge step that demotes any stored persona still flagged
as built-in but no longer in BUILT_IN_PERSONAS — flips is_builtin
to false rather than deleting, so existing managed-agent and team
references keep working and the user can remove it from the
catalog like any custom persona.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the orchestrator-style Solo prompt with a single-agent
workflow distilled from the patterns that work in custom team
personas (Brain, Rick & Morty, Devin):

- Sizing taxonomy (CHORE / SMALL / STANDARD / CONTINUATION)
  with a "pick the smaller one" tiebreaker.
- Standard pipeline: research, plan, adversarial plan review,
  build, validate, self-review, adversarial code review, BLOCK/
  CHANGE/NIT classification, fix-and-re-review with a 2-cycle cap.
- Codex CLI as the recommended fresh-context reviewer with a
  fallback to a subagent review when Codex is unavailable.
- Worktree discipline with resumption-check before creating new
  worktrees.
- Subagent guidance: when they help, when they don't.
- Autonomy ladder: read more context → adversarial pass →
  research subagent → pick safest and document, with explicit
  rules for when to surface to the user.
- Phase-boundary status updates so the user can follow STANDARD
  work without Solo blocking on approval.

Existing users with a stale Solo prompt in personas.json are
auto-restored to the new prompt by merge_personas's content
diff check.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…team

- Rename builtin:ralph → builtin:kit. Avatar bytes unchanged
  (RALPH_AVATAR → KIT_AVATAR, RALPH_AVATAR_DATA_URI →
  KIT_AVATAR_DATA_URI). Toolkit-themed name pool.
- New Kit prompt: orchestrator + builder + refactorer that pairs
  with Scout for plan review and code review, falls back to Codex
  when Scout is unavailable.
- New Scout prompt: read-only researcher + reviewer with explicit
  PLAN REVIEW + RESEARCH / FULL REVIEW / VERIFY modes; runs Codex
  as the adversarial second opinion.
- Both share Solo's autonomy ladder (resolve via context →
  adversarial pass → research subagent → safest option) and
  phase-boundary status updates for STANDARD work.
- Upgrade Solo's Quality Bar to the same 9/10+ first-pass standard
  used by Kit. There is no separate refactoring pass.
- Built-in personas now default to is_active=true. Existing user
  records preserve their is_active state via merge_personas; only
  fresh installs and newly-added built-ins are affected.
- Existing builtin:ralph records get demoted to custom personas
  by the migration shipped earlier.
- Update mock e2e bridge, JS unit tests, and Rust unit tests.
- Bump personas.rs file-size override to 900 (built-in prompts
  are inherently large constants).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors the persona built-in pattern for teams:

- Add `is_builtin: bool` (with `#[serde(default)]`) to TeamRecord
  and isBuiltin to AgentTeam on the frontend.
- Introduce BUILT_IN_TEAMS in teams.rs with one entry: Kit & Scout
  (id `builtin-team:kit-scout`, members builtin:kit + builtin:scout).
- merge_teams: adds missing built-ins, restores the is_builtin flag
  on canonical built-in ids if it was flipped, demotes stale
  built-ins to custom teams (preserves user customizations to
  built-in teams' name/description/membership).
- load_teams now applies merge_teams and persists if changed,
  matching load_personas.
- validate_team_deletion blocks deletion of built-in teams (parallel
  to validate_persona_deletion); wired into delete_team command.
- sort_teams puts built-ins first, then alphabetical by name.
- e2eBridge mock honors is_builtin and rejects deletion of
  built-in teams.
- Bump teams.rs file-size override to 580.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@wesbillman wesbillman enabled auto-merge (squash) May 7, 2026 18:21
@wesbillman wesbillman merged commit 27bcd45 into main May 7, 2026
23 of 24 checks passed
@wesbillman wesbillman deleted the persona-review-builtins branch May 7, 2026 18:22
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.

1 participant