@nurix/etna 0.20.36 → 0.20.38
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/data/catalog/rules/frontend.md +5 -5
- package/data/catalog/rules/pnpm.md +2 -2
- package/data/catalog/skills/nustack/SKILL.md +2 -2
- package/data/catalog/skills/nustack/references/cli-design.md +35 -35
- package/data/catalog/skills/nustack/references/monorepo-master-list.md +6 -6
- package/data/catalog/skills/nustack/references/monorepo-setup.md +13 -13
- package/data/catalog/skills/nustack/references/publishing.md +40 -39
- package/data/harness-index.json +1 -1
- package/data/harnesses/code/harness.json +2 -2
- package/data/harnesses/code/hooks/approved-packages.md +1 -2
- package/data/harnesses/code/rules/frontend.md +5 -5
- package/data/harnesses/code/rules/pnpm.md +2 -2
- package/data/harnesses/code/skills/boundary/SKILL.md +33 -22
- package/data/harnesses/code/skills/boundary/references/index.md +2 -4
- package/data/harnesses/code/skills/boundary/references/mechanisms.md +3 -10
- package/data/harnesses/code/skills/boundary/references/packs/build-config-runtime.md +1 -1
- package/data/harnesses/code/skills/boundary/references/packs/frontend.md +17 -17
- package/data/harnesses/code/skills/boundary/references/packs/generic-tail.md +1 -1
- package/data/harnesses/code/skills/brainstorm/README.md +11 -13
- package/data/harnesses/code/skills/brainstorm/SKILL.md +150 -132
- package/data/harnesses/code/skills/brainstorm/references/doctrine.md +48 -51
- package/data/harnesses/code/skills/brainstorm/references/harvest.md +51 -56
- package/data/harnesses/code/skills/brainstorm/references/session-schema.md +48 -42
- package/data/harnesses/code/skills/design/SKILL.md +31 -35
- package/data/harnesses/code/skills/design/components/charts.md +121 -43
- package/data/harnesses/code/skills/design/components/collections.md +209 -41
- package/data/harnesses/code/skills/design/components/feedback.md +86 -25
- package/data/harnesses/code/skills/design/components/hooks.md +198 -12
- package/data/harnesses/code/skills/design/components/index.md +93 -71
- package/data/harnesses/code/skills/design/components/inputs.md +249 -157
- package/data/harnesses/code/skills/design/components/layout.md +98 -38
- package/data/harnesses/code/skills/design/components/media.md +46 -25
- package/data/harnesses/code/skills/design/components/motion.md +56 -46
- package/data/harnesses/code/skills/design/components/navigation.md +54 -15
- package/data/harnesses/code/skills/design/components/overlays.md +51 -41
- package/data/harnesses/code/skills/design/components/setup.md +84 -5
- package/data/harnesses/code/skills/design/components/typography.md +72 -22
- package/data/harnesses/code/skills/design/components/utils.md +47 -13
- package/data/harnesses/code/skills/design/data/chrome/board-column.md +12 -12
- package/data/harnesses/code/skills/design/data/chrome/data-table.md +6 -6
- package/data/harnesses/code/skills/design/data/chrome/side-panel.md +15 -15
- package/data/harnesses/code/skills/design/data/chrome/sidebar.md +25 -25
- package/data/harnesses/code/skills/design/data/chrome/stat-cards.md +22 -22
- package/data/harnesses/code/skills/design/data/chrome/topbar.md +12 -12
- package/data/harnesses/code/skills/design/data/iconography.md +2 -2
- package/data/harnesses/code/skills/design/references/compose.md +14 -16
- package/data/harnesses/code/skills/design/references/emission.md +6 -6
- package/data/harnesses/code/skills/design/references/foundations.md +5 -5
- package/data/harnesses/code/skills/design/references/intake.md +6 -6
- package/data/harnesses/code/skills/design/references/object-pass.md +1 -1
- package/data/harnesses/code/skills/design/references/ship-gate.md +5 -5
- package/data/harnesses/code/skills/design/references/ux-patterns/Readme.md +4 -4
- package/data/harnesses/code/skills/design/references/ux-patterns/ai-layer.md +1 -1
- package/data/harnesses/code/skills/design/references/ux-patterns/container-choice.md +1 -1
- package/data/harnesses/code/skills/design/references/ux-patterns/dashboards.md +1 -1
- package/data/harnesses/code/skills/design/references/ux-patterns/modes.md +1 -1
- package/data/harnesses/code/skills/design/references/ux-patterns/object-model.md +2 -2
- package/data/harnesses/code/skills/design/references/ux-patterns/promotion-demotion.md +1 -1
- package/data/harnesses/code/skills/design/references/ux-patterns/settings.md +1 -1
- package/data/harnesses/code/skills/design/references/ux-patterns/standard-pages.md +1 -1
- package/data/harnesses/code/skills/design/scripts/README-validator.md +20 -8
- package/data/harnesses/code/skills/design/scripts/validate-design-md.mjs +15 -10
- package/data/harnesses/code/skills/documentation/SKILL.md +5 -5
- package/data/harnesses/code/skills/documentation/references/examples.md +22 -22
- package/data/harnesses/code/skills/documentation/references/frontmatter.md +3 -3
- package/data/harnesses/code/skills/documentation/references/instruction-style.md +3 -3
- package/data/harnesses/code/skills/documentation/references/source-comments.md +3 -3
- package/data/harnesses/code/skills/documentation/references/style-guide.md +5 -5
- package/data/harnesses/code/skills/documentation/references/untemplated.md +8 -8
- package/data/harnesses/code/skills/documentation/scripts/doc-lint.mjs +3 -2
- package/data/harnesses/code/skills/documentation/templates/Readme.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/acceptance-criteria.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/api-reference.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/architecture-decision.md +3 -7
- package/data/harnesses/code/skills/documentation/templates/behavioral-checklist.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/changelog-entry.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/changelog-index.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/docs-readme.md +3 -3
- package/data/harnesses/code/skills/documentation/templates/doctrine.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/domain-model.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/environment-registry.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/feature.md +3 -3
- package/data/harnesses/code/skills/documentation/templates/handover.md +2 -2
- package/data/harnesses/code/skills/documentation/templates/implementation-map.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/migration-runbook.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/non-goals.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/operations-procedure.md +2 -2
- package/data/harnesses/code/skills/documentation/templates/package.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/protected-files.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/root-readme.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/security-overview.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/system-overview.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/system.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/testing-strategy.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/ux-behavior.md +3 -5
- package/data/harnesses/code/skills/issue-bridge/SKILL.md +51 -16
- package/data/harnesses/code/skills/issue-bridge/references/trackers/github.md +5 -5
- package/data/harnesses/code/skills/issue-bridge/references/trackers/jira.md +11 -8
- package/data/harnesses/code/skills/issue-bridge/references/trackers/linear.md +16 -11
- package/data/harnesses/code/skills/nustack-graph/SKILL.md +38 -29
- package/data/harnesses/code/skills/polygraph/references/dispatch.md +31 -18
- package/data/harnesses/code/skills/polygraph/references/rows.md +11 -6
- package/data/harnesses/code/skills/schema-design/SKILL.md +39 -41
- package/data/harnesses/code/skills/test/SKILL.md +38 -42
- package/data/harnesses/code/skills/testing/SKILL.md +83 -73
- package/data/harnesses/code/skills/workflow-mapper/SKILL.md +156 -193
- package/data/harnesses/code/skills/workflow-mapper/references/patterns.md +15 -15
- package/data/harnesses/delivery/harness.json +2 -2
- package/data/harnesses/delivery/skills/brainstorm/README.md +11 -13
- package/data/harnesses/delivery/skills/brainstorm/SKILL.md +150 -132
- package/data/harnesses/delivery/skills/brainstorm/references/doctrine.md +48 -51
- package/data/harnesses/delivery/skills/brainstorm/references/harvest.md +51 -56
- package/data/harnesses/delivery/skills/brainstorm/references/session-schema.md +48 -42
- package/data/harnesses/delivery/skills/cost-report/SKILL.md +10 -10
- package/data/harnesses/delivery/skills/documentation/SKILL.md +5 -5
- package/data/harnesses/delivery/skills/documentation/references/examples.md +22 -22
- package/data/harnesses/delivery/skills/documentation/references/frontmatter.md +3 -3
- package/data/harnesses/delivery/skills/documentation/references/instruction-style.md +3 -3
- package/data/harnesses/delivery/skills/documentation/references/source-comments.md +3 -3
- package/data/harnesses/delivery/skills/documentation/references/style-guide.md +5 -5
- package/data/harnesses/delivery/skills/documentation/references/untemplated.md +8 -8
- package/data/harnesses/delivery/skills/documentation/scripts/doc-lint.mjs +3 -2
- package/data/harnesses/delivery/skills/documentation/templates/Readme.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/acceptance-criteria.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/api-reference.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/architecture-decision.md +3 -7
- package/data/harnesses/delivery/skills/documentation/templates/behavioral-checklist.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/changelog-entry.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/changelog-index.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/docs-readme.md +3 -3
- package/data/harnesses/delivery/skills/documentation/templates/doctrine.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/domain-model.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/environment-registry.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/feature.md +3 -3
- package/data/harnesses/delivery/skills/documentation/templates/handover.md +2 -2
- package/data/harnesses/delivery/skills/documentation/templates/implementation-map.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/migration-runbook.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/non-goals.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/operations-procedure.md +2 -2
- package/data/harnesses/delivery/skills/documentation/templates/package.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/protected-files.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/root-readme.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/security-overview.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/system-overview.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/system.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/testing-strategy.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/ux-behavior.md +3 -5
- package/data/harnesses/delivery/skills/escalate/SKILL.md +11 -11
- package/data/harnesses/delivery/skills/prompt-eval/SKILL.md +8 -8
- package/data/harnesses/delivery/skills/prompt-library/SKILL.md +30 -9
- package/data/harnesses/delivery/skills/route/SKILL.md +8 -8
- package/data/harnesses/etna/harness.json +2 -2
- package/data/harnesses/etna/skills/boundary/SKILL.md +33 -22
- package/data/harnesses/etna/skills/boundary/references/index.md +2 -4
- package/data/harnesses/etna/skills/boundary/references/mechanisms.md +3 -10
- package/data/harnesses/etna/skills/boundary/references/packs/build-config-runtime.md +1 -1
- package/data/harnesses/etna/skills/boundary/references/packs/frontend.md +17 -17
- package/data/harnesses/etna/skills/boundary/references/packs/generic-tail.md +1 -1
- package/data/harnesses/etna/skills/brainstorm/README.md +11 -13
- package/data/harnesses/etna/skills/brainstorm/SKILL.md +150 -132
- package/data/harnesses/etna/skills/brainstorm/references/doctrine.md +48 -51
- package/data/harnesses/etna/skills/brainstorm/references/harvest.md +51 -56
- package/data/harnesses/etna/skills/brainstorm/references/session-schema.md +48 -42
- package/data/harnesses/etna/skills/documentation/SKILL.md +5 -5
- package/data/harnesses/etna/skills/documentation/references/examples.md +22 -22
- package/data/harnesses/etna/skills/documentation/references/frontmatter.md +3 -3
- package/data/harnesses/etna/skills/documentation/references/instruction-style.md +3 -3
- package/data/harnesses/etna/skills/documentation/references/source-comments.md +3 -3
- package/data/harnesses/etna/skills/documentation/references/style-guide.md +5 -5
- package/data/harnesses/etna/skills/documentation/references/untemplated.md +8 -8
- package/data/harnesses/etna/skills/documentation/scripts/doc-lint.mjs +3 -2
- package/data/harnesses/etna/skills/documentation/templates/Readme.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/acceptance-criteria.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/api-reference.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/architecture-decision.md +3 -7
- package/data/harnesses/etna/skills/documentation/templates/behavioral-checklist.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/changelog-entry.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/changelog-index.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/docs-readme.md +3 -3
- package/data/harnesses/etna/skills/documentation/templates/doctrine.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/domain-model.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/environment-registry.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/feature.md +3 -3
- package/data/harnesses/etna/skills/documentation/templates/handover.md +2 -2
- package/data/harnesses/etna/skills/documentation/templates/implementation-map.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/migration-runbook.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/non-goals.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/operations-procedure.md +2 -2
- package/data/harnesses/etna/skills/documentation/templates/package.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/protected-files.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/root-readme.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/security-overview.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/system-overview.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/system.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/testing-strategy.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/ux-behavior.md +3 -5
- package/data/harnesses/etna/skills/workflow-mapper/SKILL.md +156 -193
- package/data/harnesses/etna/skills/workflow-mapper/references/patterns.md +15 -15
- package/data/harnesses/hr/harness.json +2 -2
- package/data/harnesses/hr/skills/evaluator/SKILL.md +71 -73
- package/data/harnesses/hr/skills/evaluator/criteria/code-quality.md +28 -47
- package/data/harnesses/hr/skills/evaluator/criteria/deployment-readiness.md +33 -43
- package/data/harnesses/hr/skills/evaluator/criteria/maintainability.md +34 -46
- package/data/harnesses/hr/skills/evaluator/criteria/mechanical-ambition.md +13 -13
- package/data/harnesses/hr/skills/evaluator/criteria/problem-substantiveness.md +7 -7
- package/data/harnesses/hr/skills/evaluator/criteria/testing.md +36 -41
- package/data/harnesses/hr/skills/evaluator/criteria/ux-mechanics.md +25 -11
- package/data/harnesses/hr/skills/evaluator/criteria/value-articulation.md +7 -7
- package/data/harnesses/hr/skills/evaluator/preflight.md +27 -46
- package/data/harnesses/hr/skills/interview-eval/SKILL.md +37 -42
- package/data/harnesses/hr/skills/interview-eval/rubric.md +21 -23
- package/package.json +2 -2
|
@@ -9,166 +9,184 @@ Help the user think correctly about a large-scale change, in a record that reads
|
|
|
9
9
|
pause, and end with a harvest so complete the session folder is useless. You are the
|
|
10
10
|
**facilitator** — the conversation seat of a capability split across two seats:
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
| Seat | Owns | Writes |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| **You** (this skill, main loop) | the conversation; dispatching the twin at gates and relaying its reports | `ops/capture.md` every turn, the sync-log dispatch lines, the basis at intake — **nothing else** |
|
|
15
|
+
| **The twin** (the `brainstorm` agent, pinned strong tier) | the paper: distilling ops into the working surface, recomposing the thesis whole, audits, the harvest | every other file in the folder |
|
|
16
|
+
| **The detector** (`scripts/detector.mjs`, run by the twin) | mechanical integrity | — |
|
|
17
|
+
|
|
18
|
+
**Never write the working surface yourself** — prose obligations decay in the conversing seat, and
|
|
19
|
+
the split exists to keep them out of it.
|
|
20
|
+
|
|
21
|
+
Load each reference at its moment and read it in full — **never skim to save context**; this skill
|
|
22
|
+
is sized by completeness:
|
|
23
|
+
|
|
24
|
+
| Reference | Load when |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `references/doctrine.md` | judging what a turn's substance *is* (force, fork, commitment), or how to word what you capture |
|
|
27
|
+
| `references/session-schema.md` | bootstrapping a session, or interpreting detector or twin output |
|
|
28
|
+
| `references/harvest.md` | at `stop`, before orchestrating the pipeline |
|
|
28
29
|
|
|
29
30
|
## The one habit that is yours: capture
|
|
30
31
|
|
|
31
|
-
Append to `ops/capture.md` **every turn**, both sides, lowest bar — raw notes, not prose:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
Append to `ops/capture.md` **every turn**, both sides, at the lowest bar — raw notes, not prose:
|
|
33
|
+
|
|
34
|
+
- what the user said that matters;
|
|
35
|
+
- your own substance — causal diagnoses, informed rejections of options you presented,
|
|
36
|
+
definitions, reasoning chains behind recommendations;
|
|
37
|
+
- residue you judge not worth filing.
|
|
38
|
+
|
|
39
|
+
Stamp each turn per the schema (`### T# · <ISO datetime>`). **Never distill here** — distillation is
|
|
40
|
+
the twin's. Reasoning that lives only in the chat when the twin next dispatches has leaked. The
|
|
41
|
+
folder plus ops is the session's whole memory, which is what makes every re-entry cheap.
|
|
38
42
|
|
|
39
43
|
## `start`
|
|
40
44
|
|
|
41
|
-
Find sessions by their folders — no index keeps a row per session
|
|
42
|
-
|
|
43
|
-
`thesis.md` heading its subject.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
Find sessions by their folders — **no index keeps a row per session**. Active sessions are
|
|
46
|
+
`docs/research/*-brainstorm/`, harvested ones `docs/history/brainstorms/*/`; the folder name is the
|
|
47
|
+
topic and each `thesis.md` heading its subject.
|
|
48
|
+
|
|
49
|
+
| Topic matches | Do |
|
|
50
|
+
| --- | --- |
|
|
51
|
+
| an active session | resume it (Re-entry, below) |
|
|
52
|
+
| a harvested session, or a session folder in another format | offer it **as a basis** for a fresh session |
|
|
53
|
+
| nothing | open a new session |
|
|
54
|
+
|
|
55
|
+
**1 · The entry gate.** A session needs substance. Ask for a **basis**, now:
|
|
56
|
+
|
|
57
|
+
- a reference document (path or URL);
|
|
58
|
+
- a prior session folder, in any format — ingested exactly like a PRD: copied into `basis/`,
|
|
59
|
+
frozen, distilled; **never** operated on in place, **never** migrated;
|
|
60
|
+
- a one-shot brain dump in prose.
|
|
61
|
+
|
|
62
|
+
Drip-sized input (a bug fix, one button): say this skill is the wrong tool, and do not open the
|
|
52
63
|
session unless the user explicitly overrides. No basis, no session.
|
|
53
64
|
|
|
54
|
-
**2 · Bootstrap.**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
**
|
|
65
|
+
**2 · Bootstrap.**
|
|
66
|
+
|
|
67
|
+
1. Name the folder `docs/research/{topic}-brainstorm/` (kebab slug); confirm it in one line.
|
|
68
|
+
2. Create `ops/` holding a `.gitignore` containing `*`, `ops/capture.md`, and `ops/sync-log.md`.
|
|
69
|
+
3. Copy the basis into `basis/`. Add no index row — the folder is the session's entry.
|
|
70
|
+
4. Write the sync-log dispatch line and dispatch the twin (gate: start) to write the initial
|
|
71
|
+
surface. **Never scaffold** `state.md`, `thesis.md`, `forks.md`, or `ledger.md` yourself.
|
|
72
|
+
|
|
73
|
+
**3 · Calibrate and frame.**
|
|
74
|
+
|
|
75
|
+
1. Distill the basis first — it seeds everything.
|
|
76
|
+
2. Calibrate from the living docs (the ownership index, recent decision records, any
|
|
77
|
+
open-questions doc), so your questions match this repo, not a template.
|
|
78
|
+
3. Ask one `AskUserQuestion` batch:
|
|
79
|
+
- **sitting** — single sprint (the default, and the shape that succeeds) or explicitly multi;
|
|
80
|
+
- **execution reality** — greenfield, brownfield, or hybrid; a migration gotcha found at plan
|
|
81
|
+
time is found too late;
|
|
82
|
+
- **where the idea is now** — fully in their head → dump; half-formed → interview.
|
|
83
|
+
4. Propose the **aspect map** — the thinking dimensions for *this* idea, derived from the basis,
|
|
84
|
+
from no fixed list. The user edits it; it lives in `state.md`.
|
|
85
|
+
|
|
86
|
+
**4 · Orient.** In 3–4 lines, written for a first-time user: how the session works (you talk, the
|
|
70
87
|
folder keeps everything), the steering verbs in plain words, "let me read" (pause and read the
|
|
71
88
|
thesis anytime), and what `stop` does (converge → your approval → harvest → the folder moves and
|
|
72
|
-
you choose delete or commit). Then begin — **always in dump or interview**; probe and converge
|
|
73
|
-
|
|
89
|
+
you choose delete or commit). Then begin — **always in dump or interview**; probe and converge are
|
|
90
|
+
mid-session moves, never starting postures.
|
|
74
91
|
|
|
75
92
|
## The moves
|
|
76
93
|
|
|
77
|
-
Five
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
- **converge** — burn forks down to commitments or explicit parks. `AskUserQuestion` for picks.
|
|
106
|
-
Each resolution carries Why + How to apply (the twin files it; you capture it).
|
|
94
|
+
Five user-steerable moves set who drives and how much gets asked. There is no `MODE:` field, no
|
|
95
|
+
switch ceremony, and no sanctioned trigger word: **any phrasing that implies a move triggers it**
|
|
96
|
+
("I want to poke holes" → probe; "what am I missing?" → blindspot; "let's decide" → converge). The
|
|
97
|
+
first time each move fires, name what you are doing in one line. When the signals call for a
|
|
98
|
+
switch (the user monologues mid-interview; every probe answer is "haven't thought about it"), offer
|
|
99
|
+
it once — never seize it.
|
|
100
|
+
|
|
101
|
+
- **dump** — the user drives. Ask no questions mid-stream. Reflect back the shape, contradictions,
|
|
102
|
+
and implications as they land — that reflection is the active listening; **never sit silent**.
|
|
103
|
+
- **interview** — you drive. `AskUserQuestion` batches of 2–3, one aspect at a time. Derive the
|
|
104
|
+
questions from the basis and the current surface — **never** from a template inventory, and
|
|
105
|
+
**never** interview to fill empty files.
|
|
106
|
+
- **probe** — you challenge: flaws, edge cases, conflicts with the tech or domain fragment. Note
|
|
107
|
+
each finding in ops and move on; **never** demand resolution mid-probe.
|
|
108
|
+
- **blindspot** — the hunt for unknown unknowns, **dispatched, never conversed**: you co-built the
|
|
109
|
+
frame, so the outside view belongs to the twin.
|
|
110
|
+
1. Dispatch the twin (gate: on demand, scope: blindspot) to cold-read the whole surface against
|
|
111
|
+
the thesis's stated goal. Its quality gate kills any candidate not grounded in this folder,
|
|
112
|
+
material to the design, new, and answerable; at most five survivors return, each already
|
|
113
|
+
filed as a fork.
|
|
114
|
+
2. Relay survivors in prose — finding → why it is material here → what answering it would
|
|
115
|
+
change — **never** as a question barrage: the user engages what matters, and converge burns
|
|
116
|
+
the rest down later. Zero survivors is one relay line; **never** manufacture findings.
|
|
117
|
+
3. Self-initiate a pass, without offering, whenever the frame settles — an aspect closes, a
|
|
118
|
+
converge burst lands, the thesis materially recomposes — by widening a reconcile dispatch's
|
|
119
|
+
scope. A user-only trigger makes coverage depend on the user remembering to ask.
|
|
120
|
+
- **converge** — burn forks down to commitments or explicit parks, with `AskUserQuestion` for
|
|
121
|
+
picks. Each resolution carries Why and How to apply; you capture it, the twin files it.
|
|
107
122
|
|
|
108
123
|
## Twin dispatches — the gates
|
|
109
124
|
|
|
110
|
-
Dispatch at
|
|
111
|
-
flight at a time
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
Dispatch at **start** (bootstrap), **on demand** (below), **pause**, and **stop** — **one dispatch in
|
|
126
|
+
flight at a time**.
|
|
127
|
+
|
|
128
|
+
1. Before each dispatch, write its line to `ops/sync-log.md`
|
|
129
|
+
(`S# | gate: <g> | dispatched: <ts> | scope: <s>`). The twin appends the result; the pairing
|
|
130
|
+
keeps reconciliation observable instead of asserted.
|
|
131
|
+
2. At the next turn break, relay the twin's one-line report ("4 edits · 2 new forks · 6 open ·
|
|
132
|
+
untouched: risks") plus what the recompose changed — a rewrite of the user's thinking is
|
|
133
|
+
**never** silent. The report is the only ambient convergence pressure this skill applies.
|
|
134
|
+
3. On a `failed` result, tell the user plainly and re-dispatch at the next gate.
|
|
135
|
+
|
|
136
|
+
**On demand** means the user asks ("let me read", "sync up", "what's open?"), or you judge the
|
|
137
|
+
capture has outrun the surface meaningfully. **"Let me read"** is a designed-for pause, not an
|
|
138
|
+
interruption: dispatch a compose (say honestly it takes a couple of minutes), point the user at
|
|
139
|
+
`thesis.md` — claim → argument → what changed, stamped — and resume when they return.
|
|
125
140
|
|
|
126
141
|
## Re-entry — resume, or context loss
|
|
127
142
|
|
|
128
|
-
Re-entry is a read, not a reconstruction
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
143
|
+
Re-entry is a read, not a reconstruction. It covers three triggers identically: resuming a parked
|
|
144
|
+
session, a new sitting, and **losing conversational context mid-session (compaction)** — finding
|
|
145
|
+
yourself mid-session without memory of it means running this procedure; nothing you "remembered"
|
|
146
|
+
matters.
|
|
147
|
+
|
|
148
|
+
1. Re-read this hub, `state.md` (posture line first), and the tail of `ops/capture.md`.
|
|
149
|
+
2. Dispatch the twin (gate: on demand) for a re-brief and freshness audit.
|
|
150
|
+
|
|
151
|
+
While a session folder exists, read `state.md` at the start of every turn.
|
|
135
152
|
|
|
136
153
|
## `stop` — the fixed pipeline
|
|
137
154
|
|
|
138
|
-
Read `references/harvest.md` first. The pipeline always runs — a stop *is* convergence plus
|
|
139
|
-
harvest
|
|
155
|
+
Read `references/harvest.md` first. The pipeline **always** runs — a stop *is* convergence plus
|
|
156
|
+
harvest. You orchestrate; the twin executes each leg.
|
|
140
157
|
|
|
141
|
-
1. **Converge** — every open fork
|
|
142
|
-
(mini-converge in conversation; the scope-guard trio in `harvest.md` disambiguates parks).
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
2. **Final sync
|
|
158
|
+
1. **Converge** — resolve every open fork now, or park it explicitly with a destination
|
|
159
|
+
(mini-converge in conversation; the scope-guard trio in `harvest.md` disambiguates parks). If no
|
|
160
|
+
blindspot round has run this session, offer one first, once — an unknown unknown found after
|
|
161
|
+
commitments freeze is the expensive kind.
|
|
162
|
+
2. **Final sync and manifest** — dispatch the twin (gate: stop). It builds the manifest only when
|
|
146
163
|
the detector's manifest gate is clean; relay anything blocking.
|
|
147
|
-
3. **One approval** — present the manifest via `AskUserQuestion`. Gap rounds
|
|
148
|
-
|
|
149
|
-
4. **Apply → uselessness test → move** — the twin's legs; relay results. Harvest fails loud:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
5. **The offer** — after the move to `docs/history/brainstorms/{topic}
|
|
153
|
-
commit it
|
|
164
|
+
3. **One approval** — present the manifest via `AskUserQuestion`. Gap rounds re-enter here: every
|
|
165
|
+
write to canonical docs is user-approved, **no exceptions**.
|
|
166
|
+
4. **Apply → uselessness test → move** — the twin's legs; relay the results. Harvest fails loud: a
|
|
167
|
+
partial apply leaves the folder visibly unfinished in `docs/research/` and the user restarts the
|
|
168
|
+
stop — **never** resume silently.
|
|
169
|
+
5. **The offer** — after the move to `docs/history/brainstorms/{topic}/`, ask via
|
|
170
|
+
`AskUserQuestion`: **delete the folder, or commit it**. The user decides; the design assumes
|
|
171
|
+
deletion.
|
|
154
172
|
|
|
155
173
|
## Conduct — holds for the whole session
|
|
156
174
|
|
|
157
|
-
1. **Speak plain English; codes live in files.** Name every item by what it is
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
2. **No production code outside the session folder while open.** Illustrative snippets live
|
|
161
|
-
the folder. Asked for production code
|
|
175
|
+
1. **Speak plain English; codes live in files.** Name every item by what it is, with the code in
|
|
176
|
+
parentheses only where traceability needs it ("…the timeout question (F2)"). **Never** lead with
|
|
177
|
+
a bare `F3`/`D7`.
|
|
178
|
+
2. **No production code outside the session folder while it is open.** Illustrative snippets live
|
|
179
|
+
in the folder. Asked for production code, offer a sketch inside the folder, or `/brainstorm stop`
|
|
162
180
|
first.
|
|
163
|
-
3. **`AskUserQuestion` at exactly four sites:** the intake frame batch, interview batches,
|
|
164
|
-
|
|
181
|
+
3. **`AskUserQuestion` at exactly four sites:** the intake frame batch, interview batches, converge
|
|
182
|
+
picks, and the stop approvals (manifest; delete-or-commit). Everywhere else, prose.
|
|
165
183
|
4. **Suggested, never seized.** Moves, abstractions, probes — one offer each; accept refusal
|
|
166
|
-
without re-litigating.
|
|
167
|
-
conversational control
|
|
168
|
-
5. **Nothing lives only in the transcript.**
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
6. **The user decides when to converge and when to stop.** Distance-to-coherent is visible in
|
|
172
|
-
|
|
184
|
+
without re-litigating. The one exemption is a self-initiated blindspot dispatch: it takes no
|
|
185
|
+
conversational control, and its findings arrive as forks the user may ignore.
|
|
186
|
+
5. **Nothing lives only in the transcript.** What is not in the folder or in ops does not exist.
|
|
187
|
+
Flaws, gaps, and contradictions reach the twin as capture; the twin turns them into forks, the
|
|
188
|
+
only convergence currency.
|
|
189
|
+
6. **The user decides when to converge and when to stop.** Distance-to-coherent is visible in every
|
|
190
|
+
relayed twin report; **never** say "let's decide now."
|
|
173
191
|
7. **Only `/brainstorm start` and `/brainstorm stop` enter or leave a session.** No
|
|
174
192
|
auto-invocation, ever.
|
|
@@ -3,56 +3,54 @@
|
|
|
3
3
|
Load when: composing or auditing any working-surface file; deciding what a turn's substance *is*
|
|
4
4
|
(a force, a fork, a commitment); judging whether a record is complete enough to harvest.
|
|
5
5
|
|
|
6
|
-
The session's product is a defensible design position
|
|
7
|
-
forks, commitments, consequences. They are ADR epistemics
|
|
8
|
-
|
|
6
|
+
The session's product is a defensible design position, carried by five elements — thesis, forces,
|
|
7
|
+
forks, commitments, consequences. They are ADR epistemics without the ceremony: what makes a
|
|
8
|
+
decision record *citable* stays; what makes it *bureaucratic* is out.
|
|
9
9
|
|
|
10
10
|
## The five elements
|
|
11
11
|
|
|
12
12
|
**Thesis** — the claim under construction. One composed document (`thesis.md`) in a mandated
|
|
13
13
|
readable shape: the **claim** (what we are building and the position taken), the **argument** (the
|
|
14
14
|
forces bearing on it and the reasoning chain from forces to claim), then **what most recently
|
|
15
|
-
changed and why**. Composed prose from turn one, rewritten whole at every compose —
|
|
16
|
-
|
|
17
|
-
staleness is visible instead of trusted.
|
|
15
|
+
changed and why**. Composed prose from turn one, rewritten whole at every compose — **never**
|
|
16
|
+
appended, because an appended document never reads well. Every compose carries a `Current as of:`
|
|
17
|
+
stamp, so staleness is visible instead of trusted.
|
|
18
18
|
|
|
19
19
|
**Forces** — the pressures that shape the design: user constraints stated in the conversation,
|
|
20
|
-
evidence from the repo or the field, platform realities, costs, prior doctrine. Forces
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
evidence from the repo or the field, platform realities, costs, prior doctrine. Forces have no file;
|
|
21
|
+
each lives wherever the reasoning that uses it lives — the thesis argument, a commitment's Why — and
|
|
22
|
+
is stated concretely enough to check ("the CLI gates consumer refresh", never "deployment
|
|
23
|
+
concerns").
|
|
24
24
|
|
|
25
|
-
**Forks** — the open questions
|
|
26
|
-
contradictions, uncovered aspects
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
**Forks** — the open questions, and the session's only convergence currency: flaws, gaps,
|
|
26
|
+
contradictions, and uncovered aspects funnel into `forks.md` or do not exist. Every fork carries a
|
|
27
|
+
**close condition** — what resolution looks like: a pick, a confirmed fact, an accepted risk. A
|
|
28
|
+
fork without one is not askable; rewrite it until it is.
|
|
29
29
|
|
|
30
30
|
**Commitments** — the resolved calls, in `ledger.md`. Field set per entry:
|
|
31
31
|
|
|
32
32
|
- **Decision** — the call, one sentence, present tense.
|
|
33
|
-
- **Why** — the forces and reasoning that produced it
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
tripwire.
|
|
33
|
+
- **Why** — the forces and reasoning that produced it, including declined options: a
|
|
34
|
+
**Declined:** line names the option, the evidence it was declined against *at decline time*, and
|
|
35
|
+
a **re-evaluate condition** where one exists — the condition under which the rejection deserves
|
|
36
|
+
another look. The line keeps a deliberate call from reading later as an unexamined one, and the
|
|
37
|
+
re-evaluate condition turns a past rejection into a standing tripwire.
|
|
39
38
|
- **How to apply** — what acting on the decision looks like in this repo.
|
|
40
39
|
- **Resolves** — the fork(s) this closes.
|
|
41
40
|
|
|
42
41
|
The ledger is **append-only with amendment-by-annotation**: a decision is real the moment it
|
|
43
|
-
lands; reversing it is a new entry
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
ceremony.
|
|
42
|
+
lands; reversing it is a new entry naming what it reverses, plus a one-line annotation on the old
|
|
43
|
+
entry ("Reversed by …"). **Never** add a tentative/committed/rescinded state machine —
|
|
44
|
+
append-plus-annotation carries the same information with none of the ceremony.
|
|
47
45
|
|
|
48
|
-
**Consequences** — what a commitment obligates beyond itself: follow-on work, constraints
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
**Consequences** — what a commitment obligates beyond itself: follow-on work, constraints on
|
|
47
|
+
future decisions, and where its knowledge must land at harvest. They surface as new forks
|
|
48
|
+
("committing to X opens the question of Y"), backlog candidates, or fragment content, and keep the
|
|
49
|
+
ledger from being a list of verdicts with no forward pressure.
|
|
52
50
|
|
|
53
51
|
## What ADR epistemics keep
|
|
54
52
|
|
|
55
|
-
The parts that
|
|
53
|
+
The parts that make a decision record worth citing in shipped source:
|
|
56
54
|
|
|
57
55
|
- A decision is **addressable** — it can be named, cited, amended, and reversed by reference.
|
|
58
56
|
- The **reasoning travels with the verdict** — Why is mandatory, and declined alternatives ride
|
|
@@ -62,7 +60,7 @@ The parts that made decision records worth citing in shipped source:
|
|
|
62
60
|
|
|
63
61
|
## What ceremony drops
|
|
64
62
|
|
|
65
|
-
The parts
|
|
63
|
+
The parts real sessions abandon, kept out deliberately:
|
|
66
64
|
|
|
67
65
|
- **Status lifecycles** (Proposed → Accepted → Deprecated) — a commitment is live when it lands;
|
|
68
66
|
reversal is an entry, not a state transition.
|
|
@@ -76,10 +74,11 @@ The parts that died in every real session, kept out deliberately:
|
|
|
76
74
|
|
|
77
75
|
## Epistemic rules
|
|
78
76
|
|
|
79
|
-
|
|
77
|
+
Binding on every writer of the working surface — the facilitator (ops) and the twin (everything
|
|
78
|
+
else):
|
|
80
79
|
|
|
81
80
|
1. **Distilled, never verbatim.** Capture is interpretation: name the claim, the reasoning, and
|
|
82
|
-
the implication. The ban is on transcript
|
|
81
|
+
the implication. The ban is on pasting transcript, not on quoting — integrity copies (printed
|
|
83
82
|
enumerations, cited excerpts) are self-containment, not stenography.
|
|
84
83
|
2. **Examples are examples.** Record the general claim and cite the user's phrase as an instance
|
|
85
84
|
of it. Never promote one phrasing into the frame — a thesis that reads beautifully but no
|
|
@@ -91,22 +90,23 @@ These bind every writer of the working surface — facilitator (ops), twin (ever
|
|
|
91
90
|
checks it there.
|
|
92
91
|
4. **Both sides are session knowledge.** The facilitator's own substance — causal diagnoses,
|
|
93
92
|
informed rejections of options it presented, definitions of terms the surface cites, reasoning
|
|
94
|
-
chains behind recommendations — is captured with the same discipline as the user's words.
|
|
95
|
-
|
|
93
|
+
chains behind recommendations — is captured with the same discipline as the user's words. It is
|
|
94
|
+
the knowledge class that leaks; the ops ledger exists so it lands at zero cost.
|
|
96
95
|
5. **Directional steering is not feature truth.** A harvested principle informs many decisions
|
|
97
96
|
and changes slowly; a feature fact belongs to its feature doc and changes at code speed. The
|
|
98
97
|
harvest links between the two layers, never duplicates prose across them.
|
|
99
98
|
|
|
100
99
|
## Field lessons — capture and converge
|
|
101
100
|
|
|
102
|
-
|
|
101
|
+
Each is a rule measured on live sessions.
|
|
103
102
|
|
|
104
103
|
- **Separate user voice from facilitator re-derivation before ledgering** when both arrive in one
|
|
105
|
-
turn
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
turn — say, the user states a segregation and the facilitator re-derives a whole architecture
|
|
105
|
+
from it. **Only** the user's half is ledgerable. A re-derivation that re-reads an existing
|
|
106
|
+
commitment into a new shape is a fork carrying a named amendment to the affected `D#`, **never**
|
|
107
|
+
an edit — a commitment recorded in the user's words is amended only by the user.
|
|
108
|
+
- **Stamp in UTC, always** — take the stamp from `date -u`, **never** from the runtime's injected
|
|
109
|
+
local date; in some offsets the two disagree for part of every working day, and a local-date
|
|
110
110
|
stamp runs the ledger a day ahead of capture.
|
|
111
111
|
- **Run the blindspot pass immediately after a converge burst, before the manifest gate.** When
|
|
112
112
|
several picks land in one sitting the strain migrates *between* them — collisions between
|
|
@@ -118,20 +118,17 @@ Measured on live sessions; each is the rule, distilled.
|
|
|
118
118
|
- **When a ledger entry's `Why` contains "already", verify it before the manifest.** A commitment
|
|
119
119
|
that declines to build something because it already exists rests on a fact, not a judgment, and
|
|
120
120
|
the stop gate is the last place that fact is checkable — after the folder moves it is not.
|
|
121
|
-
- **Verify a doctrine claim against disk before building an argument on it.** Truth docs
|
|
122
|
-
package rebuilds: a guardrail can assert a guard path that exists nowhere, inside a
|
|
123
|
-
wrapper naming packages
|
|
124
|
-
the guard path, read the owning package's config, and confirm the package is
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
- **Verify a doctrine claim against disk before building an argument on it.** Truth docs drift
|
|
122
|
+
from package rebuilds: a guardrail can assert a guard path that exists nowhere, inside a
|
|
123
|
+
suppression wrapper naming packages absent from the tree. When a session's centre is a recorded
|
|
124
|
+
prohibition, `ls` the guard path, read the owning package's config, and confirm the package is in
|
|
125
|
+
the tree.
|
|
126
|
+
- **Read the decision records before framing a session around a pillar contradiction.** A recently
|
|
127
|
+
accepted AD can already contradict the pillars; a session convened to *decide* a reversal may be
|
|
128
|
+
*ratifying* one that shipped — a materially different conversation.
|
|
128
129
|
- **Give the opening map at least one aspect organised by seam.** A map organised by system layer
|
|
129
130
|
owns none of the questions that land on the boundary between two planes or two phases, which is
|
|
130
131
|
where the real design questions sit.
|
|
131
|
-
- **Ledger only the user's half of a re-derivation turn.** When the user states a segregation and
|
|
132
|
-
the facilitator re-derives a whole architecture from it in the same entry, only the first half is
|
|
133
|
-
ledgerable; a re-derivation that re-reads an existing commitment into a new shape is a fork with a
|
|
134
|
-
named amendment, never an edit.
|
|
135
132
|
- **Check the ledger prefix against the product's vocabulary.** `D#` reads two ways in a product
|
|
136
133
|
whose state lives in a database called D1; add a disambiguation line to the ledger header and
|
|
137
134
|
write the colliding term in full inside entries.
|