Skip to content

v1.0.0

Choose a tag to compare

@sogeisetsu sogeisetsu released this 25 Sep 07:38
· 21 commits to main since this release

opencode-go-model-picker v1.0.0

First stable release of opencode-go-model-picker — an OpenCode Agent Skill that picks or rebalances the models used by your custom OpenCode agents (native agents, oh-my-opencode-slim presets, and agent-injecting plugins) against the latest OpenCode Go plan. Read-only by default: it fetches the plan, produces recommendations with fallback chains, and never edits your config without a preview and an explicit confirmation.

Highlights

  • Plan-aware allocation — fetches the live Go plan every run (models, per-model monthly limits, limited-time promos, estimated request counts) and allocates a model per agent by role trait, under budget / balanced / quality recommendation modes with a two-question first-run diagnostic.
  • Fallback chains — builds ordered 2–4 entry failover chains (best fit → cheaper Go model → different provider) for chain-capable sources such as oh-my-opencode-slim, and explicitly refuses to invent arrays for sources whose model is a single value.
  • Never invents numbers — every price, limit, and capability is reported with its source and fetch date. Committed price and LMArena score seeds act as dated offline fallbacks; anything unverifiable is marked for manual verification.
  • Read-only by default — output ends at an explicit 🛑 gate; nothing is written to your configuration without your confirmation.
  • Multi-source discovery — native OpenCode agents (opencode.json/opencode.jsonc, Markdown agent files), oh-my-opencode-slim presets, and other plugins that inject agents, through uniform read-only source adapters. OpenCode's built-in agents are always skipped.

What's Changed

Added

  • Explicit Failure Modes (if → then → still failing) table in the skill: serial re-run on snapshot write races, dated seed/cache fallbacks when endpoints or the network are unreachable, local-registry status verification for non-Go fallback ids, and a zero-custom-agent stop branch.
  • Visible 🛑/🔴 checkpoint markers at the output gate, the first-run mode diagnostic, and the apply gate.
  • Committed price seed (references/model-prices.json) with scripts/refresh-prices.mjs, and a committed LMArena score seed (references/model-scores.json) with scripts/refresh-scores.mjs (no API key, no browser).
  • Three recommendation modes (budget, balanced, quality) plus an auditable decision-factors table in the report.
  • Estimated request counts (per 5h / week / month) as a first-class throughput signal — equal dollar limits do not mean equal request counts.
  • Mandatory caveat flags for limited-time multipliers, geo-restricted models, and privacy-for-discount "Contributor" tiers that train on your prompts (opt-in, never recommended silently).
  • Generalized agent discovery beyond oh-my-opencode-slim via references/agent-sources.md (uniform inventory record, role-trait mapping, known-role overrides).

Changed

  • Refresh strategy deduplicated to a single source of truth in the skill; Failure Modes row 5 disambiguated — an explicit deprecated/removed status blocks an id, while an absent status field is the registry's default-active convention.
  • README (English and Chinese) now documents the explicit failure-path handling.

Fixed

  • scripts/refresh-snapshot.mjs no longer drops top-level snapshot keys such as preferences on write, so the remembered recommendation mode actually persists across runs.
  • Snapshot schemaVersion now writes 2, matching references/model-snapshot.md.
  • scripts/refresh-prices.mjs output now separates seed coverage (seedUsed), priced count (priced 40/42), and null-upstream ids instead of a single misleading matched number.

Installation

Clone the repository into your OpenCode skills directory so the folder name matches the skill's name:

Linux / macOS

git clone https://github.com/sogeisetsu/opencode-go-model-picker.git \
  ~/.config/opencode/skills/opencode-go-model-picker

Windows (PowerShell)

git clone https://github.com/sogeisetsu/opencode-go-model-picker.git `
  "$env:USERPROFILE\.config\opencode\skills\opencode-go-model-picker"

Minimal install: the skill only uses SKILL.md, references/, and scripts/ at runtime — copying just those three is enough.

Verify the helper script runs:

node scripts/fetch-go-models.mjs   # prints { fetchedAt, source, count, ids }

Full Changelog

https://github.com/sogeisetsu/opencode-go-model-picker/blob/main/CHANGELOG.md