rig-create 1.0.4 → 1.2.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 (185) hide show
  1. package/README.md +5 -5
  2. package/docs/AGENT-REFERENCE.md +62 -0
  3. package/docs/CHECKS.md +45 -9
  4. package/docs/INTERVIEW.md +19 -7
  5. package/docs/LIVE-REVIEW.md +4 -4
  6. package/package.json +3 -2
  7. package/src/agent-guide.ts +7 -4
  8. package/src/check.ts +7 -4
  9. package/src/choice-writers.ts +3 -14
  10. package/src/cli.ts +1 -0
  11. package/src/feedback.ts +3 -10
  12. package/src/fix-ledger.ts +1 -1
  13. package/src/job-acts.ts +4 -0
  14. package/src/job-host-state.ts +154 -0
  15. package/src/job-host.ts +37 -14
  16. package/src/job-outbox.ts +5 -3
  17. package/src/job-publication.ts +17 -13
  18. package/src/job-runtime.ts +17 -4
  19. package/src/next.ts +21 -13
  20. package/src/parts-review.ts +4 -11
  21. package/src/reopen.ts +72 -9
  22. package/src/review-act.ts +49 -14
  23. package/src/review-package.ts +3 -1
  24. package/src/rig-version.ts +219 -8
  25. package/src/scene-writers.ts +5 -3
  26. package/src/scene.ts +14 -4
  27. package/src/signable.ts +25 -3
  28. package/src/signoff-checkpoint-act.ts +2 -16
  29. package/src/signoff.ts +3 -15
  30. package/src/waypoints.ts +20 -9
  31. package/templates/agent-guide.md +2 -24
  32. package/templates/collection.json +10 -2
  33. package/templates/example-chain/AGENT-REFERENCE.md +62 -0
  34. package/templates/example-chain/AGENTS.md +4 -26
  35. package/templates/example-chain/README.md +1 -1
  36. package/templates/example-chain/chain.json +385 -319
  37. package/templates/example-chain/checkpoints/0a-interview-options/AGENT-REFERENCE.md +62 -0
  38. package/templates/example-chain/checkpoints/0a-interview-options/AGENTS.md +4 -26
  39. package/templates/example-chain/checkpoints/0a-interview-options/project.json +22 -5
  40. package/templates/example-chain/checkpoints/0a-interview-options.json +7 -3
  41. package/templates/example-chain/checkpoints/0b-plan-pending/AGENT-REFERENCE.md +62 -0
  42. package/templates/example-chain/checkpoints/0b-plan-pending/AGENTS.md +4 -26
  43. package/templates/example-chain/checkpoints/0b-plan-pending/project.json +22 -5
  44. package/templates/example-chain/checkpoints/0b-plan-pending.json +7 -3
  45. package/templates/example-chain/checkpoints/1-parts-verdict/AGENT-REFERENCE.md +62 -0
  46. package/templates/example-chain/checkpoints/1-parts-verdict/AGENTS.md +4 -26
  47. package/templates/example-chain/checkpoints/1-parts-verdict/derived/drafts/chain/out/check/build/run.json +2 -2
  48. package/templates/example-chain/checkpoints/1-parts-verdict/derived/drafts/chain/out/run.json +2 -2
  49. package/templates/example-chain/checkpoints/1-parts-verdict/project.json +24 -7
  50. package/templates/example-chain/checkpoints/1-parts-verdict.json +9 -5
  51. package/templates/example-chain/checkpoints/2-rigging-answers/AGENT-REFERENCE.md +62 -0
  52. package/templates/example-chain/checkpoints/2-rigging-answers/AGENTS.md +4 -26
  53. package/templates/example-chain/checkpoints/2-rigging-answers/derived/drafts/chain/out/check/build/run.json +2 -2
  54. package/templates/example-chain/checkpoints/2-rigging-answers/derived/drafts/chain/out/run.json +2 -2
  55. package/templates/example-chain/checkpoints/2-rigging-answers/project.json +24 -7
  56. package/templates/example-chain/checkpoints/2-rigging-answers.json +21 -5
  57. package/templates/example-chain/checkpoints/3-rig-review/AGENT-REFERENCE.md +62 -0
  58. package/templates/example-chain/checkpoints/3-rig-review/AGENTS.md +4 -26
  59. package/templates/example-chain/checkpoints/3-rig-review/derived/drafts/chain/out/check/build/run.json +2 -2
  60. package/templates/example-chain/checkpoints/3-rig-review/derived/drafts/chain/out/run.json +2 -2
  61. package/templates/example-chain/checkpoints/3-rig-review/derived/review/v1/out/check/build/run.json +2 -2
  62. package/templates/example-chain/checkpoints/3-rig-review/derived/review/v1/out/rig/run.json +2 -2
  63. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/motion.json +1 -1
  64. package/templates/example-chain/checkpoints/3-rig-review/evidence/interview/turn.json +108 -0
  65. package/templates/example-chain/checkpoints/3-rig-review/outputs/v1/out/check/build/run.json +2 -2
  66. package/templates/example-chain/checkpoints/3-rig-review/outputs/v1/out/rig/run.json +2 -2
  67. package/templates/example-chain/checkpoints/3-rig-review/project.json +77 -28
  68. package/templates/example-chain/checkpoints/3-rig-review.json +19 -11
  69. package/templates/example-chain/checkpoints/4-direction-post/AGENT-REFERENCE.md +62 -0
  70. package/templates/example-chain/checkpoints/4-direction-post/AGENTS.md +4 -26
  71. package/templates/example-chain/checkpoints/4-direction-post/derived/drafts/chain/out/check/build/run.json +2 -2
  72. package/templates/example-chain/checkpoints/4-direction-post/derived/drafts/chain/out/run.json +2 -2
  73. package/templates/example-chain/checkpoints/4-direction-post/derived/review/v1/out/check/build/run.json +2 -2
  74. package/templates/example-chain/checkpoints/4-direction-post/derived/review/v1/out/rig/run.json +2 -2
  75. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/camera_depth.json +2 -2
  76. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/motion.json +1 -1
  77. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/post_composition.json +2 -2
  78. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/post_timing.json +2 -2
  79. package/templates/example-chain/checkpoints/4-direction-post/evidence/interview/turn.json +108 -0
  80. package/templates/example-chain/checkpoints/4-direction-post/outputs/v1/out/check/build/run.json +2 -2
  81. package/templates/example-chain/checkpoints/4-direction-post/outputs/v1/out/rig/run.json +2 -2
  82. package/templates/example-chain/checkpoints/4-direction-post/project.json +106 -57
  83. package/templates/example-chain/checkpoints/4-direction-post.json +22 -14
  84. package/templates/example-chain/derived/drafts/chain/out/check/build/run.json +2 -2
  85. package/templates/example-chain/derived/drafts/chain/out/run.json +2 -2
  86. package/templates/example-chain/derived/review/v1/out/check/build/run.json +2 -2
  87. package/templates/example-chain/derived/review/v1/out/rig/run.json +2 -2
  88. package/templates/example-chain/evidence/captions.json +1 -1
  89. package/templates/example-chain/evidence/direction/v2.json +1 -1
  90. package/templates/example-chain/evidence/direction-input.json +1 -1
  91. package/templates/example-chain/evidence/interview/camera_depth.json +2 -2
  92. package/templates/example-chain/evidence/interview/motion.json +1 -1
  93. package/templates/example-chain/evidence/interview/post_composition.json +2 -2
  94. package/templates/example-chain/evidence/interview/post_timing.json +2 -2
  95. package/templates/example-chain/evidence/interview/turn.json +108 -0
  96. package/templates/example-chain/evidence/scene/s1.json +2 -2
  97. package/templates/example-chain/outputs/v1/out/check/build/run.json +2 -2
  98. package/templates/example-chain/outputs/v1/out/rig/run.json +2 -2
  99. package/templates/example-chain/project.json +127 -78
  100. package/templates/example-direction/derived/review/v1/out/check/build/run.json +2 -2
  101. package/templates/example-draft/derived/drafts/lantern/out/check/build/run.json +2 -2
  102. package/templates/example-draft/derived/drafts/lantern/out/run.json +2 -2
  103. package/templates/example-draft/derived/review/v1/out/check/build/run.json +2 -2
  104. package/templates/example-draft/derived/review/v1/out/rig/run.json +2 -2
  105. package/templates/example-draft/derived/review/v2/out/check/build/run.json +2 -2
  106. package/templates/example-draft/derived/review/v2/out/rig/run.json +2 -2
  107. package/templates/example-draft/evidence/direction/v4.json +3 -3
  108. package/templates/example-draft/evidence/direction-input-v4.json +3 -3
  109. package/templates/example-draft/evidence/parts-review.json +1 -1
  110. package/templates/example-draft/evidence/review-reads/{52673b635b9cbc92da1a9e3d4c023a249bbacf79cd21b59724f03f18f8caf09b.json → 8866887a00012b5d5944b7525a478aea70931935bff35ddfcb186ffc515ef5af.json} +2 -2
  111. package/templates/example-draft/evidence/scene/s1.json +3 -3
  112. package/templates/example-draft/evidence/scene-citations.json +1 -1
  113. package/templates/example-draft/out/check/build/run.json +2 -2
  114. package/templates/example-draft/out/run.json +2 -2
  115. package/templates/example-draft/outputs/v1/out/check/build/run.json +2 -2
  116. package/templates/example-draft/outputs/v1/out/rig/run.json +2 -2
  117. package/templates/example-draft/outputs/v2/out/check/build/run.json +2 -2
  118. package/templates/example-draft/outputs/v2/out/rig/run.json +2 -2
  119. package/templates/example-interview-choice.json +113 -68
  120. package/templates/example-interview-options/constraint.json +2 -2
  121. package/templates/example-interview-options/example-assemble.json +2 -2
  122. package/templates/example-interview-options/example-bones.json +5 -5
  123. package/templates/example-interview-options/example-camera-depth.json +3 -3
  124. package/templates/example-interview-options/example-constraints.json +5 -5
  125. package/templates/example-interview-options/example-meshes.json +5 -5
  126. package/templates/example-interview-options/example-motion.json +5 -5
  127. package/templates/example-interview-options/example-picks.json +2 -2
  128. package/templates/example-interview-options/example-post-composition.json +3 -3
  129. package/templates/example-interview-options/example-post-timing.json +3 -3
  130. package/templates/example-interview-options/example-reference.json +2 -2
  131. package/templates/example-interview-options/example-rig-type.json +2 -2
  132. package/templates/example-interview-options/example-seethrough.json +2 -2
  133. package/templates/example-interview-options/example-turn.json +108 -0
  134. package/templates/example-interview-options/fullscreen.json +2 -2
  135. package/templates/example-interview-options/other-explicit.json +2 -2
  136. package/templates/example-interview-options/other-pending.json +2 -2
  137. package/templates/example-interview-options/other-picks.json +2 -2
  138. package/templates/example-invariants/invariants.json +223 -164
  139. package/templates/example-project.json +301 -249
  140. package/templates/example-remesh/AGENT-REFERENCE.md +62 -0
  141. package/templates/example-remesh/AGENTS.md +4 -26
  142. package/templates/example-remesh/derived/drafts/remesh/out/check/build/run.json +2 -2
  143. package/templates/example-remesh/derived/drafts/remesh/out/run.json +2 -2
  144. package/templates/example-remesh/derived/review/v1/out/check/build/run.json +2 -2
  145. package/templates/example-remesh/derived/review/v1/out/rig/run.json +2 -2
  146. package/templates/example-remesh/derived/review/v2/out/check/build/run.json +2 -2
  147. package/templates/example-remesh/derived/review/v2/out/rig/run.json +2 -2
  148. package/templates/example-remesh/derived/review/v3/out/check/build/run.json +2 -2
  149. package/templates/example-remesh/derived/review/v3/out/rig/run.json +2 -2
  150. package/templates/example-remesh/evidence/captions.json +1 -1
  151. package/templates/example-remesh/evidence/direction/v4.json +1 -1
  152. package/templates/example-remesh/evidence/direction/v5.json +1 -1
  153. package/templates/example-remesh/evidence/direction-input-v4.json +1 -1
  154. package/templates/example-remesh/evidence/direction-input-v5.json +1 -1
  155. package/templates/example-remesh/evidence/interview/assemble.json +1 -1
  156. package/templates/example-remesh/evidence/interview/bones.json +4 -4
  157. package/templates/example-remesh/evidence/interview/camera_depth.json +2 -2
  158. package/templates/example-remesh/evidence/interview/constraints.json +4 -4
  159. package/templates/example-remesh/evidence/interview/meshes.json +4 -4
  160. package/templates/example-remesh/evidence/interview/motion.json +4 -4
  161. package/templates/example-remesh/evidence/interview/post_composition.json +2 -2
  162. package/templates/example-remesh/evidence/interview/post_timing.json +2 -2
  163. package/templates/example-remesh/evidence/interview/reference.json +1 -1
  164. package/templates/example-remesh/evidence/interview/rig_type.json +1 -1
  165. package/templates/example-remesh/evidence/interview/seethrough.json +1 -1
  166. package/templates/example-remesh/evidence/interview/turn.json +108 -0
  167. package/templates/example-remesh/evidence/parts-review.json +1 -1
  168. package/templates/example-remesh/evidence/review-reads/{afe2522be4087f7f2fa7e97746d5f8574b0aedb474245ce2dbce0455e662f041.json → 99ade3eb19d70bd5f727138b3b4876ce86f1e1c22a59b516639bf85593996c32.json} +2 -2
  169. package/templates/example-remesh/evidence/scene/s1.json +2 -2
  170. package/templates/example-remesh/evidence/v1/registration/at-source.json +2 -2
  171. package/templates/example-remesh/evidence/v1/registration/rigc-run-1.json +2 -2
  172. package/templates/example-remesh/evidence/v2/registration/at-source.json +2 -2
  173. package/templates/example-remesh/evidence/v2/registration/rigc-run-1.json +2 -2
  174. package/templates/example-remesh/evidence/v3/registration/at-source.json +2 -2
  175. package/templates/example-remesh/evidence/v3/registration/rigc-run-1.json +2 -2
  176. package/templates/example-remesh/outputs/v1/out/check/build/run.json +2 -2
  177. package/templates/example-remesh/outputs/v1/out/rig/run.json +2 -2
  178. package/templates/example-remesh/outputs/v2/out/check/build/run.json +2 -2
  179. package/templates/example-remesh/outputs/v2/out/rig/run.json +2 -2
  180. package/templates/example-remesh/outputs/v3/out/check/build/run.json +2 -2
  181. package/templates/example-remesh/outputs/v3/out/rig/run.json +2 -2
  182. package/templates/example-remesh/project.json +279 -230
  183. package/templates/example-reopened/project.json +341 -289
  184. package/templates/example-split/captions.json +1 -1
  185. package/templates/project.json +10 -2
@@ -34,15 +34,19 @@
34
34
  "refusals": [],
35
35
  "warnings": []
36
36
  },
37
- "project_sha256": "4101de9f8f63663d010dd82dceb412c0ee7ee828b8fae0b65c2f62dec998191a",
37
+ "project_sha256": "4b240b4cbb1aedec00d12205c250bd124eabda69a8cc57f55f7797e75077c4a9",
38
38
  "files": [
39
39
  {
40
40
  "path": ".gitignore",
41
41
  "sha256": "58c9530777d5b5503615514bc2545fd25df42143f211572872dfa984c3c64d99"
42
42
  },
43
+ {
44
+ "path": "AGENT-REFERENCE.md",
45
+ "sha256": "00a991581393d9208810104810305cb512fc6afa9181c1b02b37421d97cfff79"
46
+ },
43
47
  {
44
48
  "path": "AGENTS.md",
45
- "sha256": "e28e9ca9441a7dec1b4afcf63188b1ad96d7c4ad2059415a9f63750eca6a367d"
49
+ "sha256": "e37e5793e9233ff8c685076f42e002fbf614e460a56dedb3e56acead59a824f2"
46
50
  },
47
51
  {
48
52
  "path": "CLAUDE.md",
@@ -94,7 +98,7 @@
94
98
  },
95
99
  {
96
100
  "path": "derived/drafts/chain/out/check/build/run.json",
97
- "sha256": "9db089413698547b7b4dd922c87229c59b4e3965c3ed2235b46388a095435b25"
101
+ "sha256": "0495aaab65a68e7967eaf2e8ea5b009d480cfc5798e1dfc03d61576fc740f714"
98
102
  },
99
103
  {
100
104
  "path": "derived/drafts/chain/out/check/build/skeleton.atlas",
@@ -150,7 +154,7 @@
150
154
  },
151
155
  {
152
156
  "path": "derived/drafts/chain/out/run.json",
153
- "sha256": "daffd86f81fa1e59cf0087e11f2e99ab362ae6e29c19df19c14ef4f1abb9a52e"
157
+ "sha256": "de4ef394c4bfadfdb08200308bf07ef40bc5edec46e3722d642326c6eb535ea4"
154
158
  },
155
159
  {
156
160
  "path": "evidence/.gitkeep",
@@ -198,7 +202,7 @@
198
202
  },
199
203
  {
200
204
  "path": "project.json",
201
- "sha256": "4101de9f8f63663d010dd82dceb412c0ee7ee828b8fae0b65c2f62dec998191a"
205
+ "sha256": "4b240b4cbb1aedec00d12205c250bd124eabda69a8cc57f55f7797e75077c4a9"
202
206
  }
203
207
  ]
204
208
  }
@@ -0,0 +1,62 @@
1
+ # Agent reference
2
+
3
+ ## Before you ask, plan or show
4
+
5
+ - **Projection.** Ask and record it per [CHECKS.md § Projection and ground](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#projection-and-ground).
6
+ - **Head turn is a rig decision.** Ask `turn` at rigging-interview: fixed view
7
+ or head turn with depth. Record the chosen route and reason in the `turn`
8
+ plan step text. Default to per-part depth: parts 2.37.0's `docs/DEPTH.md`
9
+ describes it as better by eye. Run `depth-prepare`, the supplied model,
10
+ `depth-apply`, then `rig`. Retain the prepare manifest with
11
+ `rig-version --depth-manifest`; registration binds it, `depth-report.json`
12
+ and rig's `depth_sheets.json` by SHA-256.
13
+ The layer alternative requires sheets already retained in the accepted
14
+ assembled parts, bound alongside the existing `config.depth` images:
15
+ `assemble` consumes `config.depth`, so declaring it after acceptance cannot
16
+ add sheets. Do not reassemble accepted parts here. Existing sheets need no
17
+ model manifest.
18
+ - **Camera options.** Post decides fixed framing or camera-box moves. Timed
19
+ head-turn dials, plate parallax and take-wide gaze remain unavailable in direction.
20
+ - **Seamless loop on a rig with physics.** A looping take that starts at
21
+ source 0 begins with springs at rest and ends with them moving, so hair and
22
+ ribbons jump at the seam. Map the take onto a source interval that starts
23
+ after whole periods of the clip; ten were enough on the measured rig. The
24
+ number depends on the rig's damping, so compare the first and last frames
25
+ before choosing it.
26
+ - **Upscale first** a painting smaller than the rig needs (SOURCE.md, step 2 below).
27
+ - **The crux is a bar.** Before rigging, name every risk band, count background
28
+ or doubled pixels over every frame and both physics/breath extremes, and
29
+ report the maximum and its frame. Cover every band crossing another bone.
30
+ - **Appearance needs a person**, not a step bar: [CHECKS.md § Appearance bar wording](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#appearance-bar-wording).
31
+ - **Nothing unnamed.** Add no unnamed motion, chain or physics. Read references
32
+ for what they show; ask about anything more.
33
+ - **Re-run first, cut last**, never a polygon in code or config: the ladder in
34
+ SOURCE.md, step 2 below.
35
+ - **A full-screen scene is a CG build.** For `rig_type` `fullscreen.*`, each
36
+ rig version declares the gates in [CHECKS.md § CG gates](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#cg-gates). Refusals are the art's to fix.
37
+ - **The bust is meshed** unless the `meshes` guide excludes it with a reason
38
+ ([CHECKS.md § The bust at meshes](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#the-bust-at-meshes)).
39
+ - **Overlaps.** A piece over a part with its own animation (glasses over
40
+ eyelids) holds none of that part's pixels, or the animation shows its copy.
41
+ - **Pairs.** Measure left/right symmetry against the painting before calling a
42
+ pair uneven ([CRAFT.md G8](https://github.com/rig-c/create/blob/main/docs/CRAFT.md#for-the-gates-not-the-interview)).
43
+ - **Look before the user does**, at native resolution and every crux boundary:
44
+ a whole-figure |composite − painting| map, each component by box/part and
45
+ status (in the painting / fixed / left, why). Use the true part stack; crop on
46
+ white and mid-grey to show light fringes. Check beyond reviewer-chosen boxes.
47
+
48
+ ## What to read, and why
49
+
50
+ 1. **Before the interview**: INTERVIEW.md; CRAFT.md (waypoint defaults);
51
+ parts AUTHORING §3, *`config.json`, field by field*;
52
+ [CHECKS.md](https://github.com/rig-c/create/blob/main/docs/CHECKS.md) before a sign-off.
53
+ 2. **Before `seethrough` and `assemble`**: SOURCE.md, split/cut order:
54
+ [bad-split reruns](https://github.com/rig-c/create/blob/main/docs/SOURCE.md#re-run-first),
55
+ [allowed cuts](https://github.com/rig-c/create/blob/main/docs/SOURCE.md#where-a-cut-is-allowed);
56
+ parts AUTHORING *See-through head-run source reading*, *Source before
57
+ scissors* and *Limbs: cut at their joints*.
58
+ 3. **Before rigging**: [CRAFT.md § For the gates](https://github.com/rig-c/create/blob/main/docs/CRAFT.md#for-the-gates-not-the-interview)
59
+ (G1–G9); core RIGGING and MOTION; parts AUTHORING §7, the bars `check` enforces.
60
+ 4. **Before showing the user**: [LESSONS.md § The self-check](https://github.com/rig-c/create/blob/main/docs/LESSONS.md#the-self-check),
61
+ the [per-frame seam count](https://github.com/rig-c/create/blob/main/docs/LESSONS.md#count-the-seam-bar-over-every-frame),
62
+ [what to show first](https://github.com/rig-c/create/blob/main/docs/LESSONS.md#what-to-show-the-user-first).
@@ -8,7 +8,7 @@ One painting; one rig and its takes.
8
8
  2. Run `rig-create next` to derive the next moves and whose they are.
9
9
  3. Resume per [Resume](https://github.com/rig-c/create/blob/main/docs/PROJECT.md#how-an-agent-resumes-a-project).
10
10
 
11
- Until create#493, agents may type `reopen` only from Review host raw export `act@4`: save nonempty `value.words` byte-for-byte to a verbatim file; `--source` names `actId`. Empty/missing words: STOP. Never supply words. `job fetch-act` rejects act@4.
11
+ After an accepted post is bounced, reopen direction-review through Review: `job open --plan`, then `job acts --json`, ingest `reopen direction-review --from-review <actId>`, and `job close`. The exported act supplies the reviewer, date and verbatim words.
12
12
 
13
13
  Stale pins: `rig-create packages upgrade --by <operator>`.
14
14
 
@@ -60,33 +60,11 @@ Preserve history/dates; adopt choices explicitly.
60
60
 
61
61
  - **Prior words.** In adopted projects, show them verbatim as a tailored option
62
62
  with source/date; require a pick. Legacy derivation: [INTERVIEW.md § Derived answers](https://github.com/rig-c/create/blob/main/docs/INTERVIEW.md#derived-answers).
63
- - **Projection.** Ask and record it per [CHECKS.md § Projection and ground](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#projection-and-ground).
64
- - **Camera options.** Offer fixed view or camera-box moves only. Head turn,
65
- depth and plate parallax are unavailable: direction has no depth/turn fields.
66
- - **Upscale first** a painting smaller than the rig needs (SOURCE.md, step 2 below).
67
- - **The crux is a bar.** Before rigging, name every risk band, count background
68
- or doubled pixels over every frame and both physics/breath extremes, and
69
- report the maximum and its frame. Cover every band crossing another bone.
70
63
  - **Bars before sign-off.** Each reading names its command, checked against
71
64
  installed `--help`. A reading with no command is a STOP before sign-off.
72
65
  Loop bars: INTERVIEW.md, "Bars have reading commands".
73
- - **Appearance needs a person**, not a step bar: [CHECKS.md § Appearance bar wording](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#appearance-bar-wording).
74
- - **Nothing unnamed.** Add no unnamed motion, chain or physics. Read references
75
- for what they show; ask about anything more.
76
- - **Re-run first, cut last**, never a polygon in code or config: the ladder in
77
- SOURCE.md, step 2 below.
78
- - **A full-screen scene is a CG build.** For `rig_type` `fullscreen.*`, each
79
- rig version declares the gates in [CHECKS.md § CG gates](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#cg-gates). Refusals are the art's to fix.
80
- - **The bust is meshed** unless the `meshes` guide excludes it with a reason
81
- ([CHECKS.md § The bust at meshes](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#the-bust-at-meshes)).
82
- - **Overlaps.** A piece over a part with its own animation (glasses over
83
- eyelids) holds none of that part's pixels, or the animation shows its copy.
84
- - **Pairs.** Measure left/right symmetry against the painting before calling a
85
- pair uneven ([CRAFT.md G8](https://github.com/rig-c/create/blob/main/docs/CRAFT.md#for-the-gates-not-the-interview)).
86
- - **Look before the user does**, at native resolution and every crux boundary:
87
- a whole-figure |composite − painting| map, each component by box/part and
88
- status (in the painting / fixed / left, why). Use the true part stack; crop on
89
- white and mid-grey to show light fringes. Check beyond reviewer-chosen boxes.
66
+
67
+ Stage reference: [Before you ask, plan or show](AGENT-REFERENCE.md).
90
68
 
91
69
  ## Where things go
92
70
 
@@ -114,7 +92,7 @@ Run refusal `(see … guide …)` commands first.
114
92
  - [@rig-c/parts README.md](node_modules/@rig-c/parts/README.md): painting-to-rig pipeline and command order.
115
93
  - [@rig-c/parts docs/AUTHORING.md](node_modules/@rig-c/parts/docs/AUTHORING.md): config fields, interview waypoints and refusal remedies.
116
94
  - [@rig-c/parts docs/PAINTING.md](node_modules/@rig-c/parts/docs/PAINTING.md): what makes a painting riggable, and the check to run on it before See-through.
117
- - [@rig-c/parts docs/DEPTH.md](node_modules/@rig-c/parts/docs/DEPTH.md): depth reference; unavailable in current direction.
95
+ - [@rig-c/parts docs/DEPTH.md](node_modules/@rig-c/parts/docs/DEPTH.md): depth-driven head turn before rigging; timed direction is separate.
118
96
  - [@rig-c/parts docs/STABILITY.md](node_modules/@rig-c/parts/docs/STABILITY.md): stable commands, fields and outputs.
119
97
  - [@rig-c/parts docs/MIGRATION.md](node_modules/@rig-c/parts/docs/MIGRATION.md): only when the pinned version is bumped.
120
98
  - [@rig-c/core README.md](node_modules/@rig-c/core/README.md): rigc scope, commands and documentation.
@@ -5,8 +5,8 @@
5
5
  "version": "3.7.0"
6
6
  },
7
7
  "command": "build",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "inputs": [
11
11
  {
12
12
  "role": "rig",
@@ -5,8 +5,8 @@
5
5
  "version": "2.37.0"
6
6
  },
7
7
  "command": "rig",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "config": {
11
11
  "path": "../config.json",
12
12
  "sha256": "740f7d38e7f4242cea692602f501a69fec4ed8c11adb048607054d795c12c4e3"
@@ -83,6 +83,7 @@
83
83
  ],
84
84
  "interview": {
85
85
  "question_set": "rig-create/interview@2 (waypoints read from @rig-c/parts 2.37.0)",
86
+ "turn_question": "rig-create/turn-question@1",
86
87
  "held": false,
87
88
  "date": null,
88
89
  "interviewer": null,
@@ -459,6 +460,25 @@
459
460
  "guide": null,
460
461
  "history": []
461
462
  },
463
+ {
464
+ "id": "turn",
465
+ "config": [
466
+ "turn",
467
+ "depth"
468
+ ],
469
+ "prompts": [
470
+ {
471
+ "id": "view",
472
+ "text": "Should this rig keep the painted view, or turn its head with depth?",
473
+ "source": "rig-create",
474
+ "required_for": [
475
+ "all"
476
+ ]
477
+ }
478
+ ],
479
+ "guide": null,
480
+ "history": []
481
+ },
462
482
  {
463
483
  "id": "motion",
464
484
  "config": [
@@ -495,11 +515,8 @@
495
515
  "items": [
496
516
  {
497
517
  "id": "camera_depth",
498
- "config": [
499
- "turn",
500
- "depth"
501
- ],
502
- "text": "Does the view move (a 2.5D head-turn with parallax, a push-in) or is it fixed?",
518
+ "config": [],
519
+ "text": "Is the view fixed, or does it move along a camera-box path such as a push-in?",
503
520
  "source": "rig-create",
504
521
  "guide": null,
505
522
  "history": []
@@ -1092,7 +1109,7 @@
1092
1109
  "files": [
1093
1110
  {
1094
1111
  "path": "derived/drafts/chain/out/check/build/run.json",
1095
- "sha256": "9db089413698547b7b4dd922c87229c59b4e3965c3ed2235b46388a095435b25"
1112
+ "sha256": "0495aaab65a68e7967eaf2e8ea5b009d480cfc5798e1dfc03d61576fc740f714"
1096
1113
  },
1097
1114
  {
1098
1115
  "path": "derived/drafts/chain/out/check/build/skeleton.atlas",
@@ -1148,7 +1165,7 @@
1148
1165
  },
1149
1166
  {
1150
1167
  "path": "derived/drafts/chain/out/run.json",
1151
- "sha256": "daffd86f81fa1e59cf0087e11f2e99ab362ae6e29c19df19c14ef4f1abb9a52e"
1168
+ "sha256": "de4ef394c4bfadfdb08200308bf07ef40bc5edec46e3722d642326c6eb535ea4"
1152
1169
  }
1153
1170
  ],
1154
1171
  "config_inputs": [
@@ -13,6 +13,9 @@
13
13
  "agent draft evidence/interview/constraints.json",
14
14
  "rig-create interview-options constraints --file evidence/interview/constraints.json",
15
15
  "rig-create interview-answer constraints --set evidence/interview/constraints.json --sha256 <sha256 of evidence/interview/constraints.json> --by user --pick effects=keep --pick strength=keep --pick extent=keep --pick gravity=keep --pick stops=keep",
16
+ "agent draft evidence/interview/turn.json",
17
+ "rig-create interview-options turn --file evidence/interview/turn.json",
18
+ "rig-create interview-answer turn --set evidence/interview/turn.json --sha256 <sha256 of evidence/interview/turn.json> --by user --pick view=fixed",
16
19
  "agent draft evidence/interview/motion.json",
17
20
  "rig-create interview-options motion --file evidence/interview/motion.json",
18
21
  "rig-create interview-answer motion --set evidence/interview/motion.json --sha256 <sha256 of evidence/interview/motion.json> --by user --pick tracks=keep --pick extent=keep --pick speed=keep --pick loop=keep --pick blink=keep",
@@ -29,12 +32,16 @@
29
32
  "agent",
30
33
  "agent",
31
34
  "human",
35
+ "agent",
36
+ "agent",
37
+ "human",
32
38
  "human"
33
39
  ],
34
40
  "awaits": [
35
41
  "interview.waypoints[bones].guide",
36
42
  "interview.waypoints[meshes].guide",
37
43
  "interview.waypoints[constraints].guide",
44
+ "interview.waypoints[turn].guide",
38
45
  "interview.waypoints[motion].guide",
39
46
  "signoffs[stage=rigging-interview]"
40
47
  ]
@@ -56,6 +63,11 @@
56
63
  "path": "interview.waypoints[constraints].guide",
57
64
  "message": "interview.waypoints[constraints].guide: not answered yet; the interview is incomplete"
58
65
  },
66
+ {
67
+ "code": "INTERVIEW_INCOMPLETE",
68
+ "path": "interview.waypoints[turn].guide",
69
+ "message": "interview.waypoints[turn].guide: not answered yet; the interview is incomplete"
70
+ },
59
71
  {
60
72
  "code": "INTERVIEW_INCOMPLETE",
61
73
  "path": "interview.waypoints[motion].guide",
@@ -64,15 +76,19 @@
64
76
  ],
65
77
  "warnings": []
66
78
  },
67
- "project_sha256": "5f596a00ecb64a0641c4d43bcadf7d7b522c2c77372278d486e61cc7d2b3e574",
79
+ "project_sha256": "1538d638c241d9d066eb35186fa137612d8b930342ed0681fca175c308e18e18",
68
80
  "files": [
69
81
  {
70
82
  "path": ".gitignore",
71
83
  "sha256": "58c9530777d5b5503615514bc2545fd25df42143f211572872dfa984c3c64d99"
72
84
  },
85
+ {
86
+ "path": "AGENT-REFERENCE.md",
87
+ "sha256": "00a991581393d9208810104810305cb512fc6afa9181c1b02b37421d97cfff79"
88
+ },
73
89
  {
74
90
  "path": "AGENTS.md",
75
- "sha256": "e28e9ca9441a7dec1b4afcf63188b1ad96d7c4ad2059415a9f63750eca6a367d"
91
+ "sha256": "e37e5793e9233ff8c685076f42e002fbf614e460a56dedb3e56acead59a824f2"
76
92
  },
77
93
  {
78
94
  "path": "CLAUDE.md",
@@ -124,7 +140,7 @@
124
140
  },
125
141
  {
126
142
  "path": "derived/drafts/chain/out/check/build/run.json",
127
- "sha256": "9db089413698547b7b4dd922c87229c59b4e3965c3ed2235b46388a095435b25"
143
+ "sha256": "0495aaab65a68e7967eaf2e8ea5b009d480cfc5798e1dfc03d61576fc740f714"
128
144
  },
129
145
  {
130
146
  "path": "derived/drafts/chain/out/check/build/skeleton.atlas",
@@ -180,7 +196,7 @@
180
196
  },
181
197
  {
182
198
  "path": "derived/drafts/chain/out/run.json",
183
- "sha256": "daffd86f81fa1e59cf0087e11f2e99ab362ae6e29c19df19c14ef4f1abb9a52e"
199
+ "sha256": "de4ef394c4bfadfdb08200308bf07ef40bc5edec46e3722d642326c6eb535ea4"
184
200
  },
185
201
  {
186
202
  "path": "evidence/.gitkeep",
@@ -248,7 +264,7 @@
248
264
  },
249
265
  {
250
266
  "path": "project.json",
251
- "sha256": "5f596a00ecb64a0641c4d43bcadf7d7b522c2c77372278d486e61cc7d2b3e574"
267
+ "sha256": "1538d638c241d9d066eb35186fa137612d8b930342ed0681fca175c308e18e18"
252
268
  }
253
269
  ]
254
270
  }
@@ -0,0 +1,62 @@
1
+ # Agent reference
2
+
3
+ ## Before you ask, plan or show
4
+
5
+ - **Projection.** Ask and record it per [CHECKS.md § Projection and ground](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#projection-and-ground).
6
+ - **Head turn is a rig decision.** Ask `turn` at rigging-interview: fixed view
7
+ or head turn with depth. Record the chosen route and reason in the `turn`
8
+ plan step text. Default to per-part depth: parts 2.37.0's `docs/DEPTH.md`
9
+ describes it as better by eye. Run `depth-prepare`, the supplied model,
10
+ `depth-apply`, then `rig`. Retain the prepare manifest with
11
+ `rig-version --depth-manifest`; registration binds it, `depth-report.json`
12
+ and rig's `depth_sheets.json` by SHA-256.
13
+ The layer alternative requires sheets already retained in the accepted
14
+ assembled parts, bound alongside the existing `config.depth` images:
15
+ `assemble` consumes `config.depth`, so declaring it after acceptance cannot
16
+ add sheets. Do not reassemble accepted parts here. Existing sheets need no
17
+ model manifest.
18
+ - **Camera options.** Post decides fixed framing or camera-box moves. Timed
19
+ head-turn dials, plate parallax and take-wide gaze remain unavailable in direction.
20
+ - **Seamless loop on a rig with physics.** A looping take that starts at
21
+ source 0 begins with springs at rest and ends with them moving, so hair and
22
+ ribbons jump at the seam. Map the take onto a source interval that starts
23
+ after whole periods of the clip; ten were enough on the measured rig. The
24
+ number depends on the rig's damping, so compare the first and last frames
25
+ before choosing it.
26
+ - **Upscale first** a painting smaller than the rig needs (SOURCE.md, step 2 below).
27
+ - **The crux is a bar.** Before rigging, name every risk band, count background
28
+ or doubled pixels over every frame and both physics/breath extremes, and
29
+ report the maximum and its frame. Cover every band crossing another bone.
30
+ - **Appearance needs a person**, not a step bar: [CHECKS.md § Appearance bar wording](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#appearance-bar-wording).
31
+ - **Nothing unnamed.** Add no unnamed motion, chain or physics. Read references
32
+ for what they show; ask about anything more.
33
+ - **Re-run first, cut last**, never a polygon in code or config: the ladder in
34
+ SOURCE.md, step 2 below.
35
+ - **A full-screen scene is a CG build.** For `rig_type` `fullscreen.*`, each
36
+ rig version declares the gates in [CHECKS.md § CG gates](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#cg-gates). Refusals are the art's to fix.
37
+ - **The bust is meshed** unless the `meshes` guide excludes it with a reason
38
+ ([CHECKS.md § The bust at meshes](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#the-bust-at-meshes)).
39
+ - **Overlaps.** A piece over a part with its own animation (glasses over
40
+ eyelids) holds none of that part's pixels, or the animation shows its copy.
41
+ - **Pairs.** Measure left/right symmetry against the painting before calling a
42
+ pair uneven ([CRAFT.md G8](https://github.com/rig-c/create/blob/main/docs/CRAFT.md#for-the-gates-not-the-interview)).
43
+ - **Look before the user does**, at native resolution and every crux boundary:
44
+ a whole-figure |composite − painting| map, each component by box/part and
45
+ status (in the painting / fixed / left, why). Use the true part stack; crop on
46
+ white and mid-grey to show light fringes. Check beyond reviewer-chosen boxes.
47
+
48
+ ## What to read, and why
49
+
50
+ 1. **Before the interview**: INTERVIEW.md; CRAFT.md (waypoint defaults);
51
+ parts AUTHORING §3, *`config.json`, field by field*;
52
+ [CHECKS.md](https://github.com/rig-c/create/blob/main/docs/CHECKS.md) before a sign-off.
53
+ 2. **Before `seethrough` and `assemble`**: SOURCE.md, split/cut order:
54
+ [bad-split reruns](https://github.com/rig-c/create/blob/main/docs/SOURCE.md#re-run-first),
55
+ [allowed cuts](https://github.com/rig-c/create/blob/main/docs/SOURCE.md#where-a-cut-is-allowed);
56
+ parts AUTHORING *See-through head-run source reading*, *Source before
57
+ scissors* and *Limbs: cut at their joints*.
58
+ 3. **Before rigging**: [CRAFT.md § For the gates](https://github.com/rig-c/create/blob/main/docs/CRAFT.md#for-the-gates-not-the-interview)
59
+ (G1–G9); core RIGGING and MOTION; parts AUTHORING §7, the bars `check` enforces.
60
+ 4. **Before showing the user**: [LESSONS.md § The self-check](https://github.com/rig-c/create/blob/main/docs/LESSONS.md#the-self-check),
61
+ the [per-frame seam count](https://github.com/rig-c/create/blob/main/docs/LESSONS.md#count-the-seam-bar-over-every-frame),
62
+ [what to show first](https://github.com/rig-c/create/blob/main/docs/LESSONS.md#what-to-show-the-user-first).
@@ -8,7 +8,7 @@ One painting; one rig and its takes.
8
8
  2. Run `rig-create next` to derive the next moves and whose they are.
9
9
  3. Resume per [Resume](https://github.com/rig-c/create/blob/main/docs/PROJECT.md#how-an-agent-resumes-a-project).
10
10
 
11
- Until create#493, agents may type `reopen` only from Review host raw export `act@4`: save nonempty `value.words` byte-for-byte to a verbatim file; `--source` names `actId`. Empty/missing words: STOP. Never supply words. `job fetch-act` rejects act@4.
11
+ After an accepted post is bounced, reopen direction-review through Review: `job open --plan`, then `job acts --json`, ingest `reopen direction-review --from-review <actId>`, and `job close`. The exported act supplies the reviewer, date and verbatim words.
12
12
 
13
13
  Stale pins: `rig-create packages upgrade --by <operator>`.
14
14
 
@@ -60,33 +60,11 @@ Preserve history/dates; adopt choices explicitly.
60
60
 
61
61
  - **Prior words.** In adopted projects, show them verbatim as a tailored option
62
62
  with source/date; require a pick. Legacy derivation: [INTERVIEW.md § Derived answers](https://github.com/rig-c/create/blob/main/docs/INTERVIEW.md#derived-answers).
63
- - **Projection.** Ask and record it per [CHECKS.md § Projection and ground](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#projection-and-ground).
64
- - **Camera options.** Offer fixed view or camera-box moves only. Head turn,
65
- depth and plate parallax are unavailable: direction has no depth/turn fields.
66
- - **Upscale first** a painting smaller than the rig needs (SOURCE.md, step 2 below).
67
- - **The crux is a bar.** Before rigging, name every risk band, count background
68
- or doubled pixels over every frame and both physics/breath extremes, and
69
- report the maximum and its frame. Cover every band crossing another bone.
70
63
  - **Bars before sign-off.** Each reading names its command, checked against
71
64
  installed `--help`. A reading with no command is a STOP before sign-off.
72
65
  Loop bars: INTERVIEW.md, "Bars have reading commands".
73
- - **Appearance needs a person**, not a step bar: [CHECKS.md § Appearance bar wording](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#appearance-bar-wording).
74
- - **Nothing unnamed.** Add no unnamed motion, chain or physics. Read references
75
- for what they show; ask about anything more.
76
- - **Re-run first, cut last**, never a polygon in code or config: the ladder in
77
- SOURCE.md, step 2 below.
78
- - **A full-screen scene is a CG build.** For `rig_type` `fullscreen.*`, each
79
- rig version declares the gates in [CHECKS.md § CG gates](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#cg-gates). Refusals are the art's to fix.
80
- - **The bust is meshed** unless the `meshes` guide excludes it with a reason
81
- ([CHECKS.md § The bust at meshes](https://github.com/rig-c/create/blob/main/docs/CHECKS.md#the-bust-at-meshes)).
82
- - **Overlaps.** A piece over a part with its own animation (glasses over
83
- eyelids) holds none of that part's pixels, or the animation shows its copy.
84
- - **Pairs.** Measure left/right symmetry against the painting before calling a
85
- pair uneven ([CRAFT.md G8](https://github.com/rig-c/create/blob/main/docs/CRAFT.md#for-the-gates-not-the-interview)).
86
- - **Look before the user does**, at native resolution and every crux boundary:
87
- a whole-figure |composite − painting| map, each component by box/part and
88
- status (in the painting / fixed / left, why). Use the true part stack; crop on
89
- white and mid-grey to show light fringes. Check beyond reviewer-chosen boxes.
66
+
67
+ Stage reference: [Before you ask, plan or show](AGENT-REFERENCE.md).
90
68
 
91
69
  ## Where things go
92
70
 
@@ -114,7 +92,7 @@ Run refusal `(see … guide …)` commands first.
114
92
  - [@rig-c/parts README.md](node_modules/@rig-c/parts/README.md): painting-to-rig pipeline and command order.
115
93
  - [@rig-c/parts docs/AUTHORING.md](node_modules/@rig-c/parts/docs/AUTHORING.md): config fields, interview waypoints and refusal remedies.
116
94
  - [@rig-c/parts docs/PAINTING.md](node_modules/@rig-c/parts/docs/PAINTING.md): what makes a painting riggable, and the check to run on it before See-through.
117
- - [@rig-c/parts docs/DEPTH.md](node_modules/@rig-c/parts/docs/DEPTH.md): depth reference; unavailable in current direction.
95
+ - [@rig-c/parts docs/DEPTH.md](node_modules/@rig-c/parts/docs/DEPTH.md): depth-driven head turn before rigging; timed direction is separate.
118
96
  - [@rig-c/parts docs/STABILITY.md](node_modules/@rig-c/parts/docs/STABILITY.md): stable commands, fields and outputs.
119
97
  - [@rig-c/parts docs/MIGRATION.md](node_modules/@rig-c/parts/docs/MIGRATION.md): only when the pinned version is bumped.
120
98
  - [@rig-c/core README.md](node_modules/@rig-c/core/README.md): rigc scope, commands and documentation.
@@ -5,8 +5,8 @@
5
5
  "version": "3.7.0"
6
6
  },
7
7
  "command": "build",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "inputs": [
11
11
  {
12
12
  "role": "rig",
@@ -5,8 +5,8 @@
5
5
  "version": "2.37.0"
6
6
  },
7
7
  "command": "rig",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "config": {
11
11
  "path": "../config.json",
12
12
  "sha256": "740f7d38e7f4242cea692602f501a69fec4ed8c11adb048607054d795c12c4e3"
@@ -5,8 +5,8 @@
5
5
  "version": "3.7.0"
6
6
  },
7
7
  "command": "build",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "inputs": [
11
11
  {
12
12
  "role": "rig",
@@ -5,8 +5,8 @@
5
5
  "version": "2.37.0"
6
6
  },
7
7
  "command": "rig",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "config": {
11
11
  "path": "../config.json",
12
12
  "sha256": "740f7d38e7f4242cea692602f501a69fec4ed8c11adb048607054d795c12c4e3"
@@ -4,7 +4,7 @@
4
4
  "question": "motion",
5
5
  "stage": "rigging-interview",
6
6
  "drafted_by": "agent",
7
- "drafted_at": "2026-11-06T01:00:48.000Z",
7
+ "drafted_at": "2026-11-06T01:00:51.000Z",
8
8
  "context": {
9
9
  "kind": "parts",
10
10
  "accepted_parts": {
@@ -0,0 +1,108 @@
1
+ {
2
+ "schema": "rig-create/interview-options@1",
3
+ "id": "chain-turn",
4
+ "question": "turn",
5
+ "stage": "rigging-interview",
6
+ "drafted_by": "agent",
7
+ "drafted_at": "2026-11-06T01:00:48.000Z",
8
+ "context": {
9
+ "kind": "parts",
10
+ "accepted_parts": {
11
+ "signoff_at": "2026-11-06T01:00:37.000Z",
12
+ "evidence": {
13
+ "kind": "parts-verdict",
14
+ "path": "evidence/review-reads/a12dea02d32508acc99386f894af76a14f1c85f45f804db2aa6b4dea5297973f.json",
15
+ "sha256": "a12dea02d32508acc99386f894af76a14f1c85f45f804db2aa6b4dea5297973f",
16
+ "spec": "rig-create/parts-verdict-cli@1"
17
+ }
18
+ },
19
+ "structure": {
20
+ "path": "evidence/structure.json",
21
+ "sha256": "41b532a263a8f40997a9c5d3c155e2fa943b26c2b3e61ed03ddcf29ee0d8011d"
22
+ },
23
+ "draft_id": "chain",
24
+ "parts": {
25
+ "path": "derived/drafts/chain/input",
26
+ "files": [
27
+ {
28
+ "path": "derived/drafts/chain/input/painting_in_rig.png",
29
+ "sha256": "02e6ea41dfec89a7eced0f66b98e0fea048846c6f4174fa1cc7631fe360e614f"
30
+ },
31
+ {
32
+ "path": "derived/drafts/chain/input/parts/background.png",
33
+ "sha256": "c180182b6666fb4d90d4f91e210bda103a4081f1ad7c45006db392fa6c4eaf36"
34
+ },
35
+ {
36
+ "path": "derived/drafts/chain/input/parts/eye_l.png",
37
+ "sha256": "c080dceac3b4d8fbc824ebb0ebffe61047f10af4e2cdd8d51b32bf779691617e"
38
+ },
39
+ {
40
+ "path": "derived/drafts/chain/input/parts/eye_r.png",
41
+ "sha256": "c080dceac3b4d8fbc824ebb0ebffe61047f10af4e2cdd8d51b32bf779691617e"
42
+ },
43
+ {
44
+ "path": "derived/drafts/chain/input/parts/face.png",
45
+ "sha256": "9626a5008eb90b22ab7623cb79048ed521c6aa651254287bbc9df8606b9f0bf7"
46
+ },
47
+ {
48
+ "path": "derived/drafts/chain/input/parts/lantern.png",
49
+ "sha256": "79ff42136a509e98032352ef9f8c0857a5d7f16667eb629bc048b9b8ef24d96a"
50
+ },
51
+ {
52
+ "path": "derived/drafts/chain/input/parts/torso.png",
53
+ "sha256": "adf6cd5d92568c5f51028df2874b69f4df5ff1d0e3a94484784c867e543cd912"
54
+ },
55
+ {
56
+ "path": "derived/drafts/chain/input/parts.json",
57
+ "sha256": "fb0b74d03b7e71d1c2bb2a6fe0ca1ef7415239863ea8eb95fc271b6eee38a0b7"
58
+ }
59
+ ]
60
+ }
61
+ },
62
+ "assembly": {
63
+ "rule": "merge"
64
+ },
65
+ "asks": [
66
+ {
67
+ "id": "view",
68
+ "prompt": "Should this rig keep the painted view, or turn its head with depth?",
69
+ "options": [
70
+ {
71
+ "id": "fixed",
72
+ "kind": "value",
73
+ "label": "Fixed view",
74
+ "effect": "Keep the painted view.",
75
+ "fragment": {
76
+ "mode": "fixed"
77
+ },
78
+ "recommended": true,
79
+ "reason": "This synthetic project keeps its approved painted view."
80
+ },
81
+ {
82
+ "id": "turn",
83
+ "kind": "value",
84
+ "label": "Head turn",
85
+ "effect": "The head turns with depth, like the head-turn demo.",
86
+ "fragment": {
87
+ "mode": "depth"
88
+ },
89
+ "recommended": false
90
+ },
91
+ {
92
+ "id": "other",
93
+ "kind": "other",
94
+ "label": "Other",
95
+ "effect": "Describe the view you want.",
96
+ "recommended": false
97
+ },
98
+ {
99
+ "id": "auto",
100
+ "kind": "auto",
101
+ "label": "Let the agent decide",
102
+ "effect": "The agent records its decision before approval.",
103
+ "recommended": false
104
+ }
105
+ ]
106
+ }
107
+ ]
108
+ }
@@ -5,8 +5,8 @@
5
5
  "version": "3.7.0"
6
6
  },
7
7
  "command": "build",
8
- "started_at": "2026-11-13T00:00:00.000Z",
9
- "finished_at": "2026-11-13T00:00:00.000Z",
8
+ "started_at": "2026-11-14T00:00:00.000Z",
9
+ "finished_at": "2026-11-14T00:00:00.000Z",
10
10
  "inputs": [
11
11
  {
12
12
  "role": "rig",