• v0.3.0 f28615f3b6

    v0.3.0 Stable

    ktg released this 2026-08-04 20:29:12 +00:00 | 9 commits to main since this release

    Added

    • BADGE-DEAD-LINK: a linked badge making a run claim ("tests", "build",
      "CI", "passing") is now resolved against the repo's tracked files when the
      link target is relative. Being wrapped in a link previously ended all
      scrutiny — the link-target capture group was missing from the regex
      outright, so a badge linked to a dead relative path passed silently.
      External targets (the ordinary case — a CI provider) still need the
      network and stay out of scope, same precedent as checkInternalLinks.

    Fixed

    • LINK-DEAD false positive on API endpoint paths: URL_REF matched
      open/<name> anywhere in a URL, so a Forgejo API call like
      .../api/v1/orgs/open/repos read as a dead reference to a repo named
      "repos". open must now be the first path segment after the host,
      matching how every real repo URL is shaped. Measured twice against the
      catalog's own RUNBOOK.md.
    • 429 backoff was tuned for a hard IP ban that does not exist. Measured
      directly against the live forge: nginx never sends Retry-After (the
      branch handling it is dead code in practice), the limit is a leaky bucket
      that can take up to ~15s to drain, and it is IP-based rather than
      token-quota-based — a valid token made no difference. fetchWithRetry now
      defaults to a 23s worst-case budget (retries: 5, maxDelayMs: 8000), up
      from 7s. CLAUDE.md's "13 calls in a loop" explanation corrected to match.
    • Two tests asserted facts about their own local test fixture instead of the
      real register/repos.json — a typo in the real register would have
      drifted past them silently. Both now read the live register via
      loadRegister().
    Downloads
  • v0.2.2 f85b9d3229

    v0.2.2 Stable

    ktg released this 2026-08-04 11:12:36 +00:00 | 15 commits to main since this release

    Fixed

    • The engine never printed its own version, which is how a stale plugin cache
      went unnoticed: two repos independently proved the /repo-standard skill
      had resolved ${CLAUDE_PLUGIN_ROOT} to a cached 0.1.1 while 0.2.0 was
      installed and the catalog pinned it — same instruction, wrong engine, and
      0.1.1 has neither BADGE-COUNT nor README-LANGUAGE, so the run looked
      clean instead of incomplete. The header line and --json output now both
      carry repo-standard v<version>; SKILL.md tells the reader to confirm it
      against the catalog pin before trusting a green result. The cache
      resolution itself is the harness's, not this repo's, and is not fixed here.
    Downloads