mindlore 0.7.3 → 0.7.5

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 (197) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +18 -0
  4. package/dist/scripts/bundle-hooks.js +3 -4
  5. package/dist/scripts/bundle-hooks.js.map +1 -1
  6. package/dist/scripts/init.js +74 -20
  7. package/dist/scripts/init.js.map +1 -1
  8. package/dist/scripts/lib/constants.d.ts +21 -1
  9. package/dist/scripts/lib/constants.d.ts.map +1 -1
  10. package/dist/scripts/lib/constants.js +33 -7
  11. package/dist/scripts/lib/constants.js.map +1 -1
  12. package/dist/scripts/lib/db-helpers.d.ts +1 -0
  13. package/dist/scripts/lib/db-helpers.d.ts.map +1 -1
  14. package/dist/scripts/lib/db-helpers.js +37 -0
  15. package/dist/scripts/lib/db-helpers.js.map +1 -1
  16. package/dist/scripts/lib/detect-plugin.js +1 -1
  17. package/dist/scripts/lib/detect-plugin.js.map +1 -1
  18. package/dist/scripts/lib/episodes.d.ts +1 -1
  19. package/dist/scripts/lib/episodes.d.ts.map +1 -1
  20. package/dist/scripts/lib/episodes.js +1 -1
  21. package/dist/scripts/lib/episodes.js.map +1 -1
  22. package/dist/scripts/lib/hook-helpers.d.ts +8 -0
  23. package/dist/scripts/lib/hook-helpers.d.ts.map +1 -0
  24. package/dist/scripts/lib/hook-helpers.js +27 -0
  25. package/dist/scripts/lib/hook-helpers.js.map +1 -0
  26. package/dist/scripts/lib/mcp-namespace.d.ts.map +1 -1
  27. package/dist/scripts/lib/mcp-namespace.js +0 -5
  28. package/dist/scripts/lib/mcp-namespace.js.map +1 -1
  29. package/dist/scripts/lib/mcp-tools.d.ts.map +1 -1
  30. package/dist/scripts/lib/mcp-tools.js +3 -19
  31. package/dist/scripts/lib/mcp-tools.js.map +1 -1
  32. package/dist/scripts/lib/relation-helpers.js +1 -1
  33. package/dist/scripts/lib/relation-helpers.js.map +1 -1
  34. package/dist/scripts/lib/session-payload.d.ts.map +1 -1
  35. package/dist/scripts/lib/session-payload.js +7 -21
  36. package/dist/scripts/lib/session-payload.js.map +1 -1
  37. package/dist/scripts/lib/settings-cleanup.d.ts.map +1 -1
  38. package/dist/scripts/lib/settings-cleanup.js +2 -2
  39. package/dist/scripts/lib/settings-cleanup.js.map +1 -1
  40. package/dist/scripts/lib/skill-runner.d.ts +3 -0
  41. package/dist/scripts/lib/skill-runner.d.ts.map +1 -0
  42. package/dist/scripts/lib/skill-runner.js +78 -0
  43. package/dist/scripts/lib/skill-runner.js.map +1 -0
  44. package/dist/scripts/lib/telemetry-scan.d.ts +19 -0
  45. package/dist/scripts/lib/telemetry-scan.d.ts.map +1 -0
  46. package/dist/scripts/lib/telemetry-scan.js +42 -0
  47. package/dist/scripts/lib/telemetry-scan.js.map +1 -0
  48. package/dist/scripts/lib/tool-adapters/decide-adapter.d.ts +1 -1
  49. package/dist/scripts/lib/tool-adapters/decide-adapter.d.ts.map +1 -1
  50. package/dist/scripts/lib/tool-adapters/decide-adapter.js +5 -0
  51. package/dist/scripts/lib/tool-adapters/decide-adapter.js.map +1 -1
  52. package/dist/scripts/mindlore-clean-cache.d.ts +3 -0
  53. package/dist/scripts/mindlore-clean-cache.d.ts.map +1 -0
  54. package/dist/scripts/mindlore-clean-cache.js +65 -0
  55. package/dist/scripts/mindlore-clean-cache.js.map +1 -0
  56. package/dist/scripts/mindlore-doctor.d.ts +3 -0
  57. package/dist/scripts/mindlore-doctor.d.ts.map +1 -1
  58. package/dist/scripts/mindlore-doctor.js +84 -15
  59. package/dist/scripts/mindlore-doctor.js.map +1 -1
  60. package/dist/scripts/mindlore-health-check.js +2 -2
  61. package/dist/scripts/mindlore-health-check.js.map +1 -1
  62. package/dist/scripts/mindlore-perf.d.ts +3 -1
  63. package/dist/scripts/mindlore-perf.d.ts.map +1 -1
  64. package/dist/scripts/mindlore-perf.js +13 -6
  65. package/dist/scripts/mindlore-perf.js.map +1 -1
  66. package/dist/scripts/reflect-failure-scan.d.ts +3 -0
  67. package/dist/scripts/reflect-failure-scan.d.ts.map +1 -0
  68. package/dist/scripts/reflect-failure-scan.js +41 -0
  69. package/dist/scripts/reflect-failure-scan.js.map +1 -0
  70. package/dist/tests/clean-cache.test.d.ts +2 -0
  71. package/dist/tests/clean-cache.test.d.ts.map +1 -0
  72. package/dist/tests/clean-cache.test.js +59 -0
  73. package/dist/tests/clean-cache.test.js.map +1 -0
  74. package/dist/tests/db-helpers-vec.test.d.ts +2 -0
  75. package/dist/tests/db-helpers-vec.test.d.ts.map +1 -0
  76. package/dist/tests/db-helpers-vec.test.js +32 -0
  77. package/dist/tests/db-helpers-vec.test.js.map +1 -0
  78. package/dist/tests/db-helpers.test.d.ts +2 -0
  79. package/dist/tests/db-helpers.test.d.ts.map +1 -0
  80. package/dist/tests/db-helpers.test.js +30 -0
  81. package/dist/tests/db-helpers.test.js.map +1 -0
  82. package/dist/tests/diary.test.js +3 -3
  83. package/dist/tests/diary.test.js.map +1 -1
  84. package/dist/tests/doctor.test.js +39 -0
  85. package/dist/tests/doctor.test.js.map +1 -1
  86. package/dist/tests/dont-repeat-dedup.test.js +13 -1
  87. package/dist/tests/dont-repeat-dedup.test.js.map +1 -1
  88. package/dist/tests/episodes-inject.test.js +5 -5
  89. package/dist/tests/episodes-inject.test.js.map +1 -1
  90. package/dist/tests/fts5-sync.test.js +11 -117
  91. package/dist/tests/fts5-sync.test.js.map +1 -1
  92. package/dist/tests/hook-helpers.test.d.ts +2 -0
  93. package/dist/tests/hook-helpers.test.d.ts.map +1 -0
  94. package/dist/tests/hook-helpers.test.js +44 -0
  95. package/dist/tests/hook-helpers.test.js.map +1 -0
  96. package/dist/tests/init-spawn-cleanup.test.d.ts +2 -0
  97. package/dist/tests/init-spawn-cleanup.test.d.ts.map +1 -0
  98. package/dist/tests/init-spawn-cleanup.test.js +21 -0
  99. package/dist/tests/init-spawn-cleanup.test.js.map +1 -0
  100. package/dist/tests/install-matrix.test.js +39 -0
  101. package/dist/tests/install-matrix.test.js.map +1 -1
  102. package/dist/tests/latency-budget.test.d.ts +2 -0
  103. package/dist/tests/latency-budget.test.d.ts.map +1 -0
  104. package/dist/tests/latency-budget.test.js +37 -0
  105. package/dist/tests/latency-budget.test.js.map +1 -0
  106. package/dist/tests/learnings-loader.test.d.ts +2 -0
  107. package/dist/tests/learnings-loader.test.d.ts.map +1 -0
  108. package/dist/tests/learnings-loader.test.js +64 -0
  109. package/dist/tests/learnings-loader.test.js.map +1 -0
  110. package/dist/tests/mcp-namespace.test.d.ts +2 -0
  111. package/dist/tests/mcp-namespace.test.d.ts.map +1 -0
  112. package/dist/tests/mcp-namespace.test.js +41 -0
  113. package/dist/tests/mcp-namespace.test.js.map +1 -0
  114. package/dist/tests/mindlore-home-env.test.d.ts +2 -0
  115. package/dist/tests/mindlore-home-env.test.d.ts.map +1 -0
  116. package/dist/tests/mindlore-home-env.test.js +33 -0
  117. package/dist/tests/mindlore-home-env.test.js.map +1 -0
  118. package/dist/tests/no-hardcoded-cache.test.d.ts +2 -0
  119. package/dist/tests/no-hardcoded-cache.test.d.ts.map +1 -0
  120. package/dist/tests/no-hardcoded-cache.test.js +40 -0
  121. package/dist/tests/no-hardcoded-cache.test.js.map +1 -0
  122. package/dist/tests/nomination.test.js +1 -1
  123. package/dist/tests/nomination.test.js.map +1 -1
  124. package/dist/tests/reflect-failure-scan.test.d.ts +2 -0
  125. package/dist/tests/reflect-failure-scan.test.d.ts.map +1 -0
  126. package/dist/tests/reflect-failure-scan.test.js +49 -0
  127. package/dist/tests/reflect-failure-scan.test.js.map +1 -0
  128. package/dist/tests/reflect-trigger.test.d.ts +2 -0
  129. package/dist/tests/reflect-trigger.test.d.ts.map +1 -0
  130. package/dist/tests/reflect-trigger.test.js +31 -0
  131. package/dist/tests/reflect-trigger.test.js.map +1 -0
  132. package/dist/tests/session-focus-episode-counter.test.d.ts +2 -0
  133. package/dist/tests/session-focus-episode-counter.test.d.ts.map +1 -0
  134. package/dist/tests/session-focus-episode-counter.test.js +41 -0
  135. package/dist/tests/session-focus-episode-counter.test.js.map +1 -0
  136. package/dist/tests/session-focus-learnings-inject.test.d.ts +2 -0
  137. package/dist/tests/session-focus-learnings-inject.test.d.ts.map +1 -0
  138. package/dist/tests/session-focus-learnings-inject.test.js +29 -0
  139. package/dist/tests/session-focus-learnings-inject.test.js.map +1 -0
  140. package/dist/tests/session-focus-nomination-inject.test.d.ts +2 -0
  141. package/dist/tests/session-focus-nomination-inject.test.d.ts.map +1 -0
  142. package/dist/tests/session-focus-nomination-inject.test.js +50 -0
  143. package/dist/tests/session-focus-nomination-inject.test.js.map +1 -0
  144. package/dist/tests/session-focus-reflect-nudge.test.d.ts +2 -0
  145. package/dist/tests/session-focus-reflect-nudge.test.d.ts.map +1 -0
  146. package/dist/tests/session-focus-reflect-nudge.test.js +62 -0
  147. package/dist/tests/session-focus-reflect-nudge.test.js.map +1 -0
  148. package/dist/tests/session-payload.test.js +19 -17
  149. package/dist/tests/session-payload.test.js.map +1 -1
  150. package/dist/tests/skill-md-uses-runner.test.d.ts +2 -0
  151. package/dist/tests/skill-md-uses-runner.test.d.ts.map +1 -0
  152. package/dist/tests/skill-md-uses-runner.test.js +31 -0
  153. package/dist/tests/skill-md-uses-runner.test.js.map +1 -0
  154. package/dist/tests/skill-runner-failure-e2e.test.d.ts +10 -0
  155. package/dist/tests/skill-runner-failure-e2e.test.d.ts.map +1 -0
  156. package/dist/tests/skill-runner-failure-e2e.test.js +64 -0
  157. package/dist/tests/skill-runner-failure-e2e.test.js.map +1 -0
  158. package/dist/tests/skill-runner.test.d.ts +2 -0
  159. package/dist/tests/skill-runner.test.d.ts.map +1 -0
  160. package/dist/tests/skill-runner.test.js +55 -0
  161. package/dist/tests/skill-runner.test.js.map +1 -0
  162. package/dist/tests/sync-scripts.test.d.ts +2 -0
  163. package/dist/tests/sync-scripts.test.d.ts.map +1 -0
  164. package/dist/tests/sync-scripts.test.js +26 -0
  165. package/dist/tests/sync-scripts.test.js.map +1 -0
  166. package/dist/tests/telemetry-perf.test.js +9 -8
  167. package/dist/tests/telemetry-perf.test.js.map +1 -1
  168. package/dist/tests/telemetry-scan.test.d.ts +2 -0
  169. package/dist/tests/telemetry-scan.test.d.ts.map +1 -0
  170. package/dist/tests/telemetry-scan.test.js +32 -0
  171. package/dist/tests/telemetry-scan.test.js.map +1 -0
  172. package/hooks/cc-memory-bulk-sync.cjs +20 -5
  173. package/hooks/cc-session-sync.cjs +20 -5
  174. package/hooks/lib/constants.cjs +1 -1
  175. package/hooks/lib/learnings-loader.cjs +70 -0
  176. package/hooks/lib/mindlore-common.cjs +46 -8
  177. package/hooks/lib/reflect-trigger.cjs +29 -0
  178. package/hooks/lib/sync-scripts.cjs +12 -0
  179. package/hooks/mindlore-fts5-sync.cjs +5 -1
  180. package/hooks/mindlore-search.cjs +116 -14
  181. package/hooks/mindlore-session-focus.cjs +81 -27
  182. package/hooks/src/lib/mindlore-common.cjs +5 -0
  183. package/hooks/src/mindlore-fts5-sync.cjs +7 -4
  184. package/hooks/src/mindlore-search.cjs +19 -11
  185. package/hooks/src/mindlore-session-focus.cjs +48 -6
  186. package/package.json +5 -3
  187. package/plugin.json +1 -1
  188. package/skills/mindlore-decide/SKILL.md +1 -1
  189. package/skills/mindlore-diary/SKILL.md +4 -4
  190. package/skills/mindlore-evolve/SKILL.md +2 -2
  191. package/skills/mindlore-health/SKILL.md +2 -2
  192. package/skills/mindlore-ingest/SKILL.md +7 -7
  193. package/skills/mindlore-log/SKILL.md +1 -1
  194. package/skills/mindlore-maintain/SKILL.md +2 -2
  195. package/skills/mindlore-query/SKILL.md +1 -1
  196. package/skills/mindlore-reflect/SKILL.md +30 -16
  197. package/templates/config.json +1 -1
@@ -15,7 +15,7 @@ Resolve `MINDLORE_PKG` (package root) using one of these methods, in order:
15
15
  1. If CC injected "Base directory for this skill: /path/to/skills/mindlore-query" → `MINDLORE_PKG = {base_directory}/../..`
16
16
  2. Fallback: run `node -e "console.log(require('path').join(require('child_process').execSync('npm root -g',{encoding:'utf8'}).trim(),'mindlore')))"`
17
17
 
18
- Use: `node "$MINDLORE_PKG/dist/scripts/..."` for all script commands.
18
+ Use: `node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-query <script> [args...]` for all script commands.
19
19
 
20
20
  ## Scope
21
21
 
@@ -10,7 +10,7 @@ Resolve `MINDLORE_PKG` (package root) using one of these methods, in order:
10
10
  1. If CC injected "Base directory for this skill: /path/to/skills/mindlore-reflect" → `MINDLORE_PKG = {base_directory}/../..`
11
11
  2. Fallback: run `node -e "console.log(require('path').join(require('child_process').execSync('npm root -g',{encoding:'utf8'}).trim(),'mindlore')))"`
12
12
 
13
- Use: `node "$MINDLORE_PKG/dist/scripts/..."` for all script commands.
13
+ Use: `node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-reflect <script> [args...]` for all script commands.
14
14
 
15
15
  # /mindlore-reflect
16
16
 
@@ -25,8 +25,8 @@ Scans both project + global `~/.mindlore/` diary/ for patterns.
25
25
  ## On Start — Check pending nominations + skill_memory
26
26
 
27
27
  ```bash
28
- node "$MINDLORE_PKG/dist/scripts/lib/skill-memory.js" get mindlore-reflect last_reflect_date
29
- node "$MINDLORE_PKG/dist/scripts/lib/skill-memory.js" get mindlore-reflect nomination_count
28
+ node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-reflect lib/skill-memory.js get mindlore-reflect last_reflect_date
29
+ node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-reflect lib/skill-memory.js get mindlore-reflect nomination_count
30
30
  ```
31
31
 
32
32
  Check pending nominations:
@@ -48,15 +48,22 @@ Onaylamak istediklerini sec, veya 'skip':
48
48
  ## Flow
49
49
 
50
50
  1. Read active episodes: `WHERE status = 'active' AND source IN ('hook', 'diary')`
51
- 2. Filter by time: `--days 7` (default), `--days 30`
52
- 3. Present summary: "Found N episodes spanning DATE1 to DATE2"
53
- 4. LLM analyzes episodes for recurring patterns:
51
+ 2. **Run skill failure scan (NEW v0.7.5):**
52
+
53
+ ```bash
54
+ node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-reflect reflect-failure-scan
55
+ ```
56
+
57
+ This populates `episodes` table with `kind: 'skill_failure'` rows from `telemetry.jsonl`. Subsequent pattern analysis treats these like any other episode — 3+ repetitions of the same `(skill, script, error)` triple → nomination via existing 3-tier confidence logic.
58
+ 3. Filter by time: `--days 7` (default), `--days 30`
59
+ 4. Present summary: "Found N episodes spanning DATE1 to DATE2"
60
+ 5. LLM analyzes episodes for recurring patterns:
54
61
  - Repeated decisions (same choice 2+ times)
55
62
  - Recurring frictions (same blocker/error)
56
63
  - Discovery patterns (assumptions that keep breaking)
57
64
  - Workflow patterns that worked well
58
65
 
59
- 5. **3-Tier Confidence Assessment:**
66
+ 6. **3-Tier Confidence Assessment:**
60
67
 
61
68
  | Tekrar | Tier | Aksiyon |
62
69
  |--------|------|---------|
@@ -64,7 +71,7 @@ Onaylamak istediklerini sec, veya 'skip':
64
71
  | 2x | Learning | `kind: learning` episode olustur, learnings/ dosyasina yaz |
65
72
  | 3x+ | Nomination | `kind: nomination, status: staged, source: reflect` episode olustur |
66
73
 
67
- 6. **Structured report:**
74
+ 7. **Structured report:**
68
75
  ```
69
76
  -- Reflect Raporu (son {days} gun, {N} episode) --
70
77
 
@@ -83,23 +90,25 @@ Onaylamak istediklerini sec, veya 'skip':
83
90
  [ ] {rule} ({repeat_count}x, {confidence} confidence)
84
91
  ```
85
92
 
86
- 7. **Nomination creation (3x+ tekrar):**
93
+ 8. **Nomination creation (3x+ tekrar):**
87
94
  ```sql
88
95
  INSERT INTO episodes (summary, body, kind, status, source, project, created_at)
89
96
  VALUES (?, ?, 'nomination', 'staged', 'reflect', ?, ?)
90
97
  ```
91
98
 
92
- 8. **Nomination approval flow:**
99
+ 9. **Nomination approval flow:**
93
100
  User approves -> `status: staged -> approved` -> write to target:
94
- - `learnings` -> `learnings/{topic}.md`
95
- - `claude.md` -> project CLAUDE.md'ye kural ekle
96
- - `domain:{slug}` -> ilgili domain sayfasina ekle
101
+ - **`learnings/{topic}.md`** (DEFAULT — selected if user presses Enter / leaves blank)
102
+ - `claude.md` -> project CLAUDE.md'ye kural ekle (opt-in)
103
+ - `domain:{slug}` -> ilgili domain sayfasina ekle (opt-in)
97
104
 
98
105
  Approval SQL:
99
106
  ```sql
100
107
  UPDATE episodes SET status = 'approved', graduated_at = datetime('now') WHERE id = ?
101
108
  ```
102
109
 
110
+ When writing to `learnings/`, also write `project: <currentProject|global>` to the lesson frontmatter (A4 dependency).
111
+
103
112
  User rejects -> `status: staged -> rejected` + rejection reason
104
113
 
105
114
  Rejection SQL:
@@ -107,11 +116,16 @@ Onaylamak istediklerini sec, veya 'skip':
107
116
  UPDATE episodes SET status = 'rejected', rejected_at = datetime('now'), rejection_reason = ? WHERE id = ?
108
117
  ```
109
118
 
110
- ## On End — Write skill_memory
119
+ ## On End — Write skill_memory (success-only)
111
120
 
112
121
  ```bash
113
- node "$MINDLORE_PKG/dist/scripts/lib/skill-memory.js" set mindlore-reflect last_reflect_date "$(date -I)"
114
- node "$MINDLORE_PKG/dist/scripts/lib/skill-memory.js" set mindlore-reflect nomination_count "{staged_count}"
122
+ # ONLY update last_reflect_date if reflect completed successfully (no parse errors,
123
+ # no DB errors). If any failure occurred during pattern extraction, leave the date
124
+ # unchanged so the next session retries.
125
+ if [ "$REFLECT_EXIT_CODE" = "0" ]; then
126
+ node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-reflect skill-memory set mindlore-reflect last_reflect_date "$(date -I)"
127
+ fi
128
+ node "$MINDLORE_PKG/dist/scripts/lib/skill-runner.js" mindlore-reflect skill-memory set mindlore-reflect nomination_count "{staged_count}"
115
129
  ```
116
130
 
117
131
  ## Quick Health Summary (v0.5.3)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.7.3",
2
+ "version": "0.7.5",
3
3
  "models": {
4
4
  "ingest": "haiku",
5
5
  "evolve": "sonnet",