new-project
New Project
运行环境入口约定:本仓库的
.claude/skills以 Claude Code 为源,示例默认写/tunan:*。若同一 skill 在 Codex 中运行,所有面向 sponsor 的可复制入口在输出前改写为$tunan:*;Claude Code 中保持/tunan:*。
new-project is the greenfield bootstrap orchestrator. It establishes a project's durable intent and an initial roadmap, then optionally seeds the first milestone's work — sequencing tunan's existing skills (setup, research, brainstorm, map-codebase) into one guided flow so a project starts from a written baseline instead of an empty repo.
The durable artifact is one GitHub issue labeled tunan:project — the project's living document, one per repo, updated in place (like tunan:config / tunan:codebase-map), never a local file. It holds the project intent (problem, approach, users, key metrics, tracks) and the roadmap (an ordered list of milestones, each linking its tunan:req feature issues). This issue is the upstream grounding that ideate, brainstorm, plan, product-pulse, and dogfood read — it replaces the former STRATEGY.md local file.
Read references/project-issue-contract.md for the exact body shape and the gh read/write recipes. Read references/project-interview.md for the intent interview (problem/approach/persona/metrics/tracks) — its pushback rules are load-bearing; improvising from memory produces a passive transcription instead of a project doc.
Interaction Method
Default to the platform's blocking question tool: AskUserQuestion in Claude Code (call ToolSearch with select:AskUserQuestion first if its schema isn't loaded), request_user_input in Codex, ask_user in Gemini, ask_user in Pi (requires the pi-ask-user extension). Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors — not because a schema load is required. Never silently skip the question.
Ask one question at a time. Prefer free-form responses for the substantive intent sections (problem, approach, persona); reserve single-select for routing decisions.
Alignment protocol. When asking the sponsor to choose between options, follow the align protocol: offer at least 3 ranked options with the single best one pre-selected as the default — place it first and append (Recommended) to its label. Load the align skill for the full protocol. Never hand an open-ended choice back to the sponsor.