| name | gsd-discuss-phase |
| description | Gather phase context through adaptive questioning before planning. |
Extract implementation decisions that downstream agents need — researcher and planner will use CONTEXT.md to know what to investigate and what choices are locked.
How it works:
- Load prior context (PROJECT.md, REQUIREMENTS.md, STATE.md, prior CONTEXT.md files)
- Scout codebase for reusable assets and patterns
- Analyze phase — skip gray areas already decided in prior phases
- Present remaining gray areas — user selects which to discuss
- Deep-dive each selected area until satisfied
- Create CONTEXT.md with decisions that guide research and planning
Output: {phase_num}-CONTEXT.md — decisions clear enough that downstream agents can act without asking the user again
<execution_context>
Workflow files are loaded on-demand in the section below — not upfront.
Do not pre-load any workflow files before reading the mode routing instructions.
</execution_context>
<runtime_note>
Copilot (VS Code): Use vscode_askquestions wherever this workflow calls question. They are equivalent — vscode_askquestions is the VS Code Copilot implementation of the same interactive question API.
</runtime_note>
Phase number: $ARGUMENTS (required)
Context files are resolved in-workflow using init phase-op and roadmap/state tool calls.
**Mode routing:**
```bash
_GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/gsd-core/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "/home/aming/.config/opencode/gsd-core/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="/home/aming/.config/opencode/gsd-core/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi
DISCUSS_MODE=$(gsd_run query config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
```
If --assumptions is in $ARGUMENTS:
Read and execute /home/aming/.config/opencode/gsd-core/workflows/list-phase-assumptions.md end-to-end.
Stop here.
Otherwise, if DISCUSS_MODE is "assumptions":
Read and execute /home/aming/.config/opencode/gsd-core/workflows/discuss-phase-assumptions.md end-to-end.
Otherwise ("discuss" / unset / any other value):
Read and execute /home/aming/.config/opencode/gsd-core/workflows/discuss-phase.md end-to-end.
MANDATORY: Read the appropriate workflow file BEFORE taking any action. The objective and success_criteria sections in this command file are summaries — the workflow file contains the complete step-by-step process with all required behaviors, config checks, and interaction patterns. Do not improvise from the summary.
Lazy loading: templates/context.md is loaded inside the write_context step of the active workflow. discuss-phase-power.md is loaded inside discuss-phase.md when --power is detected. Do not load either here.
<success_criteria>
- Prior context loaded and applied (no re-asking decided questions)
- Gray areas identified through intelligent analysis
- User chose which areas to discuss
- Each selected area explored until satisfied
- Scope creep redirected to deferred ideas
- CONTEXT.md captures decisions, not vague vision
- User knows next steps
</success_criteria>