Canopy
Authors, validates, improves, scaffolds, and refactors Canopy skills using a structured control-flow notation (IF, ELSE_IF, ELSE, SWITCH, CASE, DEFAULT, FOR_EACH, BREAK, END, ASK, SHOW_PLAN, VERIFY_EXPECTED). Use when creating, modifying, debugging, or reviewing skills under `.claude/skills/` or `.github/skills/`, when the user mentions canopy, ops, control-flow notation, or skill scaffolding, or asks to convert a regular skill into a Canopy skill (and vice versa). Supports both Claude Code and GitHub Copilot.From its SKILL.md
npx -y skills add kostiantyn-matsebora/canopy --skill canopyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.7 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Runtime required. This skill uses Canopy tree notation; canopy-runtime must be active.
Detect canopy-runtime — present if either:
canopy-runtime/SKILL.mdexists under.claude/skills/,.github/skills/, or.agents/skills/, OR- a canopy-runtime marker block exists in
CLAUDE.mdor.github/copilot-instructions.md.If neither is present — install canopy-runtime first (see the
compatibilityfield for the source and install options), then re-invoke this skill.Do not interpret the
## Treewithout canopy-runtime active.
$ARGUMENTS
Agent
explore — execute FETCH_DISPATCH_CONTEXT. Output contract: assets/schemas/dispatch-schema.json.
Tree
- canopy
- EXPLORE >> context
- IF << context.operation requires an explicit skill name (IMPROVE, MODIFY, VALIDATE, SCAFFOLD, CONVERT_TO_CANOPY, CONVERT_TO_REGULAR) AND context.target_skill is null
- ASK << Which skill should I {context.operation}? Please name it explicitly.
- IF << context.platform == "claude"
- Read
../canopy-runtime/SKILL.mdfor the canopy execution engine overview - Read
../canopy-runtime/references/runtime-claude.mdfor Claude Code runtime rules - Read
../canopy-runtime/references/ops.mdfor the primitive-slice index (load specific slices on demand from individual ops) - Read
../canopy-runtime/references/skill-resources.mdfor category semantics, op lookup chain, tree format, manifest, subagent contract
- Read
- ELSE
- Read
../canopy-runtime/SKILL.mdfor the canopy execution engine overview - Read
../canopy-runtime/references/runtime-copilot.mdfor Copilot runtime rules - Read
../canopy-runtime/references/ops.mdfor the primitive-slice index (load specific slices on demand from individual ops) - Read
../canopy-runtime/references/skill-resources.mdfor category semantics, op lookup chain, tree format, manifest, subagent contract
- Read
- SWITCH << context.operation
- CASE << "CREATE"
- Read
references/ops/create.mdand execute the CREATE procedure
- Read
- CASE << "MODIFY"
- Read
references/ops/modify.mdand execute the MODIFY procedure
- Read
- CASE << "SCAFFOLD"
- Read
references/ops/scaffold.mdand execute the SCAFFOLD procedure
- Read
- CASE << "CONVERT_TO_CANOPY"
- Read
references/ops/convert-to-canopy.mdand execute the CONVERT_TO_CANOPY procedure
- Read
- CASE << "VALIDATE"
- Read
references/ops/validate.mdand execute the VALIDATE procedure
- Read
- CASE << "IMPROVE"
- Read
references/ops/improve.mdand execute the IMPROVE procedure
- Read
- CASE << "ADVISE"
- Read
references/ops/advise.mdand execute the ADVISE procedure
- Read
- CASE << "REFACTOR_SKILLS"
- Read
references/ops/refactor-skills.mdand execute the REFACTOR_SKILLS procedure
- Read
- CASE << "CONVERT_TO_REGULAR"
- Read
references/ops/convert-to-regular.mdand execute the CONVERT_TO_REGULAR procedure
- Read
- CASE << "ACTIVATE"
- Read
references/ops/activate.mdand execute the ACTIVATE procedure
- Read
- CASE << "MEASURE_CONTEXT"
- Read
references/ops/measure-context.mdand execute the MEASURE_CONTEXT procedure
- Read
- CASE << "HELP"
- Read
references/ops/help.mdand execute the HELP procedure
- Read
- DEFAULT
- ASK << Could not determine the operation. What would you like to do? | Create a skill | Modify a skill | Scaffold a skill | Validate a skill | Improve a skill | Advise | Refactor skills | Convert to regular | Activate runtime | Measure context | Help
- CASE << "CREATE"
Rules
- Never overwrite existing files without confirmation
- For ops that target a specific skill (IMPROVE, MODIFY, VALIDATE, SCAFFOLD, CONVERT_TO_CANOPY, CONVERT_TO_REGULAR): if the skill name is not stated explicitly, ASK before proceeding — never infer from natural language descriptions or loop over multiple skills
- Always show a plan before making any changes
- Preserve the skill's existing tree syntax style (markdown list vs box-drawing) unless the user asks to switch
- Preserve the skill's existing directory layout (legacy flat vs. standard
scripts//references//assets/) during MODIFY — IMPROVE may migrate it on user opt-in - Do not change a skill's logic or intent during CONVERT_TO_CANOPY, MODIFY, or VALIDATE
- SKILL.md must contain only orchestration — no inline JSON, YAML, tables, scripts, or templates
- Skill files must be exactly
SKILL.md(uppercase) — case-sensitive filesystems require this - Skills with
## Treemust have acompatibilityfield declaring canopy-runtime requirement and a safety preamble guard block at the top of the body - Frontmatter root contains only spec-allowed fields (
name,description,license,compatibility,metadata,allowed-tools);argument-hintanduser-invocablego insidemetadata - Framework primitives (IF, ELSE_IF, ELSE, SWITCH, CASE, DEFAULT, FOR_EACH, PARALLEL, BREAK, END, ASK, SHOW_PLAN, EXPLORE, VERIFY_EXPECTED) are never defined in skill or project ops — they live in canopy-runtime's primitive slices (indexed by
../canopy-runtime/references/ops.md; per-slice files under../canopy-runtime/references/ops/) - Before creating any op or resource file, consult the slice index
../canopy-runtime/references/ops.md(loaded up-front) and any existing project-wide ops the consumer has defined — reference shared content, never duplicate it - After any change to a skill or agent file, verify every
Read \<category-path>/<file>`` reference and every op procedure path still resolves to an existing file - The platform runtime spec (
../canopy-runtime/references/runtime-claude.mdor../canopy-runtime/references/runtime-copilot.md) is loaded up-front by this skill's tree and is in context for every op procedure
Response: operation | platform | target_skill | outcome
What ships with it: 38 files
116.8 KB alongside SKILL.md
assets/
- constants/apply-block-protocol.md466 B
- constants/category-dirs.md3.7 KB
- constants/control-flow-notation.md2.6 KB
- constants/operation-detection.md1.5 KB
- constants/operations-dispatch.md756 B
- constants/platform-detection.md1.8 KB
- constants/target-platform-triggers.md584 B
- constants/validate-checks.md7.9 KB
- policies/authoring-rules.md22.1 KB
- policies/category-decision-flowchart.md1.8 KB
- policies/conversion-expansion-rules.md1.6 KB
- policies/platform-targeting.md1.5 KB
- policies/preservation-rules.md1007 B
- schemas/dispatch-schema.json2.1 KB
- schemas/explore-schema.json1.8 KB
- templates/ops.md196 B
- templates/skill.md1.3 KB
- verify/activate-expected.md1.1 KB
- verify/convert-to-canopy-expected.md1.2 KB
- verify/convert-to-regular-expected.md1.3 KB
- verify/create-expected.md1.4 KB
- verify/improve-expected.md1.4 KB
- verify/modify-expected.md777 B
- verify/refactor-skills-expected.md1.3 KB
- verify/scaffold-expected.md1.1 KB
references/
- ops/activate.md3.2 KB
- ops/advise.md2.9 KB
- ops/convert-to-canopy.md5.4 KB
- ops/convert-to-regular.md2.2 KB
- ops/create.md4.8 KB
- ops/fetch-dispatch-context.md1.2 KB
- ops/help.md5.5 KB
- ops/improve.md8.8 KB
- ops/measure-context.md4.4 KB
- ops/modify.md1.4 KB
- ops/refactor-skills.md5.5 KB
- ops/scaffold.md5.3 KB
- ops/validate.md4.1 KB
Gives 0 of the 12 instructions most context ai engineering skills give in ~1.4k tokens
Counted across 1,328 of the 2,349 authors here whose files we hold, read 2026-09-06
- Dispatch a fresh subagent for each taskin 76 of 1328, across 59 files
- Perform spec compliance review before code quality reviewin 44 of 1328, across 34 files
- Dispatch a final code reviewer after all tasksin 38 of 1328, across 26 files
- Answer subagent questions before allowing implementationin 36 of 1328, across 26 files
- Use the least powerful model capable of the taskin 33 of 1328, across 26 files
- Create a TodoWrite list for all tasksin 32 of 1328, across 22 files
- Perform a task review after each implementationin 31 of 1328, across 24 files
- Extract all tasks and context from the planin 29 of 1328, across 20 files
- Provide full task text to subagentsin 28 of 1328, across 20 files
- Use git worktrees for isolated workspacesin 25 of 1328, across 20 files
- Specify the model explicitly when dispatching a subagentin 23 of 1328, across 18 files
- Execute all tasks from the plan without stoppingin 21 of 1328, across 16 files
Said here and by no other author read
- Install canopy-runtime if not detected
- Execute FETCH_DISPATCH_CONTEXT to explore
- Ask for explicit skill name if missing
- Show a plan before making changes
- Read runtime rules based on platform
- Consult slice index before creating files
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.