@knowledgine/cli 0.4.1 → 0.6.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.
- package/dist/commands/ingest.d.ts +10 -0
- package/dist/commands/ingest.d.ts.map +1 -1
- package/dist/commands/ingest.js +118 -19
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +140 -33
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/search.d.ts +1 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +60 -9
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +39 -4
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup-skills.d.ts +3 -1
- package/dist/commands/setup-skills.d.ts.map +1 -1
- package/dist/commands/setup-skills.js +24 -7
- package/dist/commands/setup-skills.js.map +1 -1
- package/dist/commands/setup.d.ts +2 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +23 -3
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts +1 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +100 -66
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +15 -15
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +22 -15
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/index.js +35 -2
- package/dist/index.js.map +1 -1
- package/dist/templates/skills/index.d.ts +8 -5
- package/dist/templates/skills/index.d.ts.map +1 -1
- package/dist/templates/skills/index.js +56 -41
- package/dist/templates/skills/index.js.map +1 -1
- package/dist/templates/skills/knowledgine-capture/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-capture/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-capture/references.ja.js +414 -0
- package/dist/templates/skills/knowledgine-capture/references.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-capture/skill-md.d.ts +1 -1
- package/dist/templates/skills/knowledgine-capture/skill-md.d.ts.map +1 -1
- package/dist/templates/skills/knowledgine-capture/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-capture/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-capture/skill-md.ja.js +98 -0
- package/dist/templates/skills/knowledgine-capture/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-capture/skill-md.js +4 -2
- package/dist/templates/skills/knowledgine-capture/skill-md.js.map +1 -1
- package/dist/templates/skills/knowledgine-debrief/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-debrief/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-debrief/references.ja.js +141 -0
- package/dist/templates/skills/knowledgine-debrief/references.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-debrief/skill-md.d.ts +1 -1
- package/dist/templates/skills/knowledgine-debrief/skill-md.d.ts.map +1 -1
- package/dist/templates/skills/knowledgine-debrief/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-debrief/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-debrief/skill-md.ja.js +82 -0
- package/dist/templates/skills/knowledgine-debrief/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-debrief/skill-md.js +10 -2
- package/dist/templates/skills/knowledgine-debrief/skill-md.js.map +1 -1
- package/dist/templates/skills/{knowledgine-explain → knowledgine-explore}/references.d.ts.map +1 -1
- package/dist/templates/skills/knowledgine-explore/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-explore/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-explore/references.ja.js +182 -0
- package/dist/templates/skills/knowledgine-explore/references.ja.js.map +1 -0
- package/dist/templates/skills/{knowledgine-explain → knowledgine-explore}/references.js +15 -15
- package/dist/templates/skills/{knowledgine-explain → knowledgine-explore}/references.js.map +1 -1
- package/dist/templates/skills/knowledgine-explore/skill-md.d.ts +2 -0
- package/dist/templates/skills/knowledgine-explore/skill-md.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-explore/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-explore/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-explore/skill-md.ja.js +98 -0
- package/dist/templates/skills/knowledgine-explore/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/{knowledgine-explain → knowledgine-explore}/skill-md.js +19 -12
- package/dist/templates/skills/{knowledgine-suggest → knowledgine-explore}/skill-md.js.map +1 -1
- package/dist/templates/skills/knowledgine-feedback/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-feedback/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-feedback/references.ja.js +214 -0
- package/dist/templates/skills/knowledgine-feedback/references.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-feedback/skill-md.d.ts +1 -1
- package/dist/templates/skills/knowledgine-feedback/skill-md.d.ts.map +1 -1
- package/dist/templates/skills/knowledgine-feedback/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-feedback/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-feedback/skill-md.ja.js +108 -0
- package/dist/templates/skills/knowledgine-feedback/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-feedback/skill-md.js +4 -2
- package/dist/templates/skills/knowledgine-feedback/skill-md.js.map +1 -1
- package/dist/templates/skills/knowledgine-ingest/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-ingest/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-ingest/references.ja.js +244 -0
- package/dist/templates/skills/knowledgine-ingest/references.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-ingest/skill-md.d.ts +1 -1
- package/dist/templates/skills/knowledgine-ingest/skill-md.d.ts.map +1 -1
- package/dist/templates/skills/knowledgine-ingest/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-ingest/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-ingest/skill-md.ja.js +81 -0
- package/dist/templates/skills/knowledgine-ingest/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-ingest/skill-md.js +2 -0
- package/dist/templates/skills/knowledgine-ingest/skill-md.js.map +1 -1
- package/dist/templates/skills/{knowledgine-recall → knowledgine-memory}/references.d.ts.map +1 -1
- package/dist/templates/skills/knowledgine-memory/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-memory/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-memory/references.ja.js +188 -0
- package/dist/templates/skills/knowledgine-memory/references.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-memory/references.js +188 -0
- package/dist/templates/skills/knowledgine-memory/references.js.map +1 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.d.ts +2 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.ja.js +169 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-memory/skill-md.js +169 -0
- package/dist/templates/skills/{knowledgine-recall → knowledgine-memory}/skill-md.js.map +1 -1
- package/dist/templates/skills/knowledgine-search/references.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-search/references.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-search/references.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-search/references.ja.js +313 -0
- package/dist/templates/skills/knowledgine-search/references.ja.js.map +1 -0
- package/dist/templates/skills/{knowledgine-recall → knowledgine-search}/references.js +124 -19
- package/dist/templates/skills/knowledgine-search/references.js.map +1 -0
- package/dist/templates/skills/knowledgine-search/skill-md.d.ts +2 -0
- package/dist/templates/skills/knowledgine-search/skill-md.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-search/skill-md.ja.d.ts +2 -0
- package/dist/templates/skills/knowledgine-search/skill-md.ja.d.ts.map +1 -0
- package/dist/templates/skills/knowledgine-search/skill-md.ja.js +175 -0
- package/dist/templates/skills/knowledgine-search/skill-md.ja.js.map +1 -0
- package/dist/templates/skills/knowledgine-search/skill-md.js +174 -0
- package/dist/templates/skills/knowledgine-search/skill-md.js.map +1 -0
- package/dist/templates/skills/types.d.ts +4 -0
- package/dist/templates/skills/types.d.ts.map +1 -0
- package/dist/templates/skills/types.js +3 -0
- package/dist/templates/skills/types.js.map +1 -0
- package/package.json +4 -4
- package/dist/lib/entity-extractor.d.ts +0 -17
- package/dist/lib/entity-extractor.d.ts.map +0 -1
- package/dist/lib/entity-extractor.js +0 -23
- package/dist/lib/entity-extractor.js.map +0 -1
- package/dist/templates/skills/knowledgine-explain/skill-md.d.ts +0 -2
- package/dist/templates/skills/knowledgine-explain/skill-md.d.ts.map +0 -1
- package/dist/templates/skills/knowledgine-explain/skill-md.js.map +0 -1
- package/dist/templates/skills/knowledgine-recall/references.js.map +0 -1
- package/dist/templates/skills/knowledgine-recall/skill-md.d.ts +0 -2
- package/dist/templates/skills/knowledgine-recall/skill-md.d.ts.map +0 -1
- package/dist/templates/skills/knowledgine-recall/skill-md.js +0 -86
- package/dist/templates/skills/knowledgine-suggest/references.d.ts.map +0 -1
- package/dist/templates/skills/knowledgine-suggest/references.js +0 -121
- package/dist/templates/skills/knowledgine-suggest/references.js.map +0 -1
- package/dist/templates/skills/knowledgine-suggest/skill-md.d.ts +0 -2
- package/dist/templates/skills/knowledgine-suggest/skill-md.d.ts.map +0 -1
- package/dist/templates/skills/knowledgine-suggest/skill-md.js +0 -94
- /package/dist/templates/skills/{knowledgine-explain → knowledgine-explore}/references.d.ts +0 -0
- /package/dist/templates/skills/{knowledgine-recall → knowledgine-memory}/references.d.ts +0 -0
- /package/dist/templates/skills/{knowledgine-suggest → knowledgine-search}/references.d.ts +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export const REFERENCES = {
|
|
2
2
|
"search-strategy.md": `# Search Strategy
|
|
3
3
|
|
|
4
|
-
How to choose the right search mode and build an effective
|
|
4
|
+
How to choose the right search mode, extract context signals, and build an effective
|
|
5
|
+
search workflow combining query search, context-based suggestions, and graph traversal.
|
|
5
6
|
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -51,7 +52,8 @@ search_knowledge(query: "user authentication token expiry", mode: "semantic")
|
|
|
51
52
|
Combines keyword and semantic scores. Returns the best of both modes.
|
|
52
53
|
|
|
53
54
|
**Best for**:
|
|
54
|
-
-
|
|
55
|
+
- Context-based queries derived from file paths, task descriptions, or feature areas
|
|
56
|
+
- Most general-purpose exploration
|
|
55
57
|
- When you are unsure which mode is better
|
|
56
58
|
- Complex queries mixing exact terms and concepts
|
|
57
59
|
|
|
@@ -62,11 +64,64 @@ search_knowledge(query: "TypeScript null safety database repository", mode: "hyb
|
|
|
62
64
|
|
|
63
65
|
---
|
|
64
66
|
|
|
67
|
+
## Context Signal Extraction
|
|
68
|
+
|
|
69
|
+
When you do not have a specific search query, extract signals from the current work context.
|
|
70
|
+
|
|
71
|
+
### Signal Types
|
|
72
|
+
|
|
73
|
+
| Signal Type | Example Input | Extracted Query |
|
|
74
|
+
|-------------|---------------|-----------------|
|
|
75
|
+
| File path | \`src/commands/setup.ts\` | \`"setup command configuration"\` |
|
|
76
|
+
| File path | \`packages/core/src/config/config-loader.ts\` | \`"config loader configuration"\` |
|
|
77
|
+
| File path | \`packages/ingest/src/plugins/github.ts\` | \`"github ingest plugin"\` |
|
|
78
|
+
| Component name | \`SetupCommand\`, \`KnowledgeRepository\` | Use directly as keyword query |
|
|
79
|
+
| Task description | "Add support for TOML config files in the setup command" | \`"TOML configuration setup"\` |
|
|
80
|
+
| Task description | "Fix entity extraction pipeline for empty documents" | \`"entity extraction empty document"\` |
|
|
81
|
+
| Error message | "SQLITE_ERROR: table entities has no column 'confidence'" | \`"SQLITE_ERROR entities column"\` |
|
|
82
|
+
| Feature area | MCP configuration | \`"MCP server configuration"\` |
|
|
83
|
+
| Feature area | Search | \`"search_knowledge FTS5 semantic"\` |
|
|
84
|
+
|
|
85
|
+
### Multi-Signal Queries
|
|
86
|
+
|
|
87
|
+
Combine 2–3 signals for more targeted results:
|
|
88
|
+
|
|
89
|
+
\`\`\`
|
|
90
|
+
// File + task
|
|
91
|
+
query: "config-loader TOML parsing"
|
|
92
|
+
|
|
93
|
+
// Component + problem type
|
|
94
|
+
query: "KnowledgeRepository null safety"
|
|
95
|
+
|
|
96
|
+
// Technology + pattern
|
|
97
|
+
query: "sqlite migration schema change"
|
|
98
|
+
\`\`\`
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
65
102
|
## Workflow Patterns
|
|
66
103
|
|
|
67
|
-
### Pattern 1:
|
|
104
|
+
### Pattern 1: Session Start
|
|
105
|
+
|
|
106
|
+
When beginning work on a known area:
|
|
107
|
+
|
|
108
|
+
1. Extract context from the primary file or feature area
|
|
109
|
+
2. Run hybrid search with the combined context query
|
|
110
|
+
3. Review top 3–5 results and note any warnings or past decisions
|
|
111
|
+
4. Use \`find_related\` with the current file path to discover connected notes
|
|
112
|
+
5. Proceed with targeted keyword queries as specific issues arise
|
|
113
|
+
|
|
114
|
+
\`\`\`
|
|
115
|
+
// Step 1: Context-based search
|
|
116
|
+
search_knowledge(query: "setup command MCP configuration", mode: "hybrid", limit: 10)
|
|
117
|
+
|
|
118
|
+
// Step 2: Graph traversal
|
|
119
|
+
find_related(filePath: "src/commands/setup.ts", limit: 5)
|
|
120
|
+
\`\`\`
|
|
68
121
|
|
|
69
|
-
|
|
122
|
+
### Pattern 2: Error Encountered
|
|
123
|
+
|
|
124
|
+
When an error or exception occurs:
|
|
70
125
|
|
|
71
126
|
1. Copy the exact error message
|
|
72
127
|
2. Run keyword search with the error message
|
|
@@ -80,26 +135,34 @@ Error: "Cannot find module '@knowledgine/core'"
|
|
|
80
135
|
→ semantic: "TypeScript module not found build error"
|
|
81
136
|
\`\`\`
|
|
82
137
|
|
|
83
|
-
### Pattern
|
|
138
|
+
### Pattern 3: Exploring Unfamiliar Code
|
|
84
139
|
|
|
85
|
-
When
|
|
140
|
+
When approaching an unfamiliar component or module:
|
|
86
141
|
|
|
87
142
|
1. Search by file path: \`keyword: "src/commands/setup.ts"\`
|
|
88
143
|
2. Search by component name: \`keyword: "setupCommand"\`
|
|
89
144
|
3. Search by topic: \`semantic: "MCP configuration setup"\`
|
|
145
|
+
4. Traverse the graph from any relevant result: \`find_related(noteId: <id>, maxHops: 2)\`
|
|
90
146
|
|
|
91
|
-
### Pattern
|
|
147
|
+
### Pattern 4: Before Making a Change
|
|
92
148
|
|
|
93
|
-
Before
|
|
149
|
+
Before an architectural decision or significant change:
|
|
94
150
|
|
|
95
151
|
1. Search for past decisions: \`keyword: "design-decision <topic>"\`
|
|
96
152
|
2. Search for related patterns: \`semantic: "<concept> pattern implementation"\`
|
|
97
|
-
3.
|
|
153
|
+
3. Use \`find_related\` with a relevant noteId to find connected decisions
|
|
98
154
|
|
|
99
155
|
---
|
|
100
156
|
|
|
101
157
|
## Result Interpretation
|
|
102
158
|
|
|
159
|
+
### Keyword Mode (BM25 Score)
|
|
160
|
+
|
|
161
|
+
Results are ranked by BM25 relevance score. Higher is better; no fixed scale.
|
|
162
|
+
Focus on the top 3–5 results unless you are building comprehensive context.
|
|
163
|
+
|
|
164
|
+
### Semantic Mode (Cosine Similarity)
|
|
165
|
+
|
|
103
166
|
| Score | Meaning |
|
|
104
167
|
|-------|---------|
|
|
105
168
|
| > 0.9 | Very strong match — highly likely relevant |
|
|
@@ -107,12 +170,40 @@ Before making an architectural choice:
|
|
|
107
170
|
| 0.5–0.7 | Weak match — may or may not be relevant |
|
|
108
171
|
| < 0.5 | Marginal — usually skip unless no better results |
|
|
109
172
|
|
|
110
|
-
|
|
111
|
-
|
|
173
|
+
### Hybrid Mode
|
|
174
|
+
|
|
175
|
+
Scores combine BM25 and cosine similarity. Treat the ranking as a combined signal;
|
|
176
|
+
the absolute values are less meaningful than the relative order.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Graph Traversal with find_related
|
|
181
|
+
|
|
182
|
+
After finding an initial relevant note, use \`find_related\` to discover connected notes:
|
|
183
|
+
|
|
184
|
+
\`\`\`
|
|
185
|
+
// Use the numeric note ID from a search result
|
|
186
|
+
find_related(noteId: 42, limit: 5, maxHops: 1)
|
|
187
|
+
|
|
188
|
+
// Or search by the current file path directly
|
|
189
|
+
find_related(filePath: "packages/core/src/config/config-loader.ts", limit: 5)
|
|
190
|
+
\`\`\`
|
|
191
|
+
|
|
192
|
+
**IMPORTANT**: \`noteId\` must be a number (integer), not a string. Use the \`id\` field
|
|
193
|
+
from \`search_knowledge\` results directly.
|
|
194
|
+
|
|
195
|
+
**maxHops guidance**:
|
|
196
|
+
|
|
197
|
+
| maxHops | Effect |
|
|
198
|
+
|---------|--------|
|
|
199
|
+
| 1 | Direct references only — fast, focused (default) |
|
|
200
|
+
| 2 | One degree of separation — good for exploration |
|
|
201
|
+
| 3 | Broader graph — use for open-ended discovery |
|
|
112
202
|
`,
|
|
113
203
|
"query-tips.md": `# Query Tips
|
|
114
204
|
|
|
115
|
-
How to formulate effective search queries for different situations
|
|
205
|
+
How to formulate effective search queries for different situations, with templates,
|
|
206
|
+
fallback strategies, and limit guidance.
|
|
116
207
|
|
|
117
208
|
---
|
|
118
209
|
|
|
@@ -168,6 +259,15 @@ keyword: "pattern <concept>"
|
|
|
168
259
|
semantic: "reusable pattern for <problem type>"
|
|
169
260
|
\`\`\`
|
|
170
261
|
|
|
262
|
+
### Context-Based (Session Start or File Open)
|
|
263
|
+
\`\`\`
|
|
264
|
+
// Combine file area + task
|
|
265
|
+
hybrid: "<module-name> <task-noun>"
|
|
266
|
+
|
|
267
|
+
// Feature area
|
|
268
|
+
hybrid: "<feature area> <technology>"
|
|
269
|
+
\`\`\`
|
|
270
|
+
|
|
171
271
|
---
|
|
172
272
|
|
|
173
273
|
## When First Query Returns Nothing
|
|
@@ -178,7 +278,8 @@ Try these fallback strategies in order:
|
|
|
178
278
|
- \`"SQLITE_ERROR: table notes has no column 'embedding'"\`
|
|
179
279
|
- → \`"sqlite migration column"\`
|
|
180
280
|
|
|
181
|
-
2. **Switch modes** — If keyword failed, try semantic
|
|
281
|
+
2. **Switch modes** — If keyword failed, try semantic or hybrid; if semantic failed,
|
|
282
|
+
try keyword
|
|
182
283
|
|
|
183
284
|
3. **Synonym query** — Use related terms
|
|
184
285
|
- \`"authentication"\` → \`"auth session token login"\`
|
|
@@ -187,8 +288,8 @@ Try these fallback strategies in order:
|
|
|
187
288
|
- \`"bug-fix typescript"\`
|
|
188
289
|
- \`"design-decision database"\`
|
|
189
290
|
|
|
190
|
-
5. **Accept no results** — Not every problem has been captured before.
|
|
191
|
-
|
|
291
|
+
5. **Accept no results** — Not every problem has been captured before. After solving
|
|
292
|
+
it, use knowledgine-capture to record the solution.
|
|
192
293
|
|
|
193
294
|
---
|
|
194
295
|
|
|
@@ -197,11 +298,15 @@ Try these fallback strategies in order:
|
|
|
197
298
|
| Situation | Recommended limit |
|
|
198
299
|
|-----------|-------------------|
|
|
199
300
|
| Quick lookup (known topic) | 3–5 |
|
|
200
|
-
| General exploration | 10
|
|
201
|
-
| Building full context | 15–20 |
|
|
202
|
-
| Finding rare entries | 20
|
|
301
|
+
| General exploration | 10 |
|
|
302
|
+
| Building full context at session start | 15–20 |
|
|
303
|
+
| Finding rare entries | 20 (default) |
|
|
304
|
+
|
|
305
|
+
The default limit for \`search_knowledge\` is **20**. Use lower limits when your query
|
|
306
|
+
is precise to avoid noise. The default limit for \`find_related\` is **5** — this is
|
|
307
|
+
appropriate for most graph traversal operations.
|
|
203
308
|
|
|
204
|
-
Higher limits slow down search marginally; prefer lower limits when query is precise.
|
|
309
|
+
Higher limits slow down search marginally; prefer lower limits when the query is precise.
|
|
205
310
|
`,
|
|
206
311
|
};
|
|
207
312
|
//# sourceMappingURL=references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../../../src/templates/skills/knowledgine-search/references.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMvB;IAEC,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GlB;CACA,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const SKILL_MD = "---\nname: knowledgine-search\nversion: \"1.0.0\"\nlang: en\ndescription: >\n Search the local knowledge base for past solutions, design decisions, and patterns.\n Invoke when facing an error, approaching unfamiliar code, starting a session, opening\n a new file, or considering implementation approaches. Supports three modes: direct\n query search, context-based suggestions, and graph-based related note discovery.\n---\n# knowledgine-search\n\n## Purpose\n\nSearch accumulated project knowledge before solving problems from scratch. The knowledge\nbase contains past bug fixes, design decisions, troubleshooting records, and patterns\ngathered across all previous sessions. This skill unifies direct query search and\ncontext-based discovery into a single workflow, preventing duplicate work and surfacing\nrelevant context proactively.\n\n## When to Use\n\n- **Error or exception encountered** \u2014 Search for the exact error message or key terms\n- **Unfamiliar code area** \u2014 Search for context about the component or module\n- **Implementation choice** \u2014 Search for past decisions on the same topic\n- **Considering a library or approach** \u2014 Search for known gotchas or prior art\n- **Starting a session** \u2014 Get context about the area you will work in\n- **Opening a new file** \u2014 Discover past knowledge about that component\n- **Beginning a feature** \u2014 Find related patterns and past decisions\n- **Starting work on a file** \u2014 Search for related notes about that file path\n\n## When NOT to Use\n\n- Purely mechanical tasks with no ambiguity (renaming a variable, formatting)\n- When you have already searched and found no relevant results within this session\n- After already running context-based search for the same file in the same session\n- Do not call search on every single action \u2014 use judgment\n\n## Search Approaches\n\n### Approach 1: Query Search\n\nYou have specific terms \u2014 an error message, a function name, or a known topic.\n\nUse `search_knowledge` with the specific terms. Start with `keyword` mode for exact\nmatches; switch to `semantic` or `hybrid` when the exact wording is uncertain.\n\n### Approach 2: Context-Based Search\n\nYou are starting work on a file or task without a specific query in mind.\n\nExtract signals from the current file path, component name, task description, or error\nmessage. Combine 2\u20133 signals into a query and use `hybrid` mode for best results. See\n`search-strategy.md` for how to extract context signals.\n\n### Approach 3: Related Note Discovery\n\nYou have found a relevant note and want to discover connected notes in the knowledge graph.\n\nCall `find_related` with the `noteId` (as a number) from the relevant result, or with\nthe current `filePath`. This traverses the knowledge graph to surface notes linked by\nentity relationships, problem-solution pairs, and file associations.\n\n## Choosing Search Mode\n\n| Situation | Mode |\n|-----------|------|\n| You have an exact error message | `keyword` |\n| You remember specific function or variable names | `keyword` |\n| You know the concept but not the exact wording | `semantic` |\n| Starting work with context signals (file, task, feature) | `hybrid` |\n| General exploration of a topic | `hybrid` |\n| Embeddings not available (FTS5-only setup) | `keyword` (only option) |\n\n## How to Search (MCP Tools)\n\n### search_knowledge\n\n```\nsearch_knowledge(\n query: string, // Search query\n mode?: \"keyword\" // \"keyword\" | \"semantic\" | \"hybrid\"\n | \"semantic\" // keyword: exact text match via FTS5 (default)\n | \"hybrid\", // semantic: meaning-based, requires embeddings\n // hybrid: combines both\n limit?: number, // Max results (default: 20)\n agentic?: boolean, // Include deprecated notes (default: false)\n includeDeprecated?: boolean // Include deprecated notes (default: false)\n)\n```\n\n### find_related\n\n```\nfind_related(\n noteId?: number, // ID of a note \u2014 must be a NUMBER (integer), not a string\n filePath?: string, // File path to find related notes for\n limit?: number, // Max results (default: 5)\n maxHops?: number // Graph traversal depth (default: 1, max: 3)\n)\n```\n\nProvide at least one of `noteId` or `filePath`. `noteId` values come from\n`search_knowledge` results \u2014 use the numeric `id` field directly.\n\n## How to Search (CLI Alternative)\n\n```bash\nknowledgine search \"<query>\" # keyword search\nknowledgine search \"<query>\" --mode semantic # semantic search\nknowledgine search \"<query>\" --mode hybrid # hybrid search\nknowledgine suggest --file src/commands/setup.ts # context-based by file path (suggest command)\n```\n\n## Step-by-Step Instructions\n\n1. **Choose your approach** \u2014 Do you have a specific query (Approach 1), or are you\n starting from context like a file path or task description (Approach 2)?\n\n2. **Extract your query**\n - For Approach 1: Use the error message, function name, or known topic directly\n - For Approach 2: Extract signals from file path, component name, task, or error;\n combine 2\u20133 signals into a query (see `search-strategy.md`)\n\n3. **Choose the mode**\n - Exact terms \u2192 `keyword`\n - Context signals or conceptual search \u2192 `hybrid`\n - Known concept, uncertain wording \u2192 `semantic`\n\n4. **Call search_knowledge** \u2014 Pass query, mode, and limit (5\u201310 is usually sufficient;\n default is 20)\n\n5. **Evaluate results** \u2014 Read the returned notes for relevance; note any IDs of\n highly relevant results\n\n6. **Traverse related notes (optional)** \u2014 If a result looks highly relevant, call\n `find_related` with its numeric `noteId` or the current `filePath` to discover\n connected notes via the knowledge graph\n\n7. **Apply findings** \u2014 Use relevant past solutions or decisions to inform your work\n\n8. **Capture if new** \u2014 If you discover a new solution, use knowledgine-capture to\n save it\n\n## Best Practices\n\n- Search before proposing a solution, not after\n- Use the actual error message text as a query \u2014 it is the most targeted search\n- Try multiple queries if the first returns no results\n- At session start, run a context-based search (Approach 2) for the primary work area,\n then use targeted queries (Approach 1) as specific issues arise\n- Prioritize notes tagged with `bug-fix` or `troubleshooting` \u2014 they contain warnings\n- Notes tagged `design-decision` are especially valuable before making changes\n- The `noteId` parameter of `find_related` is a number \u2014 pass the integer id field\n from search results, not a string\n\n## Edge Cases\n\n- **Knowledge base is empty** \u2014 If `search_knowledge` returns no results at all,\n the knowledge base may not have been populated yet. Suggest using knowledgine-ingest\n to index the codebase or knowledgine-capture to start recording knowledge.\n- **Semantic or hybrid mode returns an error** \u2014 Embeddings may not be configured.\n Fall back to `keyword` mode, which relies only on SQLite FTS5 and always works.\n- **find_related returns an error for a noteId** \u2014 Confirm the value is a positive\n integer from a `search_knowledge` result, not a string representation.\n\n## Reference Files\n\n- See `search-strategy.md` for mode selection, context signal extraction, workflow\n patterns, and result interpretation\n- See `query-tips.md` for query formulation templates, fallback strategies, and\n limit guidance\n";
|
|
2
|
+
//# sourceMappingURL=skill-md.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-md.d.ts","sourceRoot":"","sources":["../../../../src/templates/skills/knowledgine-search/skill-md.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,2+OA4KpB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const SKILL_MD = "---\nname: knowledgine-search\nversion: \"1.0.0\"\nlang: ja\ndescription: >\n \u904E\u53BB\u306E\u89E3\u6C7A\u7B56\u3001\u8A2D\u8A08\u4E0A\u306E\u6C7A\u5B9A\u3001\u30D1\u30BF\u30FC\u30F3\u3092\u30ED\u30FC\u30AB\u30EB\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u304B\u3089\u691C\u7D22\u3057\u307E\u3059\u3002\n \u30A8\u30E9\u30FC\u306B\u76F4\u9762\u3057\u305F\u3068\u304D\u3001\u6163\u308C\u306A\u3044\u30B3\u30FC\u30C9\u306B\u53D6\u308A\u7D44\u3080\u3068\u304D\u3001\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3059\u308B\u3068\u304D\u3001\n \u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u304D\u3001\u5B9F\u88C5\u30A2\u30D7\u30ED\u30FC\u30C1\u3092\u691C\u8A0E\u3059\u308B\u3068\u304D\u306B\u547C\u3073\u51FA\u3057\u307E\u3059\u3002\n \u30AF\u30A8\u30EA\u76F4\u63A5\u691C\u7D22\u30FB\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D9\u30FC\u30B9\u306E\u30B5\u30B8\u30A7\u30B9\u30C8\u30FB\u30B0\u30E9\u30D5\u306B\u3088\u308B\u95A2\u9023\u30CE\u30FC\u30C8\u63A2\u7D22\u306E\n 3\u3064\u306E\u30E2\u30FC\u30C9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n---\n# knowledgine-search\n\n## \u76EE\u7684\n\n\u554F\u984C\u3092\u30BC\u30ED\u304B\u3089\u89E3\u6C7A\u3057\u3088\u3046\u3068\u3059\u308B\u524D\u306B\u3001\u84C4\u7A4D\u3055\u308C\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u77E5\u8B58\u3092\u691C\u7D22\u3057\u307E\u3059\u3002\n\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u306B\u306F\u3001\u904E\u53BB\u306E\u30D0\u30B0\u4FEE\u6B63\u3001\u8A2D\u8A08\u4E0A\u306E\u6C7A\u5B9A\u3001\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u306E\u8A18\u9332\u3001\n\u305D\u3057\u3066\u5168\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u901A\u3058\u3066\u53CE\u96C6\u3055\u308C\u305F\u30D1\u30BF\u30FC\u30F3\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u30B9\u30AD\u30EB\u306F\n\u30AF\u30A8\u30EA\u76F4\u63A5\u691C\u7D22\u3068\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D9\u30FC\u30B9\u306E\u63A2\u7D22\u3092\u5358\u4E00\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u7D71\u5408\u3057\u3001\n\u91CD\u8907\u4F5C\u696D\u3092\u9632\u3044\u3067\u95A2\u9023\u3059\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u5148\u56DE\u308A\u3057\u3066\u63D0\u793A\u3057\u307E\u3059\u3002\n\n## \u4F7F\u7528\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\n\n- **\u30A8\u30E9\u30FC\u3084\u4F8B\u5916\u304C\u767A\u751F\u3057\u305F\u3068\u304D** \u2014 \u6B63\u78BA\u306A\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u3084\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u691C\u7D22\u3059\u308B\n- **\u6163\u308C\u306A\u3044\u30B3\u30FC\u30C9\u9818\u57DF\u306B\u53D6\u308A\u7D44\u3080\u3068\u304D** \u2014 \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3084\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u95A2\u3059\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u691C\u7D22\u3059\u308B\n- **\u5B9F\u88C5\u306E\u9078\u629E\u3092\u3059\u308B\u3068\u304D** \u2014 \u540C\u3058\u30C8\u30D4\u30C3\u30AF\u306B\u95A2\u3059\u308B\u904E\u53BB\u306E\u6C7A\u5B9A\u3092\u691C\u7D22\u3059\u308B\n- **\u30E9\u30A4\u30D6\u30E9\u30EA\u3084\u30A2\u30D7\u30ED\u30FC\u30C1\u3092\u691C\u8A0E\u3059\u308B\u3068\u304D** \u2014 \u65E2\u77E5\u306E\u843D\u3068\u3057\u7A74\u3084\u5148\u884C\u4E8B\u4F8B\u3092\u691C\u7D22\u3059\u308B\n- **\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3059\u308B\u3068\u304D** \u2014 \u4F5C\u696D\u3059\u308B\u9818\u57DF\u306B\u95A2\u3059\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u53D6\u5F97\u3059\u308B\n- **\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u304D** \u2014 \u305D\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u95A2\u3059\u308B\u904E\u53BB\u306E\u77E5\u8B58\u3092\u767A\u898B\u3059\u308B\n- **\u6A5F\u80FD\u306E\u5B9F\u88C5\u3092\u59CB\u3081\u308B\u3068\u304D** \u2014 \u95A2\u9023\u3059\u308B\u30D1\u30BF\u30FC\u30F3\u3084\u904E\u53BB\u306E\u6C7A\u5B9A\u3092\u898B\u3064\u3051\u308B\n- **\u30D5\u30A1\u30A4\u30EB\u306E\u4F5C\u696D\u3092\u958B\u59CB\u3059\u308B\u3068\u304D** \u2014 \u305D\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u306B\u95A2\u9023\u3059\u308B\u30CE\u30FC\u30C8\u3092\u691C\u7D22\u3059\u308B\n\n## \u4F7F\u7528\u3057\u306A\u3044\u30BF\u30A4\u30DF\u30F3\u30B0\n\n- \u66D6\u6627\u3055\u306E\u306A\u3044\u7D14\u7C8B\u306B\u6A5F\u68B0\u7684\u306A\u30BF\u30B9\u30AF\uFF08\u5909\u6570\u306E\u30EA\u30CD\u30FC\u30E0\u3001\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306A\u3069\uFF09\n- \u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u5185\u3067\u3059\u3067\u306B\u691C\u7D22\u3057\u3066\u95A2\u9023\u3059\u308B\u7D50\u679C\u304C\u898B\u3064\u304B\u3089\u306A\u304B\u3063\u305F\u3068\u304D\n- \u540C\u3058\u30D5\u30A1\u30A4\u30EB\u306B\u5BFE\u3057\u3066\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D9\u30FC\u30B9\u306E\u691C\u7D22\u3092\u3059\u3067\u306B\u5B9F\u884C\u6E08\u307F\u306E\u3068\u304D\n- \u3059\u3079\u3066\u306E\u64CD\u4F5C\u3067\u691C\u7D22\u3092\u547C\u3073\u51FA\u3059\u3053\u3068\u306F\u907F\u3051\u308B \u2014 \u5224\u65AD\u3057\u3066\u4F7F\u7528\u3059\u308B\n\n## \u691C\u7D22\u30A2\u30D7\u30ED\u30FC\u30C1\n\n### \u30A2\u30D7\u30ED\u30FC\u30C1 1: \u30AF\u30A8\u30EA\u691C\u7D22\n\n\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u3001\u95A2\u6570\u540D\u3001\u307E\u305F\u306F\u65E2\u77E5\u306E\u30C8\u30D4\u30C3\u30AF\u306A\u3069\u3001\u5177\u4F53\u7684\u306A\u8A9E\u53E5\u304C\u3042\u308B\u5834\u5408\u3002\n\n\u7279\u5B9A\u306E\u8A9E\u53E5\u3067 `search_knowledge` \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u5B8C\u5168\u4E00\u81F4\u306B\u306F `keyword` \u30E2\u30FC\u30C9\u304B\u3089\u59CB\u3081\u3001\n\u6B63\u78BA\u306A\u8868\u73FE\u304C\u4E0D\u78BA\u304B\u306A\u5834\u5408\u306F `semantic` \u307E\u305F\u306F `hybrid` \u306B\u5207\u308A\u66FF\u3048\u307E\u3059\u3002\n\n### \u30A2\u30D7\u30ED\u30FC\u30C1 2: \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D9\u30FC\u30B9\u306E\u691C\u7D22\n\n\u7279\u5B9A\u306E\u30AF\u30A8\u30EA\u306A\u3057\u306B\u3001\u30D5\u30A1\u30A4\u30EB\u3084\u30BF\u30B9\u30AF\u306E\u4F5C\u696D\u3092\u958B\u59CB\u3059\u308B\u5834\u5408\u3002\n\n\u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u540D\u3001\u30BF\u30B9\u30AF\u306E\u8AAC\u660E\u3001\u307E\u305F\u306F\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u304B\u3089\n\u30B7\u30B0\u30CA\u30EB\u3092\u62BD\u51FA\u3057\u307E\u3059\u30022\u301C3\u500B\u306E\u30B7\u30B0\u30CA\u30EB\u3092\u7D44\u307F\u5408\u308F\u305B\u3066\u30AF\u30A8\u30EA\u3092\u4F5C\u6210\u3057\u3001\n\u6700\u826F\u306E\u7D50\u679C\u3092\u5F97\u308B\u306B\u306F `hybrid` \u30E2\u30FC\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B7\u30B0\u30CA\u30EB\u306E\n\u62BD\u51FA\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F `search-strategy.md` \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\n### \u30A2\u30D7\u30ED\u30FC\u30C1 3: \u95A2\u9023\u30CE\u30FC\u30C8\u306E\u63A2\u7D22\n\n\u95A2\u9023\u3059\u308B\u30CE\u30FC\u30C8\u3092\u898B\u3064\u3051\u3066\u3001\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\u5185\u306E\u63A5\u7D9A\u3055\u308C\u305F\u30CE\u30FC\u30C8\u3092\u767A\u898B\u3057\u305F\u3044\u5834\u5408\u3002\n\n\u95A2\u9023\u3059\u308B\u7D50\u679C\u306E `noteId`\uFF08\u6570\u5024\u3068\u3057\u3066\uFF09\u307E\u305F\u306F\u73FE\u5728\u306E `filePath` \u3092\u4F7F\u3063\u3066\n`find_related` \u3092\u547C\u3073\u51FA\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\u3092\u8D70\u67FB\u3057\u3066\u3001\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\n\u95A2\u4FC2\u6027\u3001\u554F\u984C\u3068\u89E3\u6C7A\u7B56\u306E\u30DA\u30A2\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u95A2\u9023\u6027\u306B\u3088\u3063\u3066\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30CE\u30FC\u30C8\u3092\n\u63D0\u793A\u3057\u307E\u3059\u3002\n\n## \u691C\u7D22\u30E2\u30FC\u30C9\u306E\u9078\u629E\n\n| \u72B6\u6CC1 | \u30E2\u30FC\u30C9 |\n|------|--------|\n| \u6B63\u78BA\u306A\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u3042\u308B | `keyword` |\n| \u7279\u5B9A\u306E\u95A2\u6570\u540D\u3084\u5909\u6570\u540D\u3092\u899A\u3048\u3066\u3044\u308B | `keyword` |\n| \u6982\u5FF5\u306F\u308F\u304B\u308B\u304C\u6B63\u78BA\u306A\u8868\u73FE\u304C\u4E0D\u78BA\u304B | `semantic` |\n| \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B7\u30B0\u30CA\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u3001\u30BF\u30B9\u30AF\u3001\u6A5F\u80FD\uFF09\u304B\u3089\u4F5C\u696D\u3092\u958B\u59CB\u3059\u308B | `hybrid` |\n| \u30C8\u30D4\u30C3\u30AF\u306E\u4E00\u822C\u7684\u306A\u63A2\u7D22 | `hybrid` |\n| \u57CB\u3081\u8FBC\u307F\u304C\u5229\u7528\u3067\u304D\u306A\u3044\uFF08FTS5\u306E\u307F\u306E\u69CB\u6210\uFF09 | `keyword`\uFF08\u552F\u4E00\u306E\u9078\u629E\u80A2\uFF09 |\n\n## \u691C\u7D22\u65B9\u6CD5 (MCP \u30C4\u30FC\u30EB)\n\n### search_knowledge\n\n```\nsearch_knowledge(\n query: string, // \u691C\u7D22\u30AF\u30A8\u30EA\n mode?: \"keyword\" // \"keyword\" | \"semantic\" | \"hybrid\"\n | \"semantic\" // keyword: FTS5 \u306B\u3088\u308B\u5B8C\u5168\u4E00\u81F4\u30C6\u30AD\u30B9\u30C8\u691C\u7D22\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09\n | \"hybrid\", // semantic: \u610F\u5473\u30D9\u30FC\u30B9\u3001\u57CB\u3081\u8FBC\u307F\u304C\u5FC5\u8981\n // hybrid: \u4E21\u8005\u3092\u7D44\u307F\u5408\u308F\u305B\n limit?: number, // \u6700\u5927\u7D50\u679C\u6570\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8: 20\uFF09\n agentic?: boolean, // \u5EC3\u6B62\u6E08\u307F\u30CE\u30FC\u30C8\u3092\u542B\u3080\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8: false\uFF09\n includeDeprecated?: boolean // \u5EC3\u6B62\u6E08\u307F\u30CE\u30FC\u30C8\u3092\u542B\u3080\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8: false\uFF09\n)\n```\n\n### find_related\n\n```\nfind_related(\n noteId?: number, // \u30CE\u30FC\u30C8\u306E ID \u2014 \u6587\u5B57\u5217\u3067\u306F\u306A\u304F\u6570\u5024\uFF08\u6574\u6570\uFF09\u3067\u3042\u308B\u3053\u3068\n filePath?: string, // \u95A2\u9023\u30CE\u30FC\u30C8\u3092\u691C\u7D22\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\n limit?: number, // \u6700\u5927\u7D50\u679C\u6570\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8: 5\uFF09\n maxHops?: number // \u30B0\u30E9\u30D5\u306E\u8D70\u67FB\u6DF1\u5EA6\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8: 1\u3001\u6700\u5927: 3\uFF09\n)\n```\n\n`noteId` \u307E\u305F\u306F `filePath` \u306E\u3044\u305A\u308C\u304B\u4E00\u65B9\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`noteId` \u306E\u5024\u306F\n`search_knowledge` \u306E\u7D50\u679C\u304B\u3089\u53D6\u5F97\u3057\u307E\u3059 \u2014 \u6570\u5024\u306E `id` \u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u305D\u306E\u307E\u307E\u4F7F\u7528\u3057\u307E\u3059\u3002\n\n## \u691C\u7D22\u65B9\u6CD5 (CLI \u306E\u4EE3\u66FF\u624B\u6BB5)\n\n```bash\nknowledgine search \"<query>\" # \u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\nknowledgine search \"<query>\" --mode semantic # \u30BB\u30DE\u30F3\u30C6\u30A3\u30C3\u30AF\u691C\u7D22\nknowledgine search \"<query>\" --mode hybrid # \u30CF\u30A4\u30D6\u30EA\u30C3\u30C9\u691C\u7D22\nknowledgine suggest --file src/commands/setup.ts # \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u306B\u3088\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D9\u30FC\u30B9\u691C\u7D22\uFF08suggest \u30B3\u30DE\u30F3\u30C9\uFF09\n```\n\n## \u624B\u9806\n\n1. **\u30A2\u30D7\u30ED\u30FC\u30C1\u3092\u9078\u629E** \u2014 \u7279\u5B9A\u306E\u30AF\u30A8\u30EA\u304C\u3042\u308B\u5834\u5408\uFF08\u30A2\u30D7\u30ED\u30FC\u30C1 1\uFF09\u304B\u3001\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3084\n \u30BF\u30B9\u30AF\u306E\u8AAC\u660E\u306A\u3069\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304B\u3089\u59CB\u3081\u308B\u5834\u5408\uFF08\u30A2\u30D7\u30ED\u30FC\u30C1 2\uFF09\u304B\uFF1F\n\n2. **\u30AF\u30A8\u30EA\u3092\u4F5C\u6210**\n - \u30A2\u30D7\u30ED\u30FC\u30C1 1: \u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u3001\u95A2\u6570\u540D\u3001\u307E\u305F\u306F\u65E2\u77E5\u306E\u30C8\u30D4\u30C3\u30AF\u3092\u305D\u306E\u307E\u307E\u4F7F\u7528\n - \u30A2\u30D7\u30ED\u30FC\u30C1 2: \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u540D\u3001\u30BF\u30B9\u30AF\u3001\u307E\u305F\u306F\u30A8\u30E9\u30FC\u304B\u3089\u30B7\u30B0\u30CA\u30EB\u3092\n \u62BD\u51FA\u3057\u30012\u301C3\u500B\u306E\u30B7\u30B0\u30CA\u30EB\u3092\u7D44\u307F\u5408\u308F\u305B\u3066\u30AF\u30A8\u30EA\u3092\u4F5C\u6210\uFF08`search-strategy.md` \u53C2\u7167\uFF09\n\n3. **\u30E2\u30FC\u30C9\u3092\u9078\u629E**\n - \u6B63\u78BA\u306A\u8A9E\u53E5 \u2192 `keyword`\n - \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B7\u30B0\u30CA\u30EB\u3084\u6982\u5FF5\u7684\u306A\u691C\u7D22 \u2192 `hybrid`\n - \u6982\u5FF5\u306F\u308F\u304B\u308B\u304C\u8868\u73FE\u304C\u4E0D\u78BA\u304B \u2192 `semantic`\n\n4. **search_knowledge \u3092\u547C\u3073\u51FA\u3059** \u2014 \u30AF\u30A8\u30EA\u3001\u30E2\u30FC\u30C9\u3001\u4E0A\u9650\u3092\u6307\u5B9A\uFF085\u301C10 \u4EF6\u3067\u901A\u5E38\u5341\u5206;\n \u30C7\u30D5\u30A9\u30EB\u30C8\u306F 20\uFF09\n\n5. **\u7D50\u679C\u3092\u8A55\u4FA1** \u2014 \u8FD4\u3055\u308C\u305F\u30CE\u30FC\u30C8\u306E\u95A2\u9023\u6027\u3092\u8AAD\u3093\u3067\u78BA\u8A8D\u3057\u3001\u9AD8\u5EA6\u306B\u95A2\u9023\u3059\u308B\u7D50\u679C\u306E\n ID \u3092\u30E1\u30E2\u3059\u308B\n\n6. **\u95A2\u9023\u30CE\u30FC\u30C8\u3092\u8D70\u67FB\uFF08\u4EFB\u610F\uFF09** \u2014 \u7D50\u679C\u304C\u9AD8\u5EA6\u306B\u95A2\u9023\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u306E\u6570\u5024 `noteId` \u307E\u305F\u306F\n \u73FE\u5728\u306E `filePath` \u3092\u4F7F\u3063\u3066 `find_related` \u3092\u547C\u3073\u51FA\u3057\u3001\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\u7D4C\u7531\u3067\n \u63A5\u7D9A\u3055\u308C\u305F\u30CE\u30FC\u30C8\u3092\u767A\u898B\u3059\u308B\n\n7. **\u767A\u898B\u5185\u5BB9\u3092\u9069\u7528** \u2014 \u95A2\u9023\u3059\u308B\u904E\u53BB\u306E\u89E3\u6C7A\u7B56\u3084\u6C7A\u5B9A\u3092\u3001\u4F5C\u696D\u306B\u6D3B\u304B\u3059\n\n8. **\u65B0\u3057\u3044\u77E5\u8B58\u3092\u8A18\u9332** \u2014 \u65B0\u3057\u3044\u89E3\u6C7A\u7B56\u3092\u767A\u898B\u3057\u305F\u5834\u5408\u3001knowledgine-capture \u3092\u4F7F\u3063\u3066\u4FDD\u5B58\u3059\u308B\n\n## \u30D9\u30B9\u30C8\u30D7\u30E9\u30AF\u30C6\u30A3\u30B9\n\n- \u89E3\u6C7A\u7B56\u3092\u63D0\u6848\u3059\u308B\u524D\u306B\u691C\u7D22\u3059\u308B\uFF08\u5F8C\u3067\u306F\u306A\u304F\uFF09\n- \u5B9F\u969B\u306E\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u30C6\u30AD\u30B9\u30C8\u3092\u30AF\u30A8\u30EA\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B \u2014 \u6700\u3082\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u7D5E\u3063\u305F\u691C\u7D22\u304C\u3067\u304D\u308B\n- \u6700\u521D\u306E\u691C\u7D22\u3067\u7D50\u679C\u304C\u5F97\u3089\u308C\u306A\u3044\u5834\u5408\u306F\u3001\u8907\u6570\u306E\u30AF\u30A8\u30EA\u3092\u8A66\u307F\u308B\n- \u30BB\u30C3\u30B7\u30E7\u30F3\u958B\u59CB\u6642\u306B\u3001\u4E3B\u306A\u4F5C\u696D\u9818\u57DF\u306B\u5BFE\u3057\u3066\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30D9\u30FC\u30B9\u306E\u691C\u7D22\uFF08\u30A2\u30D7\u30ED\u30FC\u30C1 2\uFF09\u3092\u5B9F\u884C\u3057\u3001\n \u305D\u306E\u5F8C\u3001\u7279\u5B9A\u306E\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3089\u5BFE\u8C61\u3092\u7D5E\u3063\u305F\u30AF\u30A8\u30EA\uFF08\u30A2\u30D7\u30ED\u30FC\u30C1 1\uFF09\u3092\u4F7F\u7528\u3059\u308B\n- `bug-fix` \u307E\u305F\u306F `troubleshooting` \u30BF\u30B0\u304C\u4ED8\u3044\u305F\u30CE\u30FC\u30C8\u3092\u512A\u5148\u3059\u308B \u2014 \u8B66\u544A\u304C\u542B\u307E\u308C\u3066\u3044\u308B\n- `design-decision` \u30BF\u30B0\u306E\u30CE\u30FC\u30C8\u306F\u5909\u66F4\u3092\u52A0\u3048\u308B\u524D\u306B\u7279\u306B\u4FA1\u5024\u304C\u3042\u308B\n- `find_related` \u306E `noteId` \u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u6570\u5024 \u2014 \u6587\u5B57\u5217\u3067\u306F\u306A\u304F\u3001\u691C\u7D22\u7D50\u679C\u306E\u6574\u6570 id \u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u6E21\u3059\n\n## \u30A8\u30C3\u30B8\u30B1\u30FC\u30B9\n\n- **\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u304C\u7A7A\u306E\u5834\u5408** \u2014 `search_knowledge` \u304C\u307E\u3063\u305F\u304F\u7D50\u679C\u3092\u8FD4\u3055\u306A\u3044\u5834\u5408\u3001\n \u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u306F\u307E\u3060\u5165\u529B\u3055\u308C\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u30B3\u30FC\u30C9\u30D9\u30FC\u30B9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3059\u308B\u305F\u3081\u306B\n knowledgine-ingest \u3092\u4F7F\u7528\u3059\u308B\u304B\u3001knowledgine-capture \u3067\u77E5\u8B58\u306E\u8A18\u9332\u3092\u958B\u59CB\u3059\u308B\u3053\u3068\u3092\u63D0\u6848\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n- **\u30BB\u30DE\u30F3\u30C6\u30A3\u30C3\u30AF\u307E\u305F\u306F\u30CF\u30A4\u30D6\u30EA\u30C3\u30C9\u30E2\u30FC\u30C9\u304C\u30A8\u30E9\u30FC\u3092\u8FD4\u3059\u5834\u5408** \u2014 \u57CB\u3081\u8FBC\u307F\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\n SQLite FTS5 \u306E\u307F\u306B\u4F9D\u5B58\u3057\u3066\u5E38\u306B\u52D5\u4F5C\u3059\u308B `keyword` \u30E2\u30FC\u30C9\u306B\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n- **find_related \u304C noteId \u3067\u30A8\u30E9\u30FC\u3092\u8FD4\u3059\u5834\u5408** \u2014 \u5024\u304C `search_knowledge` \u306E\u7D50\u679C\u304B\u3089\n \u5F97\u305F\u6B63\u306E\u6574\u6570\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3001\u6587\u5B57\u5217\u8868\u73FE\u3067\u306A\u3044\u3053\u3068\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\n\n## \u53C2\u7167\u30D5\u30A1\u30A4\u30EB\n\n- \u30E2\u30FC\u30C9\u9078\u629E\u3001\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B7\u30B0\u30CA\u30EB\u306E\u62BD\u51FA\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u30D1\u30BF\u30FC\u30F3\u3001\u7D50\u679C\u306E\u89E3\u91C8\u306B\u3064\u3044\u3066\u306F\n `search-strategy.md` \u3092\u53C2\u7167\n- \u30AF\u30A8\u30EA\u306E\u4F5C\u6210\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3001\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u6226\u7565\u3001\u4E0A\u9650\u306E\u30AC\u30A4\u30C0\u30F3\u30B9\u306B\u3064\u3044\u3066\u306F\n `query-tips.md` \u3092\u53C2\u7167\n";
|
|
2
|
+
//# sourceMappingURL=skill-md.ja.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-md.ja.d.ts","sourceRoot":"","sources":["../../../../src/templates/skills/knowledgine-search/skill-md.ja.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,qpjBA6KpB,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
export const SKILL_MD = `---
|
|
2
|
+
name: knowledgine-search
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
lang: ja
|
|
5
|
+
description: >
|
|
6
|
+
過去の解決策、設計上の決定、パターンをローカルナレッジベースから検索します。
|
|
7
|
+
エラーに直面したとき、慣れないコードに取り組むとき、セッションを開始するとき、
|
|
8
|
+
新しいファイルを開くとき、実装アプローチを検討するときに呼び出します。
|
|
9
|
+
クエリ直接検索・コンテキストベースのサジェスト・グラフによる関連ノート探索の
|
|
10
|
+
3つのモードをサポートします。
|
|
11
|
+
---
|
|
12
|
+
# knowledgine-search
|
|
13
|
+
|
|
14
|
+
## 目的
|
|
15
|
+
|
|
16
|
+
問題をゼロから解決しようとする前に、蓄積されたプロジェクトの知識を検索します。
|
|
17
|
+
ナレッジベースには、過去のバグ修正、設計上の決定、トラブルシューティングの記録、
|
|
18
|
+
そして全セッションを通じて収集されたパターンが含まれています。このスキルは
|
|
19
|
+
クエリ直接検索とコンテキストベースの探索を単一のワークフローに統合し、
|
|
20
|
+
重複作業を防いで関連するコンテキストを先回りして提示します。
|
|
21
|
+
|
|
22
|
+
## 使用するタイミング
|
|
23
|
+
|
|
24
|
+
- **エラーや例外が発生したとき** — 正確なエラーメッセージやキーワードを検索する
|
|
25
|
+
- **慣れないコード領域に取り組むとき** — コンポーネントやモジュールに関するコンテキストを検索する
|
|
26
|
+
- **実装の選択をするとき** — 同じトピックに関する過去の決定を検索する
|
|
27
|
+
- **ライブラリやアプローチを検討するとき** — 既知の落とし穴や先行事例を検索する
|
|
28
|
+
- **セッションを開始するとき** — 作業する領域に関するコンテキストを取得する
|
|
29
|
+
- **新しいファイルを開くとき** — そのコンポーネントに関する過去の知識を発見する
|
|
30
|
+
- **機能の実装を始めるとき** — 関連するパターンや過去の決定を見つける
|
|
31
|
+
- **ファイルの作業を開始するとき** — そのファイルパスに関連するノートを検索する
|
|
32
|
+
|
|
33
|
+
## 使用しないタイミング
|
|
34
|
+
|
|
35
|
+
- 曖昧さのない純粋に機械的なタスク(変数のリネーム、フォーマットなど)
|
|
36
|
+
- このセッション内ですでに検索して関連する結果が見つからなかったとき
|
|
37
|
+
- 同じファイルに対してコンテキストベースの検索をすでに実行済みのとき
|
|
38
|
+
- すべての操作で検索を呼び出すことは避ける — 判断して使用する
|
|
39
|
+
|
|
40
|
+
## 検索アプローチ
|
|
41
|
+
|
|
42
|
+
### アプローチ 1: クエリ検索
|
|
43
|
+
|
|
44
|
+
エラーメッセージ、関数名、または既知のトピックなど、具体的な語句がある場合。
|
|
45
|
+
|
|
46
|
+
特定の語句で \`search_knowledge\` を使用します。完全一致には \`keyword\` モードから始め、
|
|
47
|
+
正確な表現が不確かな場合は \`semantic\` または \`hybrid\` に切り替えます。
|
|
48
|
+
|
|
49
|
+
### アプローチ 2: コンテキストベースの検索
|
|
50
|
+
|
|
51
|
+
特定のクエリなしに、ファイルやタスクの作業を開始する場合。
|
|
52
|
+
|
|
53
|
+
現在のファイルパス、コンポーネント名、タスクの説明、またはエラーメッセージから
|
|
54
|
+
シグナルを抽出します。2〜3個のシグナルを組み合わせてクエリを作成し、
|
|
55
|
+
最良の結果を得るには \`hybrid\` モードを使用します。コンテキストシグナルの
|
|
56
|
+
抽出方法については \`search-strategy.md\` を参照してください。
|
|
57
|
+
|
|
58
|
+
### アプローチ 3: 関連ノートの探索
|
|
59
|
+
|
|
60
|
+
関連するノートを見つけて、ナレッジグラフ内の接続されたノートを発見したい場合。
|
|
61
|
+
|
|
62
|
+
関連する結果の \`noteId\`(数値として)または現在の \`filePath\` を使って
|
|
63
|
+
\`find_related\` を呼び出します。これはナレッジグラフを走査して、エンティティの
|
|
64
|
+
関係性、問題と解決策のペア、ファイルの関連性によってリンクされたノートを
|
|
65
|
+
提示します。
|
|
66
|
+
|
|
67
|
+
## 検索モードの選択
|
|
68
|
+
|
|
69
|
+
| 状況 | モード |
|
|
70
|
+
|------|--------|
|
|
71
|
+
| 正確なエラーメッセージがある | \`keyword\` |
|
|
72
|
+
| 特定の関数名や変数名を覚えている | \`keyword\` |
|
|
73
|
+
| 概念はわかるが正確な表現が不確か | \`semantic\` |
|
|
74
|
+
| コンテキストシグナル(ファイル、タスク、機能)から作業を開始する | \`hybrid\` |
|
|
75
|
+
| トピックの一般的な探索 | \`hybrid\` |
|
|
76
|
+
| 埋め込みが利用できない(FTS5のみの構成) | \`keyword\`(唯一の選択肢) |
|
|
77
|
+
|
|
78
|
+
## 検索方法 (MCP ツール)
|
|
79
|
+
|
|
80
|
+
### search_knowledge
|
|
81
|
+
|
|
82
|
+
\`\`\`
|
|
83
|
+
search_knowledge(
|
|
84
|
+
query: string, // 検索クエリ
|
|
85
|
+
mode?: "keyword" // "keyword" | "semantic" | "hybrid"
|
|
86
|
+
| "semantic" // keyword: FTS5 による完全一致テキスト検索(デフォルト)
|
|
87
|
+
| "hybrid", // semantic: 意味ベース、埋め込みが必要
|
|
88
|
+
// hybrid: 両者を組み合わせ
|
|
89
|
+
limit?: number, // 最大結果数(デフォルト: 20)
|
|
90
|
+
agentic?: boolean, // 廃止済みノートを含む(デフォルト: false)
|
|
91
|
+
includeDeprecated?: boolean // 廃止済みノートを含む(デフォルト: false)
|
|
92
|
+
)
|
|
93
|
+
\`\`\`
|
|
94
|
+
|
|
95
|
+
### find_related
|
|
96
|
+
|
|
97
|
+
\`\`\`
|
|
98
|
+
find_related(
|
|
99
|
+
noteId?: number, // ノートの ID — 文字列ではなく数値(整数)であること
|
|
100
|
+
filePath?: string, // 関連ノートを検索するファイルパス
|
|
101
|
+
limit?: number, // 最大結果数(デフォルト: 5)
|
|
102
|
+
maxHops?: number // グラフの走査深度(デフォルト: 1、最大: 3)
|
|
103
|
+
)
|
|
104
|
+
\`\`\`
|
|
105
|
+
|
|
106
|
+
\`noteId\` または \`filePath\` のいずれか一方を指定してください。\`noteId\` の値は
|
|
107
|
+
\`search_knowledge\` の結果から取得します — 数値の \`id\` フィールドをそのまま使用します。
|
|
108
|
+
|
|
109
|
+
## 検索方法 (CLI の代替手段)
|
|
110
|
+
|
|
111
|
+
\`\`\`bash
|
|
112
|
+
knowledgine search "<query>" # キーワード検索
|
|
113
|
+
knowledgine search "<query>" --mode semantic # セマンティック検索
|
|
114
|
+
knowledgine search "<query>" --mode hybrid # ハイブリッド検索
|
|
115
|
+
knowledgine suggest --file src/commands/setup.ts # ファイルパスによるコンテキストベース検索(suggest コマンド)
|
|
116
|
+
\`\`\`
|
|
117
|
+
|
|
118
|
+
## 手順
|
|
119
|
+
|
|
120
|
+
1. **アプローチを選択** — 特定のクエリがある場合(アプローチ 1)か、ファイルパスや
|
|
121
|
+
タスクの説明などのコンテキストから始める場合(アプローチ 2)か?
|
|
122
|
+
|
|
123
|
+
2. **クエリを作成**
|
|
124
|
+
- アプローチ 1: エラーメッセージ、関数名、または既知のトピックをそのまま使用
|
|
125
|
+
- アプローチ 2: ファイルパス、コンポーネント名、タスク、またはエラーからシグナルを
|
|
126
|
+
抽出し、2〜3個のシグナルを組み合わせてクエリを作成(\`search-strategy.md\` 参照)
|
|
127
|
+
|
|
128
|
+
3. **モードを選択**
|
|
129
|
+
- 正確な語句 → \`keyword\`
|
|
130
|
+
- コンテキストシグナルや概念的な検索 → \`hybrid\`
|
|
131
|
+
- 概念はわかるが表現が不確か → \`semantic\`
|
|
132
|
+
|
|
133
|
+
4. **search_knowledge を呼び出す** — クエリ、モード、上限を指定(5〜10 件で通常十分;
|
|
134
|
+
デフォルトは 20)
|
|
135
|
+
|
|
136
|
+
5. **結果を評価** — 返されたノートの関連性を読んで確認し、高度に関連する結果の
|
|
137
|
+
ID をメモする
|
|
138
|
+
|
|
139
|
+
6. **関連ノートを走査(任意)** — 結果が高度に関連している場合、その数値 \`noteId\` または
|
|
140
|
+
現在の \`filePath\` を使って \`find_related\` を呼び出し、ナレッジグラフ経由で
|
|
141
|
+
接続されたノートを発見する
|
|
142
|
+
|
|
143
|
+
7. **発見内容を適用** — 関連する過去の解決策や決定を、作業に活かす
|
|
144
|
+
|
|
145
|
+
8. **新しい知識を記録** — 新しい解決策を発見した場合、knowledgine-capture を使って保存する
|
|
146
|
+
|
|
147
|
+
## ベストプラクティス
|
|
148
|
+
|
|
149
|
+
- 解決策を提案する前に検索する(後ではなく)
|
|
150
|
+
- 実際のエラーメッセージテキストをクエリとして使用する — 最もターゲットを絞った検索ができる
|
|
151
|
+
- 最初の検索で結果が得られない場合は、複数のクエリを試みる
|
|
152
|
+
- セッション開始時に、主な作業領域に対してコンテキストベースの検索(アプローチ 2)を実行し、
|
|
153
|
+
その後、特定の問題が発生したら対象を絞ったクエリ(アプローチ 1)を使用する
|
|
154
|
+
- \`bug-fix\` または \`troubleshooting\` タグが付いたノートを優先する — 警告が含まれている
|
|
155
|
+
- \`design-decision\` タグのノートは変更を加える前に特に価値がある
|
|
156
|
+
- \`find_related\` の \`noteId\` パラメータは数値 — 文字列ではなく、検索結果の整数 id フィールドを渡す
|
|
157
|
+
|
|
158
|
+
## エッジケース
|
|
159
|
+
|
|
160
|
+
- **ナレッジベースが空の場合** — \`search_knowledge\` がまったく結果を返さない場合、
|
|
161
|
+
ナレッジベースはまだ入力されていない可能性があります。コードベースをインデックス化するために
|
|
162
|
+
knowledgine-ingest を使用するか、knowledgine-capture で知識の記録を開始することを提案してください。
|
|
163
|
+
- **セマンティックまたはハイブリッドモードがエラーを返す場合** — 埋め込みが設定されていない可能性があります。
|
|
164
|
+
SQLite FTS5 のみに依存して常に動作する \`keyword\` モードにフォールバックしてください。
|
|
165
|
+
- **find_related が noteId でエラーを返す場合** — 値が \`search_knowledge\` の結果から
|
|
166
|
+
得た正の整数であることを確認し、文字列表現でないことを確かめてください。
|
|
167
|
+
|
|
168
|
+
## 参照ファイル
|
|
169
|
+
|
|
170
|
+
- モード選択、コンテキストシグナルの抽出、ワークフローパターン、結果の解釈については
|
|
171
|
+
\`search-strategy.md\` を参照
|
|
172
|
+
- クエリの作成テンプレート、フォールバック戦略、上限のガイダンスについては
|
|
173
|
+
\`query-tips.md\` を参照
|
|
174
|
+
`;
|
|
175
|
+
//# sourceMappingURL=skill-md.ja.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-md.ja.js","sourceRoot":"","sources":["../../../../src/templates/skills/knowledgine-search/skill-md.ja.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6KvB,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
export const SKILL_MD = `---
|
|
2
|
+
name: knowledgine-search
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
lang: en
|
|
5
|
+
description: >
|
|
6
|
+
Search the local knowledge base for past solutions, design decisions, and patterns.
|
|
7
|
+
Invoke when facing an error, approaching unfamiliar code, starting a session, opening
|
|
8
|
+
a new file, or considering implementation approaches. Supports three modes: direct
|
|
9
|
+
query search, context-based suggestions, and graph-based related note discovery.
|
|
10
|
+
---
|
|
11
|
+
# knowledgine-search
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Search accumulated project knowledge before solving problems from scratch. The knowledge
|
|
16
|
+
base contains past bug fixes, design decisions, troubleshooting records, and patterns
|
|
17
|
+
gathered across all previous sessions. This skill unifies direct query search and
|
|
18
|
+
context-based discovery into a single workflow, preventing duplicate work and surfacing
|
|
19
|
+
relevant context proactively.
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
- **Error or exception encountered** — Search for the exact error message or key terms
|
|
24
|
+
- **Unfamiliar code area** — Search for context about the component or module
|
|
25
|
+
- **Implementation choice** — Search for past decisions on the same topic
|
|
26
|
+
- **Considering a library or approach** — Search for known gotchas or prior art
|
|
27
|
+
- **Starting a session** — Get context about the area you will work in
|
|
28
|
+
- **Opening a new file** — Discover past knowledge about that component
|
|
29
|
+
- **Beginning a feature** — Find related patterns and past decisions
|
|
30
|
+
- **Starting work on a file** — Search for related notes about that file path
|
|
31
|
+
|
|
32
|
+
## When NOT to Use
|
|
33
|
+
|
|
34
|
+
- Purely mechanical tasks with no ambiguity (renaming a variable, formatting)
|
|
35
|
+
- When you have already searched and found no relevant results within this session
|
|
36
|
+
- After already running context-based search for the same file in the same session
|
|
37
|
+
- Do not call search on every single action — use judgment
|
|
38
|
+
|
|
39
|
+
## Search Approaches
|
|
40
|
+
|
|
41
|
+
### Approach 1: Query Search
|
|
42
|
+
|
|
43
|
+
You have specific terms — an error message, a function name, or a known topic.
|
|
44
|
+
|
|
45
|
+
Use \`search_knowledge\` with the specific terms. Start with \`keyword\` mode for exact
|
|
46
|
+
matches; switch to \`semantic\` or \`hybrid\` when the exact wording is uncertain.
|
|
47
|
+
|
|
48
|
+
### Approach 2: Context-Based Search
|
|
49
|
+
|
|
50
|
+
You are starting work on a file or task without a specific query in mind.
|
|
51
|
+
|
|
52
|
+
Extract signals from the current file path, component name, task description, or error
|
|
53
|
+
message. Combine 2–3 signals into a query and use \`hybrid\` mode for best results. See
|
|
54
|
+
\`search-strategy.md\` for how to extract context signals.
|
|
55
|
+
|
|
56
|
+
### Approach 3: Related Note Discovery
|
|
57
|
+
|
|
58
|
+
You have found a relevant note and want to discover connected notes in the knowledge graph.
|
|
59
|
+
|
|
60
|
+
Call \`find_related\` with the \`noteId\` (as a number) from the relevant result, or with
|
|
61
|
+
the current \`filePath\`. This traverses the knowledge graph to surface notes linked by
|
|
62
|
+
entity relationships, problem-solution pairs, and file associations.
|
|
63
|
+
|
|
64
|
+
## Choosing Search Mode
|
|
65
|
+
|
|
66
|
+
| Situation | Mode |
|
|
67
|
+
|-----------|------|
|
|
68
|
+
| You have an exact error message | \`keyword\` |
|
|
69
|
+
| You remember specific function or variable names | \`keyword\` |
|
|
70
|
+
| You know the concept but not the exact wording | \`semantic\` |
|
|
71
|
+
| Starting work with context signals (file, task, feature) | \`hybrid\` |
|
|
72
|
+
| General exploration of a topic | \`hybrid\` |
|
|
73
|
+
| Embeddings not available (FTS5-only setup) | \`keyword\` (only option) |
|
|
74
|
+
|
|
75
|
+
## How to Search (MCP Tools)
|
|
76
|
+
|
|
77
|
+
### search_knowledge
|
|
78
|
+
|
|
79
|
+
\`\`\`
|
|
80
|
+
search_knowledge(
|
|
81
|
+
query: string, // Search query
|
|
82
|
+
mode?: "keyword" // "keyword" | "semantic" | "hybrid"
|
|
83
|
+
| "semantic" // keyword: exact text match via FTS5 (default)
|
|
84
|
+
| "hybrid", // semantic: meaning-based, requires embeddings
|
|
85
|
+
// hybrid: combines both
|
|
86
|
+
limit?: number, // Max results (default: 20)
|
|
87
|
+
agentic?: boolean, // Include deprecated notes (default: false)
|
|
88
|
+
includeDeprecated?: boolean // Include deprecated notes (default: false)
|
|
89
|
+
)
|
|
90
|
+
\`\`\`
|
|
91
|
+
|
|
92
|
+
### find_related
|
|
93
|
+
|
|
94
|
+
\`\`\`
|
|
95
|
+
find_related(
|
|
96
|
+
noteId?: number, // ID of a note — must be a NUMBER (integer), not a string
|
|
97
|
+
filePath?: string, // File path to find related notes for
|
|
98
|
+
limit?: number, // Max results (default: 5)
|
|
99
|
+
maxHops?: number // Graph traversal depth (default: 1, max: 3)
|
|
100
|
+
)
|
|
101
|
+
\`\`\`
|
|
102
|
+
|
|
103
|
+
Provide at least one of \`noteId\` or \`filePath\`. \`noteId\` values come from
|
|
104
|
+
\`search_knowledge\` results — use the numeric \`id\` field directly.
|
|
105
|
+
|
|
106
|
+
## How to Search (CLI Alternative)
|
|
107
|
+
|
|
108
|
+
\`\`\`bash
|
|
109
|
+
knowledgine search "<query>" # keyword search
|
|
110
|
+
knowledgine search "<query>" --mode semantic # semantic search
|
|
111
|
+
knowledgine search "<query>" --mode hybrid # hybrid search
|
|
112
|
+
knowledgine suggest --file src/commands/setup.ts # context-based by file path (suggest command)
|
|
113
|
+
\`\`\`
|
|
114
|
+
|
|
115
|
+
## Step-by-Step Instructions
|
|
116
|
+
|
|
117
|
+
1. **Choose your approach** — Do you have a specific query (Approach 1), or are you
|
|
118
|
+
starting from context like a file path or task description (Approach 2)?
|
|
119
|
+
|
|
120
|
+
2. **Extract your query**
|
|
121
|
+
- For Approach 1: Use the error message, function name, or known topic directly
|
|
122
|
+
- For Approach 2: Extract signals from file path, component name, task, or error;
|
|
123
|
+
combine 2–3 signals into a query (see \`search-strategy.md\`)
|
|
124
|
+
|
|
125
|
+
3. **Choose the mode**
|
|
126
|
+
- Exact terms → \`keyword\`
|
|
127
|
+
- Context signals or conceptual search → \`hybrid\`
|
|
128
|
+
- Known concept, uncertain wording → \`semantic\`
|
|
129
|
+
|
|
130
|
+
4. **Call search_knowledge** — Pass query, mode, and limit (5–10 is usually sufficient;
|
|
131
|
+
default is 20)
|
|
132
|
+
|
|
133
|
+
5. **Evaluate results** — Read the returned notes for relevance; note any IDs of
|
|
134
|
+
highly relevant results
|
|
135
|
+
|
|
136
|
+
6. **Traverse related notes (optional)** — If a result looks highly relevant, call
|
|
137
|
+
\`find_related\` with its numeric \`noteId\` or the current \`filePath\` to discover
|
|
138
|
+
connected notes via the knowledge graph
|
|
139
|
+
|
|
140
|
+
7. **Apply findings** — Use relevant past solutions or decisions to inform your work
|
|
141
|
+
|
|
142
|
+
8. **Capture if new** — If you discover a new solution, use knowledgine-capture to
|
|
143
|
+
save it
|
|
144
|
+
|
|
145
|
+
## Best Practices
|
|
146
|
+
|
|
147
|
+
- Search before proposing a solution, not after
|
|
148
|
+
- Use the actual error message text as a query — it is the most targeted search
|
|
149
|
+
- Try multiple queries if the first returns no results
|
|
150
|
+
- At session start, run a context-based search (Approach 2) for the primary work area,
|
|
151
|
+
then use targeted queries (Approach 1) as specific issues arise
|
|
152
|
+
- Prioritize notes tagged with \`bug-fix\` or \`troubleshooting\` — they contain warnings
|
|
153
|
+
- Notes tagged \`design-decision\` are especially valuable before making changes
|
|
154
|
+
- The \`noteId\` parameter of \`find_related\` is a number — pass the integer id field
|
|
155
|
+
from search results, not a string
|
|
156
|
+
|
|
157
|
+
## Edge Cases
|
|
158
|
+
|
|
159
|
+
- **Knowledge base is empty** — If \`search_knowledge\` returns no results at all,
|
|
160
|
+
the knowledge base may not have been populated yet. Suggest using knowledgine-ingest
|
|
161
|
+
to index the codebase or knowledgine-capture to start recording knowledge.
|
|
162
|
+
- **Semantic or hybrid mode returns an error** — Embeddings may not be configured.
|
|
163
|
+
Fall back to \`keyword\` mode, which relies only on SQLite FTS5 and always works.
|
|
164
|
+
- **find_related returns an error for a noteId** — Confirm the value is a positive
|
|
165
|
+
integer from a \`search_knowledge\` result, not a string representation.
|
|
166
|
+
|
|
167
|
+
## Reference Files
|
|
168
|
+
|
|
169
|
+
- See \`search-strategy.md\` for mode selection, context signal extraction, workflow
|
|
170
|
+
patterns, and result interpretation
|
|
171
|
+
- See \`query-tips.md\` for query formulation templates, fallback strategies, and
|
|
172
|
+
limit guidance
|
|
173
|
+
`;
|
|
174
|
+
//# sourceMappingURL=skill-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-md.js","sourceRoot":"","sources":["../../../../src/templates/skills/knowledgine-search/skill-md.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KvB,CAAC"}
|