{"_id":"@dpaluy/shaping-skills","name":"@dpaluy/shaping-skills","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@dpaluy/shaping-skills","version":"0.1.1","description":"Cross-tool shaping, breadboarding, and transcript-to-document skills.","author":{"name":"David Paluy","url":"https://github.com/dpaluy"},"keywords":["pi-package","pi","codex","claude","skills","shape-up","shaping","breadboarding"],"homepage":"https://github.com/dpaluy/shaping-skills","repository":{"type":"git","url":"git+https://github.com/dpaluy/shaping-skills.git"},"publishConfig":{"access":"public"},"pi":{"skills":["./skills"]},"gitHead":"b99bb902fab80608d6b97ccba27f384742a0ce2b","_id":"@dpaluy/shaping-skills@0.1.1","bugs":{"url":"https://github.com/dpaluy/shaping-skills/issues"},"_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-BMVWWIqp5FRlQJ/xfgt4BBDKW66X+euwJSHdwT7fMjccPxV1KFN6UTfexrtPa+NmguCp76Li0LE5HBCer6jhqA==","shasum":"a9510bce528e8fbc4b0716302c7d710c3d33907d","tarball":"https://registry.npmjs.org/@dpaluy/shaping-skills/-/shaping-skills-0.1.1.tgz","fileCount":16,"unpackedSize":126638,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCm1rgMY4rvaxvZTcM9Lka/OBVp9ReC+XzhgfNxP4hUbwIgerQxMfb14F843zBVS0zqSp8tXy23RPVcChH9NwbQ1JU="}]},"_npmUser":{"name":"dpaluy","email":"npm@it.majesticlabs.dev"},"directories":{},"maintainers":[{"name":"dpaluy","email":"npm@it.majesticlabs.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shaping-skills_0.1.1_1775271201438_0.01118571133456503"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-04T02:53:21.335Z","0.1.1":"2026-04-04T02:53:21.567Z","modified":"2026-04-04T02:53:21.802Z"},"maintainers":[{"name":"dpaluy","email":"npm@it.majesticlabs.dev"}],"description":"Cross-tool shaping, breadboarding, and transcript-to-document skills.","homepage":"https://github.com/dpaluy/shaping-skills","keywords":["pi-package","pi","codex","claude","skills","shape-up","shaping","breadboarding"],"repository":{"type":"git","url":"git+https://github.com/dpaluy/shaping-skills.git"},"author":{"name":"David Paluy","url":"https://github.com/dpaluy"},"bugs":{"url":"https://github.com/dpaluy/shaping-skills/issues"},"readme":"# Shaping Skills\n\nSkills for shaping product ideas into buildable software with LLM coding agents.\n\nThis repo encodes a workflow from [Shape Up](https://basecamp.com/shapeup):\n\n1. Capture the problem and initial solution shape\n2. Check fit between requirements and the shape\n3. Spike unknowns\n4. Breadboard the selected shape into concrete affordances and wiring\n5. Slice the system into demoable vertical scopes\n6. Build slice by slice\n\nThe skills work with Pi, Codex, and Claude.\n\nCanonical skill content lives in `skills/`. Tool-specific manifests and plugin folders point at that single source of truth.\n\n## What These Skills Produce\n\n- **Frame**: source material, problem, and outcome\n- **Shaping doc**: requirements (`R`), shapes (`A`, `B`, `C`), fit checks, and breadboards\n- **Spike docs**: separate investigation files for unknowns\n- **Slices doc**: vertical implementation slices with demos and wiring\n- **Slice plans**: markdown build-plan files for each slice (`V1-plan.md`, etc.)\n\nThe point is not to make prettier markdown. The point is to force the agent to separate requirements from mechanisms, expose unknowns, and make scope decisions explicit before it starts coding.\n\n## Skills\n\n| Skill | What it does | Use it when |\n|------|---------------|-------------|\n| `shaping` | Captures requirements, shapes, fit checks, spikes, and slice handoff | You are defining a feature, comparing solutions, or scoping work before implementation |\n| `breadboarding` | Maps UI affordances, code affordances, stores, places, and wiring | You need to understand or detail how a system works in concrete terms |\n| `breadboard-reflection` | Syncs a breadboard to the implementation and surfaces design smells | You already have a breadboard and want to check it against the code |\n| `framing-doc` | Distills transcripts into a frame with problem, outcome, and evidence | You have source conversations and need the \"why now\" documented |\n| `kickoff-doc` | Converts a kickoff transcript into a builder-facing territory map | The work is shaped and you want a usable handoff doc |\n\n## Typical Workflow\n\n### 1. Start with shaping\n\nAsk the agent to use the `shaping` skill before implementation starts.\n\nExamples:\n\n```text\nUse your shaping skill to capture the requirements and tease apart the key parts of solution A.\n```\n\n```text\nHelp me shape this feature before we build it.\n```\n\n### 2. Check fit\n\nOnce the first shape exists, inspect how well it satisfies the requirements.\n\nExamples:\n\n```text\nShow me R x A.\n```\n\n```text\nRotate the fit check and show me A x R.\n```\n\nThis is the core move. It shows what is solved, what is still fuzzy, and what needs investigation.\n\n### 3. Spike the unknowns\n\nWhen part of the shape is still hand-wavy, spike it.\n\nExamples:\n\n```text\nPlease spike A2.\n```\n\n```text\nCan you spike the local LLM piece?\n```\n\nSpikes should produce separate markdown files so the findings are preserved and can feed back into the shape.\n\n### 4. Breadboard the chosen shape\n\nOnce the shape is good enough, translate it into concrete affordances and wiring.\n\nExample:\n\n```text\nLet's breadboard A.\n```\n\nBreadboarding is what makes slicing sane. Without it, vertical slicing turns into guesswork.\n\n### 5. Slice vertically\n\nOnce the breadboard exists, slice the system into demoable scopes.\n\nExample:\n\n```text\nLet's slice it.\n```\n\nEach slice should end in a real demo, not a horizontal layer. The goal is to build something you can show, learn from, and either continue or cut.\n\n### 6. Build one slice at a time\n\nAfter slicing, have the agent write the first slice's implementation plan and self-test approach into a markdown file instead of presenting the plan in terminal output.\n\nExample:\n\n```text\nPlease write `V1-plan.md` for the first slice. Include how you will test it yourself to ensure it's working, then open the markdown file for review.\n```\n\n## Installation\n\n### Claude Code\n\n```\n/plugin marketplace add dpaluy/shaping-skills\n/plugin install shaping-skills\n```\n\n### Pi\n\nInstall directly from a local path:\n\n```bash\npi install /absolute/path/to/shaping-skills\n```\n\nOr install from git:\n\n```bash\npi install git:github.com/dpaluy/shaping-skills\n```\n\nAfter publishing to npm, install with:\n\n```bash\npi install npm:@dpaluy/shaping-skills\n```\n\nPi discovers the skills from the package manifest and conventional `skills/` directory.\n\n### Codex\n\nYou can use this repo in Codex in three ways:\n\n1. Open this repo directly in Codex. The repo already exposes the skills through `.agents/skills/`.\n2. Install the skills globally for your user:\n\n```bash\n./install.sh --user\n```\n\nThis copies the skills into `~/.agents/skills/` and symlinks them into `~/.claude/skills/`.\n\n3. Install the skills only into the current project:\n\n```bash\n./install.sh --project\n```\n\nThis copies the skills into `.agents/skills/` and symlinks them into `.claude/skills/` for the directory where you run the command.\n\nA publishable Codex plugin layout is also available in `plugins/shaping-skills/`.\n\n## Ripple Hook\n\nThe repo includes a hook that reminds Claude to check ripple effects when editing shaping documents. When a `.md` file with `shaping: true` in its frontmatter is written or edited, the hook prompts a short checklist:\n\n- update affordance tables before re-rendering Mermaid\n- update fit checks when requirements or shape parts change\n- update work stream detail when the work stream design changes\n\nTo install:\n\n1. Symlink the hook script:\n\n```bash\nREPO=/absolute/path/to/shaping-skills\nmkdir -p ~/.claude/hooks\nln -s \"$REPO/hooks/shaping-ripple.sh\" ~/.claude/hooks/shaping-ripple.sh\n```\n\n2. Add the hook to `~/.claude/settings.json`:\n\n```json\n{\n  \"hooks\": {\n    \"PostToolUse\": [\n      {\n        \"matcher\": \"Write|Edit\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"~/.claude/hooks/shaping-ripple.sh\",\n            \"timeout\": 5\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n","readmeFilename":"README.md","_rev":"1-91e2852ba4323247c568f265e89a133a"}