Shape
An opinionated Claude operating system for PM-led engineering. Planning, enrichment, delegated execution, staged review, ship decisions, durable handoffs.
npx -y skills add dbc-oduffy/coordinator-claude --skill shapeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Converge with the PM on the SHAPE of a problem (the PRD half) before any solutioning. Strategic, not tactical. Exit gate altitude-routes to plan/roadmap-planning/goal-setting based on work horizon.
SKILL.md
9.5 KB, as published. Nobody here has run it
Shape
Converge with the PM on what the problem actually is before the EM goes solo on how to solve it. Plans fuse a PM-owned PRD half (the problem, what "solved" means) with an EM-owned SDD half (architecture, fix-locus, sequencing); the pipeline has rigor for the SDD half and almost none for the PRD half. /shape is that missing front-half: a short, collaborative problem-convergence beat whose only exit is a ratified problem-set that altitude-routes to the horizon-appropriate downstream ceremony (coordinator:plan, coordinator:roadmap-planning, or coordinator:goal-setting).
/shape is a strategic ceremony, not a tactical clarification round. It operates at the altitude of product intent, scope boundaries, and success criteria — the questions only the PM can resolve. Tactical uncertainties (naming, file structure, which test framework, commit shape, refactor mechanics) are EM remit and do NOT belong in a /shape exchange, no matter how genuinely unsure the EM is — resolving them is the EM's job (global CLAUDE.md § PM Altitude).
Announce at start: "Using /shape to converge on the problem before we plan a solution."
When NOT to invoke
- Trivial work (single-file change, obvious scope) → just do it.
- PM doesn't know what to build / needs approaches explored →
coordinator:brainstorming. The discriminating test: if the PM HAS a problem and wants confirmation you understood it (vs. not knowing what to build at all) →coordinator:shape, notcoordinator:brainstorming. - Problem already converged (a prior
/shape, an existing approved spec, a known next-step on a live workstream) → straight to the appropriate downstream skill (see § Transition).
/shape and coordinator:brainstorming are siblings, not twins: brainstorming turns vague intent into a design spec (a solution artifact in docs/specs/); /shape converges on the problem (a problem-set in docs/problems/) and defers solutioning entirely. Both chain into a downstream planning ceremony.
This gate is about finishing what you started. If the problem was already converged (prior /shape, existing spec, known workstream next-step), skip /shape entirely and go straight to the appropriate downstream skill. But once /shape starts, see it through.
</HARD-GATE>
Process (lightweight — this is NOT brainstorming's full design dialogue)
- Restate the problem(s) as received, in the PM's vocabulary, falsifiably. Not "I understand" — the actual problem, stated so the PM can catch a misread.
- Surface your single biggest uncertainty per the forced-articulation contract below. This is the load-bearing step — do it honestly or the ceremony is theatre.
- PM corrects/confirms. Iterate until convergence. The goal is a shared mental model; the written problem-set is its residue, not its substitute.
- If the PM has a proposed solution-shape, reflect that back too and flag where you'd push back — but do NOT design. Solutioning is
coordinator:plan's job. - On convergence, scaffold the problem-set artifact (below) via
coordinator-doc-new, fill its body, setestimated_horizon, and ratify with the PM, then confirm the horizon and chain into the appropriate downstream ceremony (see § Transition).
Forced-articulation contract (defeats confidence-coupled-with-helpfulness)
A yes/no "do I have the shape? ✓" is a banned response shape — EM confidence is coupled with helpfulness, so it self-reports green every time and reveals nothing (the same failure mode that made plan-coverage-checker no-opt-out). Step 2 must instead produce the thing that reveals a misunderstanding:
- (a) The single least-certain item must be the scope boundary whose wrong guess would cost the most rework. Phrase it as "name the boundary that, if guessed wrong, invalidates the most of the plan" — NOT "name something I'm unsure about." A trivially-chosen item ("I'm slightly unsure whether to put X in a helper or inline") is explicitly non-responsive. <!-- code-reviewer F4: aligned phrasing to match plan/SKILL.md canonical wording (third-person "guessed", "plan" not "work") -->
- (b) State the probability-weighted consequence. "If I'm wrong about X, then Y and Z are rework." A low-stakes selection self-evidently fails this test — the PM can see at a glance whether the stated consequence is credible.
- (c) The surfaced uncertainty must be a PM-altitude question — product intent, scope boundary, or success criteria. Tactical/EM-decided uncertainties (naming, test framework, commit shape, file structure) are disqualified as off-altitude — not merely low-stakes — regardless of how unsure you are, per
global CLAUDE.md § PM Altitude. Resolving them is your job; surfacing them is noise. - Also flag any intent you inferred that the PM did not state — inferred scope, inferred priority, inferred constraint.
This does not make the mechanism un-gameable in absolute terms (no self-report is), but it raises the cost of the dodge above the cost of honest articulation — the right bar for an offer-shaped mechanism, per eager-agent-calibration.md § offer-shape.
The problem-set artifact
Scaffold via: coordinator-doc-new --type problem-set --title "<problem title>" — emits docs/problems/YYYY-MM-DD-<slug>.md with status: draft and the canonical section skeleton. Tiny by design — a bulleted problem list, not a design doc. The scaffolder creates docs/problems/ if absent.
Fill the skeleton and ratify:
- List problems under
## Problems(numbered, NOT prioritized — noP<n>prefix; plain enumeration only, since these are unordered problem statements). - List explicit non-goals under
## Out of scope (architectural reasons)with hard architectural reasons (not "later"). - On PM convergence, flip
status: draft → ratified, fillratified_by,ratified_date, andestimated_horizonin the frontmatter, and stamp the> Ratified by PM <name> <date>blockquote.
Integrity marker: status: ratified plus the > Ratified by PM … blockquote are what make this a real PM oracle rather than EM self-talk. A problem-set without ratification is status: draft and does NOT count as an oracle. Plans link it via the problem_set: frontmatter key.
Transition
Once the PM ratifies the problem-set, the altitude-router selects the downstream ceremony based on the work's horizon. The horizon is detect-then-confirm: surface your horizon read to the PM at ratification and let them confirm before chaining. Never pick a rung silently.
Horizon routing:
estimated_horizon | Work shape | Downstream ceremony |
|---|---|---|
session | One or two sessions of work | coordinator:plan — the ratified problem-set becomes the plan's coverage oracle (plan-coverage-checker consumes it). |
week | Roughly a week, multi-session but bounded | coordinator:roadmap-planning — the problem-set seeds a roadmap with sprint-sized stubs. |
initiative | Weeks-to-quarters, multi-goal scope | coordinator:goal-setting — the problem-set seeds an OKR-shaped goal artifact. When the vision decomposes into multiple goal-slices, /shape may fan out 1→N spinoff-goal stubs (deferred-baton fan-out) rather than chaining into a single goal-setting ceremony. |
Precedence: A PM axiom or directive to use a specific downstream skill, and an architectural-tier flag from the forced-articulation contract that resolves the horizon unambiguously, take precedence over the detect-then-confirm router. The router is the DEFAULT exit for ambiguous or undirected convergence.
Ambiguous horizon: If the horizon is genuinely unclear after the convergence exchange, ask explicitly: "Does this feel like a session, a week, or an initiative?" Do not silently pick.
Ceremony placement: /shape is the third vertex beside coordinator:brainstorming (vague what) and straight-to-the-downstream-ceremony (converged shape — altitude-router selects the rung), per ceremony-calibration.md. <!-- Review: code-reviewer F1 — reworded from "straight-to-coordinator:plan" to altitude-neutral phrasing; plan is one rung of the router, not the implied default exit --> <!-- code-reviewer F2: dropped dangling § anchor (vague-vs-concrete framing section does not exist in ceremony-calibration.md); keeping file reference, dropping dead section cite -->
Gives 0 of the 12 instructions most roadmap strategy skills give
Counted across 591 of the 672 authors here whose files we hold, read 2026-08-06
- read product marketing context before asking questionsin 21 of 591, across 10 files
- base price on perceived value, not costin 15 of 591, across 4 files
- compact after finalizing a planin 14 of 591, across 9 files
- differentiate tiers using features, limits, or supportin 14 of 591, across 3 files
- use Van Westendorp to find acceptable price rangein 13 of 591, across 2 files
- use MaxDiff to identify highly valued featuresin 13 of 591, across 2 files
- map topics to buyer journey stagesin 12 of 591, across 6 files
- Extract domain capabilities and classify subdomainsin 11 of 591, across 1 file
- Define bounded contexts around consistency and ownershipin 11 of 591, across 1 file
- Establish a ubiquitous language glossary and anti-termsin 11 of 591, across 1 file
- Capture context boundaries in ADRs before implementationin 11 of 591, across 1 file
- Open the strategic design template if neededin 11 of 591, across 1 file
Said here and by no other author read
- restate the problem in the PM vocabulary
- surface the single biggest scope-boundary uncertainty
- state the probability-weighted consequence of being wrong
- flag any intent inferred that the PM did not state
- iterate with the PM until convergence
- scaffold the problem-set artifact
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.