Portfolio skill · read-only · no account, no keys

GitHub repo health

One HTTP GET pulls public repo metadata — stars, open issues, identity — read-only, no account.

A real, replayable Reelier skill against a live public API. Every replay proves the same thing: GitHub's repo API answers with non-negative counters and the right identity — and writes a receipt saying exactly which assertions held.

What this checks

One step: an HTTP GET to GitHub's public repo API for seldonframe/reelier. Four assertions: the API answered 200, stargazers_count and open_issues_count are non-negative, and full_name matches /seldonframe/ — identity pinned, counters left free to move.

Counts move; identity doesn't. Stars and issues are bound onto the receipt rather than pinned, so the replay never rots the day someone stars the repo.

Honesty note: this hits the unauthenticated GitHub REST API (60 requests/hour per IP). A rate-limited run returns 403, the status == 200 assert fails, and the receipt records a real failure — it never silently passes. That is the intended behavior, not a flake to paper over.

StepsAssertionsEffectSeed run (2026-07-21)
14read1/1 passed · 1,677ms · 0 LLM tokens

Endpoint it hits:

  • https://api.github.com/repos/seldonframe/reelier

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.

github-repo-health.skill.md — verbatim
---
name: github-repo-health
description: Public GitHub repo health pull for seldonframe/reelier — stars, open issues, identity — read-only
---

<!-- synced from seldonframe/reelier examples/portfolio — edit there -->

# GitHub repo health

Inputs: (none — this file replays green as-is; see the personalization note)

<!--
  Personalization: swap the literal `seldonframe/reelier` in the URL for your
  own `owner/repo` (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 literals that
  work with zero flags.

  Honesty note: this hits the UNAUTHENTICATED GitHub REST API (60 req/hr per
  IP). A rate-limited run returns 403, the `status == 200` assert fails, and
  the receipt records a real failure — it never silently passes. That is the
  intended behavior, not a flake to paper over.

  Endpoint verified live on 2026-07-21: 200, `full_name` = "seldonframe/reelier".
-->

Counts move; identity doesn't. The assertions pin the shape (non-negative
counters) and the identity (`full_name` contains `seldonframe`), never a
specific star count that would rot the day someone stars the repo.

## Steps

### Step 1 — Repo metadata and counters
- intent: Fetch public repo metadata for seldonframe/reelier and check stars/issues/identity
- action: http.get {"url": "https://api.github.com/repos/seldonframe/reelier"}
- assert: status == 200
- assert: json.stargazers_count >= 0
- assert: json.open_issues_count >= 0
- assert: json.full_name matches /seldonframe/
- bind: stars = json.stargazers_count
- bind: open_issues = json.open_issues_count
- effect: read
synced from seldonframe/reelier examples/portfolio · the file is the artifact

Run 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/.

sh
# straight from the repo's main branch (the canonical copy):
curl -fsSL https://raw.githubusercontent.com/seldonframe/reelier/main/examples/portfolio/github-repo-health.skill.md -o github-repo-health.skill.md
npx -y reelier@latest run github-repo-health.skill.md

# or from a clone:
git clone https://github.com/seldonframe/reelier
cd reelier && npx -y reelier@latest run examples/portfolio/github-repo-health.skill.md

The receipt

The portfolio README records a real seed run of this skill, replayed with the published CLI on 2026-07-21. Verbatim output:

run receipt · 2026-07-21 · reelier@0.12.1
✓ Step 1 — Repo metadata and counters [passed] 1677ms

PASSED: 1/1 steps ok, 0 failed, 1677ms total
[measured] 0 LLM tokens
replayed with the published CLI on 2026-07-21 · run record confirms passed: true, 0 LLM tokens (input + output)

And 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 `seldonframe/reelier` in the URL for your own owner/repo. 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.

sh
sed 's#seldonframe/reelier#YOUR-ORG/YOUR-REPO#g' github-repo-health.skill.md > my-repo-health.skill.md \
  && npx -y reelier@latest run my-repo-health.skill.md