@nurix/etna 0.18.21 → 0.18.22

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.
Files changed (30) hide show
  1. package/data/harness-index.json +1 -1
  2. package/data/harnesses/code/CLAUDE.md +2 -2
  3. package/data/harnesses/code/agents/maintenance.md +7 -6
  4. package/data/harnesses/code/harness.json +1 -1
  5. package/data/harnesses/code/skills/brainstorm/README.md +3 -3
  6. package/data/harnesses/code/skills/brainstorm/SKILL.md +5 -3
  7. package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +11 -7
  8. package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +4 -4
  9. package/data/harnesses/code/skills/design/references/personality.md +1 -1
  10. package/data/harnesses/code/skills/documentation/SKILL.md +1 -1
  11. package/data/harnesses/code/skills/documentation/references/templates.md +3 -3
  12. package/data/harnesses/etna/CLAUDE.md +2 -2
  13. package/data/harnesses/etna/agents/maintenance.md +7 -6
  14. package/data/harnesses/etna/harness.json +1 -1
  15. package/data/harnesses/etna/skills/brainstorm/README.md +3 -3
  16. package/data/harnesses/etna/skills/brainstorm/SKILL.md +5 -3
  17. package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +11 -7
  18. package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +4 -4
  19. package/data/harnesses/etna/skills/documentation/SKILL.md +1 -1
  20. package/data/harnesses/etna/skills/documentation/references/templates.md +3 -3
  21. package/data/harnesses/mobile/CLAUDE.md +2 -2
  22. package/data/harnesses/mobile/agents/maintenance.md +7 -6
  23. package/data/harnesses/mobile/harness.json +1 -1
  24. package/data/harnesses/mobile/skills/brainstorm/README.md +3 -3
  25. package/data/harnesses/mobile/skills/brainstorm/SKILL.md +5 -3
  26. package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +11 -7
  27. package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +4 -4
  28. package/data/harnesses/mobile/skills/documentation/SKILL.md +1 -1
  29. package/data/harnesses/mobile/skills/documentation/references/templates.md +3 -3
  30. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "fingerprint": "e6c7761bdd49",
2
+ "fingerprint": "5cb712a2bb9e",
3
3
  "harnesses": {
4
4
  "code": {
5
5
  "plugin": "code",
@@ -34,7 +34,7 @@ Three peer modes plus a Completion step — enter wherever the user's thinking a
34
34
  | **LLD** (low-level design) | new feature work | `lld-mode` agent + `documentation` skill | Plan |
35
35
  | **Plan** | an LLD is approved | `documentation` skill → `docs/history/plans/YYYY-MM-DD-{slug}.md` | Completion |
36
36
 
37
- > Brainstorm entry needs a **basis** — a reference document or a one-shot brain dump; drip-sized asks (a bug fix, one button) are too small and get redirected. A **pillar** is a recorded strategic principle from a past brainstorm: kept records live under `docs/brainstorm/`, harvested doctrine under `docs/architecture/`. Runtimes without slash commands: read `.claude/skills/brainstorm/SKILL.md` and follow it inline. The LLD is the feature doc itself — `docs/features/{feature}.md`, design intent first, extended in place at Completion.
37
+ > Brainstorm entry needs a **basis** — a reference document or a one-shot brain dump; drip-sized asks (a bug fix, one button) are too small and get redirected. A **pillar** is a recorded strategic principle from a past brainstorm: in-progress sessions live under `docs/research/`, harvested ones under `docs/history/brainstorms/`, harvested doctrine under `docs/architecture/`. Runtimes without slash commands: read `.claude/skills/brainstorm/SKILL.md` and follow it inline. The LLD is the feature doc itself — `docs/features/{feature}.md`, design intent first, extended in place at Completion.
38
38
 
39
39
  **On Plan Completion:**
40
40
 
@@ -44,7 +44,7 @@ Three peer modes plus a Completion step — enter wherever the user's thinking a
44
44
 
45
45
  **On Brainstorm Close** (a separate procedure — when a brainstorm session ends, not when a plan completes):
46
46
 
47
- - The session record lives at `docs/brainstorm/{topic}/` (committed, one subfolder per topic) and stays in place as provenance.
47
+ - The session record lives at `docs/research/{topic}-brainstorming/` (committed) while active; on close + harvest it moves to `docs/history/brainstorms/{topic}/` as provenance — see `docs/structure.md`.
48
48
  - Harvest conclusions by scope: doctrine, glossary, non-goals, information-architecture changes → `docs/architecture/`; decisions → `docs/architecture/decisions/` (one AD per subject — revising a recorded subject updates its AD in place); backlog items → `docs/history/backlog.md`.
49
49
  - Open questions block close.
50
50
 
@@ -131,24 +131,25 @@ docs/
131
131
  ├── features/ # Feature specs — the only first-class doc unit (flat; ownership in each doc's `owns:` frontmatter)
132
132
  │ └── {group}/ # browse-only subfolder for grouping; NEVER a module; may carry a Readme.md
133
133
  ├── operations/ # Setup, development, deployment, CI/CD
134
- ├── brainstorm/ # Optional — kept design records, one {topic}/ subfolder per session (state.md + flat pillar files + basis/, evidence/)
135
- │ └── {topic}/ # created by the `brainstorm` skill; NOT scaffolded empty
134
+ ├── research/ # Optional — in-progress brainstorm sessions ({topic}-brainstorming/) + standing research; Readme.md is the index
135
+ │ └── {topic}-brainstorming/ # created by the `brainstorm` skill; NOT scaffolded empty; moves to history/brainstorms/ on harvest
136
136
  ├── history/
137
137
  │ ├── CHANGELOG.md # Master changelog index
138
138
  │ ├── changelog/ # Individual entries
139
139
  │ ├── plans/ # Implementation plans (Status field required)
140
+ │ ├── brainstorms/ # Harvested brainstorm sessions ({topic}/), kept as provenance; Readme.md is the index
140
141
  │ └── backlog.md # Tracked work items by priority (P0-P3)
141
142
  ├── memory/ # index.md, main.md, {agent}.md — project knowledge + per-agent strategy memory
142
143
  └── tests/ # Optional, author-maintained — create only if test docs exist
143
144
  ```
144
145
 
145
- There is **no `docs/routing.md`**, **no `docs/modules/{m}/`**, **no `docs/pillars/`**, **no `docs/boundaries/`**. Code ownership lives in feature `owns:` frontmatter; a module is a `module:` label, not a folder; boundaries are diagnosed from source; brainstorm records are kept design records.
146
+ There is **no `docs/routing.md`**, **no `docs/modules/{m}/`**, **no `docs/pillars/`**, **no `docs/boundaries/`**. Code ownership lives in feature `owns:` frontmatter; a module is a `module:` label, not a folder; boundaries are diagnosed from source; brainstorm records live in `docs/research/` (active) and `docs/history/brainstorms/` (harvested).
146
147
 
147
- > `docs/brainstorm/{topic}/` is **author-created, never scaffolded** — the `brainstorm` skill writes it when a session opens, and it is **kept** (committed) as the provenance the steering pillars distil from. Recognize it as canonical: never flag it as a doc "outside the structure" and never delete it during reconcile.
148
+ > Brainstorm records are **author-created, never scaffolded** — the `brainstorm` skill writes an active session at `docs/research/{topic}-brainstorming/` and moves it to `docs/history/brainstorms/{topic}/` on harvest, kept (committed) as the provenance the steering pillars distil from. Recognize both as canonical: never flag them as docs "outside the structure" and never delete them during reconcile. Each folder carries a `Readme.md` index — keep it in sync with the folders it lists (every session has a row; no stale or missing rows), since the `brainstorm` skill reads the indexes instead of scanning.
148
149
 
149
150
  ### Step B1 — Inventory and classify
150
151
 
151
- Glob every markdown file. Classify each: Architecture, Features, Operations, Plans, Changelogs, Backlog, Brainstorm records (stay), Stale/Deprecated (delete), Root docs (stay). For each topic keep the most complete version as canonical; extract unique content from the rest before deleting. **No redirect stubs** — when you move a file, delete the original and fix every reference (cross-doc links, memory files). Anything already under `docs/brainstorm/{topic}/` is a **kept design record** — leave it in place untouched; never reclassify its pillars as Architecture/Stale or relocate them.
152
+ Glob every markdown file. Classify each: Architecture, Features, Operations, Plans, Changelogs, Backlog, Brainstorm records (stay), Stale/Deprecated (delete), Root docs (stay). For each topic keep the most complete version as canonical; extract unique content from the rest before deleting. **No redirect stubs** — when you move a file, delete the original and fix every reference (cross-doc links, memory files). Anything already under `docs/research/{topic}-brainstorming/` or `docs/history/brainstorms/{topic}/` is a **kept design record** — leave it in place untouched; never reclassify its pillars as Architecture/Stale or relocate them.
152
153
 
153
154
  While reading each markdown doc to classify it, if the doc names a code symbol it asserts exists that **statically resolves to nothing**, note it as an observation for the Part A audit — **only** on stacks where static resolution is reliable (stay silent on codegen/reflection/DI/barrel stacks); scoped to docs already being read here, never a whole-repo prose sweep; **docs only**, never code-file comments.
154
155
 
@@ -166,7 +167,7 @@ This is what makes baseline more than a fresh scaffold. Detect old-shape artifac
166
167
  | `docs/OWNERSHIP_INDEX.md` (legacy derived ownership index) | delete — ownership is the union of feature `owns:` frontmatter, surfaced by the generated index |
167
168
  | `docs/operations/guardrails.md` | fold durable contract notes into `docs/architecture/` |
168
169
  | `docs/architecture/overview.md` | split into `domain-model.md` / `glossary.md` / `non-goals.md` / `references.md` / `open-questions.md` |
169
- | a root `brainstorm/` or `brainstorming/` folder (legacy transient/per-harness location) | move each design record into `docs/brainstorm/{topic}/`, kept; delete the root folder |
170
+ | a legacy `docs/brainstorm/{topic}/`, or a root `brainstorm/`/`brainstorming/` folder | move each **active** record to `docs/research/{topic}-brainstorming/` and each **harvested** one to `docs/history/brainstorms/{topic}/` (dropping the suffix); create/refresh both `Readme.md` indexes; delete the emptied folder |
170
171
  | no `harness-version` in `structure.md` | stamp it (Step B4) |
171
172
 
172
173
  ### Step B3 — Present the reconcile plan, then execute
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "14662025ad2d"
10
+ "digest": "e1a1b585018d"
11
11
  }
@@ -128,13 +128,13 @@ The writing posture is a **mode** chosen at intake, folded into `build.md`:
128
128
 
129
129
  ## Exit artifacts
130
130
 
131
- The session writes a **kept** design record at `docs/brainstorm/{topic}/` (one subfolder per topic). At `stop`, after the final five-source sync (self-containment included — the record is verified standalone-readable exactly when it's about to become the only survivor of the session), the skill _offers_ what to **publish** from it (`AskUserQuestion`, multi-select — a session can emit more than one):
131
+ The session writes a design record at `docs/research/{topic}-brainstorming/` (one folder per topic), moved to `docs/history/brainstorms/{topic}/` on harvest. At `stop`, after the final five-source sync (self-containment included — the record is verified standalone-readable exactly when it's about to become the only survivor of the session), the skill _offers_ what to **publish** from it (`AskUserQuestion`, multi-select — a session can emit more than one):
132
132
 
133
133
  - **Source of truth** — one consolidated, README-style canonical doc for the thing designed (`templates/source-of-truth.md`); lands in the repo's feature/architecture doc home, else a topic `Readme.md`.
134
134
  - **Plans** — one or more executable plan docs → `docs/history/plans/` (Status: Draft).
135
135
  - **Harvest into the living docs** — conclusions dispersed by scope into ADs (architecture decisions), the domain model, and the backlog.
136
136
 
137
- The `docs/brainstorm/{topic}/` record is **kept** whichever you pick — never deleted; it is the provenance every artifact traces back to. See `exit-artifacts.md`.
137
+ The session record is **kept** whichever you pick — never deleted; on harvest it moves to `docs/history/brainstorms/{topic}/` as the provenance every artifact traces back to. See `exit-artifacts.md`.
138
138
 
139
139
  ---
140
140
 
@@ -159,4 +159,4 @@ brainstorm/ # the skill (in .claude/skills/)
159
159
  └── templates/ # pillar templates + evidence.md + source-of-truth.md, used in the record and at stop
160
160
  ```
161
161
 
162
- The session itself is written to `docs/brainstorm/{topic}/` (kept, committed) — not here.
162
+ The session itself is written to `docs/research/{topic}-brainstorming/` (committed; moved to `docs/history/brainstorms/{topic}/` on harvest) — not here.
@@ -42,6 +42,8 @@ Write as if the transcript is already deleted — it will be. The folder must le
42
42
 
43
43
  ## `start`
44
44
 
45
+ First, consult the two indexes — never scan folders. `docs/research/Readme.md` lists **active** sessions; `docs/history/brainstorms/Readme.md` lists **harvested** ones. Match the topic against both: an active match → resume it (§3, reusing its folder); a harvested match → surface that prior exploration and ask whether to reopen it (move the folder back to `docs/research/{topic}-brainstorming/`) or branch a fresh topic; no match → a new session. Then:
46
+
45
47
  ### 1. The entry gate
46
48
 
47
49
  A session needs substance before it opens. Ask for a **basis**: a reference document (path or URL), or a one-shot brain dump of the whole idea, right now, in prose.
@@ -62,7 +64,7 @@ Then propose the **aspect map**: the thinking dimensions for _this specific idea
62
64
 
63
65
  ### 3. Bootstrap
64
66
 
65
- Session folder: `docs/brainstorm/{topic}/` — a **committed, kept** design record, one subfolder per design topic (slug the topic; confirm it in one line). Resume an existing topic by reusing its folder if it already holds a `state.md`. The record stays in the repo after the exit artifacts publish (it is the provenance they distil from — see `exit-artifacts.md`), so it lives under `docs/` like any other durable project knowledge, not at the repo root. Create only the pillars the complexity calls for, from `templates/` (never overwrite existing files; if a template is missing, create the file from the field lists in **Pillars**). `basis/` holds the frozen inputs; `evidence/` materializes on the first session-produced analysis (memory contract, rule 3). Write top-level `state.md`:
67
+ Session folder: `docs/research/{topic}-brainstorming/` — a **committed** design record, one folder per design topic (slug the topic; confirm it in one line). Add a row to the `docs/research/Readme.md` index. Resume an existing topic by reusing its folder if it already holds a `state.md`. The record lives here while the session is active; on close **and** harvest it moves to `docs/history/brainstorms/{topic}/` as the provenance the exit artifacts distil from (see `stop` and `exit-artifacts.md`). Create only the pillars the complexity calls for, from `templates/` (never overwrite existing files; if a template is missing, create the file from the field lists in **Pillars**). `basis/` holds the frozen inputs; `evidence/` materializes on the first session-produced analysis (memory contract, rule 3). Write top-level `state.md`:
66
68
 
67
69
  ```
68
70
  STATE: open
@@ -136,8 +138,8 @@ Zero means _"audited against the five sources and clean"_ — never _"nothing ca
136
138
 
137
139
  1. Run a final sync (wait for any in-flight sync first). It audits all five sources — self-containment included, so the record is verified standalone-readable exactly when it is about to become the only survivor of the session.
138
140
  2. **Coherent** → say so and proceed. **Questions open** → list them plainly (English first, codes in parentheses) and offer per question: resolve now (mini-converge) / park explicitly (backlog or non-goals, with reason) / leave open and stop anyway — the folder keeps full state and resumes exactly where it left off. Flag parked **self-containment** gaps distinctly: parking one means the record ships not fully standalone.
139
- 3. **Publish exit artifacts** — see `exit-artifacts.md`. Offer the choice (`AskUserQuestion`, multi-select): a **source of truth** (one consolidated README-style doc — the standing reference for the thing designed), **plans** (executable work → `docs/history/plans/`), and/or **harvest into the living docs** (conclusions dispersed by scope into ADs — architecture decisions — the domain model, the backlog). The `docs/brainstorm/{topic}/` record is **kept** (committed) whichever you pick — it is the provenance every artifact traces back to and the seed the next session resumes from.
140
- 4. Write `STATE: closed` + one-line reason. Print: _"Run `/brainstorm start` to resume."_
141
+ 3. **Publish exit artifacts** — see `exit-artifacts.md`. Offer the choice (`AskUserQuestion`, multi-select): a **source of truth** (one consolidated README-style doc — the standing reference for the thing designed), **plans** (executable work → `docs/history/plans/`), and/or **harvest into the living docs** (conclusions dispersed by scope into ADs — architecture decisions — the domain model, the backlog). The session record is **kept** (committed) whichever you pick — it is the provenance every artifact traces back to and the seed the next session resumes from.
142
+ 4. Write `STATE: closed` + one-line reason. If the harvest is complete (conclusions dispersed into the living docs), **move** the folder from `docs/research/{topic}-brainstorming/` to `docs/history/brainstorms/{topic}/` and update both indexes — drop its row from `docs/research/Readme.md`, add it to `docs/history/brainstorms/Readme.md`. If the session is only paused (questions parked, more to come), leave it in `docs/research/` and update its index row's status. Print: _"Run `/brainstorm start` to resume."_
141
143
 
142
144
  ## Conduct — holds for the whole session
143
145
 
@@ -1,8 +1,9 @@
1
1
  # Exit artifacts
2
2
 
3
- What `/brainstorm stop` publishes from a closed session. The `docs/brainstorm/{topic}/` record is **kept
3
+ What `/brainstorm stop` publishes from a closed session. The session record is **kept
4
4
  either way** — committed provenance, never a scratchpad. Exit artifacts copy the session's _conclusions_
5
- outward into the form the work needs; the record stays as the source they trace back to.
5
+ outward into the form the work needs; the record stays as the source they trace back to — and, once
6
+ harvested, moves from `docs/research/{topic}-brainstorming/` to `docs/history/brainstorms/{topic}/`.
6
7
 
7
8
  At `stop`, after the final sync, **offer the artifact choice** (`AskUserQuestion`, multi-select — a session
8
9
  can publish more than one):
@@ -54,9 +55,12 @@ not folders — a finding scoped to one module still lands in `docs/architecture
54
55
 
55
56
  Append a changelog entry at `docs/history/changelog/YYYY-MM-DD-brainstorm-{slug}.md` listing what was published where.
56
57
 
57
- ## After publishing — keep the record
58
+ ## After publishing — move the record to history
58
59
 
59
- **Keep `docs/brainstorm/{topic}/` — never delete it.** The exit artifacts now carry the distilled
60
- conclusions, but the record stays committed as their provenance: a traceable source for every published
61
- headline, and the seed the next `/brainstorm start` on this topic resumes from. Retire a topic's folder
62
- by hand only when the design line is truly dead.
60
+ **Move `docs/research/{topic}-brainstorming/` → `docs/history/brainstorms/{topic}/`, and update both
61
+ `Readme.md` indexes** (drop the row from `docs/research/Readme.md`, add it to
62
+ `docs/history/brainstorms/Readme.md`). The exit artifacts now carry the distilled conclusions; the record
63
+ itself is **kept** — never deleted — but as harvested provenance it belongs under `docs/history/brainstorms/`:
64
+ a traceable source for every published headline, and the seed the next `/brainstorm start` on this topic
65
+ resumes from. A session that is only **paused** (not harvested) stays in `docs/research/`. Retire a topic's
66
+ folder by hand only when the design line is truly dead.
@@ -3,8 +3,8 @@
3
3
  > This is a **source-of-truth doc**: the standing, canonical reference for [thing]. Write it like a
4
4
  > README — present tense, reader-first, the thing described as it _is_. It is **not a plan** (no steps,
5
5
  > status, or sequencing — those go to `docs/history/plans/`) and **not the brainstorm record** (no
6
- > `Q-N`/`D-N` codes, no "Why / How to apply" ledger, no rejected alternatives — those stay in
7
- > `docs/brainstorm/{topic}/` and any ADs). One document; if a section outgrows it, link out, don't sprawl.
6
+ > `Q-N`/`D-N` codes, no "Why / How to apply" ledger, no rejected alternatives — those stay in the harvested
7
+ > record at `docs/history/brainstorms/{topic}/` and any ADs). One document; if a section outgrows it, link out, don't sprawl.
8
8
  >
9
9
  > **Placement.** In a repo with a feature-doc system this lands as `docs/features/{slug}.md` and carries
10
10
  > that system's frontmatter (`owns:` / `module:` / `keywords:` / `status:`). Cross-cutting → `docs/architecture/{slug}.md`.
@@ -41,9 +41,9 @@ and what is explicitly out of scope.]
41
41
 
42
42
  ## Open questions
43
43
 
44
- [One line pointing at `docs/brainstorm/{topic}/questions.md` if any remain open. Omit if none.]
44
+ [One line pointing at `docs/history/brainstorms/{topic}/questions.md` if any remain open. Omit if none.]
45
45
 
46
46
  ---
47
47
 
48
- _Distilled from `docs/brainstorm/{topic}/`. That record holds the rationale, the rejected alternatives,
48
+ _Distilled from `docs/history/brainstorms/{topic}/`. That record holds the rationale, the rejected alternatives,
49
49
  and the provenance for everything above._
@@ -214,7 +214,7 @@ re-derivable. Judgment is recorded, never silent.
214
214
  radius scale. Two cascade contracts keep the personality in charge; both are hardened with the
215
215
  emitted in-CSS comments below and enforced by the code-and-token rules (`cod-*`) in
216
216
  [hard-rules.md](./hard-rules.md). The library's actual consumption is enumerated in
217
- [the substrate audit](../../../docs/brainstorm/design/u1-audit-report.md).
217
+ [the substrate audit](../../../docs/history/brainstorms/design/u1-audit-report.md).
218
218
 
219
219
  **CASCADE CONTRACT 1 — the specificity/attribute pair.** The color tokens are emitted under a
220
220
  doubled selector, and `<html>` must carry `data-theme="light"`:
@@ -21,7 +21,7 @@ Every document is exactly one of two things. Decide which before writing a word
21
21
  | Named by | Topic: `auth.md`, `AD-003-persistence.md` | Date: `YYYY-MM-DD-slug.md` (or append position) |
22
22
  | On change | Body rewritten in place the moment reality changes | Never edited — frozen at completion or append-only |
23
23
  | Read to | Act correctly today | Trace provenance, diagnose, audit |
24
- | Lives in | `docs/features/`, `docs/architecture/`, `docs/operations/`, `docs/tests/`, READMEs | `docs/history/` (plans, changelog, research, migrations), `docs/brainstorm/`, `docs/memory/` |
24
+ | Lives in | `docs/features/`, `docs/architecture/`, `docs/operations/`, `docs/tests/`, READMEs | `docs/history/` (plans, changelog, brainstorms, research, migrations), `docs/research/`, `docs/memory/` |
25
25
 
26
26
  The two guarantees are complementary and both break on mixing: a reader holding a **truth document** must never need history to interpret it; a reader holding a **record** must be able to trust it was never rewritten. So the natures never share a document body.
27
27
 
@@ -111,12 +111,12 @@ Each topic has one canonical location. Read from here, not from plans or changel
111
111
  | Change records | `docs/history/changelog/` | Individual entries |
112
112
  | Migration runbooks | `docs/history/migrations/` | YYYY-MM-DD-name.md |
113
113
  | Deep-research artifacts | `docs/history/research/{topic}/` | README.md + findings.md + sources.md |
114
- | Brainstorm design records | `docs/brainstorm/{topic}/` | state.md + pillars/ |
114
+ | Brainstorm design records | `docs/research/{topic}-brainstorming/` (active) → `docs/history/brainstorms/{topic}/` (harvested) | state.md + pillars/ |
115
115
  | Backlog | `docs/history/` | backlog.md |
116
116
 
117
117
  ## The Two Natures
118
118
 
119
- Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `brainstorm/`, `memory/` hold records.
119
+ Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `research/`, `memory/` hold records.
120
120
 
121
121
  - Truth documents are rewritten in place when reality changes — the change-story goes to a changelog entry, never into the truth doc's body.
122
122
  - Records freeze: plans at `Complete`/`Abandoned`, changelog entries and migration runbooks once written/executed. A scope change is a new dated record that links back.
@@ -132,7 +132,7 @@ Every doc is a **truth document** (states current absolutes, topic-named, update
132
132
  - `docs/history/changelog/`: Records. Append-only.
133
133
  - `docs/history/migrations/`: Records. One-shot migration/upgrade runbooks — authored before execution, outcome-stamped and frozen after.
134
134
  - `docs/history/research/{topic}/`: Deep-research artifacts — the dumped output of a research pass, one folder per topic (conventionally `README.md` synthesis + `findings.md` verified claims & citations + `sources.md`). A point-in-time, cited record — **not** a living authority doc: it owns no code (no `owns:` frontmatter) and is never edited to "stay current." A spec/plan links to it for grounding; a new question gets a new topic folder.
135
- - `docs/brainstorm/{topic}/`: Kept design records — the committed Brainstorming-Mode session for a topic (`state.md` + `pillars/`), written by the `brainstorm` skill and **kept** after harvest as the provenance the truth layer distils from. Author-created (never scaffolded empty), one subfolder per design conversation. Owns no code (no `owns:` frontmatter); the harvest copies its conclusions into `architecture/`/`history/` while the record stays in place. Retire a topic's folder by hand only when the design line is dead.
135
+ - `docs/research/{topic}-brainstorming/` → `docs/history/brainstorms/{topic}/`: Brainstorm design records — the committed Brainstorming-Mode session for a topic (`state.md` + `pillars/`), written by the `brainstorm` skill. An active session lives under `docs/research/`; on close + harvest it **moves** to `docs/history/brainstorms/` and is **kept** as the provenance the truth layer distils from. Each of the two folders carries a `Readme.md` index (the skill reads it at start instead of scanning). Author-created (never scaffolded empty), one folder per design conversation. Owns no code (no `owns:` frontmatter); the harvest copies its conclusions into `architecture/`/`history/`. Retire a topic's folder by hand only when the design line is dead. (Distinct from `docs/history/research/{topic}/` above — that is a frozen deep-research record, not a brainstorm session.)
136
136
  - `docs/history/backlog.md`: Tracked work items. Append new items under appropriate priority.
137
137
 
138
138
  ## Health Log
@@ -51,7 +51,7 @@ Three peer modes plus a Completion step — enter wherever the user's thinking a
51
51
  | **LLD** (low-level design) | new component/feature work | `lld-mode` agent + `documentation` skill | Plan |
52
52
  | **Plan** | an LLD is approved | `documentation` skill → `docs/history/plans/YYYY-MM-DD-{slug}.md` | Completion |
53
53
 
54
- > Brainstorm entry needs a **basis** — a reference document or a one-shot brain dump; drip-sized asks (a one-line fix) are too small and get redirected. A **pillar** is a recorded strategic principle from a past brainstorm: kept records under `docs/brainstorm/`, harvested doctrine under `docs/architecture/`. The LLD is the feature doc itself — `docs/features/{feature}.md`, design intent first, extended in place at Completion.
54
+ > Brainstorm entry needs a **basis** — a reference document or a one-shot brain dump; drip-sized asks (a one-line fix) are too small and get redirected. A **pillar** is a recorded strategic principle from a past brainstorm: in-progress sessions under `docs/research/`, harvested ones under `docs/history/brainstorms/`, harvested doctrine under `docs/architecture/`. The LLD is the feature doc itself — `docs/features/{feature}.md`, design intent first, extended in place at Completion.
55
55
 
56
56
  **On Plan Completion:**
57
57
 
@@ -61,7 +61,7 @@ Three peer modes plus a Completion step — enter wherever the user's thinking a
61
61
 
62
62
  **On Brainstorm Close** (when a session ends, not when a plan completes):
63
63
 
64
- - The session record lives at `docs/brainstorm/{topic}/` (committed, one subfolder per topic) and stays in place as provenance.
64
+ - The session record lives at `docs/research/{topic}-brainstorming/` (committed) while active; on close + harvest it moves to `docs/history/brainstorms/{topic}/` as provenance — see `docs/structure.md`.
65
65
  - Harvest conclusions by scope: doctrine, glossary, non-goals, IA changes → `docs/architecture/`; decisions → `docs/architecture/decisions/` (one AD per subject — revising a recorded subject updates its AD in place); backlog items → `docs/history/backlog.md`.
66
66
  - Open questions block close.
67
67
 
@@ -131,24 +131,25 @@ docs/
131
131
  ├── features/ # Feature specs — the only first-class doc unit (flat; ownership in each doc's `owns:` frontmatter)
132
132
  │ └── {group}/ # browse-only subfolder for grouping; NEVER a module; may carry a Readme.md
133
133
  ├── operations/ # Setup, development, deployment, CI/CD
134
- ├── brainstorm/ # Optional — kept design records, one {topic}/ subfolder per session (state.md + flat pillar files + basis/, evidence/)
135
- │ └── {topic}/ # created by the `brainstorm` skill; NOT scaffolded empty
134
+ ├── research/ # Optional — in-progress brainstorm sessions ({topic}-brainstorming/) + standing research; Readme.md is the index
135
+ │ └── {topic}-brainstorming/ # created by the `brainstorm` skill; NOT scaffolded empty; moves to history/brainstorms/ on harvest
136
136
  ├── history/
137
137
  │ ├── CHANGELOG.md # Master changelog index
138
138
  │ ├── changelog/ # Individual entries
139
139
  │ ├── plans/ # Implementation plans (Status field required)
140
+ │ ├── brainstorms/ # Harvested brainstorm sessions ({topic}/), kept as provenance; Readme.md is the index
140
141
  │ └── backlog.md # Tracked work items by priority (P0-P3)
141
142
  ├── memory/ # index.md, main.md, {agent}.md — project knowledge + per-agent strategy memory
142
143
  └── tests/ # Optional, author-maintained — create only if test docs exist
143
144
  ```
144
145
 
145
- There is **no `docs/routing.md`**, **no `docs/modules/{m}/`**, **no `docs/pillars/`**, **no `docs/boundaries/`**. Code ownership lives in feature `owns:` frontmatter; a module is a `module:` label, not a folder; boundaries are diagnosed from source; brainstorm records are kept design records.
146
+ There is **no `docs/routing.md`**, **no `docs/modules/{m}/`**, **no `docs/pillars/`**, **no `docs/boundaries/`**. Code ownership lives in feature `owns:` frontmatter; a module is a `module:` label, not a folder; boundaries are diagnosed from source; brainstorm records live in `docs/research/` (active) and `docs/history/brainstorms/` (harvested).
146
147
 
147
- > `docs/brainstorm/{topic}/` is **author-created, never scaffolded** — the `brainstorm` skill writes it when a session opens, and it is **kept** (committed) as the provenance the steering pillars distil from. Recognize it as canonical: never flag it as a doc "outside the structure" and never delete it during reconcile.
148
+ > Brainstorm records are **author-created, never scaffolded** — the `brainstorm` skill writes an active session at `docs/research/{topic}-brainstorming/` and moves it to `docs/history/brainstorms/{topic}/` on harvest, kept (committed) as the provenance the steering pillars distil from. Recognize both as canonical: never flag them as docs "outside the structure" and never delete them during reconcile. Each folder carries a `Readme.md` index — keep it in sync with the folders it lists (every session has a row; no stale or missing rows), since the `brainstorm` skill reads the indexes instead of scanning.
148
149
 
149
150
  ### Step B1 — Inventory and classify
150
151
 
151
- Glob every markdown file. Classify each: Architecture, Features, Operations, Plans, Changelogs, Backlog, Brainstorm records (stay), Stale/Deprecated (delete), Root docs (stay). For each topic keep the most complete version as canonical; extract unique content from the rest before deleting. **No redirect stubs** — when you move a file, delete the original and fix every reference (cross-doc links, memory files). Anything already under `docs/brainstorm/{topic}/` is a **kept design record** — leave it in place untouched; never reclassify its pillars as Architecture/Stale or relocate them.
152
+ Glob every markdown file. Classify each: Architecture, Features, Operations, Plans, Changelogs, Backlog, Brainstorm records (stay), Stale/Deprecated (delete), Root docs (stay). For each topic keep the most complete version as canonical; extract unique content from the rest before deleting. **No redirect stubs** — when you move a file, delete the original and fix every reference (cross-doc links, memory files). Anything already under `docs/research/{topic}-brainstorming/` or `docs/history/brainstorms/{topic}/` is a **kept design record** — leave it in place untouched; never reclassify its pillars as Architecture/Stale or relocate them.
152
153
 
153
154
  While reading each markdown doc to classify it, if the doc names a code symbol it asserts exists that **statically resolves to nothing**, note it as an observation for the Part A audit — **only** on stacks where static resolution is reliable (stay silent on codegen/reflection/DI/barrel stacks); scoped to docs already being read here, never a whole-repo prose sweep; **docs only**, never code-file comments.
154
155
 
@@ -166,7 +167,7 @@ This is what makes baseline more than a fresh scaffold. Detect old-shape artifac
166
167
  | `docs/OWNERSHIP_INDEX.md` (legacy derived ownership index) | delete — ownership is the union of feature `owns:` frontmatter, surfaced by the generated index |
167
168
  | `docs/operations/guardrails.md` | fold durable contract notes into `docs/architecture/` |
168
169
  | `docs/architecture/overview.md` | split into `domain-model.md` / `glossary.md` / `non-goals.md` / `references.md` / `open-questions.md` |
169
- | a root `brainstorm/` or `brainstorming/` folder (legacy transient/per-harness location) | move each design record into `docs/brainstorm/{topic}/`, kept; delete the root folder |
170
+ | a legacy `docs/brainstorm/{topic}/`, or a root `brainstorm/`/`brainstorming/` folder | move each **active** record to `docs/research/{topic}-brainstorming/` and each **harvested** one to `docs/history/brainstorms/{topic}/` (dropping the suffix); create/refresh both `Readme.md` indexes; delete the emptied folder |
170
171
  | no `harness-version` in `structure.md` | stamp it (Step B4) |
171
172
 
172
173
  ### Step B3 — Present the reconcile plan, then execute
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "28b0a026d66a"
10
+ "digest": "287a6a528ec4"
11
11
  }
@@ -128,13 +128,13 @@ The writing posture is a **mode** chosen at intake, folded into `build.md`:
128
128
 
129
129
  ## Exit artifacts
130
130
 
131
- The session writes a **kept** design record at `docs/brainstorm/{topic}/` (one subfolder per topic). At `stop`, after the final five-source sync (self-containment included — the record is verified standalone-readable exactly when it's about to become the only survivor of the session), the skill _offers_ what to **publish** from it (`AskUserQuestion`, multi-select — a session can emit more than one):
131
+ The session writes a design record at `docs/research/{topic}-brainstorming/` (one folder per topic), moved to `docs/history/brainstorms/{topic}/` on harvest. At `stop`, after the final five-source sync (self-containment included — the record is verified standalone-readable exactly when it's about to become the only survivor of the session), the skill _offers_ what to **publish** from it (`AskUserQuestion`, multi-select — a session can emit more than one):
132
132
 
133
133
  - **Source of truth** — one consolidated, README-style canonical doc for the thing designed (`templates/source-of-truth.md`); lands in the repo's feature/architecture doc home, else a topic `Readme.md`.
134
134
  - **Plans** — one or more executable plan docs → `docs/history/plans/` (Status: Draft).
135
135
  - **Harvest into the living docs** — conclusions dispersed by scope into ADs (architecture decisions), the domain model, and the backlog.
136
136
 
137
- The `docs/brainstorm/{topic}/` record is **kept** whichever you pick — never deleted; it is the provenance every artifact traces back to. See `exit-artifacts.md`.
137
+ The session record is **kept** whichever you pick — never deleted; on harvest it moves to `docs/history/brainstorms/{topic}/` as the provenance every artifact traces back to. See `exit-artifacts.md`.
138
138
 
139
139
  ---
140
140
 
@@ -159,4 +159,4 @@ brainstorm/ # the skill (in .claude/skills/)
159
159
  └── templates/ # pillar templates + evidence.md + source-of-truth.md, used in the record and at stop
160
160
  ```
161
161
 
162
- The session itself is written to `docs/brainstorm/{topic}/` (kept, committed) — not here.
162
+ The session itself is written to `docs/research/{topic}-brainstorming/` (committed; moved to `docs/history/brainstorms/{topic}/` on harvest) — not here.
@@ -42,6 +42,8 @@ Write as if the transcript is already deleted — it will be. The folder must le
42
42
 
43
43
  ## `start`
44
44
 
45
+ First, consult the two indexes — never scan folders. `docs/research/Readme.md` lists **active** sessions; `docs/history/brainstorms/Readme.md` lists **harvested** ones. Match the topic against both: an active match → resume it (§3, reusing its folder); a harvested match → surface that prior exploration and ask whether to reopen it (move the folder back to `docs/research/{topic}-brainstorming/`) or branch a fresh topic; no match → a new session. Then:
46
+
45
47
  ### 1. The entry gate
46
48
 
47
49
  A session needs substance before it opens. Ask for a **basis**: a reference document (path or URL), or a one-shot brain dump of the whole idea, right now, in prose.
@@ -62,7 +64,7 @@ Then propose the **aspect map**: the thinking dimensions for _this specific idea
62
64
 
63
65
  ### 3. Bootstrap
64
66
 
65
- Session folder: `docs/brainstorm/{topic}/` — a **committed, kept** design record, one subfolder per design topic (slug the topic; confirm it in one line). Resume an existing topic by reusing its folder if it already holds a `state.md`. The record stays in the repo after the exit artifacts publish (it is the provenance they distil from — see `exit-artifacts.md`), so it lives under `docs/` like any other durable project knowledge, not at the repo root. Create only the pillars the complexity calls for, from `templates/` (never overwrite existing files; if a template is missing, create the file from the field lists in **Pillars**). `basis/` holds the frozen inputs; `evidence/` materializes on the first session-produced analysis (memory contract, rule 3). Write top-level `state.md`:
67
+ Session folder: `docs/research/{topic}-brainstorming/` — a **committed** design record, one folder per design topic (slug the topic; confirm it in one line). Add a row to the `docs/research/Readme.md` index. Resume an existing topic by reusing its folder if it already holds a `state.md`. The record lives here while the session is active; on close **and** harvest it moves to `docs/history/brainstorms/{topic}/` as the provenance the exit artifacts distil from (see `stop` and `exit-artifacts.md`). Create only the pillars the complexity calls for, from `templates/` (never overwrite existing files; if a template is missing, create the file from the field lists in **Pillars**). `basis/` holds the frozen inputs; `evidence/` materializes on the first session-produced analysis (memory contract, rule 3). Write top-level `state.md`:
66
68
 
67
69
  ```
68
70
  STATE: open
@@ -136,8 +138,8 @@ Zero means _"audited against the five sources and clean"_ — never _"nothing ca
136
138
 
137
139
  1. Run a final sync (wait for any in-flight sync first). It audits all five sources — self-containment included, so the record is verified standalone-readable exactly when it is about to become the only survivor of the session.
138
140
  2. **Coherent** → say so and proceed. **Questions open** → list them plainly (English first, codes in parentheses) and offer per question: resolve now (mini-converge) / park explicitly (backlog or non-goals, with reason) / leave open and stop anyway — the folder keeps full state and resumes exactly where it left off. Flag parked **self-containment** gaps distinctly: parking one means the record ships not fully standalone.
139
- 3. **Publish exit artifacts** — see `exit-artifacts.md`. Offer the choice (`AskUserQuestion`, multi-select): a **source of truth** (one consolidated README-style doc — the standing reference for the thing designed), **plans** (executable work → `docs/history/plans/`), and/or **harvest into the living docs** (conclusions dispersed by scope into ADs — architecture decisions — the domain model, the backlog). The `docs/brainstorm/{topic}/` record is **kept** (committed) whichever you pick — it is the provenance every artifact traces back to and the seed the next session resumes from.
140
- 4. Write `STATE: closed` + one-line reason. Print: _"Run `/brainstorm start` to resume."_
141
+ 3. **Publish exit artifacts** — see `exit-artifacts.md`. Offer the choice (`AskUserQuestion`, multi-select): a **source of truth** (one consolidated README-style doc — the standing reference for the thing designed), **plans** (executable work → `docs/history/plans/`), and/or **harvest into the living docs** (conclusions dispersed by scope into ADs — architecture decisions — the domain model, the backlog). The session record is **kept** (committed) whichever you pick — it is the provenance every artifact traces back to and the seed the next session resumes from.
142
+ 4. Write `STATE: closed` + one-line reason. If the harvest is complete (conclusions dispersed into the living docs), **move** the folder from `docs/research/{topic}-brainstorming/` to `docs/history/brainstorms/{topic}/` and update both indexes — drop its row from `docs/research/Readme.md`, add it to `docs/history/brainstorms/Readme.md`. If the session is only paused (questions parked, more to come), leave it in `docs/research/` and update its index row's status. Print: _"Run `/brainstorm start` to resume."_
141
143
 
142
144
  ## Conduct — holds for the whole session
143
145
 
@@ -1,8 +1,9 @@
1
1
  # Exit artifacts
2
2
 
3
- What `/brainstorm stop` publishes from a closed session. The `docs/brainstorm/{topic}/` record is **kept
3
+ What `/brainstorm stop` publishes from a closed session. The session record is **kept
4
4
  either way** — committed provenance, never a scratchpad. Exit artifacts copy the session's _conclusions_
5
- outward into the form the work needs; the record stays as the source they trace back to.
5
+ outward into the form the work needs; the record stays as the source they trace back to — and, once
6
+ harvested, moves from `docs/research/{topic}-brainstorming/` to `docs/history/brainstorms/{topic}/`.
6
7
 
7
8
  At `stop`, after the final sync, **offer the artifact choice** (`AskUserQuestion`, multi-select — a session
8
9
  can publish more than one):
@@ -54,9 +55,12 @@ not folders — a finding scoped to one module still lands in `docs/architecture
54
55
 
55
56
  Append a changelog entry at `docs/history/changelog/YYYY-MM-DD-brainstorm-{slug}.md` listing what was published where.
56
57
 
57
- ## After publishing — keep the record
58
+ ## After publishing — move the record to history
58
59
 
59
- **Keep `docs/brainstorm/{topic}/` — never delete it.** The exit artifacts now carry the distilled
60
- conclusions, but the record stays committed as their provenance: a traceable source for every published
61
- headline, and the seed the next `/brainstorm start` on this topic resumes from. Retire a topic's folder
62
- by hand only when the design line is truly dead.
60
+ **Move `docs/research/{topic}-brainstorming/` → `docs/history/brainstorms/{topic}/`, and update both
61
+ `Readme.md` indexes** (drop the row from `docs/research/Readme.md`, add it to
62
+ `docs/history/brainstorms/Readme.md`). The exit artifacts now carry the distilled conclusions; the record
63
+ itself is **kept** — never deleted — but as harvested provenance it belongs under `docs/history/brainstorms/`:
64
+ a traceable source for every published headline, and the seed the next `/brainstorm start` on this topic
65
+ resumes from. A session that is only **paused** (not harvested) stays in `docs/research/`. Retire a topic's
66
+ folder by hand only when the design line is truly dead.
@@ -3,8 +3,8 @@
3
3
  > This is a **source-of-truth doc**: the standing, canonical reference for [thing]. Write it like a
4
4
  > README — present tense, reader-first, the thing described as it _is_. It is **not a plan** (no steps,
5
5
  > status, or sequencing — those go to `docs/history/plans/`) and **not the brainstorm record** (no
6
- > `Q-N`/`D-N` codes, no "Why / How to apply" ledger, no rejected alternatives — those stay in
7
- > `docs/brainstorm/{topic}/` and any ADs). One document; if a section outgrows it, link out, don't sprawl.
6
+ > `Q-N`/`D-N` codes, no "Why / How to apply" ledger, no rejected alternatives — those stay in the harvested
7
+ > record at `docs/history/brainstorms/{topic}/` and any ADs). One document; if a section outgrows it, link out, don't sprawl.
8
8
  >
9
9
  > **Placement.** In a repo with a feature-doc system this lands as `docs/features/{slug}.md` and carries
10
10
  > that system's frontmatter (`owns:` / `module:` / `keywords:` / `status:`). Cross-cutting → `docs/architecture/{slug}.md`.
@@ -41,9 +41,9 @@ and what is explicitly out of scope.]
41
41
 
42
42
  ## Open questions
43
43
 
44
- [One line pointing at `docs/brainstorm/{topic}/questions.md` if any remain open. Omit if none.]
44
+ [One line pointing at `docs/history/brainstorms/{topic}/questions.md` if any remain open. Omit if none.]
45
45
 
46
46
  ---
47
47
 
48
- _Distilled from `docs/brainstorm/{topic}/`. That record holds the rationale, the rejected alternatives,
48
+ _Distilled from `docs/history/brainstorms/{topic}/`. That record holds the rationale, the rejected alternatives,
49
49
  and the provenance for everything above._
@@ -21,7 +21,7 @@ Every document is exactly one of two things. Decide which before writing a word
21
21
  | Named by | Topic: `auth.md`, `AD-003-persistence.md` | Date: `YYYY-MM-DD-slug.md` (or append position) |
22
22
  | On change | Body rewritten in place the moment reality changes | Never edited — frozen at completion or append-only |
23
23
  | Read to | Act correctly today | Trace provenance, diagnose, audit |
24
- | Lives in | `docs/features/`, `docs/architecture/`, `docs/operations/`, `docs/tests/`, READMEs | `docs/history/` (plans, changelog, research, migrations), `docs/brainstorm/`, `docs/memory/` |
24
+ | Lives in | `docs/features/`, `docs/architecture/`, `docs/operations/`, `docs/tests/`, READMEs | `docs/history/` (plans, changelog, brainstorms, research, migrations), `docs/research/`, `docs/memory/` |
25
25
 
26
26
  The two guarantees are complementary and both break on mixing: a reader holding a **truth document** must never need history to interpret it; a reader holding a **record** must be able to trust it was never rewritten. So the natures never share a document body.
27
27
 
@@ -111,12 +111,12 @@ Each topic has one canonical location. Read from here, not from plans or changel
111
111
  | Change records | `docs/history/changelog/` | Individual entries |
112
112
  | Migration runbooks | `docs/history/migrations/` | YYYY-MM-DD-name.md |
113
113
  | Deep-research artifacts | `docs/history/research/{topic}/` | README.md + findings.md + sources.md |
114
- | Brainstorm design records | `docs/brainstorm/{topic}/` | state.md + pillars/ |
114
+ | Brainstorm design records | `docs/research/{topic}-brainstorming/` (active) → `docs/history/brainstorms/{topic}/` (harvested) | state.md + pillars/ |
115
115
  | Backlog | `docs/history/` | backlog.md |
116
116
 
117
117
  ## The Two Natures
118
118
 
119
- Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `brainstorm/`, `memory/` hold records.
119
+ Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `research/`, `memory/` hold records.
120
120
 
121
121
  - Truth documents are rewritten in place when reality changes — the change-story goes to a changelog entry, never into the truth doc's body.
122
122
  - Records freeze: plans at `Complete`/`Abandoned`, changelog entries and migration runbooks once written/executed. A scope change is a new dated record that links back.
@@ -132,7 +132,7 @@ Every doc is a **truth document** (states current absolutes, topic-named, update
132
132
  - `docs/history/changelog/`: Records. Append-only.
133
133
  - `docs/history/migrations/`: Records. One-shot migration/upgrade runbooks — authored before execution, outcome-stamped and frozen after.
134
134
  - `docs/history/research/{topic}/`: Deep-research artifacts — the dumped output of a research pass, one folder per topic (conventionally `README.md` synthesis + `findings.md` verified claims & citations + `sources.md`). A point-in-time, cited record — **not** a living authority doc: it owns no code (no `owns:` frontmatter) and is never edited to "stay current." A spec/plan links to it for grounding; a new question gets a new topic folder.
135
- - `docs/brainstorm/{topic}/`: Kept design records — the committed Brainstorming-Mode session for a topic (`state.md` + `pillars/`), written by the `brainstorm` skill and **kept** after harvest as the provenance the truth layer distils from. Author-created (never scaffolded empty), one subfolder per design conversation. Owns no code (no `owns:` frontmatter); the harvest copies its conclusions into `architecture/`/`history/` while the record stays in place. Retire a topic's folder by hand only when the design line is dead.
135
+ - `docs/research/{topic}-brainstorming/` → `docs/history/brainstorms/{topic}/`: Brainstorm design records — the committed Brainstorming-Mode session for a topic (`state.md` + `pillars/`), written by the `brainstorm` skill. An active session lives under `docs/research/`; on close + harvest it **moves** to `docs/history/brainstorms/` and is **kept** as the provenance the truth layer distils from. Each of the two folders carries a `Readme.md` index (the skill reads it at start instead of scanning). Author-created (never scaffolded empty), one folder per design conversation. Owns no code (no `owns:` frontmatter); the harvest copies its conclusions into `architecture/`/`history/`. Retire a topic's folder by hand only when the design line is dead. (Distinct from `docs/history/research/{topic}/` above — that is a frozen deep-research record, not a brainstorm session.)
136
136
  - `docs/history/backlog.md`: Tracked work items. Append new items under appropriate priority.
137
137
 
138
138
  ## Health Log
@@ -40,7 +40,7 @@ Three peer modes plus a Completion step — enter wherever the user's thinking a
40
40
  | **LLD** (low-level design) | new feature work | `lld-mode` agent + `documentation` skill | Plan |
41
41
  | **Plan** | an LLD is approved | `documentation` skill → `docs/history/plans/YYYY-MM-DD-{slug}.md` | Completion |
42
42
 
43
- > Brainstorm entry needs a **basis** — a reference document or a one-shot brain dump; drip-sized asks (a bug fix, one button) are too small and get redirected. A **pillar** is a recorded strategic principle from a past brainstorm: kept records live under `docs/brainstorm/`, harvested doctrine under `docs/architecture/`. Runtimes without slash commands: read `.claude/skills/brainstorm/SKILL.md` and follow it inline. The LLD is the feature doc itself — `docs/features/{feature}.md`, design intent first, extended in place at Completion.
43
+ > Brainstorm entry needs a **basis** — a reference document or a one-shot brain dump; drip-sized asks (a bug fix, one button) are too small and get redirected. A **pillar** is a recorded strategic principle from a past brainstorm: in-progress sessions live under `docs/research/`, harvested ones under `docs/history/brainstorms/`, harvested doctrine under `docs/architecture/`. Runtimes without slash commands: read `.claude/skills/brainstorm/SKILL.md` and follow it inline. The LLD is the feature doc itself — `docs/features/{feature}.md`, design intent first, extended in place at Completion.
44
44
 
45
45
  **On Plan Completion:**
46
46
 
@@ -50,7 +50,7 @@ Three peer modes plus a Completion step — enter wherever the user's thinking a
50
50
 
51
51
  **On Brainstorm Close** (a separate procedure — when a brainstorm session ends, not when a plan completes):
52
52
 
53
- - The session record lives at `docs/brainstorm/{topic}/` (committed, one subfolder per topic) and stays in place as provenance.
53
+ - The session record lives at `docs/research/{topic}-brainstorming/` (committed) while active; on close + harvest it moves to `docs/history/brainstorms/{topic}/` as provenance — see `docs/structure.md`.
54
54
  - Harvest conclusions by scope: doctrine, glossary, non-goals, information-architecture changes → `docs/architecture/`; decisions → `docs/architecture/decisions/` (one AD per subject — revising a recorded subject updates its AD in place); backlog items → `docs/history/backlog.md`.
55
55
  - Open questions block close.
56
56
 
@@ -131,24 +131,25 @@ docs/
131
131
  ├── features/ # Feature specs — the only first-class doc unit (flat; ownership in each doc's `owns:` frontmatter)
132
132
  │ └── {group}/ # browse-only subfolder for grouping; NEVER a module; may carry a Readme.md
133
133
  ├── operations/ # Setup, development, deployment, CI/CD
134
- ├── brainstorm/ # Optional — kept design records, one {topic}/ subfolder per session (state.md + flat pillar files + basis/, evidence/)
135
- │ └── {topic}/ # created by the `brainstorm` skill; NOT scaffolded empty
134
+ ├── research/ # Optional — in-progress brainstorm sessions ({topic}-brainstorming/) + standing research; Readme.md is the index
135
+ │ └── {topic}-brainstorming/ # created by the `brainstorm` skill; NOT scaffolded empty; moves to history/brainstorms/ on harvest
136
136
  ├── history/
137
137
  │ ├── CHANGELOG.md # Master changelog index
138
138
  │ ├── changelog/ # Individual entries
139
139
  │ ├── plans/ # Implementation plans (Status field required)
140
+ │ ├── brainstorms/ # Harvested brainstorm sessions ({topic}/), kept as provenance; Readme.md is the index
140
141
  │ └── backlog.md # Tracked work items by priority (P0-P3)
141
142
  ├── memory/ # index.md, main.md, {agent}.md — project knowledge + per-agent strategy memory
142
143
  └── tests/ # Optional, author-maintained — create only if test docs exist
143
144
  ```
144
145
 
145
- There is **no `docs/routing.md`**, **no `docs/modules/{m}/`**, **no `docs/pillars/`**, **no `docs/boundaries/`**. Code ownership lives in feature `owns:` frontmatter; a module is a `module:` label, not a folder; boundaries are diagnosed from source; brainstorm records are kept design records.
146
+ There is **no `docs/routing.md`**, **no `docs/modules/{m}/`**, **no `docs/pillars/`**, **no `docs/boundaries/`**. Code ownership lives in feature `owns:` frontmatter; a module is a `module:` label, not a folder; boundaries are diagnosed from source; brainstorm records live in `docs/research/` (active) and `docs/history/brainstorms/` (harvested).
146
147
 
147
- > `docs/brainstorm/{topic}/` is **author-created, never scaffolded** — the `brainstorm` skill writes it when a session opens, and it is **kept** (committed) as the provenance the steering pillars distil from. Recognize it as canonical: never flag it as a doc "outside the structure" and never delete it during reconcile.
148
+ > Brainstorm records are **author-created, never scaffolded** — the `brainstorm` skill writes an active session at `docs/research/{topic}-brainstorming/` and moves it to `docs/history/brainstorms/{topic}/` on harvest, kept (committed) as the provenance the steering pillars distil from. Recognize both as canonical: never flag them as docs "outside the structure" and never delete them during reconcile. Each folder carries a `Readme.md` index — keep it in sync with the folders it lists (every session has a row; no stale or missing rows), since the `brainstorm` skill reads the indexes instead of scanning.
148
149
 
149
150
  ### Step B1 — Inventory and classify
150
151
 
151
- Glob every markdown file. Classify each: Architecture, Features, Operations, Plans, Changelogs, Backlog, Brainstorm records (stay), Stale/Deprecated (delete), Root docs (stay). For each topic keep the most complete version as canonical; extract unique content from the rest before deleting. **No redirect stubs** — when you move a file, delete the original and fix every reference (cross-doc links, memory files). Anything already under `docs/brainstorm/{topic}/` is a **kept design record** — leave it in place untouched; never reclassify its pillars as Architecture/Stale or relocate them.
152
+ Glob every markdown file. Classify each: Architecture, Features, Operations, Plans, Changelogs, Backlog, Brainstorm records (stay), Stale/Deprecated (delete), Root docs (stay). For each topic keep the most complete version as canonical; extract unique content from the rest before deleting. **No redirect stubs** — when you move a file, delete the original and fix every reference (cross-doc links, memory files). Anything already under `docs/research/{topic}-brainstorming/` or `docs/history/brainstorms/{topic}/` is a **kept design record** — leave it in place untouched; never reclassify its pillars as Architecture/Stale or relocate them.
152
153
 
153
154
  While reading each markdown doc to classify it, if the doc names a code symbol it asserts exists that **statically resolves to nothing**, note it as an observation for the Part A audit — **only** on stacks where static resolution is reliable (stay silent on codegen/reflection/DI/barrel stacks); scoped to docs already being read here, never a whole-repo prose sweep; **docs only**, never code-file comments.
154
155
 
@@ -166,7 +167,7 @@ This is what makes baseline more than a fresh scaffold. Detect old-shape artifac
166
167
  | `docs/OWNERSHIP_INDEX.md` (legacy derived ownership index) | delete — ownership is the union of feature `owns:` frontmatter, surfaced by the generated index |
167
168
  | `docs/operations/guardrails.md` | fold durable contract notes into `docs/architecture/` |
168
169
  | `docs/architecture/overview.md` | split into `domain-model.md` / `glossary.md` / `non-goals.md` / `references.md` / `open-questions.md` |
169
- | a root `brainstorm/` or `brainstorming/` folder (legacy transient/per-harness location) | move each design record into `docs/brainstorm/{topic}/`, kept; delete the root folder |
170
+ | a legacy `docs/brainstorm/{topic}/`, or a root `brainstorm/`/`brainstorming/` folder | move each **active** record to `docs/research/{topic}-brainstorming/` and each **harvested** one to `docs/history/brainstorms/{topic}/` (dropping the suffix); create/refresh both `Readme.md` indexes; delete the emptied folder |
170
171
  | no `harness-version` in `structure.md` | stamp it (Step B4) |
171
172
 
172
173
  ### Step B3 — Present the reconcile plan, then execute
@@ -7,5 +7,5 @@
7
7
  ".prettierignore",
8
8
  ".vscode/settings.json"
9
9
  ],
10
- "digest": "691b6797cde7"
10
+ "digest": "e42a39e54bdb"
11
11
  }
@@ -128,13 +128,13 @@ The writing posture is a **mode** chosen at intake, folded into `build.md`:
128
128
 
129
129
  ## Exit artifacts
130
130
 
131
- The session writes a **kept** design record at `docs/brainstorm/{topic}/` (one subfolder per topic). At `stop`, after the final five-source sync (self-containment included — the record is verified standalone-readable exactly when it's about to become the only survivor of the session), the skill _offers_ what to **publish** from it (`AskUserQuestion`, multi-select — a session can emit more than one):
131
+ The session writes a design record at `docs/research/{topic}-brainstorming/` (one folder per topic), moved to `docs/history/brainstorms/{topic}/` on harvest. At `stop`, after the final five-source sync (self-containment included — the record is verified standalone-readable exactly when it's about to become the only survivor of the session), the skill _offers_ what to **publish** from it (`AskUserQuestion`, multi-select — a session can emit more than one):
132
132
 
133
133
  - **Source of truth** — one consolidated, README-style canonical doc for the thing designed (`templates/source-of-truth.md`); lands in the repo's feature/architecture doc home, else a topic `Readme.md`.
134
134
  - **Plans** — one or more executable plan docs → `docs/history/plans/` (Status: Draft).
135
135
  - **Harvest into the living docs** — conclusions dispersed by scope into ADs (architecture decisions), the domain model, and the backlog.
136
136
 
137
- The `docs/brainstorm/{topic}/` record is **kept** whichever you pick — never deleted; it is the provenance every artifact traces back to. See `exit-artifacts.md`.
137
+ The session record is **kept** whichever you pick — never deleted; on harvest it moves to `docs/history/brainstorms/{topic}/` as the provenance every artifact traces back to. See `exit-artifacts.md`.
138
138
 
139
139
  ---
140
140
 
@@ -159,4 +159,4 @@ brainstorm/ # the skill (in .claude/skills/)
159
159
  └── templates/ # pillar templates + evidence.md + source-of-truth.md, used in the record and at stop
160
160
  ```
161
161
 
162
- The session itself is written to `docs/brainstorm/{topic}/` (kept, committed) — not here.
162
+ The session itself is written to `docs/research/{topic}-brainstorming/` (committed; moved to `docs/history/brainstorms/{topic}/` on harvest) — not here.
@@ -42,6 +42,8 @@ Write as if the transcript is already deleted — it will be. The folder must le
42
42
 
43
43
  ## `start`
44
44
 
45
+ First, consult the two indexes — never scan folders. `docs/research/Readme.md` lists **active** sessions; `docs/history/brainstorms/Readme.md` lists **harvested** ones. Match the topic against both: an active match → resume it (§3, reusing its folder); a harvested match → surface that prior exploration and ask whether to reopen it (move the folder back to `docs/research/{topic}-brainstorming/`) or branch a fresh topic; no match → a new session. Then:
46
+
45
47
  ### 1. The entry gate
46
48
 
47
49
  A session needs substance before it opens. Ask for a **basis**: a reference document (path or URL), or a one-shot brain dump of the whole idea, right now, in prose.
@@ -62,7 +64,7 @@ Then propose the **aspect map**: the thinking dimensions for _this specific idea
62
64
 
63
65
  ### 3. Bootstrap
64
66
 
65
- Session folder: `docs/brainstorm/{topic}/` — a **committed, kept** design record, one subfolder per design topic (slug the topic; confirm it in one line). Resume an existing topic by reusing its folder if it already holds a `state.md`. The record stays in the repo after the exit artifacts publish (it is the provenance they distil from — see `exit-artifacts.md`), so it lives under `docs/` like any other durable project knowledge, not at the repo root. Create only the pillars the complexity calls for, from `templates/` (never overwrite existing files; if a template is missing, create the file from the field lists in **Pillars**). `basis/` holds the frozen inputs; `evidence/` materializes on the first session-produced analysis (memory contract, rule 3). Write top-level `state.md`:
67
+ Session folder: `docs/research/{topic}-brainstorming/` — a **committed** design record, one folder per design topic (slug the topic; confirm it in one line). Add a row to the `docs/research/Readme.md` index. Resume an existing topic by reusing its folder if it already holds a `state.md`. The record lives here while the session is active; on close **and** harvest it moves to `docs/history/brainstorms/{topic}/` as the provenance the exit artifacts distil from (see `stop` and `exit-artifacts.md`). Create only the pillars the complexity calls for, from `templates/` (never overwrite existing files; if a template is missing, create the file from the field lists in **Pillars**). `basis/` holds the frozen inputs; `evidence/` materializes on the first session-produced analysis (memory contract, rule 3). Write top-level `state.md`:
66
68
 
67
69
  ```
68
70
  STATE: open
@@ -136,8 +138,8 @@ Zero means _"audited against the five sources and clean"_ — never _"nothing ca
136
138
 
137
139
  1. Run a final sync (wait for any in-flight sync first). It audits all five sources — self-containment included, so the record is verified standalone-readable exactly when it is about to become the only survivor of the session.
138
140
  2. **Coherent** → say so and proceed. **Questions open** → list them plainly (English first, codes in parentheses) and offer per question: resolve now (mini-converge) / park explicitly (backlog or non-goals, with reason) / leave open and stop anyway — the folder keeps full state and resumes exactly where it left off. Flag parked **self-containment** gaps distinctly: parking one means the record ships not fully standalone.
139
- 3. **Publish exit artifacts** — see `exit-artifacts.md`. Offer the choice (`AskUserQuestion`, multi-select): a **source of truth** (one consolidated README-style doc — the standing reference for the thing designed), **plans** (executable work → `docs/history/plans/`), and/or **harvest into the living docs** (conclusions dispersed by scope into ADs — architecture decisions — the domain model, the backlog). The `docs/brainstorm/{topic}/` record is **kept** (committed) whichever you pick — it is the provenance every artifact traces back to and the seed the next session resumes from.
140
- 4. Write `STATE: closed` + one-line reason. Print: _"Run `/brainstorm start` to resume."_
141
+ 3. **Publish exit artifacts** — see `exit-artifacts.md`. Offer the choice (`AskUserQuestion`, multi-select): a **source of truth** (one consolidated README-style doc — the standing reference for the thing designed), **plans** (executable work → `docs/history/plans/`), and/or **harvest into the living docs** (conclusions dispersed by scope into ADs — architecture decisions — the domain model, the backlog). The session record is **kept** (committed) whichever you pick — it is the provenance every artifact traces back to and the seed the next session resumes from.
142
+ 4. Write `STATE: closed` + one-line reason. If the harvest is complete (conclusions dispersed into the living docs), **move** the folder from `docs/research/{topic}-brainstorming/` to `docs/history/brainstorms/{topic}/` and update both indexes — drop its row from `docs/research/Readme.md`, add it to `docs/history/brainstorms/Readme.md`. If the session is only paused (questions parked, more to come), leave it in `docs/research/` and update its index row's status. Print: _"Run `/brainstorm start` to resume."_
141
143
 
142
144
  ## Conduct — holds for the whole session
143
145
 
@@ -1,8 +1,9 @@
1
1
  # Exit artifacts
2
2
 
3
- What `/brainstorm stop` publishes from a closed session. The `docs/brainstorm/{topic}/` record is **kept
3
+ What `/brainstorm stop` publishes from a closed session. The session record is **kept
4
4
  either way** — committed provenance, never a scratchpad. Exit artifacts copy the session's _conclusions_
5
- outward into the form the work needs; the record stays as the source they trace back to.
5
+ outward into the form the work needs; the record stays as the source they trace back to — and, once
6
+ harvested, moves from `docs/research/{topic}-brainstorming/` to `docs/history/brainstorms/{topic}/`.
6
7
 
7
8
  At `stop`, after the final sync, **offer the artifact choice** (`AskUserQuestion`, multi-select — a session
8
9
  can publish more than one):
@@ -54,9 +55,12 @@ not folders — a finding scoped to one module still lands in `docs/architecture
54
55
 
55
56
  Append a changelog entry at `docs/history/changelog/YYYY-MM-DD-brainstorm-{slug}.md` listing what was published where.
56
57
 
57
- ## After publishing — keep the record
58
+ ## After publishing — move the record to history
58
59
 
59
- **Keep `docs/brainstorm/{topic}/` — never delete it.** The exit artifacts now carry the distilled
60
- conclusions, but the record stays committed as their provenance: a traceable source for every published
61
- headline, and the seed the next `/brainstorm start` on this topic resumes from. Retire a topic's folder
62
- by hand only when the design line is truly dead.
60
+ **Move `docs/research/{topic}-brainstorming/` → `docs/history/brainstorms/{topic}/`, and update both
61
+ `Readme.md` indexes** (drop the row from `docs/research/Readme.md`, add it to
62
+ `docs/history/brainstorms/Readme.md`). The exit artifacts now carry the distilled conclusions; the record
63
+ itself is **kept** — never deleted — but as harvested provenance it belongs under `docs/history/brainstorms/`:
64
+ a traceable source for every published headline, and the seed the next `/brainstorm start` on this topic
65
+ resumes from. A session that is only **paused** (not harvested) stays in `docs/research/`. Retire a topic's
66
+ folder by hand only when the design line is truly dead.
@@ -3,8 +3,8 @@
3
3
  > This is a **source-of-truth doc**: the standing, canonical reference for [thing]. Write it like a
4
4
  > README — present tense, reader-first, the thing described as it _is_. It is **not a plan** (no steps,
5
5
  > status, or sequencing — those go to `docs/history/plans/`) and **not the brainstorm record** (no
6
- > `Q-N`/`D-N` codes, no "Why / How to apply" ledger, no rejected alternatives — those stay in
7
- > `docs/brainstorm/{topic}/` and any ADs). One document; if a section outgrows it, link out, don't sprawl.
6
+ > `Q-N`/`D-N` codes, no "Why / How to apply" ledger, no rejected alternatives — those stay in the harvested
7
+ > record at `docs/history/brainstorms/{topic}/` and any ADs). One document; if a section outgrows it, link out, don't sprawl.
8
8
  >
9
9
  > **Placement.** In a repo with a feature-doc system this lands as `docs/features/{slug}.md` and carries
10
10
  > that system's frontmatter (`owns:` / `module:` / `keywords:` / `status:`). Cross-cutting → `docs/architecture/{slug}.md`.
@@ -41,9 +41,9 @@ and what is explicitly out of scope.]
41
41
 
42
42
  ## Open questions
43
43
 
44
- [One line pointing at `docs/brainstorm/{topic}/questions.md` if any remain open. Omit if none.]
44
+ [One line pointing at `docs/history/brainstorms/{topic}/questions.md` if any remain open. Omit if none.]
45
45
 
46
46
  ---
47
47
 
48
- _Distilled from `docs/brainstorm/{topic}/`. That record holds the rationale, the rejected alternatives,
48
+ _Distilled from `docs/history/brainstorms/{topic}/`. That record holds the rationale, the rejected alternatives,
49
49
  and the provenance for everything above._
@@ -21,7 +21,7 @@ Every document is exactly one of two things. Decide which before writing a word
21
21
  | Named by | Topic: `auth.md`, `AD-003-persistence.md` | Date: `YYYY-MM-DD-slug.md` (or append position) |
22
22
  | On change | Body rewritten in place the moment reality changes | Never edited — frozen at completion or append-only |
23
23
  | Read to | Act correctly today | Trace provenance, diagnose, audit |
24
- | Lives in | `docs/features/`, `docs/architecture/`, `docs/operations/`, `docs/tests/`, READMEs | `docs/history/` (plans, changelog, research, migrations), `docs/brainstorm/`, `docs/memory/` |
24
+ | Lives in | `docs/features/`, `docs/architecture/`, `docs/operations/`, `docs/tests/`, READMEs | `docs/history/` (plans, changelog, brainstorms, research, migrations), `docs/research/`, `docs/memory/` |
25
25
 
26
26
  The two guarantees are complementary and both break on mixing: a reader holding a **truth document** must never need history to interpret it; a reader holding a **record** must be able to trust it was never rewritten. So the natures never share a document body.
27
27
 
@@ -111,12 +111,12 @@ Each topic has one canonical location. Read from here, not from plans or changel
111
111
  | Change records | `docs/history/changelog/` | Individual entries |
112
112
  | Migration runbooks | `docs/history/migrations/` | YYYY-MM-DD-name.md |
113
113
  | Deep-research artifacts | `docs/history/research/{topic}/` | README.md + findings.md + sources.md |
114
- | Brainstorm design records | `docs/brainstorm/{topic}/` | state.md + pillars/ |
114
+ | Brainstorm design records | `docs/research/{topic}-brainstorming/` (active) → `docs/history/brainstorms/{topic}/` (harvested) | state.md + pillars/ |
115
115
  | Backlog | `docs/history/` | backlog.md |
116
116
 
117
117
  ## The Two Natures
118
118
 
119
- Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `brainstorm/`, `memory/` hold records.
119
+ Every doc is a **truth document** (states current absolutes, topic-named, updated in place) or a **record** (dated account of activity, frozen or append-only). `architecture/`, `features/`, `operations/`, `tests/` hold truth; `history/`, `research/`, `memory/` hold records.
120
120
 
121
121
  - Truth documents are rewritten in place when reality changes — the change-story goes to a changelog entry, never into the truth doc's body.
122
122
  - Records freeze: plans at `Complete`/`Abandoned`, changelog entries and migration runbooks once written/executed. A scope change is a new dated record that links back.
@@ -132,7 +132,7 @@ Every doc is a **truth document** (states current absolutes, topic-named, update
132
132
  - `docs/history/changelog/`: Records. Append-only.
133
133
  - `docs/history/migrations/`: Records. One-shot migration/upgrade runbooks — authored before execution, outcome-stamped and frozen after.
134
134
  - `docs/history/research/{topic}/`: Deep-research artifacts — the dumped output of a research pass, one folder per topic (conventionally `README.md` synthesis + `findings.md` verified claims & citations + `sources.md`). A point-in-time, cited record — **not** a living authority doc: it owns no code (no `owns:` frontmatter) and is never edited to "stay current." A spec/plan links to it for grounding; a new question gets a new topic folder.
135
- - `docs/brainstorm/{topic}/`: Kept design records — the committed Brainstorming-Mode session for a topic (`state.md` + `pillars/`), written by the `brainstorm` skill and **kept** after harvest as the provenance the truth layer distils from. Author-created (never scaffolded empty), one subfolder per design conversation. Owns no code (no `owns:` frontmatter); the harvest copies its conclusions into `architecture/`/`history/` while the record stays in place. Retire a topic's folder by hand only when the design line is dead.
135
+ - `docs/research/{topic}-brainstorming/` → `docs/history/brainstorms/{topic}/`: Brainstorm design records — the committed Brainstorming-Mode session for a topic (`state.md` + `pillars/`), written by the `brainstorm` skill. An active session lives under `docs/research/`; on close + harvest it **moves** to `docs/history/brainstorms/` and is **kept** as the provenance the truth layer distils from. Each of the two folders carries a `Readme.md` index (the skill reads it at start instead of scanning). Author-created (never scaffolded empty), one folder per design conversation. Owns no code (no `owns:` frontmatter); the harvest copies its conclusions into `architecture/`/`history/`. Retire a topic's folder by hand only when the design line is dead. (Distinct from `docs/history/research/{topic}/` above — that is a frozen deep-research record, not a brainstorm session.)
136
136
  - `docs/history/backlog.md`: Tracked work items. Append new items under appropriate priority.
137
137
 
138
138
  ## Health Log
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurix/etna",
3
- "version": "0.18.21",
3
+ "version": "0.18.22",
4
4
  "description": "Bootstrap a project with a Nurix harness — copies the harness's CLAUDE.md, skills, agents, rules, and hooks directly into the project from a bundled payload (no marketplace fetch, no network).",
5
5
  "type": "module",
6
6
  "bin": {