rig-create 0.0.0-stage → 1.0.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.
Files changed (555) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +163 -2
  3. package/docs/CHECKS.md +1665 -0
  4. package/docs/COLLECTIONS.md +337 -0
  5. package/docs/CRAFT.md +277 -0
  6. package/docs/INTERVIEW.md +886 -0
  7. package/docs/LESSONS.md +172 -0
  8. package/docs/PROJECT.md +2657 -0
  9. package/docs/SOURCE.md +225 -0
  10. package/package.json +44 -4
  11. package/src/agent-bounce.ts +27 -0
  12. package/src/agent-guide.ts +237 -0
  13. package/src/amend.ts +193 -0
  14. package/src/applied-review.ts +104 -0
  15. package/src/ask-coverage.ts +69 -0
  16. package/src/assemble-answers.ts +53 -0
  17. package/src/cg-gates.ts +211 -0
  18. package/src/check-reads.ts +106 -0
  19. package/src/check.ts +1059 -0
  20. package/src/checkpoint-evidence-writer.ts +125 -0
  21. package/src/checkpoint-evidence.ts +152 -0
  22. package/src/choice-writers.ts +271 -0
  23. package/src/choices.ts +378 -0
  24. package/src/cli.ts +371 -0
  25. package/src/collection-answer.ts +136 -0
  26. package/src/collection-binding-reader.ts +496 -0
  27. package/src/collection-binding.ts +478 -0
  28. package/src/collection.ts +348 -0
  29. package/src/config-inputs.ts +155 -0
  30. package/src/config-lost.ts +135 -0
  31. package/src/correction-writers.ts +207 -0
  32. package/src/corrections.ts +685 -0
  33. package/src/diff-classes.ts +219 -0
  34. package/src/diff-map.ts +248 -0
  35. package/src/direction-citation.ts +13 -0
  36. package/src/direction-writers.ts +119 -0
  37. package/src/direction.ts +266 -0
  38. package/src/drafts.ts +363 -0
  39. package/src/feedback.ts +744 -0
  40. package/src/figure-mask.ts +143 -0
  41. package/src/fix-ledger.ts +355 -0
  42. package/src/init.ts +265 -0
  43. package/src/inputs.ts +160 -0
  44. package/src/intake.ts +158 -0
  45. package/src/interview.ts +53 -0
  46. package/src/invariants.ts +132 -0
  47. package/src/job-acts.ts +80 -0
  48. package/src/job-advance.ts +65 -0
  49. package/src/job-close.ts +226 -0
  50. package/src/job-host.ts +529 -0
  51. package/src/job-outbox.ts +383 -0
  52. package/src/job-publication.ts +701 -0
  53. package/src/job-runtime.ts +99 -0
  54. package/src/job-writer.ts +123 -0
  55. package/src/meshes-bust.ts +63 -0
  56. package/src/next.ts +1506 -0
  57. package/src/overrides.ts +42 -0
  58. package/src/package-upgrades.ts +32 -0
  59. package/src/packages-upgrade-check.ts +6 -0
  60. package/src/packages-upgrade.ts +168 -0
  61. package/src/parts-act.ts +96 -0
  62. package/src/parts-check.ts +242 -0
  63. package/src/parts-review.ts +196 -0
  64. package/src/parts-sections.ts +98 -0
  65. package/src/parts-verdict-record.ts +265 -0
  66. package/src/parts-verdict.ts +33 -0
  67. package/src/pause.ts +118 -0
  68. package/src/pins-check.ts +619 -0
  69. package/src/pins.ts +17 -0
  70. package/src/plan-bar-amendments.ts +54 -0
  71. package/src/plan-history.ts +147 -0
  72. package/src/plan-writers.ts +202 -0
  73. package/src/plate-receipt.ts +110 -0
  74. package/src/pre-interview.ts +302 -0
  75. package/src/prepared-inputs.ts +113 -0
  76. package/src/progress-writers.ts +181 -0
  77. package/src/provenance.ts +301 -0
  78. package/src/record-direction-target.ts +26 -0
  79. package/src/record-input.ts +18 -0
  80. package/src/refusal-baseline.ts +55 -0
  81. package/src/refusal.ts +30 -0
  82. package/src/reopen-lapses.ts +80 -0
  83. package/src/reopen.ts +144 -0
  84. package/src/republish.ts +93 -0
  85. package/src/restart.ts +141 -0
  86. package/src/review-act-runtime.ts +16 -0
  87. package/src/review-act.ts +592 -0
  88. package/src/review-package.ts +524 -0
  89. package/src/review-read.ts +238 -0
  90. package/src/review.ts +432 -0
  91. package/src/rig-version-date.ts +22 -0
  92. package/src/rig-version.ts +1047 -0
  93. package/src/run-record.ts +232 -0
  94. package/src/scene-authority.ts +410 -0
  95. package/src/scene-writers.ts +144 -0
  96. package/src/scene.ts +284 -0
  97. package/src/setup-painting.ts +46 -0
  98. package/src/signable.ts +65 -0
  99. package/src/signoff-answers.ts +76 -0
  100. package/src/signoff-checkpoint-act.ts +95 -0
  101. package/src/signoff-target.ts +127 -0
  102. package/src/signoff.ts +331 -0
  103. package/src/split-captions.ts +154 -0
  104. package/src/stage-progress.ts +379 -0
  105. package/src/stages.ts +148 -0
  106. package/src/step-hash.ts +19 -0
  107. package/src/structure-snapshot.ts +109 -0
  108. package/src/structure.ts +166 -0
  109. package/src/templates.ts +16 -0
  110. package/src/waypoints.ts +163 -0
  111. package/templates/agent-guide.md +108 -0
  112. package/templates/collection-agent-guide.md +72 -0
  113. package/templates/collection.json +252 -0
  114. package/templates/example-chain/AGENTS.md +134 -0
  115. package/templates/example-chain/CLAUDE.md +3 -0
  116. package/templates/example-chain/README.md +13 -0
  117. package/templates/example-chain/chain.json +2869 -0
  118. package/templates/example-chain/checkpoints/0a-interview-options/AGENTS.md +134 -0
  119. package/templates/example-chain/checkpoints/0a-interview-options/CLAUDE.md +3 -0
  120. package/templates/example-chain/checkpoints/0a-interview-options/evidence/.gitkeep +0 -0
  121. package/templates/example-chain/checkpoints/0a-interview-options/evidence/approval.txt +1 -0
  122. package/templates/example-chain/checkpoints/0a-interview-options/evidence/interview/rig_type.json +59 -0
  123. package/templates/example-chain/checkpoints/0a-interview-options/evidence/split-config.json +1 -0
  124. package/templates/example-chain/checkpoints/0a-interview-options/inputs/painting.png +0 -0
  125. package/templates/example-chain/checkpoints/0a-interview-options/inputs/references/.gitkeep +0 -0
  126. package/templates/example-chain/checkpoints/0a-interview-options/package.json +9 -0
  127. package/templates/example-chain/checkpoints/0a-interview-options/project.json +295 -0
  128. package/templates/example-chain/checkpoints/0a-interview-options.json +127 -0
  129. package/templates/example-chain/checkpoints/0b-plan-pending/AGENTS.md +134 -0
  130. package/templates/example-chain/checkpoints/0b-plan-pending/CLAUDE.md +3 -0
  131. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/.gitkeep +0 -0
  132. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/approval.txt +1 -0
  133. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/interview/assemble.json +309 -0
  134. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/interview/reference.json +59 -0
  135. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/interview/rig_type.json +59 -0
  136. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/interview/seethrough.json +186 -0
  137. package/templates/example-chain/checkpoints/0b-plan-pending/evidence/split-config.json +1 -0
  138. package/templates/example-chain/checkpoints/0b-plan-pending/inputs/painting.png +0 -0
  139. package/templates/example-chain/checkpoints/0b-plan-pending/inputs/references/.gitkeep +0 -0
  140. package/templates/example-chain/checkpoints/0b-plan-pending/package.json +9 -0
  141. package/templates/example-chain/checkpoints/0b-plan-pending/project.json +685 -0
  142. package/templates/example-chain/checkpoints/0b-plan-pending.json +81 -0
  143. package/templates/example-chain/checkpoints/1-parts-verdict/AGENTS.md +134 -0
  144. package/templates/example-chain/checkpoints/1-parts-verdict/CLAUDE.md +3 -0
  145. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/.gitkeep +0 -0
  146. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/approval.txt +1 -0
  147. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/interview/assemble.json +309 -0
  148. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/interview/reference.json +59 -0
  149. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/interview/rig_type.json +59 -0
  150. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/interview/seethrough.json +186 -0
  151. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/parts-check.json +127 -0
  152. package/templates/example-chain/checkpoints/1-parts-verdict/evidence/split-config.json +1 -0
  153. package/templates/example-chain/checkpoints/1-parts-verdict/inputs/painting.png +0 -0
  154. package/templates/example-chain/checkpoints/1-parts-verdict/inputs/references/.gitkeep +0 -0
  155. package/templates/example-chain/checkpoints/1-parts-verdict/package.json +9 -0
  156. package/templates/example-chain/checkpoints/1-parts-verdict/project.json +955 -0
  157. package/templates/example-chain/checkpoints/1-parts-verdict.json +204 -0
  158. package/templates/example-chain/checkpoints/2-rigging-answers/AGENTS.md +134 -0
  159. package/templates/example-chain/checkpoints/2-rigging-answers/CLAUDE.md +3 -0
  160. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/.gitkeep +0 -0
  161. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/approval.txt +1 -0
  162. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/diff-components.json +34 -0
  163. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/interview/assemble.json +309 -0
  164. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/interview/bones.json +190 -0
  165. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/interview/reference.json +59 -0
  166. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/interview/rig_type.json +59 -0
  167. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/interview/seethrough.json +186 -0
  168. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/parts-check.json +127 -0
  169. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/parts-review.json +88 -0
  170. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/review-reads/a12dea02d32508acc99386f894af76a14f1c85f45f804db2aa6b4dea5297973f.json +59 -0
  171. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/split-config.json +1 -0
  172. package/templates/example-chain/checkpoints/2-rigging-answers/evidence/structure.json +30 -0
  173. package/templates/example-chain/checkpoints/2-rigging-answers/inputs/painting.png +0 -0
  174. package/templates/example-chain/checkpoints/2-rigging-answers/inputs/references/.gitkeep +0 -0
  175. package/templates/example-chain/checkpoints/2-rigging-answers/package.json +9 -0
  176. package/templates/example-chain/checkpoints/2-rigging-answers/project.json +1198 -0
  177. package/templates/example-chain/checkpoints/2-rigging-answers.json +254 -0
  178. package/templates/example-chain/checkpoints/3-rig-review/AGENTS.md +134 -0
  179. package/templates/example-chain/checkpoints/3-rig-review/CLAUDE.md +3 -0
  180. package/templates/example-chain/checkpoints/3-rig-review/evidence/.gitkeep +0 -0
  181. package/templates/example-chain/checkpoints/3-rig-review/evidence/approval.txt +1 -0
  182. package/templates/example-chain/checkpoints/3-rig-review/evidence/diff-components.json +34 -0
  183. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/assemble.json +309 -0
  184. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/bones.json +190 -0
  185. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/constraints.json +272 -0
  186. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/meshes.json +190 -0
  187. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/motion.json +272 -0
  188. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/reference.json +59 -0
  189. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/rig_type.json +59 -0
  190. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/seethrough.json +186 -0
  191. package/templates/example-chain/checkpoints/3-rig-review/evidence/parts-check.json +127 -0
  192. package/templates/example-chain/checkpoints/3-rig-review/evidence/parts-review.json +88 -0
  193. package/templates/example-chain/checkpoints/3-rig-review/evidence/review-reads/a12dea02d32508acc99386f894af76a14f1c85f45f804db2aa6b4dea5297973f.json +59 -0
  194. package/templates/example-chain/checkpoints/3-rig-review/evidence/setup.png +0 -0
  195. package/templates/example-chain/checkpoints/3-rig-review/evidence/split-config.json +1 -0
  196. package/templates/example-chain/checkpoints/3-rig-review/evidence/structure.json +30 -0
  197. package/templates/example-chain/checkpoints/3-rig-review/evidence/v1/config.json +88 -0
  198. package/templates/example-chain/checkpoints/3-rig-review/evidence/v1/interview-requirements.json +8 -0
  199. package/templates/example-chain/checkpoints/3-rig-review/inputs/painting.png +0 -0
  200. package/templates/example-chain/checkpoints/3-rig-review/inputs/references/.gitkeep +0 -0
  201. package/templates/example-chain/checkpoints/3-rig-review/package.json +9 -0
  202. package/templates/example-chain/checkpoints/3-rig-review/project.json +1909 -0
  203. package/templates/example-chain/checkpoints/3-rig-review.json +424 -0
  204. package/templates/example-chain/checkpoints/4-direction-post/AGENTS.md +134 -0
  205. package/templates/example-chain/checkpoints/4-direction-post/CLAUDE.md +3 -0
  206. package/templates/example-chain/checkpoints/4-direction-post/evidence/.gitkeep +0 -0
  207. package/templates/example-chain/checkpoints/4-direction-post/evidence/approval.txt +1 -0
  208. package/templates/example-chain/checkpoints/4-direction-post/evidence/diff-components.json +34 -0
  209. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/assemble.json +309 -0
  210. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/bones.json +190 -0
  211. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/camera_depth.json +102 -0
  212. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/constraints.json +272 -0
  213. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/meshes.json +190 -0
  214. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/motion.json +272 -0
  215. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/post_composition.json +122 -0
  216. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/post_timing.json +102 -0
  217. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/reference.json +59 -0
  218. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/rig_type.json +59 -0
  219. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/seethrough.json +186 -0
  220. package/templates/example-chain/checkpoints/4-direction-post/evidence/parts-check.json +127 -0
  221. package/templates/example-chain/checkpoints/4-direction-post/evidence/parts-review.json +88 -0
  222. package/templates/example-chain/checkpoints/4-direction-post/evidence/review-reads/a12dea02d32508acc99386f894af76a14f1c85f45f804db2aa6b4dea5297973f.json +59 -0
  223. package/templates/example-chain/checkpoints/4-direction-post/evidence/setup.png +0 -0
  224. package/templates/example-chain/checkpoints/4-direction-post/evidence/split-config.json +1 -0
  225. package/templates/example-chain/checkpoints/4-direction-post/evidence/structure.json +30 -0
  226. package/templates/example-chain/checkpoints/4-direction-post/evidence/v1/config.json +88 -0
  227. package/templates/example-chain/checkpoints/4-direction-post/evidence/v1/interview-requirements.json +8 -0
  228. package/templates/example-chain/checkpoints/4-direction-post/inputs/painting.png +0 -0
  229. package/templates/example-chain/checkpoints/4-direction-post/inputs/references/.gitkeep +0 -0
  230. package/templates/example-chain/checkpoints/4-direction-post/package.json +9 -0
  231. package/templates/example-chain/checkpoints/4-direction-post/project.json +2302 -0
  232. package/templates/example-chain/checkpoints/4-direction-post.json +456 -0
  233. package/templates/example-chain/evidence/.gitkeep +0 -0
  234. package/templates/example-chain/evidence/approval.txt +1 -0
  235. package/templates/example-chain/evidence/captions.json +101 -0
  236. package/templates/example-chain/evidence/diff-components.json +34 -0
  237. package/templates/example-chain/evidence/direction/v2.json +74 -0
  238. package/templates/example-chain/evidence/direction-input.json +74 -0
  239. package/templates/example-chain/evidence/interview/assemble.json +309 -0
  240. package/templates/example-chain/evidence/interview/bones.json +190 -0
  241. package/templates/example-chain/evidence/interview/camera_depth.json +102 -0
  242. package/templates/example-chain/evidence/interview/constraints.json +272 -0
  243. package/templates/example-chain/evidence/interview/meshes.json +190 -0
  244. package/templates/example-chain/evidence/interview/motion.json +272 -0
  245. package/templates/example-chain/evidence/interview/post_composition.json +122 -0
  246. package/templates/example-chain/evidence/interview/post_timing.json +102 -0
  247. package/templates/example-chain/evidence/interview/reference.json +59 -0
  248. package/templates/example-chain/evidence/interview/rig_type.json +59 -0
  249. package/templates/example-chain/evidence/interview/seethrough.json +186 -0
  250. package/templates/example-chain/evidence/parts-check.json +127 -0
  251. package/templates/example-chain/evidence/parts-review.json +88 -0
  252. package/templates/example-chain/evidence/review-reads/a12dea02d32508acc99386f894af76a14f1c85f45f804db2aa6b4dea5297973f.json +59 -0
  253. package/templates/example-chain/evidence/scene/s1.json +65 -0
  254. package/templates/example-chain/evidence/scene-citations.json +9 -0
  255. package/templates/example-chain/evidence/setup.png +0 -0
  256. package/templates/example-chain/evidence/split-config.json +1 -0
  257. package/templates/example-chain/evidence/structure.json +30 -0
  258. package/templates/example-chain/evidence/v1/config.json +88 -0
  259. package/templates/example-chain/evidence/v1/interview-requirements.json +8 -0
  260. package/templates/example-chain/inputs/background.png +0 -0
  261. package/templates/example-chain/inputs/painting.png +0 -0
  262. package/templates/example-chain/inputs/references/.gitkeep +0 -0
  263. package/templates/example-chain/package.json +9 -0
  264. package/templates/example-chain/project.json +2593 -0
  265. package/templates/example-diff/diff-components.json +71 -0
  266. package/templates/example-diff/recomposite_rig.png +0 -0
  267. package/templates/example-direction/approval.txt +1 -0
  268. package/templates/example-direction/derived/review/v1/out/check/build/rectangle.png +0 -0
  269. package/templates/example-direction/derived/review/v1/out/check/build/run.json +40 -0
  270. package/templates/example-direction/derived/review/v1/out/check/build/skeleton.atlas +8 -0
  271. package/templates/example-direction/derived/review/v1/out/check/build/skeleton.json +73 -0
  272. package/templates/example-direction/derived/review/v1/out/check/build/skeleton.model.json +195 -0
  273. package/templates/example-direction/evidence/direction/v2.json +69 -0
  274. package/templates/example-direction/evidence/direction/v3.json +59 -0
  275. package/templates/example-direction/evidence/images/rectangle.png +0 -0
  276. package/templates/example-direction/evidence/input.json +69 -0
  277. package/templates/example-direction/evidence/motion.json +33 -0
  278. package/templates/example-direction/evidence/patch.json +23 -0
  279. package/templates/example-direction/evidence/rig-config.json +55 -0
  280. package/templates/example-direction/evidence/still.png +0 -0
  281. package/templates/example-direction/project.json +372 -0
  282. package/templates/example-direction/reasoning.txt +1 -0
  283. package/templates/example-direction/words.txt +1 -0
  284. package/templates/example-draft/README.md +28 -0
  285. package/templates/example-draft/config.json +71 -0
  286. package/templates/example-draft/derived/drafts/lantern/config.json +71 -0
  287. package/templates/example-draft/derived/drafts/lantern/input/painting_in_rig.png +0 -0
  288. package/templates/example-draft/derived/drafts/lantern/input/parts/background.png +0 -0
  289. package/templates/example-draft/derived/drafts/lantern/input/parts/eye_l.png +0 -0
  290. package/templates/example-draft/derived/drafts/lantern/input/parts/eye_r.png +0 -0
  291. package/templates/example-draft/derived/drafts/lantern/input/parts/face.png +0 -0
  292. package/templates/example-draft/derived/drafts/lantern/input/parts/lantern.png +0 -0
  293. package/templates/example-draft/derived/drafts/lantern/input/parts/torso.png +0 -0
  294. package/templates/example-draft/derived/drafts/lantern/input/parts.json +188 -0
  295. package/templates/example-draft/derived/drafts/lantern/input/recomposite_rig.png +0 -0
  296. package/templates/example-draft/derived/drafts/lantern/interview-requirements.json +8 -0
  297. package/templates/example-draft/derived/drafts/lantern/out/check/build/run.json +40 -0
  298. package/templates/example-draft/derived/drafts/lantern/out/check/build/skeleton.atlas +28 -0
  299. package/templates/example-draft/derived/drafts/lantern/out/check/build/skeleton.json +193 -0
  300. package/templates/example-draft/derived/drafts/lantern/out/check/build/skeleton.model.json +483 -0
  301. package/templates/example-draft/derived/drafts/lantern/out/check/build/skeleton.png +0 -0
  302. package/templates/example-draft/derived/drafts/lantern/out/images/background.png +0 -0
  303. package/templates/example-draft/derived/drafts/lantern/out/images/eye_l.png +0 -0
  304. package/templates/example-draft/derived/drafts/lantern/out/images/eye_r.png +0 -0
  305. package/templates/example-draft/derived/drafts/lantern/out/images/face.png +0 -0
  306. package/templates/example-draft/derived/drafts/lantern/out/images/lantern.png +0 -0
  307. package/templates/example-draft/derived/drafts/lantern/out/images/torso.png +0 -0
  308. package/templates/example-draft/derived/drafts/lantern/out/mesh_report.json +1 -0
  309. package/templates/example-draft/derived/drafts/lantern/out/motion.json +137 -0
  310. package/templates/example-draft/derived/drafts/lantern/out/rig.json +102 -0
  311. package/templates/example-draft/derived/drafts/lantern/out/run.json +52 -0
  312. package/templates/example-draft/derived/parts/rig/painting_in_rig.png +0 -0
  313. package/templates/example-draft/derived/parts/rig/parts/background.png +0 -0
  314. package/templates/example-draft/derived/parts/rig/parts/eye_l.png +0 -0
  315. package/templates/example-draft/derived/parts/rig/parts/eye_r.png +0 -0
  316. package/templates/example-draft/derived/parts/rig/parts/face.png +0 -0
  317. package/templates/example-draft/derived/parts/rig/parts/lantern.png +0 -0
  318. package/templates/example-draft/derived/parts/rig/parts/torso.png +0 -0
  319. package/templates/example-draft/derived/parts/rig/parts.json +188 -0
  320. package/templates/example-draft/derived/parts/rig/recomposite_rig.png +0 -0
  321. package/templates/example-draft/derived/review/v1/config.json +71 -0
  322. package/templates/example-draft/derived/review/v1/interview-requirements.json +8 -0
  323. package/templates/example-draft/derived/review/v1/out/check/build/run.json +40 -0
  324. package/templates/example-draft/derived/review/v1/out/check/build/skeleton.atlas +28 -0
  325. package/templates/example-draft/derived/review/v1/out/check/build/skeleton.json +193 -0
  326. package/templates/example-draft/derived/review/v1/out/check/build/skeleton.model.json +483 -0
  327. package/templates/example-draft/derived/review/v1/out/check/build/skeleton.png +0 -0
  328. package/templates/example-draft/derived/review/v1/out/parts/background.png +0 -0
  329. package/templates/example-draft/derived/review/v1/out/parts/eye_l.png +0 -0
  330. package/templates/example-draft/derived/review/v1/out/parts/eye_r.png +0 -0
  331. package/templates/example-draft/derived/review/v1/out/parts/face.png +0 -0
  332. package/templates/example-draft/derived/review/v1/out/parts/lantern.png +0 -0
  333. package/templates/example-draft/derived/review/v1/out/parts/torso.png +0 -0
  334. package/templates/example-draft/derived/review/v1/out/parts.json +188 -0
  335. package/templates/example-draft/derived/review/v1/out/rig/images/background.png +0 -0
  336. package/templates/example-draft/derived/review/v1/out/rig/images/eye_l.png +0 -0
  337. package/templates/example-draft/derived/review/v1/out/rig/images/eye_r.png +0 -0
  338. package/templates/example-draft/derived/review/v1/out/rig/images/face.png +0 -0
  339. package/templates/example-draft/derived/review/v1/out/rig/images/lantern.png +0 -0
  340. package/templates/example-draft/derived/review/v1/out/rig/images/torso.png +0 -0
  341. package/templates/example-draft/derived/review/v1/out/rig/mesh_report.json +1 -0
  342. package/templates/example-draft/derived/review/v1/out/rig/motion.json +137 -0
  343. package/templates/example-draft/derived/review/v1/out/rig/rig.json +102 -0
  344. package/templates/example-draft/derived/review/v1/out/rig/run.json +52 -0
  345. package/templates/example-draft/derived/review/v2/config.json +71 -0
  346. package/templates/example-draft/derived/review/v2/interview-requirements.json +8 -0
  347. package/templates/example-draft/derived/review/v2/out/check/build/run.json +40 -0
  348. package/templates/example-draft/derived/review/v2/out/check/build/skeleton.atlas +28 -0
  349. package/templates/example-draft/derived/review/v2/out/check/build/skeleton.json +193 -0
  350. package/templates/example-draft/derived/review/v2/out/check/build/skeleton.model.json +483 -0
  351. package/templates/example-draft/derived/review/v2/out/check/build/skeleton.png +0 -0
  352. package/templates/example-draft/derived/review/v2/out/parts/background.png +0 -0
  353. package/templates/example-draft/derived/review/v2/out/parts/eye_l.png +0 -0
  354. package/templates/example-draft/derived/review/v2/out/parts/eye_r.png +0 -0
  355. package/templates/example-draft/derived/review/v2/out/parts/face.png +0 -0
  356. package/templates/example-draft/derived/review/v2/out/parts/lantern.png +0 -0
  357. package/templates/example-draft/derived/review/v2/out/parts/torso.png +0 -0
  358. package/templates/example-draft/derived/review/v2/out/parts.json +188 -0
  359. package/templates/example-draft/derived/review/v2/out/rig/images/background.png +0 -0
  360. package/templates/example-draft/derived/review/v2/out/rig/images/eye_l.png +0 -0
  361. package/templates/example-draft/derived/review/v2/out/rig/images/eye_r.png +0 -0
  362. package/templates/example-draft/derived/review/v2/out/rig/images/face.png +0 -0
  363. package/templates/example-draft/derived/review/v2/out/rig/images/lantern.png +0 -0
  364. package/templates/example-draft/derived/review/v2/out/rig/images/torso.png +0 -0
  365. package/templates/example-draft/derived/review/v2/out/rig/mesh_report.json +1 -0
  366. package/templates/example-draft/derived/review/v2/out/rig/motion.json +137 -0
  367. package/templates/example-draft/derived/review/v2/out/rig/rig.json +102 -0
  368. package/templates/example-draft/derived/review/v2/out/rig/run.json +52 -0
  369. package/templates/example-draft/evidence/diff-components.json +71 -0
  370. package/templates/example-draft/evidence/direction/v4.json +64 -0
  371. package/templates/example-draft/evidence/direction-input-v4.json +64 -0
  372. package/templates/example-draft/evidence/fix-ledger/lantern.json +17 -0
  373. package/templates/example-draft/evidence/parts-check.json +127 -0
  374. package/templates/example-draft/evidence/parts-review.json +88 -0
  375. package/templates/example-draft/evidence/review-reads/4ed0507381809746443021554e012032be5b5f8417da0f2e525e9b6df16e9f05.json +59 -0
  376. package/templates/example-draft/evidence/scene/s1.json +65 -0
  377. package/templates/example-draft/evidence/scene-background.png +0 -0
  378. package/templates/example-draft/evidence/scene-citations.json +9 -0
  379. package/templates/example-draft/evidence/structure-decisions.json +9 -0
  380. package/templates/example-draft/evidence/v1/interview-config.json +71 -0
  381. package/templates/example-draft/evidence/v1/interview-requirements.json +8 -0
  382. package/templates/example-draft/evidence/v1/review-config.json +71 -0
  383. package/templates/example-draft/evidence/v2/interview-config.json +71 -0
  384. package/templates/example-draft/evidence/v2/interview-requirements.json +8 -0
  385. package/templates/example-draft/evidence/v2/review-config.json +71 -0
  386. package/templates/example-draft/input/painting_in_rig.png +0 -0
  387. package/templates/example-draft/input/parts/background.png +0 -0
  388. package/templates/example-draft/input/parts/eye_l.png +0 -0
  389. package/templates/example-draft/input/parts/eye_r.png +0 -0
  390. package/templates/example-draft/input/parts/face.png +0 -0
  391. package/templates/example-draft/input/parts/lantern.png +0 -0
  392. package/templates/example-draft/input/parts/torso.png +0 -0
  393. package/templates/example-draft/input/parts.json +188 -0
  394. package/templates/example-draft/input/recomposite_rig.png +0 -0
  395. package/templates/example-draft/inputs/painting.png +0 -0
  396. package/templates/example-draft/interview-requirements.json +8 -0
  397. package/templates/example-draft/out/check/build/run.json +40 -0
  398. package/templates/example-draft/out/check/build/skeleton.atlas +28 -0
  399. package/templates/example-draft/out/check/build/skeleton.json +193 -0
  400. package/templates/example-draft/out/check/build/skeleton.model.json +483 -0
  401. package/templates/example-draft/out/check/build/skeleton.png +0 -0
  402. package/templates/example-draft/out/images/background.png +0 -0
  403. package/templates/example-draft/out/images/eye_l.png +0 -0
  404. package/templates/example-draft/out/images/eye_r.png +0 -0
  405. package/templates/example-draft/out/images/face.png +0 -0
  406. package/templates/example-draft/out/images/lantern.png +0 -0
  407. package/templates/example-draft/out/images/torso.png +0 -0
  408. package/templates/example-draft/out/mesh_report.json +1 -0
  409. package/templates/example-draft/out/motion.json +137 -0
  410. package/templates/example-draft/out/rig.json +102 -0
  411. package/templates/example-draft/out/run.json +52 -0
  412. package/templates/example-draft/outputs/v1/out/check/build/run.json +40 -0
  413. package/templates/example-draft/outputs/v1/out/check/build/skeleton.atlas +28 -0
  414. package/templates/example-draft/outputs/v1/out/check/build/skeleton.json +193 -0
  415. package/templates/example-draft/outputs/v1/out/check/build/skeleton.model.json +483 -0
  416. package/templates/example-draft/outputs/v1/out/check/build/skeleton.png +0 -0
  417. package/templates/example-draft/outputs/v1/out/painting_in_rig.png +0 -0
  418. package/templates/example-draft/outputs/v1/out/parts/background.png +0 -0
  419. package/templates/example-draft/outputs/v1/out/parts/eye_l.png +0 -0
  420. package/templates/example-draft/outputs/v1/out/parts/eye_r.png +0 -0
  421. package/templates/example-draft/outputs/v1/out/parts/face.png +0 -0
  422. package/templates/example-draft/outputs/v1/out/parts/lantern.png +0 -0
  423. package/templates/example-draft/outputs/v1/out/parts/torso.png +0 -0
  424. package/templates/example-draft/outputs/v1/out/parts.json +188 -0
  425. package/templates/example-draft/outputs/v1/out/rig/images/background.png +0 -0
  426. package/templates/example-draft/outputs/v1/out/rig/images/eye_l.png +0 -0
  427. package/templates/example-draft/outputs/v1/out/rig/images/eye_r.png +0 -0
  428. package/templates/example-draft/outputs/v1/out/rig/images/face.png +0 -0
  429. package/templates/example-draft/outputs/v1/out/rig/images/lantern.png +0 -0
  430. package/templates/example-draft/outputs/v1/out/rig/images/torso.png +0 -0
  431. package/templates/example-draft/outputs/v1/out/rig/mesh_report.json +1 -0
  432. package/templates/example-draft/outputs/v1/out/rig/motion.json +137 -0
  433. package/templates/example-draft/outputs/v1/out/rig/rig.json +102 -0
  434. package/templates/example-draft/outputs/v1/out/rig/run.json +52 -0
  435. package/templates/example-draft/outputs/v2/out/check/build/run.json +40 -0
  436. package/templates/example-draft/outputs/v2/out/check/build/skeleton.atlas +28 -0
  437. package/templates/example-draft/outputs/v2/out/check/build/skeleton.json +193 -0
  438. package/templates/example-draft/outputs/v2/out/check/build/skeleton.model.json +483 -0
  439. package/templates/example-draft/outputs/v2/out/check/build/skeleton.png +0 -0
  440. package/templates/example-draft/outputs/v2/out/painting_in_rig.png +0 -0
  441. package/templates/example-draft/outputs/v2/out/parts/background.png +0 -0
  442. package/templates/example-draft/outputs/v2/out/parts/eye_l.png +0 -0
  443. package/templates/example-draft/outputs/v2/out/parts/eye_r.png +0 -0
  444. package/templates/example-draft/outputs/v2/out/parts/face.png +0 -0
  445. package/templates/example-draft/outputs/v2/out/parts/lantern.png +0 -0
  446. package/templates/example-draft/outputs/v2/out/parts/torso.png +0 -0
  447. package/templates/example-draft/outputs/v2/out/parts.json +188 -0
  448. package/templates/example-draft/outputs/v2/out/rig/images/background.png +0 -0
  449. package/templates/example-draft/outputs/v2/out/rig/images/eye_l.png +0 -0
  450. package/templates/example-draft/outputs/v2/out/rig/images/eye_r.png +0 -0
  451. package/templates/example-draft/outputs/v2/out/rig/images/face.png +0 -0
  452. package/templates/example-draft/outputs/v2/out/rig/images/lantern.png +0 -0
  453. package/templates/example-draft/outputs/v2/out/rig/images/torso.png +0 -0
  454. package/templates/example-draft/outputs/v2/out/rig/mesh_report.json +1 -0
  455. package/templates/example-draft/outputs/v2/out/rig/motion.json +137 -0
  456. package/templates/example-draft/outputs/v2/out/rig/rig.json +102 -0
  457. package/templates/example-draft/outputs/v2/out/rig/run.json +52 -0
  458. package/templates/example-interview-choice.json +1068 -0
  459. package/templates/example-interview-options/constraint.json +376 -0
  460. package/templates/example-interview-options/example-assemble.json +376 -0
  461. package/templates/example-interview-options/example-bones.json +190 -0
  462. package/templates/example-interview-options/example-camera-depth.json +99 -0
  463. package/templates/example-interview-options/example-constraints.json +272 -0
  464. package/templates/example-interview-options/example-meshes.json +190 -0
  465. package/templates/example-interview-options/example-motion.json +272 -0
  466. package/templates/example-interview-options/example-picks.json +15 -0
  467. package/templates/example-interview-options/example-post-composition.json +110 -0
  468. package/templates/example-interview-options/example-post-timing.json +105 -0
  469. package/templates/example-interview-options/example-reference.json +63 -0
  470. package/templates/example-interview-options/example-rig-type.json +63 -0
  471. package/templates/example-interview-options/example-seethrough.json +190 -0
  472. package/templates/example-interview-options/fullscreen.json +63 -0
  473. package/templates/example-interview-options/other-explicit.json +63 -0
  474. package/templates/example-interview-options/other-pending.json +63 -0
  475. package/templates/example-interview-options/other-picks.json +16 -0
  476. package/templates/example-interview.md +213 -0
  477. package/templates/example-invariants/invariants.json +1339 -0
  478. package/templates/example-prepared/prepared.svg +1 -0
  479. package/templates/example-prepared/source.svg +1 -0
  480. package/templates/example-project.json +4259 -0
  481. package/templates/example-remesh/AGENTS.md +134 -0
  482. package/templates/example-remesh/CLAUDE.md +3 -0
  483. package/templates/example-remesh/evidence/.gitkeep +0 -0
  484. package/templates/example-remesh/evidence/approval.txt +1 -0
  485. package/templates/example-remesh/evidence/captions.json +101 -0
  486. package/templates/example-remesh/evidence/diff-components.json +34 -0
  487. package/templates/example-remesh/evidence/direction/v4.json +74 -0
  488. package/templates/example-remesh/evidence/direction/v5.json +74 -0
  489. package/templates/example-remesh/evidence/direction-input-v4.json +74 -0
  490. package/templates/example-remesh/evidence/direction-input-v5.json +74 -0
  491. package/templates/example-remesh/evidence/interview/assemble.json +309 -0
  492. package/templates/example-remesh/evidence/interview/bones.json +190 -0
  493. package/templates/example-remesh/evidence/interview/camera_depth.json +103 -0
  494. package/templates/example-remesh/evidence/interview/constraints.json +272 -0
  495. package/templates/example-remesh/evidence/interview/meshes.json +190 -0
  496. package/templates/example-remesh/evidence/interview/motion.json +272 -0
  497. package/templates/example-remesh/evidence/interview/post_composition.json +123 -0
  498. package/templates/example-remesh/evidence/interview/post_timing.json +103 -0
  499. package/templates/example-remesh/evidence/interview/reference.json +59 -0
  500. package/templates/example-remesh/evidence/interview/rig_type.json +59 -0
  501. package/templates/example-remesh/evidence/interview/seethrough.json +186 -0
  502. package/templates/example-remesh/evidence/parts-check.json +127 -0
  503. package/templates/example-remesh/evidence/parts-review.json +88 -0
  504. package/templates/example-remesh/evidence/reopen.txt +1 -0
  505. package/templates/example-remesh/evidence/review-reads/6a17db694db96f1b6049a61a017e0c8e66757b982b8851e0187e561cfcf9af68.json +59 -0
  506. package/templates/example-remesh/evidence/scene/s1.json +69 -0
  507. package/templates/example-remesh/evidence/scene-citations.json +9 -0
  508. package/templates/example-remesh/evidence/setup.png +0 -0
  509. package/templates/example-remesh/evidence/split-config.json +1 -0
  510. package/templates/example-remesh/evidence/structure.json +30 -0
  511. package/templates/example-remesh/evidence/v1/registration/at-source.json +44 -0
  512. package/templates/example-remesh/evidence/v1/registration/citations.json +68 -0
  513. package/templates/example-remesh/evidence/v1/registration/compile-report.json +368 -0
  514. package/templates/example-remesh/evidence/v1/registration/config-source.json +88 -0
  515. package/templates/example-remesh/evidence/v1/registration/config.json +88 -0
  516. package/templates/example-remesh/evidence/v1/registration/interview-requirements.json +8 -0
  517. package/templates/example-remesh/evidence/v1/registration/package-lock.json +11 -0
  518. package/templates/example-remesh/evidence/v1/registration/path-adapter.json +1 -0
  519. package/templates/example-remesh/evidence/v1/registration/rigc-run-1.json +44 -0
  520. package/templates/example-remesh/evidence/v2/registration/at-source.json +44 -0
  521. package/templates/example-remesh/evidence/v2/registration/citations.json +68 -0
  522. package/templates/example-remesh/evidence/v2/registration/compile-report.json +368 -0
  523. package/templates/example-remesh/evidence/v2/registration/config-source.json +88 -0
  524. package/templates/example-remesh/evidence/v2/registration/config.json +88 -0
  525. package/templates/example-remesh/evidence/v2/registration/interview-requirements.json +8 -0
  526. package/templates/example-remesh/evidence/v2/registration/package-lock.json +11 -0
  527. package/templates/example-remesh/evidence/v2/registration/path-adapter.json +1 -0
  528. package/templates/example-remesh/evidence/v2/registration/rigc-run-1.json +44 -0
  529. package/templates/example-remesh/evidence/v3/registration/at-source.json +44 -0
  530. package/templates/example-remesh/evidence/v3/registration/citations.json +68 -0
  531. package/templates/example-remesh/evidence/v3/registration/compile-report.json +368 -0
  532. package/templates/example-remesh/evidence/v3/registration/config-source.json +88 -0
  533. package/templates/example-remesh/evidence/v3/registration/config.json +88 -0
  534. package/templates/example-remesh/evidence/v3/registration/interview-requirements.json +8 -0
  535. package/templates/example-remesh/evidence/v3/registration/package-lock.json +11 -0
  536. package/templates/example-remesh/evidence/v3/registration/path-adapter.json +1 -0
  537. package/templates/example-remesh/evidence/v3/registration/rigc-run-1.json +44 -0
  538. package/templates/example-remesh/inputs/background.png +0 -0
  539. package/templates/example-remesh/inputs/painting.png +0 -0
  540. package/templates/example-remesh/inputs/references/.gitkeep +0 -0
  541. package/templates/example-remesh/package.json +9 -0
  542. package/templates/example-remesh/project.json +3916 -0
  543. package/templates/example-reopened/project.json +4568 -0
  544. package/templates/example-review/config.json +1 -0
  545. package/templates/example-review/out/check/build/skeleton.model.json +1 -0
  546. package/templates/example-review/out/parts/piece.svg +1 -0
  547. package/templates/example-review/out/parts.json +1 -0
  548. package/templates/example-review/out/rig/mesh_report.json +1 -0
  549. package/templates/example-review/out/rig/motion.json +1 -0
  550. package/templates/example-review/out/rig/rig.json +1 -0
  551. package/templates/example-split/captions.json +357 -0
  552. package/templates/example-split/config.json +215 -0
  553. package/templates/legacy-example-project.json +1071 -0
  554. package/templates/project.json +199 -0
  555. package/templates/shared/conventions.json +23 -0
@@ -0,0 +1,190 @@
1
+ {
2
+ "schema": "rig-create/interview-options@1",
3
+ "id": "example-seethrough",
4
+ "question": "seethrough",
5
+ "stage": "interview",
6
+ "drafted_by": "agent",
7
+ "drafted_at": "2026-11-09T00:00:02.000Z",
8
+ "context": {
9
+ "kind": "inputs",
10
+ "files": [
11
+ {
12
+ "path": "inputs/preparation-source.svg",
13
+ "sha256": "3b2012bb72f7c55b64d7fec307bba26ff53f9bf8474ec7409650d218c168942e"
14
+ },
15
+ {
16
+ "path": "inputs/painting.png",
17
+ "sha256": "02e6ea41dfec89a7eced0f66b98e0fea048846c6f4174fa1cc7631fe360e614f"
18
+ }
19
+ ]
20
+ },
21
+ "asks": [
22
+ {
23
+ "id": "layers",
24
+ "prompt": "Choose layers for the synthetic parts.",
25
+ "options": [
26
+ {
27
+ "id": "keep",
28
+ "kind": "value",
29
+ "label": "auto",
30
+ "effect": "As answered on 2026-11-09T00:00:04.000Z in interview, chat",
31
+ "fragment": {
32
+ "layers": "synthetic layers on the approved parts"
33
+ },
34
+ "recommended": true,
35
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
36
+ },
37
+ {
38
+ "id": "alternative",
39
+ "kind": "value",
40
+ "label": "Alternative layers",
41
+ "effect": "Choose a different layers.",
42
+ "fragment": {
43
+ "layers": "alternative layers"
44
+ },
45
+ "recommended": false
46
+ },
47
+ {
48
+ "id": "other",
49
+ "kind": "other",
50
+ "label": "Other",
51
+ "effect": "Describe this decision.",
52
+ "recommended": false
53
+ },
54
+ {
55
+ "id": "auto",
56
+ "kind": "auto",
57
+ "label": "Let the agent decide",
58
+ "effect": "The agent must record this decision before approval.",
59
+ "recommended": false
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "id": "resolution",
65
+ "prompt": "Choose resolution for the synthetic parts.",
66
+ "options": [
67
+ {
68
+ "id": "keep",
69
+ "kind": "value",
70
+ "label": "Keep the proposed resolution",
71
+ "effect": "Use the proposed resolution on the named synthetic parts.",
72
+ "fragment": {
73
+ "resolution": "synthetic resolution on the approved parts"
74
+ },
75
+ "recommended": true,
76
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
77
+ },
78
+ {
79
+ "id": "alternative",
80
+ "kind": "value",
81
+ "label": "Alternative resolution",
82
+ "effect": "Choose a different resolution.",
83
+ "fragment": {
84
+ "resolution": "alternative resolution"
85
+ },
86
+ "recommended": false
87
+ },
88
+ {
89
+ "id": "other",
90
+ "kind": "other",
91
+ "label": "Other",
92
+ "effect": "Describe this decision.",
93
+ "recommended": false
94
+ },
95
+ {
96
+ "id": "auto",
97
+ "kind": "auto",
98
+ "label": "Let the agent decide",
99
+ "effect": "The agent must record this decision before approval.",
100
+ "recommended": false
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ "id": "head_crop",
106
+ "prompt": "Choose head_crop for the synthetic parts.",
107
+ "options": [
108
+ {
109
+ "id": "keep",
110
+ "kind": "value",
111
+ "label": "Keep the proposed head_crop",
112
+ "effect": "Use the proposed head_crop on the named synthetic parts.",
113
+ "fragment": {
114
+ "head_crop": "synthetic head_crop on the approved parts"
115
+ },
116
+ "recommended": true,
117
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
118
+ },
119
+ {
120
+ "id": "alternative",
121
+ "kind": "value",
122
+ "label": "Alternative head_crop",
123
+ "effect": "Choose a different head_crop.",
124
+ "fragment": {
125
+ "head_crop": "alternative head_crop"
126
+ },
127
+ "recommended": false
128
+ },
129
+ {
130
+ "id": "other",
131
+ "kind": "other",
132
+ "label": "Other",
133
+ "effect": "Describe this decision.",
134
+ "recommended": false
135
+ },
136
+ {
137
+ "id": "auto",
138
+ "kind": "auto",
139
+ "label": "Let the agent decide",
140
+ "effect": "The agent must record this decision before approval.",
141
+ "recommended": false
142
+ }
143
+ ]
144
+ },
145
+ {
146
+ "id": "seed",
147
+ "prompt": "Choose seed for the synthetic parts.",
148
+ "options": [
149
+ {
150
+ "id": "keep",
151
+ "kind": "value",
152
+ "label": "Keep the proposed seed",
153
+ "effect": "Use the proposed seed on the named synthetic parts.",
154
+ "fragment": {
155
+ "seed": "synthetic seed on the approved parts"
156
+ },
157
+ "recommended": true,
158
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
159
+ },
160
+ {
161
+ "id": "alternative",
162
+ "kind": "value",
163
+ "label": "Alternative seed",
164
+ "effect": "Choose a different seed.",
165
+ "fragment": {
166
+ "seed": "alternative seed"
167
+ },
168
+ "recommended": false
169
+ },
170
+ {
171
+ "id": "other",
172
+ "kind": "other",
173
+ "label": "Other",
174
+ "effect": "Describe this decision.",
175
+ "recommended": false
176
+ },
177
+ {
178
+ "id": "auto",
179
+ "kind": "auto",
180
+ "label": "Let the agent decide",
181
+ "effect": "The agent must record this decision before approval.",
182
+ "recommended": false
183
+ }
184
+ ]
185
+ }
186
+ ],
187
+ "assembly": {
188
+ "rule": "merge"
189
+ }
190
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "schema": "rig-create/interview-options@1",
3
+ "id": "fullscreen",
4
+ "question": "rig_type",
5
+ "stage": "interview",
6
+ "drafted_by": "agent",
7
+ "drafted_at": "2026-11-09T00:00:15.000Z",
8
+ "context": {
9
+ "kind": "inputs",
10
+ "files": [
11
+ {
12
+ "path": "inputs/preparation-source.svg",
13
+ "sha256": "3b2012bb72f7c55b64d7fec307bba26ff53f9bf8474ec7409650d218c168942e"
14
+ },
15
+ {
16
+ "path": "inputs/painting.png",
17
+ "sha256": "02e6ea41dfec89a7eced0f66b98e0fea048846c6f4174fa1cc7631fe360e614f"
18
+ }
19
+ ]
20
+ },
21
+ "asks": [
22
+ {
23
+ "id": "rig_type",
24
+ "prompt": "What is this: a character rig (standing idle / complex motion / a monster with its own moves) or a full-screen scene (minimal motion: breath, blink / motion tied to game logic)?",
25
+ "options": [
26
+ {
27
+ "id": "keep",
28
+ "kind": "value",
29
+ "label": "A standing character, idle. She holds a lantern.",
30
+ "effect": "As answered on 2026-11-09T00:00:02.000Z in interview, chat",
31
+ "fragment": "character.idle",
32
+ "recommended": true,
33
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
34
+ },
35
+ {
36
+ "id": "alternative",
37
+ "kind": "value",
38
+ "label": "Alternative rig_type",
39
+ "effect": "Choose a different rig_type.",
40
+ "fragment": "fullscreen.minimal",
41
+ "recommended": false
42
+ },
43
+ {
44
+ "id": "other",
45
+ "kind": "other",
46
+ "label": "Other",
47
+ "effect": "Describe this decision.",
48
+ "recommended": false
49
+ },
50
+ {
51
+ "id": "auto",
52
+ "kind": "auto",
53
+ "label": "Let the agent decide",
54
+ "effect": "The agent must record this decision before approval.",
55
+ "recommended": false
56
+ }
57
+ ]
58
+ }
59
+ ],
60
+ "assembly": {
61
+ "rule": "single"
62
+ }
63
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "schema": "rig-create/interview-options@1",
3
+ "id": "other-explicit",
4
+ "question": "reference",
5
+ "stage": "interview",
6
+ "drafted_by": "agent",
7
+ "drafted_at": "2026-11-09T00:00:11.000Z",
8
+ "context": {
9
+ "kind": "inputs",
10
+ "files": [
11
+ {
12
+ "path": "inputs/preparation-source.svg",
13
+ "sha256": "3b2012bb72f7c55b64d7fec307bba26ff53f9bf8474ec7409650d218c168942e"
14
+ },
15
+ {
16
+ "path": "inputs/painting.png",
17
+ "sha256": "02e6ea41dfec89a7eced0f66b98e0fea048846c6f4174fa1cc7631fe360e614f"
18
+ }
19
+ ]
20
+ },
21
+ "asks": [
22
+ {
23
+ "id": "reference",
24
+ "prompt": "'Make it feel like this': a video, an existing demo, a game you have in mind?",
25
+ "options": [
26
+ {
27
+ "id": "keep",
28
+ "kind": "value",
29
+ "label": "None.",
30
+ "effect": "As answered on 2026-11-09T00:00:03.000Z in interview, chat",
31
+ "fragment": "none",
32
+ "recommended": true,
33
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
34
+ },
35
+ {
36
+ "id": "alternative",
37
+ "kind": "value",
38
+ "label": "Alternative reference",
39
+ "effect": "Choose a different reference.",
40
+ "fragment": "none",
41
+ "recommended": false
42
+ },
43
+ {
44
+ "id": "other",
45
+ "kind": "other",
46
+ "label": "Other",
47
+ "effect": "Describe this decision.",
48
+ "recommended": false
49
+ },
50
+ {
51
+ "id": "auto",
52
+ "kind": "auto",
53
+ "label": "Let the agent decide",
54
+ "effect": "The agent must record this decision before approval.",
55
+ "recommended": false
56
+ }
57
+ ]
58
+ }
59
+ ],
60
+ "assembly": {
61
+ "rule": "single"
62
+ }
63
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "schema": "rig-create/interview-options@1",
3
+ "id": "other-pending",
4
+ "question": "reference",
5
+ "stage": "interview",
6
+ "drafted_by": "agent",
7
+ "drafted_at": "2026-11-09T00:00:08.000Z",
8
+ "context": {
9
+ "kind": "inputs",
10
+ "files": [
11
+ {
12
+ "path": "inputs/preparation-source.svg",
13
+ "sha256": "3b2012bb72f7c55b64d7fec307bba26ff53f9bf8474ec7409650d218c168942e"
14
+ },
15
+ {
16
+ "path": "inputs/painting.png",
17
+ "sha256": "02e6ea41dfec89a7eced0f66b98e0fea048846c6f4174fa1cc7631fe360e614f"
18
+ }
19
+ ]
20
+ },
21
+ "asks": [
22
+ {
23
+ "id": "reference",
24
+ "prompt": "'Make it feel like this': a video, an existing demo, a game you have in mind?",
25
+ "options": [
26
+ {
27
+ "id": "keep",
28
+ "kind": "value",
29
+ "label": "None.",
30
+ "effect": "As answered on 2026-11-09T00:00:03.000Z in interview, chat",
31
+ "fragment": "none",
32
+ "recommended": true,
33
+ "reason": "Preserves the stated synthetic direction and the accepted structure."
34
+ },
35
+ {
36
+ "id": "alternative",
37
+ "kind": "value",
38
+ "label": "Alternative reference",
39
+ "effect": "Choose a different reference.",
40
+ "fragment": "none",
41
+ "recommended": false
42
+ },
43
+ {
44
+ "id": "other",
45
+ "kind": "other",
46
+ "label": "Other",
47
+ "effect": "Describe this decision.",
48
+ "recommended": false
49
+ },
50
+ {
51
+ "id": "auto",
52
+ "kind": "auto",
53
+ "label": "Let the agent decide",
54
+ "effect": "The agent must record this decision before approval.",
55
+ "recommended": false
56
+ }
57
+ ]
58
+ }
59
+ ],
60
+ "assembly": {
61
+ "rule": "single"
62
+ }
63
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schema": "rig-review/interview-picks@1",
3
+ "set": {
4
+ "path": "evidence/interview/other-pending.json",
5
+ "sha256": "76d957b3686a84a49438a55a250f10c497f743ab9b005ff05caf88ea24f1699f"
6
+ },
7
+ "picks": [
8
+ {
9
+ "ask": "reference",
10
+ "option_id": "other",
11
+ "other_text": "다른 방향\nKeep the final spaces. \né"
12
+ }
13
+ ],
14
+ "by": "user",
15
+ "at": "2026-11-09T00:00:10.000Z"
16
+ }
@@ -0,0 +1,213 @@
1
+ # Worked example: the three user steps
2
+
3
+ A **made-up** painting, for the shape only: a lighthouse keeper standing on a
4
+ cliff path at night — long coat, a scarf, hair tied in a tail, a lantern in her
5
+ right hand, the lighthouse behind her. The project is `lantern-keeper`. It
6
+ follows the user's three steps — base motion, direction, polish feedback — and
7
+ shows a user sentence, a full delegation, a sentence that delegates the rest,
8
+ and feedback read every way it can be read. The complete record this walk-through
9
+ produces is [example-project.json](example-project.json); the shapes are defined
10
+ in [../docs/INTERVIEW.md](../docs/INTERVIEW.md) and
11
+ [../docs/PROJECT.md](../docs/PROJECT.md).
12
+
13
+ ## Step 1. Base motion (stage `interview`)
14
+
15
+ Framing first, then a guide at each rig waypoint. Nothing about the camera is
16
+ asked here: that is step 2.
17
+
18
+ | Waypoint | State | What the user said (verbatim) | Agent's reading |
19
+ | --- | --- | --- | --- |
20
+ | framing `rig_type` | user | "A standing character, idle. She holds a lantern." | `character.idle` |
21
+ | framing `reference` | user | "None." | `none`: reviews judge against the painting |
22
+ | `seethrough` | **delegated** | "auto" | agent: a full pass plus a head pass, so the eyelids come out as layers |
23
+ | `assemble` | user, **rest delegated** | "Standard cut, at the joints. Keep her face exactly as painted. The lantern is its own part. The rest is up to you." | standard cut; face untouched; lantern its own part; the part list and draw order are the agent's |
24
+ | `bones` | user | "A chain down the scarf, one in each coat tail, one in her hair tail." | chains: scarf, coat_tail_l, coat_tail_r, hair_tail |
25
+ | `meshes` | user | "The coat is one piece that bends with her breath. Face and lantern stay rigid." | torso: mesh; head, lantern: rigid regions |
26
+ | `constraints` | user | "The scarf and the coat tails move in the wind off the sea, the scarf a little more than the coat. Her hair tail barely moves. Nothing else on physics." | wind: scarf (most), coat tails, hair tail (barely); everything else still |
27
+ | `motion` | user | "Breath and blink. The lantern flame flickers." | breath, blink, flame_flicker; `game_states` is skipped (`required_for` does not include `character.idle`) |
28
+
29
+ `reference` is a user answer of *none*, not a delegation. `assemble` is a user
30
+ answer whose sentence hands over the rest, so the agent's part list is written
31
+ beside it in `agent_decision` with `covers` saying what it fills, and that part
32
+ of the waypoint reads as delegated.
33
+
34
+ The `seethrough` waypoint as written in `interview.waypoints[]` (prompts
35
+ omitted):
36
+
37
+ ```json
38
+ { "id": "seethrough", "config": ["seethrough"], "guide": {
39
+ "delegated": true, "by": "user", "at": "2026-11-10T14:03:00Z", "verbatim": "auto", "source": "interview, chat",
40
+ "agent_decision": {
41
+ "value": { "passes": ["full", "head"], "head_box": "her face and the hair tail's root, from the painting" },
42
+ "by": "agent", "at": "2026-11-10T15:10:00Z",
43
+ "reasoning": "Blink needs the eyelids as their own layers; at full-figure resolution the face is too small for the split to find them. The lantern is far enough from the body that the full pass separates it on its own."
44
+ } }, "history": [] }
45
+ ```
46
+
47
+ Signed: `{ "stage": "interview", "checkpoint": null, "by": "user", "at": "2026-11-10T14:20:00Z", "verbatim": "that's everything" }`.
48
+
49
+ ### The rig plan (stage `plan-approved`)
50
+
51
+ One step per waypoint, in pipeline order. Checkpoints were set by the user while
52
+ reading the draft; one was delegated, and the agent's decision on it was
53
+ written before the user signed.
54
+
55
+ | # | Step | Rests on | Bar | Checkpoint |
56
+ | --- | --- | --- | --- | --- |
57
+ | 1 | `seethrough` | `seethrough` (delegated) | both passes produce eyelid layers on both eyes; the lantern comes out as its own layer | user: off |
58
+ | 2 | `assemble` | `assemble`, `constraints` | every part named exists (face untouched, lantern its own part); limbs cut at shoulder, elbow, wrist; each part one label; setup pose matches the painting | user: on ("yes, show me the cut") |
59
+ | 3 | `bones` | `bones` | exactly the four chains the sentence names; no other chain | user: off |
60
+ | 4 | `meshes` | `meshes`, `assemble` | torso is a mesh; head and lantern are regions; 0 changed pixels inside the face box outside the eyelid masks, every frame | user: off |
61
+ | 5 | `constraints` | `constraints`, `bones` | only scarf, coat tails and hair tail move on physics; scarf largest, hair tail smallest; every other part changes 0 pixels from physics | **delegated** → agent: on |
62
+ | 6 | `motion` | `motion`, `rig_type` | every loop closes; breath, blink and flicker each present; renders the still-frame check | user: off |
63
+
64
+ Signed: `{ "stage": "plan-approved", "checkpoint": null, "by": "user", "at": "2026-11-10T16:05:00Z", "verbatim": "go" }`.
65
+ The signature does not make the delegated items the user's.
66
+
67
+ Steps 1 and 2 run in `parts`. At step 2 the labelled split image is shown and signed
68
+ (`{ "stage": "parts", "checkpoint": "assemble", … "verbatim": "the cut is fine" }`);
69
+ the assembled parts pass the parts check and the user signs them in rig-review's
70
+ parts view (`{ "stage": "parts-review", … "verbatim": "the parts are clean, rig it" }`).
71
+ Rigging runs the rest; at step 5 a motion sketch is shown for the checkpoint the agent chose. Each
72
+ config section cites its guide in `versions[0].provenance`, for example:
73
+
74
+ ```json
75
+ "constraints": [
76
+ { "entry": "scarf_wind", "guide": "constraints", "quote": "the scarf a little more than the coat" },
77
+ { "entry": "coat_tail_l_wind, coat_tail_r_wind", "guide": "constraints", "quote": "The scarf and the coat tails move in the wind off the sea" },
78
+ { "entry": "hair_tail_wind", "guide": "constraints", "quote": "Her hair tail barely moves." }
79
+ ]
80
+ ```
81
+
82
+ ### First review, on a still frame (stage `rig-review`)
83
+
84
+ v1 (`kind: "rig"`) is shown at a fixed camera, the motion and physics playing in
85
+ place. Polish feedback, two items in one message:
86
+
87
+ ```json
88
+ {
89
+ "by": "user", "at": "2026-11-12T09:30:00Z", "review": "rig-review", "verdict": "bounced",
90
+ "verbatim": "The lantern swings with the whole arm, like it's glued to her hand. It should hang from her hand and swing on its own. And the scarf whips around too hard; I said a little more than the coat, not a flag.",
91
+ "source": "chat",
92
+ "on_items": [
93
+ { "id": "bones", "answer_was": "not-asked" },
94
+ { "id": "constraints", "answer_was": "user" }
95
+ ]
96
+ }
97
+ ```
98
+
99
+ - **The lantern.** The `bones` sentence named four chains and nothing about the
100
+ lantern; no prompt asked whether a held thing swings. `not-asked`: the
101
+ feedback sentence is added to the `bones` guide as an addition —
102
+ *"It should hang from her hand and swing on its own."*, `"source": "polish
103
+ feedback, v1"` — and the hinge bone and its stop are cited to it in v2's
104
+ provenance. It is not fixed silently, so the next project with a held thing
105
+ will be asked.
106
+ - **The scarf.** The `constraints` sentence said *"a little more than the
107
+ coat"*; v1 did not follow it. `user`: an agent error, fixed in v2.
108
+
109
+ Steps 3 and 5 rest on the changed guide, so the plan is signed again for those
110
+ two before they run:
111
+ `{ "stage": "plan-approved", "checkpoint": null, "steps": ["bones", "constraints"], … "verbatim": "yes, re-run those two" }`.
112
+
113
+ v2 names what it answers — `"answers_feedback": [{ "version": 1, "verdict": 0 }]` —
114
+ and its `changed` says what moved. The user accepts v2 at `rig-review`:
115
+ *"yes, that's her"*, recorded both as v2's verdict and as the sign-off that
116
+ closes the stage.
117
+
118
+ ## Step 2. Direction (stage `post-interview`)
119
+
120
+ Asked only now, about the accepted rig v2:
121
+
122
+ | Post item | State | What the user said (verbatim) |
123
+ | --- | --- | --- |
124
+ | `camera_depth` | user | "A slow push-in, no parallax." |
125
+ | `post_timing` | user | "Eight seconds, looping. The beam sweeps past once, near the end." |
126
+ | `post_composition` | user | "Keep the whole lighthouse in frame. It's night; don't brighten it." |
127
+
128
+ Three post steps (`camera`, `timing`, `composition`; `phase: "post"`) are
129
+ drafted from these and signed with them:
130
+ `{ "stage": "post-interview", … "verbatim": "go" }`. No depth is built, because
131
+ the camera does not parallax; nothing in the rig changed for that.
132
+
133
+ ### The timing bar's chain-tip reading
134
+
135
+ The timing bar in `example-project.json` keeps the eight-second length and the
136
+ single late beam sweep, and adds a command-backed chain-tip clause. For
137
+ `scarf`, `coat_tail_l`, `coat_tail_r`, `hair_tail` and `lantern_hinge`, each boundary jump at
138
+ 8 seconds and 16 seconds must be no larger than that tip's own largest in-loop
139
+ step in each adjacent period.
140
+
141
+ Run `node_modules/.bin/rigc render --candidate derived/loop-twin --animation idle --fps 24 --geometry --out derived/loop-reading`.
142
+ Read each named chain's tip bone in the built rig's `geometry.json` in the
143
+ reported set directory. Reduce its world transform and length to its
144
+ world-space endpoint, then compute
145
+ Euclidean distances between consecutive endpoints. Compare steps 191-to-192
146
+ and 383-to-384 with that tip's largest consecutive step inside each adjacent
147
+ 192-frame period, excluding boundary steps.
148
+
149
+ `derived/loop-twin` denotes a compiled three-period measurement twin prepared
150
+ for this reading. Before using this example in a real project, prepare and
151
+ record that twin and check the reading command. The blink remains keyed once;
152
+ the beam sweep also remains once unless the twin's recorded differences say
153
+ otherwise. Those later periods do not certify repeated blink or beam timing.
154
+ The length and beat clauses still need their own reading commands before a
155
+ real project's sign-off.
156
+
157
+ The complete post loop-seam rule compares whole-figure boundary counts with
158
+ physics on against physics off on named backgrounds, and retains the per-tip
159
+ clause ([INTERVIEW.md](../docs/INTERVIEW.md#post-bars-on-a-looping-idle)).
160
+ White `#ffffff` and sentinel magenta `#ff00ff` are the proposed counting
161
+ backgrounds here. Today's rigc supplies no command for the physics-off
162
+ whole-figure comparison, so the example adds only the chain-tip clause.
163
+ Requiring that whole-figure reading is a STOP before sign-off until its tool
164
+ exists. The fictional sign-off above supplies no missing measurement command.
165
+
166
+ ### Second review, direction (stage `direction-review`)
167
+
168
+ v3 (`kind: "post"`, `rig_version: 2`) is shown. Polish feedback:
169
+ *"The beam sweeps right at the start. I said near the end."* →
170
+ `on_items: [{ "id": "post_timing", "answer_was": "user" }]`: the version did not
171
+ follow the user's sentence, so it is an agent error, fixed in v4 on the same rig
172
+ v2. The user accepts v4: *"done, I like it"*, and the project is `accepted`.
173
+
174
+ ## What the record shows afterwards
175
+
176
+ Reading [example-project.json](example-project.json) cold, without this page:
177
+
178
+ - Two of the nine sign-offs are checkpoints (`assemble`, `constraints`); one
179
+ re-signs two plan steps after a guide changed.
180
+ - One waypoint was delegated outright (`seethrough`), one partly (`assemble`);
181
+ both carry the agent's reasoning beside the delegation.
182
+ - Of the two bounces, one landed on a user sentence (agent error) and one on
183
+ something never asked (now a sentence at `bones`). Neither landed on a
184
+ delegated item, so no bounce reads as a cost the user chose.
185
+ - v2 and v4 each say which verdict they answer; v1 and v3 answer none.
186
+
187
+ ## Additional record fixtures
188
+
189
+ The filled record includes a tagged prepared input: synthetic circle SVGs in
190
+ [example-prepared](example-prepared/), with measured source and result hashes.
191
+ Copy them to the record's named paths before checking. The operation was done
192
+ externally; `derived add` only records it. The `seethrough` guide's `history[]`
193
+ also contains an agent-found bounce: the first split failed the eyelid bar and
194
+ was replaced by the full pass plus a head pass. It is separate from the two
195
+ human review bounces above and grants no new sign-off.
196
+
197
+ ### Per-ask coverage in this synthetic record
198
+
199
+ The filled JSON also records each applicable rig ask as user-answered or
200
+ delegated. Its existing whole `seethrough` delegation covers layer choices.
201
+ The `assemble` sentence delegates the remaining assembly choices. To expose
202
+ rather than hide the other missing asks, the synthetic conversation adds:
203
+
204
+ - Bones: "Bone placement and chain lengths are yours."
205
+ - Meshes: "The mesh density is yours."
206
+ - Constraints: "Gravity and stops are yours."
207
+ - Motion: "The rest is yours; keep it subtle."
208
+
209
+ The last line delegates extent, speed and rig loop length. The adjacent agent
210
+ decision chooses a subtle eight-second loop with slow breath, brief blink and
211
+ irregular flicker. These choices are recorded before the original plan approval;
212
+ its step fields and recorded hashes remain unchanged. These additions illustrate
213
+ a new synthetic interview, not a retroactive delegation of a real user's words.