canopy
Skill0 starsChanged 6 months agoMITView on GitHub
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.
In this repository10 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- add-changelog-entrySkill
- bump-versionSkill
- canopy-debugSkill
- canopy-runtimeSkill
- generate-readmeSkill
- parallel-reviewSkill
- review-fileSkill
- scaffold-skillSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 4 are distinctive, and 21 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
21
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 44
IF << context.operation requires an explicit skill name (IMPROVE, MODIFY, VALIDATE, SCAFFOLD, CONVERT_TO_CANOPY, CONVERT_TO_REGULAR) AND …
- Distinctive: line 45
ASK << Which skill should I {context.operation}?
- Very specific: line 47
Read ../canopy-runtime/SKILL.md for the canopy execution engine overview
- Very specific: line 48
Read ../canopy-runtime/references/runtime-claude.md for Claude Code runtime rules
- Very specific: line 49
Read ../canopy-runtime/references/ops.md for the primitive-slice index (load specific slices on demand from individual ops)
- Very specific: line 50
Read ../canopy-runtime/references/skill-resources.md for category semantics, op lookup chain, tree format, manifest, subagent contract
- Very specific: line 53
Read ../canopy-runtime/references/runtime-copilot.md for Copilot runtime rules
- Very specific: line 58
Read references/ops/create.md and execute the CREATE procedure
- Very specific: line 60
Read references/ops/modify.md and execute the MODIFY procedure
- Very specific: line 62
Read references/ops/scaffold.md and execute the SCAFFOLD procedure
- Very specific: line 64
Read references/ops/convert-to-canopy.md and execute the CONVERT_TO_CANOPY procedure
- Very specific: line 66
Read references/ops/validate.md and execute the VALIDATE procedure
- Very specific: line 68
Read references/ops/improve.md and execute the IMPROVE procedure
- Very specific: line 70
Read references/ops/advise.md and execute the ADVISE procedure
- Very specific: line 72
Read references/ops/refactor-skills.md and execute the REFACTOR_SKILLS procedure
- Very specific: line 74
Read references/ops/convert-to-regular.md and execute the CONVERT_TO_REGULAR procedure
- Very specific: line 76
Read references/ops/activate.md and execute the ACTIVATE procedure
- Very specific: line 78
Read references/ops/measure-context.md and execute the MEASURE_CONTEXT procedure
- Very specific: line 80
Read references/ops/help.md and execute the HELP procedure
- Distinctive: line 82
ASK << Could not determine the operation.
- Distinctive: line 86
Never overwrite existing files without confirmation
- Distinctive: line 88
Always show a plan before making any changes
- Very specific: line 91
Do not change a skill's logic or intent during CONVERT_TO_CANOPY, MODIFY, or VALIDATE
- Very specific: line 97
Before creating any op or resource file, consult the slice index ../canopy-runtime/references/ops.md (loaded up-front) and any existing …
- Very specific: line 98
After any change to a skill or agent file, verify every Read \<category-path>/<file>\`` reference and every op procedure path still …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

