@syntesseraai/opencode-feature-factory 0.3.6 → 0.4.1

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/README.md CHANGED
@@ -29,47 +29,6 @@ This will:
29
29
  - Copy skills to `~/.config/opencode/skills/`
30
30
  - Configure MCP servers in `~/.config/opencode/opencode.json`
31
31
 
32
- ## Local Recall MCP Daemon
33
-
34
- The plugin now includes a local MCP daemon binary: `ff-local-recall-mcp`.
35
-
36
- - `ff-deploy` adds a local MCP server entry named `ff-local-recall`
37
- - The server exposes memory tools:
38
- - `local_recall.search`
39
- - `local_recall.get`
40
- - `local_recall.store`
41
- - `local_recall.index.start`
42
- - `local_recall.index.status`
43
- - `local_recall.index.stop`
44
- - `local_recall.index.rebuild`
45
- - In headless and TUI sessions, relevant memories are automatically injected into model context per user prompt
46
-
47
- ### Environment Variables
48
-
49
- - `FF_LOCAL_RECALL_DIRECTORY` - Directory that contains `ff-memories/` (default: current working directory)
50
- - `FF_LOCAL_RECALL_DAEMON_AUTOSTART` - Start index daemon automatically (`true` by default)
51
- - `FF_LOCAL_RECALL_INDEX_INTERVAL_MS` - Background daemon interval in milliseconds (default: `15000`)
52
- - `FF_LOCAL_RECALL_EXTRACTION_ENABLED` - Run extraction during daemon cycles (`true` by default)
53
- - `FF_LOCAL_RECALL_EMBEDDING_PROVIDER` - Embedding provider (`ollama` default, `openai` optional)
54
- - `FF_LOCAL_RECALL_OLLAMA_URL` - Ollama base URL (default: `http://127.0.0.1:11434`)
55
- - `FF_LOCAL_RECALL_OLLAMA_MODEL` - Ollama embedding model (default: `nomic-embed-text`)
56
- - `FF_LOCAL_RECALL_OPENAI_URL` - OpenAI embeddings endpoint base (default: `https://api.openai.com/v1`)
57
- - `FF_LOCAL_RECALL_OPENAI_MODEL` - OpenAI embedding model (default: `text-embedding-3-small`)
58
- - `OPENAI_API_KEY` - Required when `FF_LOCAL_RECALL_EMBEDDING_PROVIDER=openai`
59
-
60
- ### Prompt Injection Controls
61
-
62
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_ENABLED` - Enable automatic per-prompt memory injection (`true` by default)
63
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_MIN_PROMPT_CHARS` - Minimum user prompt length before searching (default: `20`)
64
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_MAX_QUERY_CHARS` - Maximum characters from prompt used for retrieval (default: `2000`)
65
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_SEARCH_LIMIT` - Max memories fetched before ranking/filtering (default: `8`)
66
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_MAX_RESULTS` - Max memories injected into model context (default: `5`)
67
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_MIN_RELEVANCE` - Minimum relevance score for inclusion (default: `0.2`)
68
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_MIN_IMPORTANCE` - Minimum memory importance used in search (default: `0.2`)
69
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_MAX_TOKENS` - Approx token budget for injected memory block (default: `400`)
70
- - `FF_LOCAL_RECALL_PROMPT_INJECTION_SESSION_ONLY` - Restrict retrieval to current session memories only (`false` by default)
71
- - `FF_LOCAL_RECALL_PROMPT_INTERNAL_MARKERS` - Comma-separated markers that skip injection (default: `[LOCAL_RECALL_INTERNAL]`)
72
-
73
32
  ## Agents Provided
74
33
 
75
34
  ### Primary Agents
@@ -68,10 +68,27 @@ At the start of EVERY building task:
68
68
  5. **Load the ff-delegation skill** and assess parallelization opportunities
69
69
  6. **Load the ff-mini-plan skill** and create an execution plan
70
70
  7. **Load the ff-todo-management skill** and create a todo list for tracking progress
71
- 8. **Load the ff-learning skill** to capture implementation insights
72
- 9. **Load the ff-severity-classification skill** to assess risks of changes
73
- 10. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/building-{UUID}.md`
74
- 11. **Check for existing plans** - Use `ff-plans-list` and `ff-plans-get` to find implementation plans
71
+ 8. **Load the ff-severity-classification skill** to assess risks of changes
72
+ 9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/building-{UUID}.md`
73
+ 10. **Check for existing plans** - Use `ff-plans-list` and `ff-plans-get` to find implementation plans
74
+
75
+ ## Git Worktrees (Mandatory)
76
+
77
+ To prevent conflicts and ensure a clean state, you MUST use git worktrees for your implementation:
78
+
79
+ 1. **Create Worktree:** Before starting code modifications, create a dedicated worktree outside the main directory:
80
+ ```bash
81
+ git worktree add ../ff-build-{UUID} -b feature/ff-build-{UUID}
82
+ ```
83
+ 2. **Use the Worktree:**
84
+ - When using the `bash` tool, always set the `workdir` parameter to the absolute path of your worktree.
85
+ - When using `edit`, `write`, or `read` tools, ensure the `filePath` points to the files inside your worktree (e.g., replace the base project path with the path to your worktree).
86
+ 3. **Commit & Push:** Commit your changes and push the branch from within the worktree.
87
+ 4. **Cleanup:** After your work is pushed, remove the worktree:
88
+ ```bash
89
+ git worktree remove ../ff-build-{UUID} --force
90
+ git branch -D feature/ff-build-{UUID}
91
+ ```
75
92
 
76
93
  ## File Management Tools
77
94
 
@@ -452,31 +469,10 @@ When @reviewing agent returns findings:
452
469
 
453
470
  Create todos for each critical/high item, fix them, then re-invoke @reviewing if needed.
454
471
 
455
- ## Capture Learnings
472
+ ## Knowledge Management
456
473
 
457
- Before completing your building task:
474
+ **Always be learning:**
458
475
 
459
- 1. **Reflect on insights gained** during implementation:
460
- - Technical challenges overcome
461
- - Code patterns and best practices discovered
462
- - Error resolutions and debugging insights
463
- - Integration challenges and solutions
464
-
465
- 2. **Store important learnings** using the `ff-learning-store` MCP tool:
466
- - Use category `pattern` for technical patterns and best practices
467
- - Use category `context` for significant implementation experiences
468
- - Use category `procedure` for reusable workflows discovered
469
- - Tag with relevant technology names and categories
470
-
471
- 3. **Example learning capture:**
472
-
473
- ```
474
- ff-learning-store(
475
- title: "Implementation Pattern: [Pattern Name]",
476
- description: "Best practice for [scenario] in [technology]",
477
- category: "pattern",
478
- tags: ["implementation", "pattern", "{technology}"],
479
- importance: 0.8,
480
- content: "Detailed explanation of the pattern..."
481
- )
482
- ```
476
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
477
+ - Search `docs/learnings/` before debugging complex issues.
478
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -53,7 +53,6 @@ At the start of EVERY validation task:
53
53
  3. **Read relevant contexts** - Use `ff-agents-show()` to read contexts from @building, @planning, etc.
54
54
  4. **Load the ff-mini-plan skill** and create a quick 2-5 step plan for your validation approach
55
55
  5. **Load the ff-todo-management skill** and create a todo list from your plan
56
- 6. **Load the ff-learning skill** to capture validation insights and patterns
57
56
  7. **Load the ff-severity-classification skill** to ensure consistent issue classification
58
57
  8. **Load the ff-report-templates skill** for standardized output formatting
59
58
  9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/ff-acceptance-{UUID}.md`
@@ -278,28 +277,9 @@ Use ff-severity-classification skill standards:
278
277
 
279
278
  Remember: Your role is to be the "gatekeeper" ensuring requirements are fully and correctly implemented before proceeding.
280
279
 
281
- ## Capture Learnings
282
-
283
- Before completing your validation task:
284
-
285
- 1. **Reflect on insights gained** during validation:
286
- - Requirement validation patterns and insights
287
- - Acceptance criteria patterns observed
288
- - Ambiguity resolutions and scope clarifications
289
- - Common gaps between requirements and implementation
290
-
291
- 2. **Store important learnings** using `ff-learning-store` MCP tool:
292
- - Use category `pattern` for requirement patterns and validation techniques
293
- - Use category `decision` for significant scope clarifications and findings
294
- - Tag with requirement types, categories, and validation insights
295
-
296
- 3. **Example MCP tool call:**
297
- ```
298
- ff-learning-store(
299
- title: "Validation Pattern: [Pattern Name]",
300
- description: "Common pattern of [issue] in [type] requirements",
301
- category: "pattern",
302
- tags: ["validation", "requirements", "pattern", "{category}"],
303
- importance: 0.7
304
- )
305
- ```
280
+ ## Knowledge Management
281
+
282
+ **Always be learning:**
283
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
284
+ - Search `docs/learnings/` before debugging complex issues.
285
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -55,7 +55,6 @@ At the start of EVERY research task:
55
55
  5. **Load the ff-research-methods skill** for research methodology
56
56
  6. **Load the ff-mini-plan skill** and create a research plan
57
57
  7. **Load the ff-todo-management skill** and create a todo list
58
- 8. **Load the ff-learning skill** to capture research findings and knowledge
59
58
  9. **Load the ff-report-templates skill** for output formatting
60
59
  10. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/ff-research-{UUID}.md`
61
60
 
@@ -423,29 +422,9 @@ Structure research findings using ff-report-templates:
423
422
 
424
423
  Remember: Your research enables other agents to make informed implementation decisions. Be thorough, current, and precise.
425
424
 
426
- ## Capture Learnings
427
-
428
- Before completing your research task:
429
-
430
- 1. **Reflect on insights gained** during research:
431
- - Key findings and conclusions
432
- - Technology comparisons and evaluations
433
- - Best practices discovered
434
- - Source quality assessments
435
-
436
- 2. **Store important learnings** using `ff-learning-store` MCP tool:
437
- - Use category `pattern` for key findings and reusable knowledge
438
- - Use category `context` for significant research discoveries and context
439
- - Tag with research topics, technologies, and categories
440
- - Set high importance (0.8-1.0) for critical findings
441
-
442
- 3. **Example MCP tool call:**
443
- ```
444
- ff-learning-store(
445
- title: "Research Finding: [Topic]",
446
- description: "Key finding about [topic] from [source]",
447
- category: "pattern",
448
- tags: ["research", "{topic}", "{technology}", "best-practices"],
449
- importance: 0.9
450
- )
451
- ```
425
+ ## Knowledge Management
426
+
427
+ **Always be learning:**
428
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
429
+ - Search `docs/learnings/` before debugging complex issues.
430
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -53,7 +53,6 @@ At the start of EVERY review task:
53
53
  3. **Read relevant contexts** - Use `ff-agents-show()` to read contexts from @building, @planning, etc.
54
54
  4. **Load the ff-mini-plan skill** and create a quick 2-5 step plan for your review approach
55
55
  5. **Load the ff-todo-management skill** and create a todo list from your plan
56
- 6. **Load the ff-learning skill** to capture code quality insights and patterns
57
56
  7. **Load the ff-severity-classification skill** to ensure consistent issue classification
58
57
  8. **Load the ff-report-templates skill** for standardized output formatting
59
58
  9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/ff-review-{UUID}.md`
@@ -281,28 +280,9 @@ Use ff-severity-classification skill standards:
281
280
  11. Mark all todos complete before finishing
282
281
  12. Recommend delegating to other agents if specialized issues found
283
282
 
284
- ## Capture Learnings
285
-
286
- Before completing your code review:
287
-
288
- 1. **Reflect on insights gained** during the review:
289
- - Code quality patterns observed
290
- - Common issues and their solutions
291
- - Best practices identified
292
- - Review technique improvements
293
-
294
- 2. **Store important learnings** using `ff-learning-store` MCP tool:
295
- - Use category `pattern` for code patterns and anti-patterns
296
- - Use category `decision` for significant review findings and trade-offs
297
- - Tag with code quality categories, technologies, and patterns
298
-
299
- 3. **Example MCP tool call:**
300
- ```
301
- ff-learning-store(
302
- title: "Code Pattern: [Pattern Name]",
303
- description: "Effective pattern for [scenario] in [technology]",
304
- category: "pattern",
305
- tags: ["code-quality", "pattern", "{technology}", "{category}"],
306
- importance: 0.7
307
- )
308
- ```
283
+ ## Knowledge Management
284
+
285
+ **Always be learning:**
286
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
287
+ - Search `docs/learnings/` before debugging complex issues.
288
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -53,7 +53,6 @@ At the start of EVERY security audit:
53
53
  3. **Read relevant contexts** - Use `ff-agents-show()` to read contexts from @building, @planning, etc.
54
54
  4. **Load the ff-mini-plan skill** and create a quick 2-5 step plan for your audit approach
55
55
  5. **Load the ff-todo-management skill** and create a todo list from your plan
56
- 6. **Load the ff-learning skill** to capture security insights and vulnerability patterns
57
56
  7. **Load the ff-severity-classification skill** to ensure consistent vulnerability classification
58
57
  8. **Load the ff-report-templates skill** for standardized output formatting
59
58
  9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/ff-security-{UUID}.md`
@@ -315,28 +314,9 @@ Use ff-severity-classification skill standards with security-specific definition
315
314
  11. Mark all todos complete before finishing
316
315
  12. Recommend delegating to other agents if additional issues found
317
316
 
318
- ## Capture Learnings
319
-
320
- Before completing your security audit:
321
-
322
- 1. **Reflect on insights gained** during the audit:
323
- - Vulnerability patterns discovered
324
- - Security best practices identified
325
- - Threat model insights
326
- - Common security mistakes observed
327
-
328
- 2. **Store important learnings** using `ff-learning-store` MCP tool:
329
- - Use category `pattern` for vulnerability patterns and fixes
330
- - Use category `debugging` for significant security findings and investigations
331
- - Tag with security categories, vulnerability types, and technologies
332
-
333
- 3. **Example MCP tool call:**
334
- ```
335
- ff-learning-store(
336
- title: "Security Pattern: [Vulnerability Type]",
337
- description: "Common [vulnerability] pattern in [context] and how to fix it",
338
- category: "pattern",
339
- tags: ["security", "vulnerability", "{type}", "{technology}"],
340
- importance: 0.9
341
- )
342
- ```
317
+ ## Knowledge Management
318
+
319
+ **Always be learning:**
320
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
321
+ - Search `docs/learnings/` before debugging complex issues.
322
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -53,7 +53,6 @@ At the start of EVERY validation orchestration:
53
53
  3. **Read relevant contexts** - Use `ff-agents-show()` to read contexts from @building, @planning, etc.
54
54
  4. **Load the ff-mini-plan skill** and create a quick plan for your orchestration approach
55
55
  5. **Load the ff-todo-management skill** and create a todo list for tracking
56
- 6. **Load the ff-learning skill** to capture validation insights and patterns
57
56
  7. **Load the ff-severity-classification skill** for consistent issue classification
58
57
  8. **Load the ff-report-templates skill** for standardized output formatting
59
58
  9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/ff-validate-{UUID}.md`
@@ -309,28 +308,9 @@ When multiple agents report findings:
309
308
  - **Include metrics** - Quantify the validation results where possible
310
309
  - **Consider context** - Weight findings based on the scope of changes
311
310
 
312
- ## Capture Learnings
313
-
314
- Before completing your validation:
315
-
316
- 1. **Reflect on insights gained** during validation:
317
- - Validation patterns and effective techniques
318
- - Common issues found across different dimensions
319
- - Validation efficiency improvements
320
- - Cross-dimensional finding patterns
321
-
322
- 2. **Store important learnings** using `ff-learning-store` MCP tool:
323
- - Use category `pattern` for validation patterns and effective techniques
324
- - Use category `decision` for significant validation findings
325
- - Tag with validation types and categories
326
-
327
- 3. **Example MCP tool call:**
328
- ```
329
- ff-learning-store(
330
- title: "Validation Pattern: [Pattern Name]",
331
- description: "Common pattern of [findings] when validating [type] changes",
332
- category: "pattern",
333
- tags: ["validation", "pattern", "{category}"],
334
- importance: 0.7
335
- )
336
- ```
311
+ ## Knowledge Management
312
+
313
+ **Always be learning:**
314
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
315
+ - Search `docs/learnings/` before debugging complex issues.
316
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -53,7 +53,6 @@ At the start of EVERY architecture review:
53
53
  3. **Read relevant contexts** - Use `ff-agents-show()` to read contexts from @building, @planning, etc.
54
54
  4. **Load the ff-mini-plan skill** and create a quick 2-5 step plan for your review approach
55
55
  5. **Load the ff-todo-management skill** and create a todo list from your plan
56
- 6. **Load the ff-learning skill** to capture architectural insights and patterns
57
56
  7. **Load the ff-severity-classification skill** to ensure consistent issue classification
58
57
  8. **Load the ff-report-templates skill** for standardized output formatting
59
58
  9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/ff-well-architected-{UUID}.md`
@@ -277,28 +276,9 @@ Use ff-severity-classification skill standards:
277
276
 
278
277
  Focus on providing actionable, specific recommendations that improve the overall architecture quality across all six pillars.
279
278
 
280
- ## Capture Learnings
281
-
282
- Before completing your architecture review:
283
-
284
- 1. **Reflect on insights gained** during the review:
285
- - Architectural patterns and anti-patterns observed
286
- - Pillar-specific insights (Operational Excellence, Security, Reliability, etc.)
287
- - Scalability and efficiency considerations
288
- - Cross-pillar interactions and trade-offs
289
-
290
- 2. **Store important learnings** using `ff-learning-store` MCP tool:
291
- - Use category `pattern` for architectural patterns and best practices
292
- - Use category `decision` for significant architectural trade-offs
293
- - Tag with pillar names, architecture categories, and patterns
294
-
295
- 3. **Example MCP tool call:**
296
- ```
297
- ff-learning-store(
298
- title: "Architecture Pattern: [Pattern Name]",
299
- description: "Pattern for achieving [pillar] excellence in [context]",
300
- category: "pattern",
301
- tags: ["architecture", "{pillar}", "pattern", "{category}"],
302
- importance: 0.8
303
- )
304
- ```
279
+ ## Knowledge Management
280
+
281
+ **Always be learning:**
282
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
283
+ - Search `docs/learnings/` before debugging complex issues.
284
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -73,7 +73,6 @@ At the start of EVERY planning task:
73
73
  5. **Load the ff-delegation skill** and assess parallelization opportunities
74
74
  6. **Load the ff-mini-plan skill** and assess task complexity
75
75
  7. **Load the ff-todo-management skill** and create a todo list for the planning process
76
- 8. **Load the ff-learning skill** to capture planning insights and patterns
77
76
  9. **Load the ff-report-templates skill** for standardized output formatting
78
77
  10. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/planning-{UUID}.md`
79
78
 
@@ -358,30 +357,9 @@ Recommend escalation to full architectural planning when:
358
357
  - **Include validation** - Specify how to verify the implementation
359
358
  - **Escalate appropriately** - Don't try to fit complex work into simple plans
360
359
 
361
- ## Capture Learnings
362
-
363
- Before completing your planning task:
364
-
365
- 1. **Reflect on insights gained** during planning:
366
- - Architecture decisions made and their rationale
367
- - Risk factors identified and mitigation strategies
368
- - Pattern discoveries from codebase exploration
369
- - Estimation accuracy and lessons learned
370
-
371
- 2. **Store important learnings** using the `ff-learning-store` MCP tool:
372
- - Use category `pattern` for architectural patterns discovered
373
- - Use category `decision` for significant planning decisions
374
- - Tag with relevant keywords (architecture, patterns, risks, decisions)
375
-
376
- 3. **Example learning capture:**
377
-
378
- ```
379
- ff-learning-store(
380
- title: "Architecture Decision: [Decision Name]",
381
- description: "Rationale for choosing [approach] over [alternatives]",
382
- category: "decision",
383
- tags: ["architecture", "decision", "{technology}"],
384
- importance: 0.8,
385
- content: "Detailed explanation of the decision..."
386
- )
387
- ```
360
+ ## Knowledge Management
361
+
362
+ **Always be learning:**
363
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
364
+ - Search `docs/learnings/` before debugging complex issues.
365
+ - Load the `ff-learning` skill for details on how to write good learning docs.
@@ -71,7 +71,6 @@ At the start of EVERY review task:
71
71
  3. **Read relevant contexts** - Use `ff-agents-show()` to read contexts from @building, @ff-security, etc.
72
72
  4. **Generate your UUID** - Create unique ID: `xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`
73
73
  5. **Load the ff-todo-management skill** and create a todo list for tracking review progress
74
- 6. **Load the ff-learning skill** to capture review patterns and insights
75
74
  7. **Load the ff-report-templates skill** for standardized output formatting
76
75
  8. **Load the ff-severity-classification skill** to classify findings consistently
77
76
  9. **Document your context** - Use `ff-agents-update` tool to create `.feature-factory/agents/reviewing-{UUID}.md`
@@ -482,30 +481,9 @@ Typical workflow:
482
481
 
483
482
  This creates a tight feedback loop for high-quality output.
484
483
 
485
- ## Capture Learnings
486
-
487
- Before completing your review task:
488
-
489
- 1. **Reflect on insights gained** during validation:
490
- - Common issues and patterns identified across reviews
491
- - Quality patterns observed in good implementations
492
- - Review effectiveness and process improvements
493
- - Tool and technique discoveries
494
-
495
- 2. **Store important learnings** using the `ff-learning-store` MCP tool:
496
- - Use category `pattern` for common issue patterns and solutions
497
- - Use category `decision` for significant review findings
498
- - Tag with review type, categories, and technologies reviewed
499
-
500
- 3. **Example learning capture:**
501
-
502
- ```
503
- ff-learning-store(
504
- title: "Review Pattern: [Common Issue Type]",
505
- description: "Common pattern of [issue] found in [context]",
506
- category: "pattern",
507
- tags: ["review", "pattern", "{issue-type}", "{technology}"],
508
- importance: 0.7,
509
- content: "Detailed explanation of the pattern and solution..."
510
- )
511
- ```
484
+ ## Knowledge Management
485
+
486
+ **Always be learning:**
487
+ - Use `docs/learnings/` to store findings, decisions, and patterns.
488
+ - Search `docs/learnings/` before debugging complex issues.
489
+ - Load the `ff-learning` skill for details on how to write good learning docs.
package/bin/ff-deploy.js CHANGED
@@ -29,17 +29,6 @@ const isInteractive = process.stdin.isTTY && process.stdout.isTTY;
29
29
 
30
30
  // Default MCP configuration
31
31
  const DEFAULT_MCP_SERVERS = {
32
- 'ff-local-recall': {
33
- type: 'local',
34
- command: [
35
- 'npx',
36
- '-y',
37
- '--package=@syntesseraai/opencode-feature-factory@latest',
38
- '--',
39
- 'ff-local-recall-mcp',
40
- ],
41
- enabled: true,
42
- },
43
32
  'jina-ai': {
44
33
  type: 'remote',
45
34
  url: 'https://mcp.jina.ai/v1',
@@ -3,7 +3,7 @@ type BunShell = any;
3
3
  /**
4
4
  * Initialize the Feature Factory directory structure.
5
5
  * Creates .feature-factory/ and .feature-factory/agents/ directories.
6
- * Migrates legacy CI scripts (management/ci.sh and .feature-factory/ci.sh) to ff-ci.sh if they exist.
6
+ * Migrates legacy CI scripts (ff-ci.sh and .feature-factory/ci.sh) to ff-ci.sh if they exist.
7
7
  */
8
8
  export declare function initializeFeatureFactory(input: PluginInput, $: BunShell): Promise<void>;
9
9
  export {};
@@ -50,7 +50,7 @@ function isValidDirectory(directory) {
50
50
  /**
51
51
  * Initialize the Feature Factory directory structure.
52
52
  * Creates .feature-factory/ and .feature-factory/agents/ directories.
53
- * Migrates legacy CI scripts (management/ci.sh and .feature-factory/ci.sh) to ff-ci.sh if they exist.
53
+ * Migrates legacy CI scripts (ff-ci.sh and .feature-factory/ci.sh) to ff-ci.sh if they exist.
54
54
  */
55
55
  export async function initializeFeatureFactory(input, $) {
56
56
  const { directory, client } = input;
@@ -84,8 +84,8 @@ export async function initializeFeatureFactory(input, $) {
84
84
  // Continue even if directory creation fails - it might already exist
85
85
  }
86
86
  // Check for CI script migration (with timeout protection)
87
- // Check both legacy locations: management/ci.sh and .feature-factory/ci.sh
88
- const legacyCiPaths = [`${directory}/management/ci.sh`, `${featureFactoryDir}/ci.sh`];
87
+ // Check both legacy locations: ff-ci.sh and .feature-factory/ci.sh
88
+ const legacyCiPaths = [`${directory}/ff-ci.sh`, `${featureFactoryDir}/ci.sh`];
89
89
  const newCiPath = `${directory}/ff-ci.sh`;
90
90
  try {
91
91
  // Check if new location already exists (with timeout)
package/dist/index.js CHANGED
@@ -5,8 +5,6 @@ import { $ } from 'bun';
5
5
  import { createFFAgentsCurrentTool } from './plugins/ff-agents-current-plugin.js';
6
6
  import { createFFAgentsShowTool } from './plugins/ff-agents-show-plugin.js';
7
7
  import { createFFAgentsClearTool } from './plugins/ff-agents-clear-plugin.js';
8
- import { createLearningStoreTool, createLearningSearchTool, createLearningGetTool, createLearningIndexStartTool, createLearningIndexStatusTool, createLearningIndexStopTool, createLearningIndexRebuildTool, initLocalRecall, } from './local-recall/index.js';
9
- import { createLocalRecallPromptHooks } from './local-recall/prompt-injection.js';
10
8
  import { createFFPlanCreateTool } from './plugins/ff-plan-create-plugin.js';
11
9
  import { createFFPlanUpdateTool } from './plugins/ff-plan-update-plugin.js';
12
10
  import { createFFAgentContextCreateTool } from './plugins/ff-agent-context-create-plugin.js';
@@ -37,35 +35,23 @@ export const FeatureFactoryPlugin = async (input) => {
37
35
  if (!directory || directory === '' || directory === '/') {
38
36
  return {};
39
37
  }
40
- // Initialize local-recall memory system
41
- initLocalRecall(directory);
42
38
  // Update MCP server configuration in global OpenCode config
43
39
  // This ensures Feature Factory MCP servers are available across projects
44
40
  try {
45
41
  await updateMCPConfig($);
46
42
  }
47
- catch (error) {
48
- // Silently fail - don't block plugin initialization if MCP config update fails
49
- // This is a convenience feature, not critical for plugin functionality
43
+ catch {
44
+ // Just log or ignore errors during config update to not break plugin load
45
+ console.error('Failed to update MCP config in OpenCode plugin');
50
46
  }
51
47
  // Load hooks from the quality gate plugin
52
48
  const qualityGateHooks = await StopQualityGateHooksPlugin(input).catch(() => ({}));
53
- // Load local-recall prompt injection hooks (headless-safe)
54
- const localRecallPromptHooks = createLocalRecallPromptHooks(directory);
55
49
  // Create all tools
56
50
  const tools = {
57
51
  // Agent management tools
58
52
  'ff-agents-current': createFFAgentsCurrentTool(),
59
53
  'ff-agents-show': createFFAgentsShowTool(),
60
54
  'ff-agents-clear': createFFAgentsClearTool(),
61
- // Learning/memory tools (local-recall)
62
- 'ff-learning-store': createLearningStoreTool(),
63
- 'ff-learning-search': createLearningSearchTool(),
64
- 'ff-learning-get': createLearningGetTool(),
65
- 'ff-learning-index-start': createLearningIndexStartTool(),
66
- 'ff-learning-index-status': createLearningIndexStatusTool(),
67
- 'ff-learning-index-stop': createLearningIndexStopTool(),
68
- 'ff-learning-index-rebuild': createLearningIndexRebuildTool(),
69
55
  // Plan tools
70
56
  'ff-plan-create': createFFPlanCreateTool(),
71
57
  'ff-plan-update': createFFPlanUpdateTool(),
@@ -92,7 +78,6 @@ export const FeatureFactoryPlugin = async (input) => {
92
78
  // Return combined hooks and tools
93
79
  return {
94
80
  ...qualityGateHooks,
95
- ...localRecallPromptHooks,
96
81
  tool: tools,
97
82
  };
98
83
  };
@@ -4,11 +4,6 @@ type BunShell = any;
4
4
  * These servers will be merged into the global OpenCode config.
5
5
  */
6
6
  export declare const DEFAULT_MCP_SERVERS: {
7
- readonly 'ff-local-recall': {
8
- readonly type: "local";
9
- readonly command: "ff-local-recall-mcp";
10
- readonly enabled: true;
11
- };
12
7
  readonly 'jina-ai': {
13
8
  readonly type: "remote";
14
9
  readonly url: "https://mcp.jina.ai/v1";
@@ -8,11 +8,6 @@ const GLOBAL_OPENCODE_CONFIG_PATH = join(GLOBAL_OPENCODE_DIR, 'opencode.json');
8
8
  * These servers will be merged into the global OpenCode config.
9
9
  */
10
10
  export const DEFAULT_MCP_SERVERS = {
11
- 'ff-local-recall': {
12
- type: 'local',
13
- command: 'ff-local-recall-mcp',
14
- enabled: true,
15
- },
16
11
  'jina-ai': {
17
12
  type: 'remote',
18
13
  url: 'https://mcp.jina.ai/v1',
package/package.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@syntesseraai/opencode-feature-factory",
4
- "version": "0.3.6",
4
+ "version": "0.4.1",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin for Feature Factory agents - provides sub-agents and skills for validation, review, security, and architecture assessment",
7
7
  "license": "MIT",
8
8
  "main": "./dist/index.js",
9
9
  "types": "./dist/index.d.ts",
10
10
  "bin": {
11
- "ff-deploy": "./bin/ff-deploy.js",
12
- "ff-local-recall-mcp": "./bin/ff-local-recall-mcp.js"
11
+ "ff-deploy": "./bin/ff-deploy.js"
13
12
  },
14
13
  "files": [
15
14
  "dist",
@@ -35,9 +34,7 @@
35
34
  "dependencies": {
36
35
  "@modelcontextprotocol/sdk": "^1.0.0",
37
36
  "@opencode-ai/plugin": "^1.1.48",
38
- "@orama/orama": "^3.0.0",
39
- "glob": "^10.0.0",
40
- "uuid": "^9.0.0"
37
+ "glob": "^10.0.0"
41
38
  },
42
39
  "devDependencies": {
43
40
  "@types/bun": "^1.2.6",
@@ -465,12 +465,6 @@ Clean up agent context files.
465
465
  - Add "Clean up context" as final todo item
466
466
  - Track progress in both todo list AND context file
467
467
 
468
- ### With ff-learning
469
-
470
- - Store important findings from other agents' contexts
471
- - Create memories about coordination patterns
472
- - Learn from how other agents approached similar tasks
473
-
474
468
  ## Best Practices Summary
475
469
 
476
470
  ### DO:
@@ -513,7 +507,9 @@ ff-agents-show(id: "planning-uuid") → Read implementation plan
513
507
  ff-agents-update:
514
508
  fileName: "building-{my-uuid}.md"
515
509
  content: |
510
+
516
511
  ---
512
+
517
513
  id: "{my-uuid}"
518
514
  agent: "building"
519
515
  title: "Implement OAuth"
@@ -522,6 +518,7 @@ status: "in-progress"
522
518
  started: "2026-02-02T14:30:00Z"
523
519
  parent: null
524
520
  delegated_to: []
521
+
525
522
  ---
526
523
 
527
524
  ## Context
@@ -1,339 +1,68 @@
1
- ---
2
- name: ff-learning
3
- description: Enables agents to capture, store, and retrieve learnings from their work. Uses Local-Recall MCP-backed memory system with automatic extraction from OpenCode sessions.
4
- license: MIT
5
- compatibility: opencode
6
- metadata:
7
- audience: agents
8
- category: knowledge-management
9
- ---
1
+ # Feature Factory Learning Protocol
10
2
 
11
- # Learning Skill (Local-Recall)
3
+ This skill enables agents to continuously document and retrieve knowledge across the lifecycle of a task. It replaces the legacy "local-recall" MCP daemon with a lightweight, transparent Markdown-based system that lives directly in the repository's `docs/learnings/` folder.
12
4
 
13
- Use this skill to capture insights, store knowledge, and retrieve past learnings to improve future work. Memories are stored as JSON in `ff-memories/memories/` and automatically extracted from OpenCode session history.
5
+ ## Core Philosophy
14
6
 
15
- ## How It Works
7
+ 1. **Continuous Documentation:** Write down important facts, solutions, architectural decisions, and troubleshooting steps as soon as you verify them.
8
+ 2. **Transparent Storage:** Learnings are stored as plain Markdown files in `docs/learnings/` so they are reviewable, searchable, and committable.
9
+ 3. **Proactive Retrieval:** Before starting complex tasks or debugging, search the `docs/` and `docs/learnings/` directories to leverage past experience.
16
10
 
17
- The Local-Recall memory system has two paths for creating memories:
11
+ ## How to Use This Skill
18
12
 
19
- 1. **Automatic extraction** A background daemon reads OpenCode session history (`~/.local/share/opencode/storage/`) and extracts insights from assistant messages and thinking blocks.
20
- 2. **Explicit storage** – Agents can store learnings directly using the `ff-learning-store` tool.
13
+ ### 1. Documenting New Knowledge (Writing)
21
14
 
22
- Both paths write to the same JSON-based memory store, ensuring a unified search experience.
15
+ Whenever you discover a non-obvious solution, establish a new convention, or resolve a complex bug, create a learning document.
23
16
 
24
- ## When to Use
17
+ **Tool to use:** `write` tool to `docs/learnings/{topic-slug}.md`
25
18
 
26
- ### Required (ALWAYS use when):
19
+ **Naming Convention:**
20
+ Use descriptive, kebab-case filenames: `docs/learnings/auth-token-refresh-flow.md`, `docs/learnings/docker-build-caching.md`.
27
21
 
28
- - **Completing any significant task** – Store what was learned
29
- - **Resolving errors or issues** – Document the solution for future reference
30
- - **Discovering new patterns** – Capture reusable approaches
31
- - **Making architectural decisions** – Record rationale and context
32
- - **Researching technologies** – Save key findings and sources
33
-
34
- ### Optional (use when helpful):
35
-
36
- - **Quick fixes** – Simple one-line changes may not need learning capture
37
- - **Routine tasks** – Well-understood repetitive work
38
- - **Draft work** – Temporary explorations that won't be retained
39
-
40
- ## Memory Categories
41
-
42
- Memories are organized by category:
43
-
44
- ### 1. Pattern
45
-
46
- **What:** Reusable code patterns, architectural patterns, and best practices
47
- **When to use:** When a repeatable technique or approach is discovered
48
- **Example:** "React Server Components require 'use client' directive for client-side interactivity"
49
-
50
- ### 2. Decision
51
-
52
- **What:** Architectural decisions, technology choices, and their rationale
53
- **When to use:** When a significant decision is made during planning or implementation
54
- **Example:** "Chose NextAuth.js over Auth0 for OAuth - simpler integration, lower cost for our scale"
55
-
56
- ### 3. Debugging
57
-
58
- **What:** Error resolutions, debugging steps, and troubleshooting knowledge
59
- **When to use:** After resolving a non-trivial bug or error
60
- **Example:** "CSRF token mismatch in OAuth - resolved by adding explicit state parameter"
61
-
62
- ### 4. Preference
63
-
64
- **What:** Team conventions, style preferences, and configuration choices
65
- **When to use:** When establishing or discovering project conventions
66
- **Example:** "Team prefers barrel exports for module directories"
67
-
68
- ### 5. Context
69
-
70
- **What:** Domain knowledge, project context, and environmental information
71
- **When to use:** When important contextual information is gathered during research
72
- **Example:** "Production DB uses read replicas - write queries must target primary"
73
-
74
- ### 6. Procedure
75
-
76
- **What:** Step-by-step procedures, workflows, and how-to guides
77
- **When to use:** When documenting a process that should be repeatable
78
- **Example:** "How to set up authentication with NextAuth.js in a Next.js application"
79
-
80
- ## Tools
81
-
82
- The ff-learning skill provides three tools for interacting with the memory system.
83
-
84
- ### Tool 1: Store Learning (ff-learning-store)
85
-
86
- **Purpose:** Create a new memory explicitly
87
-
88
- **When to use:**
89
-
90
- - At end of task completion
91
- - When insight or pattern is discovered
92
- - After error resolution
93
- - When research findings are significant
94
-
95
- **Input parameters:**
96
-
97
- - `title` (string, required): Brief title for the learning
98
- - `description` (string, required): Detailed description of the learning
99
- - `category` (enum, required): One of `pattern`, `decision`, `debugging`, `preference`, `context`, or `procedure`
100
- - `tags` (array of strings, required): Relevant keywords for search
101
- - `importance` (float, required): 0.0 to 1.0 (0.8+ for critical learnings)
102
- - `content` (string, optional): Additional body content
103
- - `source` (enum, optional): Origin – conversation, research, implementation, review
104
- - `relatedMemories` (array, optional): IDs of related memories
105
-
106
- **Example:**
107
-
108
- ```markdown
109
- Store a learning using ff-learning-store:
110
-
111
- - title: "OAuth Implementation Pattern"
112
- - description: "Successfully implemented OAuth with NextAuth.js, resolved CSRF issues"
113
- - category: "pattern"
114
- - tags: ["oauth", "nextauth", "authentication"]
115
- - importance: 0.8
116
- - content: "Used state parameter to prevent CSRF. JWT strategy for session persistence."
117
- ```
118
-
119
- ### Tool 2: Search Learnings (ff-learning-search)
120
-
121
- **Purpose:** Find relevant memories by keywords and filters
122
-
123
- **When to use:**
124
-
125
- - At start of new task (find related past work)
126
- - When facing similar problem to previous one
127
- - For context gathering before planning
128
- - To avoid repeating mistakes
129
-
130
- **Input parameters:**
131
-
132
- - `query` (string, required): Search terms to match against title, body, and tags
133
- - `tags` (array, optional): Filter to memories containing ALL specified tags
134
- - `category` (enum, optional): Filter by category (`pattern`, `decision`, `debugging`, `preference`, `context`, `procedure`)
135
- - `limit` (number, optional): Max results, 1-50 (default: 10)
136
- - `minImportance` (float, optional): Minimum importance threshold
137
-
138
- **Example:**
22
+ **Template:**
139
23
 
140
24
  ```markdown
141
- Search learnings:
142
-
143
- - query: "OAuth authentication"
144
- - tags: ["security"]
145
- - limit: 5
146
- ```
147
-
148
- **Returns:** Array of matching memories sorted by relevance × importance, with id, title, category, tags, importance, and relevance score.
149
-
150
- ### Tool 3: Get Learning (ff-learning-get)
151
-
152
- **Purpose:** Retrieve the full content of a specific memory
153
-
154
- **When to use:**
155
-
156
- - After search to read full details
157
- - When referenced by ID in another memory
158
- - For deep dive into specific learning
159
-
160
- **Input parameters:**
25
+ # [Topic Title]
161
26
 
162
- - `memoryId` (string, required): UUID of the memory to retrieve
27
+ **Date:** [Current Date]
28
+ **Tags:** [comma, separated, tags]
163
29
 
164
- **Returns:** Complete memory object with all fields (id, sessionID, messageID, category, title, body, tags, importance, createdAt, extractedBy).
30
+ ## Context / Problem
165
31
 
166
- ## File Organization
32
+ [Briefly describe what you were trying to do or the problem you encountered.]
167
33
 
168
- ### Directory Structure
34
+ ## Solution / Discovery
169
35
 
170
- ```
171
- ff-memories/
172
- ├── memories/ # All memory JSON files
173
- │ ├── {uuid}.json # Individual memory files
174
- │ └── ...
175
- └── processed.json # Tracks which messages have been processed
176
- ```
177
-
178
- ### Memory JSON Schema
36
+ [Detail the exact solution, configuration, or architectural decision made.]
179
37
 
180
- Each memory is a JSON file with these fields:
38
+ ## Why this matters
181
39
 
182
- ```json
183
- {
184
- "id": "uuid-v4",
185
- "sessionID": "ses_xxx",
186
- "messageID": "msg_xxx",
187
- "category": "pattern|decision|debugging|preference|context|procedure",
188
- "title": "Brief descriptive title",
189
- "body": "Detailed learning content",
190
- "tags": ["keyword1", "keyword2"],
191
- "importance": 0.8,
192
- "createdAt": 1707900000000,
193
- "extractedBy": "session|thinking|explicit"
194
- }
40
+ [Explain why this approach was chosen or why the bug occurred.]
195
41
  ```
196
42
 
197
- ## Usage by Agent Type
198
-
199
- ### Planning Agent
200
-
201
- **When to capture:** After planning sessions, architectural decisions, risk identification
202
- **What to capture:** Architecture decisions (decision), risk factors (context), pattern discoveries (pattern)
203
-
204
- ### Building Agent
205
-
206
- **When to capture:** After implementing features, overcoming challenges, resolving errors
207
- **What to capture:** Code patterns (pattern), error resolutions (debugging), integration insights (context)
208
-
209
- ### Reviewing Agent
210
-
211
- **When to capture:** After completing reviews, identifying common issues
212
- **What to capture:** Common issue patterns (pattern), quality insights (context)
213
-
214
- ### Research Agent
215
-
216
- **When to capture:** After research, significant findings, technology evaluations
217
- **What to capture:** Key findings (pattern), technology comparisons (decision), best practices (procedure)
218
-
219
- ### Security Agent
220
-
221
- **When to capture:** After audits, vulnerability findings
222
- **What to capture:** Vulnerability patterns (debugging), security best practices (procedure)
223
-
224
- ## Integration with Other Skills
225
-
226
- ### With ff-delegation
227
-
228
- - Store learnings from delegated agents
229
- - Capture insights from parallel work
230
- - Link related memories across agent boundaries
231
-
232
- ### With ff-todo-management
233
-
234
- - Add "Capture learnings" as final todo item
235
- - Track learning capture in todo list
236
-
237
- ### With ff-mini-plan
238
-
239
- - Search past learnings during planning
240
- - Use previous patterns to inform new plans
241
-
242
- ## Best Practices
243
-
244
- ### Do:
43
+ ### 2. Retrieving Past Knowledge (Reading)
245
44
 
246
- - **Be specific** Concrete details are more useful than generalities
247
- - **Use consistent tags** – Establish tag conventions for your project
248
- - **Set appropriate importance** – Reserve 0.8-1.0 for truly critical learnings
249
- - **Write searchable titles** – Use keywords that future you will search for
250
- - **Capture failures too** – What didn't work is as valuable as what did
251
- - **Search before storing** – Avoid duplicate memories
252
- - **Review periodically** – Search old learnings before starting new tasks
45
+ Before diving into debugging or implementing features, scan the `docs/` and `docs/learnings/` directories for relevant context.
253
46
 
254
- ### Don't:
47
+ **Tools to use:**
255
48
 
256
- - **Store everything** Not every small change needs a memory
257
- - **Use vague titles** "Fixed bug" is not helpful; "Fixed race condition in auth middleware" is
258
- - **Store secrets** Never put credentials or sensitive data in memories
259
- - **Be too brief** – One-line descriptions lack context
260
- - **Forget tags** – Untagged memories are hard to find
49
+ - `glob` tool with pattern `docs/learnings/*.md` to see all stored learnings.
50
+ - `grep` tool to search inside `docs/` and `docs/learnings/` for specific keywords (e.g., error messages, library names).
51
+ - `read` tool to pull the full context of relevant markdown files.
261
52
 
262
- ## Additional Tools for Read-Only Agents
53
+ ### 3. Updating Existing Knowledge (Refining)
263
54
 
264
- Since @planning and @reviewing agents are read-only (cannot write/edit files), the following tools are provided for essential file operations:
55
+ If you find an existing learning document that is outdated or incomplete based on new work, use the `edit` tool to update it. Knowledge should evolve with the codebase.
265
56
 
266
- ### Tool 4: Create Plan (ff-plan-create)
267
-
268
- **Purpose:** Create a new implementation plan file in `.feature-factory/plans/`
269
-
270
- **Input parameters:**
271
-
272
- - `title` (string, required): Title of the plan
273
- - `description` (string, required): What the plan covers
274
- - `content` (string, required): Full markdown content
275
- - `planType` (enum, required): implementation, architecture, migration, or research
276
- - `relatedIssues` (array, optional): Related issue IDs
277
- - `estimatedEffort` (string, optional): Time estimate
278
-
279
- ### Tool 5: Create Agent Context (ff-agent-context-create)
280
-
281
- **Purpose:** Create a new agent context file in `.feature-factory/agents/`
282
-
283
- **Input parameters:**
284
-
285
- - `id` (string, required): UUID for this agent instance
286
- - `agent` (string, required): Agent type (planning, building, etc.)
287
- - `title` (string, required): Task title
288
- - `description` (string, required): Task description
289
- - `status` (enum, optional): in-progress, completed, delegated, failed
290
- - `parent` (string, optional): Parent agent UUID
291
- - `delegatedTo` (array, optional): Child agent UUIDs
292
- - `notes` (string, optional): Additional notes
293
-
294
- ### Tool 6: Update Agent Context (ff-agent-context-update)
295
-
296
- **Purpose:** Update an existing agent context file
297
-
298
- **Input parameters:**
299
-
300
- - `agentId` (string, required): Agent UUID to update
301
- - `agent` (string, required): Agent type
302
- - `status` (enum, optional): New status
303
- - `addDelegatedTo` (string, optional): Add child agent UUID
304
- - `notes` (string, optional): Notes to append
305
- - `progressUpdate` (string, optional): Progress line to add
306
-
307
- ## Quick Reference
308
-
309
- ### Creating a Memory
310
-
311
- ```markdown
312
- Store a learning:
313
-
314
- - title: "Descriptive searchable title"
315
- - description: "Detailed explanation of what was learned"
316
- - category: "pattern"
317
- - tags: ["relevant", "keywords"]
318
- - importance: 0.8
319
- ```
320
-
321
- ### Searching Memories
322
-
323
- ```markdown
324
- Search learnings:
325
-
326
- - query: "authentication"
327
- - tags: ["oauth", "security"]
328
- - limit: 5
329
- ```
57
+ ## When to Document a Learning
330
58
 
331
- ### Memory Checklist
59
+ - **Architectural Decisions:** Why a specific library, pattern, or approach was chosen over alternatives.
60
+ - **Environment Quirks:** Specific workarounds needed for local dev, testing, or deployment.
61
+ - **Complex Debugging:** A root cause analysis of a tricky bug and how it was fixed.
62
+ - **Undocumented Behaviors:** Workarounds for third-party API quirks or internal system edge cases.
332
63
 
333
- Before storing a memory, verify:
64
+ ## Checklist for Agents
334
65
 
335
- - [ ] Title is descriptive and searchable
336
- - [ ] Description explains what was learned
337
- - [ ] Tags are relevant and consistent
338
- - [ ] Importance is appropriate (0.0-1.0)
339
- - [ ] No sensitive data included
66
+ - [ ] Have I encountered a novel problem or established a new pattern? -> **Document it.**
67
+ - [ ] Am I stuck on an error or unclear on a convention? -> **Search `docs/learnings/`.**
68
+ - [ ] Is an existing learning document inaccurate? -> **Update it.**
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { runLocalRecallMCPServer } from '../dist/local-recall/mcp-stdio-server.js';
4
-
5
- runLocalRecallMCPServer().catch((error) => {
6
- const message = error instanceof Error ? error.message : String(error);
7
- console.error(`Failed to start ff-local-recall MCP server: ${message}`);
8
- process.exit(1);
9
- });