You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
agentskills.io standard layout: framework skills migrated to the spec-aligned layout — only SKILL.md at the root, with scripts/ (executable code), references/ (docs loaded on demand, including ops.md / ops/), and assets/ (static resources: templates/, constants/, schemas/, checklists/, policies/, verify/). Old flat layout (category dirs at the skill root) remains fully supported by canopy-runtime — Read references resolve literally. /canopy improve can migrate legacy skills on user opt-in.
compatibility field on every ## Tree skill: spec-compliant free-text declaring the canopy-runtime requirement and its source repo, listing install tools as alternatives (gh skill install, git clone, install.sh/install.ps1, plugin marketplace) so the agent picks the install method its environment supports. Per agentskills.io spec, compatibility is a max-500-char string — structured shapes like compatibility: { requires: [...] } are non-spec and rejected by /canopy validate / migrated by /canopy improve. Authoring ops (CREATE, SCAFFOLD, CONVERT_TO_CANOPY, MODIFY) emit the canonical free-text form automatically.
Safety preamble on every ## Tree skill: a fail-fast guard block at the top of the body that halts execution on agents without canopy-runtime active. Prevents silent wrong execution on unsupported platforms.
canopy-runtime self-activation: canopy-runtime/SKILL.md now includes an Activation section that writes the marker block to CLAUDE.md (Claude Code) or .github/copilot-instructions.md (Copilot). Replaces the explicit /canopy:canopy activate step for all install paths.
Who writes the marker block, by install path:
install.sh / install.ps1 — the script writes it during install. Shell-context, no agent to defer to → project is fully activated when install completes.
gh skill install — file placement only. Marker block is written by the next agent invocation that loads canopy-runtime/SKILL.md and runs Activation.
Claude Code plugin marketplace — same as gh skill install: file placement only; agent writes the block on first load.
Idempotent — running Activation on a fully activated project is a no-op.
Repo context detection: CREATE and SCAFFOLD choose the target skill location based on context.repo_context — distribution repos (skills/ at root) get skills written to skills/<name>/; consumer projects get them in .claude/skills/<name>/ or .github/skills/<name>/.
Cross-skill extraction constraint: REFACTOR_SKILLS now requires extracted shared logic to become a complete, named, installable skill (with its own SKILL.md, compatibility field, and safety preamble); dependent skills declare it via compatibility. No more bare shared files referenced from sibling directories — preserves agentskills.io skill autonomy.
SKILL.md uppercase enforcement: validate.sh and /canopy validate flag lowercase skill.md files. Required for case-sensitive filesystems (Linux, macOS APFS) and for gh skill install discovery.
Frontmatter compliance enforcement: argument-hint and user-invocable are non-spec at frontmatter root and must live inside metadata. validate.sh rejects root-level placement.
Cross-client install target (agentskills.io spec): a single install at .agents/skills/ serves both Claude Code and GitHub Copilot. canopy-runtime self-identifies the active host at runtime and applies the matching runtime spec (runtime-claude.md or runtime-copilot.md) — no path-derived platform detection. Cross-client is additive; existing claude / copilot / both install targets are preserved.
install.sh --target agents and install.ps1 -Target agents install to .agents/skills/. Marker block goes to whichever instructions file already exists (CLAUDE.md and/or .github/copilot-instructions.md); CLAUDE.md is created as fallback.
gh skill install ... --dir .agents/skills is the equivalent path for the gh-CLI flow. Newer gh (2.91+) defaults Copilot installs to .agents/skills/ automatically.
VSCode extension's install commands include a Cross-client pick alongside Claude Code, Copilot, and Both, in both the install-script and gh-skill flows.
Skills-root resolution in canopy-runtime: <skills-root> is the first matching directory containing canopy-runtime/SKILL.md. Recognized roots, in order: .agents/skills/ → .claude/skills/ → .github/skills/. dispatch-schema.json's explicit_target_platform enum gains cross-client.
ops.md and ops/ moved under references/ (as documentation loaded on demand, per the agentskills.io progressive-disclosure pattern).
All static resource directories (schemas/, templates/, constants/, checklists/, policies/, verify/) moved under assets/.
IMPROVE op extended with agentskills.io compliance checks: missing compatibility, missing safety preamble, root-level argument-hint/user-invocable, lowercase skill.md, structured-object compatibility (migrated to spec-compliant free-text). Optionally migrates legacy flat layout to the standard layout.
CONVERT_TO_REGULAR op now strips compatibility field and safety preamble (regular agentskills.io skills don't require them).
canopy-runtime category-directory documentation updated for new layout in skill-resources.md, framework-ops.md, runtime-claude.md, runtime-copilot.md.
canopy-runtime platform detection moved from path-derived to runtime self-identification — the agent identifies itself (Claude Code / Copilot / other) instead of inferring from the skills-root path. runtime-claude.md and runtime-copilot.md use the abstract <skills-root> placeholder so both specs work regardless of install location.
Marker block content restructured as bulleted (with nested) lists for readability and updated to mention all three skills roots. CI parity check across marker-block.md, install.sh, install.ps1, and the vscode extension's MARKER_BLOCK constant still enforced.
Marker block canonical file moved from skills/canopy/assets/constants/marker-block.md to skills/canopy-runtime/assets/constants/marker-block.md. Reason: gh skill install canopy-runtime does not transitively pull canopy; the runtime must be self-contained for activation. Authoring ops (/canopy activate) cross-reference the new location via ../canopy-runtime/....
Notes
Not a breaking change: existing consumer skills using the legacy flat layout continue to execute correctly. canopy-runtime resolves Read references literally; old skills don't need migration. Existing --target claude / copilot / both install flows unchanged. Cross-client is purely additive.
VSCode extension claude-canopy-vscode updated in lockstep — language ID file patterns rewritten for new layout (commands/*.{ps1,sh} → scripts/*.{ps1,sh}; templates/* → assets/templates/*; etc.) AND extended to also recognize .agents/skills/ paths. Diagnostics flag old-layout skills with a "consider migrating" hint.