@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.
@@ -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,QAmEnD"}
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"}
@@ -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
- const client = opts.client.toLowerCase();
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
@@ -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;AA6TpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAuBnD"}
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"}
@@ -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":"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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spec0/cli",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Spec0 CLI — publish API specs, create mock servers, lint, and interact with the Spec0 platform",
5
5
  "main": "dist/index.js",
6
6
  "bin": {