milens 0.6.3 → 0.6.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 (155) hide show
  1. package/.agents/skills/adapters/SKILL.md +51 -0
  2. package/.agents/skills/analyzer/SKILL.md +77 -0
  3. package/.agents/skills/apps/SKILL.md +66 -0
  4. package/.agents/skills/docs/SKILL.md +73 -0
  5. package/.agents/skills/milens/SKILL.md +198 -0
  6. package/.agents/skills/milens-architect/SKILL.md +128 -0
  7. package/.agents/skills/milens-code-review/SKILL.md +186 -0
  8. package/.agents/skills/milens-debugger/SKILL.md +141 -0
  9. package/.agents/skills/milens-eval/SKILL.md +221 -0
  10. package/.agents/skills/milens-plan/SKILL.md +227 -0
  11. package/.agents/skills/milens-refactor-clean/SKILL.md +209 -0
  12. package/.agents/skills/milens-security-review/SKILL.md +224 -0
  13. package/.agents/skills/milens-tdd/SKILL.md +156 -0
  14. package/.agents/skills/orchestrator/SKILL.md +59 -0
  15. package/.agents/skills/parser/SKILL.md +81 -0
  16. package/.agents/skills/root/SKILL.md +86 -0
  17. package/.agents/skills/scripts/SKILL.md +45 -0
  18. package/.agents/skills/security/SKILL.md +65 -0
  19. package/.agents/skills/server/SKILL.md +72 -0
  20. package/.agents/skills/store/SKILL.md +75 -0
  21. package/.agents/skills/test/SKILL.md +121 -0
  22. package/LICENSE +21 -75
  23. package/README.md +356 -453
  24. package/adapters/README.md +107 -0
  25. package/adapters/claude-code/.claude/mcp.json +9 -0
  26. package/adapters/claude-code/CLAUDE.md +58 -0
  27. package/adapters/codex/.codex/codex.md +52 -0
  28. package/adapters/copilot/.github/copilot-instructions.md +62 -0
  29. package/adapters/cursor/.cursorrules +9 -0
  30. package/adapters/gemini/.gemini/context.md +58 -0
  31. package/adapters/opencode/.opencode/config.json +9 -0
  32. package/adapters/opencode/AGENTS.md +58 -0
  33. package/adapters/zed/.zed/settings.json +8 -0
  34. package/dist/agents-md.d.ts +3 -0
  35. package/dist/agents-md.d.ts.map +1 -0
  36. package/dist/agents-md.js +114 -0
  37. package/dist/agents-md.js.map +1 -0
  38. package/dist/analyzer/engine.d.ts +1 -0
  39. package/dist/analyzer/engine.d.ts.map +1 -1
  40. package/dist/analyzer/engine.js +37 -7
  41. package/dist/analyzer/engine.js.map +1 -1
  42. package/dist/cli.js +1472 -406
  43. package/dist/cli.js.map +1 -1
  44. package/dist/metrics.d.ts +51 -0
  45. package/dist/metrics.d.ts.map +1 -0
  46. package/dist/metrics.js +64 -0
  47. package/dist/metrics.js.map +1 -0
  48. package/dist/orchestrator/orchestrator.d.ts +65 -0
  49. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  50. package/dist/orchestrator/orchestrator.js +178 -0
  51. package/dist/orchestrator/orchestrator.js.map +1 -0
  52. package/dist/orchestrator/reporter.d.ts +15 -0
  53. package/dist/orchestrator/reporter.d.ts.map +1 -0
  54. package/dist/orchestrator/reporter.js +38 -0
  55. package/dist/orchestrator/reporter.js.map +1 -0
  56. package/dist/parser/lang-go.js +47 -47
  57. package/dist/parser/lang-java.js +29 -29
  58. package/dist/parser/lang-js.js +105 -105
  59. package/dist/parser/lang-php.js +38 -38
  60. package/dist/parser/lang-py.js +34 -34
  61. package/dist/parser/lang-ruby.js +14 -14
  62. package/dist/parser/lang-rust.js +30 -30
  63. package/dist/parser/lang-ts.js +191 -191
  64. package/dist/security/deps.d.ts +38 -0
  65. package/dist/security/deps.d.ts.map +1 -0
  66. package/dist/security/deps.js +685 -0
  67. package/dist/security/deps.js.map +1 -0
  68. package/dist/security/rules.d.ts +42 -0
  69. package/dist/security/rules.d.ts.map +1 -0
  70. package/dist/security/rules.js +943 -0
  71. package/dist/security/rules.js.map +1 -0
  72. package/dist/server/hooks.d.ts +29 -0
  73. package/dist/server/hooks.d.ts.map +1 -0
  74. package/dist/server/hooks.js +332 -0
  75. package/dist/server/hooks.js.map +1 -0
  76. package/dist/server/mcp-prompts.d.ts +277 -0
  77. package/dist/server/mcp-prompts.d.ts.map +1 -0
  78. package/dist/server/mcp-prompts.js +627 -0
  79. package/dist/server/mcp-prompts.js.map +1 -0
  80. package/dist/server/mcp.d.ts.map +1 -1
  81. package/dist/server/mcp.js +1030 -652
  82. package/dist/server/mcp.js.map +1 -1
  83. package/dist/server/test-plan.d.ts +20 -0
  84. package/dist/server/test-plan.d.ts.map +1 -0
  85. package/dist/server/test-plan.js +100 -0
  86. package/dist/server/test-plan.js.map +1 -0
  87. package/dist/server/watcher.d.ts +39 -0
  88. package/dist/server/watcher.d.ts.map +1 -0
  89. package/dist/server/watcher.js +134 -0
  90. package/dist/server/watcher.js.map +1 -0
  91. package/dist/skills.js +197 -153
  92. package/dist/skills.js.map +1 -1
  93. package/dist/store/annotations.d.ts +41 -0
  94. package/dist/store/annotations.d.ts.map +1 -0
  95. package/dist/store/annotations.js +195 -0
  96. package/dist/store/annotations.js.map +1 -0
  97. package/dist/store/confidence.d.ts +28 -0
  98. package/dist/store/confidence.d.ts.map +1 -0
  99. package/dist/store/confidence.js +109 -0
  100. package/dist/store/confidence.js.map +1 -0
  101. package/dist/store/db.d.ts +53 -14
  102. package/dist/store/db.d.ts.map +1 -1
  103. package/dist/store/db.js +447 -240
  104. package/dist/store/db.js.map +1 -1
  105. package/dist/store/schema.sql +143 -116
  106. package/dist/store/vectors.js +2 -2
  107. package/dist/types.d.ts +101 -0
  108. package/dist/types.d.ts.map +1 -1
  109. package/docs/README.md +22 -0
  110. package/package.json +81 -66
  111. package/dist/gateway/analyzer.d.ts +0 -6
  112. package/dist/gateway/analyzer.d.ts.map +0 -1
  113. package/dist/gateway/analyzer.js +0 -218
  114. package/dist/gateway/analyzer.js.map +0 -1
  115. package/dist/gateway/cache.d.ts +0 -35
  116. package/dist/gateway/cache.d.ts.map +0 -1
  117. package/dist/gateway/cache.js +0 -175
  118. package/dist/gateway/cache.js.map +0 -1
  119. package/dist/gateway/config.d.ts +0 -10
  120. package/dist/gateway/config.d.ts.map +0 -1
  121. package/dist/gateway/config.js +0 -167
  122. package/dist/gateway/config.js.map +0 -1
  123. package/dist/gateway/context-memory.d.ts +0 -68
  124. package/dist/gateway/context-memory.d.ts.map +0 -1
  125. package/dist/gateway/context-memory.js +0 -157
  126. package/dist/gateway/context-memory.js.map +0 -1
  127. package/dist/gateway/observability.d.ts +0 -83
  128. package/dist/gateway/observability.d.ts.map +0 -1
  129. package/dist/gateway/observability.js +0 -152
  130. package/dist/gateway/observability.js.map +0 -1
  131. package/dist/gateway/privacy.d.ts +0 -27
  132. package/dist/gateway/privacy.d.ts.map +0 -1
  133. package/dist/gateway/privacy.js +0 -139
  134. package/dist/gateway/privacy.js.map +0 -1
  135. package/dist/gateway/providers.d.ts +0 -66
  136. package/dist/gateway/providers.d.ts.map +0 -1
  137. package/dist/gateway/providers.js +0 -377
  138. package/dist/gateway/providers.js.map +0 -1
  139. package/dist/gateway/router.d.ts +0 -18
  140. package/dist/gateway/router.d.ts.map +0 -1
  141. package/dist/gateway/router.js +0 -102
  142. package/dist/gateway/router.js.map +0 -1
  143. package/dist/gateway/server.d.ts +0 -20
  144. package/dist/gateway/server.d.ts.map +0 -1
  145. package/dist/gateway/server.js +0 -387
  146. package/dist/gateway/server.js.map +0 -1
  147. package/dist/gateway/translator.d.ts +0 -19
  148. package/dist/gateway/translator.d.ts.map +0 -1
  149. package/dist/gateway/translator.js +0 -340
  150. package/dist/gateway/translator.js.map +0 -1
  151. package/dist/gateway/types.d.ts +0 -215
  152. package/dist/gateway/types.d.ts.map +0 -1
  153. package/dist/gateway/types.js +0 -3
  154. package/dist/gateway/types.js.map +0 -1
  155. package/dist/store/gateway-schema.sql +0 -53
package/dist/skills.js CHANGED
@@ -144,6 +144,26 @@ function renderSkillContent(areaName, area, incomingCount, crossArea) {
144
144
  const lines = [];
145
145
  lines.push(`# ${capitalize(areaName)}`);
146
146
  lines.push('');
147
+ lines.push('## Working with this area');
148
+ lines.push(`When working with code in **${areaName}/**, follow these mandatory safety rules:`);
149
+ lines.push('');
150
+ lines.push('### Before editing any symbol in this area:');
151
+ lines.push('1. Call `mcp_milens_impact({target: "<symbol>", repo: "<workspaceRoot>"})` — check blast radius');
152
+ lines.push('2. If depth-1 dependents > 5 → **STOP and warn** before proceeding');
153
+ lines.push('3. Call `mcp_milens_context({name: "<symbol>", repo: "<workspaceRoot>"})` — see all callers/callees');
154
+ lines.push('');
155
+ lines.push('### Before committing changes in this area:');
156
+ lines.push('1. Call `mcp_milens_detect_changes({repo: "<workspaceRoot>"})` — verify scope');
157
+ lines.push('2. If unexpected files changed → **STOP and report**');
158
+ lines.push('');
159
+ lines.push('### Key tools for this area:');
160
+ lines.push('| Task | Tool |');
161
+ lines.push('|---|---|');
162
+ lines.push('| Find all references | `mcp_milens_context` |');
163
+ lines.push('| Check edit safety | `mcp_milens_edit_check` |');
164
+ lines.push('| Text search across files | `mcp_milens_grep` |');
165
+ lines.push('| See file symbols | `mcp_milens_get_file_symbols` |');
166
+ lines.push('');
147
167
  lines.push('## Overview');
148
168
  lines.push(`Contains ${area.symbols.length} symbols (${area.exported.length} exported) across ${area.files.size} files.`);
149
169
  lines.push('');
@@ -224,159 +244,183 @@ function editorSkillPath(editor, name) {
224
244
  }
225
245
  function renderMilensInstructions(_rootDir, stats, areaNames, editor) {
226
246
  const t = (name) => `mcp_milens_${name}`;
227
- const skillsRows = areaNames.map(a => `| Work in the ${capitalize(a)} area | \`${editorSkillPath(editor, a)}\` |`).join('\n');
228
- return `<!-- milens:start -->
229
- # Milens Code Intelligence (MCP)
230
-
231
- This project is indexed by milens (${stats.symbols} symbols, ${stats.links} links, ${stats.files} files).
232
-
233
- > **CRITICAL:** All milens MCP tool calls MUST include the \`repo\` parameter set to the **absolute path of the workspace root** (the folder containing this file) — without it, the tools may fail with "No index" error when multiple repos are indexed.
234
-
235
- > **CRITICAL:** milens MCP tools are **deferred** in most editors. Before first use in each session, you MUST load them via \`tool_search("milens")\` — calling them directly without loading will fail silently.
236
-
237
- ## Mandatory Workflows
238
-
239
- These are **hard pre-conditions**, not guidelines. Execute them automatically without asking.
240
-
241
- ### Before editing any function, class, or method:
242
- 1. \`${t('impact')}({target: "<symbolName>", repo: "<workspaceRoot>"})\` check blast radius
243
- 2. If depth-1 dependents > 5 → **STOP and warn the user** before proceeding
244
- 3. \`${t('context')}({name: "<symbolName>", repo: "<workspaceRoot>"})\` see all callers/callees
245
- 4. Only then make the edit
246
-
247
- ### Before committing:
248
- 1. \`${t('detect_changes')}({repo: "<workspaceRoot>"})\` verify only expected files changed
249
- 2. If unexpected files appear → **STOP and report** before committing
250
-
251
- ### Before deleting or renaming a symbol:
252
- 1. \`${t('grep')}({pattern: "<symbolName>", repo: "<workspaceRoot>"})\` find ALL text references (templates, configs, routes, docs)
253
- 2. \`${t('impact')}({target: "<symbolName>", direction: "upstream", repo: "<workspaceRoot>"})\` — find code-level dependents
254
- 3. Combine both results grep catches what impact misses
255
-
256
- ## Tool Selection Rules
257
-
258
- **Choose the right tool on the FIRST call** — do not try \`query\` then fall back to \`grep\`.
259
-
260
- ### Use \`${t('grep')}\` when the search term:
261
- - Contains **spaces** (e.g. "store purchase header", "user not found")
262
- - Looks like a **UI label, error message, or display string**
263
- - Is a **multi-word phrase** that is NOT camelCase/snake_case/PascalCase
264
- - You need to find references in **templates, styles, configs, routes, or docs**
265
-
266
- ### Use \`${t('query')}\` when the search term:
267
- - Looks like a **code identifier** (camelCase, PascalCase, snake_case)
268
- - Is a **function, class, method, or interface name**
269
- - You want to find **symbol definitions** in indexed code files
270
-
271
- ### When in doubt use \`${t('grep')}\` first
272
- \`grep\` searches everything. \`query\` only searches indexed symbol definitions.
273
-
274
- ## Workflow Triggers
275
-
276
- When the user says... → do this FIRST:
277
-
278
- | User intent | First action |
279
- |---|---|
280
- | "edit/change/modify/fix \`X\`" | \`${t('impact')}({target: "X", repo: "<workspaceRoot>"})\` |
281
- | "delete/remove \`X\`" | \`${t('grep')}({pattern: "X", repo: "<workspaceRoot>"})\` then \`${t('impact')}\` |
282
- | "rename \`X\`" | \`${t('grep')}({pattern: "X", repo: "<workspaceRoot>"})\` then \`${t('impact')}\` |
283
- | "find/search for \`X\`" | Choose \`query\` or \`grep\` per rules above |
284
- | "commit" / "push" | \`${t('detect_changes')}({repo: "<workspaceRoot>"})\` |
285
- | "what calls/uses \`X\`" | \`${t('context')}({name: "X", repo: "<workspaceRoot>"})\` |
286
- | "what happens if I change \`X\`" | \`${t('impact')}({target: "X", repo: "<workspaceRoot>"})\` |
287
- | "how are \`A\` and \`B\` connected" | \`${t('explain_relationship')}({from: "A", to: "B", repo: "<workspaceRoot>"})\` |
288
- | "explore/understand \`X\`" | \`${t('context')}({name: "X", repo: "<workspaceRoot>"})\` |
289
- | "update/write docs for \`X\`" | \`${t('grep')}({pattern: "X", include: "**/*.md"})\` — find existing docs mentioning X, then \`${t('context')}({name: "X"})\` for full symbol info |
290
- | "research/explore docs" | \`${t('get_file_symbols')}({file: "<doc.md>"})\` — see document outline (headings as sections) |
291
- | "what docs mention \`X\`" | \`${t('grep')}({pattern: "X", include: "**/*.md"})\` — find all markdown references |
292
- | "review this PR" | \`${t('review_pr')}({repo: "<workspaceRoot>"})\` — risk assessment for changed files |
293
- | "is \`X\` risky to change" | \`${t('review_symbol')}({name: "X", repo: "<workspaceRoot>"})\` |
294
- | "write tests for \`X\`" | \`${t('test_plan')}({name: "X", repo: "<workspaceRoot>"})\` — deps, mocks, suggested tests |
295
- | "what needs tests" | \`${t('test_coverage_gaps')}({repo: "<workspaceRoot>"})\` — untested symbols by risk |
296
- | "which tests to run" | \`${t('test_impact')}({repo: "<workspaceRoot>"})\` — maps changes → test files |
297
- | "remember/note that \`X\`..." | \`${t('annotate')}({symbol: "X", key: "note", value: "...", repo: "<workspaceRoot>"})\` |
298
- | "what do we know about \`X\`" | \`${t('recall')}({symbol: "X", repo: "<workspaceRoot>"})\` |
299
- | "start new session" | \`${t('session_start')}({agent: "...", repo: "<workspaceRoot>"})\` |
300
- | "find code like \`X\`" | \`${t('find_similar')}({name: "X", repo: "<workspaceRoot>"})\` |
301
- | "search for \`concept\`" | \`${t('semantic_search')}({query: "concept", repo: "<workspaceRoot>"})\` |
302
-
303
- ## Documentation Workflows
304
-
305
- Milens indexes **Markdown files** (.md, .mdx) — headings become \`section\` symbols with parent-child hierarchy, and local links become cross-file references.
306
-
307
- ### Researching or exploring documentation:
308
- 1. \`${t('get_file_symbols')}({file: "README.md", repo: "<workspaceRoot>"})\` — see the full heading outline (TOC) of any doc
309
- 2. \`${t('query')}({query: "<topic>"})\` — search section headings across all docs and code
310
- 3. \`${t('grep')}({pattern: "<keyword>", include: "**/*.md"})\` — text search within docs only
311
-
312
- ### Before updating documentation:
313
- 1. \`${t('get_file_symbols')}({file: "<doc.md>"})\` — understand document structure first
314
- 2. If documenting a code symbol: \`${t('context')}({name: "<symbolName>"})\` — get full symbol info (signature, callers, deps)
315
- 3. \`${t('grep')}({pattern: "<symbolName>", include: "**/*.md"})\` — check if other docs already reference it
316
-
317
- ### After renaming/deleting a code symbol:
318
- - \`${t('grep')}({pattern: "<oldName>", include: "**/*.md"})\` — find docs that need updating (milens indexes markdown links as cross-file references)
319
-
320
- ## Never Do
321
-
322
- - NEVER edit a symbol without first running \`${t('impact')}\` on it.
323
- - NEVER delete or rename without running both \`${t('grep')}\` and \`${t('impact')}\`.
324
- - NEVER commit without running \`${t('detect_changes')}()\`.
325
- - NEVER call milens MCP tools without the \`repo\` parameter.
326
- - NEVER use \`${t('query')}\` for multi-word display text or UI labels — use \`${t('grep')}\`.
327
-
328
- ---
329
-
330
- ## Reference
331
-
332
- ### Tools
333
-
334
- | Tool | Purpose |
335
- |---|---|
336
- | \`${t('query')}\` | Find symbol definitions by name (FTS5) |
337
- | \`${t('grep')}\` | Text search ALL files (templates, styles, configs, docs) |
338
- | \`${t('context')}\` | 360° view: incoming refs + outgoing deps |
339
- | \`${t('impact')}\` | Blast radius before editing |
340
- | \`${t('detect_changes')}\` | Pre-commit scope check |
341
- | \`${t('explain_relationship')}\` | Shortest path between two symbols |
342
- | \`${t('get_file_symbols')}\` | All symbols in a file |
343
- | \`${t('get_type_hierarchy')}\` | Class inheritance tree |
344
- | \`${t('find_dead_code')}\` | Unused exported symbols |
345
- | \`${t('status')}\` | Index health check |
346
- | \`${t('edit_check')}\` | Pre-edit safety: callers + export status + re-export chains + test coverage |
347
- | \`${t('trace')}\` | Execution flow: call chains from entrypoints to a symbol |
348
- | \`${t('routes')}\` | Detect framework routes/endpoints (Express, FastAPI, NestJS, etc.) |
349
- | \`${t('smart_context')}\` | Intent-aware context: understand/edit/debug/test |
350
- | \`${t('overview')}\` | Combined context + impact + grep in one call |
351
- | \`${t('domains')}\` | Domain clusters: groups of files forming logical modules |
352
- | \`${t('repos')}\` | List all indexed repositories with summary stats |
353
- | \`${t('ast_explore')}\` | Explore raw AST structure of a code file |
354
- | \`${t('test_query')}\` | Run raw SQL query against the milens index database |
355
- | \`${t('review_pr')}\` | PR risk assessment: scores changed symbols by blast radius + test coverage |
356
- | \`${t('review_symbol')}\` | Single symbol risk: role, heat, dependents, test status |
357
- | \`${t('test_plan')}\` | Dependency-aware test plan: mocks, strategies, suggested tests |
358
- | \`${t('test_coverage_gaps')}\` | Untested exported symbols sorted by risk |
359
- | \`${t('test_impact')}\` | Which tests to run for current changes |
360
- | \`${t('annotate')}\` | Store observation/note about a symbol (persists across sessions) |
361
- | \`${t('recall')}\` | Retrieve annotations (filter by symbol, key, agent, session) |
362
- | \`${t('session_start')}\` | Register agent session for multi-agent coordination |
363
- | \`${t('session_context')}\` | Get session metadata + annotations |
364
- | \`${t('handoff')}\` | Transfer context between agent sessions |
365
- | \`${t('codebase_summary')}\` | High-level bootstrapping context: domains, key symbols, coverage |
366
- | \`${t('semantic_search')}\` | Hybrid FTS5 + vector search (requires --embeddings) |
367
- | \`${t('find_similar')}\` | Find symbols similar by embedding proximity |
368
-
369
- ### Keeping the Index Fresh
370
-
371
- After significant code changes: \`npx milens analyze -p . --force\`
372
-
373
- ### Skills
374
-
375
- | Task | Read this skill file |
376
- |------|---------------------|
377
- | General milens tools reference | \`${editorSkillPath(editor, 'milens')}\` |
378
- ${skillsRows}
379
-
247
+ const workflowSkillNames = ['milens-plan', 'milens-code-review', 'milens-tdd', 'milens-security-review', 'milens-refactor-clean', 'milens-eval', 'milens-architect', 'milens-debugger'];
248
+ const domainRows = areaNames.map(a => `| Work in the ${capitalize(a)} area | \`${editorSkillPath(editor, a)}\` |`).join('\n');
249
+ const workflowRows = workflowSkillNames.map(a => `| Execute ${a} workflow | \`${editorSkillPath(editor, a)}\` |`).join('\n');
250
+ const skillsRows = domainRows + '\n' + workflowRows;
251
+ return `<!-- milens:start -->
252
+ # Milens — AI-DOS
253
+
254
+ The Operating System for AI-Driven Development. This project is indexed by milens (${stats.symbols} symbols, ${stats.links} links, ${stats.files} files).
255
+
256
+ > **CRITICAL:** All milens MCP tool calls MUST include the \`repo\` parameter set to the **absolute path of the workspace root** (the folder containing this file) — without it, the tools may fail with "No index" error when multiple repos are indexed.
257
+
258
+ > **CRITICAL:** milens MCP tools are **deferred** in most editors. Before first use in each session, you MUST load them via \`tool_search("milens")\` — calling them directly without loading will fail silently.
259
+
260
+ ## Mandatory Workflows
261
+
262
+ These are **hard pre-conditions**, not guidelines. Execute them automatically without asking.
263
+
264
+ ### Before editing any function, class, or method:
265
+ 1. \`${t('impact')}({target: "<symbolName>", repo: "<workspaceRoot>"})\` — check blast radius
266
+ 2. If depth-1 dependents > 5 → **STOP and warn the user** before proceeding
267
+ 3. \`${t('context')}({name: "<symbolName>", repo: "<workspaceRoot>"})\` — see all callers/callees
268
+ 4. Only then make the edit
269
+
270
+ ### Before committing:
271
+ 1. \`${t('detect_changes')}({repo: "<workspaceRoot>"})\` verify only expected files changed
272
+ 2. If unexpected files appear **STOP and report** before committing
273
+
274
+ ### Before deleting or renaming a symbol:
275
+ 1. \`${t('grep')}({pattern: "<symbolName>", repo: "<workspaceRoot>"})\` — find ALL text references (templates, configs, routes, docs)
276
+ 2. \`${t('impact')}({target: "<symbolName>", direction: "upstream", repo: "<workspaceRoot>"})\` — find code-level dependents
277
+ 3. Combine both results — grep catches what impact misses
278
+
279
+ ## Tool Selection Rules
280
+
281
+ **Choose the right tool on the FIRST call** — do not try \`query\` then fall back to \`grep\`.
282
+
283
+ ### Use \`${t('grep')}\` when the search term:
284
+ - Contains **spaces** (e.g. "store purchase header", "user not found")
285
+ - Looks like a **UI label, error message, or display string**
286
+ - Is a **multi-word phrase** that is NOT camelCase/snake_case/PascalCase
287
+ - You need to find references in **templates, styles, configs, routes, or docs**
288
+
289
+ ### Use \`${t('query')}\` when the search term:
290
+ - Looks like a **code identifier** (camelCase, PascalCase, snake_case)
291
+ - Is a **function, class, method, or interface name**
292
+ - You want to find **symbol definitions** in indexed code files
293
+
294
+ ### When in doubt → use \`${t('grep')}\` first
295
+ \`grep\` searches everything. \`query\` only searches indexed symbol definitions.
296
+
297
+ ## Workflow Triggers
298
+
299
+ When the user says... → do this FIRST:
300
+
301
+ | User intent | First action |
302
+ |---|---|
303
+ | "edit/change/modify/fix \`X\`" | \`${t('impact')}({target: "X", repo: "<workspaceRoot>"})\` |
304
+ | "delete/remove \`X\`" | \`${t('grep')}({pattern: "X", repo: "<workspaceRoot>"})\` then \`${t('impact')}\` |
305
+ | "rename \`X\`" | \`${t('grep')}({pattern: "X", repo: "<workspaceRoot>"})\` then \`${t('impact')}\` |
306
+ | "find/search for \`X\`" | Choose \`query\` or \`grep\` per rules above |
307
+ | "commit" / "push" | \`${t('detect_changes')}({repo: "<workspaceRoot>"})\` |
308
+ | "what calls/uses \`X\`" | \`${t('context')}({name: "X", repo: "<workspaceRoot>"})\` |
309
+ | "what happens if I change \`X\`" | \`${t('impact')}({target: "X", repo: "<workspaceRoot>"})\` |
310
+ | "how are \`A\` and \`B\` connected" | \`${t('explain_relationship')}({from: "A", to: "B", repo: "<workspaceRoot>"})\` |
311
+ | "explore/understand \`X\`" | \`${t('context')}({name: "X", repo: "<workspaceRoot>"})\` |
312
+ | "update/write docs for \`X\`" | \`${t('grep')}({pattern: "X", include: "**/*.md"})\` — find existing docs mentioning X, then \`${t('context')}({name: "X"})\` for full symbol info |
313
+ | "research/explore docs" | \`${t('get_file_symbols')}({file: "<doc.md>"})\` — see document outline (headings as sections) |
314
+ | "what docs mention \`X\`" | \`${t('grep')}({pattern: "X", include: "**/*.md"})\` — find all markdown references |
315
+ | "review this PR" | \`${t('review_pr')}({repo: "<workspaceRoot>"})\` — risk assessment for changed files |
316
+ | "is \`X\` risky to change" | \`${t('review_symbol')}({name: "X", repo: "<workspaceRoot>"})\` |
317
+ | "write tests for \`X\`" | \`${t('test_plan')}({name: "X", repo: "<workspaceRoot>"})\` — deps, mocks, suggested tests |
318
+ | "what needs tests" | \`${t('test_coverage_gaps')}({repo: "<workspaceRoot>"})\` — untested symbols by risk |
319
+ | "which tests to run" | \`${t('test_impact')}({repo: "<workspaceRoot>"})\` — maps changes → test files |
320
+ | "remember/note that \`X\`..." | \`${t('annotate')}({symbol: "X", key: "note", value: "...", repo: "<workspaceRoot>"})\` |
321
+ | "what do we know about \`X\`" | \`${t('recall')}({symbol: "X", repo: "<workspaceRoot>"})\` |
322
+ | "start new session" | \`${t('session_start')}({agent: "...", repo: "<workspaceRoot>"})\` |
323
+ | "find code like \`X\`" | \`${t('find_similar')}({name: "X", repo: "<workspaceRoot>"})\` |
324
+ | "search for \`concept\`" | \`${t('semantic_search')}({query: "concept", repo: "<workspaceRoot>"})\` |
325
+ | "generate tests for \`X\`" | \`${t('test_generate')}({symbol: "X", repo: "<workspaceRoot>"})\` |
326
+ | "fix security issue in \`X\`" | \`${t('fix_apply')}({ruleId, file, line, repo: "<workspaceRoot>"})\` |
327
+ | "remove dead code" | \`${t('find_dead_code')}()\` then \`dead_code_remove\` prompt |
328
+ | "orchestrate/check changes" | \`${t('orchestrate')}({repo: "<workspaceRoot>"})\` |
329
+ | "compare impact of \`X\`" | \`${t('compare_impact')}({name: "X", action: "snapshot"|"compare", repo: "<workspaceRoot>"})\` |
330
+ | "check pre-commit" | \`${t('pre_commit_check')}({repo: "<workspaceRoot>"})\` |
331
+ | "save/restore context" | \`${t('hook_preCompact')}()\` / \`${t('hook_postCompact')}()\` |
332
+ | "scan security / audit security" | \`${t('security_scan')}({repo: "<workspaceRoot>"})\` — full audit across all 50+ rules |
333
+ | "end session" / "finish work" | \`${t('session_end')}({session_id: "..."})\` — record stats, trigger onSessionEnd hook |
334
+ | "what did session X do" | \`${t('session_context')}({session_id: "..."})\` — get annotations + tool calls |
335
+ | "file changed to X" | \`${t('hook_onFileChange')}({files: ["path/to/file"], repo: "<workspaceRoot>"})\` |
336
+
337
+ ## Documentation Workflows
338
+
339
+ Milens indexes **Markdown files** (.md, .mdx) — headings become \`section\` symbols with parent-child hierarchy, and local links become cross-file references.
340
+
341
+ ### Researching or exploring documentation:
342
+ 1. \`${t('get_file_symbols')}({file: "README.md", repo: "<workspaceRoot>"})\` see the full heading outline (TOC) of any doc
343
+ 2. \`${t('query')}({query: "<topic>"})\` — search section headings across all docs and code
344
+ 3. \`${t('grep')}({pattern: "<keyword>", include: "**/*.md"})\` — text search within docs only
345
+
346
+ ### Before updating documentation:
347
+ 1. \`${t('get_file_symbols')}({file: "<doc.md>"})\` — understand document structure first
348
+ 2. If documenting a code symbol: \`${t('context')}({name: "<symbolName>"})\` — get full symbol info (signature, callers, deps)
349
+ 3. \`${t('grep')}({pattern: "<symbolName>", include: "**/*.md"})\` — check if other docs already reference it
350
+
351
+ ### After renaming/deleting a code symbol:
352
+ - \`${t('grep')}({pattern: "<oldName>", include: "**/*.md"})\` — find docs that need updating (milens indexes markdown links as cross-file references)
353
+
354
+ ## Never Do
355
+
356
+ - NEVER edit a symbol without first running \`${t('impact')}\` on it.
357
+ - NEVER delete or rename without running both \`${t('grep')}\` and \`${t('impact')}\`.
358
+ - NEVER commit without running \`${t('detect_changes')}()\`.
359
+ - NEVER call milens MCP tools without the \`repo\` parameter.
360
+ - NEVER use \`${t('query')}\` for multi-word display text or UI labels — use \`${t('grep')}\`.
361
+
362
+ ---
363
+
364
+ ## Reference
365
+
366
+ ### Tools
367
+
368
+ | Tool | Purpose |
369
+ |---|---|
370
+ | \`${t('query')}\` | Find symbol definitions by name (FTS5) |
371
+ | \`${t('grep')}\` | Text search ALL files (templates, styles, configs, docs) |
372
+ | \`${t('context')}\` | 360° view: incoming refs + outgoing deps |
373
+ | \`${t('impact')}\` | Blast radius before editing |
374
+ | \`${t('detect_changes')}\` | Pre-commit scope check |
375
+ | \`${t('explain_relationship')}\` | Shortest path between two symbols |
376
+ | \`${t('get_file_symbols')}\` | All symbols in a file |
377
+ | \`${t('get_type_hierarchy')}\` | Class inheritance tree |
378
+ | \`${t('find_dead_code')}\` | Unused exported symbols |
379
+ | \`${t('status')}\` | Index stats for a repository: symbols, links, files, coverage %, staleness |
380
+ | \`${t('edit_check')}\` | Pre-edit safety: callers + export status + re-export chains + test coverage |
381
+ | \`${t('trace')}\` | Execution flow: call chains from entrypoints to a symbol |
382
+ | \`${t('routes')}\` | Detect framework routes/endpoints (Express, FastAPI, NestJS, etc.) |
383
+ | \`${t('smart_context')}\` | Intent-aware context: understand/edit/debug/test |
384
+ | \`${t('overview')}\` | Combined context + impact + grep in ONE call. Preferred before editing/deleting/renaming a symbol. |
385
+ | \`${t('domains')}\` | Domain clusters: groups of files forming logical modules |
386
+ | \`${t('repos')}\` | List all indexed repositories with summary stats |
387
+ | \`${t('ast_explore')}\` | Explore raw AST structure of a code file |
388
+ | \`${t('test_query')}\` | Run a tree-sitter query against a code snippet and return matched nodes with capture names |
389
+ | \`${t('review_pr')}\` | PR risk assessment: scores changed symbols by blast radius + test coverage |
390
+ | \`${t('review_symbol')}\` | Single symbol risk: role, heat, dependents, test status |
391
+ | \`${t('test_plan')}\` | Dependency-aware test plan: mocks, strategies, suggested tests |
392
+ | \`${t('test_coverage_gaps')}\` | Untested exported symbols sorted by risk |
393
+ | \`${t('test_impact')}\` | Which tests to run for current changes |
394
+ | \`${t('annotate')}\` | Store observation/note about a symbol (persists across sessions) |
395
+ | \`${t('recall')}\` | Retrieve annotations (filter by symbol, key, agent, session) |
396
+ | \`${t('session_start')}\` | Register agent session for multi-agent coordination |
397
+ | \`${t('session_context')}\` | Get session metadata + annotations |
398
+ | \`${t('handoff')}\` | Transfer context between agent sessions |
399
+ | \`${t('codebase_summary')}\` | High-level bootstrapping context: domains, key symbols, coverage |
400
+ | \`${t('semantic_search')}\` | Hybrid FTS5 + vector search (requires --embeddings) |
401
+ | \`${t('find_similar')}\` | Find symbols similar by embedding proximity |
402
+ | \`${t('compare_impact')}\` | Compare impact graph before/after edit — detects regressions |
403
+ | \`${t('orchestrate')}\` | Run full orchestration cycle: detect_changes → review_pr → impact → coverage gaps → dead code → action plan |
404
+ | \`${t('fix_apply')}\` | Apply a security fix to a file (creates backup) |
405
+ | \`${t('test_generate')}\` | Auto-generate test file: detects framework (vitest/jest/mocha/pytest) and writes complete test with mock strategy |
406
+ | \`${t('pre_commit_check')}\` | Pre-commit risk scan: review_pr + dead code + coverage gaps |
407
+ | \`${t('hook_preCompact')}\` | Save metrics snapshot before context compaction |
408
+ | \`${t('hook_postCompact')}\` | Restore context by recalling annotations after compaction |
409
+ | \`${t('session_end')}\` | End a session and record its stats. Use at the end of every session. |
410
+ | \`${t('hook_onFileChange')}\` | Trigger the onFileChange hook. Call when files are modified to get impact summary. |
411
+ | \`${t('security_scan')}\` | Scan codebase for security vulnerabilities using 50+ built-in rules. Replaces multiple manual grep() calls. |
412
+
413
+ ### Keeping the Index Fresh
414
+
415
+ After significant code changes: \`npx milens analyze -p . --force\` (replace \`.\` with your project root if running from a different directory)
416
+
417
+ ### Skills
418
+
419
+ | Task | Read this skill file |
420
+ |------|---------------------|
421
+ | General milens tools reference | \`${editorSkillPath(editor, 'milens')}\` |
422
+ ${skillsRows}
423
+
380
424
  <!-- milens:end -->`;
381
425
  }
382
426
  function generateToolInstructions(rootDir, copilotDir, cursorDir, claudeDir, _claudeRulesDir, agentsDir, stats, areaNames, has) {
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import BetterSqlite3 from 'better-sqlite3';
2
+ import type { Annotation, AnnotationKey, Session, EvolutionEvent } from '../types.js';
3
+ export declare class AnnotationStore {
4
+ private db;
5
+ private stmts;
6
+ constructor(db: BetterSqlite3.Database);
7
+ private prepareStatements;
8
+ annotate(symbol: string, key: string, value: string, options?: {
9
+ agent?: string;
10
+ sessionId?: string;
11
+ }): Annotation;
12
+ recall(filters?: {
13
+ symbol?: string;
14
+ key?: AnnotationKey;
15
+ agent?: string;
16
+ sessionId?: string;
17
+ limit?: number;
18
+ }): Annotation[];
19
+ sessionStart(agent: string): string;
20
+ sessionEnd(sessionId: string, status?: string): {
21
+ sessionId: string;
22
+ status: string;
23
+ annotationCount: number;
24
+ };
25
+ sessionContext(sessionId: string): {
26
+ session: Session;
27
+ annotations: Annotation[];
28
+ annotationCount: number;
29
+ toolCallsCount: number;
30
+ };
31
+ handoff(fromSessionId: string, toAgent: string, context: string): {
32
+ newSessionId: string;
33
+ annotationsCopied: number;
34
+ };
35
+ getPromotableAnnotations(): Annotation[];
36
+ getStaleAnnotations(daysOld: number, confidenceThreshold: number): Annotation[];
37
+ archiveAnnotation(id: string): void;
38
+ logEvolutionEvent(annotationId: string, event: EvolutionEvent['event'], oldValue?: string, newValue?: string): void;
39
+ getAnnotationCount(): number;
40
+ }
41
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/store/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQtF,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,KAAK,CAAmD;gBAEpD,EAAE,EAAE,aAAa,CAAC,QAAQ;IAKtC,OAAO,CAAC,iBAAiB;IA0DzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IAkDlH,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,EAAE;IA4B5H,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAMnC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IAW9G,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAenI,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAiBrH,wBAAwB,IAAI,UAAU,EAAE;IAKxC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,UAAU,EAAE;IAM/E,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASnC,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnH,kBAAkB,IAAI,MAAM;CAG7B"}