Skills
What it does
Section titled “What it does”hyodo skills treats a skill (a Markdown file with - rule bullets) as a
lens rather than a menu. ingest records a source and compiles its rules
into .hyodo/skills/manifest.json; lens re-parses every ingested source
live and reports, per pillar, an integer observed / expected coverage
count and a passed / observed coherence count; propose renders a
tailored skill made of the rules that currently pass. Everything is pure
stdlib, re-derived from the source file each run — no model, no RAG, no
embeddings, no vector store anywhere in this feature.
hyodo skills ingest my-team/SKILL.mdhyodo skills lensOnly four rule-text prefixes compile into a mechanical, executed check
(require file:, forbid pattern:, require pattern:, ruff:); anything
else is advisory and listed under unobserved.
What is stored
Section titled “What is stored”- Compiled rule ids, pillar assignment, and pass/fail state in
.hyodo/skills/manifest.json. - A
content_digestandstatus("unreadable"when a source cannot be read) for every ingested source.
What is never stored
Section titled “What is never stored”- A skill’s raw body, unless
--store-bodyis passed oningest. - A
url:source’s contents — only its domain is recorded; HyoDo never fetches a URL over the network in this package. - A percentage, probability, or confidence value anywhere in a lens report.
- A vector or embedding from a
--from-noderesearch-node hand-off — only rule text, digests, and an ordinalscore_rankare accepted; ascoreorprobabilityfield on a retrieved item is rejected outright.
Exit codes
Section titled “Exit codes”| Command | ALLOW | DENY | UNOBSERVED | ASK |
|---|---|---|---|---|
skills ingest |
0 | 1 | 2 | 3 |
skills lens |
0 | n/a | 2 (malformed manifest) | n/a |
skills propose |
0 | n/a | n/a | n/a |
Ingesting a skill is an unconditional external variable, like a web fetch —
it stays ASK at trust level 2 and only clears automatically at trust
level 3.
Full reference
Section titled “Full reference”docs/SKILLS.md in the repository covers rule ids, pillar keyword mapping, and the research-node contract in full.