Canopy: Because AI Skills Deserve Better Than Vague Instructions

dev.to

Hey Devs 👋,

Ever tried teaching an AI a new skill with a wall of text, only to have it do something... unexpected? Yeah, me too. That’s why I made Canopy.

What’s Canopy?

Canopy is an open-source workspace where you write AI skills as code, not as mysterious instructions that only sometimes work (and only on Tuesdays).

With Canopy, you can:

  • Turn “do what I mean” into “do what I code”
  • Actually test and debug your AI skills (no more guesswork)
  • Build a collection of skills you can reuse, instead of rewriting the same thing every time

Why Bother?

Because:

  • Code is less moody than prose
  • You’ll spend less time arguing with your AI
  • Debugging is easier when you know what’s actually happening

Example: Bump Version and Update Changelog

Here’s a real example of a skill you can write with Canopy.

This one bumps the version across your project files and updates the changelog—no more “Did I forget to update that one file?” moments:

---
name: release
description: "Bumpversionacrossfilesandupdatechangelog."
argument-hint: "[major|minor|patch]"
---

Parse `$ARGUMENTS` to determine version bump strategy.

---

## Agent

**explore** — reads the project structure: current version in package.json,
pyproject.toml, and other version-bearing files; lists all files needing updates.

---

## Tree

* release
  * EXPLORE >> current_version | version_files
  * SHOW_PLAN >> new_version | files | changelog
  * ASK << Proceed? | Yes | No
  * IF << Yes
    * BUMP_FILES << version_files | new_version
    * IF << CHANGELOG.md exists
      * ADD_CHANGELOG_ENTRY << new_version
    * VERIFY_EXPECTED << verify/verify-expected.md
  * ELSE
    * natural language: Cancelled by user.

## Rules

* Never overwrite version files without confirmation via `SHOW_PLAN` and `ASK`.
* Verify all files were updated before responding.
Enter fullscreen mode Exit fullscreen mode

With this, you get a repeatable, testable process for releasing your project—no more manual version bumps or missed changelog entries.

A Little Disclaimer

This project started as my way to learn Claude, so please don’t judge me too hard 😅. I’m sure there are rough edges, and I’m always open to feedback (and PRs).

Try It Out

Setup, docs, and more examples are all in the GitHub repo.

PRs, issues, and memes are welcome.


Questions? Suggestions? AI horror stories? Drop them below!

Source: dev.to

arrow_back Back to News