create-expert 0.0.41 → 0.0.42

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/bin/cli.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
 
3
3
  import { readFileSync } from "node:fs"
4
+ import { fileURLToPath } from "node:url"
4
5
  import { PerstackError } from "@perstack/core"
5
6
  import { findLockfile, loadLockfile, parsePerstackConfig } from "@perstack/perstack-toml"
6
7
  import { runHandler, startHandler } from "@perstack/tui"
@@ -48,6 +49,19 @@ new Command()
48
49
  .option("-i, --interactive-tool-call-result", "Query is interactive tool call result")
49
50
  .action(async (query: string | undefined, options: Record<string, unknown>) => {
50
51
  const config = parsePerstackConfig(readFileSync(tomlPath, "utf-8"))
52
+
53
+ // Resolve create-expert-skill server path to absolute so it works regardless of CWD.
54
+ // tomlPath resolves to dist/perstack.toml from compiled CLI (dist/bin/cli.js).
55
+ // ../../ goes: dist/ → create-expert/ → apps/, then into create-expert-skill/.
56
+ const skillServerPath = fileURLToPath(
57
+ new URL("../../create-expert-skill/dist/bin/server.js", tomlPath),
58
+ )
59
+ const skillFinderSkill =
60
+ config.experts?.["@create-expert/skill-finder"]?.skills?.["@perstack/create-expert-skill"]
61
+ if (skillFinderSkill && skillFinderSkill.type === "mcpStdioSkill") {
62
+ skillFinderSkill.args = [skillServerPath]
63
+ }
64
+
51
65
  const lockfilePath = findLockfile()
52
66
  const lockfile = lockfilePath ? (loadLockfile(lockfilePath) ?? undefined) : undefined
53
67
  const additionalEnv = (env: Record<string, string>) => {
package/dist/bin/cli.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  import { readFileSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
3
4
  import { PerstackError } from "@perstack/core";
4
5
  import { findLockfile, loadLockfile, parsePerstackConfig } from "@perstack/perstack-toml";
5
6
  import { runHandler, startHandler } from "@perstack/tui";
@@ -28,6 +29,14 @@ new Command()
28
29
  .option("-i, --interactive-tool-call-result", "Query is interactive tool call result")
29
30
  .action(async (query, options) => {
30
31
  const config = parsePerstackConfig(readFileSync(tomlPath, "utf-8"));
32
+ // Resolve create-expert-skill server path to absolute so it works regardless of CWD.
33
+ // tomlPath resolves to dist/perstack.toml from compiled CLI (dist/bin/cli.js).
34
+ // ../../ goes: dist/ → create-expert/ → apps/, then into create-expert-skill/.
35
+ const skillServerPath = fileURLToPath(new URL("../../create-expert-skill/dist/bin/server.js", tomlPath));
36
+ const skillFinderSkill = config.experts?.["@create-expert/skill-finder"]?.skills?.["@perstack/create-expert-skill"];
37
+ if (skillFinderSkill && skillFinderSkill.type === "mcpStdioSkill") {
38
+ skillFinderSkill.args = [skillServerPath];
39
+ }
31
40
  const lockfilePath = findLockfile();
32
41
  const lockfile = lockfilePath ? (loadLockfile(lockfilePath) ?? undefined) : undefined;
33
42
  const additionalEnv = (env) => {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expert",
3
- "version": "0.0.41",
3
+ "version": "0.0.42",
4
4
  "description": "Create and modify Perstack expert definitions",
5
5
  "author": "Wintermute Technologies, Inc.",
6
6
  "license": "Apache-2.0",
@@ -14,6 +14,7 @@ Delegate to your specialists and pass file paths between them. Do not read or in
14
14
  ## Delegates
15
15
 
16
16
  - @create-expert/planner — designs expert architectures, writes plan to plan.md
17
+ - @create-expert/skill-finder — searches MCP registry for relevant skills, writes skill-report.md
17
18
  - @create-expert/definition-writer — reads a plan file and writes perstack.toml
18
19
  - @create-expert/expert-tester — tests a perstack.toml by exercising each expert
19
20
 
@@ -21,12 +22,14 @@ Delegate to your specialists and pass file paths between them. Do not read or in
21
22
 
22
23
  1. If a perstack.toml already exists in the workspace, note its path
23
24
  2. Delegate to planner: pass the user's request and the perstack.toml path if one exists
24
- 3. Delegate to definition-writer: tell it to read plan.md and write perstack.toml
25
- 4. Delegate to expert-tester: tell it to test perstack.toml
26
- 5. If the tester reports issues, delegate back to definition-writer with the tester's feedback and the plan file path, then re-test
27
- 6. attemptCompletion with a summary of what was created
25
+ 3. If the plan includes MCP skill requirements (external API/service integrations), delegate to skill-finder: pass the plan.md path so it can search the MCP registry and write skill-report.md
26
+ 4. Delegate to definition-writer: tell it to read plan.md AND skill-report.md (if step 3 ran) and write perstack.toml. IMPORTANT: explicitly include the skill-report.md path in the delegation message so the definition-writer knows to incorporate MCP skills from it.
27
+ 5. Delegate to expert-tester: tell it to test perstack.toml
28
+ 6. If the tester reports issues, delegate back to definition-writer with the tester's feedback and the plan file path, then re-test
29
+ 7. If skill-report.md includes requiredEnv entries, inform the user which environment variables need to be set
30
+ 8. attemptCompletion with a summary of what was created
28
31
  """
29
- delegates = ["@create-expert/planner", "@create-expert/definition-writer", "@create-expert/expert-tester"]
32
+ delegates = ["@create-expert/planner", "@create-expert/skill-finder", "@create-expert/definition-writer", "@create-expert/expert-tester"]
30
33
 
31
34
  [experts."create-expert".skills."@perstack/base"]
32
35
  type = "mcpStdioSkill"
@@ -99,6 +102,13 @@ Experts must produce real, usable output — not ceremony. A programming expert
99
102
  5. Consider what tools each expert needs (minimal set)
100
103
  6. Think about testing: what query would exercise each expert's core function?
101
104
 
105
+ ## Skill Requirements
106
+
107
+ When the expert needs to interact with external APIs or services (e.g., GitHub, Slack, databases, cloud providers), include a "Skill Requirements" section in the plan:
108
+ - List the external integrations needed
109
+ - Suggest search keywords for the MCP registry (try multiple variations)
110
+ - Include fallback approaches if no suitable MCP server is found (e.g., using exec with CLI tools, direct API calls)
111
+
102
112
  ## Output
103
113
 
104
114
  Write your design to plan.md with the following sections:
@@ -109,6 +119,7 @@ Write your design to plan.md with the following sections:
109
119
  4. **Skills required per expert** — which @perstack/base tools, any custom MCP servers
110
120
  5. **Delegation structure** — who delegates to whom, with rationale
111
121
  6. **Test scenario for each expert** — a concrete, realistic query that exercises the expert's core function
122
+ 7. **MCP skill requirements** (if applicable) — external integrations needed, search keywords, fallback approaches
112
123
 
113
124
  After writing the file, attemptCompletion with the file path.
114
125
  """
@@ -119,11 +130,74 @@ command = "npx"
119
130
  packageName = "@perstack/base"
120
131
  pick = ["readTextFile", "writeTextFile", "exec", "todo", "attemptCompletion"]
121
132
 
133
+ [experts."@create-expert/skill-finder"]
134
+ version = "1.0.0"
135
+ description = """
136
+ Searches the MCP registry for MCP servers that match expert skill requirements. Provide: path to plan.md \
137
+ containing a "Skill Requirements" section. Writes findings to skill-report.md with TOML configuration snippets.
138
+ """
139
+ instruction = """
140
+ You are an MCP skill researcher. Your job is to find and evaluate MCP servers from the official registry that can serve as skills for Perstack experts.
141
+
142
+ ## Investigation Process
143
+
144
+ 1. Read the plan.md file to identify the "Skill Requirements" section
145
+ 2. For each required integration, search the MCP registry using multiple keyword variations (e.g., for GitHub: "github", "git", "github api")
146
+ 3. For promising candidates, get detailed server information
147
+ 4. Verify npm package availability using exec: `npm info <package-name> --json` — check that the package exists, note version and weekly downloads
148
+ 5. Assess compatibility with Perstack skill types (mcpStdioSkill for npm, mcpSseSkill for SSE/streamable-http)
149
+
150
+ ## Evaluation Criteria
151
+
152
+ - Prefer npm+stdio packages (local execution, ENV support, no external dependency)
153
+ - Only recommend SSE/streamable-http remotes if they use HTTPS public URLs
154
+ - OCI packages are not directly supported — note that Docker manual setup is required
155
+ - Check that required environment variables are documented
156
+ - Prefer actively maintained packages with recent versions
157
+
158
+ ## Output
159
+
160
+ Write skill-report.md with these sections for each integration:
161
+
162
+ ### [Integration Name]
163
+ - **Server**: registry name and version
164
+ - **Type**: mcpStdioSkill / mcpSseSkill / unsupported
165
+ - **TOML snippet**: ready-to-paste skill configuration
166
+ - **Environment variables**: list of required env vars with descriptions
167
+ - **Notes**: compatibility concerns, setup instructions, alternatives considered
168
+
169
+ Include a TOML snippet like:
170
+ ```toml
171
+ [experts."expert-name".skills."skill-key"]
172
+ type = "mcpStdioSkill"
173
+ command = "npx"
174
+ packageName = "@scope/package-name"
175
+ requiredEnv = ["API_KEY"]
176
+ ```
177
+
178
+ If no suitable MCP server is found, document the fallback approach (e.g., using exec with CLI tools).
179
+
180
+ After writing skill-report.md, attemptCompletion with the file path.
181
+ """
182
+
183
+ [experts."@create-expert/skill-finder".skills."@perstack/base"]
184
+ type = "mcpStdioSkill"
185
+ command = "npx"
186
+ packageName = "@perstack/base"
187
+ pick = ["readTextFile", "writeTextFile", "exec", "todo", "attemptCompletion"]
188
+
189
+ # When published to npm, use: command = "npx", packageName = "@perstack/create-expert-skill"
190
+ [experts."@create-expert/skill-finder".skills."@perstack/create-expert-skill"]
191
+ type = "mcpStdioSkill"
192
+ command = "bun"
193
+ args = ["./apps/create-expert-skill/dist/bin/server.js"]
194
+ pick = ["searchMcpRegistry", "getMcpServerDetail"]
195
+
122
196
  [experts."@create-expert/definition-writer"]
123
197
  version = "1.0.0"
124
198
  description = """
125
199
  Writes Perstack expert definitions in perstack.toml from a design plan. Provide: path to the plan file (e.g. plan.md). \
126
- Optionally include feedback from a previous test round to address.
200
+ Optionally include: (1) feedback from a previous test round to address, (2) path to skill-report.md with MCP registry findings.
127
201
  """
128
202
  instruction = """
129
203
  You are a Perstack definition writer. Read a design plan file and write the corresponding perstack.toml.
@@ -187,13 +261,27 @@ pick = ["tool1", "tool2"] # optional, include specific tools
187
261
  - Always include version, description, instruction for each expert
188
262
  - Produce valid TOML — no syntax errors
189
263
 
264
+ ## MCP Registry Skills
265
+
266
+ If a skill-report.md path is provided in the query, read it for MCP registry findings. The report contains:
267
+ - Recommended MCP servers with TOML configuration snippets
268
+ - Environment variables that need to be set (requiredEnv)
269
+ - Compatibility notes and fallback suggestions
270
+
271
+ To incorporate MCP skills into the expert definition:
272
+ - Copy the TOML skill configuration snippets from the report into the appropriate expert's skills section
273
+ - Use a descriptive skill key (e.g., `"@github/github-mcp-server"`)
274
+ - Include any requiredEnv from the report
275
+ - If the report recommends a fallback (exec-based), use that instead
276
+
190
277
  ## Process
191
278
 
192
279
  1. Read the plan file specified in the query
193
- 2. If a perstack.toml already exists, read it first. You MUST preserve ALL existing expert definitions exactly as they are — only add or modify experts described in the plan.
194
- 3. Write the perstack.toml with both the preserved existing experts AND the new expert definitions from the plan
195
- 4. If feedback from a previous test round was provided, address those issues
196
- 5. attemptCompletion when the perstack.toml has been written
280
+ 2. If a skill-report.md path was provided, read it for MCP skill configurations
281
+ 3. If a perstack.toml already exists, read it first. You MUST preserve ALL existing expert definitions exactly as they are — only add or modify experts described in the plan.
282
+ 4. Write the perstack.toml with both the preserved existing experts AND the new expert definitions from the plan and skill report
283
+ 5. If feedback from a previous test round was provided, address those issues
284
+ 6. attemptCompletion when the perstack.toml has been written
197
285
  """
198
286
 
199
287
  [experts."@create-expert/definition-writer".skills."@perstack/base"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expert",
3
- "version": "0.0.41",
3
+ "version": "0.0.42",
4
4
  "description": "Create and modify Perstack expert definitions",
5
5
  "author": "Wintermute Technologies, Inc.",
6
6
  "license": "Apache-2.0",