agentleFS
Runtime-3rr0rRuntime-3rr0r/canvas-scanner/skills/suite-update/SKILL.md

suite-update

Skill2 starsChanged 57 days agoMITView on GitHub

Use when checking the canvas-scanner repo for updates.

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 4 are distinctive, and 2 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.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When the user says "check for updates", "pull the suite", "is there a new version"

    line 13
  2. Distinctive:

    After the user edits files in this suite that deserve publishing (see below)

    line 14
  3. Very specific:

    Do NOT compare the parent's latest commit SHA against the local VERSION git_sha line: the parent's HEAD is always the "stamp VERSION" …

    line 40
  4. Very specific:

    If newer: re-download the repo zip (https://github.com/Runtime-3rr0r/canvas-scanner/archive/refs/heads/main.zip), swap the folders, then …

    line 74
  5. Distinctive:

    Never publish secrets. If a scan of the suite finds credentials, redact first.

    line 85
  6. Distinctive:

    After pulling new skills, they appear in the catalog next session (session cache).

    line 92

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

Suite Update (auto-sync from the parent repo)

The parent repo canvas-scanner (https://github.com/Runtime-3rr0r/canvas-scanner) is the single source of truth for this suite: skills, scripts, docs, README. Users do NOT need their own GitHub account or repo; the parent is checked anonymously (public repo).

When to Use

  • On session start (or weekly), unless the user opts out
  • When the user says "check for updates", "pull the suite", "is there a new version"
  • After the user edits files in this suite that deserve publishing (see below)

Where the local VERSION lives

  • Git-clone install: VERSION at the clone root.
  • Zip/folder install: VERSION at the unzipped folder root.
  • setup.sh install: copied to $HERMES_HOME/canvas-scanner-version (~/.hermes on macOS/Linux, %LOCALAPPDATA%\hermes on Windows).

Check procedure (no login required)

First determine the install type: does the suite folder contain a .git directory?

Git-clone installs

The clone knows its own position relative to the parent branch; no API call needed:

git -C <suite dir> fetch origin
git -C <suite dir> rev-list --count HEAD..origin/main
  • 0 → up to date (report the local version).
  • > 0 → update available; apply with git -C <suite dir> pull --ff-only, then read what changed: git -C <suite dir> log --oneline HEAD@{1}..HEAD.

Do NOT compare the parent's latest commit SHA against the local VERSION git_sha line: the parent's HEAD is always the "stamp VERSION" commit, which sits one commit AFTER the content commit that git_sha records. Comparing SHAs therefore reports a phantom update on every check, even when current. git_sha is provenance only; updates are decided by branch position or version number.

Zip/folder installs

Compare version NUMBERS, local vs parent. The parent's VERSION is served as a raw file, so this uses no GitHub API quota:

grep '^version:' "$HERMES_HOME/canvas-scanner-version" 2>/dev/null \
  || grep '^version:' <suite dir>/VERSION       # local
curl -s https://raw.githubusercontent.com/Runtime-3rr0r/canvas-scanner/main/VERSION | grep '^version:'   # parent

Compare the two version: x.y.z values numerically (three dotted ints):

python3 - <<'EOF'
import re, urllib.request
def ver(t):
    m = re.search(r"version:\s*([\d.]+)", t)
    return [int(x) for x in m.group(1).split(".")[:3]]
local = ver(open("<suite dir>/VERSION", encoding="utf-8").read())
parent = ver(urllib.request.urlopen(
    "https://raw.githubusercontent.com/Runtime-3rr0r/canvas-scanner/main/VERSION"
).read().decode())
print("update available" if parent > local else "up to date")
EOF

If newer: re-download the repo zip (https://github.com/Runtime-3rr0r/canvas-scanner/archive/refs/heads/main.zip), swap the folders, then re-run bash scripts/setup.sh --no-install (re-copies skills + templates + refreshes the version file), or re-clone.

Report: version before → after, what changed, and whether any new skill needs the next-session catalog refresh.

Publishing from a fresh machine (only if the user HAS a GitHub account + wants to contribute)

  • The parent repo is the origin's; changes are contributions. Prompt the user for GitHub setup ONLY if they ask to publish: gh auth login (or a PAT with repo scope), fork → PR, or request collaborator access.
  • Never publish secrets. If a scan of the suite finds credentials, redact first.

Pitfalls

  • git pull requires the suite to BE a git clone. Folder installs update by swapping the folder + re-running setup; they do not need git.
  • Local edits to suite files will conflict on pull; git stash or ask the user which copy wins.
  • The parent HEAD is always the "stamp VERSION" commit; never decide updates from it for folder installs (see above).
  • After pulling new skills, they appear in the catalog next session (session cache).
  • raw.githubusercontent.com is not the GitHub API, so it is not rate-limited like the API (60 req/hr anonymous); daily checks are fine.

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.