Skills

Every lesson in this course builds one system: a stablecoin reserve attestation registry that discovers issuers, reads the PDFs they publish, and refuses to publish a field it could not read. What it is and where this lesson sits.

Tier
3 Pro
Build position
17
Throughlines
B Instruction packaging · A Context economics · E Tool surface and trust boundary
Verdict
load-bearing
Commit
28f4948
Demo
scripts/terms/demo-14.ts
Runs in
the course repository

A skill is an instruction package triggered by meaning rather than by a name, and disclosed in two stages rather than one.

Term 9 made a package non-resident: its body waits on disk and a human asks for it by typing /name. A skill changes who does the asking. The description stays resident, the model reads it alongside the task, and the body loads when the description looks relevant.

That is one change, and it moves the failure mode somewhere worse. A slash command that is never typed costs nothing and does nothing, and you can see that. A skill that never triggers also costs nothing and does nothing — and is invisible. The run completes, the output looks fine, and the instruction the author wrote was never in the context at all.

The threshold has two ends and only one of them shouts

threshold  loaded/turn        silent  saturated  tokens  saved
    0.05   1,2,2,0,0,3            2         1     736     41%
    0.20   1,2,2,0,0,3            2         1     736     41%
    0.40   1,1,1,0,0,0            3         0     468   62.5%

Read the saved column and 0.40 looks best. Read the silent column and it is the worst setting on the sweep: half the turns loaded nothing. The saving is real and it is the saving of not doing the work.

Too low is the other failure and it is merely expensive — every skill loads on every turn, which is term 4 with extra steps and a bigger bill. The demo exits non-zero unless the sweep reaches both ends, because a dial presented with one end is not a dial.

UNVERIFIED, and precisely what

The matcher is deterministic keyword overlap. It stands in for a model reading a description and deciding, and it is enough to exercise two-stage disclosure and to price it.

It is not evidence about how a model would choose, and no accuracy claim is made here. Settling that means running the skills against a held-out set of tasks with known correct answers, which is term 21. As with term 10, UNVERIFIED sits on the claim rather than on a number: every token count above is measured.

What the naive matcher taught

The first version scored what is the weather at 50% against report what a run refused to publish — one shared "what" out of two content words — and fired a skill on a task with nothing to do with this pipeline.

Interrogatives are now stop words, and the reason is in the source: a matcher that triggers on question words triggers on questions, which is all of them. This is the sort of thing a keyword matcher does constantly, and it is half the argument for why the real trigger needs measuring rather than assuming.

Break it first

mutation                                     tests                 demo
a zero score still fires at threshold zero   1 failed | 12 passed  exit 0
stop words counted as overlap                4 failed | 9 passed   exit 0
loaded bodies cost nothing                   2 failed | 11 passed  exit 0
silent turns never counted                   2 failed | 11 passed  exit 1

The first row guards a specific collapse. If a zero score fires at threshold zero, the mechanism becomes "load everything, always" — indistinguishable from term 4, with the silent case hidden because nothing is ever silent.

The last row is the one the demo catches, and it should: a sweep that cannot report a silent turn is a sweep that only shows the expensive end.

Where it overlaps

Line B is instruction packaging, and this is the rung where the package decides for itself. Term 4 and term 8 are resident, term 9 is invoked by name, term 20 generalises the same disclosure to everything in context. Line A is context economics: the resident cost is now a description rather than a body, which is the trade this unit prices. Line G is feedback loops, and it is where this unit stops — the trigger's quality is a measurement it cannot take.

A personal teaching project, in development. The registry it builds is a teaching artifact and is not an assurance opinion about any issuer. Not affiliated with or endorsed by any employer, or by any vendor whose tools it describes. Where a unit depends on a specific flag or path, it names the version it was verified against. All units.