akari-video 0.1.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 (492) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/bin/akari.mjs +14 -0
  4. package/package.json +42 -0
  5. package/src/cli.mjs +140 -0
  6. package/src/messages.mjs +100 -0
  7. package/src/path-lookup.mjs +47 -0
  8. package/src/project-state.mjs +25 -0
  9. package/src/repo-assets.mjs +59 -0
  10. package/src/task-labels.mjs +30 -0
  11. package/src/update-check.mjs +189 -0
  12. package/vendor/packages/project-scaffold/package.json +11 -0
  13. package/vendor/packages/project-scaffold/src/index.mjs +523 -0
  14. package/vendor/packages/project-scaffold/test/create-project.test.mjs +81 -0
  15. package/vendor/packages/project-scaffold/test/skill-adapter-link.test.mjs +204 -0
  16. package/vendor/packages/schemas/analysis.schema.json +475 -0
  17. package/vendor/packages/schemas/asset-meta.schema.json +225 -0
  18. package/vendor/packages/schemas/avatar-rendition.schema.json +65 -0
  19. package/vendor/packages/schemas/avatar.schema.json +178 -0
  20. package/vendor/packages/schemas/bin/validate-asset.mjs +597 -0
  21. package/vendor/packages/schemas/bin/validate-avatar.mjs +486 -0
  22. package/vendor/packages/schemas/bin/validate-captions.mjs +316 -0
  23. package/vendor/packages/schemas/bin/validate-connections.mjs +295 -0
  24. package/vendor/packages/schemas/bin/validate-edit.mjs +766 -0
  25. package/vendor/packages/schemas/bin/validate-intake.mjs +185 -0
  26. package/vendor/packages/schemas/bin/validate-interpretation.mjs +515 -0
  27. package/vendor/packages/schemas/bin/validate-plan-comments.mjs +170 -0
  28. package/vendor/packages/schemas/bin/validate-plan.mjs +365 -0
  29. package/vendor/packages/schemas/bin/validate-recipe.mjs +267 -0
  30. package/vendor/packages/schemas/bin/validate-research-plan.mjs +510 -0
  31. package/vendor/packages/schemas/bin/validate-review.mjs +427 -0
  32. package/vendor/packages/schemas/captions.schema.json +141 -0
  33. package/vendor/packages/schemas/connections.schema.json +153 -0
  34. package/vendor/packages/schemas/edit.schema.json +437 -0
  35. package/vendor/packages/schemas/examples/analysis-person-matte-valid/analysis.json +18 -0
  36. package/vendor/packages/schemas/examples/captions-text-style-background-mode-invalid/captions.json +18 -0
  37. package/vendor/packages/schemas/examples/captions-text-style-color-non-hex-invalid/captions.json +14 -0
  38. package/vendor/packages/schemas/examples/captions-text-style-default-only-valid/captions.json +27 -0
  39. package/vendor/packages/schemas/examples/captions-text-style-omitted-valid/captions.json +11 -0
  40. package/vendor/packages/schemas/examples/captions-text-style-opacity-out-of-range-invalid/captions.json +8 -0
  41. package/vendor/packages/schemas/examples/captions-text-style-record-override-valid/captions.json +27 -0
  42. package/vendor/packages/schemas/examples/captions-text-style-size-non-positive-invalid/captions.json +14 -0
  43. package/vendor/packages/schemas/examples/captions-text-style-zone-invalid/captions.json +16 -0
  44. package/vendor/packages/schemas/examples/connections-v0-invalid-auth/connections.json +32 -0
  45. package/vendor/packages/schemas/examples/connections-v0-memory-valid/connections.json +42 -0
  46. package/vendor/packages/schemas/examples/edit-beats-duplicate-id/edit.json +11 -0
  47. package/vendor/packages/schemas/examples/edit-beats-invalid-id/edit.json +10 -0
  48. package/vendor/packages/schemas/examples/edit-beats-missing-kind/edit.json +10 -0
  49. package/vendor/packages/schemas/examples/edit-beats-strength-out-of-range/edit.json +11 -0
  50. package/vendor/packages/schemas/examples/edit-beats-v0-src-present/edit.json +10 -0
  51. package/vendor/packages/schemas/examples/edit-beats-v0-valid/edit.json +29 -0
  52. package/vendor/packages/schemas/examples/edit-beats-v1-src-missing-reference/edit.json +14 -0
  53. package/vendor/packages/schemas/examples/edit-beats-v1-valid/edit.json +37 -0
  54. package/vendor/packages/schemas/examples/edit-bgm-ducking-invalid/edit.json +10 -0
  55. package/vendor/packages/schemas/examples/edit-bgm-fade-invalid/edit.json +10 -0
  56. package/vendor/packages/schemas/examples/edit-bgm-fade-valid/edit.json +10 -0
  57. package/vendor/packages/schemas/examples/edit-bgm-in-invalid/edit.json +10 -0
  58. package/vendor/packages/schemas/examples/edit-bgm-in-valid/edit.json +10 -0
  59. package/vendor/packages/schemas/examples/edit-bgm-missing-path/edit.json +10 -0
  60. package/vendor/packages/schemas/examples/edit-bgm-null-valid/edit.json +11 -0
  61. package/vendor/packages/schemas/examples/edit-bgm-sfx-gain-out-of-range/edit.json +11 -0
  62. package/vendor/packages/schemas/examples/edit-bgm-sfx-valid/edit.json +23 -0
  63. package/vendor/packages/schemas/examples/edit-chroma-key-invalid/edit.json +7 -0
  64. package/vendor/packages/schemas/examples/edit-cuts-at-negative-invalid/edit.json +7 -0
  65. package/vendor/packages/schemas/examples/edit-cuts-at-track-valid/edit.json +20 -0
  66. package/vendor/packages/schemas/examples/edit-cuts-opacity-out-of-range-invalid/edit.json +16 -0
  67. package/vendor/packages/schemas/examples/edit-cuts-track-invalid/edit.json +7 -0
  68. package/vendor/packages/schemas/examples/edit-cuts-transform-full-valid/edit.json +17 -0
  69. package/vendor/packages/schemas/examples/edit-cuts-transform-omitted-valid/edit.json +9 -0
  70. package/vendor/packages/schemas/examples/edit-cuts-transform-partial-valid/edit.json +16 -0
  71. package/vendor/packages/schemas/examples/edit-cuts-transform-rotate-invalid/edit.json +16 -0
  72. package/vendor/packages/schemas/examples/edit-cuts-transform-scale-invalid/edit.json +16 -0
  73. package/vendor/packages/schemas/examples/edit-cuts-transform-unknown-key-invalid/edit.json +16 -0
  74. package/vendor/packages/schemas/examples/edit-direction-intensity-negative/edit.json +8 -0
  75. package/vendor/packages/schemas/examples/edit-direction-intensity-not-integer/edit.json +8 -0
  76. package/vendor/packages/schemas/examples/edit-direction-intensity-out-of-range/edit.json +8 -0
  77. package/vendor/packages/schemas/examples/edit-direction-missing-preset/edit.json +8 -0
  78. package/vendor/packages/schemas/examples/edit-direction-overrides-array/edit.json +8 -0
  79. package/vendor/packages/schemas/examples/edit-direction-preset-only/edit.json +8 -0
  80. package/vendor/packages/schemas/examples/edit-direction-valid/edit.json +8 -0
  81. package/vendor/packages/schemas/examples/edit-emphasis-words-empty-word/edit.json +10 -0
  82. package/vendor/packages/schemas/examples/edit-emphasis-words-invalid-id/edit.json +10 -0
  83. package/vendor/packages/schemas/examples/edit-emphasis-words-missing-emotion/edit.json +10 -0
  84. package/vendor/packages/schemas/examples/edit-emphasis-words-range-invalid/edit.json +11 -0
  85. package/vendor/packages/schemas/examples/edit-emphasis-words-v0-src-present/edit.json +10 -0
  86. package/vendor/packages/schemas/examples/edit-emphasis-words-v0-valid/edit.json +32 -0
  87. package/vendor/packages/schemas/examples/edit-emphasis-words-v1-valid/edit.json +39 -0
  88. package/vendor/packages/schemas/examples/edit-layers-invalid-bad-blend/edit.json +17 -0
  89. package/vendor/packages/schemas/examples/edit-layers-invalid-chroma-key-on-baked/edit.json +17 -0
  90. package/vendor/packages/schemas/examples/edit-layers-invalid-duplicate-id/edit.json +11 -0
  91. package/vendor/packages/schemas/examples/edit-layers-track-invalid/edit.json +8 -0
  92. package/vendor/packages/schemas/examples/edit-layers-valid/edit.json +31 -0
  93. package/vendor/packages/schemas/examples/edit-look-invalid/edit.json +7 -0
  94. package/vendor/packages/schemas/examples/edit-master-invalid/edit.json +8 -0
  95. package/vendor/packages/schemas/examples/edit-narration-gain-out-of-range/edit.json +18 -0
  96. package/vendor/packages/schemas/examples/edit-narration-invalid-id/edit.json +17 -0
  97. package/vendor/packages/schemas/examples/edit-narration-missing-provenance/edit.json +16 -0
  98. package/vendor/packages/schemas/examples/edit-narration-valid/edit.json +36 -0
  99. package/vendor/packages/schemas/examples/edit-narration-voicevox-missing-credit/edit.json +20 -0
  100. package/vendor/packages/schemas/examples/edit-render-basics-valid/edit.json +22 -0
  101. package/vendor/packages/schemas/examples/edit-sfx-in-invalid/edit.json +10 -0
  102. package/vendor/packages/schemas/examples/edit-sfx-in-out-valid/edit.json +10 -0
  103. package/vendor/packages/schemas/examples/edit-sfx-out-invalid/edit.json +10 -0
  104. package/vendor/packages/schemas/examples/edit-sfx-out-type-invalid/edit.json +10 -0
  105. package/vendor/packages/schemas/examples/edit-sfx-t-invalid/edit.json +10 -0
  106. package/vendor/packages/schemas/examples/edit-sfx-track-invalid/edit.json +8 -0
  107. package/vendor/packages/schemas/examples/edit-speed-invalid/edit.json +7 -0
  108. package/vendor/packages/schemas/examples/edit-timeline-declared-valid/edit.json +14 -0
  109. package/vendor/packages/schemas/examples/edit-timeline-duplicate-id-invalid/edit.json +13 -0
  110. package/vendor/packages/schemas/examples/edit-timeline-interleaved-valid/edit.json +22 -0
  111. package/vendor/packages/schemas/examples/edit-timeline-omitted-valid/edit.json +7 -0
  112. package/vendor/packages/schemas/examples/edit-timeline-ref-invalid/edit.json +13 -0
  113. package/vendor/packages/schemas/examples/edit-tracks-section-invalid/edit.json +8 -0
  114. package/vendor/packages/schemas/examples/edit-tracks-section-valid/edit.json +13 -0
  115. package/vendor/packages/schemas/examples/edit-transition-invalid/edit.json +10 -0
  116. package/vendor/packages/schemas/examples/edit-v0-sample/edit.json +27 -0
  117. package/vendor/packages/schemas/examples/edit-v0-sample/overlays/cap-a.html +17 -0
  118. package/vendor/packages/schemas/examples/edit-v0-sample/overlays/cap-b.html +17 -0
  119. package/vendor/packages/schemas/examples/edit-v1-bgm-sfx-valid/edit.json +13 -0
  120. package/vendor/packages/schemas/examples/edit-v1-sample/edit.json +14 -0
  121. package/vendor/packages/schemas/examples/plan-comments-v0-sample/plan-comments.json +19 -0
  122. package/vendor/packages/schemas/examples/plan-v0-sample/plan.json +39 -0
  123. package/vendor/packages/schemas/examples/recipe-v0-sample/product-demo-quick-cuts.json +23 -0
  124. package/vendor/packages/schemas/examples/review-v1-sample/review.json +11 -0
  125. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/AVATAR.md +159 -0
  126. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/avatar.json +22 -0
  127. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/happy.png +0 -0
  128. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/neutral-half.png +0 -0
  129. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/neutral-open.png +0 -0
  130. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/neutral.png +0 -0
  131. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/rendition.json +18 -0
  132. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/happy.png +0 -0
  133. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/neutral-half.png +0 -0
  134. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/neutral-open.png +0 -0
  135. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/neutral.png +0 -0
  136. package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/rendition.json +18 -0
  137. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/AVATAR.md +30 -0
  138. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/avatar.json +22 -0
  139. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/happy.png +0 -0
  140. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/neutral-half.png +0 -0
  141. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/neutral-open.png +0 -0
  142. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/neutral.png +0 -0
  143. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/rendition.json +18 -0
  144. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/happy.png +0 -0
  145. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/neutral-half.png +0 -0
  146. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/neutral-open.png +0 -0
  147. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/neutral.png +0 -0
  148. package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/rendition.json +18 -0
  149. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/AVATAR.md +30 -0
  150. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/avatar.json +22 -0
  151. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/happy.png +0 -0
  152. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/neutral-half.png +0 -0
  153. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/neutral-open.png +0 -0
  154. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/neutral.png +0 -0
  155. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/rendition.json +18 -0
  156. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/happy.png +0 -0
  157. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/neutral-half.png +0 -0
  158. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/neutral-open.png +0 -0
  159. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/neutral.png +0 -0
  160. package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/rendition.json +18 -0
  161. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/AVATAR.md +30 -0
  162. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/avatar.json +22 -0
  163. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/neutral-half.png +0 -0
  164. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/neutral-open.png +0 -0
  165. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/neutral.png +0 -0
  166. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/rendition.json +18 -0
  167. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/happy.png +0 -0
  168. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/neutral-half.png +0 -0
  169. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/neutral-open.png +0 -0
  170. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/neutral.png +0 -0
  171. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/rendition.json +18 -0
  172. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/AVATAR.md +30 -0
  173. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/avatar.json +21 -0
  174. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/happy.png +0 -0
  175. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/neutral-half.png +0 -0
  176. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/neutral-open.png +0 -0
  177. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/neutral.png +0 -0
  178. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/rendition.json +18 -0
  179. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/happy.png +0 -0
  180. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/neutral-half.png +0 -0
  181. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/neutral-open.png +0 -0
  182. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/neutral.png +0 -0
  183. package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/rendition.json +18 -0
  184. package/vendor/packages/schemas/fixtures/avatar/invalid-no-avatar-json/AVATAR.md +30 -0
  185. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/AVATAR.md +30 -0
  186. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/avatar.json +22 -0
  187. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/happy.png +0 -0
  188. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/neutral-half.png +0 -0
  189. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/neutral-open.png +0 -0
  190. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/neutral.png +0 -0
  191. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/rendition.json +18 -0
  192. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/happy.png +0 -0
  193. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/neutral-half.png +0 -0
  194. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/neutral-open.png +0 -0
  195. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/neutral.png +0 -0
  196. package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/rendition.json +18 -0
  197. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/AVATAR.md +30 -0
  198. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/avatar.json +22 -0
  199. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/happy.png +0 -0
  200. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/neutral-half.png +0 -0
  201. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/neutral-open.png +0 -0
  202. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/neutral.png +0 -0
  203. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/rendition.json +18 -0
  204. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/happy.png +0 -0
  205. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/neutral-half.png +0 -0
  206. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/neutral-open.png +0 -0
  207. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/neutral.png +0 -0
  208. package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/rendition.json +18 -0
  209. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/AVATAR.md +30 -0
  210. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/avatar.json +22 -0
  211. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/happy.png +0 -0
  212. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/neutral-half.png +0 -0
  213. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/neutral-open.png +0 -0
  214. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/neutral.png +0 -0
  215. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/rendition.json +18 -0
  216. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/happy.png +0 -0
  217. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/neutral-half.png +0 -0
  218. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/neutral-open.png +0 -0
  219. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/neutral.png +0 -0
  220. package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/rendition.json +18 -0
  221. package/vendor/packages/schemas/fixtures/avatar/valid/AVATAR.md +30 -0
  222. package/vendor/packages/schemas/fixtures/avatar/valid/avatar.json +22 -0
  223. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/happy.png +0 -0
  224. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/neutral-half.png +0 -0
  225. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/neutral-open.png +0 -0
  226. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/neutral.png +0 -0
  227. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/rendition.json +18 -0
  228. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/happy.png +0 -0
  229. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/neutral-half.png +0 -0
  230. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/neutral-open.png +0 -0
  231. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/neutral.png +0 -0
  232. package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/rendition.json +18 -0
  233. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/AVATAR.md +30 -0
  234. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/avatar.json +23 -0
  235. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/happy.png +0 -0
  236. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/neutral-half.png +0 -0
  237. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/neutral-open.png +0 -0
  238. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/neutral.png +0 -0
  239. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/rendition.json +18 -0
  240. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/happy.png +0 -0
  241. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/neutral-half.png +0 -0
  242. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/neutral-open.png +0 -0
  243. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/neutral.png +0 -0
  244. package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/rendition.json +18 -0
  245. package/vendor/packages/schemas/fixtures/avatar/valid-voice-only/AVATAR.md +28 -0
  246. package/vendor/packages/schemas/fixtures/avatar/valid-voice-only/avatar.json +19 -0
  247. package/vendor/packages/schemas/fixtures/intake/invalid-duplicate-task/intake.json +8 -0
  248. package/vendor/packages/schemas/fixtures/intake/invalid-missing-submitted-at/intake.json +8 -0
  249. package/vendor/packages/schemas/fixtures/intake/invalid-target-exclusive/intake.json +8 -0
  250. package/vendor/packages/schemas/fixtures/intake/invalid-unknown-task/intake.json +8 -0
  251. package/vendor/packages/schemas/fixtures/intake/valid-draft/intake.json +8 -0
  252. package/vendor/packages/schemas/fixtures/intake/valid-submitted/intake.json +8 -0
  253. package/vendor/packages/schemas/fixtures/plan/invalid-bad-confidence-enum/plan.json +15 -0
  254. package/vendor/packages/schemas/fixtures/plan/invalid-constraint-bad-applies-to/plan.json +18 -0
  255. package/vendor/packages/schemas/fixtures/plan/invalid-dangling-media-path/plan.json +15 -0
  256. package/vendor/packages/schemas/fixtures/plan/invalid-duplicate-slot-id/plan.json +25 -0
  257. package/vendor/packages/schemas/fixtures/plan/invalid-missing-required-field/plan.json +14 -0
  258. package/vendor/packages/schemas/fixtures/plan/unsupported-version/plan.json +4 -0
  259. package/vendor/packages/schemas/fixtures/plan/valid/plan.json +40 -0
  260. package/vendor/packages/schemas/fixtures/plan/valid/scaffold/beat-01.png +1 -0
  261. package/vendor/packages/schemas/fixtures/plan/valid/scaffold/beat-01.wav +1 -0
  262. package/vendor/packages/schemas/fixtures/plan/valid/scaffold/broll.mp4 +1 -0
  263. package/vendor/packages/schemas/fixtures/plan/warns-confidence-gap/plan.json +28 -0
  264. package/vendor/packages/schemas/fixtures/plan-comments/invalid-bad-pass/plan-comments.json +6 -0
  265. package/vendor/packages/schemas/fixtures/plan-comments/invalid-bad-target-id-for-index-kind/plan-comments.json +13 -0
  266. package/vendor/packages/schemas/fixtures/plan-comments/invalid-bad-target-kind/plan-comments.json +13 -0
  267. package/vendor/packages/schemas/fixtures/plan-comments/invalid-comments-not-array/plan-comments.json +6 -0
  268. package/vendor/packages/schemas/fixtures/plan-comments/invalid-missing-comment-field/plan-comments.json +12 -0
  269. package/vendor/packages/schemas/fixtures/plan-comments/invalid-missing-version/plan-comments.json +5 -0
  270. package/vendor/packages/schemas/fixtures/plan-comments/unsupported-version/plan-comments.json +6 -0
  271. package/vendor/packages/schemas/fixtures/plan-comments/valid/plan-comments.json +19 -0
  272. package/vendor/packages/schemas/fixtures/plan-comments/valid-unknown-fields/plan-comments.json +15 -0
  273. package/vendor/packages/schemas/fixtures/recipe/invalid-bad-aspect/recipe.json +13 -0
  274. package/vendor/packages/schemas/fixtures/recipe/invalid-bad-confirmed-by/recipe.json +13 -0
  275. package/vendor/packages/schemas/fixtures/recipe/invalid-bad-name-casing/recipe.json +13 -0
  276. package/vendor/packages/schemas/fixtures/recipe/invalid-bad-workflow/recipe.json +13 -0
  277. package/vendor/packages/schemas/fixtures/recipe/invalid-duplicate-overlay-kind/recipe.json +13 -0
  278. package/vendor/packages/schemas/fixtures/recipe/invalid-empty-confirmed/recipe.json +9 -0
  279. package/vendor/packages/schemas/fixtures/recipe/invalid-empty-narration/recipe.json +13 -0
  280. package/vendor/packages/schemas/fixtures/recipe/invalid-missing-version/recipe.json +12 -0
  281. package/vendor/packages/schemas/fixtures/recipe/invalid-provenance-mismatch/recipe.json +15 -0
  282. package/vendor/packages/schemas/fixtures/recipe/invalid-source-project-path/recipe.json +13 -0
  283. package/vendor/packages/schemas/fixtures/recipe/unsupported-version/recipe.json +13 -0
  284. package/vendor/packages/schemas/fixtures/recipe/valid/recipe.json +15 -0
  285. package/vendor/packages/schemas/fixtures/recipe/valid-unknown-fields/recipe.json +16 -0
  286. package/vendor/packages/schemas/fixtures/review/invalid-malformed-canvas-target/review.json +6 -0
  287. package/vendor/packages/schemas/fixtures/review/invalid-malformed-doc-target/review.json +6 -0
  288. package/vendor/packages/schemas/fixtures/review/invalid-malformed-image-target/review.json +6 -0
  289. package/vendor/packages/schemas/fixtures/review/invalid-strokes-bad-space/review.json +6 -0
  290. package/vendor/packages/schemas/fixtures/review/invalid-strokes-canvas-rect-with-frame/review.json +6 -0
  291. package/vendor/packages/schemas/fixtures/review/invalid-strokes-image-rect-with-frame/review.json +6 -0
  292. package/vendor/packages/schemas/fixtures/review/invalid-video-null-sourcet/review.json +6 -0
  293. package/vendor/packages/schemas/fixtures/review/valid/review.json +8 -0
  294. package/vendor/packages/schemas/fixtures/review/valid-canvas-target/review.json +7 -0
  295. package/vendor/packages/schemas/fixtures/review/valid-input-session/review.json +6 -0
  296. package/vendor/packages/schemas/fixtures/review/valid-strokes/review.json +8 -0
  297. package/vendor/packages/schemas/intake.schema.json +117 -0
  298. package/vendor/packages/schemas/interpretation.schema.json +419 -0
  299. package/vendor/packages/schemas/package.json +18 -0
  300. package/vendor/packages/schemas/plan-comments.schema.json +52 -0
  301. package/vendor/packages/schemas/plan.schema.json +129 -0
  302. package/vendor/packages/schemas/recipe.schema.json +106 -0
  303. package/vendor/packages/schemas/research-plan.schema.json +230 -0
  304. package/vendor/packages/schemas/review.schema.json +227 -0
  305. package/vendor/packages/schemas/test/fixtures/asset/invalid-matched-by/audio/whoosh-transition/meta.json +31 -0
  306. package/vendor/packages/schemas/test/fixtures/asset/valid-catalog/audio/whoosh-transition/meta.json +31 -0
  307. package/vendor/packages/schemas/test/fixtures/asset/valid-library/telop/lower-third-clean/fragment.html +139 -0
  308. package/vendor/packages/schemas/test/fixtures/asset/valid-library/telop/lower-third-clean/meta.json +32 -0
  309. package/vendor/packages/schemas/test/fixtures/asset/valid-library/telop/lower-third-clean/preview.png +0 -0
  310. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-analyses-missing-ref/interpretation.json +131 -0
  311. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-analyses-ref-mismatch/interpretation.json +132 -0
  312. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-arc-empty-refs/interpretation.json +126 -0
  313. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-context-missing-interview/interpretation.json +126 -0
  314. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-context-null-intake/interpretation.json +133 -0
  315. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-dangling-arc-ref/interpretation.json +132 -0
  316. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-duplicate-asset-ref/interpretation.json +132 -0
  317. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-flag-bad-type/interpretation.json +132 -0
  318. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-flag-missing-evidence/interpretation.json +131 -0
  319. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-missing-required-field/interpretation.json +131 -0
  320. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-open-question-answer-present-when-open/interpretation.json +133 -0
  321. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-open-question-answered-without-answer/interpretation.json +131 -0
  322. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-relations-dangling-target/interpretation.json +132 -0
  323. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-relations-self-reference/interpretation.json +132 -0
  324. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-section-end-before-start/interpretation.json +132 -0
  325. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-section-mismatched-start-end/interpretation.json +131 -0
  326. package/vendor/packages/schemas/test/fixtures/interpretation/invalid-unknown-root-field/interpretation.json +133 -0
  327. package/vendor/packages/schemas/test/fixtures/interpretation/unsupported-version/interpretation.json +132 -0
  328. package/vendor/packages/schemas/test/fixtures/interpretation/valid/interpretation.json +132 -0
  329. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-bad-category-enum/research-plan.json +128 -0
  330. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-dangling-chapter-ref/research-plan.json +128 -0
  331. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-dangling-shot-list-ref/research-plan.json +128 -0
  332. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-decided-at-mismatch/research-plan.json +128 -0
  333. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-duplicate-candidate-id/research-plan.json +128 -0
  334. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-japan-sns-notes-empty/research-plan.json +128 -0
  335. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-missing-required-field/research-plan.json +127 -0
  336. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-selected-missing-candidate/research-plan.json +128 -0
  337. package/vendor/packages/schemas/test/fixtures/research-plan/invalid-structure-confirmed-mismatch/research-plan.json +128 -0
  338. package/vendor/packages/schemas/test/fixtures/research-plan/unsupported-version/research-plan.json +128 -0
  339. package/vendor/packages/schemas/test/fixtures/research-plan/valid/research-plan.json +79 -0
  340. package/vendor/packages/schemas/test/fixtures/research-plan/warns-empty-sources/research-plan.json +120 -0
  341. package/vendor/packages/schemas/test/validate-asset.test.mjs +38 -0
  342. package/vendor/packages/schemas/test/validate-avatar.test.mjs +109 -0
  343. package/vendor/packages/schemas/test/validate-captions.test.mjs +59 -0
  344. package/vendor/packages/schemas/test/validate-connections.test.mjs +31 -0
  345. package/vendor/packages/schemas/test/validate-edit.test.mjs +490 -0
  346. package/vendor/packages/schemas/test/validate-intake.test.mjs +66 -0
  347. package/vendor/packages/schemas/test/validate-interpretation.test.mjs +167 -0
  348. package/vendor/packages/schemas/test/validate-plan-comments.test.mjs +70 -0
  349. package/vendor/packages/schemas/test/validate-plan.test.mjs +67 -0
  350. package/vendor/packages/schemas/test/validate-recipe.test.mjs +107 -0
  351. package/vendor/packages/schemas/test/validate-research-plan.test.mjs +98 -0
  352. package/vendor/packages/schemas/test/validate-review.test.mjs +102 -0
  353. package/vendor/skills/.gitkeep +0 -0
  354. package/vendor/skills/address-review/SKILL.md +84 -0
  355. package/vendor/skills/address-review/bin/core/review-store.mjs +210 -0
  356. package/vendor/skills/address-review/bin/list.mjs +198 -0
  357. package/vendor/skills/address-review/bin/respond.mjs +89 -0
  358. package/vendor/skills/address-review/dev-fixtures/fixture-project/captions.json +22 -0
  359. package/vendor/skills/address-review/dev-fixtures/fixture-project/edit.json +12 -0
  360. package/vendor/skills/address-review/dev-fixtures/fixture-project/review.json +100 -0
  361. package/vendor/skills/address-review/test/review-store.test.mjs +201 -0
  362. package/vendor/skills/analyze-footage/SKILL.md +35 -0
  363. package/vendor/skills/analyze-footage/analysis-json.md +185 -0
  364. package/vendor/skills/analyze-footage/bin/person-matte/person-matte-helper.swift +343 -0
  365. package/vendor/skills/analyze-footage/bin/person-matte/person-matte.mjs +415 -0
  366. package/vendor/skills/analyze-footage/bin/speechanalyzer-helper.swift +138 -0
  367. package/vendor/skills/analyze-footage/bin/transcribe-cloud.mjs +486 -0
  368. package/vendor/skills/analyze-footage/bin/transcribe-sa.mjs +189 -0
  369. package/vendor/skills/analyze-footage/events-and-hooks.md +93 -0
  370. package/vendor/skills/analyze-footage/keyframes-and-review.md +130 -0
  371. package/vendor/skills/analyze-footage/media-and-transcript.md +219 -0
  372. package/vendor/skills/analyze-footage/person-matte.md +121 -0
  373. package/vendor/skills/analyze-footage/references/akari-data-contract.md +18 -0
  374. package/vendor/skills/analyze-footage/references/asset.meta.example.json +23 -0
  375. package/vendor/skills/analyze-footage/test/fixtures/scribe-punctuation-inflation.json +17 -0
  376. package/vendor/skills/analyze-footage/test/normalize-scribe.test.mjs +76 -0
  377. package/vendor/skills/analyze-footage/workflow.md +95 -0
  378. package/vendor/skills/analyze-project/SKILL.md +58 -0
  379. package/vendor/skills/analyze-project/collect.md +51 -0
  380. package/vendor/skills/analyze-project/decision-record.md +55 -0
  381. package/vendor/skills/analyze-project/interpretation.md +128 -0
  382. package/vendor/skills/analyze-project/interview.md +66 -0
  383. package/vendor/skills/analyze-project/references/interpretation-shape.md +42 -0
  384. package/vendor/skills/analyze-project/references/open-questions-examples.md +35 -0
  385. package/vendor/skills/analyze-project/validate-and-render.md +66 -0
  386. package/vendor/skills/bake-3d/SKILL.md +78 -0
  387. package/vendor/skills/compile-review-session/SKILL.md +78 -0
  388. package/vendor/skills/compile-review-session/bin/compile-review-session.mjs +799 -0
  389. package/vendor/skills/compile-review-session/bin/core/canvas-compiler.mjs +105 -0
  390. package/vendor/skills/compile-review-session/bin/core/compiler.mjs +221 -0
  391. package/vendor/skills/compile-review-session/bin/core/review-store.mjs +74 -0
  392. package/vendor/skills/compile-review-session/bin/core/time-mapping.mjs +370 -0
  393. package/vendor/skills/compile-review-session/bin/core/transcription.mjs +721 -0
  394. package/vendor/skills/compile-review-session/compilation-rules.md +98 -0
  395. package/vendor/skills/compile-review-session/dev-fixtures/README.md +24 -0
  396. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/audio.wav +0 -0
  397. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/edit.snapshot.json +12 -0
  398. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/events.jsonl +2 -0
  399. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/session.json +11 -0
  400. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/audio.wav +0 -0
  401. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/edit.snapshot.json +12 -0
  402. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/events.jsonl +5 -0
  403. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/session.json +11 -0
  404. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/audio.wav +0 -0
  405. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/edit.snapshot.json +12 -0
  406. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/events.jsonl +19 -0
  407. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/session.json +11 -0
  408. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/audio.wav +0 -0
  409. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/edit.snapshot.json +12 -0
  410. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/events.jsonl +2 -0
  411. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/session.json +11 -0
  412. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0005/session.json +1 -0
  413. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0006/audio.wav +0 -0
  414. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0006/events.jsonl +2 -0
  415. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0006/session.json +11 -0
  416. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/audio.wav +0 -0
  417. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/edit.snapshot.json +13 -0
  418. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/events.jsonl +9 -0
  419. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/session.json +11 -0
  420. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/audio.wav +0 -0
  421. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/edit.snapshot.json +12 -0
  422. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/events.jsonl +2 -0
  423. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/session.json +11 -0
  424. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/transcript.json +9 -0
  425. package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review.json +7 -0
  426. package/vendor/skills/compile-review-session/test/canvas-compiler.test.mjs +283 -0
  427. package/vendor/skills/compile-review-session/test/compiler.test.mjs +458 -0
  428. package/vendor/skills/create-project/SKILL.md +46 -0
  429. package/vendor/skills/create-project/bin/create-project.mjs +88 -0
  430. package/vendor/skills/edit-lint/SKILL.md +73 -0
  431. package/vendor/skills/edit-plan/SKILL.md +64 -0
  432. package/vendor/skills/edit-plan/approvals-and-generation.md +106 -0
  433. package/vendor/skills/edit-plan/avatar-resolution.md +241 -0
  434. package/vendor/skills/edit-plan/beat-sync.md +545 -0
  435. package/vendor/skills/edit-plan/beats.md +197 -0
  436. package/vendor/skills/edit-plan/emphasis-detection.md +366 -0
  437. package/vendor/skills/edit-plan/execution.md +157 -0
  438. package/vendor/skills/edit-plan/expression-selection.md +290 -0
  439. package/vendor/skills/edit-plan/plan-json.md +52 -0
  440. package/vendor/skills/edit-plan/recipe.md +74 -0
  441. package/vendor/skills/edit-plan/references/asset.decisions.example.json +12 -0
  442. package/vendor/skills/edit-plan/references/event.example.json +7 -0
  443. package/vendor/skills/edit-plan/report-guide.md +192 -0
  444. package/vendor/skills/edit-plan/workflow.md +108 -0
  445. package/vendor/skills/generate-narration/SKILL.md +40 -0
  446. package/vendor/skills/generate-narration/assets/reading-script-v1.md +18 -0
  447. package/vendor/skills/generate-narration/avatar-voice.md +54 -0
  448. package/vendor/skills/generate-narration/bin/generate-narration.mjs +572 -0
  449. package/vendor/skills/generate-narration/engines.md +78 -0
  450. package/vendor/skills/generate-narration/reading-text.md +36 -0
  451. package/vendor/skills/generate-narration/voice-profile-setup.md +77 -0
  452. package/vendor/skills/harvest-asset/SKILL.md +132 -0
  453. package/vendor/skills/manage-connections/SKILL.md +75 -0
  454. package/vendor/skills/manage-connections/bin/doctor.mjs +341 -0
  455. package/vendor/skills/overlay-authoring/3d.md +143 -0
  456. package/vendor/skills/overlay-authoring/SKILL.md +30 -0
  457. package/vendor/skills/overlay-authoring/motion.md +58 -0
  458. package/vendor/skills/overlay-authoring/table.md +41 -0
  459. package/vendor/skills/overlay-authoring/telop.md +69 -0
  460. package/vendor/skills/overlay-authoring/text-behind-person.md +224 -0
  461. package/vendor/skills/overlay-authoring/thumbnail.md +126 -0
  462. package/vendor/skills/render-cut/SKILL.md +66 -0
  463. package/vendor/skills/research-plan/SKILL.md +75 -0
  464. package/vendor/skills/research-plan/competitor.md +50 -0
  465. package/vendor/skills/research-plan/ideate.md +56 -0
  466. package/vendor/skills/research-plan/shotlist.md +46 -0
  467. package/vendor/skills/research-plan/storyboard.md +48 -0
  468. package/vendor/skills/research-plan/trends.md +33 -0
  469. package/vendor/skills/setup-audio-library/SKILL.md +93 -0
  470. package/vendor/skills/setup-audio-library/candidate-list.md +72 -0
  471. package/vendor/skills/setup-audio-library/drop-folder.md +72 -0
  472. package/vendor/skills/setup-audio-library/gallery.md +43 -0
  473. package/vendor/skills/setup-library/SKILL.md +33 -0
  474. package/vendor/skills/setup-library/fetch-and-validate.md +102 -0
  475. package/vendor/skills/setup-library/starter-pack.md +55 -0
  476. package/vendor/skills/setup-library/tools-check.md +83 -0
  477. package/vendor/skills/verify/SKILL.md +137 -0
  478. package/vendor/templates/project-default/.akari/cache/.gitkeep +0 -0
  479. package/vendor/templates/project-default/.akari/connections.json +233 -0
  480. package/vendor/templates/project-default/.akari/diffs/.gitkeep +1 -0
  481. package/vendor/templates/project-default/.akari/events/.gitkeep +1 -0
  482. package/vendor/templates/project-default/.akari/reports/.gitkeep +0 -0
  483. package/vendor/templates/project-default/.akari/sidecars/.gitkeep +1 -0
  484. package/vendor/templates/project-default/.akari/work/.gitkeep +0 -0
  485. package/vendor/templates/project-default/.akari/workflow.json +48 -0
  486. package/vendor/templates/project-default/.claude/settings.json +15 -0
  487. package/vendor/templates/project-default/.claude/skills/README.md +26 -0
  488. package/vendor/templates/project-default/AGENTS.md +49 -0
  489. package/vendor/templates/project-default/CLAUDE.md +35 -0
  490. package/vendor/templates/project-default/assets/.gitkeep +1 -0
  491. package/vendor/templates/project-default/exports/.gitkeep +1 -0
  492. package/vendor/templates/project-default/planning/.gitkeep +1 -0
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: edit-plan
3
+ description: analyze-project が作る分析レポート(interpretation.json + analysis-report.html)を一次証拠として読み、方針・素材計画・実行をチャットの明示承認で確定したうえで edit.json v0 とオーバーレイ HTML へ落とすスキル。複数素材の編集計画、素材ゼロからの生成計画(質問対話 → plan.json の仮枠タイムライン確定)、分析結果からカットや BGM・SFX・B ロールを決める依頼で使う。
4
+ ---
5
+
6
+ # 編集判断を統合する
7
+
8
+ > **Language**: Respond in the user's language — 対話・質問・承認確認・レポートはユーザーの使用言語に合わせる(例: 英語で話しかけられたら英語で応答する)。
9
+
10
+ > **2026-07-22 改訂**: 編集判断レポート(固定 6 章 HTML + 決定カード)の生成は本スキルから
11
+ > 退いた。正式なレポートは [analyze-project](../analyze-project/SKILL.md) が作る分析レポートの
12
+ > みであり、方向性の引き出しはチャットで行う。詳細と移行理由は
13
+ > [report-guide.md](report-guide.md) 冒頭を見る。
14
+
15
+ ## ハードルール
16
+
17
+ - 判断の正本は検証済み `analysis.json` と人間の明示承認に置き、根拠のない transcript、フレーム、素材、承認を作らない。
18
+ - **編集判断は analyze-project の分析レポートを一次証拠として使う**。edit-plan 自身は決定用の
19
+ HTML レポートを新たに生成しない。方針(サムネイル案・カット強度・字幕方針・章立て等)は
20
+ チャットで決め、決定は `decision-log.md` へ記録する。`decision-log.md` の既存行は変更・削除せず、
21
+ 常に追記する。
22
+ - **方針 → 素材計画 → 実行**の各チェックポイントで停止する。無操作、タイムアウト、過去の包括承認を今回の承認に読み替えない。
23
+ - 静止画は生成物として保存し、provenance とともにチャットで提示する。i2v、アバター、その他の動画生成は対応静止画・素材計画・実行の承認がすべて揃うまで行わない。
24
+ - 有償または重い生成の前に、使う手、理由、代替案、影響を宣言する。画像生成は Codex 画像生成を先に検討し、次に Akari Cloud を検討する。OpenAI、Gemini 等の API キーを直叩きしない。
25
+ - `edit.json` は [M1〜M4 v0 契約](../../docs/contract-2026-07-13-m1-m4.md) の単一 `source` 形を既定とし、勝手に複数 source、音声 track、B ロール track を発明しない。足してよいのは**公開契約が定めたフィールドだけ**である([sources[]](../../docs/contract-2026-07-18-edit-json-v1-sources.md) / [audio](../../docs/contract-2026-07-14-edit-json-v1-audio.md) / [audio.narration[]](../../docs/contract-2026-07-20-edit-json-v1-narration.md) / [beats[]](../../docs/contract-2026-07-22-edit-json-v1-beats.md))。契約のない未定義フィールドは足さない。
26
+ - 見せ場マーカー(`beats[]`)を書くときは [beats.md](beats.md) の導出規約に従う。`analysis.json` の event / 発話を指せない beat を発明せず、`t` は source 秒で書く。
27
+ - 語レベル演出(`emphasis_words[]`。[公開契約](../../docs/contract-2026-07-23-edit-json-v1-emphasis-words.md))を書くときは [emphasis-detection.md](emphasis-detection.md) の検出規約に従う。`analysis.json` の `words` を指せない語を発明せず、`t_start` / `t_end` は `words` の実測値をそのまま写す(source 秒)。
28
+ - 最終オーバーレイでは [overlay-authoring](../overlay-authoring/SKILL.md) スキルを使う。見つからない場合も規約を省略せず、[CLAUDE.md](../../CLAUDE.md) の authoring 規約を正本として使ったことを記録する。
29
+ - OpenMontage は構造パターンの参考に限り、AGPL の文章やコードを転写しない。
30
+
31
+ ## 実行順と目次
32
+
33
+ 1. [workflow.md](workflow.md) を読み、分析の収集・並列実行・統合モードを決める。素材がある
34
+ 場合は [analyze-project](../analyze-project/SKILL.md) の分析レポート(無ければ先に生成を
35
+ 依頼する)を一次証拠として読む。素材がゼロの場合はこの時点で [plan-json.md](plan-json.md) を
36
+ 読み、質問対話 → `plan.json`(仮枠タイムライン。[契約](../../docs/contract-2026-07-20-plan-json-v0.md))の確定を先に行う。
37
+ 2. [report-guide.md](report-guide.md) を読み、分析レポートの根拠を踏まえて方針(サムネイル案・
38
+ カット強度・字幕方針・章立て)の推奨案と代替案を組み立てる。方針提示の前に
39
+ [recipe.md](recipe.md) の recall 手順で `~/.akari/recipes/`(`workflow: "edit"`)を確認し、
40
+ 出所付きの推奨として添える(今回の依頼は上書きしない)。同じ方針提示の前段で
41
+ `.akari/connections.json` の `memory` 宣言
42
+ ([contract-2026-07-25-memory-connection-v0.md](../../docs/contract-2026-07-25-memory-connection-v0.md))
43
+ も確認する。あれば `entry`(省略時 `INDEX.md`)起点で `include`/`exclude` の範囲だけを読み、
44
+ 参照したファイルパスを `decision-log.md` に出所として記録する。全文投入は禁止。宣言が
45
+ 無ければ何もしない(error にしない)。
46
+ 3. 方針をチャットで人間に提示し(推奨・代替案・理由・得失を示す。「どうしますか」で丸投げ
47
+ しない)、明示承認または修正指示を得る。確定内容を `decision-log.md` に追記する。
48
+ 4. [approvals-and-generation.md](approvals-and-generation.md) を読み、生成宣言、provenance、3 段階承認を運用する。Checkpoint 1 はチャットでの明示承認を得るまで編集実行に進まない。
49
+ 5. 実行承認を得た後だけ [execution.md](execution.md) を読み、`edit.json`(単一素材なら v0、複数素材なら v1)とオーバーレイ HTML を生成・検証する。完了処理として [recipe.md](recipe.md) の freeze 手順を確認し、そのプロジェクトで未申し出なら一度だけ(offer-once)レシピ化を人間に申し出る。
50
+ 6. 見せ場マーカーを書く工程では [beats.md](beats.md) を読み、`analysis.json` の events / transcript から
51
+ `beats[]` を導出する(マッピング表・座標系・導出段のガードレール = 下限と根拠・worked example)。
52
+ 7. 承認済みの `beats[]` を演出へ連動させる工程では [beat-sync.md](beat-sync.md) を読み、射影・SE 発火
53
+ 規則・章転換のスナップ・密度ガードレール・SE 既定表に従って `audio.sfx[]` を組む(v0 は SE + カット境界 + 既存
54
+ overlay 部品まで。トランジション語彙の発明とビート連動の BGM 操作をしない)。
55
+ 8. シーンごとに使う表現手段を決める工程では [expression-selection.md](expression-selection.md) を読み、
56
+ 意味 → 手段の対応表・演出カードの `allowed_means` によるハードフィルタ・カタログ接続
57
+ (`when_to_use` / `tags` 検索とライセンス確認)・選択根拠の記録に従って候補を決める
58
+ (候補の決め方であり、素材計画の承認ゲートは従来どおり通す)。
59
+ 9. 語レベル演出を書く工程では [emphasis-detection.md](emphasis-detection.md) を読み、`analysis.json` の
60
+ `transcript[].words` から `emphasis_words[]` を導出する(対象 tier のゲート・選定規則 = 候補 / 見せ場連動 /
61
+ 密度・`emotion` の文脈判断・`style_hint` の目安・根拠の記録・worked example)。
62
+ 10. 人・キャラクター(アバター)の挿入を求められた工程では [avatar-resolution.md](avatar-resolution.md) を読み、段階読み出し(L0/L1/L2)・rendition 解決・decision card・記録の手順に従う。
63
+
64
+ 現在の工程に必要なリーフだけを読み、後工程を先回りして実行しない。
@@ -0,0 +1,106 @@
1
+ # 承認と生成の統治
2
+
3
+ ## 原則
4
+
5
+ 生成の速さより、何を、どの手で、なぜ行ったかを人間が先に理解できることを優先する。推奨は示すが、複数案を黙って既定選択しない。
6
+
7
+ ## Decision Communication Contract
8
+
9
+ 有償または重い生成の前に、会話上で次を宣言する。
10
+
11
+ ```text
12
+ 対象:
13
+ 使う手:
14
+ 理由:
15
+ 代替案と得失:
16
+ 費用・待ち時間・外部送信などの影響:
17
+ 実行後に残す provenance:
18
+ ```
19
+
20
+ 選択が人間の意図や費用を変える場合は、宣言だけで実行せず回答を待つ。契約ですでに静止画の作成が承認されている場合も、手と理由は宣言して `decision-log.md` に追記する。失敗時に別の手へ切り替える前も、変更理由と得失を追記する。
21
+
22
+ ## 手の優先順と禁止事項
23
+
24
+ 1. Codex の画像生成を使い、プロジェクトへ画像ファイルを保存する。
25
+ 2. Codex で実行不能または不適合なら、理由を示して Akari Cloud API / MCP をエージェント層から使う。
26
+ 3. どちらも使えない、品質や権利を満たさない場合は、経路 A の実フレームを使うか、素材を `使わない` とする。
27
+
28
+ OpenAI、Gemini 等の API キーを直接使わない。キーの提示を求めず、`.env` から探索せず、アプリ本体へ生成通信を実装しない。優先順は黙って fallback する許可ではない。
29
+
30
+ ### 手 1(Codex 画像生成)の実働確認
31
+
32
+ **実測済み(2026-07-14)**。`codex-cli 0.144.1`(ChatGPT 認証)で画像ファイルの実生成まで確認した。
33
+
34
+ - 呼び出し形: 作業ディレクトリへ `cd` してから `codex exec --skip-git-repo-check "<プロンプト>"` をフォアグラウンドで実行する。バックグラウンド起動は即時リターンして生成を待たない既知問題があるため避ける。macOS 標準には `timeout` / `gtimeout` がなく、呼び出し元ツール側のタイムアウトで代替する(目安 600 秒)。
35
+ - 事前確認: `codex features list` で `image_generation` は `stable / true`。`codex doctor` で ChatGPT 認証・websocket 接続が正常であること。
36
+ - 実測結果: プロンプト「16:9 の動画サムネイル用の背景画像を生成。ダークトーン、テック系、抽象グラデーションと光の筋、文字なし。bg-test.png として保存」に対し、**93 秒**で 1664×936(16:9)の PNG 1.7MB が指定ディレクトリに書き出された。視認確認で指示どおりの内容(文字・ロゴ・UI なし)。プロンプトの日本語指示・保存ファイル名指定・アスペクト比指定はいずれも守られた。
37
+ - 既知の失敗モード: ChatGPT アカウントの使用量上限に達していると、画像生成に限らず全ターンが即時 `usage limit` エラーで失敗する(上限リセット待ちまたはプラン変更で回復)。エラー文中に回復予定時刻が出るので完了報告に記録する。
38
+ - 生成後は provenance(手 = codex exec / model or tool version・prompt・ISO 8601 日時)を必ず記録する。
39
+
40
+ ## provenance
41
+
42
+ 生成物ごとに、チャットでの提示内容と `decision-log.md` から次を辿れるようにする。
43
+
44
+ - asset ID と種別
45
+ - 使用した手と、分かる場合は model / tool version
46
+ - prompt と参照素材
47
+ - ISO 8601 の生成日時
48
+ - 出力ファイルとチャットで提示した preview
49
+ - fallback、加工、i2v など後続工程
50
+ - 対応する承認記録
51
+
52
+ 実フレーム由来なら、生成 prompt の代わりに source、source 時刻、抽出手段を記す。混成案は背景生成と HTML 文字組を別工程として記録する。
53
+
54
+ ## 3 段階チェックポイント
55
+
56
+ 契約上の checkpoint 数 `3` は M5 の確定値であり不変。**2026-07-22 改訂**: Checkpoint 1(方針)の
57
+ 回答チャネルだった決定カード(`<レポートパス>.decisions.json` + ヘルパー)は、edit-plan 自身の
58
+ レポート生成が analyze-project へ移管されたことに伴い廃止した。Checkpoint 1〜3 のすべてが
59
+ **チャットでの明示承認**に一本化される(正式なレポートは analyze-project の分析レポートのみ、
60
+ 方向性の引き出しはチャットで行うという原則)。
61
+
62
+ ### Checkpoint 1: 方針
63
+
64
+ [analyze-project](../analyze-project/SKILL.md) の分析レポートを根拠として、サムネイル案、
65
+ 編集方針、カット案をチャットで提示し、選択肢の得失を説明する(推奨案 + 代替案 + 理由。
66
+ 「どうしますか」と丸投げしない)。人間から今回の方針に対する明示回答を得たら
67
+ `decision-log.md` に追記し、修正指示があればチャットで再提示する。承認前は素材計画を確定しない。
68
+
69
+ **編集実行ゲート**: チャットで明示承認を得るまで、編集実行(素材計画の確定・[execution.md](execution.md))に進まない。無操作・タイムアウト・過去の包括承認を今回の承認に読み替えない。
70
+
71
+ ### Checkpoint 2: 素材計画
72
+
73
+ 承認済み方針に沿って、BGM とシーン単位素材の三択、静止 preview、provenance を提示する。ここで停止して明示回答を待つ。対応静止画が承認されていない i2v、アバター、動画 B ロールを実行しない。
74
+
75
+ ### Checkpoint 3: 実行
76
+
77
+ 次を manifest として提示する。
78
+
79
+ - 出力 width / height / fps
80
+ - source と keep range
81
+ - 複数素材の扱い(v1 の `sources[]` + `cuts[].src` か、単一中間マスターへの conform か)
82
+ - 実行する生成、conform、音声・B ロール焼き込み
83
+ - 作る overlay とタイミング
84
+ - 作るファイルと既存ファイルへの影響
85
+
86
+ 人間が manifest を明示承認した後だけ [execution.md](execution.md) へ進む。素材計画の承認を実行承認と兼用しない。
87
+
88
+ 承認済み画像を i2v へ進めるには、対応画像の承認、素材計画の承認、実行 manifest の承認をすべて確認する。契約上の checkpoint 数 `3` は M5 の確定値であり、無操作タイムアウトで減らさない。
89
+
90
+ ## plan-comments.json による差し戻し受領
91
+
92
+ Checkpoint 2 / Checkpoint 3 の再提示に着手する前に、`<plan-dir>/plan-comments.json` の有無を確認する(**チャット返信の解釈より先に本ファイルを読む**)。`research-plan/storyboard.md` の `structure-confirm` と同型の規約であり、正本は [contract-2026-07-25-plan-comments-v0.md](../../docs/contract-2026-07-25-plan-comments-v0.md)。
93
+
94
+ - `pass: "scaffold"` の `plan-comments.json` が在れば、Checkpoint 2(素材計画)向けの差し戻しとして扱い、`comments[].target_kind: "slot"`(`target_id` は `plan.json` の `slots[].id`)で名指しされた slot **だけ**を改訂する。
95
+ - `pass: "final"` の `plan-comments.json` が在れば、Checkpoint 3(実行)向けの差し戻しとして扱い、`comments[].target_kind: "cut"`(`target_id` は `edit.json` の `cuts[]` の配列インデックス)で名指しされた cut **だけ**を改訂する。
96
+ - どちらも、名指しされていない slot / cut は無変更のまま次の提示に進む。改訂が終わったら **`plan-comments.json` を削除**してから、更新後の内容を再提示する。
97
+ - ファイルが無い回は、従来どおりチャットの差し戻し指示のみを解釈する。
98
+
99
+ ## よくある間違い
100
+
101
+ - Codex が優先手であることを理由に、生成前宣言を省く。
102
+ - 推奨案だけを見せ、代替案の利点と欠点を隠す。
103
+ - 画像承認だけで i2v を始める。
104
+ - 前回プロジェクトの承認を流用する。
105
+ - fallback 後の手と prompt を provenance に残さない。
106
+ - チャットでの明示承認を得ずに、無操作や沈黙を承認とみなして次工程へ進む。
@@ -0,0 +1,241 @@
1
+ # 人・キャラクター(アバター)を挿入する
2
+
3
+ ## 原則
4
+
5
+ アバターの読み出しも CLAUDE.md / SKILL.md と同じ段階制に従う。**「Ryoma 入れて」のような挿入
6
+ 要求に対して全アバターの全データを読まない**。L0(一覧)→ L1(AVATAR.md)の 2 段で日常の挿入判断
7
+ は完結させ、L2(`persona/` `voice/` `renditions/*/rendition.json`)は下記「L2 深読みの条件」に
8
+ 明記した特定工程でしか読まない。データ形の正本は
9
+ [アバター・レジストリ契約](../../docs/contract-2026-07-26-avatar-registry-v0.md) にある。本リーフは
10
+ その器を挿入フローの中で**どう読み・どう質問するか**を定める。
11
+
12
+ ## 発動条件
13
+
14
+ チャットで人物・キャラクター・アバターの挿入を求められたとき(例:「Ryoma のやつ入れて」
15
+ 「ずんだもんに解説させて」)。生成対象がゼロから作るキャラクターではなく、既存の登録済み
16
+ アバターを指している場合が本リーフの対象。新規登録(音声サンプル → クローン、立ち絵取り込み等)
17
+ は本リーフのスコープ外(登録ウィザードは将来段階)。
18
+
19
+ ## 手順
20
+
21
+ ### 1. L0 — INDEX で ID を解決する
22
+
23
+ 以下の順で `avatars/INDEX.md` を読み、要求と一致する 1 行カードを探す(4 層スコープの近い順。
24
+ [契約](../../docs/contract-2026-07-26-avatar-registry-v0.md) §1):
25
+
26
+ 1. プロジェクト内 `.akari/avatars/INDEX.md`
27
+ 2. `~/.akari/avatars/INDEX.md`(個人スコープ。実在人物のアバターは通常ここにある)
28
+ 3. 公開 `catalog/avatars/INDEX.md`(`original` / `third_party` のみ)
29
+
30
+ 同一 ID が複数層にあれば近い層が勝つ(shadowing)。一致する ID が無ければ「該当アバターが
31
+ 見つからない」と人間に報告し、後段の登録は別スキル(将来段階)に委ねる。
32
+
33
+ ### 2. L1 — 該当 AVATAR.md のみ読む
34
+
35
+ 解決した ID の `AVATAR.md` **だけ**を読む。他アバターの AVATAR.md、`persona/`、`voice/`、
36
+ `renditions/*/rendition.json` は読まない。ここで得られる情報だけで以下を判断する:
37
+
38
+ - ペルソナ要約(一人称・トーン・口調・NG 上位)— 台本生成のプロンプト文脈に注入する
39
+ - 能力一覧表 — rendition ごとの `lipsync` / `expressions` / `framing`
40
+ - `avatar.json` の `default_rendition`
41
+
42
+ ### 3. rendition 解決
43
+
44
+ `avatar.json`(L1 から参照される機械可読値)の `default_rendition` を見る:
45
+
46
+ | 状態 | 動作 |
47
+ |---|---|
48
+ | `default_rendition` が非 null | それを採用し、選択したことのみ人間に報告する(質問しない) |
49
+ | `default_rendition` が null かつ rendition 候補が複数 | **decision card**(§4)で「どれで入れますか?」と質問する |
50
+ | `default_rendition` が null だが文脈で候補が一意に絞れる(§3a の判定規則を適用して残る候補が 1 件になる) | 自動選択し、選択根拠を `decision-log.md`(§6)に記録する(質問しない) |
51
+
52
+ ### 3a. 自動選択の判定規則(能力宣言ベース、S2 具体化)
53
+
54
+ 「文脈で一意」を当てずっぽうにしない。以下の判定規則を**候補を絞るフィルタ**として順に適用し、
55
+ 適用後に残った候補が 1 件になった時点で自動選択する。複数のシグナルが同時に文脈にあれば、
56
+ 該当するフィルタを**すべて**適用してから残数を数える(例: 「口パク必須のワイプ解説」は
57
+ lipsync フィルタ + framing フィルタの両方を適用する)。
58
+
59
+ | 文脈シグナル | フィルタ規則 | 参照する宣言 |
60
+ |---|---|---|
61
+ | 口パク必須(有声の台詞・ナレーションをそのアバターに喋らせるシーン) | `capabilities.lipsync !== true` の rendition を候補から除外する | `avatar.json` の `renditions[].capabilities.lipsync` |
62
+ | ワイプ挿入(画面占有率が低い・隅に小さく挿入する構図) | `capabilities.framing` に `"bustup"` を含む rendition を優先する(他の framing のみの候補は除外) | `renditions[].capabilities.framing` |
63
+ | フルショット(画面占有率が高い・画面の主役として映す構図) | `capabilities.framing` に `"fullbody"` を含む rendition を優先する(他の framing のみの候補は除外) | `renditions[].capabilities.framing` |
64
+
65
+ - フィルタを全て適用しても候補が**複数残る**、または**文脈シグナルが読み取れない**場合は、
66
+ 従来どおり §4 の decision card で質問する(後退させない — 自動選択は「わかるときだけ」)
67
+ - フィルタの結果候補が **0 件**になった場合(例: 口パク必須なのに lipsync 可な rendition が
68
+ 1 つも無い)も自動選択はせず、decision card で状況を明示して質問する
69
+ - 自動選択したときも、質問して決めたときも、**必ず** `decision-log.md`(§6)へ根拠 1 行を記録する
70
+
71
+ worked example(`ryoma` を想定。`2d-bustup` / `2d-fullbody` はいずれも `lipsync: true`):
72
+
73
+ ```
74
+ 文脈: 「口パク必須の解説シーンをワイプ挿入で使う」
75
+ 1. lipsync フィルタ: 2d-bustup(lipsync: true)/ 2d-fullbody(lipsync: true)→ 両方残る
76
+ 2. framing フィルタ(ワイプ→ bustup 優先): 2d-bustup(framing: [bustup])のみが該当 →
77
+ 2d-fullbody(framing: [fullbody])を除外
78
+ 3. 残り candidate = 1 件(2d-bustup)→ 自動選択
79
+ ```
80
+
81
+ ### 4. decision card(候補が複数 & 既定なしのとき)
82
+
83
+ edit-plan は自身の方針決定に汎用カード機構(HTML の `data-card`。
84
+ [report-guide.md](report-guide.md#汎用カード機構他スキルが参照する仕様) 参照。research-plan 等
85
+ 他スキル向けの仕様であり edit-plan 自身は使わない)を使わない。アバター挿入も edit-plan の実行
86
+ フロー内で起きる判断のため、同じ規律に従い**チャットで質問する**([report-guide.md](report-guide.md#方針をチャットで決める)
87
+ の「推奨案 + 代替案 + 利点/欠点/理由を示し、明示回答を得る」形式を rendition 選択に適用する)。
88
+ 「どうしますか」と丸投げしない。1 選択肢につき「rendition id + プレビュー(`preview.png` または
89
+ rendition ディレクトリ内画像)+ 能力 1 行」を示す。
90
+
91
+ worked example(`ryoma` を想定。`default_rendition: null`・候補 2 件):
92
+
93
+ ```
94
+ 質問: Ryoma をどれで入れますか?
95
+ - [2d-bustup] バストアップ・口パク可(neutral/happy/sad/angry/surprised/laugh)
96
+ - [2d-fullbody] 全身・口パク可(neutral/happy/sad/angry/surprised/laugh)
97
+ 推奨: 2d-bustup(ワイプ挿入で画面占有率が低いシーンのため。フルショットなら 2d-fullbody を推奨)
98
+ ```
99
+
100
+ 推奨(AI 既定案)はシーンの文脈(例: 画面占有率の低いワイプ挿入ならバストアップ、フルショット
101
+ なら全身)から選ぶが、確定は人間の明示回答を経る。
102
+
103
+ ### 5. L2 深読みの条件(このときだけ読む)
104
+
105
+ 内部契約 §3 の条件をそのまま踏襲する。日常工程では読まない:
106
+
107
+ | 工程 | 読むファイル |
108
+ |---|---|
109
+ | 口パク prerender | 選択済み rendition の `renditions/<id>/rendition.json` のみ |
110
+ | 掛け合い台本(複数アバター) | `persona/relationships.json`(存在する場合のみ) |
111
+ | 音声生成 | `voice/voice.json` |
112
+
113
+ `persona/persona.md`(ペルソナ全文)は存在すれば同様に L2 として扱う。存在しない場合は
114
+ `avatar.json` の `persona` オブジェクト(L1 と同じ内容)が唯一の出所であり、それ以上深く読む
115
+ ファイルは無い。
116
+
117
+ ### 6. `decision-log.md` への記録
118
+
119
+ rendition 選択(チャットでの質問経由・自動選択いずれも)は根拠つきで `decision-log.md`
120
+ ([report-guide.md#decision_log](report-guide.md#decision_log))へ追記する。[expression-selection.md](expression-selection.md#根拠の記録)
121
+ の素材選択記録と同じ粒度・同じファイルへ、`rendition` category で 1 行積む:
122
+
123
+ ```text
124
+ <avatar id> @ <timeline 秒> | category: rendition | subject: <avatar id>/<選んだ rendition id> |
125
+ 決定: <採用した rendition id> | 理由: <1 文> | 決定者: human|ai-auto | checkpoint: <関連チェックポイント>
126
+ ```
127
+
128
+ - **自動選択も却下も 1 行を書く**(黙って決めない・黙って落とさない。expression-selection.md
129
+ §根拠の記録と同じ規律)
130
+ - **自動選択(決定者: ai-auto)の理由欄は §3a のどのフィルタが効いたかを 1 文で書く**(例:
131
+ 「口パク必須 + ワイプ挿入 → framing=bustup かつ lipsync:true が 1 件のみ」)。フィルタ名を
132
+ 省略した曖昧な理由(「文脈から判断」等)は書かない — 後から根拠を検証できることが目的
133
+ - decision card 経由(決定者: human)の理由欄は人間の回答・確定内容をそのまま要約する
134
+ - 本節の記録運用自体(実装・自動化)は S2 のスコープ。本リーフは記録すべき内容の規約のみを定める
135
+
136
+ ### 6a. 既定化提案(`default_rendition` への昇格、S2 新設)
137
+
138
+ 同一アバター・同一 rendition の選択(決定者が human/ai-auto いずれでも可)が、`decision-log.md`
139
+ の `rendition` category かつ `subject: <avatar id>/*` で**直近 3 回連続**で並んだら(間に別の
140
+ rendition を選んだ行が挟まっていない)、`default_rendition` への昇格をチャットで**提案**する。
141
+ 勝手に書き込まない — 承認を得たときのみ書き込む(内部契約 §7-3)。
142
+
143
+ 1. **検知**: `decision-log.md` を `subject` が `<avatar id>/` で始まる `rendition` category の行
144
+ だけ時系列に抽出し、末尾から連続する行の「決定」列が同一 rendition id かどうかを見る。3 行
145
+ 連続で同一なら昇格提案の対象
146
+ 2. **提案文の生成**(チャットで提示。report-guide.md の「推奨案 + 理由を示し、明示回答を得る」
147
+ 形式を踏襲):
148
+
149
+ ```
150
+ 提案: <avatar id> の rendition は直近 3 回連続で `<rendition id>` が選ばれています。
151
+ 以後は質問せずこれを既定にしますか?(`avatar.json` の default_rendition へ書き込みます)
152
+ ```
153
+
154
+ 3. **承認を得たときのみ** `avatar.json` の `default_rendition` を該当 rendition id で書き込む。
155
+ 却下された場合は書き込まず、`decision-log.md` に却下決定を 1 行記録する(§6 の規律どおり)
156
+ 4. **書き込み後は必ず `validate-avatar.mjs` を実行**し、PASS を確認する(`default_rendition` が
157
+ `renditions[]` に存在しない typo 等を検出できる)
158
+ 5. 昇格後の挿入は §3 の表の 1 行目(`default_rendition` 非 null)に従い、以後は質問せず採用する
159
+
160
+ ## 台本生成への接続(persona 注入、S2 具体化)
161
+
162
+ 台本・ナレーション原稿をアバターに喋らせる工程(plan.json の対話で構成を決めた後、または
163
+ 既存台本にアバターの発話を割り当てる工程)では、原稿を生成する前に **L1(AVATAR.md /
164
+ `avatar.json` の `persona`)のペルソナ要約を原稿生成のプロンプト文脈へ注入する**。
165
+
166
+ ### 注入する項目
167
+
168
+ `persona` オブジェクトの以下 6 項目をそのまま原稿生成の指示文脈に含める(要約や意訳をせず、
169
+ 登録されている値をそのまま使う — 別の口調に脚色しない):
170
+
171
+ | 項目 | 使い方 |
172
+ |---|---|
173
+ | `first_person` | 台詞中の一人称をこれに統一する |
174
+ | `tone` | 全体のトーン(語り口の温度感)をこれに合わせる |
175
+ | `speech_style` | 説明の噛み砕き方・専門用語の扱いをこれに従う |
176
+ | `verbal_tics` | 語尾・口癖として台詞に自然に混ぜる(多用しすぎない) |
177
+ | `energy` | 文の長さ・テンポ・感嘆符の使用頻度をこの値の高低に合わせる(0=落ち着き、100=ハイテンション) |
178
+ | `default_role` | シーンで別の役割が明示指定されていない限り、この配役として原稿を書く |
179
+
180
+ ### NG の遵守(生成前チェック)
181
+
182
+ `persona.ng` に列挙された話題・言い回しに触れる原稿は**生成しない**。これは lint(生成後の
183
+ 機械検査)ではなく、**生成前の手順の規律**として扱う — 原稿を書く前に `ng` リストを読み、
184
+ 該当しそうな切り口を避けて構成する。生成後に気づいた場合は、その場で書き直す(`ng` 抵触のまま
185
+ 一度チャットに出してから修正、はしない)。
186
+
187
+ ### voice 解決への接続
188
+
189
+ 原稿が確定したら、話者 = アバターの `voice` 解決を行う。手順は
190
+ [skills/generate-narration/avatar-voice.md](../generate-narration/avatar-voice.md) に従う。
191
+ `edit.json` 側は既存契約のまま変更しない — narration provenance の `voice` にアバターの
192
+ `voice.ref`(`speaker:3(...)` / `profile:owner-ja` 等、narration-tts 契約と同型の参照文字列)が
193
+ そのまま入るだけであり、新しいフィールドは発明しない。
194
+
195
+ ## VOICEVOX プリセット提案 + 登録(S2 新設)
196
+
197
+ アバター挿入を求められた工程で、L0 走査(§1)の結果**登録済みアバターが 0 体**(または
198
+ `voice` を持つアバターが 0 体)だったとき、決め打ちのプリセット 2 体を「こういうのもあるよ」と
199
+ 提案する(内部契約 §1・オーナー裁定「同梱はしない。あるよっていうだけ」)。
200
+
201
+ ### 前提条件
202
+
203
+ 提案するのは **VOICEVOX doctor が `ok` のときだけ**(`skills/manage-connections/bin/doctor.mjs`
204
+ の `voicevox` チェック。narration-tts 契約・[engines.md](../generate-narration/engines.md) の
205
+ 規律と同じ — 動かせないレーンを選択肢として見せない)。doctor が `ok` でなければ、この提案自体を
206
+ 省略する(他の挿入判断は通常どおり進める)。
207
+
208
+ ### 提案カード(2 体固定)
209
+
210
+ | id | display_name | 性別 | speaker(VOICEVOX ノーマル) | 出典・クレジット条件 |
211
+ |---|---|---|---|---|
212
+ | `zundamon` | ずんだもん | 男の子 | id 3 | [zunko.jp 音源利用規約](https://zunko.jp/con_ongen_kiyaku.html)。クレジット「VOICEVOX:ずんだもん」表記が必要(無表記商用は 1 キャラ 40 万円+税) |
213
+ | `shikoku-metan` | 四国めたん | 女性 | id 2 | 同上規約(同一プロジェクト配下・同一条件)。クレジット「VOICEVOX:四国めたん」表記が必要 |
214
+
215
+ 提示文の型(チャットで示す。「こういうのもあるよ」の温度感を保ち、選択を強制しない):
216
+
217
+ ```
218
+ こういうのもあるよ: VOICEVOX の既製声プリセットが 2 体あります(ゼロ円・ローカル・数秒)。
219
+ - ずんだもん(男の子・id 3) — 出典/規約: zunko.jp(クレジット「VOICEVOX:ずんだもん」表記必須)
220
+ - 四国めたん(女性・id 2) — 出典/規約: zunko.jp(クレジット「VOICEVOX:四国めたん」表記必須)
221
+ 選びますか?(選ばなくても続行できます)
222
+ ```
223
+
224
+ ### 登録(選ばれたときのみ)
225
+
226
+ 1. `~/.akari/avatars/<id>/` を新規作成する(個人スコープ。公開 `catalog/avatars/` には置かない
227
+ — third_party でも本タスクでは個人スコープ登録のみを扱う)
228
+ 2. `avatar.json` を作る:
229
+ - `rights`: `{"subject": "third_party", "consent": "terms:https://zunko.jp/con_ongen_kiyaku.html", "credit_required": true, "distribution": "private"}`
230
+ - `voice`: `{"lane": "voicevox", "ref": "speaker:<id>(<名前>/ノーマル)", "credit": "VOICEVOX:<名前>"}`
231
+ - `renditions`: `[]`(voice-only。S2 の schema 緩和 §該当 — 契約
232
+ [docs/contract-2026-07-26-avatar-registry-v0.md](../../docs/contract-2026-07-26-avatar-registry-v0.md) §13)
233
+ - `default_rendition`: `null`
234
+ 3. `AVATAR.md` を作る: 公式キャラ設定を出典 URL つきで引用し、**創作で盛らない**(性格・特徴は
235
+ 引用のまま。口調の細部など出典で確認できない項目は「一次情報未確認・オーナー確認事項」と
236
+ 明記する)。加えて、**人選そのものが「オーナー追認待ちの仮採用」であることを明記する
237
+ 1 行注記**を入れる
238
+ 4. `voice/voice.json` を作る: `lane: "voicevox"`, `speaker id`, `credit` を記録する(`avatar.json`
239
+ の `voice` と同内容。L2 の詳細版)
240
+ 5. 登録後、`validate-avatar.mjs ~/.akari/avatars/<id>` を実行し **PASS** を確認する
241
+ 6. `~/.akari/avatars/INDEX.md`(L0)に 1 行カードを追記する