Kali-Decoder / Kali-Decoder/Midnight-Skills

Centralize version references and resolve them at use time

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
16
Forks
5
PR merge metrics
No merged PRs in 30d

Description

First off — the breadth here is impressive, and the version-awareness instinct is clearly already present. `references/versions.json` exists as a single-source-of-truth pin file, and a few skills (`react-wallet-connector`, `dynamic-midnight-wallet`) already tell the agent to run `npm view version` when an install fails. Those are exactly the right instincts. This issue is about applying them consistently.

**Observation.** Right now version numbers are hand-copied into individual skills rather than sourced from `references/versions.json`, which has led to some drift across the repo:

- `language_version` pragma appears as `0.20`, `0.21.0`, `0.22` (11×), and `0.23` (2×)
- `@midnight-ntwrk/compact-runtime` appears as both `0.15.0` and `0.16.0`
- `@midnight-ntwrk/midnight-js-*` appears as both `4.0.2` and `4.0.4`
- `example-hello-world/SKILL.md` notes its versions "match the official compatibility matrix (May 2026)," and its fix for an `ETARGET` install error is "Use versions from this skill's package.json" — which pins the agent to the snapshot rather than pointing it at the current matrix.

Because Midnight releases frequently, any hardcoded version starts drifting the day it's written, and an agent following the skill has no signal that it's stale.

**Why it matters.** Version mismatches are one of the most common early failures for a new Midnight dev, so this content is high-leverage — it's worth making it self-healing.

**Suggested direction (options, not prescriptions):**

- Make `references/versions.json` the only place versions live, and have skills reference it rather than restating literals.
- Standardize the guidance the way `react-wallet-connector` already does it: "resolve the current version via `npm view version` / `compact check` / the support matrix" instead of pinning inline.
- For the pragma inconsistency, pick one canonical `language_version` and reconcile the skills to it.
- Optionally, a small CI check that flags version literals appearing outside `versions.json`.

Happy to help scope the `versions.json` wiring if useful.

Contributor guide

Open the contributing guide

Research direction

Start with references/versions.json and compare its entries with the version references in the named skills, especially react-wallet-connector, dynamic-midnight-wallet, and example-hello-world/SKILL.md. Review how those skills currently resolve versions and decide the scope of the consistency check. Done means version guidance is centralized or consistently resolved, the language_version discrepancy is addressed, and stale literals are identified or covered by the agreed check.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation, tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.