/shape
Turn a raw idea into a context packet — the unit of specification that
/deliver consumes. Spec before code, always.
Contract
A packet is ready when all of these are true. How you get there is your
judgment; size the effort to the stakes — a one-file fix needs a paragraph,
an architecture choice needs the full treatment.
- Premise challenged. The request is a first-draft framing, not a locked
problem. Name the underlying user outcome before designing; the best path
may not be the feature asked for. Shaping the wrong problem well is the
failure this skill exists to prevent.
- Grounded in live repo evidence. You read the load-bearing source files,
tests, and ADRs yourself. Subagent summaries add coverage; they do not
replace direct reads of what the builder must understand.
- Learnings checked before structuring. Grep prior repo-technical lessons
before locking the shape:
rg -n --glob '*.md' '^(title|tags|applies_when):|<product-term>|<failure-mode-term>' docs/solutions.
Open likely matches and state applies / does-not-apply in the packet.
- Vision-aware when strategic. For product direction, positioning,
long-lived workflow, or project-identity choices, read root
VISION.md when
present. If the shape depends on a missing or stale north star, route to
/vision or carry an explicit waiver.
- Alternatives genuinely explored. Real alternatives fail differently —
include the boring/manual path and one that inverts a load-bearing
assumption. Same idea in three outfits is one option. To break out of that,
nous-creative-ideation is a routed library of named methods (TRIZ for
parameter conflicts, premortem-and-inversion, first-principles) that
generate options which actually fail differently. Kill the losers on
the record and recommend one; a menu is not a shape. For automation or
refactor-heavy ideas, apply harnesses/shared/references/delete-first.md
and the synced Ponytail skill (skills/.external/dietrich-ponytail/SKILL.md)
before choosing the build path; the lazy viable path must be a real
alternative, not a throwaway paragraph.
- Perceptual criteria prototyped. When acceptance is taste — design,
copy, feel, layout — prose alternatives are the wrong artifact; the
operator can't evaluate what they haven't seen. Route through
/design
prototype variations, let the operator react, then lock what the reaction
taught. When the operator can't articulate the want at all, hunt a
reference artifact instead — source code beats docs beats screenshots —
and anchor the packet to it (Repo Anchors carries it).
- Scope is fenced. Goal (outcome, not mechanism), explicit non-goals,
and invariants that must survive the change.
- Oracle is executable. "It should work" is not an oracle; "these
commands pass, this route returns X" is. If you can't write the oracle,
the goal isn't clear yet — go back. See
references/executable-oracles.md.
When you cannot define the measuring stick, delegating its INVENTION is a
legal oracle ("figure out how to measure X, then hit it") — and the
builder never grades its own work: acceptance is a fresh context pointed
at the real output, told to prove it fails
(harnesses/shared/references/prompting-frontier.md).
- Verification harness named. The packet states which live-verification
harness will prove the work (the repo's one-command evidence loop) — and
when none exists, the packet's first milestone is building it
(verification system first, shared AGENTS.md Layer 1), not the feature.
Load
harnesses/shared/references/verification-system-first.md for
evals, benchmarks, QA paths, performance claims, agent-behavior claims, or
any surface whose proof loop is not already obvious.
- Deliverable visible up front. Code, research, docs, or decision — a
reader should not have to reach the implementation sequence to find out.
- Executable by a stranger. The packet is consumed without your
context — by a remote lane, a different model, or you next month. Include
current-state excerpts where the code would surprise, one exemplar file
for conventions, commands you actually ran, and stop conditions: the
surprises that should halt execution and come back rather than be
improvised around.
- "Works" has product dimensions. For public API, CLI, UI, performance,
compatibility, migration, or operator-workflow packets, load
harnesses/shared/references/works-critique.md and include the likely
review focus.
- Loops cross the Mode A/Mode B boundary. For recurring or unattended
workflow ideas, load
harnesses/shared/references/loop-readiness.md and
shape a handoff instead of a Harness Kit scheduler.
- Premise source named. The packet cites the artifact that explains why
this shape exists (
Premise Source: sha256:<digest> <path-or-url>) or
carries an explicit waiver with residual risk. Voice/raw-transcript
premises take the metadata block from
references/voice-transcript-metadata.md; never store raw audio paths.
This is grader-enforced (see Verification).
- HTML plan authored. For non-trivial or contestable shapes, write the
plan directly as a
.html artifact from templates/html-plan.html,
publish it to the Sanctum shelf (artifact skill; slug = the Powder card
id), and attach the URL to the card (link or comment) so the plan is
durably ticket-coupled. Never auto-open it in a browser (operator ruling
2026-07-04: auto-opened planning artifacts are a distraction) — inspect
the rendered hierarchy yourself via the published page; the operator
opens it from Powder on his clock.
The hero is the complete work contract: target outcome,
chosen design, why it wins, proof surface, and stop conditions. Order the
body by decision volatility: lead with what the operator is most likely to
tweak — data model, public interfaces, UX flows — and bury the mechanical
work at the bottom. The plan doubles as an unknown detector; put the
contestable decisions where the reviewer's attention lands first. Below it,
include the support needed for a stranger to execute without chat context:
current state, change shape, repo anchors, alternatives and tradeoffs,
acceptance, verification, communication cadence, risks, and adversarial
review focus. Use layout as thinking: comparison tables, phase lanes, risk
grids, diagrams, callouts, and links to repo anchors. Generate diagram images
only for complex or contested plans where a labeled architecture / sequence /
system map carries information HTML, mermaid, or ASCII cannot; keep mermaid
for precise call-graphs (harnesses/shared/references/image-generation.md).
Prefer the Misty Step aesthetic kit when the artifact is visual and local
review can load it; keep any local CSS as thin plan-specific glue. This is not Markdown exported to
HTML; the HTML is the planning medium. Skip only for trivial shapes,
no-browser environments, or explicit operator waiver.
Interrogate before you design, and lock product direction before technical
design. For any substantial or contestable shape the default is a
grill-me-style interview: load
harnesses/shared/references/interrogate-first.md and walk the operator down
the decision tree one question at a time, each with your recommended answer and
what breaks if it's wrong, until the load-bearing product and architecture
choices are pinned. Explore the repo, vision, and commands to resolve what you
can; only the operator settles genuine product direction. The guard cuts both
ways: don't manufacture questions for a shape the evidence already locks — that
is railroading, not rigor.
Packet Skeleton
Sections carry weight or they don't appear. For substantial work, follow the
PRD shape in references/prd-ticket-quality.md; for CLI surfaces, include
the block from references/cli-design.md.
# Context Packet: <title>
## Goal — one sentence, outcome not mechanism
## Non-Goals — scope that stays out, even if tempting
## Constraints — invariants that must remain true
## Repo Anchors — the 3–10 files whose patterns must be followed
## Alternatives — what was considered, how each fails, verdicts
## Design — chosen shape, surfaces touched, data/control flow,
rejected alternatives and why, ADR decision if any
## Oracle — executable definition of done
## Premise Source — sha256 + artifact, or explicit waiver
## HTML Plan — Sanctum shelf URL attached to the Powder card, or explicit waiver
## Risks + Rollout — how it fails, how to undo it
When the oracle depends on an acceptance artifact (fixture, golden file,
contract, screenshot), pin it: sha256:<digest> <path>. If implementation
intentionally changes that artifact, the handoff carries a contract-change
acknowledgment. High-risk work (money/auth/migrations, expensive-to-detect
regressions) earns formal examples and a test-strength budget — note it in
the packet for /deliver and /qa rather than inflating the packet itself.
Delegation Judgment
Delegate on judgment per the shared Roster contract: native subagents by
default; add cross-model critics, roster providers, or sprite lanes
(/sprites) only when they answer a distinct question. See
harnesses/shared/AGENTS.md (Roster).
Local lane guidance: one lane to map repo constraints, one for prior art or
premise challenge; fresh-context critique of the draft packet when the
design is contestable.
Critique
Your own design read is not a review. When the design is contestable, hand
the draft packet — artifact only, not your reasoning trail — to adversarial
fresh-context critique, preferably a different model family, and ask for the
production failure that would embarrass us. Lens prompts live in
references/critique-personas.md. Skip for trivial shapes.
Gotchas
- Over-speccing HOW. Specify WHAT and WHY; let the builder own the how.
Detailed pseudocode cascades its own bugs into implementation.
- Speccing after building. That's documentation, not specification.
- Ready-but-vague. A packet is not ready while a load-bearing choice
still says "preferably" or "decide during implementation".
- 50 repo anchors. If everything is an anchor, nothing is.
- HTML as decoration. A plan page that is just prose in a browser missed
the point. Use spatial structure to show sequence, tradeoffs, risk, proof,
communication, and critic focus at a glance. A plan page that needs the
chat transcript to be understood is not ready for execution.
- Editing live shape docs without ripple check. Files marked
shaping: true feed other streams; trace consequences after editing.
Verification
For non-trivial packets, include the verification-system block from
harnesses/shared/references/verification-system-first.md: claim, falsifier,
driver, grader, evidence packet, cadence, and gaps/waiver.
Premise-source discipline is enforced by the Rust grader:
cargo run --locked -p harness-kit-checks -- premise-source validate <packet>
cargo run --locked -p harness-kit-checks -- premise-source self-test
HTML plan artifact:
cp skills/shape/templates/html-plan.html /tmp/<card-id>-plan.html
# fill it, then publish + attach (never `open` it):
python3 ~/Development/harness-kit/skills/artifact/scripts/artifact_create.py \
--title "<title>" --slug <card-id> --tag "Plan" --html-file /tmp/<card-id>-plan.html
# attach the printed URL to the Powder card (add_link MCP tool or a comment)
curl -s -o /dev/null -w '%{http_code}' <printed-url> # expect 200
Fill it as HTML, publish, and revise after reading the rendered page. Inspect
that the hero states the chosen design and proof path, the alternatives table
names tradeoffs, the verification section names exact commands/artifacts, and
the review section gives a useful artifact-only critic prompt. Do not auto-open
a browser; the shelf URL attached to the card is the deliverable. Keep source
links, commands, and oracles exact; use the rendered view to make the plan
clearer, not less precise.
1---2name: shape3description: Shape a raw idea into something buildable. Product + technical exploration. Spec, design, critique, plan. Output is a context packet. Use when: "shape this", "write a spec", "design this feature", "plan this", "spec out", "context packet", "technical design". Trigger: /shape, /spec, /plan, /cp.4---56# /shape78Turn a raw idea into a **context packet** — the unit of specification that9`/deliver` consumes. Spec before code, always.1011## Contract1213A packet is ready when all of these are true. How you get there is your14judgment; size the effort to the stakes — a one-file fix needs a paragraph,15an architecture choice needs the full treatment.1617- **Premise challenged.** The request is a first-draft framing, not a locked18 problem. Name the underlying user outcome before designing; the best path19 may not be the feature asked for. Shaping the wrong problem well is the20 failure this skill exists to prevent.21- **Grounded in live repo evidence.** You read the load-bearing source files,22 tests, and ADRs yourself. Subagent summaries add coverage; they do not23 replace direct reads of what the builder must understand.24- **Learnings checked before structuring.** Grep prior repo-technical lessons25 before locking the shape:26 `rg -n --glob '*.md' '^(title|tags|applies_when):|<product-term>|<failure-mode-term>' docs/solutions`.27 Open likely matches and state applies / does-not-apply in the packet.28- **Vision-aware when strategic.** For product direction, positioning,29 long-lived workflow, or project-identity choices, read root `VISION.md` when30 present. If the shape depends on a missing or stale north star, route to31 `/vision` or carry an explicit waiver.32- **Alternatives genuinely explored.** Real alternatives fail differently —33 include the boring/manual path and one that inverts a load-bearing34 assumption. Same idea in three outfits is one option. To break out of that,35 `nous-creative-ideation` is a routed library of named methods (TRIZ for36 parameter conflicts, premortem-and-inversion, first-principles) that37 generate options which actually fail differently. Kill the losers on38 the record and **recommend one**; a menu is not a shape. For automation or39 refactor-heavy ideas, apply `harnesses/shared/references/delete-first.md`40 and the synced Ponytail skill (`skills/.external/dietrich-ponytail/SKILL.md`)41 before choosing the build path; the lazy viable path must be a real42 alternative, not a throwaway paragraph.43- **Perceptual criteria prototyped.** When acceptance is taste — design,44 copy, feel, layout — prose alternatives are the wrong artifact; the45 operator can't evaluate what they haven't seen. Route through `/design`46 prototype variations, let the operator react, then lock what the reaction47 taught. When the operator can't articulate the want at all, hunt a48 reference artifact instead — source code beats docs beats screenshots —49 and anchor the packet to it (Repo Anchors carries it).50- **Scope is fenced.** Goal (outcome, not mechanism), explicit non-goals,51 and invariants that must survive the change.52- **Oracle is executable.** "It should work" is not an oracle; "these53 commands pass, this route returns X" is. If you can't write the oracle,54 the goal isn't clear yet — go back. See `references/executable-oracles.md`.55 When you cannot define the measuring stick, delegating its INVENTION is a56 legal oracle ("figure out how to measure X, then hit it") — and the57 builder never grades its own work: acceptance is a fresh context pointed58 at the real output, told to prove it fails59 (`harnesses/shared/references/prompting-frontier.md`).60- **Verification harness named.** The packet states which live-verification61 harness will prove the work (the repo's one-command evidence loop) — and62 when none exists, the packet's first milestone is building it63 (verification system first, shared AGENTS.md Layer 1), not the feature.64 Load `harnesses/shared/references/verification-system-first.md` for65 evals, benchmarks, QA paths, performance claims, agent-behavior claims, or66 any surface whose proof loop is not already obvious.67- **Deliverable visible up front.** Code, research, docs, or decision — a68 reader should not have to reach the implementation sequence to find out.69- **Executable by a stranger.** The packet is consumed without your70 context — by a remote lane, a different model, or you next month. Include71 current-state excerpts where the code would surprise, one exemplar file72 for conventions, commands you actually ran, and stop conditions: the73 surprises that should halt execution and come back rather than be74 improvised around.75- **"Works" has product dimensions.** For public API, CLI, UI, performance,76 compatibility, migration, or operator-workflow packets, load77 `harnesses/shared/references/works-critique.md` and include the likely78 review focus.79- **Loops cross the Mode A/Mode B boundary.** For recurring or unattended80 workflow ideas, load `harnesses/shared/references/loop-readiness.md` and81 shape a handoff instead of a Harness Kit scheduler.82- **Premise source named.** The packet cites the artifact that explains why83 this shape exists (`Premise Source: sha256:<digest> <path-or-url>`) or84 carries an explicit waiver with residual risk. Voice/raw-transcript85 premises take the metadata block from86 `references/voice-transcript-metadata.md`; never store raw audio paths.87 This is grader-enforced (see Verification).88- **HTML plan authored.** For non-trivial or contestable shapes, write the89 plan directly as a `.html` artifact from `templates/html-plan.html`,90 publish it to the Sanctum shelf (artifact skill; slug = the Powder card91 id), and attach the URL to the card (link or comment) so the plan is92 durably ticket-coupled. Never auto-open it in a browser (operator ruling93 2026-07-04: auto-opened planning artifacts are a distraction) — inspect94 the rendered hierarchy yourself via the published page; the operator95 opens it from Powder on his clock.96 The hero is the complete work contract: target outcome,97 chosen design, why it wins, proof surface, and stop conditions. Order the98 body by decision volatility: lead with what the operator is most likely to99 tweak — data model, public interfaces, UX flows — and bury the mechanical100 work at the bottom. The plan doubles as an unknown detector; put the101 contestable decisions where the reviewer's attention lands first. Below it,102 include the support needed for a stranger to execute without chat context:103 current state, change shape, repo anchors, alternatives and tradeoffs,104 acceptance, verification, communication cadence, risks, and adversarial105 review focus. Use layout as thinking: comparison tables, phase lanes, risk106 grids, diagrams, callouts, and links to repo anchors. Generate diagram images107 only for complex or contested plans where a labeled architecture / sequence /108 system map carries information HTML, mermaid, or ASCII cannot; keep mermaid109 for precise call-graphs (`harnesses/shared/references/image-generation.md`).110 Prefer the Misty Step aesthetic kit when the artifact is visual and local111 review can load it; keep any local CSS as thin plan-specific glue. This is not Markdown exported to112 HTML; the HTML is the planning medium. Skip only for trivial shapes,113 no-browser environments, or explicit operator waiver.114115Interrogate before you design, and lock product direction before technical116design. For any substantial or contestable shape the default is a117`grill-me`-style interview: load118`harnesses/shared/references/interrogate-first.md` and walk the operator down119the decision tree one question at a time, each with your recommended answer and120what breaks if it's wrong, until the load-bearing product and architecture121choices are pinned. Explore the repo, vision, and commands to resolve what you122can; only the operator settles genuine product direction. The guard cuts both123ways: don't manufacture questions for a shape the evidence already locks — that124is railroading, not rigor.125126## Packet Skeleton127128Sections carry weight or they don't appear. For substantial work, follow the129PRD shape in `references/prd-ticket-quality.md`; for CLI surfaces, include130the block from `references/cli-design.md`.131132```markdown133# Context Packet: <title>134135## Goal — one sentence, outcome not mechanism136## Non-Goals — scope that stays out, even if tempting137## Constraints — invariants that must remain true138## Repo Anchors — the 3–10 files whose patterns must be followed139## Alternatives — what was considered, how each fails, verdicts140## Design — chosen shape, surfaces touched, data/control flow,141 rejected alternatives and why, ADR decision if any142## Oracle — executable definition of done143## Premise Source — sha256 + artifact, or explicit waiver144## HTML Plan — Sanctum shelf URL attached to the Powder card, or explicit waiver145## Risks + Rollout — how it fails, how to undo it146```147148When the oracle depends on an acceptance artifact (fixture, golden file,149contract, screenshot), pin it: `sha256:<digest> <path>`. If implementation150intentionally changes that artifact, the handoff carries a contract-change151acknowledgment. High-risk work (money/auth/migrations, expensive-to-detect152regressions) earns formal examples and a test-strength budget — note it in153the packet for `/deliver` and `/qa` rather than inflating the packet itself.154155## Delegation Judgment156157Delegate on judgment per the shared Roster contract: native subagents by158default; add cross-model critics, roster providers, or sprite lanes159(`/sprites`) only when they answer a distinct question. See160`harnesses/shared/AGENTS.md` (Roster).161162Local lane guidance: one lane to map repo constraints, one for prior art or163premise challenge; fresh-context critique of the draft packet when the164design is contestable.165166## Critique167168Your own design read is not a review. When the design is contestable, hand169the draft packet — artifact only, not your reasoning trail — to adversarial170fresh-context critique, preferably a different model family, and ask for the171production failure that would embarrass us. Lens prompts live in172`references/critique-personas.md`. Skip for trivial shapes.173174## Gotchas175176- **Over-speccing HOW.** Specify WHAT and WHY; let the builder own the how.177 Detailed pseudocode cascades its own bugs into implementation.178- **Speccing after building.** That's documentation, not specification.179- **Ready-but-vague.** A packet is not ready while a load-bearing choice180 still says "preferably" or "decide during implementation".181- **50 repo anchors.** If everything is an anchor, nothing is.182- **HTML as decoration.** A plan page that is just prose in a browser missed183 the point. Use spatial structure to show sequence, tradeoffs, risk, proof,184 communication, and critic focus at a glance. A plan page that needs the185 chat transcript to be understood is not ready for execution.186- **Editing live shape docs without ripple check.** Files marked187 `shaping: true` feed other streams; trace consequences after editing.188189## Verification190191For non-trivial packets, include the verification-system block from192`harnesses/shared/references/verification-system-first.md`: claim, falsifier,193driver, grader, evidence packet, cadence, and gaps/waiver.194195Premise-source discipline is enforced by the Rust grader:196197```sh198cargo run --locked -p harness-kit-checks -- premise-source validate <packet>199cargo run --locked -p harness-kit-checks -- premise-source self-test200```201202HTML plan artifact:203204```sh205cp skills/shape/templates/html-plan.html /tmp/<card-id>-plan.html206# fill it, then publish + attach (never `open` it):207python3 ~/Development/harness-kit/skills/artifact/scripts/artifact_create.py \208 --title "<title>" --slug <card-id> --tag "Plan" --html-file /tmp/<card-id>-plan.html209# attach the printed URL to the Powder card (add_link MCP tool or a comment)210curl -s -o /dev/null -w '%{http_code}' <printed-url> # expect 200211```212213Fill it as HTML, publish, and revise after reading the rendered page. Inspect214that the hero states the chosen design and proof path, the alternatives table215names tradeoffs, the verification section names exact commands/artifacts, and216the review section gives a useful artifact-only critic prompt. Do not auto-open217a browser; the shelf URL attached to the card is the deliverable. Keep source218links, commands, and oracles exact; use the rendered view to make the plan219clearer, not less precise.