docs(013): RFC 0001 for the skillrig mise backend plugin#27
Conversation
Adds a research spike and an RFC for a `skillrig` mise backend plugin that co-installs multiple backing CLIs from one origin monorepo (issue #23). Key finding: mise 2026.4.12 (PR #9093) fixes only the install-scheduler dedup (Layer A), not version resolution (Layer B). Under a strict-semver tag policy the origin must use build-metadata streams (v0.5.0+iii), which SemVer precedence collapses and version_prefix cannot select -- so native mise cannot give independent versioning + co-location together. A backend plugin whose BackendListVersions owns version listing is the only option that can, which is the capability justification for the plugin. - specledger/013-mise-backend/research: the spike (4 open questions answered) - docs/rfcs/0001: the RFC -- origin [[binaries]] contract, the three Lua hooks, auth, verification depth, template + CLI integration, phasing; bootstraps the separate skillrig/mise-skillrig repo - docs/ARCHITECTURE-v0 §8b: correction pointer (tag_regex -> version_prefix; #9093 is scheduler-only; build-metadata streams remain native-unresolvable)
Review Summary by QodoRFC 0001 and research spike for skillrig mise backend plugin
WalkthroughsDescription• Adds RFC 0001 defining a skillrig mise backend plugin for co-installing multiple backing CLIs from one origin monorepo with independent versioning under strict-semver tag policy • Documents the origin-side contract ([[binaries]] block in .skillrig-origin.toml) that the plugin depends on, including stream selectors and asset templates • Explains why native mise cannot resolve build-metadata streams (v0.5.0+iii) due to SemVer precedence rules, making the plugin a capability requirement not just ergonomics • Includes comprehensive research spike validating that mise 2026.4.12 (PR #9093) fixes only the install scheduler layer, not version resolution layer • Corrects ARCHITECTURE-v0 §8b to clarify version_prefix vs non-existent tag_regex, and notes that build-metadata streams remain natively unresolvable • Specifies the three Lua hooks (BackendListVersions, BackendInstall, BackendExecEnv), auth token precedence, and v1 verification (checksum-only) Diagramflowchart LR
A["Origin Monorepo<br/>cmd/iii cmd/console<br/>build-metadata tags<br/>v0.5.0+iii v0.2.0+console"] -->|"[[binaries]] contract<br/>index.json"| B["skillrig Backend Plugin<br/>BackendListVersions<br/>BackendInstall<br/>BackendExecEnv"]
B -->|"skillrig:iii<br/>skillrig:console"| C["Consumer mise.toml<br/>independent versions<br/>per-stream resolution"]
D["mise 2026.4.12<br/>Layer A: scheduler dedup<br/>PR #9093"] -.->|"necessary but<br/>insufficient"| B
E["Native mise<br/>Layer B: version resolution<br/>SemVer precedence"] -.->|"cannot resolve<br/>build-metadata"| B
File Changes1. docs/ARCHITECTURE-v0.md
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
152 rules 1. Stale tag_regex guidance
|
What
Adds a research spike and an RFC for a
skillrigmise backend plugin that co-installs multiple backing CLIs from one origin monorepo, plus a correction toARCHITECTURE-v0§8b. Resolves the investigation in #23.The RFC is written to bootstrap a new, separate repo (
skillrig/mise-skillrig— the plugin is Lua, not Go, so it does not belong inskillrig/cli).The key finding (why this RFC matters)
#23 proposed the plugin to fix a multi-binary install collision. While researching open question #4, the premise shifted — and then a reviewer pushback sharpened it into the real justification:
github:org/repo@versiondeduped to one install) was a scheduler bug, fixed in mise 2026.4.12 (PR #9093). We require it, but it only fixes Layer A.iii-v0.1.0) and forces build-metadata streams (v0.5.0+iii). Per SemVer 2.0.0, build metadata is ignored for precedence, so those streams collapse to one version, andversion_prefix(a leading-prefix stripper; there is notag_regex) cannot select a+suffix.version_prefixskillrigbackend pluginOnly the plugin satisfies independent versioning + co-location + strict-semver together — because its
BackendListVersionshook owns version listing. That is a capability justification, not just ergonomics.Open questions answered (from #23)
skillrig/mise-skillrig, backend nameskillrig, independent release cadence.[[binaries]]block in.skillrig-origin.toml, mirrored intoindex.json(stream selector + asset template + checksums). Shared by plugin and CLI (AP-04).checksums.txt); treeSha/provenance parity is v2.Contents
specledger/013-mise-backend/research/2026-06-02-mise-backend-plugin.md— the spike (corrected after review).docs/rfcs/0001-mise-skillrig-backend.md— the RFC: how the origin template, mise + plugin, andskillrigCLI fit together; the[[binaries]]contract; the three Lua hooks (with snippets); auth (incl. the keyring-404 gotcha); verification depth; alternatives; phasing.docs/ARCHITECTURE-v0.md§8b — correction callout pointing to the RFC.Notes for reviewers
https://claude.ai/code/session_01Nr5ZxzqTGefujhtEVPzMeV
Generated by Claude Code