chore(meta): retire obsolete team-test.md and update references

The tmux teammate-mode investigation is resolved (works on 2.1.148; the
'broken regression' was a teammateMode: in-process config issue). Per the
file's own cleanup note, delete it now that the test passes.

Update the two references:
- decisions/questions-process.md: replace the stale 'partially broken'
  pointer with the resolved status.
- whats-next/SKILL.md: the 'custom subagent_types lose SendMessage' caveat is
  fixed (all agents now carry SendMessage + Task tools), so reword and drop
  the dead team-test.md link.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-22 13:17:08 +02:00
co-authored by Claude Opus 4.7
parent 1391ffc58e
commit 8fabebe325
3 changed files with 4 additions and 90 deletions
+3 -1
View File
@@ -93,7 +93,9 @@ Wait for user confirmation before proceeding to Step 2.
Spawn one Si agent per ticket in the confirmed batch, running in parallel. Spawn one Si agent per ticket in the confirmed batch, running in parallel.
Use `general-purpose` subagent_type with Si's personality baked into the Use `general-purpose` subagent_type with Si's personality baked into the
prompt (custom subagent_types lose SendMessage — see team-test.md). prompt. (The `si` subagent_type now works directly too — all agent
definitions carry the team coordination tools, SendMessage + Task, as of the
agent-teams tooling fix; they load at lead startup.)
For each ticket, spawn: For each ticket, spawn:
+1 -1
View File
@@ -175,7 +175,7 @@ The findings file separates the agent's reasoning from its authority. Binary gat
**Related:** **Related:**
- `feedback_broken_tests_not_preexisting_shield.md` — pattern sprints may enable - `feedback_broken_tests_not_preexisting_shield.md` — pattern sprints may enable
- `team-test.md` — Claude Code harness test results (tmux teams partially broken v2.1.123) - tmux teammate mode: confirmed working on Claude Code 2.1.148 (the earlier "broken" status was a `teammateMode: in-process` config issue, not a regression)
- Epic #854 — pipeline discipline automation - Epic #854 — pipeline discipline automation
- D-166 — cascade phases - D-166 — cascade phases
-88
View File
@@ -1,88 +0,0 @@
# Team Tmux Pane Test
## Problem
`teammateMode: "tmux"` is broken in Claude Code v2.1.117-119. Agents spawn as
invisible background processes instead of getting their own tmux panes. This is
a regression — tmux panes worked correctly on this machine through Sprint 35
(see `~/.claude/teams/sprint-35-*/config.json` for proof: `backendType: "tmux"`
with real pane IDs).
## Relevant GitHub issues
- https://github.com/anthropics/claude-code/issues/51818 — teammate CLI crash on permission_response
- https://github.com/anthropics/claude-code/issues/52337 — subagent Ink rendering crash on Edit/Write
## Config (already set, do not change)
- `.claude/settings.json` has `"teammateMode": "tmux"` and `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`
- tmux is running, `$TMUX` is set, `TERM=tmux-256color`
## Version gate
**Always start by looking up the release notes** for any versions between the last
tested version and the current one. Check the GitHub releases page at
`https://github.com/anthropics/claude-code/releases` for fixes related to teams,
tmux, teammates, or the tracked issues below. If the release notes show no relevant
fixes, log the version as SKIPPED (no relevant fixes) and stop — do not run the
test procedure.
**Check `claude --version` first.** If the version appears in the "Tested versions"
log below, the bug was already confirmed broken on that release — do not re-test.
Only run the test procedure on a version not yet logged.
### Tested versions
| Version | Date | Result |
|---------|------|--------|
| 2.1.119 | 2026-04-25 | BROKEN — no tmux pane, no team config on disk |
| 2.1.120–122 | 2026-04-30 | SKIPPED — release notes show no teams/tmux/teammate fixes; #51818 and #52337 still open (dupes of #51855, unreleased) |
| 2.1.123 | 2026-04-30 | PARTIAL — tmux pane spawns, config on disk correct (backendType: tmux, paneId: %23). Custom subagent_type ("qatux") missing SendMessage — can receive but not send. General-purpose subagent_type has SendMessage — two-way comms work. BOTH types fail to process shutdown_request. TeamDelete reports success but does NOT kill the tmux pane — agent process keeps running, requires manual ctrl-c + exit. |
| 2.1.123 (workshop) | 2026-04-30 | UPDATE — full workshop run with 4 general-purpose agents. Two-way comms confirmed for all. shutdown_request processed successfully by all 4 agents (contradicts earlier single-agent test). TeamDelete cleaned up correctly. Workaround: use general-purpose subagent_type with personality baked into prompt instead of custom subagent_type. |
| 2.1.124–2.1.147 | 2026-05-22 | NOT SEPARATELY TESTED — relevant fixes in range: 2.1.133 (subagent SendMessage cwd restore + skill discovery), 2.1.139 (agent view research preview — unified session list), 2.1.144 (background subagent completion notifications), 2.1.145 (Agent Teams non-ASCII name header fix). Cluster of background-session fixes 2.1.140–2.1.143 signals a shift to an in-process/daemon background-agent model. Tested cumulatively at 2.1.148. |
| 2.1.148 | 2026-05-22 | NOT A BUG — root cause found. Agent spawned `backendType: "in-process"` because `.claude/settings.json` actually contains `"teammateMode": "in-process"`, NOT `"tmux"` as the "Config" section of this file wrongly claimed. The in-process backend behaved exactly as configured. All split-pane prerequisites ARE met: tmux 3.6a in PATH, running inside tmux (CC in pane %5, `$TMUX` set), `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`. Per official docs (code.claude.com/docs/en/agent-teams), `teammateMode` values are `auto` (panes if inside tmux, else in-process) / `tmux` (force panes) / `in-process` (force main terminal). Setting it to `"tmux"` or `"auto"` should produce split panes. Functional results in-process mode: two-way comms WORK with custom subagent_type "qatux" (it sent its message — improvement over 2.1.123 single-agent), shutdown_request processed cleanly, TeamDelete cleaned up correctly. **The "broken regression" premise of this file was a stale/incorrect config claim, not a Claude Code defect.** |
| 2.1.148 (auto re-test) | 2026-05-22 | INCONCLUSIVE (needs restart) — flipped `.claude/settings.json` to `"teammateMode": "auto"` mid-session and re-spawned. Agent STILL spawned in-process (pane count unchanged %0–%6, qatux `backendType=in-process`, lead `backendType` empty). Cause: `teammateMode` is read at session startup and cached — a live edit is not picked up by the running session. The new `"auto"` value is on disk. **Next step: restart Claude Code, then re-run the spawn test. With `auto` + inside tmux (CC was in pane %5) + tmux 3.6a in PATH, teammates should spawn in split panes.** If auto still fails post-restart, set `"tmux"` explicitly. |
| 2.1.148 (post-restart, auto) | 2026-05-22 | WORKS + ROOT CAUSE OF SUBAGENT GAP FOUND. After restart, `teammateMode: "auto"` + inside tmux spawned qatux in a real split pane (`backendType: "tmux"`, paneId `%7`). CONFIRMED the 2.1.123 finding: a custom `subagent_type` whose agent definition has a restricted `tools:` list does NOT get the team-coordination tools injected in pane mode — qatux had only Read/Edit/Write/Bash; SendMessage "exists but is not enabled"; TaskCreate/TaskUpdate/TaskList/Agent absent entirely. (In-process mode does inject SendMessage — backend-inconsistent, contradicts the docs which say coordination tools are always available.) Consequence: such a teammate can't message AND can't return a shutdown_response, so it orphans its pane on shutdown (requires manual `tmux kill-pane`). FIX: added `SendMessage` to the `tools:` frontmatter of all 21 agent definitions in `.claude/agents/`. Re-spawned qatux → SendMessage works AND clean shutdown works (pane self-closes, no orphan), picked up at spawn with NO session restart needed. **Net: the feature is fully functional on 2.1.148; the only real defect is that custom restricted-tool subagents need coordination tools listed explicitly to work as pane-mode teammates.** |
## Test procedure
1. Check version: `claude --version`
2. If the version is already in the "Tested versions" table above, **stop here** —
log nothing, do not spawn agents. Report that the version is unchanged.
3. Create a team and spawn one agent:
```
TeamCreate: team_name = "tmux-test"
Agent: name = "qatux", subagent_type = "qatux", model = "sonnet",
run_in_background = true,
prompt = "You are a test agent. Message the team lead: 'tmux pane test — I am alive.' Then stay idle."
```
4. Check: did a new tmux pane appear? Run `tmux list-panes -a` to verify.
5. Check: does `~/.claude/teams/tmux-test/config.json` exist and contain `backendType: "tmux"`?
6. Log the result in the "Tested versions" table above (version, date, BROKEN/FIXED + notes).
7. If BROKEN, clean up any leftover team state and stop. If FIXED, proceed to "Cleanup".
## Expected result (when fixed)
- A new tmux pane opens with the Qatux session visible
- Team config on disk shows `backendType: "tmux"` with a real pane ID
- Agent is reachable via SendMessage
## Actual result (v2.1.119)
- No tmux pane appears
- No team config directory created on disk
- Agent runs as invisible background process
## Context
This blocks the generation-cascade workshop (ticket #897, Sprint 38). The full
workshop has 3 participants (Gestalt, Tyre, Miri) + Qatux documenter, 3 rounds.
Team and tasks are already created — once tmux panes work again, spawn the
agents and go. See `docs/workshops/generation-cascade/BRIEF.md` for the full
workshop brief.
## Cleanup
Delete this file and `TeamDelete` the tmux-test team once the test passes.