team-question
Decompose a feature description, ticket, or issue link into the QRSPI Question artifacts (task.md, questions.md). Trigger on "shape this idea", "decompose this task", or "/team-question".
Install
npx skills add https://github.com/bostonaholic/team/tree/main/skills/team-question
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install bostonaholic-team@llmmart
git clone https://github.com/bostonaholic/team.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole bostonaholic/team collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Before each dispatch or retry, read host dispatch and supply its resolved installed paths. Before artifact work, read artifact schema. Before handling external values, read external-data rules.
Team Question — Decompose the Task
Before finalizing prose you author, read the writing standards.
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 bydesign-authorand downstream phases that need intent. Never read byresearcherorfile-finder— they only see2-questions.md.2-questions.md— neutral research questions phrased without intent. The only fileresearcherandfile-finderever read.3-prd.md— written only when the request is vague, multi-story, cross-cutting, or replaces existing behavior (criteria in the## Conditional PRDsection ofskills/team/playbooks/question.md, with the template inskills/team/references/prd-template.md). Referenced from1-task.md. read downstream bydesign-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 the feature playbook for the schema andskills/team/references/multi-repo.mdfor 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 asticketIdon1-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 withgh 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,bodyand use the title plus body as the description. - Free text: use directly.
- Empty
- 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.
- If a ticket identifier is present:
- Create
docs/plans/<id>/if it does not exist. - Resume detection. If
docs/plans/<id>/1-task.mdalready exists, re-read it instead of overwriting. If2-questions.mdis missing, the questioner only writes2-questions.md. - Dispatch the
questioneragent with the full description and the target directorydocs/plans/<id>/. The agent writes1-task.mdand2-questions.md, plus3-prd.mdwhen the request meets the PRD criteria and4-repos.mdwhen it makes sure with the user that the topic spans multiple repos. - Stop once
1-task.mdand2-questions.mdexist on disk — do not continue to RESEARCH. (3-prd.mdor4-repos.mdcan 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.mdby hand before research begins. - You want to run multiple research passes against the same task without re-decomposing.
Report:
- Path to
1-task.mdand2-questions.md(and3-prd.md/4-repos.mdwhen 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>/"
Files (team)
-
agents
-
openai.yaml 197 B
interface: display_name: "Team Question" short_description: "Decompose a feature into task and questions" default_prompt: "Use $team-question to decompose a feature into task and questions."
-
-
SKILL.md 4.9 KB
--- name: team-question description: 'Decomposes a feature into task and question artifacts. Trigger on "decompose this task" or "/team-question".' effort: medium argument-hint: "<ticket id, issue URL, or task description>" --- Before each dispatch or retry, read [host dispatch](../team/references/15-host-dispatch.md) and supply its resolved installed paths. Before artifact work, read [artifact schema](../team/references/artifacts.md). Before handling external values, read [external-data rules](../team/references/external-data.md). # Team Question — Decompose the Task Before finalizing prose you author, read the [writing standards](../team/references/writing.md). 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 the `## Conditional PRD` section of `skills/team/playbooks/question.md`, with the template in `skills/team/references/prd-template.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 the [feature playbook](../team/playbooks/feature.md) for the schema and `skills/team/references/multi-repo.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 1. **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. 2. **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. 3. **Create `docs/plans/<id>/`** if it does not exist. 4. **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`. 5. 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. 6. **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>/`"**
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.