一键导入
dge-design
Design a structured demand from a raw request, including its gap register, requirements, and acceptance criteria for Delivery Graph Engineering.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Design a structured demand from a raw request, including its gap register, requirements, and acceptance criteria for Delivery Graph Engineering.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Capture reusable learning from completed Delivery Graph nodes, tracks, or demands.
Drive a raw demand all the way to done from a single command - design, plan, and evidence-gated execution - stopping only at two judgment gates and on genuine failure or ambiguity.
Drive the ready queue end to end - implement each ready node, gate it on evidence, and stop on the first failure.
Convert DGE requirements into tracks, dependency nodes, and validation contracts.
Independently verify a Delivery Graph node against its validation contract and block completion until evidence and verifier independence exist.
Execute one ready Delivery Graph node while preserving its validation contract and dependency boundaries.
| name | dge-design |
| description | Design a structured demand from a raw request, including its gap register, requirements, and acceptance criteria for Delivery Graph Engineering. |
| argument-hint | [raw demand, issue link, meeting note, or feature idea] |
Use this skill when starting a new piece of work. It is the brainstorm and gap-exposure step for Delivery Graph Engineering.
Turn a raw demand into testable requirements without designing the implementation. The output feeds /dge-plan-graph.
DEM-###, REQ-###, GAP-###.#$ARGUMENTS
If no demand is provided, ask the user what demand, problem, or request they want to shape.
Before writing anything, run the shared preflight (one callable place for every
dge-* skill and the /dge-deliver conductor). Design runs before dge init, so
skip the graph check:
dge preflight --no-graph || npx --no-install dge preflight --no-graph
If it exits non-zero, stop and tell the user to install the DGE CLI first — do not proceed:
DGE CLI not found. The
dgeCLI is a separate npm package from the/dge-*slash commands. If you installed the skills via the plugin marketplace, you still need the CLI — the marketplace ships prompts, not the binary. Install it in this project:npm install --save-dev github:rafaelolsr/delivery-graphThen re-run
/dge-design.
The dge CLI is the only writer of delivery-graph/graph.json. Never hand-write or
hand-edit graph.json. If the CLI is missing, the correct action is to install it, not to emulate it.
Record:
dge add-demand --summary "..." (or backfill later with dge edit-demand).summary field is where the one-liner lives, so the outcome does
not have to carry it.)Before writing any requirement, read the relevant parts of the existing codebase. Do not design against a blank slate.
grep/find/read; check delivery-graph/demands/ and requirements/ for overlap).GAP of type: scope.Default position: the simplest change that reuses existing code beats a new abstraction. If nothing exists to reuse, say so explicitly — that statement is the evidence you looked.
Past demands leave behind learnings — bugs, gotchas, conventions, and failed
approaches — under delivery-graph/learnings/. Query them before scoping so
this demand does not re-solve or re-break something already learned:
dge learnings --about "<a few keywords from this demand>" --json # or: npx dge learnings ...
dge learnings # list all when unsure
For each relevant learning: read the file it names, and either fold its guidance
into a requirement/constraint or record why it does not apply. This is the read
side of the compound loop that /dge-compound feeds — skipping it means the
toolset stops getting smarter with each demand. If there are no learnings yet,
say so; that statement is the evidence you looked.
Run a structured grill-me: a relentless but constructive interrogation that
exposes every unresolved decision before any requirement is written. This is the
step that turns a fuzzy ask into concrete, testable requirements — do not shortcut it.
Pick the branches relevant to this demand from the list below, then state the map to the user up front: "Here is what I want to pin down. I'll go branch by branch." As you work, announce which branch you're on so the user can see progress and steer.
Start with the most foundational branch (usually Problem — everything depends on it). Within a branch:
Challenge, as you walk, every: unclear problem · vague success criteria · missing
owner · hidden dependency · untestable requirement · scope creep · speculative
feature (actually asked for, or only imagined?) · premature abstraction or
robustness beyond the stated outcome · requirement with no traceable need · everything
defaulting to must when it is really should/could · contradiction · validation
ambiguity · unhandled edge/empty/error state.
Anything the user cannot resolve becomes a GAP (Step 4), not a silently-assumed answer.
Represent each unresolved issue as:
- id: GAP-001
type: validation
severity: blocker
question: "What evidence proves this requirement is complete?"
blocks: [REQ-001]
resolution: null
Before writing any requirement, replay the Confirmed decisions recap: list each locked-in decision from Step 3 back to the user and give them a last chance to correct a misread. Only then convert decisions into requirements — a requirement must trace to a locked decision, not to an assumed answer.
Each requirement must be testable.
Assign priority honestly: must only for what the stated outcome fails without. Push nice-to-haves to should/could, and record anything deliberately excluded as a wont priority or a demand non-goal. Every requirement must trace to a stated outcome; if it cannot, drop it or demote it.
- id: REQ-001
demand_id: DEM-001
statement: "..."
priority: should
acceptance:
- "..."
validation:
method: automated-test
required_evidence:
- "..."
Author the canonical store only through the dge CLI (see CLI contract below). The CLI
writes delivery-graph/graph.json and the demands/ and requirements/ markdown for you:
dge add-demand ... writes delivery-graph/demands/DEM-###.md and the graph entrydge add-requirement ... writes delivery-graph/requirements/REQ-###.md and the graph entrydge add-gap ... / dge resolve-gap ... record gaps in the graphDo not write graph.json yourself. The CLI owns its schema.
Return ready_for_graph: true only when:
summary exists and the outcome is at most 3 sentences (not a wall of text).must) and speculative scope is either justified or recorded as a non-goal / wont.If blocker gaps remain, stop and report them instead of invoking /dge-plan-graph.
Follow the shared output convention (see skills/README.md): lead the final reply
with a bold one-line synthesis — ready for /dge-plan-graph, or blocked on N
gaps — then the demand's progress indicator (see skills/README.md), then the
detail (requirements captured, gaps open), then a ## Next block:
/dge-plan-graph when ready, or the specific blocker gaps to resolve when not.
After a successful save, include the stable local viewer link
delivery-graph/view/index.html so the user can open the graph without running a
separate viewer command.
The DGE CLI is required (see Preflight) and is the only writer of the canonical store. Use
dge if it is on the PATH (the plugin ships it), otherwise npx dge:
dge add-demand --title "..." --source "..." --summary "one-line TL;DR" --outcome "..." # or: npx dge add-demand ...
dge edit-demand DEM-### --summary "..." # backfill the TL;DR on an existing demand
dge add-requirement ...
dge add-gap ...
dge resolve-gap ...
Never edit graph.json by hand. If the CLI is unavailable, stop and install it (Preflight).