Registry latest
One HTTP GET pulls the latest published version from the npm registry — read-only.
A real, replayable Reelier skill against a live public API. Every replay proves the same thing: The npm registry serves a latest version that looks like semver — and writes a receipt saying exactly which assertions held.
What this checks
One step: an HTTP GET to the npm registry's latest dist-tag for the reelier package. Two assertions: the registry answered 200 and version matches /^\d+\./.
The version assertion is a pattern, never a pinned number — ^\d+\. holds for every release that will ever ship, so publishing a new version changes the bound value on the receipt without breaking the replay.
| Steps | Assertions | Effect | Seed run (2026-07-21) |
|---|---|---|---|
| 1 | 2 | read | ✓ 1/1 passed · 152ms · 0 LLM tokens |
Endpoint it hits:
https://registry.npmjs.org/reelier/latest
The skill file
This is the whole artifact — a markdown file with an assertion on every step. Copy it, check it into your repo, replay it anywhere.
---
name: registry-latest
description: Latest published version of the reelier package from the npm registry — read-only
---
<!-- synced from seldonframe/reelier examples/portfolio — edit there -->
# Registry latest
Inputs: (none — this file replays green as-is; see the personalization note)
<!--
Personalization: swap the literal `reelier` in the URL path for your own
package name (the portfolio README's "Point these at YOUR project" section
has the one-command version). The skill grammar has no default-value
syntax for {{var}} holes — an unbound {{var}} is an explicit error, never
a guessed fallback — so this file ships with a literal that works with
zero flags.
Endpoint verified live on 2026-07-21: 200, version "0.12.1".
-->
The version assertion is a **pattern**, never a pinned number — `^\d+\.`
holds for every release that will ever ship, so publishing a new version
changes the bound value on the receipt without breaking the replay.
## Steps
### Step 1 — Latest dist-tag from the registry
- intent: Fetch the latest published version of reelier from the npm registry and check it looks like semver
- action: http.get {"url": "https://registry.npmjs.org/reelier/latest"}
- assert: status == 200
- assert: json.version matches /^\d+\./
- bind: version = json.version
- effect: readRun it yourself
reelier run takes a local file, so fetch the canonical copy first (or clone the repo). The replay is read-only, needs no account and no keys, and writes its receipt to .reelier/runs/.
# straight from the repo's main branch (the canonical copy):
curl -fsSL https://raw.githubusercontent.com/seldonframe/reelier/main/examples/portfolio/registry-latest.skill.md -o registry-latest.skill.md
npx -y reelier@latest run registry-latest.skill.md
# or from a clone:
git clone https://github.com/seldonframe/reelier
cd reelier && npx -y reelier@latest run examples/portfolio/registry-latest.skill.mdThe receipt
The portfolio README records a real seed run of this skill, replayed with the published CLI on 2026-07-21. Verbatim output:
✓ Step 1 — Latest dist-tag from the registry [passed] 152ms
PASSED: 1/1 steps ok, 0 failed, 152ms total
[measured] 0 LLM tokensAnd the proof keeps accumulating without anyone touching it: a GitHub Action replays all five portfolio skills every 6 hours (plus on demand) — the public Actions tab is the standing audit log. A failing endpoint produces an honestly failing receipt there, never a retried-until-green one.
Point it at your project
Swap the literal `reelier` in the URL path for your own package name. The skill grammar has no default-value syntax for {{var}} holes — an unbound {{var}} is an explicit error, never a guessed fallback — so this file ships with literals that replay green with zero flags.
sed 's/reelier/YOUR-PACKAGE/g' registry-latest.skill.md > my-registry-latest.skill.md \
&& npx -y reelier@latest run my-registry-latest.skill.md