* fix(#2390): phase.add title warning + auto-detect doc fix
phase.add now returns a `warning` field when a description reads as
goal-shaped (>80 chars and/or multi-sentence) rather than title-shaped,
instead of silently writing the whole paragraph verbatim as the
`### Phase N:` header. The CLI still creates the phase as-is (the
strict two-layer slash-vs-CLI interface is unchanged); the warning
just surfaces the gap.
Also clarifies six doc sites (command argument hints, workflow
detection steps, and how-to/reference docs) that described the
phase-number argument as "auto-detecting" the next unplanned phase --
that detection is an orchestrating-workflow/LLM step reading
ROADMAP.md (concretely: `query roadmap.analyze`'s `next_phase`
field), not a `gsd-tools.cjs` CLI feature.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore(#2390): regenerate fixtures + lint gate-prep
* fix(#2390): repair failing tests after gate verification
* chore(#2390): add changeset (#2425)
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Generate an AI-SPEC.md design contract for phases that involve building AI systems.
[phase number]
Read
Write
Bash
Glob
Grep
Agent
WebFetch
WebSearch
AskUserQuestion
mcp__context7__*
phase
Create an AI design contract (AI-SPEC.md) for a phase involving AI system development.
Orchestrates gsd-framework-selector → gsd-ai-researcher → gsd-domain-researcher → gsd-eval-planner.
Flow: Select Framework → Research Docs → Research Domain → Design Eval Strategy → Done
Phase number: $ARGUMENTS — optional; when omitted, the orchestrating workflow reads ROADMAP.md and selects the next unplanned phase. This is not a `gsd-tools.cjs` CLI feature — the CLI's phase-lookup primitives require an explicit phase number.
Execute end-to-end.
Preserve all workflow gates.