@rig-c/core 2.39.0 → 2.39.1

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.
package/docs/FACE.md CHANGED
@@ -33,11 +33,11 @@ hold its results.
33
33
  breath's `chest` is a **sibling** of the plate it must not scale, and §4.4 is the
34
34
  artless-parent pattern the shared-shift split is one instance of
35
35
  - The worked example every number below comes from:
36
- [`gallery/portrait`](https://github.com/firejune/rigc/tree/main/gallery/portrait),
36
+ [`gallery/portrait`](https://github.com/rig-c/core/tree/main/gallery/portrait),
37
37
  and its measurement half,
38
- [`FINDINGS.md`](https://github.com/firejune/rigc/tree/main/gallery/portrait/FINDINGS.md)
38
+ [`FINDINGS.md`](https://github.com/rig-c/core/tree/main/gallery/portrait/FINDINGS.md)
39
39
  - **The same closed forms on the other axis**:
40
- [`gallery/nod`](https://github.com/firejune/rigc/tree/main/gallery/nod) is a
40
+ [`gallery/nod`](https://github.com/rig-c/core/tree/main/gallery/nod) is a
41
41
  worked `pitch`, and this page stays written for a **yaw**. It re-derives §4.2's
42
42
  fold angle on uneven *rows* and brackets it against `A39` at 33°/34°, and it
43
43
  measures §5's foreshortening at **0.863–1.176** against the yaw's 0.892–1.064
@@ -46,7 +46,7 @@ hold its results.
46
46
  - **The turn driven by a value instead of played as a time** — the same keys, on
47
47
  an axis: §8's *The turn as a value rather than a time* derives the range,
48
48
  **AUTHORING §3.5.2** is the `slider` constraint that does it, and
49
- [`gallery/look`](https://github.com/firejune/rigc/tree/main/gallery/look) is
49
+ [`gallery/look`](https://github.com/rig-c/core/tree/main/gallery/look) is
50
50
  the worked case. Read it when the angle has to follow something outside the
51
51
  animation — a pointer, a gaze target, a game value
52
52
 
@@ -402,7 +402,7 @@ authority to say what it measured, and the step share is that.
402
402
 
403
403
  📐 Method, harness and the full ladders live in the repository rather than in
404
404
  this package, as
405
- [`bench/studies/2026-09-05-density`](https://github.com/firejune/rigc/tree/main/bench/studies/2026-09-05-density) —
405
+ [`bench/studies/2026-09-05-density`](https://github.com/rig-c/core/tree/main/bench/studies/2026-09-05-density) —
406
406
  the same study also measures why `contour` is the wrong generator for a turn: it
407
407
  saturates at 868 vertices however fine the tolerance, its vertices all sit on the
408
408
  silhouette so it samples **2 %** of the depth range, and its ear-clipped interior
@@ -424,7 +424,7 @@ step. ⇒ **Author the sheet so it changes by at least ~8 levels across one mesh
424
424
  cell**, and spend its whole 0–255 range on the part — a map using an eighth of
425
425
  the range describes the same surface and reports 5.8° less of it. Method and
426
426
  ladders:
427
- [`bench/studies/2026-09-05-noise`](https://github.com/firejune/rigc/tree/main/bench/studies/2026-09-05-noise).
427
+ [`bench/studies/2026-09-05-noise`](https://github.com/rig-c/core/tree/main/bench/studies/2026-09-05-noise).
428
428
 
429
429
  ⭐ **And you do not have to guess which of the three you are looking at.** The
430
430
  lines under the ceiling say it: the **1st percentile over
@@ -736,7 +736,7 @@ practical shape is checkable: **key the fade to 0 at or before
736
736
  the last angle that gates green, and let the fold happen after it.**
737
737
 
738
738
  📘 **The identity above, used forwards on a `pitch`.**
739
- [`gallery/nod`](https://github.com/firejune/rigc/tree/main/gallery/nod)
739
+ [`gallery/nod`](https://github.com/rig-c/core/tree/main/gallery/nod)
740
740
  (repository material) picks its ceiling first and solves the *rows* out of it —
741
741
  `|y|outer = R·cos θmax` with θmax chosen at 21° giving 140.037 — and then
742
742
  brackets the fold this section predicts against `A39` itself: **33° gates green
@@ -793,7 +793,7 @@ The far eye narrows to 89%, the near eye widens to 106% (**derived**: 0.8922 and
793
793
 
794
794
  📘 **How much this is worth depends on the axis, and there is a worked case for
795
795
  the other one.** The same closed form on the `pitch` of
796
- [`gallery/nod`](https://github.com/firejune/rigc/tree/main/gallery/nod)
796
+ [`gallery/nod`](https://github.com/rig-c/core/tree/main/gallery/nod)
797
797
  (repository material) spans **0.863 … 1.176** across its five features, against
798
798
  the **0.892 … 1.064** above — a wider span at the *identical* angle, because
799
799
  `α = atan2(coordinate, depth)` grows with the coordinate and a face is taller
@@ -883,7 +883,7 @@ are all timing:
883
883
  is a third drawing.
884
884
  - **A swap has to dodge the frame grid.** A stepped key exactly on a sample time
885
885
  can be missed by a player accumulating `1/fps`, which is why
886
- [`gallery/squash`](https://github.com/firejune/rigc/tree/main/gallery/squash)'s
886
+ [`gallery/squash`](https://github.com/rig-c/core/tree/main/gallery/squash)'s
887
887
  blink key sits at `0.399999` (AUTHORING §4.5). **A continuous channel does not
888
888
  care where the samples land.**
889
889
 
@@ -1112,7 +1112,7 @@ duration 2 x range x scale
1112
1112
  time to + (degrees - from) x scale the slider's own mapping
1113
1113
  ```
1114
1114
 
1115
- 📐 **Worked, on [`gallery/look`](https://github.com/firejune/rigc/tree/main/gallery/look)**,
1115
+ 📐 **Worked, on [`gallery/look`](https://github.com/rig-c/core/tree/main/gallery/look)**,
1116
1116
  whose face is a 21 × 9 `grid` over one depth sheet:
1117
1117
 
1118
1118
  ```bash
@@ -1323,7 +1323,7 @@ exactly as they do above. Write `"additive": true` on all of them.
1323
1323
 
1324
1324
  ✅ **The editor half, measured.** The round trip was taken with
1325
1325
  `tools/editor_roundtrip.ts` on a licensed editor (data version 4.3.26) against a 4.3.13 build of
1326
- [`gallery/look`](https://github.com/firejune/rigc/tree/main/gallery/look) — this
1326
+ [`gallery/look`](https://github.com/rig-c/core/tree/main/gallery/look) — this
1327
1327
  subsection's worked case, not the `gallery/portrait` this page names at the top,
1328
1328
  which declares no constraints at all and so can carry no slider. What it found:
1329
1329
 
@@ -1784,16 +1784,16 @@ substitute for looking at three scales.
1784
1784
 
1785
1785
  ## 10. The worked example
1786
1786
 
1787
- [`gallery/portrait`](https://github.com/firejune/rigc/tree/main/gallery/portrait)
1787
+ [`gallery/portrait`](https://github.com/rig-c/core/tree/main/gallery/portrait)
1788
1788
  is this page on real art — **22 parts, 27 bones, 22 slots, 2 meshes, 40
1789
1789
  vertices**, three animations, and a README that derives every number rather than
1790
1790
  listing it. Its
1791
- [`FINDINGS.md`](https://github.com/firejune/rigc/tree/main/gallery/portrait/FINDINGS.md)
1791
+ [`FINDINGS.md`](https://github.com/rig-c/core/tree/main/gallery/portrait/FINDINGS.md)
1792
1792
  is the measurement half: what it cost, the seven-angle sweep, the five tool gaps
1793
1793
  it filed.
1794
1794
 
1795
1795
  📘 **The `pitch` has its own worked case**, and this page deliberately stays a
1796
- yaw: [`gallery/nod`](https://github.com/firejune/rigc/tree/main/gallery/nod) is
1796
+ yaw: [`gallery/nod`](https://github.com/rig-c/core/tree/main/gallery/nod) is
1797
1797
  the same two closed forms on the other axis, plus a travelling `wave` (AUTHORING
1798
1798
  §4.11.1). §4.2 and §5 above point at the two places its figures are worth
1799
1799
  reading beside these — the fold angle bracketed against `A39`, and a
package/docs/INGEST.md CHANGED
@@ -644,7 +644,7 @@ it hands you, and every rule in them applies to a spec `ingest` wrote.
644
644
 
645
645
  A file from another Spine generation is the one case where transcription is not the
646
646
  first fallback: migrate it through the editor of its own generation first, as
647
- [GENERATIONS.md](https://github.com/firejune/rigc/blob/main/docs/GENERATIONS.md) §4
647
+ [GENERATIONS.md](https://github.com/rig-c/core/blob/main/docs/GENERATIONS.md) §4
648
648
  states.
649
649
 
650
650
  ### 2.1 The workflow
@@ -707,7 +707,7 @@ the second is the one that costs a day:
707
707
  all, and then you are debugging your own incomplete work rather than the format.
708
708
 
709
709
  ⚠️ **When a kind turns out not to be expressible, stop and say so — that is a finding,
710
- not a blocker to route around.** [SURVEY_2026-08-22.md](https://github.com/firejune/rigc/blob/main/docs/SURVEY_2026-08-22.md) is the
710
+ not a blocker to route around.** [SURVEY_2026-08-22.md](https://github.com/rig-c/core/blob/main/docs/SURVEY_2026-08-22.md) is the
711
711
  per-skeleton survey of exactly this. ⇒ Check the survey for your feature before
712
712
  concluding either way, and if it is genuinely absent, the shape of the answer is *"this export
713
713
  uses X, which the motion spec cannot say"* with a pointer — not a silent
@@ -869,7 +869,7 @@ catches a whole-figure scale error, and it is the only one that does.
869
869
  ### 2.4 The worked precedent, and what to take from it
870
870
 
871
871
  Three transcriptions of official Spine exports live in this repository under
872
- [`bench/transcriptions/`](https://github.com/firejune/rigc/tree/main/bench/transcriptions/)
872
+ [`bench/transcriptions/`](https://github.com/rig-c/core/tree/main/bench/transcriptions/)
873
873
  — `3-timing-and-spacing` (3 bones, 2 slots, 2 animations, 69 keys, every curve raw),
874
874
  `6-arcs` (weighted meshes, mesh `edges`, four 4.3 transform constraints) and
875
875
  `spineboy` in both `ess` and `pro`. They are **worked examples you are meant to read**,
@@ -1482,7 +1482,7 @@ every directory the fetch produced.
1482
1482
  the per-directory terms.
1483
1483
 
1484
1484
  The transcription these recipes start from is
1485
- [`bench/transcriptions/3-timing-and-spacing/`](https://github.com/firejune/rigc/tree/main/bench/transcriptions/3-timing-and-spacing/),
1485
+ [`bench/transcriptions/3-timing-and-spacing/`](https://github.com/rig-c/core/tree/main/bench/transcriptions/3-timing-and-spacing/),
1486
1486
  unmodified. The re-pivoted, renamed and extended variants in §4 were built from copies
1487
1487
  of it; none is committed, because each is an illustration of an edit rather than a
1488
1488
  transcription of anything.
package/docs/MOTION.md CHANGED
@@ -105,7 +105,7 @@ and each fails in its own way rather than merely reading oddly:**
105
105
  ⭐ **What is still this page's job is whatever moves the dial**, and that is an
106
106
  ordinary animation with §3 applying to it unchanged. The split is visible in the
107
107
  worked example: in
108
- [`gallery/look`](https://github.com/firejune/rigc/tree/main/gallery/look) the two
108
+ [`gallery/look`](https://github.com/rig-c/core/tree/main/gallery/look) the two
109
109
  lookup tables `turn` and `tilt` carry **no easing at all**, and `sweep` — the one
110
110
  animation there meant to be played — carries every `ease` in the file.
111
111
 
@@ -751,7 +751,7 @@ What *is* real: every command line below was run, and every figure printed in an
751
751
  output block is what the command actually printed.
752
752
 
753
753
  🖼️ **For the same recipe on art that ships, the
754
- [`gallery/`](https://github.com/firejune/rigc/tree/main/gallery) examples are worked
754
+ [`gallery/`](https://github.com/rig-c/core/tree/main/gallery) examples are worked
755
755
  in-betweening material** — `walk` is §3.5's arcs and §3.7's phase offsets on two leg
756
756
  chains, `ride` puts the same offsets in `groups` + `stagger`, and `squash` is §3.9's
757
757
  pivot written as a `deform` about a contact point. Each README says what every key is
package/docs/PROMPTING.md CHANGED
@@ -8,9 +8,9 @@ measured case: in August 2026 a deliberately small model — Gemini 3.7 Flash on
8
8
  the Antigravity harness — authored a benchmark rung over a **3 h 01 m** session,
9
9
  observed by the operator; the harness kept no tool transcript, so the run is
10
10
  recorded **Unverified** on honesty, with two of its four tiers *unevidenced*
11
- ([the verdict](https://github.com/firejune/rigc/blob/main/docs/pilot/verdicts/2026-08-24-rung3-1.md)
11
+ ([the verdict](https://github.com/rig-c/core/blob/main/docs/pilot/verdicts/2026-08-24-rung3-1.md)
12
12
  states all of that). Every stumble below is one it actually made, priced by the instruments in
13
- [PILOT.md](https://github.com/firejune/rigc/blob/main/docs/PILOT.md)'s protocol. A large model makes fewer of these mistakes
13
+ [PILOT.md](https://github.com/rig-c/core/blob/main/docs/PILOT.md)'s protocol. A large model makes fewer of these mistakes
14
14
  unprompted; the clauses cost you three lines and make the small model's run
15
15
  land and the large model's run land cleaner.
16
16
 
@@ -27,7 +27,7 @@ For ordinary use (not a benchmark), the whole prompt is short:
27
27
 
28
28
  Then add the clauses below. If you are running the **benchmark**, do not
29
29
  improvise a prompt at all — hand the agent
30
- [pilot/rung3-runner-prompt.md](https://github.com/firejune/rigc/blob/main/docs/pilot/rung3-runner-prompt.md) verbatim; it
30
+ [pilot/rung3-runner-prompt.md](https://github.com/rig-c/core/blob/main/docs/pilot/rung3-runner-prompt.md) verbatim; it
31
31
  carries the honesty rule, and an improvised summary of that rule is how a run
32
32
  stops being scorable.
33
33
 
@@ -101,7 +101,7 @@ prompt for the six clauses above and then let the agent work.
101
101
 
102
102
  ## If you are scoring the run
103
103
 
104
- That is a different document: [PILOT.md](https://github.com/firejune/rigc/blob/main/docs/PILOT.md) is the protocol,
104
+ That is a different document: [PILOT.md](https://github.com/rig-c/core/blob/main/docs/PILOT.md) is the protocol,
105
105
  `pilot/rung3-runner-prompt.md` is the exact prompt, and the evaluator sheet it
106
106
  names is for the judge only. The one rule that reaches this page: **never put
107
107
  baseline figures, reference structure, or previous runs' measures into the
package/docs/RIGGING.md CHANGED
@@ -105,7 +105,7 @@ beside the offsets it exists to make visible:
105
105
  > *"Every limb attachment is OFFSET from its bone, and that is what makes the hinge
106
106
  > visible: art centred on its own pivot turns in place, so a search over one angle
107
107
  > would move nothing and a wrong hinge would cost nothing either."*
108
- > — [`selftest.ts`](https://github.com/firejune/rigc/blob/main/selftest.ts), the chain-fit fixture
108
+ > — [`selftest.ts`](https://github.com/rig-c/core/blob/main/selftest.ts), the chain-fit fixture
109
109
 
110
110
  ⇒ **A correctly placed pivot also collapses the spec.** A pendulum whose bone sits
111
111
  on its hinge needs one `rotate` track and no translate at all; the same part with
@@ -144,7 +144,7 @@ never:
144
144
  it**, so the bone points at its own mass — at the cost of two emitted fields.
145
145
 
146
146
  > *"Neither is checkable from the frames."* — rung 3's first attempt
147
- > ([`2026-08-23-rung3-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-rung3-1/LOOP.md) §11)
147
+ > ([`2026-08-23-rung3-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-rung3-1/LOOP.md) §11)
148
148
 
149
149
  ⇒ Pick one, and say in your log that you picked it. AUTHORING §10.1's naming
150
150
  convention is the same shape of decision and is worth far more (it decides five of
@@ -162,7 +162,7 @@ rigid.
162
162
  > bone you scale-key must sit at that bone's origin, or the offset rides the
163
163
  > scale."*
164
164
  > — spineboy attempt 4
165
- > ([`2026-08-28-spineboy-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-28-spineboy-1/LOOP.md) §8)
165
+ > ([`2026-08-28-spineboy-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-28-spineboy-1/LOOP.md) §8)
166
166
 
167
167
  ⇒ This is the one exception to §1's rule, and it is not a contradiction: a bone
168
168
  whose **scale** is the animated property is not a hinge, so there is no hinge to
@@ -184,10 +184,10 @@ None of them is an error message. Each one is a number that reads as ordinary.
184
184
 
185
185
  | Signature | What it actually is | Record |
186
186
  | --- | --- | --- |
187
- | **A gap that letting the parts off the hierarchy closes.** `idle` fitted to 10.3 union MAE on the frame the setup pose came from and **23.9** eight frames later; a short relax off the hierarchy recovered it to **14.6** | *"A gap that a relax closes is not a pose the rig cannot reach; it is a pivot in the wrong place."* | spineboy attempt 1 ([`2026-08-23-spineboy-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-spineboy-1/LOOP.md) §8.2) |
188
- | **A fitted centre that drifts monotonically with the fitted scale.** The per-frame fits wanted each shadow's centre 8–12 units lower whenever the shadow was small | a part scaling about a pivot below its own centre — *"a pivot you have not modelled, not motion you have measured"* | rung 1 second attempt ([`2026-08-26-rung1-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-26-rung1-1/LOOP.md) §2.3) |
189
- | **A knob resting exactly on its bound, on one orientation only.** `torso.x` pinned at −35.0 against a ±35 box on the lying frames and nowhere else | the optimum is outside the box, because a pivot error `e` needs a compensation `−R(θ)·e` that grows with the local angle — *"invisible upright, saturating in the lying poses"* | spineboy attempt 5 ([`2026-08-28-spineboy-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-28-spineboy-2/LOOP.md) §3) |
190
- | **An exact fit with no angular spread.** Two ankle joints solved at **rms 0.00 px** with a relative-angle spread of **0° and 2°** | a perfect fit to a system with no unique answer | spineboy, 2026-09-03 first attempt ([`2026-09-03-spineboy-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-09-03-spineboy-1/LOOP.md) §3.3) |
187
+ | **A gap that letting the parts off the hierarchy closes.** `idle` fitted to 10.3 union MAE on the frame the setup pose came from and **23.9** eight frames later; a short relax off the hierarchy recovered it to **14.6** | *"A gap that a relax closes is not a pose the rig cannot reach; it is a pivot in the wrong place."* | spineboy attempt 1 ([`2026-08-23-spineboy-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-spineboy-1/LOOP.md) §8.2) |
188
+ | **A fitted centre that drifts monotonically with the fitted scale.** The per-frame fits wanted each shadow's centre 8–12 units lower whenever the shadow was small | a part scaling about a pivot below its own centre — *"a pivot you have not modelled, not motion you have measured"* | rung 1 second attempt ([`2026-08-26-rung1-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-26-rung1-1/LOOP.md) §2.3) |
189
+ | **A knob resting exactly on its bound, on one orientation only.** `torso.x` pinned at −35.0 against a ±35 box on the lying frames and nowhere else | the optimum is outside the box, because a pivot error `e` needs a compensation `−R(θ)·e` that grows with the local angle — *"invisible upright, saturating in the lying poses"* | spineboy attempt 5 ([`2026-08-28-spineboy-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-28-spineboy-2/LOOP.md) §3) |
190
+ | **An exact fit with no angular spread.** Two ankle joints solved at **rms 0.00 px** with a relative-angle spread of **0° and 2°** | a perfect fit to a system with no unique answer | spineboy, 2026-09-03 first attempt ([`2026-09-03-spineboy-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-09-03-spineboy-1/LOOP.md) §3.3) |
191
191
 
192
192
  🚨 **The last one is the trap in its purest form: a zero residual reads as success
193
193
  in every other context on this toolchain.** Here it means the estimator was handed
@@ -219,7 +219,7 @@ across all eight shots:
219
219
  > 21-unit-different answer that fits the upright frames just as well. The joint is
220
220
  > ill-conditioned without the lying poses, which is how the inherited triangulation
221
221
  > (idle zoom-read) went wrong without any frame saying so."*
222
- > — [`2026-08-28-spineboy-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-28-spineboy-2/LOOP.md) §5
222
+ > — [`2026-08-28-spineboy-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-28-spineboy-2/LOOP.md) §5
223
223
 
224
224
  Two answers 21 art units apart, at residuals that do not separate them. That is
225
225
  what *ill-conditioned* means with a picture attached.
@@ -296,7 +296,7 @@ found that **every one of them measured a basin at the sweep's own cap** — ±4
296
296
  > *"On this figure the joint offsets are **weakly identified at the scale a frame
297
297
  > can see**, and the honest reading is that they are a prior with a measured width
298
298
  > rather than a measurement."*
299
- > — [`2026-09-03-spineboy-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-09-03-spineboy-2/LOOP.md) §3.5
299
+ > — [`2026-09-03-spineboy-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-09-03-spineboy-2/LOOP.md) §3.5
300
300
 
301
301
  ⇒ That sentence is the deliverable when the pixels are silent. It is not a hedge:
302
302
  a width is a number, and the next attempt can tell whether its own change is inside
@@ -463,7 +463,7 @@ The failure, watched happening:
463
463
  > rear-thigh −199.8°`, whose net world rotations are −3°, +31° and −19°: the picture
464
464
  > was right and the numbers were unusable. A rotate series that swings 180° between
465
465
  > two keys does not interpolate, it spins the figure through a whole turn."*
466
- > — spineboy attempt 1 ([`2026-08-23-spineboy-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-spineboy-1/LOOP.md) §8.4)
466
+ > — spineboy attempt 1 ([`2026-08-23-spineboy-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-spineboy-1/LOOP.md) §8.4)
467
467
 
468
468
  ### 4.1 ⚠️ The exact fold has a precondition, and it is easy to miss
469
469
 
@@ -474,7 +474,7 @@ AUTHORING §10.3 prescribes is not a null operation — it costs pixels:
474
474
  > *"the hip's three children sit 9–13 units off it, so turning the hip moves their
475
475
  > origins and the render. Folding cost MAE on every frame it touched (`idle` mean
476
476
  > 23.0 with the fold against 19.9 without, same search)."*
477
- > — spineboy attempt 2 ([`2026-08-23-spineboy-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-spineboy-2/LOOP.md) §5)
477
+ > — spineboy attempt 2 ([`2026-08-23-spineboy-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-spineboy-2/LOOP.md) §5)
478
478
 
479
479
  ⇒ **Test the precondition before folding.** Children at the origin ⇒ exact gauge,
480
480
  fold it (the L1 optimum is the *median* of the children's deltas, which is one line).
@@ -521,10 +521,10 @@ that it is *keyed for a reason the arithmetic states*, not left free for a solve
521
521
 
522
522
  | Bone | Carries | Its children then key |
523
523
  | --- | --- | --- |
524
- | `faceshift` ([`gallery/portrait`](https://github.com/firejune/rigc/tree/main/gallery/portrait/)) | `−R·sin t`, the shift every feature shares in a yaw | only their residual — FACE §3 |
524
+ | `faceshift` ([`gallery/portrait`](https://github.com/rig-c/core/tree/main/gallery/portrait/)) | `−R·sin t`, the shift every feature shares in a yaw | only their residual — FACE §3 |
525
525
  | `comet` (rung 6, rung 8) | the whole travel of a ball and its trail | the squash, and the trail's bend |
526
526
  | `body` (rung 7, second attempt) | **translation only** — *"it holds no attachment, so keying its rotation as well would be a gauge"* | their own rotations |
527
- | `ground` ([`gallery/walk`](https://github.com/firejune/rigc/tree/main/gallery/walk/)) | the contact line | the foot targets — §9.1 |
527
+ | `ground` ([`gallery/walk`](https://github.com/rig-c/core/tree/main/gallery/walk/)) | the contact line | the foot targets — §9.1 |
528
528
 
529
529
  ⭐ **FACE §3's argument for it is an auditing one before it is a rigging one**: a
530
530
  residual is 1–6 units where a total is 30–40, *"nobody can eyeball an error in the
@@ -548,13 +548,13 @@ invisible in the numbers.
548
548
  > and takes a `translatey` (0 → 3.4). Parent the head chain to the bone that scales
549
549
  > and the whole face inflates 1.4% every breath — visible, and invisible in the
550
550
  > spec."*
551
- > — [`gallery/portrait/README.md`](https://github.com/firejune/rigc/blob/main/gallery/portrait/README.md)
551
+ > — [`gallery/portrait/README.md`](https://github.com/rig-c/core/blob/main/gallery/portrait/README.md)
552
552
 
553
553
  The same decision, on a ball and its trail:
554
554
 
555
555
  > *"`ball` is a **sibling** of `tail0` under `comet`, not its parent, so squashing
556
556
  > the ball does not squash the trail."*
557
- > — rung 6 ([`2026-08-23-rung6-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-rung6-1/README.md))
557
+ > — rung 6 ([`2026-08-23-rung6-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-rung6-1/README.md))
558
558
 
559
559
  ⇒ **The construction is always the same three bones**: an artless parent that
560
560
  carries what both share (§4.4), and two children — one that takes the scale and one
@@ -565,7 +565,7 @@ that takes the chain.
565
565
  > *"the neck plate has to take a *fraction* of the head's shift, so it cannot be an
566
566
  > ancestor of the head. `neckbase` is the shared parent; `neck` carries the plate and
567
567
  > `headroll` carries the head"*
568
- > — [`gallery/portrait/README.md`](https://github.com/firejune/rigc/blob/main/gallery/portrait/README.md), the part table
568
+ > — [`gallery/portrait/README.md`](https://github.com/rig-c/core/blob/main/gallery/portrait/README.md), the part table
569
569
 
570
570
  ⭐ **And the pivot goes one link up, which is the same edit for a second reason.**
571
571
  The same rig keys `headroll` and never `head`: *"a head rotates about the top of the
@@ -638,7 +638,7 @@ The record that named it:
638
638
  > setup render is unchanged. walk 0.176 → 0.150, run 0.232 → 0.201, aim 0.212 →
639
639
  > 0.186 after refit."*
640
640
  > — spineboy attempt 4
641
- > ([`2026-08-28-spineboy-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-28-spineboy-1/LOOP.md) §6)
641
+ > ([`2026-08-28-spineboy-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-28-spineboy-1/LOOP.md) §6)
642
642
 
643
643
  ⭐ **The tie-break is on the frames' side.** *"the shot's own extremes are a
644
644
  measurement, while segment lengths taken off a folded pose are an estimate — so when
@@ -659,7 +659,7 @@ fits converge, every residual is ordinary, and the figure splays.**
659
659
  > leg overshoots the floor by about 90 units and the fitter has to bend it sideways
660
660
  > to land … Re-seeding the leg joints inset from the art's ends — thigh 86 units,
661
661
  > shin 94 — put the ankle at world y **53.5** against the boot's own 54."*
662
- > — [`2026-09-03-spineboy-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-09-03-spineboy-1/LOOP.md) §4.4
662
+ > — [`2026-09-03-spineboy-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-09-03-spineboy-1/LOOP.md) §4.4
663
663
 
664
664
  ⭐ **Why the art misled it, and this generalises:** the art's outer ends are not the
665
665
  joints. A rounded cap's centroid sits at the plate's *tip*, while the joint two
@@ -686,7 +686,7 @@ frames put the standing leg at about 233 — a 79-unit excess with a plausible c
686
686
  > better rig, and the 79 units are a real knee bend in the reference's own stance
687
687
  > rather than an error in this rig. The surgery §8.1 warns about … was therefore not
688
688
  > performed, and the per-frame fitting budget was not spent twice."*
689
- > — [`2026-09-03-spineboy-2/evidence/limb-reach.txt`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-09-03-spineboy-2/evidence/limb-reach.txt)
689
+ > — [`2026-09-03-spineboy-2/evidence/limb-reach.txt`](https://github.com/rig-c/core/blob/main/bench/runs/2026-09-03-spineboy-2/evidence/limb-reach.txt)
690
690
 
691
691
  ⇒ **The reach check tells you a chain and a shot disagree. It does not tell you
692
692
  which one is wrong.** A bent limb and a long limb produce the same excess. One
@@ -736,7 +736,7 @@ form: **is each frame's silhouette an affine image of the part's own drawing?**
736
736
  > freedom the mesh was built with — a four-bone chain, weights blended by height
737
737
  > only."*
738
738
  > — rung 7, first attempt
739
- > ([`2026-08-28-rung7-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-28-rung7-1/LOOP.md) §5)
739
+ > ([`2026-08-28-rung7-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-28-rung7-1/LOOP.md) §5)
740
740
 
741
741
  ⇒ Two controls are what make that quotable and they are worth copying: the art
742
742
  through a **known affine** read 0.0044 → 0.0007 (the floor), and the art plus a
@@ -772,10 +772,10 @@ not fail — it degenerates:
772
772
  > *"The first candidate lifted the foot 56 units on a 130-unit leg: the chain has to
773
773
  > fold to a 70-unit span, and a two-bone solve does that by throwing the knee
774
774
  > sideways. 28 units — a fifth of the leg — is the version that reads as a step."*
775
- > — [`gallery/walk/README.md`](https://github.com/firejune/rigc/blob/main/gallery/walk/README.md)
775
+ > — [`gallery/walk/README.md`](https://github.com/rig-c/core/blob/main/gallery/walk/README.md)
776
776
 
777
777
  The same arithmetic on the other side of the chain, from
778
- [`gallery/flex`](https://github.com/firejune/rigc/tree/main/gallery/flex/): rotating a rigid panel about a seam opens a wedge
778
+ [`gallery/flex`](https://github.com/rig-c/core/tree/main/gallery/flex/): rotating a rigid panel about a seam opens a wedge
779
779
  of `halfHeight × tan(angle)` — about 22 px at 20° on that cloth — so *"the bend
780
780
  angles in `motion.json` are chosen against that overlap, not the other way round."*
781
781
 
@@ -801,7 +801,7 @@ differ by exactly the bone's own setup `x`/`y`:
801
801
  > *"the first spec moved the figure by the setup offset a second time. Rotation and
802
802
  > scale needed no correction: their setups are 0 and 1."*
803
803
  > — rung 7, second attempt
804
- > ([`2026-08-28-rung7-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-28-rung7-2/LOOP.md) §5)
804
+ > ([`2026-08-28-rung7-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-28-rung7-2/LOOP.md) §5)
805
805
 
806
806
  The same confusion one attempt earlier, from the other end: *"The first fitter used
807
807
  0 as every knob's neutral value. `bone.pose.x` is the bone's whole local
@@ -817,7 +817,7 @@ the diff names it in one line."*
817
817
 
818
818
  ⚠️ **A bone under a rotated parent is not at the parent's position plus its own
819
819
  numbers, and a leg chain is exactly that case.** That sentence is a comment in
820
- [`gallery/stage.ts`](https://github.com/firejune/rigc/blob/main/gallery/stage.ts), which exists because a drawing script
820
+ [`gallery/stage.ts`](https://github.com/rig-c/core/blob/main/gallery/stage.ts), which exists because a drawing script
821
821
  needed setup-pose world positions and *"writing them a second time in the drawing
822
822
  script is the defect that produces a shadow under nobody's feet, and it is
823
823
  invisible in both files — each is internally consistent."*
@@ -993,7 +993,7 @@ designed around it:
993
993
  > the chest and the legs as siblings. Chosen for identifiability, not anatomy …
994
994
  > Under a pelvis the legs sit above the only reliable anchor and every leg comes back
995
995
  > `no-anchor` on every frame — measured, not predicted."*
996
- > — [`2026-09-03-spineboy-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-09-03-spineboy-2/README.md)
996
+ > — [`2026-09-03-spineboy-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-09-03-spineboy-2/README.md)
997
997
 
998
998
  That is the only place in the corpus where a tree was chosen for what could be
999
999
  measured through it rather than for anatomy or for the art, and it is worth knowing
@@ -1014,7 +1014,7 @@ backwards:
1014
1014
  `bendPositive` combinations were indistinguishable at 4× zoom on the frame where the
1015
1015
  difference is largest. `shin_f.worldX` separated them immediately. Look at frames
1016
1016
  for whether it reads; read bone positions for what it is doing."*
1017
- ([`gallery/walk/README.md`](https://github.com/firejune/rigc/blob/main/gallery/walk/README.md))
1017
+ ([`gallery/walk/README.md`](https://github.com/rig-c/core/blob/main/gallery/walk/README.md))
1018
1018
 
1019
1019
  ### 8.4 ⚠️ And `pose` can be confident about the wrong twin
1020
1020
 
@@ -1041,7 +1041,7 @@ list of structural rules and a list of refusals.
1041
1041
  > at the contact line; `foot_f` and `foot_b` are children of `ground`. Parent a foot
1042
1042
  > target to `hip` and the hip carries its own feet up with it, **the solver reports
1043
1043
  > success, and the figure hovers.**"*
1044
- > — [`gallery/walk/README.md`](https://github.com/firejune/rigc/blob/main/gallery/walk/README.md)
1044
+ > — [`gallery/walk/README.md`](https://github.com/rig-c/core/blob/main/gallery/walk/README.md)
1045
1045
 
1046
1046
  Measured on that build, over the stance where `foot_f` is planted: the hip travels
1047
1047
  **7.9 units up and 2.9 sideways** while the foot reads `382.0, 68.0` on every
@@ -1067,15 +1067,15 @@ reaches the target. So:
1067
1067
  ⭐ **This is where the art and the hierarchy stop being two decisions.** Both plates
1068
1068
  have to be **drawn from their own joint**, and the joint's coordinates *inside each
1069
1069
  drawing* are what every `length` and every attachment offset is measured from —
1070
- [`gallery/rigby.ts`](https://github.com/firejune/rigc/blob/main/gallery/rigby.ts) names all four points for one leg, and
1071
- [`gallery/walk/rig.json`](https://github.com/firejune/rigc/blob/main/gallery/walk/rig.json) states them.
1070
+ [`gallery/rigby.ts`](https://github.com/rig-c/core/blob/main/gallery/rigby.ts) names all four points for one leg, and
1071
+ [`gallery/walk/rig.json`](https://github.com/rig-c/core/blob/main/gallery/walk/rig.json) states them.
1072
1072
 
1073
1073
  ### 9.3 A constraint carries the whole subtree, and that is the point
1074
1074
 
1075
1075
  > *"`cart` is the constrained bone; `wheel_b`/`wheel_f` and `hip` are its children,
1076
1076
  > so the constraint carries the wheels and the whole figure with it and the tangent
1077
1077
  > rotation tilts all three."*
1078
- > — [`gallery/ride/README.md`](https://github.com/firejune/rigc/blob/main/gallery/ride/README.md)
1078
+ > — [`gallery/ride/README.md`](https://github.com/rig-c/core/blob/main/gallery/ride/README.md)
1079
1079
 
1080
1080
  📌 Two placement conveniences from the same paragraph, both of the form *put the
1081
1081
  bone where the numbers become trivial*: `root` is at the world origin, *"which is why
@@ -1104,7 +1104,7 @@ default failure mode**, because it drives bones rather than drawing anything.
1104
1104
  > `true`, so any IK timeline that did not restate it overwrote the constraint's value
1105
1105
  > for the whole animation, with the field still in the file and the gate green either
1106
1106
  > way."*
1107
- > — [`gallery/walk/README.md`](https://github.com/firejune/rigc/blob/main/gallery/walk/README.md)
1107
+ > — [`gallery/walk/README.md`](https://github.com/rig-c/core/blob/main/gallery/walk/README.md)
1108
1108
  > (rigc stamps the rig's value onto every emitted ik key)
1109
1109
 
1110
1110
  ⇒ **A structural fact stated in the rig can be overwritten by a per-key default in
@@ -1121,7 +1121,7 @@ all**, unanimously, and paid for it in a measure:
1121
1121
  > point at if asked why there are four rather than one … that measure is the price of
1122
1122
  > the rule, and it is worth paying rather than winning by guessing."*
1123
1123
  > — rung 8, first attempt
1124
- > ([`2026-08-23-rung8-1`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-rung8-1/LOOP.md) §13)
1124
+ > ([`2026-08-23-rung8-1`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-rung8-1/LOOP.md) §13)
1125
1125
 
1126
1126
  ⭐ **The cleanest demonstration that the rule costs something real and is still the
1127
1127
  right rule** is in that same run, which authored two rigs against two references:
@@ -1171,7 +1171,7 @@ the draw order"* — which is what lets one part sit in front of its own parent:
1171
1171
  > arrangement that satisfies both things the frames measure: the gun reads unoccluded
1172
1172
  > in `idle`, and the near leg covers it in `walk`."*
1173
1173
  > — spineboy attempt 2
1174
- > ([`2026-08-23-spineboy-2`](https://github.com/firejune/rigc/blob/main/bench/runs/2026-08-23-spineboy-2/README.md))
1174
+ > ([`2026-08-23-spineboy-2`](https://github.com/rig-c/core/blob/main/bench/runs/2026-08-23-spineboy-2/README.md))
1175
1175
 
1176
1176
  ⚖️ **But parentage is a real question with a real answer, and the evidence for it is
1177
1177
  smoothness.** Rung 4 modelled a chain's top as a *sibling* of the disc it hangs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rig-c/core",
3
- "version": "2.39.0",
3
+ "version": "2.39.1",
4
4
  "description": "AI-authored 2D rigging and animation, verified before it is written. rigc compiles a rig spec into skeleton data in the Spine 4.3 format, gates it with named assertions held to a spine-core round trip's verdicts, and emits nothing that fails. Ships as an agent skill.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,10 +37,10 @@
37
37
  "author": "firejune",
38
38
  "repository": {
39
39
  "type": "git",
40
- "url": "https://github.com/firejune/rigc.git"
40
+ "url": "https://github.com/rig-c/core.git"
41
41
  },
42
- "homepage": "https://github.com/firejune/rigc#readme",
43
- "bugs": "https://github.com/firejune/rigc/issues",
42
+ "homepage": "https://github.com/rig-c/core#readme",
43
+ "bugs": "https://github.com/rig-c/core/issues",
44
44
  "keywords": [
45
45
  "spine",
46
46
  "spine2d",
@@ -109,25 +109,25 @@ model space, its UVs, its triangles — which is a mesh attachment with those th
109
109
  (AUTHORING §3.4, *Mesh attachment*); a region at the drawable's bounding-box centre
110
110
  keeps only the box. rigc reads none of those formats — FACE §11, the paragraph
111
111
  that opens *No Live2D file is read or written*
112
- ([FACE.md](https://github.com/firejune/rigc/blob/main/docs/FACE.md#11-non-goals--stated-so-nobody-proposes-them-as-gaps)) —
112
+ ([FACE.md](https://github.com/rig-c/core/blob/main/docs/FACE.md#11-non-goals--stated-so-nobody-proposes-them-as-gaps)) —
113
113
  only the pictures they produce. The rule, the background those frames need and
114
114
  what a wrong one costs: AUTHORING §0, *When the source is a foreign player*.
115
115
 
116
116
  ## Which guide, for which need
117
117
 
118
- Read [AUTHORING.md](https://github.com/firejune/rigc/blob/main/docs/AUTHORING.md) first, whatever the need: the two
118
+ Read [AUTHORING.md](https://github.com/rig-c/core/blob/main/docs/AUTHORING.md) first, whatever the need: the two
119
119
  spec files field by field, the emission rules, the loop, and the failure map. Then:
120
120
 
121
121
  | The request is… | Open | Skill |
122
122
  | --- | --- | --- |
123
- | a **skeleton** — how many bones, where each pivot sits, what hangs off what | [RIGGING.md](https://github.com/firejune/rigc/blob/main/docs/RIGGING.md) | `rigc-rigging` |
124
- | a **movement** — an idle, a loop, from this pose to that one | [MOTION.md](https://github.com/firejune/rigc/blob/main/docs/MOTION.md) | `rigc-motion` |
125
- | a **face** — a blink, a gaze, a head turn a few degrees off axis | [FACE.md](https://github.com/firejune/rigc/blob/main/docs/FACE.md) | `rigc-face` |
126
- | a **skeleton.json somebody else authored** — read it, repair it, extend it | [INGEST.md](https://github.com/firejune/rigc/blob/main/docs/INGEST.md) | `rigc-ingest` |
127
- | you are the **person operating** the agent rather than the agent | [PROMPTING.md](https://github.com/firejune/rigc/blob/main/docs/PROMPTING.md) | — |
123
+ | a **skeleton** — how many bones, where each pivot sits, what hangs off what | [RIGGING.md](https://github.com/rig-c/core/blob/main/docs/RIGGING.md) | `rigc-rigging` |
124
+ | a **movement** — an idle, a loop, from this pose to that one | [MOTION.md](https://github.com/rig-c/core/blob/main/docs/MOTION.md) | `rigc-motion` |
125
+ | a **face** — a blink, a gaze, a head turn a few degrees off axis | [FACE.md](https://github.com/rig-c/core/blob/main/docs/FACE.md) | `rigc-face` |
126
+ | a **skeleton.json somebody else authored** — read it, repair it, extend it | [INGEST.md](https://github.com/rig-c/core/blob/main/docs/INGEST.md) | `rigc-ingest` |
127
+ | you are the **person operating** the agent rather than the agent | [PROMPTING.md](https://github.com/rig-c/core/blob/main/docs/PROMPTING.md) | — |
128
128
 
129
129
  Every guide linked here is in the installed package at `node_modules/rig-c/docs/`,
130
130
  which is the copy that matches the rigc you run; the links go to the repository's
131
131
  `main`. Inside the Claude Code plugin the same files are at `${CLAUDE_PLUGIN_ROOT}/docs/`.
132
132
  Formats, the CLI reference and the licence chain:
133
- [README.md](https://github.com/firejune/rigc/blob/main/README.md), installed at `node_modules/rig-c/README.md`.
133
+ [README.md](https://github.com/rig-c/core/blob/main/README.md), installed at `node_modules/rig-c/README.md`.
@@ -9,7 +9,7 @@ compatibility: Requires Bun 1.2 or later and the npm package rig-c.
9
9
 
10
10
  Load this when the request is a **head rather than a body**: a drawn face that
11
11
  breathes, blinks, moves its eyes and turns a few degrees off axis. Every rule below
12
- is owned by [FACE.md](https://github.com/firejune/rigc/blob/main/docs/FACE.md); this file says when to open it and what
12
+ is owned by [FACE.md](https://github.com/rig-c/core/blob/main/docs/FACE.md); this file says when to open it and what
13
13
  it will not do for you.
14
14
 
15
15
  ## Non-negotiables
@@ -40,16 +40,16 @@ differential audit and the three limits it does not lift.
40
40
 
41
41
  ## Read, in this order
42
42
 
43
- 1. [AUTHORING.md](https://github.com/firejune/rigc/blob/main/docs/AUTHORING.md) — the `deform` timeline field by field
43
+ 1. [AUTHORING.md](https://github.com/rig-c/core/blob/main/docs/AUTHORING.md) — the `deform` timeline field by field
44
44
  and what rigc refuses in it (§4), the failure map (§5–§6), the editor's
45
45
  conventions (§10).
46
- 2. [MOTION.md](https://github.com/firejune/rigc/blob/main/docs/MOTION.md) — timing, easing and the offset table (§3),
46
+ 2. [MOTION.md](https://github.com/rig-c/core/blob/main/docs/MOTION.md) — timing, easing and the offset table (§3),
47
47
  candidates and the ballot (§4–§5). A blink and a gaze are ordinary motion work.
48
- 3. [FACE.md](https://github.com/firejune/rigc/blob/main/docs/FACE.md) — the face's own geometry: the closed form every
48
+ 3. [FACE.md](https://github.com/rig-c/core/blob/main/docs/FACE.md) — the face's own geometry: the closed form every
49
49
  number in a turn comes from (§1), the hierarchy underneath (§3), what
50
50
  foreshortens (§5), and the deform audit gap (§9).
51
- 4. Then [RIGGING.md](https://github.com/firejune/rigc/blob/main/docs/RIGGING.md) for the hierarchy as a general rule
52
- rather than this closed form, and [INGEST.md](https://github.com/firejune/rigc/blob/main/docs/INGEST.md) if the head
51
+ 4. Then [RIGGING.md](https://github.com/rig-c/core/blob/main/docs/RIGGING.md) for the hierarchy as a general rule
52
+ rather than this closed form, and [INGEST.md](https://github.com/rig-c/core/blob/main/docs/INGEST.md) if the head
53
53
  arrived as a compiled skeleton.
54
54
 
55
55
  Every guide linked here is in the installed package at `node_modules/rig-c/docs/`,
@@ -10,7 +10,7 @@ compatibility: Requires Bun 1.2 or later and the npm package rig-c.
10
10
  Load this when what you were handed is **already a skeleton**: a `skeleton.json`
11
11
  with its `.atlas` and page images, and a request to understand it, answer a
12
12
  complaint about it, re-express it, or extend it. Every rule below is owned by
13
- [INGEST.md](https://github.com/firejune/rigc/blob/main/docs/INGEST.md); this file says when to open it and what it will
13
+ [INGEST.md](https://github.com/rig-c/core/blob/main/docs/INGEST.md); this file says when to open it and what it will
14
14
  not do for you.
15
15
 
16
16
  ## Non-negotiables
@@ -61,14 +61,14 @@ thing to reach for; transcription by hand is what you fall back on for a constru
61
61
 
62
62
  ## Read, in this order
63
63
 
64
- 1. [INGEST.md](https://github.com/firejune/rigc/blob/main/docs/INGEST.md) — what every command will and will not do with
64
+ 1. [INGEST.md](https://github.com/rig-c/core/blob/main/docs/INGEST.md) — what every command will and will not do with
65
65
  a foreign file (§0), `ingest` and transcription (§2), what each validator
66
66
  complaint means on an export (§3), and the re-pivot, rename and extend
67
67
  recipes (§4).
68
- 2. [AUTHORING.md](https://github.com/firejune/rigc/blob/main/docs/AUTHORING.md) — the two spec files the transcription
68
+ 2. [AUTHORING.md](https://github.com/rig-c/core/blob/main/docs/AUTHORING.md) — the two spec files the transcription
69
69
  targets (§3–§4), the failure map (§5–§6), and the coordinate contract (§11.2).
70
- 3. Then [RIGGING.md](https://github.com/firejune/rigc/blob/main/docs/RIGGING.md) for why the re-pivot edit has the shape
71
- it has, and [MOTION.md](https://github.com/firejune/rigc/blob/main/docs/MOTION.md) for the animation you are adding.
70
+ 3. Then [RIGGING.md](https://github.com/rig-c/core/blob/main/docs/RIGGING.md) for why the re-pivot edit has the shape
71
+ it has, and [MOTION.md](https://github.com/rig-c/core/blob/main/docs/MOTION.md) for the animation you are adding.
72
72
 
73
73
  Every guide linked here is in the installed package at `node_modules/rig-c/docs/`,
74
74
  which is the copy that matches the rigc you run; the links go to the repository's
@@ -10,7 +10,7 @@ compatibility: Requires Bun 1.2 or later and the npm package rig-c.
10
10
  Load this when the request is a **movement rather than a skeleton**: a sentence of
11
11
  intent, between zero and N pictures of what the movement passes through, and a
12
12
  Spine animation somebody would choose coming back. Every rule below is owned by
13
- [MOTION.md](https://github.com/firejune/rigc/blob/main/docs/MOTION.md); this file says when to open it and what it will
13
+ [MOTION.md](https://github.com/rig-c/core/blob/main/docs/MOTION.md); this file says when to open it and what it will
14
14
  not do for you.
15
15
 
16
16
  ## Non-negotiables
@@ -31,16 +31,16 @@ thing that judges a movement is a person's eye through `rigc vote` — MOTION §
31
31
 
32
32
  ## Read, in this order
33
33
 
34
- 1. [AUTHORING.md](https://github.com/firejune/rigc/blob/main/docs/AUTHORING.md) — the motion spec field by field (§4),
34
+ 1. [AUTHORING.md](https://github.com/rig-c/core/blob/main/docs/AUTHORING.md) — the motion spec field by field (§4),
35
35
  the failure map (§5–§6), reading reference frames (§8) and checking against
36
36
  them (§9), what the editor does when nobody tells it otherwise (§10), and
37
37
  reading a pose out of a picture (§11–§12).
38
- 2. [MOTION.md](https://github.com/firejune/rigc/blob/main/docs/MOTION.md) — the normal form every motion request
38
+ 2. [MOTION.md](https://github.com/rig-c/core/blob/main/docs/MOTION.md) — the normal form every motion request
39
39
  reduces to (§0), timing, easing and the per-bone offset table (§3), and how to
40
40
  spread candidates so a ballot informs (§4–§5).
41
- 3. Then [RIGGING.md](https://github.com/firejune/rigc/blob/main/docs/RIGGING.md) if the skeleton itself is what you have
42
- to decide; [FACE.md](https://github.com/firejune/rigc/blob/main/docs/FACE.md) if the movement is a blink, a gaze or a
43
- head turn; [INGEST.md](https://github.com/firejune/rigc/blob/main/docs/INGEST.md) if the rig arrived as a compiled
41
+ 3. Then [RIGGING.md](https://github.com/rig-c/core/blob/main/docs/RIGGING.md) if the skeleton itself is what you have
42
+ to decide; [FACE.md](https://github.com/rig-c/core/blob/main/docs/FACE.md) if the movement is a blink, a gaze or a
43
+ head turn; [INGEST.md](https://github.com/rig-c/core/blob/main/docs/INGEST.md) if the rig arrived as a compiled
44
44
  skeleton rather than loose parts.
45
45
 
46
46
  Every guide linked here is in the installed package at `node_modules/rig-c/docs/`,