@nurix/etna 0.15.7 → 0.16.0

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 (86) hide show
  1. package/bin/etna.js +64 -13
  2. package/data/harness-index.json +7 -5
  3. package/data/harnesses/code/CLAUDE.md +3 -7
  4. package/data/harnesses/code/agents/harness-manager.md +4 -4
  5. package/data/harnesses/code/agents/maintenance.md +1 -1
  6. package/data/harnesses/code/harness.json +4 -3
  7. package/data/harnesses/code/hooks/hooks.json +3 -17
  8. package/data/harnesses/code/hooks/prompt-recall.js +157 -0
  9. package/data/harnesses/code/hooks/session-reflect.js +283 -0
  10. package/data/harnesses/code/skills/distiller/SKILL.md +62 -60
  11. package/data/harnesses/code/skills/distiller/references/docs-mode.md +21 -21
  12. package/data/harnesses/code/skills/distiller/references/method.md +41 -41
  13. package/data/harnesses/code/skills/documentation/references/templates.md +20 -27
  14. package/data/harnesses/code-fable/CLAUDE.md +138 -0
  15. package/data/harnesses/code-fable/agents/brainstorm.md +35 -0
  16. package/data/harnesses/code-fable/agents/change-review.md +249 -0
  17. package/data/harnesses/code-fable/agents/harness-manager.md +193 -0
  18. package/data/harnesses/code-fable/agents/maintenance.md +123 -0
  19. package/data/harnesses/code-fable/agents/performance-review.md +218 -0
  20. package/data/harnesses/code-fable/agents/spec-mode.md +56 -0
  21. package/data/harnesses/code-fable/harness.json +7 -0
  22. package/data/harnesses/code-fable/hooks/hooks.json +27 -0
  23. package/data/harnesses/code-fable/hooks/lib/redact.js +37 -0
  24. package/data/harnesses/code-fable/hooks/prompt-recall.js +157 -0
  25. package/data/harnesses/code-fable/hooks/session-reflect.js +283 -0
  26. package/data/harnesses/code-fable/rules/general.md +96 -0
  27. package/data/harnesses/code-fable/rules/nomenclature.md +34 -0
  28. package/data/harnesses/code-fable/skills/boundary/SKILL.md +262 -0
  29. package/data/harnesses/code-fable/skills/boundary/references/boundary-taxonomy.md +734 -0
  30. package/data/harnesses/code-fable/skills/brainstorm/README.md +136 -0
  31. package/data/harnesses/code-fable/skills/brainstorm/SKILL.md +135 -0
  32. package/data/harnesses/code-fable/skills/brainstorm/harvest.md +26 -0
  33. package/data/harnesses/code-fable/skills/brainstorm/templates/backlog.md +39 -0
  34. package/data/harnesses/code-fable/skills/brainstorm/templates/build.md +37 -0
  35. package/data/harnesses/code-fable/skills/brainstorm/templates/decisions.md +29 -0
  36. package/data/harnesses/code-fable/skills/brainstorm/templates/doctrine.md +31 -0
  37. package/data/harnesses/code-fable/skills/brainstorm/templates/domain-model.md +25 -0
  38. package/data/harnesses/code-fable/skills/brainstorm/templates/glossary.md +19 -0
  39. package/data/harnesses/code-fable/skills/brainstorm/templates/milestones.md +43 -0
  40. package/data/harnesses/code-fable/skills/brainstorm/templates/non-goals.md +21 -0
  41. package/data/harnesses/code-fable/skills/brainstorm/templates/plan-doc.md +61 -0
  42. package/data/harnesses/code-fable/skills/brainstorm/templates/questions.md +35 -0
  43. package/data/harnesses/code-fable/skills/brainstorm/templates/references.md +28 -0
  44. package/data/harnesses/code-fable/skills/brainstorm/templates/rejected.md +29 -0
  45. package/data/harnesses/code-fable/skills/brainstorm/templates/state.md +8 -0
  46. package/data/harnesses/code-fable/skills/brainstorm/templates/tech.md +23 -0
  47. package/data/harnesses/code-fable/skills/brainstorm/templates/thesis.md +21 -0
  48. package/data/harnesses/code-fable/skills/distiller/SKILL.md +219 -0
  49. package/data/harnesses/code-fable/skills/distiller/references/docs-mode.md +526 -0
  50. package/data/harnesses/code-fable/skills/distiller/references/method.md +166 -0
  51. package/data/harnesses/code-fable/skills/documentation/SKILL.md +127 -0
  52. package/data/harnesses/code-fable/skills/documentation/references/examples.md +193 -0
  53. package/data/harnesses/code-fable/skills/documentation/references/style-guide.md +288 -0
  54. package/data/harnesses/code-fable/skills/documentation/references/templates.md +942 -0
  55. package/data/harnesses/code-fable/skills/workflow-mapper/SKILL.md +430 -0
  56. package/data/harnesses/code-fable/skills/workflow-mapper/references/patterns.md +214 -0
  57. package/data/harnesses/{re → discover}/CLAUDE.md +48 -33
  58. package/data/harnesses/{re → discover}/agents/api.md +3 -3
  59. package/data/harnesses/{re → discover}/agents/codebase.md +3 -3
  60. package/data/harnesses/{re → discover}/agents/community.md +3 -3
  61. package/data/harnesses/{re → discover}/agents/deployed-client-bundle.md +5 -5
  62. package/data/harnesses/{re → discover}/agents/distribution-artifacts.md +4 -4
  63. package/data/harnesses/{re → discover}/agents/docs.md +3 -3
  64. package/data/harnesses/{re → discover}/agents/infra-backend-fingerprint.md +2 -2
  65. package/data/harnesses/{re → discover}/agents/packages.md +3 -3
  66. package/data/harnesses/{re → discover}/agents/session.md +19 -11
  67. package/data/harnesses/{re → discover}/agents/website.md +3 -3
  68. package/data/harnesses/{re → discover}/agents/wire-capture.md +9 -7
  69. package/data/harnesses/discover/harness.json +7 -0
  70. package/data/harnesses/{re/rules/re-discovery.md → discover/rules/discovery.md} +54 -17
  71. package/data/harnesses/{re/rules/re-evaluation.md → discover/rules/evaluation.md} +12 -1
  72. package/data/harnesses/{re/rules/re-ingestion.md → discover/rules/ingestion.md} +192 -23
  73. package/data/harnesses/discover/rules/self-correction.md +177 -0
  74. package/data/harnesses/discover/rules/tradecraft.md +532 -0
  75. package/data/harnesses/hr/CLAUDE.md +91 -0
  76. package/data/harnesses/hr/harness.json +7 -0
  77. package/data/harnesses/hr/skills/interview-eval/SKILL.md +118 -0
  78. package/data/harnesses/hr/skills/interview-eval/TEMPLATE.md +124 -0
  79. package/data/harnesses/hr/skills/interview-eval/extract_session.py +418 -0
  80. package/data/harnesses/hr/skills/interview-eval/rubric.md +219 -0
  81. package/data/harnesses/kb-agi/harness.json +1 -0
  82. package/package.json +1 -1
  83. package/data/harnesses/code/hooks/post-commit.js +0 -136
  84. package/data/harnesses/code/hooks/post-tool-failure.js +0 -136
  85. package/data/harnesses/code/hooks/session-stop.js +0 -207
  86. package/data/harnesses/re/harness.json +0 -6
@@ -0,0 +1,288 @@
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
15
+ **Input:**
16
+
17
+ - `param1` (type) - Description
18
+ - `param2` (type, optional) - Description
19
+ **Output:** `{ field1, field2 }`
20
+ **Side Effects:** State updates, API calls, etc.
21
+ ```
22
+
23
+ ### Parameter Rules
24
+
25
+ - Name + type + one-line purpose
26
+ - Mark optional params with `(type, optional)`
27
+ - Nest object properties:
28
+ ```markdown
29
+ - `options` (object) - Configuration
30
+ - `options.retry` (boolean) - Enable retries
31
+ - `options.timeout` (number) - Timeout in ms
32
+ ```
33
+
34
+ ### Return Values
35
+
36
+ Always specify:
37
+
38
+ - Type: `Array<Object>`, `boolean`, `{ merged, changes }`
39
+ - Shape for objects/arrays
40
+ - Meaning: "True if sync successful"
41
+
42
+ ---
43
+
44
+ ## State Documentation
45
+
46
+ ### When to Document State
47
+
48
+ ✅ Do:
49
+
50
+ - Redux persistence (localStorage, IndexedDB)
51
+ - Database schemas
52
+ - API request/response shapes
53
+
54
+ ❌ Don't:
55
+
56
+ - Component-level state
57
+ - Derived/computed state
58
+ - Temporary UI state
59
+
60
+ ### Format
61
+
62
+ ````markdown
63
+ **Frontend (at persistence):**
64
+
65
+ ```json
66
+ {
67
+ "activeField": "value"
68
+ // "deprecated": null // UNUSED: Remove in v3
69
+ }
70
+ ```
71
+ ````
72
+
73
+ **Storage:** localStorage key `state_key`
74
+
75
+ **Backend:**
76
+
77
+ ```sql
78
+ model Table {
79
+ id String @id
80
+ data Json
81
+ // old String? // UNUSED: Legacy
82
+ }
83
+ ```
84
+
85
+ ````
86
+
87
+ ### Mark Unused Keys
88
+
89
+ Always comment deprecated/unused fields:
90
+ ```json
91
+ {
92
+ "active": [],
93
+ // "legacy": {} // UNUSED: Migrated to newField
94
+ }
95
+ ````
96
+
97
+ ---
98
+
99
+ ## ASCII Diagrams
100
+
101
+ ### When to Use
102
+
103
+ - Data flows
104
+ - System architecture
105
+ - Component interactions
106
+ - Process flows
107
+
108
+ ### Pattern
109
+
110
+ ```
111
+ ┌─────────────────────────────────────────┐
112
+ │ TITLE │
113
+ ├─────────────────────────────────────────┤
114
+ │ │
115
+ │ ┌──────┐ ┌──────┐ ┌──────┐ │
116
+ │ │ A │────▶│ B │────▶│ C │ │
117
+ │ └──────┘ └──────┘ └──────┘ │
118
+ │ │ │ │
119
+ │ ▼ ▼ │
120
+ │ Detail Detail │
121
+ │ │
122
+ └─────────────────────────────────────────┘
123
+ ```
124
+
125
+ ### Characters
126
+
127
+ - Boxes: `┌─┐│└┘├┤┬┴┼`
128
+ - Arrows: `───▶` `◀───` `│▼` `│▲`
129
+ - Width: ~70 chars max
130
+
131
+ ### UI Wireframes
132
+
133
+ For screen layouts (not data flows), use these conventions:
134
+
135
+ ```
136
+ **Route:** `path/:id`
137
+ **Tab:** Tab Name
138
+
139
+ ┌────────────────────────────────────┐
140
+ │ Title [i]3 [Button]│
141
+ │ [i]Label [Tag1][Tag2][+Add] │
142
+ └────────────────────────────────────┘
143
+ ```
144
+
145
+ - `[text]` = clickable button/badge
146
+ - `[i]` = icon (followed by label or count)
147
+ - `v` / `^` = expand/collapse indicator
148
+ - Show each UI state (collapsed/expanded) as separate diagrams
149
+ - Include Route/Tab context above wireframe
150
+
151
+ ---
152
+
153
+ ## Code Examples
154
+
155
+ ### Rules
156
+
157
+ - Under 15 lines
158
+ - Show contracts, not implementations
159
+ - Use pseudocode for algorithms
160
+
161
+ ✅ Good:
162
+
163
+ ```javascript
164
+ // Critical: Balanced brace matching
165
+ function extract(json) {
166
+ // Track brace depth
167
+ // Ignore braces inside strings
168
+ // Return complete objects only
169
+ }
170
+ ```
171
+
172
+ ❌ Bad: Full 50-line implementation
173
+
174
+ ---
175
+
176
+ ## Writing Style
177
+
178
+ ### Voice
179
+
180
+ Use imperative/active:
181
+
182
+ - ✅ "Fetches data from server"
183
+ - ✅ "Returns array of objects"
184
+ - ❌ "This function is used to fetch"
185
+ - ❌ "An array is returned"
186
+
187
+ ### When Prose Adds Value
188
+
189
+ Prose is valuable for context that contracts can't capture:
190
+
191
+ | Use Prose For | Example |
192
+ | -------------------- | ------------------------------------------------------------------------------------------------- |
193
+ | Section intros | "When the editor mounts, `useAppInit` is called with the `appId` from URL." |
194
+ | Non-obvious behavior | "The hook always fetches fresh data. There is no caching or version checking." |
195
+ | Design rationale | "Why parallel fetches? Each entity type is independent, reducing load time." |
196
+ | Edge cases | "If created then deleted before save, it's removed from `added[]` without adding to `removed[]`." |
197
+ | Current limitations | "This hook is not currently integrated into the main flow." |
198
+ | Usage context | "Used to show 'Unsaved' badge, warn before navigation, enable save buttons." |
199
+
200
+ ### When to Avoid Prose
201
+
202
+ - Describing WHAT code does (use signatures instead)
203
+ - Step-by-step flows (use diagrams instead)
204
+ - Structured comparisons (use tables instead)
205
+
206
+ ### Conciseness
207
+
208
+ One line when possible:
209
+
210
+ - ✅ "Merge server data with local changes using version-based conflict resolution"
211
+ - ❌ "This function takes the data from the server and also takes the local data..."
212
+
213
+ ### Tables
214
+
215
+ Use for structured info:
216
+
217
+ ```markdown
218
+ | Parameter | Type | Description |
219
+ | --------- | ------ | -------------- |
220
+ | `data` | object | Fresh from API |
221
+ | `local` | object | Current state |
222
+ ```
223
+
224
+ ---
225
+
226
+ ## Structure
227
+
228
+ ### Headers
229
+
230
+ ```markdown
231
+ # Document Title (H1 - once)
232
+
233
+ ## Major Section (H2)
234
+
235
+ ### Subsection (H3)
236
+
237
+ #### Detail (H4 - sparingly)
238
+ ```
239
+
240
+ ### Standard Layout
241
+
242
+ ```markdown
243
+ # [Title]
244
+
245
+ **Goal:** One-line purpose
246
+
247
+ ## Architecture
248
+
249
+ [Diagram + explanation]
250
+
251
+ ## Key Functions
252
+
253
+ [Signatures and contracts]
254
+
255
+ ## State
256
+
257
+ [Persistence shapes]
258
+
259
+ ## Files
260
+
261
+ [Source file list]
262
+ ```
263
+
264
+ ### File References
265
+
266
+ Always end with:
267
+
268
+ ```markdown
269
+ ## Files
270
+
271
+ - `src/path/main.js` - Core logic
272
+ - `src/path/hooks.js` - React hooks
273
+ ```
274
+
275
+ ---
276
+
277
+ ## Summary
278
+
279
+ | Aspect | Rule |
280
+ | ---------- | ------------------------------- |
281
+ | Functions | Always include signatures |
282
+ | Parameters | Type + purpose |
283
+ | Returns | Type + shape |
284
+ | State | Persistence points only |
285
+ | Diagrams | ASCII for all flows |
286
+ | Code | Under 15 lines, contracts only |
287
+ | Voice | Imperative/active |
288
+ | Length | Concise, one line when possible |