Skip to content

docs: add "How your Roxy's teams work" user guide#24

Merged
mabry1985 merged 3 commits into
mainfrom
docs/teams-guide
Jul 3, 2026
Merged

docs: add "How your Roxy's teams work" user guide#24
mabry1985 merged 3 commits into
mainfrom
docs/teams-guide

Conversation

@mabry1985

Copy link
Copy Markdown
Contributor

Summary

  • Adds docs/teams.md, a user-facing guide covering how a Roxy-style Portfolio Manager (this bundle's archetype) relates to the teams it spins up: the board-less PM tier vs. the per-repo project_board team tier (ADR 0055), how portfolio_spinup_team clones a team-template ({{REPO}}/{{TEAM_NAME}}/{{GATE}} sentinels) and team_archetypes, and the two-axis coder escalation — the model-tier ladder (fast → smart → reasoning, live today in project_board) vs. execution-grounded search (greedy → best-of-k → tree-search → fusion, gated on tests, landing as the standalone coder plugin per ADR 0064) — plus a worked spin-up + dispatch example.
  • Links the guide from README's "Spinning up teams" section.
  • Docs-only change; protoagent.bundle.yaml (what the gate validates) is untouched.

Test plan

  • Read README.md and protoagent.bundle.yaml to match tone/structure and confirm what the bundle ships.
  • Cross-checked terminology/behavior against portfolio-plugin (README, protoagent.plugin.yaml, examples/team-template) and projectBoard-plugin (README, loop.py) checkouts, and ADR 0055 / 0064 in protoAgent.
  • Ran the bundle-verify gate locally from a synced protoAgent checkout:
uv run --no-sync python scripts/verify_bundle.py /Users/kj/dev/pm-stack-wt-docs
...
installing bundle from /Users/kj/dev/pm-stack-wt-docs …
  installed portfolio@6ec783aee9 (ref v0.14.7)
  installed project_board@1e40213284 (ref v0.25.0)
  installed agent_browser@1bfd7f923e (ref v0.5.1)
  loaded portfolio: 15 tool(s)
  loaded project_board: 5 tool(s)
  loaded agent_browser: 17 tool(s)
  loaded delegates: 0 tool(s)
  view portfolio '/plugins/portfolio/dashboard' -> 200
  view project_board '/plugins/project_board/board' -> 200
  view agent_browser '/plugins/agent_browser/panel' -> 200
  data portfolio '/api/plugins/portfolio/overview' -> 200
  data portfolio '/api/plugins/portfolio/plan' -> 200
  data portfolio '/api/plugins/portfolio/archetypes' -> 200

OK — 3 member(s) installed+loaded, declared views serve 200, enabled data routes < 500.

Passes — expected, since this PR doesn't touch the manifest the gate validates.

🤖 Generated with Claude Code

mabry1985 and others added 3 commits July 3, 2026 11:23
Covers the manager/team tier split (ADR 0055), how portfolio_spinup_team
clones a team-template ({{REPO}}/{{TEAM_NAME}}/{{GATE}} sentinels) and
team_archetypes, and the two-axis coder escalation (model-tier ladder,
live today, vs execution-grounded search per ADR 0064, landing as the
coder plugin) with a worked spin-up + dispatch example. Linked from
README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- {{GATE}} sentinel: empty doesn't mean "no gate" — portfolio_spinup_team
  auto-detects one from the repo's build files (ruff for Python, docs:build
  for VitePress, npm test otherwise) and only leaves it truly empty when
  none of those match (_detect_gate).
- Archetypes preset repo/gate/template, not lifecycle. auto_dispose still
  defaults to True regardless of archetype, so the worked example's
  "standing" api-team/docs-team need auto_dispose=False explicitly, and
  portfolio_autodispose()'s behavior in that example follows from the flag,
  not from "being an archetype."
- portfolio_rollup() actually returns a JSON array of per-board
  {board, total, counts, blocked, critical_path} dicts (_rollup_one), not a
  dict keyed by team name with flat ready/in_progress fields — fixed the
  worked example's sample output to match.

Verified all three against the live portfolio-plugin/projectBoard-plugin
source (_spinup_team, _archetypes, _detect_gate, _rollup_one) rather than
against the prose. No behavior change — docs only; re-ran
scripts/verify_bundle.py, still green.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…25.0)

The escalation ladder section described a `fast → smart → reasoning [→ opus]`
tier ladder, both in prose and in the worked `coders:` YAML example (with
`fast: proto` annotated "first attempt"). The pinned project_board plugin
(v0.25.0, commit 1e40213284) has no `fast` tier: store.py's TIER_LADDER is
`["smart", "reasoning", "opus"]`, and the initial tier is chosen from a
feature's `difficulty` (DIFFICULTY_TIER), defaulting to `smart` — not a
config-declared "first attempt" rung. A `fast:` key in `coders:` is dead
configuration; loop.py never looks it up.

Corrected the prose and example to the real ladder (smart → reasoning →
opus) and explained that the entry tier follows from feature difficulty
rather than always starting at the bottom rung. Re-ran
scripts/verify_bundle.py from a synced protoAgent checkout — still green,
same pin set (project_board@1e40213284).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mabry1985 mabry1985 marked this pull request as ready for review July 3, 2026 19:04
@mabry1985 mabry1985 merged commit 87a1400 into main Jul 3, 2026
2 checks passed
@mabry1985 mabry1985 deleted the docs/teams-guide branch July 3, 2026 19:05
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