with one click
plan
// Enter Hypo-Workflow planning mode when the user wants to design milestones before execution starts.
// Enter Hypo-Workflow planning mode when the user wants to design milestones before execution starts.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | plan |
| description | Enter Hypo-Workflow planning mode when the user wants to design milestones before execution starts. |
📌 输出语言规则: 读取 config.yaml → output.language
Use this skill for the full P1-P4 planning flow.
Before P1 Discover, run or confirm P0 Configure for a new Cycle unless the current Cycle already has a configure decision. P0 Configure runs after cycle new and before P1 Discover; it asks about automation, Subagent authorization, acceptance mode, PR/MR remote write confirmation, full regression, analysis boundaries, and worker separation. Users may reuse prior settings, resolved in the order cycle_explicit -> previous_cycle_snapshot -> project_config -> global_config -> built_in_default, and the reuse must leave an auditable note or .plan-state/p0-configure.yaml.
Without --batch, preserve the existing single-feature P1-P4 flow. The ordinary /hw:plan command still runs one Discover interview, one Decompose checkpoint, one Generate phase, and one Confirm gate.
Progressive Discover is enabled by default as a structure for P1. Start with the big questions first:
Before P1 starts, run or explicitly reuse the Cycle-level P0 Configure pre-discover stage. P0 Configure runs after cycle new and before P1 Discover; it asks about automation, Subagent authorization, acceptance mode, PR/MR remote write policy, full regression, analysis boundaries, and worker separation. Reuse must record its source in this order: cycle_explicit, previous_cycle_snapshot, project_config, global_config, built_in_default.
When a project has not yet declared execution.worker_separation.mode, Discover should also ask whether the project wants off, recommended, or strict implement/test/audit separation and persist that decision during Generate.
If degraded mode is selected for worker separation, it requires explicit user confirmation and must record the non-delegation rationale, missing roles, degraded reason, validation owner, and downstream acceptance impact.
P1 Discover has a mandatory execution subworker authorization gate before decomposition. Apply it even when the project already declares execution.worker_separation.mode=recommended or strict.
/hw:start and /hw:resume or execution/start-resume roles, ask whether the user authorizes execution subworkers for /hw:start and /hw:resume; if authorized, choose recommended or strictexecution.worker_separation.mode=offsubcodex or subclaude, then choose recommended or strictrecommended or strict, or explicit offThe mode still governs implement/test/audit separation: recommended separates implement and test when possible, while strict requires implement/test/audit to be distinct.
For Codex only: do not treat missing authorization as recommended, and do not silently downgrade to off. recommended and strict require either explicit execution subworker authorization or an explicit blocking gate that prevents /hw:start and /hw:resume until authorization is granted; off requires explicit user-confirmed fast single-agent downgrade. This Codex authorization gate does not apply to Claude Code or OpenCode.
Plan-time Subagents, reviewers, challengers, and validators have the same lifecycle contract as execution workers:
requested, started, completed|failed|blocked, and closed|close_failedtest, implement, or audit worker unless a new authorization and scope explicitly assigns that roleP1 must not enter P2 until the Codex authorization gate has one explicit outcome:
recommendedstrictoffIf the user has completed the normal requirement interview but this authorization decision is still missing, stay in P1 and ask only this gate question next. Do not generate milestones, prompts, or architecture artifacts before the gate is resolved.
The verification answer must be captured as a 真实测试方法 / real test method contract: exact command or scenario, observable pass/fail signal, independent validator, and whether audit must reject pseudo tests. Example: for a Heaticy-style agent-service project, the real method may be "use NapCat to simulate the main account sending a message to the agent"; if the test worker only runs unit mocks or a fake message path, the audit worker must reject it.
Then continue through assumption statement, ambiguity resolution, tradeoff review, and validation criteria as needed. Keep this structure strong, but do not turn it into a rigid questionnaire.
Test Profiles sit on top of presets. Keep preset for step order, but collect category-specific validation policy through execution.test_profiles or inferred Discover context.
For testable delivery, planning must design a closed-loop verification path and independent validation ownership before decomposition. Do not accept open-loop plans that only describe code-writing or "run something later" behavior.
P3 Generate must always assign subworker tasks in the generated prompt whenever execution.worker_separation.mode is recommended or strict, or when the feature is non-trivial enough to need independent implementation and validation. This assignment is a prompt contract, not optional runtime improvisation:
Subworker Assignment Plan section in every generated implementation prompttest, implement, and audit, with each role's scope, forbidden overlap, expected evidence, and handoff artifact pathtest to the real test method contract collected in P1, including command/scenario, pass/fail signal, and pseudo-test rejection ruletest owns red-test/reproduction/test fixture/assertion/snapshot edits and that implement must not create, edit, or rewrite those test assetsimplement must not spawn, impersonate, or satisfy test or audit; only the main agent orchestrates worker creation and lifecycleaudit worker to inspect final diff, test evidence, worker identity separation, and acceptance risks; review_code is the review step/artifact stage, not a worker roleSubworker Assignment Plan, but mark it blocked_until_authorized and write a start/resume gate; /hw:start must Ask for authorization before role-sensitive work instead of deleting the subworker assignmentUse /hw:plan --batch only when the user wants to plan multiple Features in one conversation and create a Feature Queue.
Feature DAG concepts belong only to long-running, batch, multi-Feature, AFK, or HITL coordination. Ordinary single-feature /hw:plan must stay simple and should not require or display Feature DAG fields.
Use /hw:plan --insert <natural language> to edit an existing Feature Queue. Convert the natural-language request to a structured queue operation first, show the queue diff, then wait for explicit confirmation before writing .pipeline/feature-queue.yaml.
.pipeline/ already exists, treat planning as revise-or-append, not necessarily greenfieldplan.mode=interactive (default)
plan.interaction_depth and convert it to the minimum question rounds:
low -> 2 roundsmedium -> 3 roundshigh -> 5 roundsplan.interactive.min_rounds is present, use it as an additional floorplan.interactive.require_explicit_confirm is missing, treat it as trueplan.mode=auto
automation.gates.planning=auto; the default confirm gate remains a hard stop even in auto plan mode/hw:plan --batch changes the planning target from one Feature to a Feature Queue.
Batch behavior:
.pipeline/feature-queue.yaml after the user confirms the queue.batch.decompose_mode from project config > global config > default upfront.batch.decompose_mode=upfront, decompose every Feature into initial Milestones immediately.batch.decompose_mode=just_in_time, create queue entries first and defer Milestone decomposition until each Feature becomes current.plan.mode=auto and config allows unattended planning.depends_on, blocked_by, execution_hint, handoff_hint, and ready/blocked status. Do not create Milestone-level DAG scheduling.Batch artifacts:
.pipeline/feature-queue.yaml.pipeline/metrics.yaml shallow initialization when missing.plan-state/batch-discover.yaml.plan-state/batch-decompose.yaml.plan-state/batch-architecture.md/hw:plan --insert is a queue editing surface, not a new planning cycle.
Supported natural-language intents:
gate: confirmdecompose_mode for queued FeaturesSafety rules:
.pipeline/feature-queue.yaml until the user confirms the diff.pipeline/log.yamlInteractive planning is a hard conversational gate, not a suggestion.
❓ 最少提问轮数:
interaction_depth: low -> 至少 2 轮提问interaction_depth: medium -> 至少 3 轮提问(默认)interaction_depth: high -> 至少 5 轮提问❌ 绝对禁止:
✅ 必须做到:
🚨 P1 -> P2 的唯一过渡条件: 用户明确表示「够了」「开始吧」「可以了」等结束信号。用户只是回答问题、补充信息、或说「确认一下」时,继续 P1 追问,不得进入 P2。
Codex execution subworker authorization is also part of the P1 -> P2 gate. If the current platform is Codex and /hw:start + /hw:resume execution subworker authorization has not been explicitly authorized, explicitly blocked, or explicitly downgraded to fastest single-agent off, P1 is not complete even if the user says “可以了”. Ask the authorization gate before P2.
When --context is present, injected context can sharpen the first questions but must not skip the required interaction rounds.
The plan-tool-required built-in rule is active for Plan Mode unless disabled in .pipeline/rules.yaml.
todowrite for the visible planning state and native question / Ask for every interactive hard gate.~/.hypo-workflow/config.yaml if present.plan.mode and plan.interaction_depth from .pipeline/config.yaml when present.--context <sources> when present. Split comma-separated values and allow only audit, patches, deferred, debug, and explore:E001 style exploration context refs.--batch and --insert when present. Without --batch or --insert, preserve the existing single-feature P1-P4 flow.--insert is present, read .pipeline/feature-queue.yaml, convert the user request to a structured queue operation, show the queue diff, wait for confirmation, then apply and log the queue edit.--context flag is given, read cycle.yaml and use cycle.context_sources when present.plan.mode > global plan.default_mode > interactive.plan.interaction_depth, then apply plan.interactive.min_rounds as a floor./hw:start and /hw:resume or execution/start-resume rolesauthorized recommended, authorized strict, not authorized block start/resume, or not authorized explicit fastest single-agent offsubcodex or subclaude; no separate authorization gate is required--batch is present, collect multiple Feature candidates, priorities, gates, dependencies, acceptance boundaries, category, and verification requirements before leaving Discover--batch and batch.decompose_mode=upfront, decompose all Features; when just_in_time, create Feature scaffolds only.pipeline/ artifacts and architecture baselineSubworker Assignment Plan inside each prompt before implementation steps, assigning at minimum:
test: owns write_tests and review_tests; independently validates the planned real test method, failure evidence, final test run, and pseudo-test rejection ruleimplement: owns implementation edits within the milestone scopeaudit: reviews final diff, evidence quality, worker identity separation, and acceptance riskstest and implement workers are authorized or assigned and never satisfying any of the three worker roles itself/hw:start and /hw:resume, roles, and worker-separation modeexecution.worker_separation.mode=off and record the user's explicit downgrade confirmation plus single-agent rationaleSubworker Assignment Plan, mark it blocked_until_authorized, and write a start-blocking authorization gate so /hw:start and /hw:resume Ask or stop before role-sensitive worksubcodex or subclaude--batch, generate Feature Queue, Markdown table, Mermaid graph, and batch architecture notescurrent.phase to the matching planning phase during each stage.plan/PLAN-SKILL.md — detailed P1-P4 planning systemreferences/commands-spec.md — command routing semanticsreferences/config-spec.md — plan-mode fallback rulesSKILL.md — overall pipeline contextWhen a request is investigative, root-cause-oriented, metric-oriented, or repository/system analysis, classify it with workflow_kind: analysis and choose analysis_kind: root_cause | metric | repo_system.
Analysis planning should treat one Milestone as one investigation question. The Milestone may contain multiple hypotheses and experiments, and a disproved hypothesis is progress rather than failure.