Thank you for your interest in improving better-model.
The decision matrix in templates/BETTER-MODEL.md is the core of this project. If you have new benchmark data, published studies, or documented failure cases that should inform the matrix, please open an issue or pull request with:
- The claim — what should change in the matrix
- The evidence — link to benchmark results, published study, or reproducible example
- The impact — which tier/task/rule is affected
Anecdotal reports are welcome as supporting evidence but are not sufficient on their own to change the matrix.
A profile (introduced in v0.10.0) is an opt-in keyword overlay applied on top of the base inference engine — see templates/profiles/ for shipped profiles.
Proposing a new profile or change requires:
- The domain — a clearly delimited problem area (e.g. one language ecosystem, not "web apps in general").
- The evidence — at least one published benchmark or reproducible measurement showing the domain's coding tasks deserve a different tier than the base routing implies. We are skeptical of profiles by default — see the v0.10.0 README "Why blockchain is the only profile (for now)" for the bar.
- The keyword set — distinctive vocabulary with low false-positive risk. Short keywords (≤4 chars) that substring-match common English (
func,tact) require word-boundary regex matching + an FP regression test. - The framing — profiles that lack head-to-head efficacy measurements ship as "convenience presets" without efficiency claims, per the v0.10.0
blockchainprecedent.
Profiles that fail the FP regression suite or that demote any existing tier are rejected by CI — inferModel's additivity invariant is enforced by test/fix.test.js.
Maintenance: profile keyword tables are reviewed each minor release alongside the main inference engine. A profile whose evidence base weakens (benchmark withdrawn, Anthropic guidance contradicts it) is sunset in the next minor release with a deprecation warning in init output, leaving user files untouched per the reset invariant.
# Clone the repository
git clone https://github.com/talkstream/better-model.git
cd better-model
# Run tests
node --test 'test/*.test.js'
# Test the CLI locally
node bin/better-model.js --help- Zero dependencies — only Node.js built-ins
- Evidence-based — every matrix entry needs published data
- Idempotent —
initandresetare safe to run multiple times - Minimal footprint — one
.mdtemplate + routing block + optional agents
Tests use the Node.js built-in test runner (node:test). No external test framework required.
node --test 'test/*.test.js'Be kind. Be constructive. Back claims with evidence.