@boopkit/cap-product-design 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -0
- package/package.json +1 -1
- package/skills/docs.reference-integration.skill.md +45 -0
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# @boopkit/cap-product-design
|
|
2
|
+
|
|
3
|
+
**Part of [Boop](https://www.npmjs.com/package/@boopkit/cli)** — a bootstrap platform for AI-first builders. `boop init` scaffolds a running Node/TypeScript web app from composable **capabilities**, each one bundling the code, dependencies, middleware wiring, and agent skills needed for a feature. You pick the capabilities; `boop add` handles the rest.
|
|
4
|
+
|
|
5
|
+
`cap-product-design` is a skills-only capability covering the "think before you build" stretch of the workflow. It teaches an agent how to pull clear requirements from a vague founder brief, how to write an engineering design doc that exposes trade-offs (not just outcomes), how to document a feature for a specific audience, and how to fold new knowledge into the project's living `reference/` wiki after shipping.
|
|
6
|
+
|
|
7
|
+
## What You Get
|
|
8
|
+
|
|
9
|
+
A bundle of agent-facing skill files for requirements, design, feature docs, and reference-doc integration. No runtime code, no dependencies, no server wiring — documentation-as-code for the agents working in your repo.
|
|
10
|
+
|
|
11
|
+
### Skills installed
|
|
12
|
+
|
|
13
|
+
Copied into `skills/` on install:
|
|
14
|
+
|
|
15
|
+
- `reqs.feature-requirements.skill.md` — how to turn a brief or vague directive into real requirements: ask 3-5 focused trade-off questions, push back on ambiguity without interrogating, and know when enough clarity is enough to proceed.
|
|
16
|
+
- `reqs.feature-documentation.skill.md` — how to write feature documentation aimed at a specific audience and activity, with the right tone and grounding for readers who haven't done this before.
|
|
17
|
+
- `design.engineering-design.skill.md` — the engineering design doc structure (Goals, Non-Goals, Approach, Alternatives, Tradeoffs, Open Questions) with a stance: make the *decision* visible, not just the solution.
|
|
18
|
+
- `docs.reference-integration.skill.md` — how to blend new knowledge into `reference/` after a feature lands, keeping it a living wiki of what the system actually is, not a pile of per-feature pages.
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
**Other capabilities:** none.
|
|
23
|
+
|
|
24
|
+
**npm dependencies added to your project:** none. `cap-product-design` is pure documentation for agents.
|
|
25
|
+
|
|
26
|
+
**Environment variables:** none.
|
|
27
|
+
|
|
28
|
+
**Project files referenced:** several skills point at `reference/tenets.ref.md` for overarching principles. That file is provided by the `web-app` profile's `reference/` directory. In other profiles, the skill will still work — the reference link just won't resolve.
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
Skills are meant to be read by AI agents, not humans (though humans are welcome). Once installed they live in your project's `skills/` directory alongside skills from other capabilities.
|
|
33
|
+
|
|
34
|
+
How agents find them depends on the harness:
|
|
35
|
+
|
|
36
|
+
- Projects with a Claude Code `CLAUDE.md` typically instruct the agent to consult `skills/index.md` or the relevant `.skill.md` file before acting.
|
|
37
|
+
- Harnesses with a native skill-discovery system (e.g. slash-command style skills) surface them by filename.
|
|
38
|
+
|
|
39
|
+
A typical flow: a founder gives the agent a two-sentence feature brief. The agent reads `reqs.feature-requirements.skill.md` and asks a few trade-off questions to fill the gaps. Once the shape is clear it reads `design.engineering-design.skill.md` and writes a design doc with an explicit Alternatives section. After the feature ships, it reads `docs.reference-integration.skill.md` and blends the new behaviour into the existing concept pages in `reference/` — not a new feature-specific page.
|
|
40
|
+
|
|
41
|
+
## Added by
|
|
42
|
+
|
|
43
|
+
Included by default in the `web-app` profile.
|
|
44
|
+
|
|
45
|
+
Add to an existing project with:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
boop add product-design
|
|
49
|
+
```
|
package/package.json
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Reference Integration
|
|
2
|
+
When you need to integrate new knowledge into the project's `reference/` directory after completing a feature, fixing a bug that changes behavior, or adding a capability.
|
|
3
|
+
|
|
4
|
+
## Goal
|
|
5
|
+
Keep `reference/` as a living wiki of **what the system actually is right now** — not a pile of per-feature pages. New knowledge is blended into existing concept pages; new pages are created only when a genuinely new concept has no home.
|
|
6
|
+
|
|
7
|
+
## Principles
|
|
8
|
+
|
|
9
|
+
- **Reference is the current truth.** Specs describe the intended future; reference describes what shipped. After a feature lands, reference must reflect reality.
|
|
10
|
+
- **Entity/concept pages, not feature pages.** Don't create `matching-feature.ref.md` — instead update `matching-system.ref.md`, `database.ref.md`, and any other concept pages the feature touches.
|
|
11
|
+
- **Wiki-style cross-links.** Every reference page should link to related pages using relative markdown links (e.g., `[service layer](service-layer.ref.md)`). When adding content, add links in both directions — the page you're editing and the pages you're referencing.
|
|
12
|
+
- **Blend, don't append.** New content should be woven into the existing narrative at the right location, not dumped at the bottom under a "New: feature X" heading. The reader shouldn't be able to tell which paragraph was added when.
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### 1. Identify affected concepts
|
|
17
|
+
Read the spec/feature summary and list every concept the feature touches. Examples: a new API endpoint affects the REST API ref, the service layer ref, and possibly the database ref. A new background job affects the job system ref and whatever domain it operates in.
|
|
18
|
+
|
|
19
|
+
### 2. For each concept, check for an existing page
|
|
20
|
+
- **Page exists** → Read it, understand its structure, then merge new content into the appropriate sections. Update any tables, lists, or diagrams. Add cross-links to other affected pages.
|
|
21
|
+
- **No page exists** → Create a new `{concept}.ref.md` page. Follow the structure patterns of existing reference pages in the project. Add cross-links from related existing pages to the new page.
|
|
22
|
+
|
|
23
|
+
### 3. Merge guidelines
|
|
24
|
+
- Match the voice and style of the existing page — don't introduce a different tone.
|
|
25
|
+
- If a section is getting long after the merge, consider splitting into sub-sections rather than leaving a wall of text.
|
|
26
|
+
- Update any "overview" or "key concepts" sections that provide a high-level map.
|
|
27
|
+
- If the feature introduces new terminology, define it where it first appears and link to it from other pages.
|
|
28
|
+
- Remove or update any content that is now outdated or contradicted by the new feature.
|
|
29
|
+
|
|
30
|
+
### 4. Cross-linking checklist
|
|
31
|
+
After editing, verify:
|
|
32
|
+
- [ ] Every page you modified links to every other page you modified (where the relationship is meaningful)
|
|
33
|
+
- [ ] New concepts are linked from the most relevant existing overview/index sections
|
|
34
|
+
- [ ] No orphan pages — every new page is reachable from at least one existing page
|
|
35
|
+
|
|
36
|
+
### 5. Naming conventions
|
|
37
|
+
- File: `{concept}.ref.md` (e.g., `matching-system.ref.md`, `user-auth.ref.md`)
|
|
38
|
+
- Use kebab-case, singular or plural based on what reads naturally
|
|
39
|
+
- Suffix is always `.ref.md`
|
|
40
|
+
|
|
41
|
+
## Anti-patterns
|
|
42
|
+
- **One page per feature** — creates a graveyard of disconnected documents nobody reads
|
|
43
|
+
- **"See also" link dumps** — links should be inline where the concept is discussed, not in a footer list
|
|
44
|
+
- **Copy-pasting from the spec** — specs use future tense and rationale; reference uses present tense and describes what is, not why it was chosen
|
|
45
|
+
- **Leaving stale content** — if the feature changes existing behavior, update or remove the old description
|