@nurix/etna 0.20.25 → 0.20.27
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/harness-index.json +1 -1
- package/data/harnesses/code/CLAUDE.md +4 -4
- package/data/harnesses/code/agents/bookkeeper.md +1 -1
- package/data/harnesses/code/agents/change-review.md +1 -1
- package/data/harnesses/code/agents/lld-mode.md +1 -1
- package/data/harnesses/code/agents/maintenance.md +7 -9
- package/data/harnesses/code/docs/structure.md +133 -71
- package/data/harnesses/code/harness.json +4 -4
- package/data/harnesses/code/hooks/awareness.mjs +0 -10
- package/data/harnesses/code/hooks/lib/ownership.mjs +4 -2
- package/data/harnesses/code/hooks/lib/sweep.mjs +4 -8
- package/data/harnesses/code/skills/documentation/SKILL.md +22 -11
- package/data/harnesses/code/skills/documentation/references/examples.md +29 -25
- package/data/harnesses/code/skills/documentation/references/frontmatter.md +3 -3
- package/data/harnesses/code/skills/documentation/references/style-guide.md +211 -292
- package/data/harnesses/code/skills/documentation/references/untemplated.md +4 -2
- package/data/harnesses/code/skills/documentation/scripts/doc-lint.mjs +104 -2
- package/data/harnesses/code/skills/documentation/templates/Readme.md +4 -3
- package/data/harnesses/code/skills/documentation/templates/bookkeeping.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/docs-readme.md +15 -36
- package/data/harnesses/code/skills/documentation/templates/doctrine.md +81 -0
- package/data/harnesses/code/skills/documentation/templates/feature.md +63 -119
- package/data/harnesses/code/skills/documentation/templates/handover.md +174 -0
- package/data/harnesses/code/skills/documentation/templates/operations-procedure.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/package.md +49 -92
- package/data/harnesses/code/skills/documentation/templates/root-readme.md +103 -65
- package/data/harnesses/code/skills/documentation/templates/setup.md +138 -0
- package/data/harnesses/code/skills/documentation/templates/system.md +45 -107
- package/data/harnesses/delivery/agents/lld-mode.md +1 -1
- package/data/harnesses/delivery/agents/maintenance.md +7 -9
- package/data/harnesses/delivery/harness.json +2 -2
- package/data/harnesses/delivery/skills/documentation/SKILL.md +22 -11
- package/data/harnesses/delivery/skills/documentation/references/examples.md +29 -25
- package/data/harnesses/delivery/skills/documentation/references/frontmatter.md +3 -3
- package/data/harnesses/delivery/skills/documentation/references/style-guide.md +211 -292
- package/data/harnesses/delivery/skills/documentation/references/untemplated.md +4 -2
- package/data/harnesses/delivery/skills/documentation/scripts/doc-lint.mjs +104 -2
- package/data/harnesses/delivery/skills/documentation/templates/Readme.md +4 -3
- package/data/harnesses/delivery/skills/documentation/templates/bookkeeping.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/docs-readme.md +15 -36
- package/data/harnesses/delivery/skills/documentation/templates/doctrine.md +81 -0
- package/data/harnesses/delivery/skills/documentation/templates/feature.md +63 -119
- package/data/harnesses/delivery/skills/documentation/templates/handover.md +174 -0
- package/data/harnesses/delivery/skills/documentation/templates/operations-procedure.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/package.md +49 -92
- package/data/harnesses/delivery/skills/documentation/templates/root-readme.md +103 -65
- package/data/harnesses/delivery/skills/documentation/templates/setup.md +138 -0
- package/data/harnesses/delivery/skills/documentation/templates/system.md +45 -107
- package/data/harnesses/etna/agents/change-review.md +1 -1
- package/data/harnesses/etna/agents/lld-mode.md +1 -1
- package/data/harnesses/etna/agents/maintenance.md +7 -9
- package/data/harnesses/etna/harness.json +2 -2
- package/data/harnesses/etna/skills/documentation/SKILL.md +22 -11
- package/data/harnesses/etna/skills/documentation/references/examples.md +29 -25
- package/data/harnesses/etna/skills/documentation/references/frontmatter.md +3 -3
- package/data/harnesses/etna/skills/documentation/references/style-guide.md +211 -292
- package/data/harnesses/etna/skills/documentation/references/untemplated.md +4 -2
- package/data/harnesses/etna/skills/documentation/scripts/doc-lint.mjs +104 -2
- package/data/harnesses/etna/skills/documentation/templates/Readme.md +4 -3
- package/data/harnesses/etna/skills/documentation/templates/bookkeeping.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/docs-readme.md +15 -36
- package/data/harnesses/etna/skills/documentation/templates/doctrine.md +81 -0
- package/data/harnesses/etna/skills/documentation/templates/feature.md +63 -119
- package/data/harnesses/etna/skills/documentation/templates/handover.md +174 -0
- package/data/harnesses/etna/skills/documentation/templates/operations-procedure.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/package.md +49 -92
- package/data/harnesses/etna/skills/documentation/templates/root-readme.md +103 -65
- package/data/harnesses/etna/skills/documentation/templates/setup.md +138 -0
- package/data/harnesses/etna/skills/documentation/templates/system.md +45 -107
- package/lib/install/materialize.mjs +4 -12
- package/lib/install/plan.mjs +4 -11
- package/package.json +3 -2
- package/data/harnesses/code/skills/documentation/templates/structure.md +0 -71
- package/data/harnesses/delivery/skills/documentation/templates/structure.md +0 -71
- package/data/harnesses/etna/skills/documentation/templates/structure.md +0 -71
|
@@ -146,37 +146,41 @@ Replaced change-tracking merge with version-based conflict resolution.
|
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
149
|
-
## Example 4:
|
|
149
|
+
## Example 4: Flow
|
|
150
150
|
|
|
151
|
-
### ❌ Bad:
|
|
151
|
+
### ❌ Bad: Mechanism narrated in a paragraph
|
|
152
152
|
|
|
153
153
|
```markdown
|
|
154
|
+
## Data Flow
|
|
155
|
+
|
|
154
156
|
When the page loads, the useAppInit hook calls the syncData function. This function first fetches data from the server using the API. Then it gets the local data from Redux. After that, it compares versions...
|
|
155
157
|
```
|
|
156
158
|
|
|
157
|
-
|
|
159
|
+
**Problems:** names a hook, a function and a store that a rename would invalidate (the stability test); runs parallel cases together in one paragraph; gives a scanning reader no label to land on; "Data Flow" is a retired mechanism section.
|
|
158
160
|
|
|
159
|
-
|
|
160
|
-
## Data Flow
|
|
161
|
+
### ✅ Good: Labelled bullets, a role-level diagram beside them
|
|
161
162
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
163
|
+
````markdown
|
|
164
|
+
## Flows
|
|
165
|
+
|
|
166
|
+
### Page load
|
|
167
|
+
|
|
168
|
+
- **Fresh data:** the page fetches the server's copy and the local copy on every load; nothing is cached between visits.
|
|
169
|
+
- **Matching versions:** local changes win and are kept.
|
|
170
|
+
- **Mismatched versions:** the server's copy wins and local changes are dropped.
|
|
171
|
+
|
|
172
|
+
```mermaid
|
|
173
|
+
sequenceDiagram
|
|
174
|
+
participant Page
|
|
175
|
+
participant Server
|
|
176
|
+
participant Store
|
|
177
|
+
Page->>Server: fetch the server's copy
|
|
178
|
+
Page->>Store: read the local copy
|
|
179
|
+
Page->>Store: write the merged copy
|
|
179
180
|
```
|
|
181
|
+
````
|
|
182
|
+
|
|
183
|
+
**Why it works:** every fact is in the bullets, so a reader who greps finds it without the diagram; the labels are noun phrases a scanning reader lands on; the diagram names roles, never a function or a file, so no rename touches it.
|
|
180
184
|
|
|
181
185
|
---
|
|
182
186
|
|
|
@@ -242,7 +246,7 @@ The feature doc states only what is:
|
|
|
242
246
|
```markdown
|
|
243
247
|
## Export Pipeline
|
|
244
248
|
|
|
245
|
-
|
|
249
|
+
The exporter renders every export format from one job queue. Output is
|
|
246
250
|
buffered per job (streaming is out of scope — see `docs/history/backlog.md`).
|
|
247
251
|
```
|
|
248
252
|
|
|
@@ -272,8 +276,8 @@ Extracted export logic from the `reports` worker into `src/export/`.
|
|
|
272
276
|
| ---------- | -------------------- | --------------------------- |
|
|
273
277
|
| Code | Full implementations | Signatures + contracts |
|
|
274
278
|
| State | Every occurrence | Persistence points only |
|
|
275
|
-
| Flows |
|
|
279
|
+
| Flows | Paragraphs naming functions | Labelled bullets in plain words, a role-level diagram beside them |
|
|
276
280
|
| Changelogs | "Updated X" | Function names + migrations |
|
|
277
281
|
| Decisions | New doc per revision | One AD per subject, updated in place |
|
|
278
282
|
| History | Narrated in the doc | Present-tense doc + dated record |
|
|
279
|
-
| Length |
|
|
283
|
+
| Length | Padded with mechanism | The genre's own expectation; length is a signal, never a target |
|
|
@@ -32,7 +32,7 @@ Every other genre owns no code and carries no `owns:`. That includes the cross-c
|
|
|
32
32
|
|
|
33
33
|
## How to derive the frontmatter
|
|
34
34
|
|
|
35
|
-
An owning doc's
|
|
35
|
+
An owning doc's frontmatter is `objects:` (required — the product objects it designs, by their graph names; its discovery terms and its traced edge into the knowledge graph), `owns:` (required until the graph computes ownership from traces), `module:` (optional — feature docs only; a package is already a bounded unit and a system spans contexts by definition), and `status:` (required). An optional `last-reviewed:` date (stamped whenever the doc is substantively reviewed or updated) gives the `maintenance` agent a staleness signal to rank its audits by — it is tooling metadata, never narrated in the body. `type:` (required — the genre, enum = the template names) and `rev:` (generator-written generation stamp) are the same class: external tooling reads them, sessions **preserve them on edits** and never narrate or inject them. The `maintenance` agent stamps `type:` on docs that predate the key. `slug:` completes the set on generated docs: the identity key, minted once at creation and never re-derived from a display name — in the repo the filename is the slug, and the `maintenance` agent re-aligns the two when they diverge.
|
|
36
36
|
|
|
37
37
|
**1. `owns:`** (the path scope)
|
|
38
38
|
|
|
@@ -59,9 +59,9 @@ Glob each pattern against the codebase. At `status: active`, drop any that match
|
|
|
59
59
|
|
|
60
60
|
The single bounded-context label this feature belongs to, or omit it for a cross-cutting feature that belongs to no single context. A module is a label, not a folder — features sharing a `module:` value are what ties that module to code (a filter over the generated ownership index). Package and system docs omit it entirely.
|
|
61
61
|
|
|
62
|
-
**3. `
|
|
62
|
+
**3. `objects:` & `status:`**
|
|
63
63
|
|
|
64
|
-
`
|
|
64
|
+
`objects:` names the product objects the document designs — the discovery terms topic→doc lookup rides, and the edge the knowledge graph renders each object's documents from. There is no `keywords:` key: an object's name is its discovery term. `status:` is `active`, `draft`, or `deprecated` — it steers the model toward live docs and away from draft/deprecated ones.
|
|
65
65
|
|
|
66
66
|
## The doc → doc edges
|
|
67
67
|
|