Refresh built-in personas: Solo, Kit, Scout + Kit & Scout team#499
Merged
Conversation
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>
5 tasks
This was referenced May 28, 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.
Summary
is_builtinflips to false; record is retained so any references keep working).is_active: truefor fresh installs. Existing user records preserve theiris_activevalue viamerge_personas.Kit & Scoutteam (idbuiltin-team:kit-scout). Mirrors the persona built-in pattern:merge_teamsadds missing built-ins, restores theis_builtinflag if hand-edited, demotes retired built-ins, and preserves user customizations to a built-in team's name/description/membership.validate_team_deletionblocks deletion of built-in teams.builtin:ralphandbuiltin:reviewerrecords get demoted to custom personas on first run. Stored Solo/Scout get theirsystem_promptrefreshed to the new content (content-drift detection inmerge_personas). Newbuiltin:kitand theKit & Scoutteam get added.Roles
Test plan
builtin:ralph/builtin:reviewerthat they get demoted and remain visible as custom personas🤖 Generated with Claude Code