@vheins/local-memory-mcp 0.10.11 → 0.11.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.
@@ -81,8 +81,8 @@ function loadServerInstructions() {
81
81
  // src/mcp/capabilities.ts
82
82
  var __dirname2 = path2.dirname(fileURLToPath2(import.meta.url));
83
83
  var pkgVersion = "0.1.0";
84
- if ("0.10.11") {
85
- pkgVersion = "0.10.11";
84
+ if ("0.11.0") {
85
+ pkgVersion = "0.11.0";
86
86
  } else {
87
87
  let searchDir = __dirname2;
88
88
  for (let i = 0; i < 5; i++) {
@@ -3569,7 +3569,11 @@ var TOOL_DEFINITIONS = [
3569
3569
  task_code: { type: "string" },
3570
3570
  phase: { type: "string" },
3571
3571
  title: { type: "string", minLength: 3, maxLength: 100 },
3572
- description: { type: "string", minLength: 1 },
3572
+ description: {
3573
+ type: "string",
3574
+ minLength: 1,
3575
+ description: "Detailed description. MUST follow format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification"
3576
+ },
3573
3577
  status: { type: "string", enum: ["backlog", "pending"], default: "backlog" },
3574
3578
  priority: {
3575
3579
  type: "number",
@@ -4096,7 +4100,10 @@ var TOOL_DEFINITIONS = [
4096
4100
  maxLength: 100,
4097
4101
  description: "Task objective (Required for single task)"
4098
4102
  },
4099
- description: { type: "string", description: "Detailed description (Required for single task)" },
4103
+ description: {
4104
+ type: "string",
4105
+ description: "Detailed description. MUST follow format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification"
4106
+ },
4100
4107
  status: {
4101
4108
  type: "string",
4102
4109
  enum: ["backlog", "pending"],
@@ -4126,7 +4133,10 @@ var TOOL_DEFINITIONS = [
4126
4133
  task_code: { type: "string" },
4127
4134
  phase: { type: "string" },
4128
4135
  title: { type: "string", minLength: 3, maxLength: 100 },
4129
- description: { type: "string" },
4136
+ description: {
4137
+ type: "string",
4138
+ description: "Detailed description. MUST follow format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification"
4139
+ },
4130
4140
  status: { type: "string", enum: ["backlog", "pending"], default: "backlog" },
4131
4141
  priority: {
4132
4142
  type: "number",
@@ -4187,7 +4197,10 @@ var TOOL_DEFINITIONS = [
4187
4197
  task_code: { type: "string" },
4188
4198
  phase: { type: "string" },
4189
4199
  title: { type: "string", minLength: 3, maxLength: 100 },
4190
- description: { type: "string" },
4200
+ description: {
4201
+ type: "string",
4202
+ description: "Detailed description. MUST follow format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification"
4203
+ },
4191
4204
  status: {
4192
4205
  type: "string",
4193
4206
  enum: ["backlog", "pending", "in_progress", "completed", "canceled", "blocked"],
@@ -10,7 +10,7 @@ import {
10
10
  createFileSink,
11
11
  listResources,
12
12
  logger
13
- } from "../chunk-5ODTDJZP.js";
13
+ } from "../chunk-VXPBWGPZ.js";
14
14
 
15
15
  // src/dashboard/server.ts
16
16
  import express from "express";
@@ -57,7 +57,7 @@ import {
57
57
  toContextSlug,
58
58
  updateSessionFromInitialize,
59
59
  updateSessionRoots
60
- } from "../chunk-5ODTDJZP.js";
60
+ } from "../chunk-VXPBWGPZ.js";
61
61
 
62
62
  // src/mcp/server.ts
63
63
  import readline from "readline";
@@ -1125,7 +1125,7 @@ function buildMissingTaskSchema(task) {
1125
1125
  });
1126
1126
  addRequiredStringField(properties, required, task, "description", {
1127
1127
  title: "Description",
1128
- description: "Detailed description of the task.",
1128
+ description: "Detailed description. MUST follow format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification",
1129
1129
  minLength: 1
1130
1130
  });
1131
1131
  if (!task.status) {
@@ -43,8 +43,8 @@ ONLY call MCP tools. No prose, no code, no plans outside MCP.
43
43
  - **Trigger**: Instruction/finding.
44
44
  - **Observation**: Technical reasoning.
45
45
  - **Goal**: Clear objective.
46
- ### 2. Target Files & Implementation
47
- - Combined scope/steps per path/layer.
46
+ ### 2. Step & Implementation
47
+ - Detailed execution steps per path/layer.
48
48
  ### 3. Acceptance & Verification
49
49
  - **Checklist**: `[ ]` criteria.
50
50
  - **Testing**: Scenarios.
@@ -40,8 +40,8 @@ ONLY call MCP tools. No prose, code, or external plans.
40
40
  - **Finding**: Gap trigger.
41
41
  - **Observation**: Reasoning.
42
42
  - **Goal**: Clear objective.
43
- ### 2. Target Files & Implementation
44
- - Combined scope/steps per path/layer.
43
+ ### 2. Step & Implementation
44
+ - Detailed execution steps per path/layer.
45
45
  ### 3. Acceptance & Verification
46
46
  - **Checklist**: `[ ]` criteria.
47
47
  - **Testing**: Scenarios.
@@ -42,7 +42,7 @@ No prose. No external plans.
42
42
  - **Finding**: Gap trigger.
43
43
  - **Observation**: Reasoning.
44
44
  - **Goal**: Clear objective.
45
- ### 2. Target Files & Implementation
45
+ ### 2. Step & Implementation
46
46
  - Path/layer specific changes.
47
47
  ### 3. Acceptance & Verification
48
48
  - **Checklist**: `[ ]` criteria.
@@ -20,6 +20,6 @@ Steps:
20
20
  5. **Phase**: Group into `research`, `implementation`, and `validation`.
21
21
  6. **Hierarchy**: Use `parent_id` / `depends_on` for sequencing.
22
22
  7. **Priority Scale**: When creating tasks, use the exact MCP scale `1=Low`, `2=Normal`, `3=Medium`, `4=High`, `5=Critical`. Higher number means higher urgency.
23
- 8. **Create**: Use `task-create` in current repo with stable `task_code`, tags, and acceptance criteria.
23
+ 8. **Create**: Use `task-create` in current repo with stable `task_code`, tags, and acceptance criteria following the format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification.
24
24
 
25
25
  Display final plan to user.
@@ -35,7 +35,7 @@ agent: Task Executor
35
35
  ## 2. EXECUTION LOOP
36
36
  1. **Parallelism & Sub-Agents**:
37
37
  - **MANDATORY**: Tasks MUST be delegated to sub-agents if the current agent has sub-agent capabilities.
38
- - **Decomposition**: If a task is too broad, the agent is allowed to decompose it into multiple tasks (via `task-create`) and delegate them to sub-agents.
38
+ - **Decomposition**: If a task is too broad, the agent is allowed to decompose it into multiple tasks (via `task-create`) and delegate them to sub-agents. All created tasks MUST follow the format: 1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification.
39
39
  - **Spawn Limit**: The total number of parallel sub-agents MUST NOT exceed 2. Each sub-agent executes EXACTLY ONE task at a time.
40
40
  - **Fallback**: If the current agent CANNOT spawn sub-agents, it MUST execute tasks sequentially (exactly ONE concurrent task) until the queue is clear.
41
41
  2. **Hydrate**: Fetch full context via `task-detail` for the assigned task.
@@ -67,6 +67,33 @@ agent: Task Executor
67
67
  This ensures full traceability between code changes and project context.
68
68
  - **GitHub Issue Traceability**: If task metadata contains a GitHub Issue reference, the commit message MUST also include the issue hashtag in `#123` format.
69
69
  - **Issue Number Extraction**: Read the issue number from task metadata when available. If metadata only contains a GitHub Issue URL, extract the trailing issue number from that URL before committing.
70
+
71
+ 10A. **BLOCKER HANDLING (AUTOMATIC TASK CREATION)**:
72
+ - **Trigger**: When task status is updated to `blocked` with a comment explaining the blocker reason.
73
+ - **Blocker Classification**: Analyze the blocker comment to determine if it is **internal solvable** or **external**:
74
+ - **Internal Solvable** (auto-create task): Missing dependency, missing module/function, configuration/env setup, implementation gap, failing test, build error.
75
+ - **External** (skip auto-create): Awaiting user input/approval, API/service unavailability, manual external setup required.
76
+ - **Pattern Matching**: Use regex patterns to detect internal blockers in the comment:
77
+ - Missing patterns: `/(module|package|library|dependency|import)\s+(not\s+found|missing|undefined|not\s+installed)/i`
78
+ - Not implemented: `/(function|interface|class|method|endpoint)\s+not\s+(found|implemented|exists)/i`
79
+ - Configuration: `/(config|configuration|setup|env|environment)\s+(missing|not\s+set|invalid)/i`
80
+ - Test/build failure: `/(test|build|compile|type\s+check)\s+(failed|error)/i`
81
+ - **Auto-Create Task** (if internal solvable):
82
+ - Task Code: `${parent_task_code}-FIX-${unix_timestamp}`
83
+ - Title: `FIX: [${parent_task_title}] - Resolve: ${blocker_reason_extracted}`
84
+ - Description: Follow standard format (1. Context & Analysis, 2. Step & Implementation, 3. Acceptance & Verification)
85
+ - Context: Reference parent task code and explain the blocking factor
86
+ - Steps: Identify root cause and implement fix
87
+ - Verification: Confirm parent task can proceed
88
+ - Parent ID: Set to current blocked task ID
89
+ - Priority: `4` (HIGH)
90
+ - Phase: `blocker-resolution`
91
+ - Tags: `["blocker-fix", "auto-generated"]`
92
+ - Metadata: Include `triggered_by_task`, `blocker_reason`, `creation_timestamp`, and `agent_identity`
93
+ - **Update Parent Task**: Add comment linking to the new blocker-fix task: `"Blocker resolution task created: ${new_task_code}"`
94
+ - **Link Dependencies**: Set parent task's `depends_on` to the new blocker-fix task (parent waits for fix before retry)
95
+ - **Skip Creation** (if external): Log that blocker is external, keep task status as `blocked`, no automatic task created.
96
+
70
97
  11. **Repeat**: Claim next task from `task-list`.
71
98
 
72
99
  ## 3. BACKLOG MAINTENANCE
@@ -75,5 +102,94 @@ If active queue is empty:
75
102
  2. Move up to 20 highest-priority tasks to `pending` via `task-update`.
76
103
  3. Interpret priority using MCP ordering: `5=Critical`, `4=High`, `3=Medium`, `2=Normal`, `1=Low`.
77
104
 
78
- ## 4. REPORT
105
+ ## 4. BLOCKER REFERENCE (Patterns & Detection)
106
+
107
+ ### Internal Solvable Blocker Patterns (Trigger Auto Task Creation)
108
+
109
+ **Missing Dependencies/Modules**:
110
+ - `module not found`, `missing dependency`, `import not installed`, `undefined function`, `no such file`
111
+ - Example: "ImportError: Function 'validateToken' not found"
112
+
113
+ **Not Implemented**:
114
+ - `function/method not implemented`, `interface not exists`, `component undefined`
115
+ - Example: "Function 'processPayment' not implemented - exists in type definitions but no implementation"
116
+
117
+ **Configuration/Setup Issues**:
118
+ - `.env missing`, `configuration not set`, `setup invalid`, `environment variable not found`
119
+ - Example: "DATABASE_URL environment variable not set"
120
+
121
+ **Test/Build Failures** (solvable):
122
+ - `test failed`, `assertion failed`, `type error`, `build error`, `compilation failed`
123
+ - Example: "Type error: Property 'user' does not exist on type 'Request'"
124
+
125
+ **Implementation Gaps**:
126
+ - `endpoint not implemented`, `API route missing`, `middleware not registered`
127
+ - Example: "GET /api/users endpoint returns 404 - not implemented"
128
+
129
+ ### External Blocker Patterns (Skip Auto Task Creation)
130
+
131
+ **Awaiting User/External Action**:
132
+ - `awaiting user`, `requires manual`, `user must`, `external dependency`, `manual setup`
133
+ - Example: "Awaiting user approval for database migration", "Requires manual infrastructure setup"
134
+
135
+ **External Service Issues**:
136
+ - `API not responding`, `service unavailable`, `server not ready`
137
+ - Example: "Payment gateway API not responding - external service unavailable"
138
+
139
+ **Manual Prerequisites**:
140
+ - `install locally`, `run script manually`, `requires external tool`
141
+ - Example: "Requires manual Docker setup - not part of this task"
142
+
143
+ ### Auto Task Creation Example Flow
144
+
145
+ **Parent Task Blocked:**
146
+ ```
147
+ Task Code: FEATURE-42
148
+ Title: Add payment processing middleware
149
+ Status: blocked
150
+ Comment: "Function 'chargeCard' in services/payment.ts not implemented - exists in interface but implementation missing"
151
+ ```
152
+
153
+ **Detection & Classification:**
154
+ ```
155
+ Pattern detected: "Function .* not implemented" → INTERNAL SOLVABLE ✅
156
+ Action: Create blocker-fix task
157
+ ```
158
+
159
+ **Auto-Generated Task:**
160
+ ```
161
+ Task Code: FEATURE-42-FIX-1714737908
162
+ Title: FIX: [Add payment processing middleware] - Resolve: Function 'chargeCard' not implemented
163
+ Parent ID: FEATURE-42
164
+ Priority: 4 (HIGH)
165
+ Phase: blocker-resolution
166
+ Tags: ["blocker-fix", "auto-generated"]
167
+
168
+ Description:
169
+ 1. Context & Analysis:
170
+ Parent task FEATURE-42 blocked due to: Function 'chargeCard' in services/payment.ts not implemented
171
+ The function exists in the interface but has no implementation body
172
+ Blocking factor: services/payment.ts - chargeCard function stub
173
+
174
+ 2. Step & Implementation:
175
+ - Review services/payment.ts chargeCard function signature
176
+ - Implement full payment processing logic (charges, refunds, error handling)
177
+ - Add proper error handling and validation
178
+ - Write unit tests for charge scenarios
179
+
180
+ 3. Acceptance & Verification:
181
+ - chargeCard function fully implemented
182
+ - Unit tests passing
183
+ - Function can be called from FEATURE-42 middleware
184
+ - FEATURE-42 parent task can proceed without blockers
185
+ ```
186
+
187
+ **Execution Workflow:**
188
+ 1. Agent picks blocker-fix task first (independent, no dependencies)
189
+ 2. Implements `chargeCard` function
190
+ 3. Completes blocker-fix task
191
+ 4. Parent task FEATURE-42 becomes ready (fix completed)
192
+ 5. Agent proceeds with FEATURE-42 execution
193
+
194
+ ## 5. REPORT
79
195
  Provide progress summary.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vheins/local-memory-mcp",
3
- "version": "0.10.11",
3
+ "version": "0.11.0",
4
4
  "description": "MCP Local Memory Service for coding copilot agents",
5
5
  "mcpName": "io.github.vheins/local-memory-mcp",
6
6
  "type": "module",