@rune-kit/rune 2.10.0 → 2.12.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 (240) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -6
  3. package/commands/rune.md +168 -168
  4. package/compiler/__tests__/detect-invariants.test.js +136 -0
  5. package/compiler/__tests__/doctor-mesh.test.js +229 -0
  6. package/compiler/__tests__/hook-dispatch.test.js +91 -0
  7. package/compiler/__tests__/hooks-antigravity.test.js +118 -0
  8. package/compiler/__tests__/hooks-cursor.test.js +139 -0
  9. package/compiler/__tests__/hooks-install.test.js +305 -0
  10. package/compiler/__tests__/hooks-merge.test.js +204 -0
  11. package/compiler/__tests__/hooks-tiers.test.js +519 -0
  12. package/compiler/__tests__/hooks-windsurf.test.js +115 -0
  13. package/compiler/__tests__/inject-claude-md.test.js +152 -0
  14. package/compiler/__tests__/load-invariants.test.js +408 -0
  15. package/compiler/__tests__/onboard-invariants.test.js +240 -0
  16. package/compiler/adapters/hooks/antigravity.js +140 -0
  17. package/compiler/adapters/hooks/claude.js +166 -0
  18. package/compiler/adapters/hooks/cursor.js +191 -0
  19. package/compiler/adapters/hooks/index.js +82 -0
  20. package/compiler/adapters/hooks/tier-emitter.js +182 -0
  21. package/compiler/adapters/hooks/windsurf.js +202 -0
  22. package/compiler/bin/rune.js +196 -6
  23. package/compiler/commands/hook-dispatch.js +87 -0
  24. package/compiler/commands/hooks/install.js +120 -0
  25. package/compiler/commands/hooks/merge.js +211 -0
  26. package/compiler/commands/hooks/presets.js +116 -0
  27. package/compiler/commands/hooks/status.js +112 -0
  28. package/compiler/commands/hooks/tiers.js +221 -0
  29. package/compiler/commands/hooks/uninstall.js +94 -0
  30. package/compiler/doctor.js +236 -0
  31. package/contexts/dev.md +34 -34
  32. package/contexts/research.md +43 -43
  33. package/contexts/review.md +55 -55
  34. package/extensions/ai-ml/PACK.md +88 -88
  35. package/extensions/ai-ml/skills/ai-agents.md +172 -172
  36. package/extensions/ai-ml/skills/code-sandbox.md +187 -187
  37. package/extensions/ai-ml/skills/deep-research.md +146 -146
  38. package/extensions/ai-ml/skills/embedding-search.md +66 -66
  39. package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
  40. package/extensions/ai-ml/skills/llm-architect.md +125 -125
  41. package/extensions/ai-ml/skills/llm-integration.md +64 -64
  42. package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
  43. package/extensions/ai-ml/skills/rag-patterns.md +66 -66
  44. package/extensions/ai-ml/skills/web-extraction.md +114 -114
  45. package/extensions/analytics/PACK.md +92 -92
  46. package/extensions/analytics/skills/ab-testing.md +72 -72
  47. package/extensions/analytics/skills/dashboard-patterns.md +83 -83
  48. package/extensions/analytics/skills/data-validation.md +68 -68
  49. package/extensions/analytics/skills/funnel-analysis.md +81 -81
  50. package/extensions/analytics/skills/sql-patterns.md +57 -57
  51. package/extensions/analytics/skills/statistical-analysis.md +79 -79
  52. package/extensions/analytics/skills/tracking-setup.md +71 -71
  53. package/extensions/backend/PACK.md +104 -104
  54. package/extensions/backend/skills/api-patterns.md +84 -84
  55. package/extensions/backend/skills/async-pipeline.md +193 -193
  56. package/extensions/backend/skills/auth-patterns.md +97 -97
  57. package/extensions/backend/skills/background-jobs.md +133 -133
  58. package/extensions/backend/skills/caching-patterns.md +108 -108
  59. package/extensions/backend/skills/cli-generation.md +133 -133
  60. package/extensions/backend/skills/database-patterns.md +87 -87
  61. package/extensions/backend/skills/middleware-patterns.md +104 -104
  62. package/extensions/chrome-ext/PACK.md +93 -93
  63. package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
  64. package/extensions/chrome-ext/skills/cws-publish.md +104 -104
  65. package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
  66. package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
  67. package/extensions/chrome-ext/skills/ext-storage.md +133 -133
  68. package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
  69. package/extensions/content/PACK.md +96 -96
  70. package/extensions/content/skills/blog-patterns.md +88 -88
  71. package/extensions/content/skills/cms-integration.md +131 -131
  72. package/extensions/content/skills/content-scoring.md +107 -107
  73. package/extensions/content/skills/i18n.md +83 -83
  74. package/extensions/content/skills/mdx-authoring.md +137 -137
  75. package/extensions/content/skills/reference.md +1014 -1014
  76. package/extensions/content/skills/seo-patterns.md +67 -67
  77. package/extensions/content/skills/video-repurpose.md +153 -153
  78. package/extensions/devops/PACK.md +101 -101
  79. package/extensions/devops/skills/chaos-testing.md +67 -67
  80. package/extensions/devops/skills/ci-cd.md +75 -75
  81. package/extensions/devops/skills/docker.md +58 -58
  82. package/extensions/devops/skills/edge-serverless.md +163 -163
  83. package/extensions/devops/skills/infra-as-code.md +158 -158
  84. package/extensions/devops/skills/kubernetes.md +110 -110
  85. package/extensions/devops/skills/monitoring.md +57 -57
  86. package/extensions/devops/skills/server-setup.md +64 -64
  87. package/extensions/devops/skills/ssl-domain.md +42 -42
  88. package/extensions/ecommerce/PACK.md +116 -116
  89. package/extensions/ecommerce/skills/cart-system.md +79 -79
  90. package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
  91. package/extensions/ecommerce/skills/order-management.md +126 -126
  92. package/extensions/ecommerce/skills/payment-integration.md +472 -472
  93. package/extensions/ecommerce/skills/shopify-dev.md +69 -69
  94. package/extensions/ecommerce/skills/subscription-billing.md +93 -93
  95. package/extensions/ecommerce/skills/tax-compliance.md +117 -117
  96. package/extensions/gamedev/PACK.md +142 -142
  97. package/extensions/gamedev/skills/asset-pipeline.md +74 -74
  98. package/extensions/gamedev/skills/audio-system.md +129 -129
  99. package/extensions/gamedev/skills/camera-system.md +87 -87
  100. package/extensions/gamedev/skills/ecs.md +98 -98
  101. package/extensions/gamedev/skills/game-loops.md +72 -72
  102. package/extensions/gamedev/skills/input-system.md +199 -199
  103. package/extensions/gamedev/skills/multiplayer.md +180 -180
  104. package/extensions/gamedev/skills/particles.md +105 -105
  105. package/extensions/gamedev/skills/physics-engine.md +89 -89
  106. package/extensions/gamedev/skills/scene-management.md +146 -146
  107. package/extensions/gamedev/skills/threejs-patterns.md +90 -90
  108. package/extensions/gamedev/skills/webgl.md +71 -71
  109. package/extensions/mobile/PACK.md +106 -106
  110. package/extensions/mobile/skills/app-store-connect.md +152 -152
  111. package/extensions/mobile/skills/app-store-prep.md +66 -66
  112. package/extensions/mobile/skills/deep-linking.md +109 -109
  113. package/extensions/mobile/skills/flutter.md +60 -60
  114. package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
  115. package/extensions/mobile/skills/native-bridge.md +66 -66
  116. package/extensions/mobile/skills/ota-updates.md +97 -97
  117. package/extensions/mobile/skills/push-notifications.md +111 -111
  118. package/extensions/mobile/skills/react-native.md +82 -82
  119. package/extensions/saas/PACK.md +116 -116
  120. package/extensions/saas/skills/billing-integration.md +200 -200
  121. package/extensions/saas/skills/feature-flags.md +130 -130
  122. package/extensions/saas/skills/multi-tenant.md +103 -103
  123. package/extensions/saas/skills/onboarding-flow.md +139 -139
  124. package/extensions/saas/skills/subscription-flow.md +95 -95
  125. package/extensions/saas/skills/team-management.md +144 -144
  126. package/extensions/security/PACK.md +99 -99
  127. package/extensions/security/skills/api-security.md +140 -140
  128. package/extensions/security/skills/compliance.md +68 -68
  129. package/extensions/security/skills/owasp-audit.md +64 -64
  130. package/extensions/security/skills/pentest-patterns.md +77 -77
  131. package/extensions/security/skills/secret-mgmt.md +65 -65
  132. package/extensions/security/skills/supply-chain.md +65 -65
  133. package/extensions/trading/PACK.md +80 -80
  134. package/extensions/trading/skills/chart-components.md +55 -55
  135. package/extensions/trading/skills/experiment-loop.md +125 -125
  136. package/extensions/trading/skills/fintech-patterns.md +47 -47
  137. package/extensions/trading/skills/indicator-library.md +58 -58
  138. package/extensions/trading/skills/quant-analysis.md +111 -111
  139. package/extensions/trading/skills/realtime-data.md +58 -58
  140. package/extensions/trading/skills/trade-logic.md +104 -104
  141. package/extensions/ui/PACK.md +130 -130
  142. package/extensions/ui/skills/a11y-audit.md +91 -91
  143. package/extensions/ui/skills/animation-patterns.md +127 -127
  144. package/extensions/ui/skills/component-patterns.md +100 -100
  145. package/extensions/ui/skills/design-decision.md +108 -108
  146. package/extensions/ui/skills/design-system.md +68 -68
  147. package/extensions/ui/skills/landing-patterns.md +155 -155
  148. package/extensions/ui/skills/palette-picker.md +173 -173
  149. package/extensions/ui/skills/react-health.md +90 -90
  150. package/extensions/ui/skills/type-system.md +125 -125
  151. package/extensions/ui/skills/web-vitals.md +153 -153
  152. package/extensions/zalo/PACK.md +145 -145
  153. package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
  154. package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
  155. package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
  156. package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
  157. package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
  158. package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
  159. package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
  160. package/hooks/auto-format/index.cjs +48 -48
  161. package/hooks/hooks.json +111 -111
  162. package/hooks/post-session-reflect/index.cjs +189 -189
  163. package/hooks/pre-compact/index.cjs +95 -95
  164. package/hooks/run-hook.cmd +1 -1
  165. package/hooks/secrets-scan/index.cjs +100 -100
  166. package/hooks/session-start/index.cjs +71 -71
  167. package/hooks/typecheck/index.cjs +65 -65
  168. package/package.json +63 -63
  169. package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
  170. package/references/ui-pro-max-data/charts.csv +26 -26
  171. package/references/ui-pro-max-data/colors.csv +161 -161
  172. package/references/ui-pro-max-data/styles.csv +68 -68
  173. package/references/ui-pro-max-data/typography.csv +74 -74
  174. package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
  175. package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
  176. package/skills/adversary/SKILL.md +283 -283
  177. package/skills/asset-creator/SKILL.md +157 -157
  178. package/skills/audit/SKILL.md +147 -2
  179. package/skills/autopsy/SKILL.md +335 -335
  180. package/skills/ba/SKILL.md +85 -1
  181. package/skills/brainstorm/SKILL.md +380 -342
  182. package/skills/browser-pilot/SKILL.md +169 -168
  183. package/skills/constraint-check/SKILL.md +165 -165
  184. package/skills/context-engine/SKILL.md +408 -404
  185. package/skills/cook/SKILL.md +917 -863
  186. package/skills/db/SKILL.md +273 -273
  187. package/skills/debug/SKILL.md +465 -465
  188. package/skills/dependency-doctor/SKILL.md +265 -235
  189. package/skills/deploy/SKILL.md +274 -231
  190. package/skills/design/DESIGN-REFERENCE.md +365 -365
  191. package/skills/design/SKILL.md +590 -589
  192. package/skills/doc-processor/SKILL.md +254 -254
  193. package/skills/docs/SKILL.md +374 -374
  194. package/skills/docs-seeker/SKILL.md +178 -177
  195. package/skills/fix/SKILL.md +332 -330
  196. package/skills/git/SKILL.md +339 -339
  197. package/skills/hallucination-guard/SKILL.md +220 -219
  198. package/skills/incident/SKILL.md +254 -253
  199. package/skills/integrity-check/SKILL.md +169 -169
  200. package/skills/journal/SKILL.md +241 -240
  201. package/skills/launch/SKILL.md +344 -344
  202. package/skills/logic-guardian/SKILL.md +269 -251
  203. package/skills/marketing/SKILL.md +351 -289
  204. package/skills/mcp-builder/SKILL.md +425 -425
  205. package/skills/neural-memory/SKILL.md +359 -362
  206. package/skills/onboard/SKILL.md +432 -403
  207. package/skills/onboard/references/invariants-template.md +76 -0
  208. package/skills/onboard/scripts/detect-invariants.js +439 -0
  209. package/skills/onboard/scripts/inject-claude-md.js +150 -0
  210. package/skills/onboard/scripts/onboard-invariants.js +194 -0
  211. package/skills/perf/SKILL.md +347 -346
  212. package/skills/plan/SKILL.md +435 -428
  213. package/skills/preflight/SKILL.md +415 -415
  214. package/skills/problem-solver/SKILL.md +380 -284
  215. package/skills/rescue/SKILL.md +474 -474
  216. package/skills/research/SKILL.md +4 -0
  217. package/skills/retro/SKILL.md +3 -1
  218. package/skills/review/SKILL.md +614 -588
  219. package/skills/review-intake/SKILL.md +249 -249
  220. package/skills/safeguard/SKILL.md +200 -200
  221. package/skills/sast/SKILL.md +190 -190
  222. package/skills/scaffold/SKILL.md +328 -287
  223. package/skills/scope-guard/SKILL.md +183 -180
  224. package/skills/scout/SKILL.md +269 -263
  225. package/skills/sentinel/SKILL.md +384 -381
  226. package/skills/sentinel-env/SKILL.md +254 -254
  227. package/skills/sequential-thinking/SKILL.md +234 -234
  228. package/skills/session-bridge/SKILL.md +595 -543
  229. package/skills/session-bridge/scripts/load-invariants.js +397 -0
  230. package/skills/skill-forge/SKILL.md +581 -581
  231. package/skills/skill-router/SKILL.md +3 -0
  232. package/skills/slides/SKILL.md +19 -0
  233. package/skills/surgeon/SKILL.md +215 -215
  234. package/skills/team/SKILL.md +557 -537
  235. package/skills/test/SKILL.md +620 -614
  236. package/skills/trend-scout/SKILL.md +145 -145
  237. package/skills/verification/SKILL.md +334 -326
  238. package/skills/video-creator/SKILL.md +201 -201
  239. package/skills/watchdog/SKILL.md +168 -168
  240. package/skills/worktree/SKILL.md +140 -140
@@ -1,240 +1,241 @@
1
- ---
2
- name: journal
3
- description: Persistent state tracking and Architecture Decision Records across sessions. Manages progress state, module health, dependency graphs, and ADRs for any workflow.
4
- metadata:
5
- author: runedev
6
- version: "0.3.0"
7
- layer: L3
8
- model: haiku
9
- group: state
10
- tools: "Read, Write, Edit, Glob, Grep"
11
- listen: graft.complete
12
- ---
13
-
14
- # journal
15
-
16
- ## Purpose
17
-
18
- Persistent state tracking and Architecture Decision Records across sessions. Journal manages the state files that allow any workflow to span multiple sessions without losing progress — rescue operations, feature development, deploy decisions, or audit findings. Separate from session-bridge which handles general context injection — journal writes durable, human-readable state that survives compaction.
19
-
20
- ## Triggers
21
-
22
- - Called by any skill needing decision persistence or progress tracking
23
- - Auto-trigger: after surgeon completes a module, after deploy, after audit phases
24
-
25
- ## Calls (outbound)
26
-
27
- None — pure L3 state management utility.
28
-
29
- ## Called By (inbound)
30
-
31
- - `surgeon` (L2): update progress after each surgery session
32
- - `rescue` (L1): read state for rescue dashboard
33
- - `autopsy` (L2): save initial health assessment
34
- - `cook` (L1): record key architectural decisions made during feature development
35
- - `deploy` (L2): record deploy decision, rollback plan, and post-deploy status
36
- - `audit` (L2): save AUDIT-REPORT.md and record health trend entry
37
- - `incident` (L2): record incident timeline and postmortem
38
- - `skill-forge` (L2): record skill creation decisions and rationale
39
- - `graft` (L2): auto-log graft operations — source URL, mode, challenge score, files changed
40
-
41
- ## Files Managed
42
-
43
- ```
44
- .rune/RESCUE-STATE.md — Human-readable rescue progress (loaded into context)
45
- .rune/module-status.json Machine-readable module states
46
- .rune/dependency-graph.mmd Mermaid diagram, color-coded by health
47
- .rune/adr/ Architecture Decision Records (one per decision)
48
- .rune/risks/ Risk Register entries (one per identified risk)
49
- ```
50
-
51
- ## Execution
52
-
53
- ### Step 1 — Load state
54
-
55
- Use `Read` to load current rescue state:
56
-
57
- ```
58
- Read: .rune/RESCUE-STATE.md
59
- Read: .rune/module-status.json
60
- ```
61
-
62
- If either file does not exist, initialize it with an empty template:
63
-
64
- - `RESCUE-STATE.md`: create with header `# Rescue State\n\n**Started**: [date]\n**Phase**: 1\n`
65
- - `module-status.json`: create with `{ "modules": [], "lastUpdated": "[iso-date]" }`
66
-
67
- Parse `module-status.json` to extract current module states and health scores.
68
-
69
- ### Step 2 — Update progress
70
-
71
- For each module that was completed during this session:
72
-
73
- 1. Locate the module entry in the parsed `module-status.json`
74
- 2. Update its fields:
75
- - `status`: set to `"complete"` (or `"in-progress"` / `"blocked"` as appropriate)
76
- - `healthScore`: set to the post-surgery score (0-100)
77
- - `completedAt`: set to current ISO timestamp
78
- 3. Mark the active module pointer in `RESCUE-STATE.md` update the `**Current Module**` line to the next pending module
79
-
80
- Use `Write` to save the updated `module-status.json`.
81
-
82
- Use `Edit` to update the relevant lines in `RESCUE-STATE.md` (current phase, current module, counts of completed vs pending).
83
-
84
- ### Step 3 — Record decisions
85
-
86
- For each architectural decision or trade-off made during this session (applies to any workflow — feature development, deploy, rescue, audit):
87
-
88
- 1. Generate an ADR filename: `.rune/adr/ADR-[NNN]-[slug].md` where NNN is the next sequential number
89
- 2. Use `Write` to create the ADR file with this format:
90
-
91
- ```markdown
92
- # ADR-[NNN]: [Decision Title]
93
-
94
- **Date**: [YYYY-MM-DD]
95
- **Status**: Accepted
96
- **Workflow**: [rescue | cook | deploy | audit | other]
97
- **Scope**: [affected module, feature, or system area]
98
-
99
- ## Context
100
- [Why this decision was needed — what problem or trade-off prompted it]
101
-
102
- ## Decision
103
- [What was decided — be specific, not "we chose X" but "we chose X over Y"]
104
-
105
- ## Rationale
106
- [Why this approach over alternatives — cite specific constraints or evidence]
107
-
108
- ## Consequences
109
- [Impact on files/modules/future work — include rollback path if relevant]
110
-
111
- ## Rejected Alternatives
112
- [List what was considered but NOT chosen, and why. This prevents future sessions from re-visiting dead ends.]
113
- - **[Alternative A]**: Rejected because [specific reason — constraint, performance, complexity]
114
- - **[Alternative B]**: Rejected because [specific reason]. May reconsider if [condition changes].
115
- ```
116
-
117
- ### Step 3.5 — Record risks
118
-
119
- For each risk identified during the session (technical, schedule, dependency, security):
120
-
121
- 1. Generate a risk filename: `.rune/risks/RISK-[NNN]-[slug].md` where NNN is next sequential number
122
- 2. Use `Write` to create the risk file:
123
-
124
- ```markdown
125
- # RISK-[NNN]: [Risk Title]
126
-
127
- **Date Identified**: [YYYY-MM-DD]
128
- **Identified By**: [workflow — cook | plan | deploy | audit | adversary]
129
- **Severity**: Critical | High | Medium | Low
130
- **Likelihood**: High | Medium | Low
131
- **Status**: Open | Mitigated | Accepted | Closed
132
-
133
- ## Description
134
- [What could go wrong — specific scenario, not vague "things might break"]
135
-
136
- ## Impact
137
- [What happens if this risk materializes — quantify if possible]
138
-
139
- ## Mitigation
140
- [Actions to reduce likelihood or impact]
141
- - [ ] [Action 1 owner, deadline]
142
- - [ ] [Action 2]
143
-
144
- ## Trigger Conditions
145
- [How to detect this risk is materializing — monitoring, alerts, symptoms]
146
-
147
- ## Contingency
148
- [What to do if risk materializes despite mitigation — the Plan B]
149
- ```
150
-
151
- 3. **Risk classification matrix**:
152
-
153
- | Likelihood \ Severity | Critical | High | Medium | Low |
154
- |----------------------|----------|------|--------|-----|
155
- | **High** | 🔴 Immediate action | 🔴 This sprint | 🟡 This quarter | ⚪ Backlog |
156
- | **Medium** | 🔴 This sprint | 🟡 This quarter | ⚪ Backlog | ⚪ Accept |
157
- | **Low** | 🟡 This quarter | Backlog | ⚪ Accept | ⚪ Accept |
158
-
159
- 4. Risks marked 🔴 MUST have mitigation actions with deadlines. ⚪ Accept = documented acknowledgment, no action required.
160
-
161
- ### Step 4 — Update dependency graph
162
-
163
- If any module dependencies changed during this session (new imports, removed dependencies, refactored interfaces):
164
-
165
- Use `Read` on `.rune/dependency-graph.mmd` to load the current Mermaid diagram.
166
-
167
- Use `Edit` to update the affected node entries:
168
- - Change node color/style to reflect new health status (e.g., `style ModuleName fill:#00d084` for healthy, `fill:#ff6b6b` for broken)
169
- - Add or remove edges as dependencies changed
170
-
171
- Use `Write` to save the updated `.rune/dependency-graph.mmd`.
172
-
173
- ### Step 5 — Save state
174
-
175
- Use `Write` to finalize any remaining state file changes not already saved in Steps 2-4.
176
-
177
- Confirm all four managed files are consistent:
178
- - `RESCUE-STATE.md` reflects current phase and module
179
- - `module-status.json` has updated scores and timestamps
180
- - ADR files exist for all decisions made
181
- - `dependency-graph.mmd` reflects current module relationships
182
-
183
- ### Step 6 — Report
184
-
185
- Emit the journal update summary to the calling skill.
186
-
187
- ## Output Format
188
-
189
- ```
190
- ## Journal Update
191
- - **Phase**: [current rescue phase]
192
- - **Module**: [current module]
193
- - **Health**: [before] → [after]
194
- - **ADRs Written**: [count]
195
- - **Risks Logged**: [count] ([severity breakdown])
196
- - **Files Updated**: [list of .rune/ files modified]
197
- - **Next Module**: [next in queue, or "rescue complete"]
198
- ```
199
-
200
- ## Context Recovery (new session)
201
-
202
- ```
203
- 1. Read .rune/RESCUE-STATE.md → full rescue history
204
- 2. Read .rune/module-status.json module states and health scores
205
- 3. Read .rune/risks/ open risks and their status
206
- 4. Read git log latest changes since last session
207
- 5. Read CLAUDE.md project conventions
208
- Result: Zero context loss across rescue sessions
209
- ```
210
-
211
- ## Constraints
212
-
213
- 1. MUST record decisions with rationale — not just "decided to use X"
214
- 2. MUST timestamp all entries
215
- 3. MUST NOT log sensitive data (secrets, tokens, credentials)
216
- 4. MUST work for any workflow never require rescue-specific fields to be present
217
-
218
- ## Sharp Edges
219
-
220
- Known failure modes for this skill. Check these before declaring done.
221
-
222
- | Failure Mode | Severity | Mitigation |
223
- |---|---|---|
224
- | ADR written from memory instead of actual session events | HIGH | Only record decisions that were explicitly made in this session — don't reconstruct |
225
- | RESCUE-STATE.md initialized without content when called from non-rescue workflows | MEDIUM | If caller is not rescue/surgeon, skip RESCUE-STATE.md initializationuse progress.md instead |
226
- | Overwriting human-written ADR content on re-run | CRITICAL | MUST check if ADR-[NNN].md exists before writing never overwrite, increment NNN |
227
- | Empty ADR Rationale field ("decided to use X") | MEDIUM | Constraint 1 blocks thisre-prompt for rationale before writing |
228
-
229
- ## Done When
230
-
231
- - All decisions from the session recorded as ADR files with rationale
232
- - All identified risks recorded as RISK files with severity, mitigation, and trigger conditions
233
- - Progress state updated (module status, phase, or deploy event as appropriate)
234
- - Dependency graph updated if module relationships changed
235
- - Journal Update summary emitted to calling skill
236
- - No existing ADR files overwritten
237
-
238
- ## Cost Profile
239
-
240
- ~200-500 tokens input, ~100-300 tokens output. Haiku. Pure file management.
1
+ ---
2
+ name: journal
3
+ description: Persistent state tracking and Architecture Decision Records across sessions. Manages progress state, module health, dependency graphs, and ADRs for any workflow.
4
+ metadata:
5
+ author: runedev
6
+ version: "0.3.0"
7
+ layer: L3
8
+ model: haiku
9
+ group: state
10
+ tools: "Read, Write, Edit, Glob, Grep"
11
+ listen: graft.complete
12
+ ---
13
+
14
+ # journal
15
+
16
+ ## Purpose
17
+
18
+ Persistent state tracking and Architecture Decision Records across sessions. Journal manages the state files that allow any workflow to span multiple sessions without losing progress — rescue operations, feature development, deploy decisions, or audit findings. Separate from session-bridge which handles general context injection — journal writes durable, human-readable state that survives compaction.
19
+
20
+ ## Triggers
21
+
22
+ - Called by any skill needing decision persistence or progress tracking
23
+ - Auto-trigger: after surgeon completes a module, after deploy, after audit phases
24
+
25
+ ## Calls (outbound)
26
+
27
+ None — pure L3 state management utility.
28
+
29
+ ## Called By (inbound)
30
+
31
+ - `surgeon` (L2): update progress after each surgery session
32
+ - `rescue` (L1): read state for rescue dashboard
33
+ - `autopsy` (L2): save initial health assessment
34
+ - `cook` (L1): record key architectural decisions made during feature development
35
+ - `deploy` (L2): record deploy decision, rollback plan, and post-deploy status
36
+ - `audit` (L2): save AUDIT-REPORT.md and record health trend entry
37
+ - `incident` (L2): record incident timeline and postmortem
38
+ - `skill-forge` (L2): record skill creation decisions and rationale
39
+ - `graft` (L2): auto-log graft operations — source URL, mode, challenge score, files changed
40
+ - `retro` (L2): record retrospective insights and decisions
41
+
42
+ ## Files Managed
43
+
44
+ ```
45
+ .rune/RESCUE-STATE.md Human-readable rescue progress (loaded into context)
46
+ .rune/module-status.json Machine-readable module states
47
+ .rune/dependency-graph.mmd Mermaid diagram, color-coded by health
48
+ .rune/adr/ Architecture Decision Records (one per decision)
49
+ .rune/risks/ — Risk Register entries (one per identified risk)
50
+ ```
51
+
52
+ ## Execution
53
+
54
+ ### Step 1 — Load state
55
+
56
+ Use `Read` to load current rescue state:
57
+
58
+ ```
59
+ Read: .rune/RESCUE-STATE.md
60
+ Read: .rune/module-status.json
61
+ ```
62
+
63
+ If either file does not exist, initialize it with an empty template:
64
+
65
+ - `RESCUE-STATE.md`: create with header `# Rescue State\n\n**Started**: [date]\n**Phase**: 1\n`
66
+ - `module-status.json`: create with `{ "modules": [], "lastUpdated": "[iso-date]" }`
67
+
68
+ Parse `module-status.json` to extract current module states and health scores.
69
+
70
+ ### Step 2 — Update progress
71
+
72
+ For each module that was completed during this session:
73
+
74
+ 1. Locate the module entry in the parsed `module-status.json`
75
+ 2. Update its fields:
76
+ - `status`: set to `"complete"` (or `"in-progress"` / `"blocked"` as appropriate)
77
+ - `healthScore`: set to the post-surgery score (0-100)
78
+ - `completedAt`: set to current ISO timestamp
79
+ 3. Mark the active module pointer in `RESCUE-STATE.md` — update the `**Current Module**` line to the next pending module
80
+
81
+ Use `Write` to save the updated `module-status.json`.
82
+
83
+ Use `Edit` to update the relevant lines in `RESCUE-STATE.md` (current phase, current module, counts of completed vs pending).
84
+
85
+ ### Step 3 — Record decisions
86
+
87
+ For each architectural decision or trade-off made during this session (applies to any workflow — feature development, deploy, rescue, audit):
88
+
89
+ 1. Generate an ADR filename: `.rune/adr/ADR-[NNN]-[slug].md` where NNN is the next sequential number
90
+ 2. Use `Write` to create the ADR file with this format:
91
+
92
+ ```markdown
93
+ # ADR-[NNN]: [Decision Title]
94
+
95
+ **Date**: [YYYY-MM-DD]
96
+ **Status**: Accepted
97
+ **Workflow**: [rescue | cook | deploy | audit | other]
98
+ **Scope**: [affected module, feature, or system area]
99
+
100
+ ## Context
101
+ [Why this decision was needed — what problem or trade-off prompted it]
102
+
103
+ ## Decision
104
+ [What was decided — be specific, not "we chose X" but "we chose X over Y"]
105
+
106
+ ## Rationale
107
+ [Why this approach over alternatives — cite specific constraints or evidence]
108
+
109
+ ## Consequences
110
+ [Impact on files/modules/future work — include rollback path if relevant]
111
+
112
+ ## Rejected Alternatives
113
+ [List what was considered but NOT chosen, and why. This prevents future sessions from re-visiting dead ends.]
114
+ - **[Alternative A]**: Rejected because [specific reason constraint, performance, complexity]
115
+ - **[Alternative B]**: Rejected because [specific reason]. May reconsider if [condition changes].
116
+ ```
117
+
118
+ ### Step 3.5 — Record risks
119
+
120
+ For each risk identified during the session (technical, schedule, dependency, security):
121
+
122
+ 1. Generate a risk filename: `.rune/risks/RISK-[NNN]-[slug].md` where NNN is next sequential number
123
+ 2. Use `Write` to create the risk file:
124
+
125
+ ```markdown
126
+ # RISK-[NNN]: [Risk Title]
127
+
128
+ **Date Identified**: [YYYY-MM-DD]
129
+ **Identified By**: [workflow — cook | plan | deploy | audit | adversary]
130
+ **Severity**: Critical | High | Medium | Low
131
+ **Likelihood**: High | Medium | Low
132
+ **Status**: Open | Mitigated | Accepted | Closed
133
+
134
+ ## Description
135
+ [What could go wrong — specific scenario, not vague "things might break"]
136
+
137
+ ## Impact
138
+ [What happens if this risk materializes — quantify if possible]
139
+
140
+ ## Mitigation
141
+ [Actions to reduce likelihood or impact]
142
+ - [ ] [Action 1 — owner, deadline]
143
+ - [ ] [Action 2]
144
+
145
+ ## Trigger Conditions
146
+ [How to detect this risk is materializing — monitoring, alerts, symptoms]
147
+
148
+ ## Contingency
149
+ [What to do if risk materializes despite mitigation — the Plan B]
150
+ ```
151
+
152
+ 3. **Risk classification matrix**:
153
+
154
+ | Likelihood \ Severity | Critical | High | Medium | Low |
155
+ |----------------------|----------|------|--------|-----|
156
+ | **High** | 🔴 Immediate action | 🔴 This sprint | 🟡 This quarter | ⚪ Backlog |
157
+ | **Medium** | 🔴 This sprint | 🟡 This quarter | ⚪ Backlog | ⚪ Accept |
158
+ | **Low** | 🟡 This quarter | ⚪ Backlog | ⚪ Accept | ⚪ Accept |
159
+
160
+ 4. Risks marked 🔴 MUST have mitigation actions with deadlines. ⚪ Accept = documented acknowledgment, no action required.
161
+
162
+ ### Step 4 — Update dependency graph
163
+
164
+ If any module dependencies changed during this session (new imports, removed dependencies, refactored interfaces):
165
+
166
+ Use `Read` on `.rune/dependency-graph.mmd` to load the current Mermaid diagram.
167
+
168
+ Use `Edit` to update the affected node entries:
169
+ - Change node color/style to reflect new health status (e.g., `style ModuleName fill:#00d084` for healthy, `fill:#ff6b6b` for broken)
170
+ - Add or remove edges as dependencies changed
171
+
172
+ Use `Write` to save the updated `.rune/dependency-graph.mmd`.
173
+
174
+ ### Step 5 — Save state
175
+
176
+ Use `Write` to finalize any remaining state file changes not already saved in Steps 2-4.
177
+
178
+ Confirm all four managed files are consistent:
179
+ - `RESCUE-STATE.md` reflects current phase and module
180
+ - `module-status.json` has updated scores and timestamps
181
+ - ADR files exist for all decisions made
182
+ - `dependency-graph.mmd` reflects current module relationships
183
+
184
+ ### Step 6 — Report
185
+
186
+ Emit the journal update summary to the calling skill.
187
+
188
+ ## Output Format
189
+
190
+ ```
191
+ ## Journal Update
192
+ - **Phase**: [current rescue phase]
193
+ - **Module**: [current module]
194
+ - **Health**: [before] → [after]
195
+ - **ADRs Written**: [count]
196
+ - **Risks Logged**: [count] ([severity breakdown])
197
+ - **Files Updated**: [list of .rune/ files modified]
198
+ - **Next Module**: [next in queue, or "rescue complete"]
199
+ ```
200
+
201
+ ## Context Recovery (new session)
202
+
203
+ ```
204
+ 1. Read .rune/RESCUE-STATE.md full rescue history
205
+ 2. Read .rune/module-status.json module states and health scores
206
+ 3. Read .rune/risks/ open risks and their status
207
+ 4. Read git log latest changes since last session
208
+ 5. Read CLAUDE.md → project conventions
209
+ → Result: Zero context loss across rescue sessions
210
+ ```
211
+
212
+ ## Constraints
213
+
214
+ 1. MUST record decisions with rationale — not just "decided to use X"
215
+ 2. MUST timestamp all entries
216
+ 3. MUST NOT log sensitive data (secrets, tokens, credentials)
217
+ 4. MUST work for any workflow — never require rescue-specific fields to be present
218
+
219
+ ## Sharp Edges
220
+
221
+ Known failure modes for this skill. Check these before declaring done.
222
+
223
+ | Failure Mode | Severity | Mitigation |
224
+ |---|---|---|
225
+ | ADR written from memory instead of actual session events | HIGH | Only record decisions that were explicitly made in this session don't reconstruct |
226
+ | RESCUE-STATE.md initialized without content when called from non-rescue workflows | MEDIUM | If caller is not rescue/surgeon, skip RESCUE-STATE.md initializationuse progress.md instead |
227
+ | Overwriting human-written ADR content on re-run | CRITICAL | MUST check if ADR-[NNN].md exists before writing never overwrite, increment NNN |
228
+ | Empty ADR Rationale field ("decided to use X") | MEDIUM | Constraint 1 blocks this — re-prompt for rationale before writing |
229
+
230
+ ## Done When
231
+
232
+ - All decisions from the session recorded as ADR files with rationale
233
+ - All identified risks recorded as RISK files with severity, mitigation, and trigger conditions
234
+ - Progress state updated (module status, phase, or deploy event as appropriate)
235
+ - Dependency graph updated if module relationships changed
236
+ - Journal Update summary emitted to calling skill
237
+ - No existing ADR files overwritten
238
+
239
+ ## Cost Profile
240
+
241
+ ~200-500 tokens input, ~100-300 tokens output. Haiku. Pure file management.