design
Produce design.md and tasks.yaml from discovery. Use when designing a feature, drafting an approach, or breaking work into tasks.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Produce design.md and tasks.yaml from discovery. Use when designing a feature, drafting an approach, or breaking work into tasks.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Explore the codebase and write a discovery brief. Use when discovering scope, surveying a codebase, or starting a feature.
QA passed — merge branch to main, move ticket to Done, delete branch. Use after QA sign-off on a completed feature.
Run one fully-autonomous development iteration. Picks a ticket (from --focus or backlog via ideator), then runs the `orchestrator autopilot <slug>` workflow subcommand. This skill should be used when the user says 'autopilot', 'autonomous', 'self-improve'.
Create commits in logical groups. This skill should be used when the user says 'commit-group', 'group commits', 'organize commits', or when there are multiple unstaged changes that should be organized into atomic commits.
Complete feature — verify, signoff, archive. Runs only the complete phase of the orchestrate workflow. This skill should be used when the user says 'complete feature', 'finish feature', 'merge to main'.
Fetch curated, agent-optimized library documentation via Context Hub (chub). Use when implementing features that use external libraries, when Context7 returns noisy/incomplete docs, when you need language-specific or version-specific API docs, or when the user says "chub", "context hub", "get docs for X". Prefer this over Context7 for libraries in chub's registry — curated docs have less noise and better code examples.
| name | design |
| description | Produce design.md and tasks.yaml from discovery. Use when designing a feature, drafting an approach, or breaking work into tasks. |
| user-invocable | true |
| extends | git+git@github.com:ugudlado/prompt-packs.git@302b87dcc7c8b6a83d249194f3e47e98d3214794#architect |
Intent: Generate design approaches, select one, then write all phase artifacts (design.md, tasks.yaml) in a single architect pass. Show artifacts to user for review on interactive schemas (feature/bugfix); autopilot runs straight through.
discovery_result — handle from the explore/diagnose step.discovery.md at spec/changes/<slug>/discovery.md — the discovery brief this step
reads for constraints, integration points, and recommended approach.$WORKTREE_ARTIFACT_DIR/$CHANGE_ID/ticket-context.md
(spec/changes/<slug>/ticket-context.md) when present — written by
load-ticket-context. Source of truth for scope and ACs.updated_artifact_set — list of artifact files generated this pass.design_direction — name of the selected design approach.complexity — complexity rating of the selected approach (XS/S/M/L/XL).design.md at spec/changes/<slug>/design.md
($WORKTREE_ARTIFACT_DIR/$CHANGE_ID/design.md).tasks.yaml at spec/changes/<slug>/tasks.yaml
($WORKTREE_ARTIFACT_DIR/$CHANGE_ID/tasks.yaml).tdd_required — Every implementation task must have a preceding test task.Before executing the instructions below, emit an APPROACH block — this step writes multi-file artifacts, so it MUST state its approach first:
APPROACH:
files: <paths that will be created or modified>
approach: <one sentence describing the mechanism, not the goal>
not_doing: <what's deliberately out of scope>
Read the discovery brief at $WORKFLOW_STATE_DIR/$CHANGE_ID/discovery.md for constraints, integration points, open questions, and recommended approach.
Generate 2-3 design approaches with trade-offs:
Select an approach using the auto-selection heuristic (always applied — no interactive pause here): a. Map complexity: XS=1, S=2, M=3, L=4, XL=5. b. Select the lowest numeric complexity. c. On ties: prefer higher module reuse count. d. On further ties: select alphabetically by name. e. Document criteria, values, and selection.
Record the chosen direction and rationale in discovery.md's "Key Decisions" section per the Discovery Brief Format Contract in skills/explore/SKILL.md.
For each output file (design.md, tasks.yaml) — in dependency order:
refresh_artifacts: true → regenerate.For each file needing generation: a. Read the template:
skills/design/reference/design-format.md.skills/design/reference/tasks-format.md.
c. Generate using available context (discovery brief, design direction, change description).
d. Write to $WORKTREE_ARTIFACT_DIR/$CHANGE_ID/.Required sections (degradation floor — even without reading the format contract, produce these exact sections/fields so a skipped Read yields the right structure with thinner content, never an invented format):
feature-id, linear-ticket) →
Context → Goals / Non-Goals → Approaches Considered (≥2 + Selected Approach) →
High-Level Design (Architecture Overview, Key Abstractions) → Low-Level Design
(Components, Data Flow, State Management, Error Handling) → Constraints →
Trade-offs → Acceptance Criteria (each AC-N with [traces: UC-N]) →
Decisions → Open Questions.version: 1, tasks: [...]. Per task, required fields:
id (T-<N>/fix-<N>), title, files, verify; optional: depends_on,
test_scenarios, why, change, status.Generate tasks.yaml:
$WORKTREE_ARTIFACT_DIR/$CHANGE_ID/ticket-context.md /
spec/changes/<slug>/ticket-context.md when present.)skills/design/reference/tasks-format.md).verify command MUST exit 0 at commit time.
Use the target runner's pending-test convention — pytest:
@pytest.mark.xfail(strict=False); Bun: test.todo(...) (no expect
calls, no imports of not-yet-existing symbols); Vitest/Jest: it.todo.
The paired GREEN task flips the pending tests to real assertions. Check
the repo's runner before writing the RED task. Missing this forced
design-review retries on BKG-423, BKG-549, and BKG-575.
Return COMPLETION (driver calls orchestrator done).
The COMPLETION outputs: block MUST carry all five declared outputs:
design.md and tasks.yaml — path-named artifacts; the value is the
relative path the step wrote (e.g. spec/changes/$CHANGE_ID/tasks.yaml).updated_artifact_set — the list of artifact files generated this pass.design_direction — the name of the selected design approach.complexity — the complexity rating of the selected approach (XS/S/M/L/XL).
Omitting any of these makes orchestrator done reject the step with
missing_outputs (exit 3).COMPLETION:
status: completed
outputs:
design.md: spec/changes/<change_id>/design.md
tasks.yaml: spec/changes/<change_id>/tasks.yaml
updated_artifact_set: [design.md, tasks.yaml]
design_direction: "<selected approach name>"
complexity: <XS|S|M|L|XL>
schema is autopilot: skip this pause and return STATUS:
completed immediately — an autonomous run has no human to answer the prompt.
Otherwise (feature/bugfix):
skills/design/reference/tasks-format.md.spec/changes/archive/*/state.yaml) and confirm the new path is matched before committing the artifact. Otherwise downstream consumers (telemetry, /learn) silently skip the new producer.change: field with the specific mechanism: which function to edit, what the edit is, and which file:line region it targets. ORC-76 achieved 0 retries across 25 tasks with full change: coverage — omitting it forces the developer agent to infer scope from test_scenarios alone, which increases retry risk.cd /abs/path && prefix. The developer agent runs verify commands from $REPO_ROOT. Hardcoded paths break worktrees and other machines.model: in tasks.yaml — it is an internal dispatch field, not part of the task contract. The step contract owns the model; do not set it per-task.change: field an explicit instruction to mark the tests with @pytest.mark.xfail(strict=False). Without this annotation, the developer agent hits a contract contradiction: the verify command must exit 0 before commit, but RED tests are designed to fail. The xfail marker makes verify pass while the test is in expected-failure state; the xfail-cleanup-is-part-of-tdd-task rule ensures markers are removed at the phase gate. ORC-118: both implement attempts abandoned when this was missing.verify commands can be satisfied using only the files in that task's files list plus files in its depends_on chain. A verify command that imports or calls a file not covered by the task's file scope will block the developer agent: implement forbids touching unlisted files, so a failing import makes the verify exit non-zero and the task cannot be committed. ORC-118 T-2 was abandoned because its verify ran pytest tests/test_parse_completion.py which imported orchestrator_next/scripts/workflow/parse-completion.py — a file the task neither listed nor could touch.verify commands to the files changed by this feature, not the full test suite, unless the baseline test suite is known-clean. Before writing a phase-gate task with pytest <full_suite_dir>, run the suite and confirm it is green at HEAD. If pre-existing failures exist, narrow the verify command to the feature's targeted test file (e.g., pytest orchestrator_next/tests/test_<feature_module>.py -v). A phase-gate task with an unsatisfiable verify command blocks implement and forces a phase-review failure — the same outcome as no gate, but with two wasted implement spawns. ORC-119: T-3 required pytest orchestrator_next/tests/ -q green but 10 pre-existing failures existed; 2 implement abandons followed.Before returning COMPLETION, confirm: