kcp-skill · playground

lint governed KCP skills in your browser — the real linter, running live
● running bin/lint.mjs

A governed skill is a kind: skill unit with an action_scope — the tools, paths, and capabilities it may enact (KCP v0.26 §4.3a). It fails closed: no explicit grant, no action. Edit the manifest below — or load a conformance vector — and the actual lintManifest() from bin/lint.mjs runs on every keystroke.

load a vector: 01 · minimal-valid 02 · ungoverned 03 · absolute-path 04 · bad-field-types 05 · non-skill-kinds ▶ run all vectors 🔗 copy link
manifest · knowledge.yaml
linter verdict
▶ enact — the envelope, live
Fire a tool call at the manifest's first skill. Anything outside its action_scope is blocked — the fail-closed runtime proxy, playable. Edit the envelope above and the verdicts change.
✨ draft a governed skill — generation meets enforcement
Describe a procedure. Claude drafts a kind: skill manifest — fail-closed, minimal envelope — which drops into the editor above and lints live. Era V (generation) meeting Era IV (enforcement) in one box.
🔒 Bring-your-own-key. Stored only in this browser (localStorage), sent directly to api.anthropic.com — never to us, Cantara, or GitHub. Nothing shared or logged.
The rules — SK001–SK008 (v0.1 profile)
SK001Skill unit must declare id, path, and intent. (error)
SK002No action_scope — the skill is ungoverned; declare its envelope. (warning)
SK003action_scope must be a mapping; each field an array of non-empty strings. (error)
SK004paths entries must be relative — no absolute paths, no .. traversal. (error)
SK005Unknown action_scope field — carried, not enforced. (warning)
SK006audience should include agent to be agent-selectable. (warning)
SK007capabilities empty/omitted — fail-closed default: the skill renders pointer-only. (info)
SK008intent should read as a question or task description. (warning)
The real linter, live. This page runs lintManifest() verbatim from bin/lint.mjs — the same function the repo's CI and any consumer's conformance suite run. The five vectors are the shipped vectors/; loading one and clicking “run all” checks the live verdict against each expected.json.
Cantara/kcp-skill · authoring profile · KCP spec · runtime enforcement: pi-kcp / kcp-harness