{"slug":"rigc-ingest","title":"rigc-ingest","summary":"Work with a Spine skeleton.json somebody else authored — exported from the Spine editor or another tool — using rigc. Read and validate it, understand a complaint rigc raised about it, decompile it into rigc specs with `rigc ingest`, normalise, re-pivot or rename it, and extend i","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-14T21:51:24.772106Z","repo":{"url":"https://github.com/rig-c/core","stars":14,"forks":2,"license":null,"updatedAt":"2026-10-14T21:50:41Z"},"bodyHtml":"<hr>\n<h2>name: rigc-ingest\ndescription: Work with a Spine skeleton.json somebody else authored — exported from the Spine editor or another tool — using rigc. Read and validate it, understand a complaint rigc raised about it, decompile it into rigc specs with <code>rigc ingest</code>, normalise, re-pivot or rename it, and extend it with an animation it does not have. Use when the input is an existing skeleton.json with its .atlas and page images rather than loose part PNGs. Not for Live2D file conversion or runtime tracking.\nlicense: MIT\ncompatibility: Requires Bun 1.2 or later and the npm package rig-c.</h2>\n<h1>Ingest — a skeleton you did not author</h1>\n<p>Load this when what you were handed is <strong>already a skeleton</strong>: a <code>skeleton.json</code>\nwith its <code>.atlas</code> and page images, and a request to understand it, answer a\ncomplaint about it, re-express it, or extend it. Every rule below is owned by\n<a href=\"https://github.com/rig-c/core/blob/main/docs/INGEST.md\">INGEST.md</a>; this file says when to open it and what it will\nnot do for you.</p>\n<p>\uD83D\uDCD6 <strong>A failure line ends with the command that prints its row of the guide</strong> —\n<code> (see rigc guide &lt;RULE&gt;)</code>. Run that command first, before reading anything else:\nit prints that rule's row of the shipped guide and nothing else. <code>rigc guide §&lt;n&gt;</code>\n(and <code>§&lt;n&gt;.&lt;m&gt;</code>, <code>§&lt;n&gt;.&lt;m&gt;.&lt;k&gt;</code>) prints the section's heading, own prose and\nsubsection index from <code>docs/AUTHORING.md</code>; add <code>--all</code> to include subsection\nbodies. A leaf prints its full text either way. Sizes describe full ledger spans;\n<code>--all</code> with a rule name is refused, exit 2. A compile error points at its stable\n<code>CE_</code> code row. <code>rigc guide §5.1.&lt;k&gt;</code> prints a numbered compile-error group of\nat most 30,000 UTF-8 bytes, and <code>rigc guide §5.1</code> prints the introduction and\nindex within that same limit; only legacy uncoded library errors point at <code>§5.1</code>.</p>\n<h2>Non-negotiables</h2>\n<ul>\n<li><strong>Validation is never bypassed.</strong> <code>validate</code> reads a foreign file as it is, and\n<code>build</code> writes nothing on a red gate — AUTHORING §0.</li>\n<li><strong>The compiler never invents a value, and neither does the decompiler.</strong> The\nspecs state every bone, slot and key; what the export left implicit is written\ndown before it compiles. <code>rigc ingest</code> obeys the same rule from the other side —\nwhat it cannot read out of the skeleton is a named <strong>finding</strong>, never a guess —\nINGEST §2.0 and §2.</li>\n<li><strong>The validator's messages are the instructions.</strong> A red line on an export is a\nfact about the file, and sometimes about the rule — INGEST §3 says which, and\nAUTHORING §5 names the file to change.</li>\n</ul>\n<h2>Start here: <code>rigc ingest</code></h2>\n<pre><code>rigc ingest hero.json --out specs/\nrigc build --rig specs/rig.json --motion specs/motion.json --images parts/ --out build/\n</code></pre>\n<p>It reads the skeleton — <strong>only</strong> the skeleton — and writes the rig spec and motion\nspec that rebuild it: <strong>byte for byte for a skeleton rigc emitted</strong>, and for an editor\nexport the weaker claim <code>diff</code> measures, with three kinds of benign difference left —\nINGEST §2.3. Two values it will not guess: the\n<strong>stage</strong> (a skeleton that declares none is carried as declaring none, and <code>--stage</code>\nadds a box to one — an editor export <em>may</em> be such a file, though every one in the\nexample corpus carries a box, and passing the flag at a file that declares a box is\nrefused rather than ignored) and each animation's <strong>duration</strong> (the largest key time,\nrecorded as a finding).\nRead <code>findings.json</code>: a <code>BLOCK</code> line means the rebuild will be missing something and\nthe command exits non-zero. Every code it can print — gutter, exit, meaning, what to\ndo — is the finding-code table in INGEST §2.0. Keep the <code>note</code> both specs carry.</p>\n<h2>What this guide will not do</h2>\n<p>rigc still cannot <strong>edit</strong> a skeleton: there is no command that opens one and\nchanges it, so every change is expressed in the specs — INGEST §0. <code>diff</code>'s ratios\nsay how much of a reference's structure a candidate reproduces, so extending or\nrenaming a foreign skeleton lowers them by design, and neither <code>validate</code> nor <code>diff</code>\nhas a pass bar — INGEST §0 and §4.</p>\n<p>⚠️ This section said <em>\"there is no route from it to specs, so every change goes\nthrough transcription\"</em> until 2026-09-17. That route exists now and it is the first\nthing to reach for; transcription by hand is what you fall back on for a construct\n<code>ingest</code> reports as a blocker.</p>\n<h2>Read, in this order</h2>\n<ol>\n<li><a href=\"https://github.com/rig-c/core/blob/main/docs/INGEST.md\">INGEST.md</a> — what every command will and will not do with\na foreign file (§0), <code>ingest</code> and transcription (§2), what each validator\ncomplaint means on an export (§3), and the re-pivot, rename and extend\nrecipes (§4).</li>\n<li><a href=\"https://github.com/rig-c/core/blob/main/docs/AUTHORING.md\">AUTHORING.md</a> — the two spec files the transcription\ntargets (§3–§4), the failure map (§5–§6), and the coordinate contract (§11.2).</li>\n<li>Then <a href=\"https://github.com/rig-c/core/blob/main/docs/RIGGING.md\">RIGGING.md</a> for why the re-pivot edit has the shape\nit has, and <a href=\"https://github.com/rig-c/core/blob/main/docs/MOTION.md\">MOTION.md</a> for the animation you are adding.</li>\n</ol>\n<p>Every guide linked here is in the installed package at <code>node_modules/rig-c/docs/</code>,\nwhich is the copy that matches the rigc you run; the links go to the repository's\n<code>main</code>. Inside the Claude Code plugin the same files are at <code>${CLAUDE_PLUGIN_ROOT}/docs/</code>.</p>\n<p>The install line and the build → validate → render → check loop are in the <code>rigc</code>\nskill.</p>\n","files":[{"path":"SKILL.md","sizeBytes":5444,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-14T21:51:32.041251Z","sha256":"16C9F74572CCEC4696B495766902B75B5EEB36ACEF957BB91B6D15B391B97337","sizeBytes":2644},"review":null,"source":{"repositoryUrl":"https://github.com/rig-c/core","path":"skills/rigc-ingest","license":null,"commit":"844d2a10413aed8151c618392ea380cb5f43c6c3","subtreeSha":"45EFCA88DB042134344C1EBC2A855387DE2F573F8B5DDF836B580E7CC196F780","lastSyncedAt":"2026-10-14T21:51:24.485663Z"},"reviewedAt":"2026-10-14T21:53:40.855243Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/rig-c/core/tree/main/skills/rigc-ingest"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install rig-c-core@llmmart"},{"target":"git","command":"git clone https://github.com/rig-c/core.git"}]}