From 4ebfe5956626f1cfcfca2e9bfa44d12f51157795 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Jul 2026 13:59:15 +0000 Subject: [PATCH] =?UTF-8?q?fix(spec):=20correct=20skill=20`surface`=20comm?= =?UTF-8?q?ent=20=E2=80=94=20`ask`=20is=20not=20the=20open-source/free=20s?= =?UTF-8?q?urface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The JSDoc on SkillSchema.surface described the default `'ask'` value as "the open-source/free surface." That is inaccurate: per cloud ADR-0025 the in-product agent runtime for BOTH `ask` and `build` ships in the cloud / Enterprise distribution (the open edition is MCP-only, BYO-AI). The `surface` value is authoring metadata — which agent a skill binds to — not an edition gate. Comment-only: the Zod `.describe()` string and the schema itself are unchanged, so generated reference docs and runtime behavior are unaffected. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01LHQscZJ8NvXceSmsPNdTZd --- packages/spec/src/ai/skill.zod.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/spec/src/ai/skill.zod.ts b/packages/spec/src/ai/skill.zod.ts index d5d3084b2f..0f899a9b76 100644 --- a/packages/spec/src/ai/skill.zod.ts +++ b/packages/spec/src/ai/skill.zod.ts @@ -77,7 +77,9 @@ export const SkillSchema = lazySchema(() => z.object({ * matches either); the runtime enforces this at load time. An agent's * tool set is the union of its surface-compatible skills' tools — there * is no global fall-through (ADR-0064). Defaults to `'ask'`, the - * open-source/free surface. + * data-console surface. (Both the `ask` and `build` in-product agent + * runtimes ship in the cloud / Enterprise distribution per ADR-0025; + * the surface value here is authoring metadata, not an edition gate.) */ surface: z.enum(['ask', 'build', 'both']).default('ask').describe( "Agent surface this skill binds to ('ask' | 'build' | 'both') — ADR-0063 §3",