Files
skill/LLM.md
zooqueen 16571ed9f3 one name for skills, and it can check them
@hanzo/skill installed skills; @hanzo/skills parsed them. Two names differing
only in number are two addresses for one subject, and the parsing half had no
importer at all — its own header claimed app, desktop and the dev harness
consumed it, and none did.

The parser, schema, registry and loader move in beside the installer. The CLI
gains `validate <dir>`: read every SKILL.md with the parser the loaders use and
exit non-zero if any cannot be loaded, so a repository that ships skills can
hold itself to that.

Compiling the tests found four type errors that had never been checked — the
package they came from excluded test/ from tsc and ran them under a runner that
does not typecheck. Three passed an option `recordSource` does not take; one
dereferenced a nullable. 56 tests, one runner.
2026-08-21 11:06:46 -07:00

1.4 KiB

Hanzo Skill

Overview

Install and manage AI agent skills — ~/.hanzo/skills/ as canonical source, symlinked to all agents

Tech Stack

  • Language: TypeScript/JavaScript

Build & Run

npm install && npm run build
npm test

Structure

skill/
  package-lock.json
  package.json
  src/
  tsconfig.json

Key Files

  • package.json -- Dependencies and scripts

License

Dual-licensed MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE), at the user's option. Relicensed from BSD-3-Clause under HIP-0137 "One License" (hanzoai/hips), which standardises original Hanzo work on the dual permissive pair. The prior BSD copyright line carries forward unchanged into LICENSE-MIT.

One name

@hanzo/skill reads a skill, checks it, and installs it. There was a second package, @hanzo/skills, holding the reading half; two names differing only in number are two addresses for one subject, so it was folded in here and deleted.

skill add <org/repo> install a skill repository where every agent looks skill remove take it back out, symlinks and all skill list what is installed skill validate

read every SKILL.md under dir with the same parser the loaders use; exit 1 if any cannot be loaded

A repository that ships skills runs skill validate in its own CI, so a skill no agent could load fails there rather than in a catalogue that still counts it.