@infinitedusky/indusk-mcp 1.5.5 → 1.5.6

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.
@@ -213,6 +213,7 @@ export async function init(projectRoot, options = {}) {
213
213
  "mcp__indusk__graph_stats",
214
214
  "mcp__indusk__get_system_version",
215
215
  "mcp__indusk__get_skill_versions",
216
+ "mcp__indusk__get_skill_summaries",
216
217
  "mcp__indusk__index_project",
217
218
  "mcp__indusk__graph_doctor",
218
219
  "mcp__codegraphcontext__get_repository_stats",
@@ -120,6 +120,43 @@ export function registerSystemTools(server, projectRoot) {
120
120
  ],
121
121
  };
122
122
  });
123
+ server.registerTool("get_skill_summaries", {
124
+ description: "Returns name, description, and type for every installed skill. Use during catchup to learn what skills are available without loading full content.",
125
+ }, async () => {
126
+ const skillsTarget = join(projectRoot, ".claude/skills");
127
+ if (!existsSync(skillsTarget)) {
128
+ return {
129
+ content: [{ type: "text", text: JSON.stringify({ skills: [], total: 0 }) }],
130
+ };
131
+ }
132
+ const skillDirs = readdirSync(skillsTarget).filter((d) => !d.startsWith(".") && existsSync(join(skillsTarget, d, "SKILL.md")));
133
+ const skills = skillDirs.map((dir) => {
134
+ const content = readFileSync(join(skillsTarget, dir, "SKILL.md"), "utf-8");
135
+ // Try frontmatter first (process skills)
136
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
137
+ if (fmMatch) {
138
+ const fm = fmMatch[1];
139
+ const name = fm.match(/^name:\s*(.+)$/m)?.[1]?.trim() ?? dir;
140
+ const description = fm.match(/^description:\s*(.+)$/m)?.[1]?.trim() ?? "";
141
+ const type = fm.match(/^argument-hint:/m) ? "process" : "domain";
142
+ return { name, description, type, slash: `/${name}` };
143
+ }
144
+ // Fall back to heading + first paragraph (extension skills)
145
+ const firstPara = content
146
+ .split("\n\n")
147
+ .find((p) => p && !p.startsWith("#") && !p.startsWith("---"));
148
+ const description = firstPara?.replace(/\n/g, " ").slice(0, 120) ?? "";
149
+ return { name: dir, description, type: "extension", slash: null };
150
+ });
151
+ return {
152
+ content: [
153
+ {
154
+ type: "text",
155
+ text: JSON.stringify({ total: skills.length, skills }, null, 2),
156
+ },
157
+ ],
158
+ };
159
+ });
123
160
  server.registerTool("extensions_status", {
124
161
  description: "List all extensions (enabled and disabled) with their capabilities. Replaces list_domain_skills.",
125
162
  }, async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinitedusky/indusk-mcp",
3
- "version": "1.5.5",
3
+ "version": "1.5.6",
4
4
  "description": "InDusk development system — skills, MCP tools, and CLI for structured AI-assisted development",
5
5
  "type": "module",
6
6
  "files": [
package/skills/catchup.md CHANGED
@@ -53,11 +53,12 @@ Call `list_plans`. This shows every plan and its status. Pay attention to:
53
53
  ### 6. Review Skills and Extensions
54
54
  Call `extensions_status` to see what extensions are enabled and their capabilities.
55
55
 
56
- Then read all installed skill files in `.claude/skills/*/SKILL.md`. These define your workflows:
57
- - **Process skills** (plan, work, verify, context, document, retrospective) — how you build things
58
- - **Domain skills** (typescript, nextjs, etc.) — technology-specific best practices
59
- - **Extension skills** (cgc, composable-env, etc.) tool integrations and when to use them
60
- - **Utility skills** (catchup, handoff, toolbelt) — operational skills
56
+ Call `get_skill_summaries` to load the name, description, and type of every installed skill. This returns a compact summary — you do NOT need to read each skill file individually. The full skill content loads automatically when the user invokes a slash command.
57
+
58
+ Skill types:
59
+ - **process** workflow skills with slash commands (plan, work, verify, context, document, retrospective)
60
+ - **extension** — tool integrations (cgc, composable-env, excalidraw, etc.)
61
+ - **domain** — technology-specific best practices (typescript, testing, etc.)
61
62
 
62
63
  Understand what each skill does and when to use it. You should be able to answer: "What slash commands are available and what do they do?"
63
64