@vheins/local-memory-mcp 0.14.10 → 0.15.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.
@@ -11,21 +11,22 @@ version: "1.5.4"
11
11
  tags: [workflow, task-execution, memory]
12
12
  ---
13
13
 
14
- ## FSM — Main Loop
14
+ ## Main Loop
15
15
 
16
- Entry=S0 → S1 → G0 → S2 → S3 → S4 → S5 → S6 → S7 → S8 Exit=exhausted|blocked
16
+ Entry=S0 → S1 → G0 → S2 → S3 → S4 → S5 → S6 → S7 → S8 → S9 Exit=exhausted|blocked
17
17
  Guard: S(N) req S(N-1)✅; dependency-ready filter (depends_on+parent_id done)
18
18
 
19
19
  S0 | sync: resolve identity (arg→auto `<runner>-<randomName>`, 1x reuse all loop) + task-list(ONCE) + handoff-list(pending, close stale) + audit stale in_progress(>30m, hydrate via task-detail) | — | filtered queue | —
20
20
  S1 | hydrate: task-detail ONCE per task — MUST cache, MUST reuse all steps, NO re-fetch | S0✅ | full task | —
21
21
  G0 | readiness: depends_on✅ AND parent_id✅? if all blocked → report blockers + pause | S1✅ | → S2 / skip+pick next | —
22
22
  S2 | claim: task-claim(with identity metadata) + task-update→in_progress(agent, role, identity) | G0✅ | ownership | —
23
- S3 | research: memory-search + standard-search(MANDATORY per task — even sub-agents/decomposed) + hydrate relevant | S2✅ | context | —
23
+ S3 | research: check task-detail for suggested_skills — load each via skill() tool; then memory-search + standard-search(MANDATORY per task — even sub-agents/decomposed) + hydrate relevant | S2✅ | context | —
24
24
  S4 | execute: trace logic+callsites+docs — DO NOT infer from file presence; decompose if too broad | S3✅ | changes | —
25
25
  S5 | validate: tests + linters + type-check + browser(if UI — MANDATORY: console errors, overflow, responsive, core interactions) + logic audit all paths | S4✅ | verification | —
26
26
  S6 | finalize: task-update→completed(evidence: inspected files, verified logic, test results) + memory-store(insights) + standard-store(rules) + handoff(if work remains — with identity) + retrospective + report | S5✅ | completion | —
27
27
  S7 | commit: `type(scope): msg — {{task_title}} {{summary_task}} {{keyword}} #N` (fix|closes|resolve, extract N from metadata/URL) | S6✅ | git commit | —
28
28
  S8 | repeat → S0 | queue not empty | next task | —
29
+ S9 | verify: confirm commit format compliance, task updated completed, no stale handoffs remain | S8✅ | verified | —
29
30
 
30
31
  ## Design Note
31
32
 
@@ -37,15 +38,16 @@ Main loop is intentionally infinite — runs until MCP task queue is fully exhau
37
38
  - **Max 2** parallel sub-agents; each executes EXACTLY 1 task
38
39
  - Fallback: sequential (1 concurrent) if no sub-agent capability
39
40
 
40
- ## FSM — Blocker Handling
41
+ ## Blocker Handling
41
42
 
42
- Entry=S0 → S1 → G1|G2 → S2 Exit=unblocked|deferred
43
+ Entry=S0 → S1 → G1|G2 → S2 → S3 Exit=unblocked|deferred
43
44
 
44
45
  S0 | detect: task-update→blocked with reason | is blocked? | blocker comment | —
45
46
  S1 | classify: regex-match comment against patterns below | S0✅ | internal solvable | external | —
46
47
  G1 | internal solvable? | S1✅ | → S2 auto-create | —
47
48
  G2 | external? (awaiting user, API down) | S1✅→external | → keep blocked, no auto task | —
48
49
  S2 | create fix task: code=`{parent}-FIX-{unix}`, title=`FIX: [{parent_title}] — Resolve: {reason}`, priority=4(HIGH), phase=blocker-resolution, parent=current_id, depends_on=parent, tags=[blocker-fix,auto-generated], metadata={triggered_by, blocker_reason, timestamp, identity} | G1✅ | blocker fix task | —
50
+ S3 | verify: confirm fix task created, parent task dependency linked | S2✅ | verified | —
49
51
 
50
52
  ### Blocker Regex Patterns
51
53
 
@@ -56,10 +58,11 @@ S2 | create fix task: code=`{parent}-FIX-{unix}`, title=`FIX: [{parent_title}]
56
58
  | Config | `/(config\|configuration\|setup\|env\|environment)\s+(missing\|not\s+set\|invalid)/i` | `DATABASE_URL not set` |
57
59
  | Test fail | `/(test\|build\|compile\|type\s+check)\s+(failed\|error)/i` | `Type error: Property 'user' not on 'Request'` |
58
60
 
59
- ## FSM — Backlog Maintenance
61
+ ## Backlog Maintenance
60
62
 
61
- Entry=S0 → S1 Exit=promoted
63
+ Entry=S0 → S1 → S2 Exit=promoted
62
64
  Guard: active queue empty?
63
65
 
64
66
  S0 | list backlog: task-list(status=backlog) | active queue empty? | backlog tasks | —
65
67
  S1 | promote top 20 by priority(5→1) to pending via task-update | S0✅ | tasks→pending | —
68
+ S2 | verify: confirm promoted task count, check priority ordering correct | S1✅ | verified | —
@@ -11,14 +11,19 @@ version: "1.0.0"
11
11
  tags: [planning, patterns, memory, tech-affinity]
12
12
  ---
13
13
 
14
- ## FSM
14
+ ## Tech Affinity Scout
15
15
 
16
- Entry=S0 → S1 → S2 → S3 Exit=scouted
16
+ Entry=S0 → S1 → S2 → S3 → S4 Exit=scouted
17
17
  Guard: S(N) req S(N-1)✅
18
18
 
19
- S0 | search: memory-search (current_tags=[tags]) + standard-search (stack=[tags]) | tags provided? | pointer rows | —
19
+ S0 | search: memory-search (current_tags=[tags]) + standard-search (stack=[tags]) + web_search (current practices for stack) | tags provided? | pointer rows + web results | —
20
20
  S1 | hydrate: memory-detail for relevant pointers | S0✅ | full entries | —
21
- S2 | filter: pattern + decision + coding standard entries from similar stacks | S1✅ | applicable knowledge | —
22
- S3 | adapt: explain adaptation to current project; separate memory-derived vs standards | S2✅ | adaptation guide | —
21
+ S2 | filter: pattern + decision + coding standard + web_search entries from similar stacks | S1✅ | applicable knowledge | —
22
+ S3 | adapt: explain adaptation to current project; separate memory-derived vs standards vs web_search | S2✅ | adaptation guide | —
23
+ S4 | verify: confirm all relevant patterns evaluated, adaptation guidance is actionable | S3✅ | verified | —
23
24
 
24
25
  Tags: {{tags}}
26
+
27
+ ## Delegation
28
+
29
+ Web search MUST be delegated to a coding subagent (general/explore). Main agent must NOT execute web_search directly.
@@ -11,7 +11,7 @@ version: "1.0.0"
11
11
  tags: [workflow, technical-planning]
12
12
  ---
13
13
 
14
- ## FSM
14
+ ## Technical Planning
15
15
 
16
16
  Entry=create-task → task-claim Exit=task-update completed|blocked
17
17
  Guard: A(N) req all prev A✅
@@ -26,6 +26,7 @@ A5 | api-contract-design | G2✅ | API contract | design/api/
26
26
  G3 | approve API contracts | A5✅ | → proceed | —
27
27
  A6 | derive total_sprints from roadmap timeline+capacity → generate 1 sprint-planning task per sprint(N) + allocation audit + MCP task tree(parent/child + depends_on) | G3✅ | roadmap + sprints-1..N + audit + tasks | tasks/ + MCP
28
28
  GF | final approve — blocked if sprint-N.md missing or MCP task tree not created | A6✅ | → documentation | —
29
+ V1 | verify: confirm all artifacts exist at documented output paths, gate approvals recorded | GF✅ | verified | —
29
30
 
30
31
  ## Optional
31
32
 
@@ -8,9 +8,9 @@ version: "1.0.0"
8
8
  tags: [workflow, tooling, memory, policy, mcp]
9
9
  ---
10
10
 
11
- ## FSM — Memory Flow
11
+ ## Memory Flow
12
12
 
13
- Entry=S0 → S1 → S2 → S3 → S4 Exit=maintained
13
+ Entry=S0 → S1 → S2 → S3 → S4 → S5 Exit=maintained
14
14
  Guard: S(N) req S(N-1)✅
15
15
 
16
16
  S0 | navigate: memory-recap (overview) / memory-search (targeted) | — | pointer rows | —
@@ -18,22 +18,25 @@ S1 | hydrate: memory-detail (id or code) before relying on content | S0✅ | ful
18
18
  S2 | store: memory-store (durable only, tech tags, human title, aux in metadata) | — | stored | —
19
19
  S3 | maintain: memory-update / supersedes for changes; avoid duplicates | — | updated | —
20
20
  S4 | acknowledge: memory-acknowledge (used|irrelevant|contradictory) after code gen | code generated? | feedback | —
21
+ S5 | verify: confirm acknowledge called after code gen, no duplicate memories created | S4✅ | verified | —
21
22
 
22
- ## FSM — Standards Flow
23
+ ## Standards Flow
23
24
 
24
- Entry=S0 → S1 → S2 Exit=done
25
+ Entry=S0 → S1 → S2 → S3 Exit=done
25
26
  Guard: S(N) req S(N-1)✅
26
27
 
27
28
  S0 | search: standard-search mandatory before code edit/test/refactor/migrate (query, lang, stack, repo) | — | applicable | —
28
29
  S1 | apply precisely as implementation rules | S0✅ | compliant code | —
29
30
  S2 | store: standard-store (1 rule/entry, name, content, context, version, lang, stack, tags, scope) | — | new entry | —
31
+ S3 | verify: confirm standard-search was called, scope and tags correct | S2✅ | verified | —
30
32
 
31
- ## FSM — Handoff & Claim Flow
33
+ ## Handoff & Claim Flow
32
34
 
33
- Entry=S0 → S1 → S2 → S3 Exit=resolved
35
+ Entry=S0 → S1 → S2 → S3 → S4 Exit=resolved
34
36
  Guard: S(N) req S(N-1)✅
35
37
 
36
38
  S0 | check: handoff-list (status, from/to agent) + claim-list | — | active state | —
37
39
  S1 | ensure: NO handoff for completion summaries — use task-update or memory | — | valid | —
38
40
  S2 | create: handoff-create (unfinished work only, summary + structured context) / task-claim (ownership) | S0✅ | pending | claimed | —
39
41
  S3 | close: handoff-update (accepted|rejected|expired) / claim-release (stale ownership) | consumed | stale | resolved | —
42
+ S4 | verify: confirm no stale handoffs remain, claims reflect actual ownership | S3✅ | verified | —
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vheins/local-memory-mcp",
3
- "version": "0.14.10",
3
+ "version": "0.15.1",
4
4
  "description": "MCP Local Memory Service for coding copilot agents",
5
5
  "mcpName": "io.github.vheins/local-memory-mcp",
6
6
  "type": "module",