Repository navigation
3.0.0: one entry point, one reference
Install
Minimal package: opencode-go-model-picker-3.0.0-min.zip contains only what the skill runs — SKILL.md, references/ (one doc plus two dated seeds), scripts/ (one entry point + modules) and LICENSE. Unzip it into ~/.config/opencode/skills/ so the folder is named opencode-go-model-picker. Verify with node scripts/go.mjs --help (four verbs: run / report / check / apply).
Full notes: CHANGELOG.md · 中文:CHANGELOG-ZH.md
[3.0.0] - 2026-11-01
The size of the simplification
3.0.0 is not a feature release: it is the same job described with an order of
magnitude less text. Measured against the 2.0.0 tag:
| What the model must read | 2.0.0 | 3.0.0 | Change |
|---|---|---|---|
| Markdown files | 7 (SKILL.md + 6 references) |
2 (SKILL.md + plan-facts.md) |
−5 files |
| Characters | 104,181 | 8,291 | 12.6× smaller (−92%) |
| Lines | 1,776 | 168 | 10.6× fewer (−91%) |
| Estimated tokens | ≈27,400 | ≈2,200 | ≈25,200 saved per full read |
SKILL.md alone |
18,804 chars ≈4,900 tok | 4,221 chars ≈1,100 tok | −78% |
| Runnable entry points | 9 runtime scripts (11 with maintainer tools) | 1 (go.mjs) |
−8 runtime |
| Minimal install zip | 128,802 B | 89,163 B | −31% |
A typical 2.0.0 run loaded SKILL.md plus two or three references (≈11–15k
tokens); the same run now loads 8.3k characters, about 2.2k tokens — roughly
80–85% less context before any work starts. Token figures are estimates at
3.8 characters/token (no tokenizer ships with the repo); character and line counts
are exact: git show v2.0.0:SKILL.md | wc -c and the same for each reference.
Code did not shrink — it moved: ~4,700 lines of scripts became ~5,300 lines of
modules plus tests, because the rules that used to be prose (refresh order, basis
selection, priced columns, chain shape, apply diff) are now enforced by code.
Breaking
- One entry point.
scripts/go.mjsreplaces nine scripts —discover-agents,
probe-console,calibrate-usage,quota-math,refresh-snapshot,
refresh-prices,refresh-scores,snapshot-summaryandfetch-go-modelsare
gone. Four verbs:run(agents → Console → usage → refresh → plan diff → basis,
one serial pass, onerun.json),report(table, money columns, config blocks),
check(the gate before delivery),apply(exact diff; writes only with
--write, only the named file, only that agent'smodelvalue). - One reference.
references/plan-facts.mdreplacesquota-math.md,
model-snapshot.md,data-sources.md,agent-sources.md,console-mcp.mdand
output-format.md.SKILL.mddrops from ~19k to ~4k characters and is
model-facing only; teaching moved to the READMEs. - Code over prose. The refresh order (three writers, one snapshot file), the
Basis:line and its denominator, the priced$/sessioncolumn, chain-shape
rules, seed staleness, mode resolution and the apply diff are computed, not
described. The nine self-checks becamego.mjs check. applyrefuses a chain containing a dead id and refuses to write a result that
does not re-parse.
Added
node --test tests/*.test.mjs(built-innode:test, no dependencies):
tests/golden/holds outputs captured from the 2.0.0 scripts and covers pricing,
discovery and the five Console states; CLI tests cover offline degradation, the
report gate, and dry-run versus--write.run --offlinealways produces a dated, seed-labelledrun.json;data.quality
sayslive/seed/noneinstead of leaving the reader to infer it.
Changed
scripts/check-docs.mjsandscripts/generate-assets.mjsmoved totools/:
they maintain the repository, not the skill, and are not part of the minimal
install.- Moved
test-prompts.jsontotests/prompts.jsonand documented it in the
repository layout: it is an evaluation fixture (a request paired with the
behaviour the skill must exhibit), not a runtime asset — nothing loads it.