Skip to content

feat(team-avatar): port the remaining workflows as 58 owned skills - #55

Closed
tmcfarlane wants to merge 5 commits into
feat/team-avatar-skillsfrom
feat/team-avatar-port
Closed

tmcfarlane wants to merge 5 commits into
feat/team-avatar-skillsfrom
feat/team-avatar-port

Conversation

@tmcfarlane

@tmcfarlane tmcfarlane commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Requested by Trent

Before: Team Avatar had 15 skills and left out most of pstack: the history and memory skills, the multi-model reviews and bakeoffs, PR babysitting and shipping, the autopilot and orchestration playbooks, the session hook, and model setup.

After: Every pstack skill and playbook has a Team Avatar skill and a character owner. That makes 58 skills across 9 characters. Suki is new, and she leads parallel squads and long autonomous runs. A session hook switches avatar mode on at startup, and avatar-setup picks a model per character.

Stacked on #54. Merge that one first.

How. team.json records each skill's owner and its upstream source. scripts/generate-team-avatar.mjs rebuilds the roster tables in avatar-mode, the plugin README, and every character file from it. The validator now also checks the registry and the generated tables, and it rejects upstream names. Ten writers ported the skills in parallel, one per character. Three independent reviewers then checked fidelity against upstream, Claude Code and Codex compatibility, and the seams between skills, and their findings are fixed. The bun PR watcher and orchestration store live in plugins/team-avatar/tools/ with their full test suite. NOTICE.md and licenses/ carry the upstream MIT credits.

Verification

Codex 0.159.0 loads all 58 skills, and $avatar-mode routes five sample requests to the right character, citing its route table:

Codex evidence

Claude Code validates and lists version 0.2.0 as enabled. The session hook injects avatar mode, and stays silent with session hook: off:

Claude Code evidence

The validator catches six kinds of injected defects. The tools suite passes 253 of 253, and its typecheck is clean:

Checks

End-to-end tests

The same 29 cases ran as real headless sessions in Claude Code (claude -p) and Codex (codex exec), each in a fresh throwaway repo, graded by the same deterministic checks. Final run: 29 of 29 on both. Full table, every reply, and the history of earlier passes are in docs/evidence/team-avatar-evals.

Summary

Both runtimes caught the planted SQL injection and the off-by-one in review:

Review replies

The first pass found one real gap. Claude Code routed to the right skill but did the work without loading it. avatar-mode now requires loading the routed skill first.

Notes for review

  • One upstream tools test raced under load in both copies. I widened its deadline from 0.25s to 1s in watch-pr/transport.test.ts.
  • This repo's own pre-commit guard rejects @ts-expect-error and empty catch blocks. The type-level refusal checks in watch-pr/types.compile.ts are now conditional types, and a positive control confirms they still fail on a valid shape. Best-effort cleanup in orch/store.ts uses a named handler.
  • Not verified: the Windows session-start.ps1.
  • Left out on purpose: GitHub Copilot and Pi runtime support, and the per-effort agent files. The Agent tool's effort parameter replaces them.

🤖 Generated with Claude Code

Every pstack skill and playbook that Team Avatar was missing now has a
Team Avatar skill and a character owner. Suki joins the roster for
parallel squads and long autonomous runs.

team.json records each skill's owner and upstream source. A generator
rebuilds the roster tables from it, and the validator checks the
registry, the generated tables, references, links, manifests, and house
style. The plugin also gains the session-start hook, the avatar-setup
model sheet, the bun PR and orchestration tools with their tests, and a
NOTICE with the upstream MIT licenses.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@tmcfarlane
tmcfarlane requested a review from bastien70 as a code owner October 18, 2026 16:35
@tmcfarlane tmcfarlane self-assigned this Oct 18, 2026
tmcfarlane and others added 4 commits October 18, 2026 10:56
The end-to-end tests showed Claude Code picking the right skill from the
route table and then working without loading it.

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

Adds a shared runner, fixture repos with planted defects, and the final
results: 29 of 29 on both runtimes, with every reply kept as evidence.

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

The benchmark showed the session hook let Claude Code skip every skill on
small tasks, and Codex stop to ask instead of shipping a perf fix.

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

Seven tasks with hidden graders, three setups, three runs each. Results
from two rounds and an honest read of them are in
docs/evidence/team-avatar-bench.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@tmcfarlane

Copy link
Copy Markdown
Owner Author

Superseded by #57, the Team Avatar v1.0.0 release, which carries every commit from this PR. The branch is kept.

@tmcfarlane tmcfarlane closed this Oct 20, 2026
@tmcfarlane
tmcfarlane deleted the feat/team-avatar-port branch October 20, 2026 11:24
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