diff --git a/README.md b/README.md index e18e51a..4bc9530 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ To remove workflows this plugin installed into your target repo: - `gh aw remove ` for each installed workflow (deletes both the `.md` source and the compiled `.lock.yml`), then commit the deletion. - `gh secret delete CLAUDE_CODE_OAUTH_TOKEN` — or `ANTHROPIC_API_KEY`, whichever path you used — to unset the auth secret. -- For `agent-team` specifically, also delete the seven labels: `gh label delete agent-team` plus `gh label delete state:` for each of `plan-needed`, `impl-needed`, `review-needed`, `done`, `blocked`, and `in-progress`. +- For `agent-team` specifically, also delete the seven labels: `gh label delete agent-team` plus `gh label delete state:` for each of `plan-needed`, `impl-needed`, `review-needed`, `done`, and `blocked`, plus `gh label delete agent-team:reviewed`. Nothing else is persisted — the plugin writes only to your target repo (under user approval) and holds no local state outside Claude Code's own plugin directory. diff --git a/catalog/agent-team/README.md b/catalog/agent-team/README.md index 5490837..2c4b591 100644 --- a/catalog/agent-team/README.md +++ b/catalog/agent-team/README.md @@ -105,13 +105,18 @@ Then apply the OAuth token tweak to each `.lock.yml` per [`skills/install-workfl 2. Add the single label `agent-team`. 3. Watch the thread. Each role posts its contribution as a comment; the implementer opens a draft PR that closes the issue when merged. 4. Human override at any time: add `state:blocked` to halt, edit a comment to steer the next agent, or manually `gh workflow run` a specific role to retry a stuck stage. Manual dispatches must pass the required `workflow_dispatch` inputs, and the downstream workflow markdown must read them via `${{ github.event.inputs.* }}`. -5. **Retrying a blocked task**: clear `state:blocked`, then re-add `agent-team`. Spec-agent treats it as a fresh dispatch (because the state:* labels are gone and the spec markers are already satisfied — actually: to redo from scratch, also delete the prior spec comment). +5. **Retrying a blocked task**: depends on where the block occurred: + - **Re-run from spec** (fresh start): clear all `state:*` labels and `agent-team`, then re-add `agent-team`. To redo completely from scratch, also delete the prior spec comment. + - **Re-dispatch mid-pipeline** (e.g., after a `🛑 workflow_dispatch inputs were not propagated` error — this happens when a workflow was triggered manually without supplying inputs): clear `state:blocked`, then re-run the blocked workflow via the GitHub Actions UI ("Re-run jobs") or CLI, passing all required inputs explicitly: + - Planner: `gh workflow run planner-agent.lock.yml -f issue_number= -f iteration=` + - Implementer: `gh workflow run implementer-agent.lock.yml -f issue_number= -f iteration= [-f pr_number=]` + - Reviewer: `gh workflow run reviewer-agent.lock.yml -f pr_number= -f issue_number= -f iteration=` ## Limits and gotchas - **Concurrency**: each workflow uses `concurrency: group: agent-team-issue-${issue_number}` so only one role runs at a time per issue. - **Max iterations**: default 3 (reviewer kickback → implementer). The counter lives on the `iteration` input passed through the dispatch chain, bumped exclusively by the reviewer on kickback. -- **Input propagation**: planner / implementer / reviewer must fail loudly if required `workflow_dispatch` inputs are missing. Do not rely on label search or recent-activity inference as a fallback. +- **Input propagation**: planner / implementer / reviewer fail loudly with `🛑 agent-team: workflow_dispatch inputs were not propagated` when required inputs are missing or still contain unresolved `${{ github.event.inputs.* }}` literals. This is expected behavior, not a bug — it prevents silent failure from running with inferred context. Recovery: clear `state:blocked` and re-dispatch the blocked workflow with all required inputs explicitly (see "Retrying a blocked task" above). - **Non-UI only**: no screenshot capture. Reviewer validates via tests/CI status + reading the diff. - **Cost**: a single task can easily spend 4× the tokens of a monolithic workflow. Set `timeout-minutes` conservatively and monitor the first few runs. - **No auto-merge**: the reviewer approves but never merges. Humans merge.