Shape
Claude Code plugins for spec-first development: every agent claim cites a source, every code change traces to a requirement, and ceremony scales to the weight of the task.
npx -y skills add NVZver/claude-marketplace --skill shapeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 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
Shape a new feature from a vague idea into a structured pitch. Input: problem or opportunity description (argument or interactive prompt). Output: approved pitch file at ${specs_root}/pitches/<slug>.md — the agent returns the draft content + pending gates; this skill delivers the pitch to the user, runs the gates via AskUserQuestion, and writes the file only on approve (nothing on reject) — then handoff to manager:decompose for epic decomposition.
SKILL.md
6.1 KB, as published. Nobody here has run it
Trace. On load, print first:
=============== [manager/skills/shape/SKILL.md] [manager] ===============
Start Feature
Orchestrator skill. Accepts a vague idea, dispatches the product-manager agent for shaping, runs the agent's returned human gates via AskUserQuestion, then hands off to manager:decompose for epic decomposition. Does not contain shaping logic or decomposition logic — those live in the agents.
Goal
Go from a vague idea to a human-approved pitch with epics ready for the LSA build cycle — without the user manually shaping the pitch or invoking agents directly.
Input
- Problem or opportunity description (argument to the skill, or interactive prompt if no argument given).
specs_rootfrom.lsa.yamlat repo root (defaults per../../../lsa/knowledge/conventions.md§".lsa.yamldefaults"). Used to resolve${specs_root}/...paths below.
Steps
-
Accept input. Read the argument. If no argument provided, prompt the user for a problem or opportunity description. Observable result: description captured.
-
Dispatch product-manager agent. Invoke the
product-manageragent via theAgenttool with the problem description. Wait for the agent to complete. Observable result: agent returns the full draft pitch content + proposed slug + an ordered pending-gates list (role confirmation, shaping forks with recommended defaults, final approve/reshape/reject) per../../agents/product-manager.mdStep 5. Nothing is on disk. -
Deliver the pitch, then run the returned gates. The agent's payload is invisible to the user — this skill re-renders it. First deliver the full pitch content per the
core/outputRule 7 Delivery test: as the turn-final message (no tool calls after it in that turn), or carried inside the gates below (optionpreview). Then present each pending gate viaAskUserQuestion(Rule 5 Self-contained gates), in the agent's order: role confirmation first, then each shaping fork (offering the agent's recommended default), then the final approve / reshape / reject.- Approve:
Writethe pitch to${specs_root}/pitches/<slug>.mdwithStatus: approvedand the gate decisions (confirmed role, fork choices) in the metadata header; quote the written file inline — show → approve → write per Rule 7 Authorization boundary. - Reshape: re-dispatch the agent with the user's feedback (
SendMessagecontinuation, or a new dispatch if the agent has exited), then deliver + gate the fresh payload again. - Reject: write nothing — no file exists. State the rationale in the conversation and exit cleanly — no downstream work.
Observable result: pitch delivered through a rendered channel; every pending gate resolved by the user; on approve the file exists with
Status: approvedand is quoted inline; on reject no file exists. - Approve:
-
Hand off to decompose. On approve, invoke
manager:decomposevia theSkilltool with the approved pitch slug. The project-manager agent handles the roadmap entry (backlog row, priority, sequencing) and epic decomposition — this skill does not write to${specs_root}/roadmap.yamldirectly. (On reject, Step 3 already exited cleanly.) Observable result:manager:decomposeexecuting; pitch added to roadmap and decomposed into epics by project-manager.
Output
Either manager:decompose is executing (approved path) or clean exit (rejected path). The pitch file exists at ${specs_root}/pitches/<slug>.md only on approve (Status: approved, written by this skill after its gates); on reject nothing is written. Roadmap writes (backlog row, priority, sequencing) are handled by the project-manager agent via manager:decompose — this skill never writes to ${specs_root}/roadmap.yaml directly.
Example Output
[illustrative]
Agent returned: pitch "Onboarding checklist" (content + 3 pending gates; nothing on disk).
<full pitch delivered as the turn-final message>
Gate 1 — role: developer-tools product manager? > accept
Gate 2 — appetite fork: checklist knowledge file only (recommended)? > accept
Gate 3 — approve / reshape / reject? > approve
Written: .lsa/pitches/onboarding-checklist.md (Status: approved) — file quoted inline
Handing off to manager:decompose for backlog entry and epic decomposition…
Constraints
- Orchestrator only. Do not duplicate agent logic (shaping, role adaptation, pitch assembly, decomposition) — dispatch, run the gates, hand off.
- No silent handoff. The human gates live in THIS skill (the agent cannot ask —
AskUserQuestionis unavailable in subagent context): every pending gate the agent returns is presented viaAskUserQuestionbefore any downstream step. - Clean exit on reject. If the final gate returns reject, write nothing and exit with no side effects — no file, no branch, no downstream invocation.
- Show changes inline — and own the delivery. The agent returns the pitch content in its payload, which the user never sees (
core/outputRule 7 Delivery test). THIS skill delivers the full pitch through a rendered channel before gating, writes the file only on approve (Rule 7 Authorization boundary), and quotes the written file inline. The downstreammanager:decomposehandoff surfaces each roadmap row inline. Never reduce a write to "pitch created" / "added to roadmap" without the content. - Outputs follow
core/output— citation by link, never restated.
/manager:shape — manual invocation.