@infinitedusky/indusk-mcp 1.0.2 → 1.1.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.
@@ -1,5 +1,5 @@
1
1
  import { execSync } from "node:child_process";
2
- import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
+ import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync, } from "node:fs";
3
3
  import { dirname, join } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { globSync } from "glob";
@@ -13,7 +13,7 @@
13
13
  }
14
14
  },
15
15
  "hooks": {
16
- "on_init": "docker start falkordb 2>/dev/null || docker run -d --name falkordb --restart unless-stopped -v falkordb-global:/data falkordb/falkordb:latest",
16
+ "on_init": "docker start falkordb 2>/dev/null || docker run -d --name falkordb --restart unless-stopped -v falkordb-global:/var/lib/falkordb/data falkordb/falkordb:latest",
17
17
  "on_health_check": "docker ps --filter name=falkordb --format '{{.Status}}'"
18
18
  }
19
19
  }
@@ -0,0 +1,7 @@
1
+ # Mount Docker volumes to the actual data directory
2
+
3
+ When creating a Docker container with a persistent volume, verify where the application actually writes data — don't assume `/data`.
4
+
5
+ FalkorDB writes to `/var/lib/falkordb/data/`, not `/data`. Mounting a volume to `/data` captures an empty directory with a symlink, not the actual data. On container recreation, the data is gone.
6
+
7
+ Always check the image's actual data path before creating the volume mount. `docker exec <container> ls -la /data/` will show you if it's a symlink to somewhere else.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinitedusky/indusk-mcp",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "InDusk development system — skills, MCP tools, and CLI for structured AI-assisted development",
5
5
  "type": "module",
6
6
  "files": [
@@ -1,19 +1,30 @@
1
1
  ---
2
- name: onboard
3
- description: Get a new agent caught up on the project. Reads context, plans, lessons, and code graph health in one shot. Run at the start of every new session.
2
+ name: catchup
3
+ description: Get caught up on the project. Reads the handoff from the last session, then context, plans, lessons, extensions, and code graph. Run at the start of every new session.
4
4
  ---
5
5
 
6
6
  You are starting a new session on this project. Before doing anything else, get caught up.
7
7
 
8
8
  ## Steps (execute in order)
9
9
 
10
- ### 1. Read Lessons
10
+ ### 1. Read Handoff
11
+ Check if `.claude/handoff.md` exists. If it does, read it first — this is the most recent context from the last session. It tells you:
12
+ - What was being worked on
13
+ - Where it stopped
14
+ - What's next
15
+ - Any warnings or open issues
16
+
17
+ If the handoff exists, present a brief summary to the user: "Last session was working on X, stopped at Y. Ready to pick up there?"
18
+
19
+ If no handoff exists, skip to step 2.
20
+
21
+ ### 2. Read Lessons
11
22
  Call `list_lessons`. Read every lesson. These are rules learned from past mistakes — not suggestions. Internalize them before touching any code.
12
23
 
13
- ### 2. Check Infrastructure
24
+ ### 3. Check Infrastructure
14
25
  Call `check_health`. Verify FalkorDB and CGC are running. If unhealthy, tell the user what's down and how to fix it.
15
26
 
16
- ### 3. Read Project Context
27
+ ### 4. Read Project Context
17
28
  Call `get_context` to read CLAUDE.md. This contains:
18
29
  - **Architecture** — what the project is, how it's structured
19
30
  - **Conventions** — rules to follow (commit style, no DB from Next.js, no fallback URLs, etc.)
@@ -23,39 +34,40 @@ Call `get_context` to read CLAUDE.md. This contains:
23
34
 
24
35
  Read it fully. Don't skim.
25
36
 
26
- ### 4. Check Active Plans
37
+ ### 5. Check Active Plans
27
38
  Call `list_plans`. This shows every plan and its status. Pay attention to:
28
39
  - Plans with status `in-progress` — these are actively being worked on
29
40
  - The current phase of each active plan — this is where `/work` will pick up
30
41
  - Dependencies between plans — don't start a blocked plan
31
42
 
32
- ### 5. Check Extensions
43
+ ### 6. Check Extensions
33
44
  Call `extensions_status` to see what extensions are enabled and their capabilities. This tells you what tools are integrated and what domain knowledge is available.
34
45
 
35
- ### 6. Check Code Graph
46
+ ### 7. Check Code Graph
36
47
  Call `get_repository_stats` to understand the codebase size and structure. This gives you a sense of what's indexed and queryable. If it fails, the CGC extension may not be enabled or FalkorDB may be down — check_health will have flagged this.
37
48
 
38
- ### 7. Summarize
49
+ ### 8. Summarize
39
50
 
40
- After completing steps 1-6, present a brief summary to the user:
51
+ After completing all steps, present a brief summary to the user:
41
52
 
42
53
  ```
43
- **Session ready.**
54
+ **Caught up.**
55
+ - Handoff: [summary of last session's work, or "none"]
44
56
  - Lessons: N loaded
45
57
  - Infrastructure: [healthy / issues]
46
58
  - Extensions: N enabled [list names]
47
59
  - Active plans: [list with current phase]
48
60
  - Codebase: [N files indexed]
49
61
 
50
- Ready to work. What would you like to do?
62
+ Ready to pick up. What would you like to do?
51
63
  ```
52
64
 
53
65
  ## When to Use
54
66
 
55
67
  - Start of every new Claude Code session
56
- - When the user says "get caught up", "what's going on", "where are we"
68
+ - When the user says "get caught up", "what's going on", "where are we", "catch up"
57
69
  - When context was compressed and you need to re-orient
58
- - `/onboard` explicitly
70
+ - `/catchup` explicitly
59
71
 
60
72
  ## Important
61
73
 
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: handoff
3
+ description: Write a handoff file before ending a session. Captures what was worked on, where it stopped, what's next, and any warnings for the next agent.
4
+ ---
5
+
6
+ You are ending a session or handing off to another agent. Write a handoff file so the next session can pick up exactly where you left off.
7
+
8
+ ## What to Write
9
+
10
+ Create or overwrite `.claude/handoff.md` with:
11
+
12
+ ```markdown
13
+ # Handoff
14
+
15
+ **Date:** {YYYY-MM-DD}
16
+ **Session:** {brief description of what this session focused on}
17
+
18
+ ## What Was Being Worked On
19
+ {Plan name, phase, specific checklist item. Be precise — "Phase 3 of extension-system, item 4: refactor check_health" not "working on extensions."}
20
+
21
+ ## Where It Stopped
22
+ {Last thing completed. First thing that needs doing next. If mid-item, explain exactly where.}
23
+
24
+ ## What's Next
25
+ {The immediate next step. Then the next 2-3 steps after that. This is the pickup point for /catchup.}
26
+
27
+ ## Open Issues
28
+ {Anything broken, failing, or weird. Tests that don't pass. Errors being investigated. Things that worked before but don't now.}
29
+
30
+ ## Decisions Made This Session
31
+ {Any decisions that aren't captured in CLAUDE.md or an ADR yet. These need to be formalized — they're here so they don't get lost between sessions.}
32
+
33
+ ## Watch Out For
34
+ {Gotchas the next agent should know. "The FalkorDB graph needs reindexing." "The hooks aren't published yet — version 1.0.3 has them." "Don't touch init.ts until the extension system PR is merged."}
35
+ ```
36
+
37
+ ## When to Write a Handoff
38
+
39
+ - Before ending any session where work was done
40
+ - When the user says "let's stop here", "wrap up", "hand off"
41
+ - When you're about to run out of context
42
+ - `/handoff` explicitly
43
+
44
+ ## Rules
45
+
46
+ - **Be specific.** "Working on Phase 3" is useless. "Phase 3, item 4: refactored check_health to use extensions. extensions_status MCP tool created. Next: refactor init to remove hardcoded FalkorDB/CGC." is useful.
47
+ - **Include the ugly parts.** If something is broken, say so. The next agent needs to know.
48
+ - **Decisions that aren't saved anywhere else MUST go here.** They'll be lost otherwise.
49
+ - **Overwrite the previous handoff.** There's only one — the most recent session's. Old handoffs are consumed by /catchup and don't need to persist.
50
+ - **Keep it short.** This isn't a retrospective. It's a sticky note for the next person.