@spec0/cli 0.6.1 → 0.7.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.
- package/dist/commands/mcp.d.ts +8 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +22 -12
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +8 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/setup.d.ts +15 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +68 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/skill.d.ts +29 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +75 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/skill-content.d.ts +18 -0
- package/dist/lib/skill-content.d.ts.map +1 -0
- package/dist/lib/skill-content.js +81 -0
- package/dist/lib/skill-content.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/mcp.d.ts
CHANGED
|
@@ -12,4 +12,12 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { Command } from "commander";
|
|
14
14
|
export declare function registerMcpCommands(program: Command): void;
|
|
15
|
+
/**
|
|
16
|
+
* Write the Spec0 MCP server config into the requested client(s). Shared by
|
|
17
|
+
* `spec0 mcp install` and `spec0 setup` so the two stay in lockstep. Validates
|
|
18
|
+
* the client name (exits USAGE on an unknown one) and writes the canonical
|
|
19
|
+
* header-less config. Does not print the OAuth note — callers add their own
|
|
20
|
+
* surrounding output.
|
|
21
|
+
*/
|
|
22
|
+
export declare function runMcpInstall(clientOpt: string): void;
|
|
15
23
|
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAqDnD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAcrD"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -65,23 +65,33 @@ export function registerMcpCommands(program) {
|
|
|
65
65
|
.description("Install the Spec0 MCP server into Cursor and/or Claude")
|
|
66
66
|
.option("--client <client>", "Target client: cursor, claude, or all", "all")
|
|
67
67
|
.action(async (opts) => {
|
|
68
|
-
|
|
69
|
-
if (!["cursor", "claude", "all"].includes(client)) {
|
|
70
|
-
console.error(chalk.red(`Unknown client '${opts.client}'. Expected: cursor, claude, or all.`));
|
|
71
|
-
exit(ExitCode.USAGE);
|
|
72
|
-
}
|
|
73
|
-
const mcpUrl = resolvedPlatformMcpUrl();
|
|
74
|
-
if (client === "cursor" || client === "all") {
|
|
75
|
-
installCursor(mcpUrl);
|
|
76
|
-
}
|
|
77
|
-
if (client === "claude" || client === "all") {
|
|
78
|
-
installClaude(mcpUrl);
|
|
79
|
-
}
|
|
68
|
+
runMcpInstall(opts.client);
|
|
80
69
|
console.log("");
|
|
81
70
|
console.log(chalk.dim("On first use your MCP client opens a browser to sign in (OAuth via Clerk). " +
|
|
82
71
|
"Anonymous access exposes the public docs tools; signing in unlocks your org's APIs."));
|
|
83
72
|
});
|
|
84
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Write the Spec0 MCP server config into the requested client(s). Shared by
|
|
76
|
+
* `spec0 mcp install` and `spec0 setup` so the two stay in lockstep. Validates
|
|
77
|
+
* the client name (exits USAGE on an unknown one) and writes the canonical
|
|
78
|
+
* header-less config. Does not print the OAuth note — callers add their own
|
|
79
|
+
* surrounding output.
|
|
80
|
+
*/
|
|
81
|
+
export function runMcpInstall(clientOpt) {
|
|
82
|
+
const client = clientOpt.toLowerCase();
|
|
83
|
+
if (!["cursor", "claude", "all"].includes(client)) {
|
|
84
|
+
console.error(chalk.red(`Unknown client '${clientOpt}'. Expected: cursor, claude, or all.`));
|
|
85
|
+
exit(ExitCode.USAGE);
|
|
86
|
+
}
|
|
87
|
+
const mcpUrl = resolvedPlatformMcpUrl();
|
|
88
|
+
if (client === "cursor" || client === "all") {
|
|
89
|
+
installCursor(mcpUrl);
|
|
90
|
+
}
|
|
91
|
+
if (client === "claude" || client === "all") {
|
|
92
|
+
installClaude(mcpUrl);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
85
95
|
/**
|
|
86
96
|
* Read-merge-write `~/.cursor/mcp.json`, setting `mcpServers.spec0` while
|
|
87
97
|
* preserving any other servers already configured there. Creates the file/dir
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmUpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA2BnD"}
|
package/dist/commands/push.js
CHANGED
|
@@ -60,6 +60,7 @@ function usageExamples(cmd) {
|
|
|
60
60
|
` spec0 ${cmd} openapi.yaml --name payment-api`,
|
|
61
61
|
` spec0 ${cmd} openapi.yaml --name payment-api --team platform-team`,
|
|
62
62
|
` spec0 ${cmd} openapi.yaml --semver`,
|
|
63
|
+
` spec0 ${cmd} openapi.yaml --env staging`,
|
|
63
64
|
` spec0 ${cmd} openapi.yaml --version 1.2.0 --git-sha $(git rev-parse HEAD)`,
|
|
64
65
|
].join("\n");
|
|
65
66
|
}
|
|
@@ -169,6 +170,10 @@ async function runPush(cmdName, specArg, opts, command) {
|
|
|
169
170
|
}
|
|
170
171
|
// ── API call ─────────────────────────────────────────────────────────────
|
|
171
172
|
configureSdkAuth(ctx);
|
|
173
|
+
const environment = opts["env"]?.trim() || undefined;
|
|
174
|
+
// `environment` is a forward-compatible field on the publish request: when set, the platform
|
|
175
|
+
// advances that environment's current version to this publish. Declared via an intersection until
|
|
176
|
+
// the published SDK type carries it; the request body is sent verbatim either way.
|
|
172
177
|
const body = {
|
|
173
178
|
apiId,
|
|
174
179
|
name: resolvedName ?? undefined,
|
|
@@ -180,9 +185,10 @@ async function runPush(cmdName, specArg, opts, command) {
|
|
|
180
185
|
githubBranch: githubBranch || undefined,
|
|
181
186
|
specFilePath,
|
|
182
187
|
semver,
|
|
188
|
+
environment,
|
|
183
189
|
};
|
|
184
190
|
vLog(`POST ${ctx.apiUrl}/api/v1/public/apis/team`);
|
|
185
|
-
vLog(`payload: name=${resolvedName} team=${team ?? "(unassigned)"} version=${versionOpt ?? "(from spec)"} sha=${gitSha ? gitSha.slice(0, 8) + "…" : "none"} semver=${semver}`);
|
|
191
|
+
vLog(`payload: name=${resolvedName} team=${team ?? "(unassigned)"} version=${versionOpt ?? "(from spec)"} sha=${gitSha ? gitSha.slice(0, 8) + "…" : "none"} semver=${semver} env=${environment ?? "(none)"}`);
|
|
186
192
|
const pushSpinner = ora("Pushing…").start();
|
|
187
193
|
try {
|
|
188
194
|
const reg = await PublicApisService.publishTeamApi({ requestBody: body });
|
|
@@ -280,6 +286,7 @@ export function registerPushCommand(program) {
|
|
|
280
286
|
.option("--name <name>", "API name (kebab-case). Defaults to spec filename if omitted.")
|
|
281
287
|
.option("--team <team>", "Team UUID or slug. Defaults to 'Unassigned APIs' if omitted.")
|
|
282
288
|
.option("--version <version>", "Version tag (e.g. 1.2.0). Defaults to info.version in spec.")
|
|
289
|
+
.option("--env <environment>", "Target environment (e.g. staging, production). Advances that environment to this published version.")
|
|
283
290
|
.option("--api-id <id>", "Existing API UUID to update (backward compat; prefer --name)")
|
|
284
291
|
.option("--semver", "Auto-compute next semver via oasdiff diff classification")
|
|
285
292
|
.option("--git-sha <sha>", "Git commit SHA (auto-detected if .git is present)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spec0 setup — one-command onboarding.
|
|
3
|
+
*
|
|
4
|
+
* Runs the three things a new user needs, in order, and is safe to re-run:
|
|
5
|
+
* 1. verify auth (are token + org resolvable? — does not block, just reports)
|
|
6
|
+
* 2. mcp install (point Cursor/Claude at the Spec0 MCP server)
|
|
7
|
+
* 3. skill install (install the Spec0 Claude Code skill)
|
|
8
|
+
*
|
|
9
|
+
* Steps 2 and 3 work anonymously; signing in (step 1) is what unlocks the
|
|
10
|
+
* org-scoped MCP tools. We surface that rather than forcing a browser login mid
|
|
11
|
+
* flow, so `spec0 setup` stays non-interactive and CI-safe.
|
|
12
|
+
*/
|
|
13
|
+
import { Command } from "commander";
|
|
14
|
+
export declare function registerSetupCommand(program: Command): void;
|
|
15
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAoEpD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spec0 setup — one-command onboarding.
|
|
3
|
+
*
|
|
4
|
+
* Runs the three things a new user needs, in order, and is safe to re-run:
|
|
5
|
+
* 1. verify auth (are token + org resolvable? — does not block, just reports)
|
|
6
|
+
* 2. mcp install (point Cursor/Claude at the Spec0 MCP server)
|
|
7
|
+
* 3. skill install (install the Spec0 Claude Code skill)
|
|
8
|
+
*
|
|
9
|
+
* Steps 2 and 3 work anonymously; signing in (step 1) is what unlocks the
|
|
10
|
+
* org-scoped MCP tools. We surface that rather than forcing a browser login mid
|
|
11
|
+
* flow, so `spec0 setup` stays non-interactive and CI-safe.
|
|
12
|
+
*/
|
|
13
|
+
import chalk from "chalk";
|
|
14
|
+
import { buildDoctorReport } from "../lib/doctor.js";
|
|
15
|
+
import { runMcpInstall } from "./mcp.js";
|
|
16
|
+
import { runSkillInstall } from "./skill.js";
|
|
17
|
+
import { ExitCode, exit } from "../lib/exit-codes.js";
|
|
18
|
+
export function registerSetupCommand(program) {
|
|
19
|
+
program
|
|
20
|
+
.command("setup")
|
|
21
|
+
.description("One command: verify auth, install the MCP server, and install the Claude skill")
|
|
22
|
+
.option("--client <client>", "MCP client: cursor, claude, or all", "all")
|
|
23
|
+
.option("--scope <scope>", "Skill install scope: personal or project", "personal")
|
|
24
|
+
.action((opts) => {
|
|
25
|
+
const client = opts.client.toLowerCase();
|
|
26
|
+
if (!["cursor", "claude", "all"].includes(client)) {
|
|
27
|
+
console.error(chalk.red(`Unknown client '${opts.client}'. Expected: cursor, claude, or all.`));
|
|
28
|
+
exit(ExitCode.USAGE);
|
|
29
|
+
}
|
|
30
|
+
const scope = opts.scope.toLowerCase();
|
|
31
|
+
if (!["personal", "project"].includes(scope)) {
|
|
32
|
+
console.error(chalk.red(`Unknown scope '${opts.scope}'. Expected: personal or project.`));
|
|
33
|
+
exit(ExitCode.USAGE);
|
|
34
|
+
}
|
|
35
|
+
// 1. Auth — report, don't block.
|
|
36
|
+
console.log(chalk.bold("1. Authentication"));
|
|
37
|
+
const report = buildDoctorReport();
|
|
38
|
+
if (report.ok) {
|
|
39
|
+
console.log(chalk.green(" ✓ signed in"), chalk.dim("— org-scoped MCP tools will be available"));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.log(chalk.yellow(" • not signed in yet"));
|
|
43
|
+
console.log(chalk.dim(" Run 'spec0 auth login' (or set SPEC0_TOKEN + SPEC0_ORG_ID) to unlock your org's APIs.\n" +
|
|
44
|
+
" The MCP server and skill below still install — anonymous access gets the public docs tools."));
|
|
45
|
+
}
|
|
46
|
+
// 2. MCP server.
|
|
47
|
+
console.log("");
|
|
48
|
+
console.log(chalk.bold("2. MCP server"));
|
|
49
|
+
runMcpInstall(client);
|
|
50
|
+
// 3. Claude Code skill — only meaningful when Claude is a target client.
|
|
51
|
+
console.log("");
|
|
52
|
+
console.log(chalk.bold("3. Claude Code skill"));
|
|
53
|
+
if (client === "claude" || client === "all") {
|
|
54
|
+
const skillPath = runSkillInstall({ scope });
|
|
55
|
+
console.log(chalk.green(" ✓"), `wrote ${skillPath}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console.log(chalk.dim(" skipped (the skill is a Claude Code skill; re-run with --client claude or all)"));
|
|
59
|
+
}
|
|
60
|
+
// Summary.
|
|
61
|
+
console.log("");
|
|
62
|
+
console.log(chalk.green("Setup complete."));
|
|
63
|
+
console.log(chalk.dim("Restart your editor/agent. On first MCP use a browser opens to sign in (OAuth). " +
|
|
64
|
+
(report.ok ? "" : "Run 'spec0 auth login' to unlock org-scoped tools.")));
|
|
65
|
+
exit(ExitCode.SUCCESS);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spec0 skill install | path
|
|
3
|
+
*
|
|
4
|
+
* Installs the bundled Spec0 skill for Claude Code. A Claude Code skill is a
|
|
5
|
+
* directory under a `skills/` root containing a `SKILL.md`; Claude Code discovers
|
|
6
|
+
* it automatically and loads it when the user's task matches the skill's
|
|
7
|
+
* description. We write it to the personal root (`~/.claude/skills/spec0/`) by
|
|
8
|
+
* default, or the project root (`./.claude/skills/spec0/`) with `--scope project`.
|
|
9
|
+
*
|
|
10
|
+
* The skill teaches Claude Code to be discovery-first against an org's Spec0
|
|
11
|
+
* registry (use the MCP tools to read real specs instead of guessing) and to use
|
|
12
|
+
* the spec0 CLI to publish/lint/mock. Its content lives in lib/skill-content.ts.
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from "commander";
|
|
15
|
+
interface SkillInstallOptions {
|
|
16
|
+
scope?: string;
|
|
17
|
+
/** Explicit skills root, overriding scope. Mainly for tests. */
|
|
18
|
+
dir?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Write the bundled skill to `<root>/spec0/SKILL.md`, creating directories as
|
|
22
|
+
* needed. Overwrites any existing copy (the file is ours to manage, so an
|
|
23
|
+
* upgrade just re-runs install). Returns the path written. Shared with
|
|
24
|
+
* `spec0 setup`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function runSkillInstall(opts?: SkillInstallOptions): string;
|
|
27
|
+
export declare function registerSkillCommands(program: Command): void;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAcD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAStE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAmCrD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spec0 skill install | path
|
|
3
|
+
*
|
|
4
|
+
* Installs the bundled Spec0 skill for Claude Code. A Claude Code skill is a
|
|
5
|
+
* directory under a `skills/` root containing a `SKILL.md`; Claude Code discovers
|
|
6
|
+
* it automatically and loads it when the user's task matches the skill's
|
|
7
|
+
* description. We write it to the personal root (`~/.claude/skills/spec0/`) by
|
|
8
|
+
* default, or the project root (`./.claude/skills/spec0/`) with `--scope project`.
|
|
9
|
+
*
|
|
10
|
+
* The skill teaches Claude Code to be discovery-first against an org's Spec0
|
|
11
|
+
* registry (use the MCP tools to read real specs instead of guessing) and to use
|
|
12
|
+
* the spec0 CLI to publish/lint/mock. Its content lives in lib/skill-content.ts.
|
|
13
|
+
*/
|
|
14
|
+
import chalk from "chalk";
|
|
15
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
16
|
+
import { homedir } from "node:os";
|
|
17
|
+
import { join } from "node:path";
|
|
18
|
+
import { ExitCode, exit } from "../lib/exit-codes.js";
|
|
19
|
+
import { SPEC0_SKILL_FILE, SPEC0_SKILL_MD, SPEC0_SKILL_NAME } from "../lib/skill-content.js";
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the `skills/` root for the requested scope. Personal installs land in
|
|
22
|
+
* the user's home (`~/.claude/skills`); project installs in the current working
|
|
23
|
+
* directory (`./.claude/skills`) so they travel with the repo.
|
|
24
|
+
*/
|
|
25
|
+
function skillsRoot(scope, dirOverride) {
|
|
26
|
+
if (dirOverride)
|
|
27
|
+
return dirOverride;
|
|
28
|
+
return scope === "project"
|
|
29
|
+
? join(process.cwd(), ".claude", "skills")
|
|
30
|
+
: join(homedir(), ".claude", "skills");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Write the bundled skill to `<root>/spec0/SKILL.md`, creating directories as
|
|
34
|
+
* needed. Overwrites any existing copy (the file is ours to manage, so an
|
|
35
|
+
* upgrade just re-runs install). Returns the path written. Shared with
|
|
36
|
+
* `spec0 setup`.
|
|
37
|
+
*/
|
|
38
|
+
export function runSkillInstall(opts = {}) {
|
|
39
|
+
const scope = opts.scope === "project" ? "project" : "personal";
|
|
40
|
+
const root = skillsRoot(scope, opts.dir);
|
|
41
|
+
const skillDir = join(root, SPEC0_SKILL_NAME);
|
|
42
|
+
const skillPath = join(skillDir, SPEC0_SKILL_FILE);
|
|
43
|
+
mkdirSync(skillDir, { recursive: true });
|
|
44
|
+
writeFileSync(skillPath, SPEC0_SKILL_MD, "utf-8");
|
|
45
|
+
return skillPath;
|
|
46
|
+
}
|
|
47
|
+
export function registerSkillCommands(program) {
|
|
48
|
+
const skill = program.command("skill").description("Install the Spec0 skill for Claude Code");
|
|
49
|
+
skill
|
|
50
|
+
.command("install")
|
|
51
|
+
.description("Install the Spec0 skill into Claude Code (~/.claude/skills/spec0)")
|
|
52
|
+
.option("--scope <scope>", "Where to install: personal or project", "personal")
|
|
53
|
+
.action((opts) => {
|
|
54
|
+
const scope = (opts.scope ?? "personal").toLowerCase();
|
|
55
|
+
if (!["personal", "project"].includes(scope)) {
|
|
56
|
+
console.error(chalk.red(`Unknown scope '${opts.scope}'. Expected: personal or project.`));
|
|
57
|
+
exit(ExitCode.USAGE);
|
|
58
|
+
}
|
|
59
|
+
const skillPath = runSkillInstall({ scope });
|
|
60
|
+
console.log(chalk.green("Claude Code skill:"), `wrote ${skillPath}`);
|
|
61
|
+
console.log("");
|
|
62
|
+
console.log(chalk.dim("Restart Claude Code (or reload skills) to pick it up. The skill makes the agent " +
|
|
63
|
+
"discover and read your org's APIs via the Spec0 MCP tools — run 'spec0 mcp install' " +
|
|
64
|
+
"if you haven't connected the MCP server yet."));
|
|
65
|
+
});
|
|
66
|
+
skill
|
|
67
|
+
.command("path")
|
|
68
|
+
.description("Print where 'spec0 skill install' writes the skill")
|
|
69
|
+
.option("--scope <scope>", "personal or project", "personal")
|
|
70
|
+
.action((opts) => {
|
|
71
|
+
const scope = (opts.scope ?? "personal").toLowerCase() === "project" ? "project" : "personal";
|
|
72
|
+
console.log(join(skillsRoot(scope), SPEC0_SKILL_NAME, SPEC0_SKILL_FILE));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,8 @@ import { registerDiffCommand } from "./commands/diff.js";
|
|
|
22
22
|
import { registerLogCommand } from "./commands/log.js";
|
|
23
23
|
import { registerStatusCommand } from "./commands/status.js";
|
|
24
24
|
import { registerMcpCommands } from "./commands/mcp.js";
|
|
25
|
+
import { registerSkillCommands } from "./commands/skill.js";
|
|
26
|
+
import { registerSetupCommand } from "./commands/setup.js";
|
|
25
27
|
import { registerVersionCommand } from "./commands/version.js";
|
|
26
28
|
import { registerApiCommands } from "./commands/api/index.js";
|
|
27
29
|
import { registerDoctorCommand } from "./commands/doctor.js";
|
|
@@ -62,6 +64,8 @@ registerDiffCommand(program);
|
|
|
62
64
|
registerLogCommand(program);
|
|
63
65
|
registerStatusCommand(program);
|
|
64
66
|
registerMcpCommands(program);
|
|
67
|
+
registerSkillCommands(program);
|
|
68
|
+
registerSetupCommand(program);
|
|
65
69
|
registerApiCommands(program);
|
|
66
70
|
registerDoctorCommand(program);
|
|
67
71
|
registerSyncStatusCommand(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErE,2EAA2E;AAC3E,4EAA4E;AAC5E,oDAAoD;AACpD,iBAAiB,EAAE,CAAC;AACpB,IAAI,WAAW,EAAE,EAAE,CAAC;IAClB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,4EAA4E;AAC5E,mEAAmE;AACnE,0BAA0B,EAAE,CAAC;AAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,iFAAiF,CAAC;KAC9F,OAAO,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC;KAC9D,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC;IACtC,kFAAkF;IAClF,wFAAwF;IACxF,qFAAqF;IACrF,yFAAyF;IACzF,qFAAqF;IACrF,wFAAwF;IACxF,uBAAuB;KACtB,uBAAuB,EAAE,CAAC;AAE7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,uEAAuE;AACvE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACnB,uBAAuB,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bundled Spec0 skill for Claude Code, embedded as a string so it ships with
|
|
3
|
+
* the CLI without any non-JS asset to copy at build time. `spec0 skill install`
|
|
4
|
+
* (and `spec0 setup`) write this verbatim to `<skills-dir>/spec0/SKILL.md`.
|
|
5
|
+
*
|
|
6
|
+
* A Claude Code skill is a directory under `~/.claude/skills/<name>/` (personal)
|
|
7
|
+
* or `.claude/skills/<name>/` (project) containing a `SKILL.md` with YAML
|
|
8
|
+
* frontmatter (`name`, `description`) plus a markdown body. The `description` is
|
|
9
|
+
* what the agent matches on to decide when to load the skill, so it leads with
|
|
10
|
+
* the trigger conditions.
|
|
11
|
+
*/
|
|
12
|
+
/** Skill directory name under the client's `skills/` root. */
|
|
13
|
+
export declare const SPEC0_SKILL_NAME = "spec0";
|
|
14
|
+
/** File name written inside the skill directory. */
|
|
15
|
+
export declare const SPEC0_SKILL_FILE = "SKILL.md";
|
|
16
|
+
/** The skill body, written verbatim to SKILL.md. */
|
|
17
|
+
export declare const SPEC0_SKILL_MD = "---\nname: spec0\ndescription: >-\n Use when integrating with, discovering, or publishing internal or private APIs\n in an organization that uses Spec0. Query the Spec0 MCP tools to find and read\n the real OpenAPI specs instead of guessing endpoints, and use the spec0 CLI to\n publish, lint, version, and mock your own specs.\n---\n\n# Spec0\n\nSpec0 is an API registry and MCP server for an organization's OpenAPI specs. This\nskill makes you **discovery-first**: when a task touches an API, find the real\ncontract through Spec0 rather than inventing endpoints, fields, or payloads.\n\n## When to use this skill\n\n- The user asks how to call, integrate with, or build against an internal or\n company API.\n- You are about to write a request to an API and are unsure of the exact path,\n method, parameters, or response shape.\n- The user asks \"which of our APIs does X\", \"who owns API Y\", or \"what changed in\n API Z\".\n- The user wants to publish, version, lint, or mock their own OpenAPI spec.\n\n## Discover and read APIs (Spec0 MCP tools)\n\nIf the Spec0 MCP server is connected, prefer these tools over guessing. (If they\nare not available, the user can connect it with `spec0 mcp install`, then sign in\nwhen their client prompts.)\n\n- `search_apis` / `list_apis` \u2014 find the right API in the org.\n- `search_operations` \u2014 find the exact operation across APIs (e.g. \"issue a refund\").\n- `get_operation` \u2014 exact method, path, parameters, and request/response schema for one operation.\n- `get_api_spec` \u2014 the full (size-bounded) spec when you need more than one operation.\n- `get_api_owner` \u2014 the owning team, for \"who do I ask about this?\".\n- `get_api_changelog` / `get_api_health` \u2014 what changed between versions; the quality score.\n- `search_docs` / `get_page` / `list_sections` \u2014 Spec0's own documentation (CLI, platform, mock server).\n\nIntegrate against the operation you actually read from the spec \u2014 never fabricate\nendpoints, field names, or enum values. If a tool returns nothing, say so rather\nthan guessing.\n\n## Publish and govern your own spec (spec0 CLI)\n\nThe `spec0` CLI is the scriptable surface. Prefer the git-native flow \u2014 publish on\nmerge via CI rather than by hand \u2014 so the registry is never stale.\n\n- `spec0 push <spec> --team <team>` \u2014 publish privately to your org and team.\n- `spec0 publish <spec> --semver` \u2014 publish to the public registry (shareable URL).\n- `spec0 lint <spec> --org-ruleset --min-score 80 --strict` \u2014 quality gate; run it in CI.\n- `spec0 diff --breaking-only` \u2014 fail CI on breaking changes.\n- `spec0 mock create --api <name>` then `spec0 mock url <name>` \u2014 a live mock generated from the spec.\n\nWhen a project publishes an OpenAPI spec, recommend wiring `spec0 lint` and\n`spec0 publish` into CI rather than running them manually.\n\n## Example prompts this skill handles well\n\n- \"Which of our APIs handles refunds, and what do I send to issue one?\"\n- \"Generate a typed client for the createCharge operation.\"\n- \"Did the orders API have a breaking change in the last release? What do I update?\"\n- \"Publish this openapi.yaml under the payments team and gate it on lint.\"\n";
|
|
18
|
+
//# sourceMappingURL=skill-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-content.d.ts","sourceRoot":"","sources":["../../src/lib/skill-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,oDAAoD;AACpD,eAAO,MAAM,cAAc,yrGA+D1B,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bundled Spec0 skill for Claude Code, embedded as a string so it ships with
|
|
3
|
+
* the CLI without any non-JS asset to copy at build time. `spec0 skill install`
|
|
4
|
+
* (and `spec0 setup`) write this verbatim to `<skills-dir>/spec0/SKILL.md`.
|
|
5
|
+
*
|
|
6
|
+
* A Claude Code skill is a directory under `~/.claude/skills/<name>/` (personal)
|
|
7
|
+
* or `.claude/skills/<name>/` (project) containing a `SKILL.md` with YAML
|
|
8
|
+
* frontmatter (`name`, `description`) plus a markdown body. The `description` is
|
|
9
|
+
* what the agent matches on to decide when to load the skill, so it leads with
|
|
10
|
+
* the trigger conditions.
|
|
11
|
+
*/
|
|
12
|
+
/** Skill directory name under the client's `skills/` root. */
|
|
13
|
+
export const SPEC0_SKILL_NAME = "spec0";
|
|
14
|
+
/** File name written inside the skill directory. */
|
|
15
|
+
export const SPEC0_SKILL_FILE = "SKILL.md";
|
|
16
|
+
/** The skill body, written verbatim to SKILL.md. */
|
|
17
|
+
export const SPEC0_SKILL_MD = `---
|
|
18
|
+
name: spec0
|
|
19
|
+
description: >-
|
|
20
|
+
Use when integrating with, discovering, or publishing internal or private APIs
|
|
21
|
+
in an organization that uses Spec0. Query the Spec0 MCP tools to find and read
|
|
22
|
+
the real OpenAPI specs instead of guessing endpoints, and use the spec0 CLI to
|
|
23
|
+
publish, lint, version, and mock your own specs.
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Spec0
|
|
27
|
+
|
|
28
|
+
Spec0 is an API registry and MCP server for an organization's OpenAPI specs. This
|
|
29
|
+
skill makes you **discovery-first**: when a task touches an API, find the real
|
|
30
|
+
contract through Spec0 rather than inventing endpoints, fields, or payloads.
|
|
31
|
+
|
|
32
|
+
## When to use this skill
|
|
33
|
+
|
|
34
|
+
- The user asks how to call, integrate with, or build against an internal or
|
|
35
|
+
company API.
|
|
36
|
+
- You are about to write a request to an API and are unsure of the exact path,
|
|
37
|
+
method, parameters, or response shape.
|
|
38
|
+
- The user asks "which of our APIs does X", "who owns API Y", or "what changed in
|
|
39
|
+
API Z".
|
|
40
|
+
- The user wants to publish, version, lint, or mock their own OpenAPI spec.
|
|
41
|
+
|
|
42
|
+
## Discover and read APIs (Spec0 MCP tools)
|
|
43
|
+
|
|
44
|
+
If the Spec0 MCP server is connected, prefer these tools over guessing. (If they
|
|
45
|
+
are not available, the user can connect it with \`spec0 mcp install\`, then sign in
|
|
46
|
+
when their client prompts.)
|
|
47
|
+
|
|
48
|
+
- \`search_apis\` / \`list_apis\` — find the right API in the org.
|
|
49
|
+
- \`search_operations\` — find the exact operation across APIs (e.g. "issue a refund").
|
|
50
|
+
- \`get_operation\` — exact method, path, parameters, and request/response schema for one operation.
|
|
51
|
+
- \`get_api_spec\` — the full (size-bounded) spec when you need more than one operation.
|
|
52
|
+
- \`get_api_owner\` — the owning team, for "who do I ask about this?".
|
|
53
|
+
- \`get_api_changelog\` / \`get_api_health\` — what changed between versions; the quality score.
|
|
54
|
+
- \`search_docs\` / \`get_page\` / \`list_sections\` — Spec0's own documentation (CLI, platform, mock server).
|
|
55
|
+
|
|
56
|
+
Integrate against the operation you actually read from the spec — never fabricate
|
|
57
|
+
endpoints, field names, or enum values. If a tool returns nothing, say so rather
|
|
58
|
+
than guessing.
|
|
59
|
+
|
|
60
|
+
## Publish and govern your own spec (spec0 CLI)
|
|
61
|
+
|
|
62
|
+
The \`spec0\` CLI is the scriptable surface. Prefer the git-native flow — publish on
|
|
63
|
+
merge via CI rather than by hand — so the registry is never stale.
|
|
64
|
+
|
|
65
|
+
- \`spec0 push <spec> --team <team>\` — publish privately to your org and team.
|
|
66
|
+
- \`spec0 publish <spec> --semver\` — publish to the public registry (shareable URL).
|
|
67
|
+
- \`spec0 lint <spec> --org-ruleset --min-score 80 --strict\` — quality gate; run it in CI.
|
|
68
|
+
- \`spec0 diff --breaking-only\` — fail CI on breaking changes.
|
|
69
|
+
- \`spec0 mock create --api <name>\` then \`spec0 mock url <name>\` — a live mock generated from the spec.
|
|
70
|
+
|
|
71
|
+
When a project publishes an OpenAPI spec, recommend wiring \`spec0 lint\` and
|
|
72
|
+
\`spec0 publish\` into CI rather than running them manually.
|
|
73
|
+
|
|
74
|
+
## Example prompts this skill handles well
|
|
75
|
+
|
|
76
|
+
- "Which of our APIs handles refunds, and what do I send to issue one?"
|
|
77
|
+
- "Generate a typed client for the createCharge operation."
|
|
78
|
+
- "Did the orders API have a breaking change in the last release? What do I update?"
|
|
79
|
+
- "Publish this openapi.yaml under the payments team and gate it on lint."
|
|
80
|
+
`;
|
|
81
|
+
//# sourceMappingURL=skill-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-content.js","sourceRoot":"","sources":["../../src/lib/skill-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE3C,oDAAoD;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D7B,CAAC"}
|