agentleFS
kostiantyn-matseborakostiantyn-matsebora/canopy-examples/.agents/skills/canopy/SKILL.md

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.

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
  1. Very specific:

    IF << context.operation requires an explicit skill name (IMPROVE, MODIFY, VALIDATE, SCAFFOLD, CONVERT_TO_CANOPY, CONVERT_TO_REGULAR) AND …

    line 44
  2. Distinctive:

    ASK << Which skill should I {context.operation}?

    line 45
  3. Very specific:

    Read ../canopy-runtime/SKILL.md for the canopy execution engine overview

    line 47
  4. Very specific:

    Read ../canopy-runtime/references/runtime-claude.md for Claude Code runtime rules

    line 48
  5. Very specific:

    Read ../canopy-runtime/references/ops.md for the primitive-slice index (load specific slices on demand from individual ops)

    line 49
  6. Very specific:

    Read ../canopy-runtime/references/skill-resources.md for category semantics, op lookup chain, tree format, manifest, subagent contract

    line 50
  7. Very specific:

    Read ../canopy-runtime/references/runtime-copilot.md for Copilot runtime rules

    line 53
  8. Very specific:

    Read references/ops/create.md and execute the CREATE procedure

    line 58
  9. Very specific:

    Read references/ops/modify.md and execute the MODIFY procedure

    line 60
  10. Very specific:

    Read references/ops/scaffold.md and execute the SCAFFOLD procedure

    line 62
  11. Very specific:

    Read references/ops/convert-to-canopy.md and execute the CONVERT_TO_CANOPY procedure

    line 64
  12. Very specific:

    Read references/ops/validate.md and execute the VALIDATE procedure

    line 66
  13. Very specific:

    Read references/ops/improve.md and execute the IMPROVE procedure

    line 68
  14. Very specific:

    Read references/ops/advise.md and execute the ADVISE procedure

    line 70
  15. Very specific:

    Read references/ops/refactor-skills.md and execute the REFACTOR_SKILLS procedure

    line 72
  16. Very specific:

    Read references/ops/convert-to-regular.md and execute the CONVERT_TO_REGULAR procedure

    line 74
  17. Very specific:

    Read references/ops/activate.md and execute the ACTIVATE procedure

    line 76
  18. Very specific:

    Read references/ops/measure-context.md and execute the MEASURE_CONTEXT procedure

    line 78
  19. Very specific:

    Read references/ops/help.md and execute the HELP procedure

    line 80
  20. Distinctive:

    ASK << Could not determine the operation.

    line 82
  21. Distinctive:

    Never overwrite existing files without confirmation

    line 86
  22. Distinctive:

    Always show a plan before making any changes

    line 88
  23. Very specific:

    Do not change a skill's logic or intent during CONVERT_TO_CANOPY, MODIFY, or VALIDATE

    line 91
  24. Very specific:

    Before creating any op or resource file, consult the slice index ../canopy-runtime/references/ops.md (loaded up-front) and any existing …

    line 97
  25. Very specific:

    After any change to a skill or agent file, verify every Read \<category-path>/<file>\`` reference and every op procedure path still …

    line 98

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Runtime required. This skill uses Canopy tree notation; canopy-runtime must be active.

Detect canopy-runtime — present if either:

  • canopy-runtime/SKILL.md exists under .claude/skills/, .github/skills/, or .agents/skills/, OR
  • a canopy-runtime marker block exists in CLAUDE.md or .github/copilot-instructions.md.

If neither is present — install canopy-runtime first (see the compatibility field for the source and install options), then re-invoke this skill.

Do not interpret the ## Tree without 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.md for the canopy execution engine overview
      • Read ../canopy-runtime/references/runtime-claude.md for Claude Code runtime rules
      • Read ../canopy-runtime/references/ops.md for the primitive-slice index (load specific slices on demand from individual ops)
      • Read ../canopy-runtime/references/skill-resources.md for category semantics, op lookup chain, tree format, manifest, subagent contract
    • ELSE
      • Read ../canopy-runtime/SKILL.md for the canopy execution engine overview
      • Read ../canopy-runtime/references/runtime-copilot.md for Copilot runtime rules
      • Read ../canopy-runtime/references/ops.md for the primitive-slice index (load specific slices on demand from individual ops)
      • Read ../canopy-runtime/references/skill-resources.md for category semantics, op lookup chain, tree format, manifest, subagent contract
    • SWITCH << context.operation
      • CASE << "CREATE"
        • Read references/ops/create.md and execute the CREATE procedure
      • CASE << "MODIFY"
        • Read references/ops/modify.md and execute the MODIFY procedure
      • CASE << "SCAFFOLD"
        • Read references/ops/scaffold.md and execute the SCAFFOLD procedure
      • CASE << "CONVERT_TO_CANOPY"
        • Read references/ops/convert-to-canopy.md and execute the CONVERT_TO_CANOPY procedure
      • CASE << "VALIDATE"
        • Read references/ops/validate.md and execute the VALIDATE procedure
      • CASE << "IMPROVE"
        • Read references/ops/improve.md and execute the IMPROVE procedure
      • CASE << "ADVISE"
        • Read references/ops/advise.md and execute the ADVISE procedure
      • CASE << "REFACTOR_SKILLS"
        • Read references/ops/refactor-skills.md and execute the REFACTOR_SKILLS procedure
      • CASE << "CONVERT_TO_REGULAR"
        • Read references/ops/convert-to-regular.md and execute the CONVERT_TO_REGULAR procedure
      • CASE << "ACTIVATE"
        • Read references/ops/activate.md and execute the ACTIVATE procedure
      • CASE << "MEASURE_CONTEXT"
        • Read references/ops/measure-context.md and execute the MEASURE_CONTEXT procedure
      • CASE << "HELP"
        • Read references/ops/help.md and execute the HELP procedure
      • 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

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 ## Tree must have a compatibility field 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-hint and user-invocable go inside metadata
  • 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.md or ../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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.