一键导入
planner-generate-phases
Generate high-level phases from project analysis (Pass 1 entry point)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate high-level phases from project analysis (Pass 1 entry point)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Analyze issue dependencies and produce a dispatch execution map for parallel orchestration
Execute recipe sessions batch-by-batch for triaged GitHub issues. Reads the triage-issues output manifest, processes each batch sequentially, and launches the appropriate recipe for each issue. Use when user says "process issues", "run issues", or "execute pipeline for issues".
Validate review-decisions audit findings with mandatory intent analysis and seven evidence-gathering rules. Adds docstring-as-contract recognition, deliberate-change detection, test-as-intent-signal, consumer-impact verification, architectural feasibility checks, behavioral simulation, and symmetry-as-design recognition to the standard validation workflow. Use when validating reports from audit-review-decisions specifically.
Generate YAML recipes for .autoskillit/recipes/. Use when user says "make script skill", "generate script", "script a workflow", "write a script", "create a script", "new recipe", "write a pipeline", or when loaded by other skills for script formatting.
Validate audit findings from audit-arch, audit-tests, or audit-cohesion against actual code, git history, and design intent using 9–10 parallel subagents. Removes contested findings, documents exceptions, adjusts severities. Use when user says "validate audit", "validate findings", "validate report", or "check audit results".
Validate audit findings from audit-arch, audit-tests, audit-cohesion, audit-feature-gates, audit-docs, or audit-review-decisions against actual code, git history, and design intent using 9–10 parallel subagents. Removes contested findings, documents exceptions, adjusts severities. Use when user says "validate audit", "validate findings", "validate report", or "check audit results".
| name | planner-generate-phases |
| categories | ["planner"] |
| description | Generate high-level phases from project analysis (Pass 1 entry point) |
| hooks | {"PreToolUse":[{"matcher":"*","hooks":[{"type":"command","command":"echo '[SKILL: planner-generate-phases] Generating phases...'","once":true}]}]} |
Pass 1 entry point. Read the analysis file (and optionally domain knowledge) and produce
phase definitions in a single session. The number of phases is determined entirely by the
task — each phase is an independently verifiable checkpoint. Write all phase results and
a fully-done phase_manifest.json in one shot.
planner-analyze (and optionally planner-extract-domain) have completedanalysis.json produced by planner-analyzedomain_knowledge.md produced by planner-extract-domainNEVER:
$(dirname $1)/phases/$(dirname $1) or the project's git-tracked source tree$(dirname $1) (e.g., ls $(dirname $1)/..){{AUTOSKILLIT_TEMP}} artifacts from other planner runs or pipeline steps$3 is empty or the file does not exist, STOP immediately and report failure. Do not attempt to infer the task from the codebase, GitHub issues, or any other source.ALWAYS:
$(dirname $1)/phases/{phase_id}_result.json for every phase$(dirname $1)/phases/phase_manifest.json with every item status=doneordering values starting at 1phase_manifest_path = <absolute path to phase_manifest.json>; also emit phase_count and phase_idsRead the task description from the file at $3. This is the user's statement of what
they want planned. Every generated phase MUST serve this task.
Do not generate phases for work not described in the task. If the task asks for specific
deliverables (e.g., "split research.yaml into 4 sub-recipes"), the phases should decompose
that work — not decompose the codebase into architectural layers.
Read analysis.json from argument $1. If $2 is provided and the file exists, read
domain_knowledge.md from $2. Use the domain vocabulary and patterns to inform phase naming
and scope.
Decompose the implementation work into phases. A phase is an independently verifiable checkpoint — a coherent set of features whose functionality can be fully tested once implemented. Draw phase boundaries wherever you can stop and validate that everything up to that point works.
Phases should be:
The number of phases is determined by the task:
Do NOT provide yourself with concrete domain examples of phase decomposition. Concrete examples anchor the decomposition pattern regardless of the actual task (pink elephant effect). Derive phase names and boundaries from the task description and codebase analysis.
For each phase, generate:
id: Sequential P{N} identifier (P1, P2, ...)name: Short, descriptive phase namegoal: One-sentence statement of what the phase achievesscope: Array of domain areas or component names coveredordering: Integer sequence position (1-based)relationship_notes: Description of dependencies on prior phases ("Foundation phase — no prior dependencies" for P1)assignments_preview: Array of 2–5 short strings naming likely assignments within this phaseFor each phase, write to $(dirname $1)/phases/{phase_id}_result.json:
{
"id": "P1",
"name": "<descriptive phase name derived from task>",
"goal": "<one-sentence statement of what this phase achieves>",
"scope": ["<component-a>", "<component-b>"],
"ordering": 1,
"relationship_notes": "Foundation phase — no prior dependencies",
"assignments_preview": ["<assignment-1>", "<assignment-2>", "<assignment-3>"]
}
The backend derives two additional fields at load time — do not write them:
phase_number (integer): derived from orderingname_slug (string): derived by slugifying name (e.g., "Component Setup" → "component-setup")Write $(dirname $1)/phases/phase_manifest.json. Set every item's status to
done (Pass 1 is coarse-grained enough to resolve in one shot; the elaborate loop exists
only as a fallback). Set result_path to the absolute path of the corresponding result file.
Manifest structure:
{
"pass_name": "phases",
"created_at": "<ISO8601 timestamp>",
"items": [
{
"id": "P1",
"name": "<phase name>",
"status": "done",
"result_path": "<absolute_path>/phases/P1_result.json",
"metadata": {"ordering": 1}
}
]
}
phase_manifest_path = <absolute path to phase_manifest.json>
phase_count = <N>
phase_ids = <comma-separated list of phase IDs, e.g. P1,P2,P3>