All notable changes to plugin-character are documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 — 2026-09-03
- The
animated-characterdomain declaration (domain.json): the two character setup steps (verbatim base-relative — the staticcharacterdomain stays in-repo and owns those assets) and the nine Stage R rig steps, appended after the base's FINAL steps via the registry'srigStepsvocabulary (harness ≥ 0.2.3). This plugin is now the canonical owner of the rig-step ORDER; the two-file pin intests/test_domain_declaration.pyguards it, and the freeze-before-bind rationale lives in that file's docstring. OpenSpec change:extract-animated-character(two-adversary review; command deviations from the old in-repo strings are enumerated in its design D4). gate_rigging.py --payload <path>— the checklist-step mode: an explicit payload path with no workspace resolution, because the base pipeline's workspace is its checkout, whichresolve_workspacerefuses.--workspaceremains the terminalgates.jsonmode.- Reference-doc drift pins (content hashes) for the two contract documents
rig-contract-readreads from{plugin_dir}/reference/.
- The
rigginggate is declaredblocking: false. Four of its twelve checks have no producer yet, an unevaluated check is honestly anerror, so the gate cannot returnpasson a healthy rig — a blocking declaration would halt any sweep on an honest verdict. Re-block trigger: the four producers exist and the gate passes the oracle rig. A fail is still recorded in theimg2.gate-runaggregate; it just does not stop it. clip-measurewritesclip-features.json(the base step was stdout-only):--outis required because bare cwd resolution would hit the checkout refusal.plugin.json: version 0.2.0,requires.harness: ">=0.2.3"(the release that admitsrigSteps).
Reverting to 0.1.0 removes the domain declaration: --profile animated-character fails loud naming
the available profiles, and an in-flight workspace is refused until a provider returns — it resumes
unchanged when one does. The base-side module deletion rolls back by git revert, not img2 remove.