Skip to content

Rewrite the packaged personas, and make the lead an overseer - #81

Merged
TiantianFlow merged 2 commits into
mainfrom
claude/project-thread-ntld6s
Oct 23, 2026
Merged

TiantianFlow merged 2 commits into
mainfrom
claude/project-thread-ntld6s

Conversation

@TiantianFlow

@TiantianFlow TiantianFlow commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Closes #80.

What changed

All eight packaged personas in src/foil/defaults/personas/ are rewritten and much longer (about 60 to 100 lines each, up from about 10). Each says who the seat is, what it owns, what it does not own, its rules, how it works, what it hands back, how it sounds, what done well looks like, and its traps.

Lead. The lead persona is now an overseer with an explicit decision method: frame the question and criteria before answers arrive, commission independent proposals, weigh evidence over confidence, settle conflicts with a task rather than a vote or an untested hybrid, choose (or choose "not yet"), record what it gave up, and hold the decision unless new evidence arrives. It also covers briefs, reading results, a two-round retry limit, and when to ask the human.

Workers. Each worker persona now ends with a result shape the lead can weigh (options, recommendation, evidence, confidence, what was not checked). Their one-line descriptions are unchanged; the lead's description changed, so the demos and tests that quote it are updated. Personas still contain no Foil mechanics (the existing test enforces this); those stay in the skills.

Verified

  • uv run --frozen --extra dev pytest -m "not e2e_live" --deselect tests/test_view_browser.py: 566 passed, on this branch's head.
  • pytest tests/e2e (fake harness): 39 passed, 6 skipped (live tier).
  • ruff check .: clean.
  • An independent review (consistency with the lead and worker skills and the requirements, privacy, publish safety) found two issues, both fixed: the verifier no longer checks out a commit in a shared checkout, and the lead's "no shared undecided question" rule now exempts independent proposals.

Not verified

  • tests/test_view_browser.py: not run locally (the sandbox's Chromium does not match Playwright's version). CI runs it.
  • No live fleet run with the new personas.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CD864r5cxkYPNAx1TCWTnb

The lead persona now frames each decision, asks seats for independent
proposals, weighs their evidence, settles conflicts with a task rather
than a vote, and records what it chose and why. The other personas say
who the seat is, what it owns and does not own, its rules, how it works,
what it hands back, how it sounds, and its traps.

Closes #80.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CD864r5cxkYPNAx1TCWTnb
@TiantianFlow TiantianFlow self-assigned this Oct 23, 2026
@TiantianFlow
TiantianFlow merged commit 5124002 into main Oct 23, 2026
6 checks passed
@TiantianFlow
TiantianFlow deleted the claude/project-thread-ntld6s branch October 23, 2026 01:56
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.

Enrich the role descriptions

2 participants