@boopkit/cap-product-design 0.6.6 → 0.6.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boopkit/cap-product-design",
3
- "version": "0.6.6",
3
+ "version": "0.6.8",
4
4
  "description": "Product design skills for AI agents",
5
5
  "files": [
6
6
  "skills/",
@@ -4,6 +4,11 @@ description: "When you need to design a feature or system and communicate the te
4
4
  metadata:
5
5
  category: design
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
11
+
7
12
  # Engineering Design
8
13
 
9
14
  ## Goal
@@ -98,6 +103,12 @@ The positive form is also more durable. Defects get fixed and the prose goes sta
98
103
 
99
104
  This is a stronger form of the strawman rule: do not motivate a design against a wrong implementation, real or imagined. State the destination.
100
105
 
106
+ ## No verify-later breadcrumbs
107
+
108
+ Do not write "verify X during design" or "confirm the capability supports Y" notes into specs.
109
+ Research always precedes the work, so discovery surfaces these naturally — a pre-written flag adds noise and goes stale.
110
+ State the decision; let the design phase find its own facts.
111
+
101
112
  ## Architecture Layering
102
113
 
103
114
  Well-designed systems separate concerns into layers with clear responsibilities and one-directional dependencies. The exact layers vary by project type, but the principle is universal:
@@ -205,3 +216,6 @@ Without an explicit interaction-shapes pass, the agent inherits whatever pattern
205
216
  ## Related
206
217
 
207
218
  - [`boop-writing-semantic-line-breaks`](../boop-writing-semantic-line-breaks/SKILL.md) — design docs live in `specs/`; break their lines semantically so edits diff cleanly.
219
+ - [`boop-writing-technical-prose`](../boop-writing-technical-prose/SKILL.md) — when writing Alternatives and Tradeoffs; an alternative rejected in a sentence fragment cannot be re-evaluated later, which defeats the point of recording it.
220
+ - [`boop-writing-documents`](../boop-writing-documents/SKILL.md) — when the design is long enough that reviewers will skim it; the declared length budget and the answered-objections discipline are what keep the Alternatives table from becoming a list nobody reads.
221
+ - `boop-project-mgmt-engineering-planning` — once the decision is settled and the work has to be ordered; sequence by which uncertainty each step retires, not by which part is easiest to show.
@@ -4,6 +4,11 @@ description: "When you need to document a complex feature, function, or system
4
4
  metadata:
5
5
  category: reqs
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
11
+
7
12
  # Feature Documentation
8
13
  - Identity the intended audience. For example, data engineers who may not have done this sort of exercise before.
9
14
  - Identify the audience's "group identity". For example, which company, team, or project they belong to.
@@ -13,3 +18,5 @@ metadata:
13
18
  ## Related
14
19
 
15
20
  - [`boop-writing-semantic-line-breaks`](../boop-writing-semantic-line-breaks/SKILL.md) — when the documentation lands in a markdown file in the repo.
21
+ - [`boop-writing-technical-prose`](../boop-writing-technical-prose/SKILL.md) — before the first paragraph; this skill's whole audience is a reader who has not done this activity before, and agent shorthand is precisely what loses them.
22
+ - [`boop-writing-documents`](../boop-writing-documents/SKILL.md) — when the piece is read start to finish rather than dipped into for a lookup; that is the shape the six-pager discipline is for, and it decides the length before you write.
@@ -4,9 +4,14 @@ description: "When you need to write a feature spec, draft a spec document, or t
4
4
  metadata:
5
5
  category: reqs
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
11
+
7
12
  # Feature Requirements
8
13
 
9
- Be sure to read [reference/tenets.ref.md](../reference/tenets.ref.md) for overarching principles that apply to all features.
14
+ Be sure to read the project's own `reference/tenets.ref.md`, where it keeps one, for the overarching principles that apply to every feature.
10
15
 
11
16
  ## When you need to define what a feature should accomplish before designing how to build it
12
17
 
@@ -113,3 +118,5 @@ Steps 1–3 are where this skill earns its keep. Skipping them produces well-str
113
118
  ## Related
114
119
 
115
120
  - [`boop-writing-semantic-line-breaks`](../boop-writing-semantic-line-breaks/SKILL.md) — specs live in `specs/`; break their lines semantically so edits diff cleanly.
121
+ - [`boop-writing-technical-prose`](../boop-writing-technical-prose/SKILL.md) — when you start writing the spec itself; a jobs list compressed into agent shorthand has to be decoded by the implementer before it can be built, and decoding is where the jobs get lost.
122
+ - [`boop-writing-documents`](../boop-writing-documents/SKILL.md) — when the spec has to survive a reader who disagrees with it; the stance this skill tells you to take is a claim, and that skill is how a claim carries its evidence and answers the obvious objection inside the document.
@@ -4,6 +4,11 @@ description: "When you need to integrate new knowledge into the project's `refer
4
4
  metadata:
5
5
  category: docs
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
11
+
7
12
  # Reference Integration
8
13
 
9
14
  ## Goal
@@ -43,6 +48,35 @@ After editing, verify:
43
48
  - Use kebab-case, singular or plural based on what reads naturally
44
49
  - Suffix is always `.ref.md`
45
50
 
51
+ ## When boop has changed a page this project rewrote
52
+
53
+ Some pages in `reference/` arrived with a boop capability.
54
+ They are seed content, and a project is expected to rewrite them, so the page is the project's.
55
+ Unlike a skill, it is never split into boop's text and the project's.
56
+ But boop keeps improving its own copy, and a page the project has rewritten does not receive those improvements.
57
+
58
+ When `boop update` finds a page that both the project and boop have changed since it was installed, it leaves the page alone and prints a line giving the path to boop's current copy in `node_modules`, such as `node_modules/@boopkit/cap-users/scaffold/reference/user-auth.ref.md`.
59
+ The work is to blend what boop added into the project's page:
60
+
61
+ 1. **Read boop's copy in full, then the project's page.**
62
+ A line diff between them is useless, because the project's rewrite differs from boop's copy almost everywhere.
63
+ 2. **List what boop's copy covers that the project's page does not** — each mechanism, function, command or setting it describes.
64
+ 3. **Check each item against the project's code.**
65
+ Blend in what this project actually runs.
66
+ Leave out what it never installed or has removed, and do not describe code that is not there.
67
+ 4. **Blend each item into the section of the page where that concept already lives**, following the rest of this skill.
68
+ Never paste boop's copy over the page, and never add a section of changes from boop.
69
+ 5. **Name the package and version you blended from in the commit message.**
70
+ The update line appears again on every later update, because the page still differs from boop's copy, and the commit is how the next agent tells whether boop's copy has changed since.
71
+
72
+ For example, over five months of releases boop's `user-auth.ref.md` gained 121 lines covering bearer-token authentication, the API-key gate and the credential-hashing migration.
73
+ One project ran all of that code, but its rewritten page never mentioned `resolveBearer`, `requireApiKey` or `npm run credentials:migrate`, while boop's post-install steps and `boop status` hints sent readers to that page for exactly those things.
74
+ That page already had a section on the API-key flow, so the blend belongs there: how a key is presented as a bearer token, and how the gate admits it.
75
+ The migration belongs wherever the page describes how credentials are stored.
76
+
77
+ This is for reference pages only.
78
+ A `SKILL.md` the project has edited is not blended: its edits move into the `PROJECT.md` beside it, through `boop migrate-skill-edits` and the `boop-skills-edit-triage` skill.
79
+
46
80
  ## Anti-patterns
47
81
  - **One page per feature** — creates a graveyard of disconnected documents nobody reads
48
82
  - **"See also" link dumps** — links should be inline where the concept is discussed, not in a footer list
@@ -52,3 +86,5 @@ After editing, verify:
52
86
  ## Related
53
87
 
54
88
  - [`boop-writing-semantic-line-breaks`](../boop-writing-semantic-line-breaks/SKILL.md) — `reference/` pages are edited far more often than they are written; semantic line breaks are what keep those edits reviewable.
89
+ - [`boop-writing-technical-prose`](../boop-writing-technical-prose/SKILL.md) — when blending new content into an existing page; the merged paragraph has to read as though it was always there, and matching a page's voice starts with writing full sentences.
90
+ - `boop-knowledge-backfill` — when the gap is not one feature's knowledge but a backlog of shipped work that was never written down; that workflow decides what to process and in what order, then sends each spec back here.
@@ -4,6 +4,10 @@ description: "When the user wants to think out loud through a design — a featu
4
4
  metadata:
5
5
  category: design
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
7
11
 
8
12
  # Design thought partnership
9
13
 
@@ -4,6 +4,10 @@ description: "When you need to write a document someone will read cold and act o
4
4
  metadata:
5
5
  category: writing
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
7
11
 
8
12
  # Writing Documents
9
13
 
@@ -4,6 +4,10 @@ description: "When you need to write or edit prose in a markdown file under vers
4
4
  metadata:
5
5
  category: writing
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
7
11
 
8
12
  # Semantic Line Breaks
9
13
 
@@ -4,6 +4,10 @@ description: "When writing chat responses, summaries, bd issue bodies, specifica
4
4
  metadata:
5
5
  category: writing
6
6
  ---
7
+ > **Read `PROJECT.md`, beside this file, first.**
8
+ > It records how this project applies the guidance below, and where it deliberately differs.
9
+ > Where the two conflict, `PROJECT.md` wins.
10
+ > Record project-specific rules there, never in this file.
7
11
 
8
12
  # Technical Prose
9
13