@rig-c/core 2.39.0 → 2.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,8 +10,8 @@
10
10
  "name": "rigc",
11
11
  "source": "./",
12
12
  "description": "Author Spine 4.3 rigs with rigc: an entry skill with the install line and the build, validate, render, check and vote loop, plus routers for rigging, motion, faces and foreign skeletons, each linking the shipped guide that owns its rules.",
13
- "homepage": "https://github.com/firejune/rigc#readme",
14
- "repository": "https://github.com/firejune/rigc",
13
+ "homepage": "https://github.com/rig-c/core#readme",
14
+ "repository": "https://github.com/rig-c/core",
15
15
  "license": "MIT",
16
16
  "keywords": ["spine", "spine2d", "skeletal-animation", "rig", "compiler", "ai-agents"]
17
17
  }
@@ -6,8 +6,8 @@
6
6
  "name": "firejune",
7
7
  "url": "https://github.com/firejune"
8
8
  },
9
- "homepage": "https://github.com/firejune/rigc#readme",
10
- "repository": "https://github.com/firejune/rigc",
9
+ "homepage": "https://github.com/rig-c/core#readme",
10
+ "repository": "https://github.com/rig-c/core",
11
11
  "license": "MIT",
12
12
  "keywords": ["spine", "spine2d", "skeletal-animation", "rig", "compiler", "ai-agents"]
13
13
  }
package/NOTICE.md CHANGED
@@ -40,8 +40,8 @@ Software's terms, not a licence term of this project:
40
40
  development dependency for its own gate, and so does an install with
41
41
  `spine-core` added beside it. Validation is not optional on either: the gate
42
42
  runs through the runtime where it is installed and through rigc's own validator
43
- where it is not, and the two are held to the same verdicts in CI on 49 of the
44
- 50 assertions — the official parser's own parse runs only where the runtime is.
43
+ where it is not, and the two are held to the same verdicts in CI on 50 of the
44
+ 51 assertions — the official parser's own parse runs only where the runtime is.
45
45
 
46
46
  > **If a product integrates a Spine Runtime to play rigc's output, that integration
47
47
  > is subject to the terms above** — rigc neither creates those terms nor removes
@@ -144,4 +144,4 @@ licence file that does not exist.
144
144
  `bench/reference/` is repository material — it is not in `package.json`'s `files`
145
145
  list, so it is not part of the published npm package. The full reasoning, and the
146
146
  per-rung framing behind it, is in
147
- [`bench/reference/README.md`](https://github.com/firejune/rigc/blob/main/bench/reference/README.md).
147
+ [`bench/reference/README.md`](https://github.com/rig-c/core/blob/main/bench/reference/README.md).
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/firejune/rigc/main/assets/banner.svg" alt="rigc — AI-authored 2D rigging and animation, verified before it is written" width="100%" />
2
+ <img src="https://raw.githubusercontent.com/rig-c/core/main/assets/banner.svg" alt="rigc — AI-authored 2D rigging and animation, verified before it is written" width="100%" />
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -15,12 +15,13 @@ gated by a list of named assertions before a byte is written — rigc's own vali
15
15
  the published package, held to a `spine-core` round trip's verdicts in this
16
16
  repository's CI. Built so AI agents can author rigs and check their own work; it ships
17
17
  as an agent skill. On npm it is `rig-c` — the same package as `spine-rigc`, the name it
18
- first shipped under, which is published beside it with the same files at every version.
18
+ first shipped under, and as `@rig-c/core`, its name under the toolchain's scope, both
19
+ published beside it with the same files at every version.
19
20
 
20
21
  ## What you get
21
22
 
22
23
  <p align="center">
23
- <img src="https://raw.githubusercontent.com/firejune/rigc/main/assets/rigc-demo.gif" alt="Loose part PNGs assembling themselves into a character that breathes, blinks and waves" width="600" />
24
+ <img src="https://raw.githubusercontent.com/rig-c/core/main/assets/rigc-demo.gif" alt="Loose part PNGs assembling themselves into a character that breathes, blinks and waves" width="600" />
24
25
  </p>
25
26
 
26
27
  <p align="center"><em>Fourteen part PNGs drawn from scratch for this repo, one rig spec, one motion spec — the assembly,
@@ -63,12 +64,12 @@ it cuts both ways:
63
64
  is a development dependency: this repository uses it to hold rigc's own validator
64
65
  to the round trip's verdicts — in CI, on the public example recipes and every
65
66
  selftest call, and on a private corpus of production rigs measured before each
66
- release. Of the 50 assertions, 49 run on both; `A00_ROUNDTRIP_PARSE`, the official
67
+ release. Of the 51 assertions, 50 run on both; `A00_ROUNDTRIP_PARSE`, the official
67
68
  parser's own parse, runs only where the runtime is installed and is reported as a
68
69
  SKIP elsewhere. There, in the parse's place, the report also carries the model
69
70
  side's own two parse rules, `A00_MODEL_READ` and `A00_MODEL_REGIONS_ON_PAGES`,
70
71
  which no round-trip rule matches and the registry does not hold — so its summary
71
- totals 52 on the core entry, and its last line counts 43 rules on the model side
72
+ totals 53 on the core entry, and its last line counts 44 rules on the model side
72
73
  ([AUTHORING §5.2](docs/AUTHORING.md) has a row for each). Install it beside rigc
73
74
  (`bun add -d @esotericsoftware/spine-core`) and the same `rigc` runs the round
74
75
  trip on every build. The
@@ -114,7 +115,7 @@ there by the render script rather than left to memory. The same file's
114
115
  and art, not this material. `7-anticipation` publishes no `license.txt` upstream, so
115
116
  no such grant exists for it and its frames are never committed — they render only
116
117
  into a gitignored directory, enforced by `git check-ignore`. Full reasoning:
117
- [`bench/reference/README.md`](https://github.com/firejune/rigc/blob/main/bench/reference/README.md)
118
+ [`bench/reference/README.md`](https://github.com/rig-c/core/blob/main/bench/reference/README.md)
118
119
  (repository material, not in the npm package).
119
120
 
120
121
  The problem rigc is aimed at is narrow. An agent asked to author a rig has no way
@@ -141,18 +142,18 @@ repository it was cut from. What is measured is the install itself — pack,
141
142
  install into an empty directory, build, render — on Linux, macOS and Windows
142
143
  runners and on Linux at the declared minimum, Bun 1.2.0 (the `installs` and
143
144
  `installs-matrix` jobs in
144
- [`ci.yml`](https://github.com/firejune/rigc/blob/main/.github/workflows/ci.yml),
145
+ [`ci.yml`](https://github.com/rig-c/core/blob/main/.github/workflows/ci.yml),
145
146
  repository material, not in the npm package); a platform
146
147
  whose leg is red there is not one the package is known to run on.
147
148
 
148
149
  **The npm package is `rig-c`; the command it installs is `rigc`.** npm
149
150
  refuses the name `rigc` as too similar to packages that already exist, so the
150
- project, this repository and the executable keep their name and the registry
151
- entry carries one hyphen. **`spine-rigc` is the same package**: it is the name
151
+ project and the executable keep their name and the registry entry carries one
152
+ hyphen; the repository is [`rig-c/core`](https://github.com/rig-c/core). **`spine-rigc` is the same package**: it is the name
152
153
  every version up to 2.20.4 shipped under, and it stays published as an alias —
153
154
  every version from 2.20.4 on is on both names, with the same files — so a
154
155
  project that depends on `spine-rigc` keeps receiving every release. A new
155
- project installs `rig-c`.
156
+ project installs `rig-c`; `@rig-c/core` is the same package under the scope.
156
157
 
157
158
  ```bash
158
159
  bunx rig-c --help # run it without installing
@@ -177,7 +178,7 @@ against Spine's official example projects — fetched, never committed — and a
177
178
  reference frames this project renders from them, which **are** committed, each
178
179
  example's own `license.txt` beside them under the redistribution grant those files
179
180
  carry; the images stay **non-commercial only**. The reasoning is in
180
- [`bench/reference/README.md`](https://github.com/firejune/rigc/blob/main/bench/reference/README.md)
181
+ [`bench/reference/README.md`](https://github.com/rig-c/core/blob/main/bench/reference/README.md)
181
182
  and the terms in [NOTICE.md](NOTICE.md). It needs a clone and `bun run
182
183
  fetch-examples`, and says so by name when the corpus is absent. `check` is not one
183
184
  of them: it reads whatever frames you point it at, so it runs from the installed
@@ -196,7 +197,7 @@ a rule keeps living in exactly one place. The repository is also a Claude Code
196
197
  plugin marketplace:
197
198
 
198
199
  ```shell
199
- /plugin marketplace add firejune/rigc
200
+ /plugin marketplace add rig-c/core
200
201
  /plugin install rigc@rigc
201
202
  ```
202
203
 
@@ -228,7 +229,7 @@ symlinked skill folder, which is not measured here, and Antigravity CLI 1.1.9 ha
228
229
  way to list skills without starting a session, so what it does with a link is not
229
230
  measured either; `--copy` is the shape that asks nothing of a host. Gemini CLI can
230
231
  also fetch a skill itself, one folder at a time:
231
- `gemini skills install https://github.com/firejune/rigc.git --path skills/rigc --scope workspace`.
232
+ `gemini skills install https://github.com/rig-c/core.git --path skills/rigc --scope workspace`.
232
233
  The routers are named `rigc-rigging`, `rigc-motion`, `rigc-face` and `rigc-ingest`
233
234
  because that directory is flat — beside another tool's `motion`, a bare name is
234
235
  whichever one the host picked — and under the Claude Code plugin they read
@@ -243,7 +244,7 @@ files, one `build`, one `validate`. No clone, no art pipeline, nothing fetched.
243
244
  nowhere else in this repository. That is [AUTHORING.md](docs/AUTHORING.md) §3's
244
245
  rule applied here: no example value in these documents is copied out of a
245
246
  reference export, so nothing you read in a quickstart is an answer to anything
246
- [the ladder](https://github.com/firejune/rigc/blob/main/docs/LADDER.md) measures.
247
+ [the ladder](https://github.com/rig-c/core/blob/main/docs/LADDER.md) measures.
247
248
 
248
249
  **1. Install the command.**
249
250
 
@@ -370,7 +371,7 @@ rigc: look at it: rigc preview --candidate …/buoy/spine
370
371
  ```
371
372
 
372
373
  `profile=spine` is the rulebook that judged it: *is this valid Spine 4.3 that any
373
- runtime plays correctly?* That is the default, and the [Profiles](https://github.com/firejune/rigc/blob/main/docs/BENCHMARK.md#profiles--wrong-versus-not-how-we-do-it-here)
374
+ runtime plays correctly?* That is the default, and the [Profiles](https://github.com/rig-c/core/blob/main/docs/BENCHMARK.md#profiles--wrong-versus-not-how-we-do-it-here)
374
375
  section of the benchmark dossier is where the other one lives. `validate` then re-reads those
375
376
  artifacts from disk and ends `rigc: green`. That is a rig. `spine/skeleton.json`
376
377
  is Spine 4.3 skeleton data — it loads in a Spine runtime and it imports into the
@@ -448,7 +449,7 @@ The voter picks a winner or says "tie / no preference"; the page hands them a
448
449
  small JSON file to save; `--record` checks that file against the ballot's own
449
450
  hashes and appends one line to an append-only ledger, refusing by name anything
450
451
  that does not belong to it. See
451
- [Letting someone choose](https://github.com/firejune/rigc/blob/main/docs/BENCHMARK.md#letting-someone-choose--rigc-vote).
452
+ [Letting someone choose](https://github.com/rig-c/core/blob/main/docs/BENCHMARK.md#letting-someone-choose--rigc-vote).
452
453
 
453
454
  **Where to go next.**
454
455
 
@@ -476,8 +477,8 @@ that does not belong to it. See
476
477
  it, so a figure is read against that rather than against a number from a page;
477
478
  AUTHORING.md §9.2 says what the two halves of that bound are and why the floor
478
479
  is not zero.
479
- - [docs/LADDER.md](https://github.com/firejune/rigc/blob/main/docs/LADDER.md) is the benchmark: the same job, from a brief
480
- and rendered frames, scored. [docs/PILOT.md](https://github.com/firejune/rigc/blob/main/docs/PILOT.md) is how to run an
480
+ - [docs/LADDER.md](https://github.com/rig-c/core/blob/main/docs/LADDER.md) is the benchmark: the same job, from a brief
481
+ and rendered frames, scored. [docs/PILOT.md](https://github.com/rig-c/core/blob/main/docs/PILOT.md) is how to run an
481
482
  agent through it and score what comes back.
482
483
  - 🤖 **Handing the authoring to an AI agent?**
483
484
  [docs/PROMPTING.md](docs/PROMPTING.md) is the operator's page — the six prompt
@@ -493,7 +494,7 @@ four candidates in one page and takes a human's answer back. Reach for them the
493
494
  a rig compiles green, because green says nothing at all about the picture.
494
495
 
495
496
  <p align="center">
496
- <img src="https://raw.githubusercontent.com/firejune/rigc/main/assets/rigc-keypose.gif" alt="Two key poses read back by rigc pose, two candidate in-between motions compiled from them, and a rigc vote ballot picking one" width="600" />
497
+ <img src="https://raw.githubusercontent.com/rig-c/core/main/assets/rigc-keypose.gif" alt="Two key poses read back by rigc pose, two candidate in-between motions compiled from them, and a rigc vote ballot picking one" width="600" />
497
498
  </p>
498
499
 
499
500
  <p align="center"><em>The whole loop on one character: two key poses are the given
@@ -526,7 +527,7 @@ something is drawn over them are `rigc chainfit`'s, once a candidate exists —
526
527
 
527
528
  ## The gallery — seven complete rigs over art that ships with them
528
529
 
529
- Each directory in [`gallery/`](https://github.com/firejune/rigc/tree/main/gallery) is
530
+ Each directory in [`gallery/`](https://github.com/rig-c/core/tree/main/gallery) is
530
531
  one rig spec, one motion spec and the PNGs they name, small enough to read in one
531
532
  sitting. Each stars a single feature, so *how do I do X* has a working answer rather
532
533
  than a field table, and each README carries the frame rate it was authored at, what
@@ -535,16 +536,16 @@ was verified, and what writing it cost. Repository material: a clone and
535
536
 
536
537
  | Example | Stars | What it is |
537
538
  | --- | --- | --- |
538
- | [`gallery/walk`](https://github.com/firejune/rigc/tree/main/gallery/walk) | `ik` constraints + **`ik` timelines** | Two two-bone leg chains solved to foot targets — the planted leg nailed down, the swinging one let go at the top of its lift |
539
- | [`gallery/squash`](https://github.com/firejune/rigc/tree/main/gallery/squash) | **`deform` timelines** | A ball squashed about its contact point and stretched along its travel, from two affine transforms the keys state rather than tabulate |
540
- | [`gallery/flex`](https://github.com/firejune/rigc/tree/main/gallery/flex) | **`contour` meshes** | A swallow-tailed banner and a serrated leaf: four meshes traced off their own alpha, waved by bone timelines and rippled by a `deform` |
541
- | [`gallery/ride`](https://github.com/firejune/rigc/tree/main/gallery/ride) | `path` attachments + **path constraints** | A trolley coasting down a drawn rail and rolling back, driven by a `position` timeline, with `groups` + `stagger` keying the wheels and the ears |
542
- | [`gallery/portrait`](https://github.com/firejune/rigc/tree/main/gallery/portrait) | **deform `transform`** + `derive` group tracks | A 2.5D head turn: two meshes and six feature bones all keyed from one stated expression, `dx = x(cos t − 1) − z·sin t`, with the depths in the spec rather than a README |
543
- | [`gallery/nod`](https://github.com/firejune/rigc/tree/main/gallery/nod) | the **`pitch`** and **`wave`** transform kinds | A head bowing and two lop ears rippling, on three meshes each laid out for the closed form that moves it — a fold angle solved for before authoring, and a shear whose winding no amplitude can reverse |
544
- | [`gallery/look`](https://github.com/firejune/rigc/tree/main/gallery/look) | **`slider` constraints** | A head that turns because a **value** says so: two dials drive two sliders, and the rendered animation moves the needles rather than the face — with a depth map under the face mesh, a soft mask on the cowlick, and a slider range derived from the turn ceiling `build` reports rather than picked by eye |
539
+ | [`gallery/walk`](https://github.com/rig-c/core/tree/main/gallery/walk) | `ik` constraints + **`ik` timelines** | Two two-bone leg chains solved to foot targets — the planted leg nailed down, the swinging one let go at the top of its lift |
540
+ | [`gallery/squash`](https://github.com/rig-c/core/tree/main/gallery/squash) | **`deform` timelines** | A ball squashed about its contact point and stretched along its travel, from two affine transforms the keys state rather than tabulate |
541
+ | [`gallery/flex`](https://github.com/rig-c/core/tree/main/gallery/flex) | **`contour` meshes** | A swallow-tailed banner and a serrated leaf: four meshes traced off their own alpha, waved by bone timelines and rippled by a `deform` |
542
+ | [`gallery/ride`](https://github.com/rig-c/core/tree/main/gallery/ride) | `path` attachments + **path constraints** | A trolley coasting down a drawn rail and rolling back, driven by a `position` timeline, with `groups` + `stagger` keying the wheels and the ears |
543
+ | [`gallery/portrait`](https://github.com/rig-c/core/tree/main/gallery/portrait) | **deform `transform`** + `derive` group tracks | A 2.5D head turn: two meshes and six feature bones all keyed from one stated expression, `dx = x(cos t − 1) − z·sin t`, with the depths in the spec rather than a README |
544
+ | [`gallery/nod`](https://github.com/rig-c/core/tree/main/gallery/nod) | the **`pitch`** and **`wave`** transform kinds | A head bowing and two lop ears rippling, on three meshes each laid out for the closed form that moves it — a fold angle solved for before authoring, and a shear whose winding no amplitude can reverse |
545
+ | [`gallery/look`](https://github.com/rig-c/core/tree/main/gallery/look) | **`slider` constraints** | A head that turns because a **value** says so: two dials drive two sliders, and the rendered animation moves the needles rather than the face — with a depth map under the face mesh, a soft mask on the cowlick, and a slider range derived from the turn ceiling `build` reports rather than picked by eye |
545
546
 
546
547
  <p align="center">
547
- <img src="https://raw.githubusercontent.com/firejune/rigc/main/assets/rigc-scene.gif" alt="A portrait rig breathing, glancing aside, then turning its head in 2.5D — hair and features sliding at different depths" width="600" />
548
+ <img src="https://raw.githubusercontent.com/rig-c/core/main/assets/rigc-scene.gif" alt="A portrait rig breathing, glancing aside, then turning its head in 2.5D — hair and features sliding at different depths" width="600" />
548
549
  </p>
549
550
 
550
551
  <p align="center"><em>The portrait rig playing its three animations in one take — the turn is
@@ -557,7 +558,7 @@ and that cost is one stated expression per key. Compiled and rendered entirely b
557
558
  published package.</em></p>
558
559
 
559
560
  🎞️ **How the three films on this page were made** is kept with them, one directory per
560
- film in [`films/`](https://github.com/firejune/rigc/tree/main/films) — a `run.sh` that
561
+ film in [`films/`](https://github.com/rig-c/core/tree/main/films) — a `run.sh` that
561
562
  names every step, the assembler that cuts the shots and draws the type, and a README
562
563
  saying what the film claims and which tool printed each figure on screen. Repository
563
564
  material, like the gallery: a clone runs them.
@@ -592,11 +593,11 @@ commands take it and what its default is.
592
593
  `diff`, `bonedist`, `check` and `bench` measure against something you were given; the
593
594
  first three work on any reference you have, and `bench` is a repository workflow that needs a clone
594
595
  and `bun run fetch-examples`. The reasoning behind them is in
595
- [the benchmark dossier](https://github.com/firejune/rigc/blob/main/docs/BENCHMARK.md).
596
+ [the benchmark dossier](https://github.com/rig-c/core/blob/main/docs/BENCHMARK.md).
596
597
 
597
- `build` and `validate` both default to `--profile spine` — the 34 validity rules, which
598
+ `build` and `validate` both default to `--profile spine` — the 35 validity rules, which
598
599
  ask *is this valid Spine 4.3 that any runtime plays correctly?* `--profile spine-html`
599
- adds all 50: the other 16 are one renderer's policy and one canvas budget's, and they
600
+ adds all 51: the other 16 are one renderer's policy and one canvas budget's, and they
600
601
  fire on perfectly correct editor-produced Spine data, which is why they are opt-in.
601
602
  ⇒ **That reason is about foreign data and does not carry to a rig you are authoring
602
603
  yourself: author under `--profile spine-html` and read the extra 16 as findings, and
@@ -609,7 +610,7 @@ Several cuts can also be registered in a `cuts.json` and built by name
609
610
  (`build --cut my_cut --cuts path/to/cuts.json`); every path in that table resolves
610
611
  relative to the `cuts.json` file itself, so the table lives with the project that owns
611
612
  the art. Its shape is under
612
- [Usage](https://github.com/firejune/rigc/blob/main/docs/BENCHMARK.md#usage).
613
+ [Usage](https://github.com/rig-c/core/blob/main/docs/BENCHMARK.md#usage).
613
614
 
614
615
  ### Starting from a skeleton you already have
615
616
 
@@ -758,13 +759,13 @@ letting `A17` blame the editor for the harness's own doing.
758
759
  | 📥 **[docs/INGEST.md](docs/INGEST.md)** | **working with a skeleton you did not author.** What every command can and cannot do with a foreign `skeleton.json`, reading it with the toolchain, transcription as the route that makes it yours, what each validator complaint means on an export, and the re-pivot/rename/extend recipes. Ships in the package too |
759
760
  | 🤖 **[docs/PROMPTING.md](docs/PROMPTING.md)** | **handing the authoring to an AI agent** — the prompt clauses a measured pilot run paid for, and what you can leave unsaid. Ships in the package too |
760
761
  | 🔬 **[docs/SPEC_COVERAGE.md](docs/SPEC_COVERAGE.md)** | **the Spine 4.3 format, field by field.** Every key the 4.3 JSON parser and atlas reader take, what each defaults to, and the parser line it comes from — the rows rigc's refusals cite by part number. Ships in the package too |
761
- | 🎓 **[the benchmark dossier](https://github.com/firejune/rigc/blob/main/docs/BENCHMARK.md)** | **why you can trust the output.** The yardstick, `diff` and `check` and what neither can see, the eight-rung ladder and the spineboy graduation exam, the run viewer, the 50 named assertions with their profiles, and the selftest that has watched every one of them fire. Repository material — it is not in the npm package |
762
- | 📋 [LADDER.md](https://github.com/firejune/rigc/blob/main/docs/LADDER.md) · [GATE.md](https://github.com/firejune/rigc/blob/main/docs/GATE.md) · [PILOT.md](https://github.com/firejune/rigc/blob/main/docs/PILOT.md) | the live rung ledger, the clause statements a candidate is graded against, and how to run an agent through the ladder and score what comes back |
763
- | 🔬 [SURVEY_2026-08-22.md](https://github.com/firejune/rigc/blob/main/docs/SURVEY_2026-08-22.md) | the survey the ladder was climbed by: rigc and the official examples as measured on 2026-08-22, and the gap list ordered by rung. A dated record, not kept current. Repository material |
764
- | 🧬 [GENERATIONS.md](https://github.com/firejune/rigc/blob/main/docs/GENERATIONS.md) | **Spine data from another generation.** Why a 3.8–4.2 file read as 4.3 fails in silence, the policy that follows (detect from `skeleton.spine`, never guess, play on the matching runtime), what `A16` and `ingest` do with such a file, and the editor as the migration path. Repository material |
765
- | 📓 [CASES.md](https://github.com/firejune/rigc/blob/main/docs/CASES.md) | **converting a Live2D model to Spine, and verifying the conversion.** The method — the source's own player headless, parts from its texture along the drawables, motion baked as deform keys, reference frames first, `check` — run once end to end on two Live2D sample models with no editor and no converter, and verified against the source's renderer and Spine's own runtime: the three instruments, the two rigc defects verifying it led to and v1.2.1 fixed, and where the method stops. Figures only — the models' licence keeps every asset out. Repository material |
766
- | 🗺️ [ROADMAP.md](https://github.com/firejune/rigc/blob/main/ROADMAP.md) | where this is going, and where it has been. What 1.0 had to mean before the number was claimed, and what it was claimed on — conditions rather than a feature list, because direction here comes from what users hit |
767
- | 📐 [CLAUDE.md](https://github.com/firejune/rigc/blob/main/CLAUDE.md) | **the doctrine** — why the validator's messages are the product, why nothing reaches disk before green, why no number is ever invented, and what a change has to keep. [CONTRIBUTING.md](https://github.com/firejune/rigc/blob/main/CONTRIBUTING.md) calls it worth ten minutes before a first patch. Repository material |
762
+ | 🎓 **[the benchmark dossier](https://github.com/rig-c/core/blob/main/docs/BENCHMARK.md)** | **why you can trust the output.** The yardstick, `diff` and `check` and what neither can see, the eight-rung ladder and the spineboy graduation exam, the run viewer, the 51 named assertions with their profiles, and the selftest that has watched every one of them fire. Repository material — it is not in the npm package |
763
+ | 📋 [LADDER.md](https://github.com/rig-c/core/blob/main/docs/LADDER.md) · [GATE.md](https://github.com/rig-c/core/blob/main/docs/GATE.md) · [PILOT.md](https://github.com/rig-c/core/blob/main/docs/PILOT.md) | the live rung ledger, the clause statements a candidate is graded against, and how to run an agent through the ladder and score what comes back |
764
+ | 🔬 [SURVEY_2026-08-22.md](https://github.com/rig-c/core/blob/main/docs/SURVEY_2026-08-22.md) | the survey the ladder was climbed by: rigc and the official examples as measured on 2026-08-22, and the gap list ordered by rung. A dated record, not kept current. Repository material |
765
+ | 🧬 [GENERATIONS.md](https://github.com/rig-c/core/blob/main/docs/GENERATIONS.md) | **Spine data from another generation.** Why a 3.8–4.2 file read as 4.3 fails in silence, the policy that follows (detect from `skeleton.spine`, never guess, play on the matching runtime), what `A16` and `ingest` do with such a file, and the editor as the migration path. Repository material |
766
+ | 📓 [CASES.md](https://github.com/rig-c/core/blob/main/docs/CASES.md) | **converting a Live2D model to Spine, and verifying the conversion.** The method — the source's own player headless, parts from its texture along the drawables, motion baked as deform keys, reference frames first, `check` — run once end to end on two Live2D sample models with no editor and no converter, and verified against the source's renderer and Spine's own runtime: the three instruments, the two rigc defects verifying it led to and v1.2.1 fixed, and where the method stops. Figures only — the models' licence keeps every asset out. Repository material |
767
+ | 🗺️ [ROADMAP.md](https://github.com/rig-c/core/blob/main/ROADMAP.md) | where this is going, and where it has been. What 1.0 had to mean before the number was claimed, and what it was claimed on — conditions rather than a feature list, because direction here comes from what users hit |
768
+ | 📐 [CLAUDE.md](https://github.com/rig-c/core/blob/main/CLAUDE.md) | **the doctrine** — why the validator's messages are the product, why nothing reaches disk before green, why no number is ever invented, and what a change has to keep. [CONTRIBUTING.md](https://github.com/rig-c/core/blob/main/CONTRIBUTING.md) calls it worth ten minutes before a first patch. Repository material |
768
769
 
769
770
  ## Why you can trust the output
770
771
 
@@ -786,7 +787,7 @@ attributability is **measured** to be capped below the bar reads down when every
786
787
  observable about it is independently verified strict. Every other rung and the
787
788
  graduation exam pass on the clause itself. Recompiling a stored candidate reproduces its
788
789
  record **to the digit within one gate**; across an instrument change the digits move,
789
- and [docs/LADDER.md](https://github.com/firejune/rigc/blob/main/docs/LADDER.md) records
790
+ and [docs/LADDER.md](https://github.com/rig-c/core/blob/main/docs/LADDER.md) records
790
791
  where. The standing figures quoted above are from its *gate-v2.4 re-inspection*, which
791
792
  is the current sweep.
792
793
 
@@ -805,19 +806,19 @@ a from-zero run is a tooling-progress measurement rather than a re-climb, which
805
806
  why the certification above is scoped to tool + guide + protocol. One of those
806
807
  attempts states the residual in its own words: *"in motion it is not at editor
807
808
  quality."* All six, with their verdicts, are in
808
- [docs/LADDER.md](https://github.com/firejune/rigc/blob/main/docs/LADDER.md).
809
+ [docs/LADDER.md](https://github.com/rig-c/core/blob/main/docs/LADDER.md).
809
810
 
810
811
  The whole dossier — the yardstick, `diff` and `check` and what neither of them can
811
- see, every rung, the run viewer, the 50 assertions and the selftest behind them — is
812
- [docs/BENCHMARK.md](https://github.com/firejune/rigc/blob/main/docs/BENCHMARK.md).
812
+ see, every rung, the run viewer, the 51 assertions and the selftest behind them — is
813
+ [docs/BENCHMARK.md](https://github.com/rig-c/core/blob/main/docs/BENCHMARK.md).
813
814
  Live rung status is
814
- [docs/LADDER.md](https://github.com/firejune/rigc/blob/main/docs/LADDER.md).
815
+ [docs/LADDER.md](https://github.com/rig-c/core/blob/main/docs/LADDER.md).
815
816
 
816
817
  ## Contributing
817
818
 
818
- Issues are the ledger; see [CONTRIBUTING.md](https://github.com/firejune/rigc/blob/main/CONTRIBUTING.md) for what a change
819
+ Issues are the ledger; see [CONTRIBUTING.md](https://github.com/rig-c/core/blob/main/CONTRIBUTING.md) for what a change
819
820
  has to clear before it lands. Releases are cut by release-please —
820
- [RELEASING.md](https://github.com/firejune/rigc/blob/main/RELEASING.md).
821
+ [RELEASING.md](https://github.com/rig-c/core/blob/main/RELEASING.md).
821
822
 
822
823
  ## Licence
823
824