Team Question — Decompose the Task
Run the QUESTION phase only, then stop. The Question phase decomposes the
user's intent into the artifacts that the rest of the QRSPI pipeline
consumes:
1-task.md — the human's full intent. Read by design-author and
downstream phases that need intent. Never read by researcher or
file-finder — they only see 2-questions.md.
2-questions.md — neutral research questions phrased without intent. The
only file researcher and file-finder ever read.
3-prd.md — written
only when the request is vague, multi-story, cross-cutting, or replaces existing behavior
(criteria in skills/product-requirements-doc/SKILL.md, loaded
conditionally through skills/decomposing-intent/SKILL.md). Referenced
from 1-task.md. read downstream by design-author.
4-repos.md — written only when the topic spans more than one
repository. Lists each involved repo's slug, absolute path, and
role. Its presence switches the rest of the pipeline into multi-repo
mode (one worktree per repo, slice/step [repo: <slug>] annotations,
one PR per repo). See skills/qrspi-workflow/SKILL.md for the schema
and skills/decomposing-intent/SKILL.md for the detection rules.
These files live in docs/plans/<id>/ where <id> is either a
ticket-derived slug (ENG-1234-add-rate-limiting) or a date-derived slug
(2026-05-01-add-rate-limiting).
Input
$ARGUMENTS may be:
- A ticket identifier (e.g.
ENG-1234) — recorded as ticketId on
1-task.md's frontmatter. The orchestrator does not call any ticketing
system. The ID is stored for the user's reference.
- An issue URL (e.g.
https://github.com/org/repo/issues/42) — fetched
with gh issue view (or equivalent) to extract the title and body
before decomposition.
- Free-form text — treated directly as the feature/task description.
When $ARGUMENTS is empty, discover, do not demand: ground in repo
context before asking. Read recent git log activity and the repo's
README / CLAUDE.md to propose a likely topic, then use
AskUserQuestion with labeled options to fill any genuine gap in intent.
Never bare-stop with a plain "describe it" demand when context is already
available.
Execution
- Resolve the input to a description:
- Empty
$ARGUMENTS: ground in repo context, then ask only for genuine
gaps, per the "discover, don't demand" rule in ## Input.
- Ticket-only: ask the user for context, or use any tracker integration
they have configured to fetch the issue body.
- Issue URL: run
gh issue view <url> --json title,body and use the
title plus body as the description.
- Free text: use directly.
- Derive
<id>:
- If a ticket identifier is present:
<TICKET>-<kebab-topic> (e.g.,
ENG-1234-add-rate-limiting).
- Otherwise:
<YYYY-MM-DD>-<kebab-topic> (e.g.,
2026-05-01-add-rate-limiting).
- The
<kebab-topic> is a 2–4 word kebab-case slug derived from the
description.
- Create
docs/plans/<id>/ if it does not exist.
- Resume detection. If
docs/plans/<id>/1-task.md already exists,
re-read it instead of overwriting. If 2-questions.md is missing, the
questioner only writes 2-questions.md.
- Dispatch the
questioner agent with the full description and the
target directory docs/plans/<id>/. The agent writes 1-task.md and
2-questions.md, plus 3-prd.md when the request meets the PRD criteria
and 4-repos.md when it makes sure with the user that the topic spans
multiple repos.
- Stop once
1-task.md and 2-questions.md exist on disk — do not
continue to RESEARCH. (3-prd.md or 4-repos.md can also exist, neither
changes the stop condition.)
When to use
- The idea is vague and you want to see the questioner's framing before
committing to research.
- You want to review and edit
1-task.md / 2-questions.md by hand before
research begins.
- You want to run multiple research passes against the same task without
re-decomposing.
Report:
- Path to
1-task.md and 2-questions.md (and 3-prd.md / 4-repos.md when
written)
- Topic slug and
<id>
- Mode: single-repo or multi-repo (with the list of involved repo slugs
if multi-repo)
- Tell the user: "Next: run
/team-research docs/plans/<id>/"
1---2name: team-question3description: Decomposes a feature into task and question artifacts. Trigger on "shape this idea", "decompose this task", or "/team-question".4---56# Team Question — Decompose the Task78Run the QUESTION phase only, then stop. The Question phase decomposes the9user's intent into the artifacts that the rest of the QRSPI pipeline10consumes:1112- `1-task.md` — the human's full intent. Read by `design-author` and13 downstream phases that need intent. **Never** read by `researcher` or14 `file-finder` — they only see `2-questions.md`.15- `2-questions.md` — neutral research questions phrased without intent. The16 only file `researcher` and `file-finder` ever read.17- `3-prd.md` — written18 **only when the request is vague, multi-story, cross-cutting, or replaces existing behavior**19 (criteria in `skills/product-requirements-doc/SKILL.md`, loaded20 conditionally through `skills/decomposing-intent/SKILL.md`). Referenced21 from `1-task.md`. read downstream by `design-author`.22- `4-repos.md` — written **only when the topic spans more than one23 repository**. Lists each involved repo's slug, absolute path, and24 role. Its presence switches the rest of the pipeline into multi-repo25 mode (one worktree per repo, slice/step `[repo: <slug>]` annotations,26 one PR per repo). See `skills/qrspi-workflow/SKILL.md` for the schema27 and `skills/decomposing-intent/SKILL.md` for the detection rules.2829These files live in `docs/plans/<id>/` where `<id>` is either a30ticket-derived slug (`ENG-1234-add-rate-limiting`) or a date-derived slug31(`2026-05-01-add-rate-limiting`).3233## Input3435`$ARGUMENTS` may be:3637- A ticket identifier (e.g. `ENG-1234`) — recorded as `ticketId` on38 `1-task.md`'s frontmatter. The orchestrator does not call any ticketing39 system. The ID is stored for the user's reference.40- An issue URL (e.g. `https://github.com/org/repo/issues/42`) — fetched41 with `gh issue view` (or equivalent) to extract the title and body42 before decomposition.43- Free-form text — treated directly as the feature/task description.4445When `$ARGUMENTS` is empty, **discover, do not demand**: ground in repo46context before asking. Read recent `git log` activity and the repo's47`README` / `CLAUDE.md` to propose a likely topic, then use48`AskUserQuestion` with labeled options to fill any genuine gap in intent.49Never bare-stop with a plain "describe it" demand when context is already50available.5152## Execution53541. **Resolve the input** to a description:55 - Empty `$ARGUMENTS`: ground in repo context, then ask only for genuine56 gaps, per the **"discover, don't demand"** rule in `## Input`.57 - Ticket-only: ask the user for context, or use any tracker integration58 they have configured to fetch the issue body.59 - Issue URL: run `gh issue view <url> --json title,body` and use the60 title plus body as the description.61 - Free text: use directly.622. **Derive `<id>`**:63 - If a ticket identifier is present: `<TICKET>-<kebab-topic>` (e.g.,64 `ENG-1234-add-rate-limiting`).65 - Otherwise: `<YYYY-MM-DD>-<kebab-topic>` (e.g.,66 `2026-05-01-add-rate-limiting`).67 - The `<kebab-topic>` is a 2–4 word kebab-case slug derived from the68 description.693. **Create `docs/plans/<id>/`** if it does not exist.704. **Resume detection.** If `docs/plans/<id>/1-task.md` already exists,71 re-read it instead of overwriting. If `2-questions.md` is missing, the72 questioner only writes `2-questions.md`.735. Dispatch the `questioner` agent with the full description and the74 target directory `docs/plans/<id>/`. The agent writes `1-task.md` and75 `2-questions.md`, plus `3-prd.md` when the request meets the PRD criteria76 and `4-repos.md` when it makes sure with the user that the topic spans77 multiple repos.786. **Stop once `1-task.md` and `2-questions.md` exist on disk** — do not79 continue to RESEARCH. (`3-prd.md` or `4-repos.md` can also exist, neither80 changes the stop condition.)8182## When to use8384- The idea is vague and you want to see the questioner's framing before85 committing to research.86- You want to review and edit `1-task.md` / `2-questions.md` by hand before87 research begins.88- You want to run multiple research passes against the same task without89 re-decomposing.9091Report:9293- Path to `1-task.md` and `2-questions.md` (and `3-prd.md` / `4-repos.md` when94 written)95- Topic slug and `<id>`96- Mode: single-repo or multi-repo (with the list of involved repo slugs97 if multi-repo)98- Tell the user: **"Next: run `/team-research docs/plans/<id>/`"**