@nurix/etna 0.18.22 → 0.18.24

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 (64) hide show
  1. package/data/harness-index.json +1 -5
  2. package/data/harnesses/code/CLAUDE.md +16 -27
  3. package/data/harnesses/code/harness.json +2 -2
  4. package/data/harnesses/code/rules/testing.md +1 -1
  5. package/data/harnesses/etna/CLAUDE.md +5 -14
  6. package/data/harnesses/etna/harness.json +2 -2
  7. package/data/harnesses/etna/rules/testing.md +1 -1
  8. package/package.json +1 -1
  9. package/data/harnesses/mobile/.prettierignore +0 -12
  10. package/data/harnesses/mobile/.prettierrc.json +0 -3
  11. package/data/harnesses/mobile/.vscode/settings.json +0 -10
  12. package/data/harnesses/mobile/CLAUDE.md +0 -151
  13. package/data/harnesses/mobile/agents/brainstorm.md +0 -35
  14. package/data/harnesses/mobile/agents/change-review.md +0 -251
  15. package/data/harnesses/mobile/agents/lld-mode.md +0 -56
  16. package/data/harnesses/mobile/agents/maintenance.md +0 -216
  17. package/data/harnesses/mobile/agents/performance-review.md +0 -223
  18. package/data/harnesses/mobile/harness.json +0 -11
  19. package/data/harnesses/mobile/hooks/generate-ownership-index.mjs +0 -148
  20. package/data/harnesses/mobile/hooks/hooks.json +0 -16
  21. package/data/harnesses/mobile/rules/database.md +0 -38
  22. package/data/harnesses/mobile/rules/general.md +0 -49
  23. package/data/harnesses/mobile/rules/nomenclature.md +0 -34
  24. package/data/harnesses/mobile/rules/nustack.md +0 -150
  25. package/data/harnesses/mobile/rules/react-native.md +0 -132
  26. package/data/harnesses/mobile/rules/testing.md +0 -25
  27. package/data/harnesses/mobile/rules/typescript.md +0 -40
  28. package/data/harnesses/mobile/skills/boundary/SKILL.md +0 -69
  29. package/data/harnesses/mobile/skills/boundary/references/index.md +0 -16
  30. package/data/harnesses/mobile/skills/boundary/references/mechanisms.md +0 -99
  31. package/data/harnesses/mobile/skills/boundary/references/packs/async-messaging.md +0 -81
  32. package/data/harnesses/mobile/skills/boundary/references/packs/auth.md +0 -93
  33. package/data/harnesses/mobile/skills/boundary/references/packs/build-config-runtime.md +0 -93
  34. package/data/harnesses/mobile/skills/boundary/references/packs/cloudflare.md +0 -93
  35. package/data/harnesses/mobile/skills/boundary/references/packs/frontend.md +0 -93
  36. package/data/harnesses/mobile/skills/boundary/references/packs/generic-tail.md +0 -55
  37. package/data/harnesses/mobile/skills/boundary/references/packs/persistence.md +0 -93
  38. package/data/harnesses/mobile/skills/boundary/references/packs/wire-api.md +0 -87
  39. package/data/harnesses/mobile/skills/brainstorm/README.md +0 -162
  40. package/data/harnesses/mobile/skills/brainstorm/SKILL.md +0 -152
  41. package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +0 -66
  42. package/data/harnesses/mobile/skills/brainstorm/templates/backlog.md +0 -39
  43. package/data/harnesses/mobile/skills/brainstorm/templates/build.md +0 -37
  44. package/data/harnesses/mobile/skills/brainstorm/templates/decisions.md +0 -29
  45. package/data/harnesses/mobile/skills/brainstorm/templates/doctrine.md +0 -31
  46. package/data/harnesses/mobile/skills/brainstorm/templates/domain-model.md +0 -25
  47. package/data/harnesses/mobile/skills/brainstorm/templates/evidence.md +0 -24
  48. package/data/harnesses/mobile/skills/brainstorm/templates/glossary.md +0 -20
  49. package/data/harnesses/mobile/skills/brainstorm/templates/milestones.md +0 -43
  50. package/data/harnesses/mobile/skills/brainstorm/templates/non-goals.md +0 -17
  51. package/data/harnesses/mobile/skills/brainstorm/templates/plan-doc.md +0 -61
  52. package/data/harnesses/mobile/skills/brainstorm/templates/questions.md +0 -36
  53. package/data/harnesses/mobile/skills/brainstorm/templates/references.md +0 -28
  54. package/data/harnesses/mobile/skills/brainstorm/templates/rejected.md +0 -33
  55. package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +0 -49
  56. package/data/harnesses/mobile/skills/brainstorm/templates/state.md +0 -1
  57. package/data/harnesses/mobile/skills/brainstorm/templates/tech.md +0 -23
  58. package/data/harnesses/mobile/skills/brainstorm/templates/thesis.md +0 -21
  59. package/data/harnesses/mobile/skills/documentation/SKILL.md +0 -172
  60. package/data/harnesses/mobile/skills/documentation/references/examples.md +0 -203
  61. package/data/harnesses/mobile/skills/documentation/references/style-guide.md +0 -315
  62. package/data/harnesses/mobile/skills/documentation/references/templates.md +0 -1091
  63. package/data/harnesses/mobile/skills/workflow-mapper/SKILL.md +0 -451
  64. package/data/harnesses/mobile/skills/workflow-mapper/references/patterns.md +0 -214
@@ -1,315 +0,0 @@
1
- # Documentation Style Guide
2
-
3
- Writing rules for clear, maintainable documentation.
4
-
5
- ---
6
-
7
- ## Function Documentation
8
-
9
- ### Signature Format
10
-
11
- ```markdown
12
- ### `functionName(param1, param2, options)`
13
-
14
- **Goal:** One-line purpose **Input:**
15
-
16
- - `param1` (type) - Description
17
- - `param2` (type, optional) - Description **Output:** `{ field1, field2 }` **Side Effects:** State updates, API calls, etc.
18
- ```
19
-
20
- ### Parameter Rules
21
-
22
- - Name + type + one-line purpose
23
- - Mark optional params with `(type, optional)`
24
- - Nest object properties:
25
- ```markdown
26
- - `options` (object) - Configuration
27
- - `options.retry` (boolean) - Enable retries
28
- - `options.timeout` (number) - Timeout in ms
29
- ```
30
-
31
- ### Return Values
32
-
33
- Always specify:
34
-
35
- - Type: `Array<Object>`, `boolean`, `{ merged, changes }`
36
- - Shape for objects/arrays
37
- - Meaning: "True if sync successful"
38
-
39
- ---
40
-
41
- ## State Documentation
42
-
43
- ### When to Document State
44
-
45
- ✅ Do:
46
-
47
- - Redux persistence (localStorage, IndexedDB)
48
- - Database schemas
49
- - API request/response shapes
50
-
51
- ❌ Don't:
52
-
53
- - Component-level state
54
- - Derived/computed state
55
- - Temporary UI state
56
-
57
- ### Format
58
-
59
- ````markdown
60
- **Frontend (at persistence):**
61
-
62
- ```json
63
- {
64
- "activeField": "value"
65
- // "deprecated": null // UNUSED: Remove in v3
66
- }
67
- ```
68
- ````
69
-
70
- **Storage:** localStorage key `state_key`
71
-
72
- **Backend:**
73
-
74
- ```sql
75
- model Table {
76
- id String @id
77
- data Json
78
- // old String? // UNUSED: Legacy
79
- }
80
- ```
81
-
82
- ````
83
-
84
- ### Mark Unused Keys
85
-
86
- Always comment deprecated/unused fields:
87
- ```json
88
- {
89
- "active": [],
90
- // "legacy": {} // UNUSED: Migrated to newField
91
- }
92
- ````
93
-
94
- ---
95
-
96
- ## ASCII Diagrams
97
-
98
- ### When to Use
99
-
100
- - Data flows
101
- - System architecture
102
- - Component interactions
103
- - Process flows
104
-
105
- ### Pattern
106
-
107
- ```
108
- ┌─────────────────────────────────────────┐
109
- │ TITLE │
110
- ├─────────────────────────────────────────┤
111
- │ │
112
- │ ┌──────┐ ┌──────┐ ┌──────┐ │
113
- │ │ A │────▶│ B │────▶│ C │ │
114
- │ └──────┘ └──────┘ └──────┘ │
115
- │ │ │ │
116
- │ ▼ ▼ │
117
- │ Detail Detail │
118
- │ │
119
- └─────────────────────────────────────────┘
120
- ```
121
-
122
- ### Characters
123
-
124
- - Boxes: `┌─┐│└┘├┤┬┴┼`
125
- - Arrows: `───▶` `◀───` `│▼` `│▲`
126
- - Width: ~70 chars max
127
-
128
- ### UI Wireframes
129
-
130
- For screen layouts (not data flows), use these conventions:
131
-
132
- ```
133
- **Route:** `path/:id`
134
- **Tab:** Tab Name
135
-
136
- ┌────────────────────────────────────┐
137
- │ Title [i]3 [Button]│
138
- │ [i]Label [Tag1][Tag2][+Add] │
139
- └────────────────────────────────────┘
140
- ```
141
-
142
- - `[text]` = clickable button/badge
143
- - `[i]` = icon (followed by label or count)
144
- - `v` / `^` = expand/collapse indicator
145
- - Show each UI state (collapsed/expanded) as separate diagrams
146
- - Include Route/Tab context above wireframe
147
-
148
- ---
149
-
150
- ## Code Examples
151
-
152
- ### Rules
153
-
154
- - Under 15 lines
155
- - Show contracts, not implementations
156
- - Use pseudocode for algorithms
157
-
158
- ✅ Good:
159
-
160
- ```javascript
161
- // Critical: Balanced brace matching
162
- function extract(json) {
163
- // Track brace depth
164
- // Ignore braces inside strings
165
- // Return complete objects only
166
- }
167
- ```
168
-
169
- ❌ Bad: Full 50-line implementation
170
-
171
- ---
172
-
173
- ## Writing Style
174
-
175
- ### Voice
176
-
177
- Use imperative/active:
178
-
179
- - ✅ "Fetches data from server"
180
- - ✅ "Returns array of objects"
181
- - ❌ "This function is used to fetch"
182
- - ❌ "An array is returned"
183
-
184
- ### When Prose Adds Value
185
-
186
- Prose is valuable for context that contracts can't capture:
187
-
188
- | Use Prose For | Example |
189
- | --- | --- |
190
- | Section intros | "When the editor mounts, `useAppInit` is called with the `appId` from URL." |
191
- | Non-obvious behavior | "The hook always fetches fresh data. There is no caching or version checking." |
192
- | Design rationale | "Why parallel fetches? Each entity type is independent, reducing load time." |
193
- | Edge cases | "If created then deleted before save, it's removed from `added[]` without adding to `removed[]`." |
194
- | Current limitations | "This hook is not currently integrated into the main flow." |
195
- | Usage context | "Used to show 'Unsaved' badge, warn before navigation, enable save buttons." |
196
-
197
- ### When to Avoid Prose
198
-
199
- - Describing WHAT code does (use signatures instead)
200
- - Step-by-step flows (use diagrams instead)
201
- - Structured comparisons (use tables instead)
202
-
203
- ### Conciseness
204
-
205
- One line when possible:
206
-
207
- - ✅ "Merge server data with local changes using version-based conflict resolution"
208
- - ❌ "This function takes the data from the server and also takes the local data..."
209
-
210
- ### Tables
211
-
212
- Use for structured info:
213
-
214
- ```markdown
215
- | Parameter | Type | Description |
216
- | --------- | ------ | -------------- |
217
- | `data` | object | Fresh from API |
218
- | `local` | object | Current state |
219
- ```
220
-
221
- ---
222
-
223
- ## The Two Natures — Tense & History
224
-
225
- Every document is a **truth document** (states current absolutes, updated in place) or a **record** (dated account of activity, frozen or append-only) — see `SKILL.md` § The Two Natures. The tense rules follow directly:
226
-
227
- **Truth documents describe the present, not the past.** Everything outside `docs/history/` states what the system _is_ and how it works _today_. It must not narrate how it got there. The journey — the dates, the migrations — lives **only** in records (`docs/history/`: changelog, plans, migrations). Two sanctioned exceptions: `docs/memory/` is the agent's own dated ledger, and an AD's **Decision Changelog** tail carries that decision's dated revision history (the AD body stays current-truth-only — head is truth, tail is provenance).
228
-
229
- **Records are never edited to match the present.** A frozen plan stays wrong-in-hindsight; a changelog entry describes what shipped as it shipped. A scope change gets a new dated record that links back.
230
-
231
- Strip this language from truth documents:
232
-
233
- | ❌ Historical narration (belongs in a record) | ✅ Present-tense fact (belongs in the truth doc) |
234
- | --- | --- |
235
- | "Folded in from the `NuStack-X` repo (2026-06-12)." | "Vendor-connector catalogue; one subpath per vendor." |
236
- | "Built 2026-06-14; shipped + verified 2026-06-13." | "`agentSessionWorkflow` runs an outer turn loop over `runAgentLoop`." |
237
- | "The legacy worker was deleted in the 2026-06-14 fold." | "One worker interprets `WorkflowDefinition`." |
238
- | "ex-`@nurix/mcp-runtime`, M9 Phase C; was X, now Y." | "MCP client runtime, wired into `agentTriggerWorkflow`." |
239
- | "Read first: `docs/history/plans/2026-…-fold.md`" (routing) | "Read first: `docs/architecture/<current-truth-doc>.md`" |
240
-
241
- Rules:
242
-
243
- - **No dates in truth documents** for when something shipped, was verified, folded, or was removed. A bare status marker (`✅ shipped`, `⏳ pending`) is fine; the _date_ it shipped is not.
244
- - **Cite the AD for the _why_, never the _when_.** `Provenance: AD-002` is good (it points to the decision rationale). "Decided in AD-002 and shipped 2026-06-13" is not.
245
- - **Routing/index docs point only to truth documents.** A row whose only "read first" target is a historical plan or changelog is a redirect-for-history — repoint it to the current truth doc, or drop the row.
246
- - **When a doc changes because the system changed, the change-story goes in `docs/history/` (a changelog entry), and the truth document simply becomes correct in present tense.** Never leave the diff narrated in place.
247
- - **A decision that moves is an edit, not a new document.** Rewrite the AD's affected sections to the new truth and append the revision to its Decision Changelog — never mint a parallel doc and never leave the old choice narrated in the body.
248
-
249
- ---
250
-
251
- ## Structure
252
-
253
- ### Headers
254
-
255
- ```markdown
256
- # Document Title (H1 - once)
257
-
258
- ## Major Section (H2)
259
-
260
- ### Subsection (H3)
261
-
262
- #### Detail (H4 - sparingly)
263
- ```
264
-
265
- **Headings are retrieval keys.** Search and agents retrieve sections out of context, and a bare `## State` reads identically across every feature doc. In long docs, qualify generic headings with the feature name — `## State — invoice-pdf`, `### Merge rules — data sync` — so a section stands alone when retrieved. Short docs whose H1 disambiguates can keep bare headings.
266
-
267
- ### Standard Layout
268
-
269
- ```markdown
270
- # [Title]
271
-
272
- **Goal:** One-line purpose
273
-
274
- ## Architecture
275
-
276
- [Diagram + explanation]
277
-
278
- ## Key Functions
279
-
280
- [Signatures and contracts]
281
-
282
- ## State
283
-
284
- [Persistence shapes]
285
-
286
- ## Files
287
-
288
- [Source file list]
289
- ```
290
-
291
- ### File References
292
-
293
- Always end with:
294
-
295
- ```markdown
296
- ## Files
297
-
298
- - `src/path/main.js` - Core logic
299
- - `src/path/hooks.js` - React hooks
300
- ```
301
-
302
- ---
303
-
304
- ## Summary
305
-
306
- | Aspect | Rule |
307
- | ---------- | ------------------------------- |
308
- | Functions | Always include signatures |
309
- | Parameters | Type + purpose |
310
- | Returns | Type + shape |
311
- | State | Persistence points only |
312
- | Diagrams | ASCII for all flows |
313
- | Code | Under 15 lines, contracts only |
314
- | Voice | Imperative/active |
315
- | Length | Concise, one line when possible |