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,192 @@
1
+ # 編集判断 — 分析レポートを読み、方針をチャットで決める
2
+
3
+ > **2026-07-22 改訂(縮退)**: 本スキルが固定 6 章の編集判断レポート(`editing-report.html` +
4
+ > 決定カード)を自ら生成する役割は退いた。オーナー裁定(2026-07-22)「正式なレポート文書として
5
+ > 残るのは分析レポートのみ。方向性の引き出しは完全にチャットへ」の帰結であり、事実 + 素材の
6
+ > 読みは [analyze-project](../analyze-project/SKILL.md) の分析レポート(読み取り専用・
7
+ > 決定 UI なし)が担う。edit-plan はその分析レポートを一次証拠として読み、方針・素材計画・
8
+ > 実行の各判断をチャットで提示して人間の明示承認を得る側になった。
9
+ >
10
+ > 変わらないもの: **decision_log の記録慣行**([decision_log](#decision_log) 節。置き場所だけ
11
+ > `decision-log.md` という独立ファイルへ変更)、**カット判断一覧・素材計画の三択という実務手順**
12
+ > ([カット判断一覧](#カット判断一覧)・[素材計画](#素材計画)節)、**3 段階チェックポイント**
13
+ > ([approvals-and-generation.md](approvals-and-generation.md))。変わったのは「これらを 1 つの
14
+ > HTML レポートへ焼き込むか、チャットで提示するか」という提示形式だけであり、記録義務・
15
+ > 根拠提示・承認ゲートの厳格さは緩めていない。
16
+
17
+ ## 目次
18
+
19
+ - [分析レポートを読む](#分析レポートを読む)
20
+ - [方針をチャットで決める](#方針をチャットで決める)
21
+ - [サムネイル案](#サムネイル案)
22
+ - [カット判断一覧](#カット判断一覧)
23
+ - [素材計画](#素材計画)
24
+ - [decision_log](#decision_log)
25
+ - [汎用カード機構(他スキルが参照する仕様)](#汎用カード機構他スキルが参照する仕様)
26
+ - [自己完結 HTML を作る場合の安全性](#自己完結-html-を作る場合の安全性)
27
+ - [よくある間違い](#よくある間違い)
28
+
29
+ ## 分析レポートを読む
30
+
31
+ [analyze-project](../analyze-project/SKILL.md) が作る `analysis-report.html`
32
+ (`interpretation.json` + 各素材の `analysis.json` から生成される読み取り専用レポート)を
33
+ 一次証拠として読む。レポートが無い、または対象素材が反映されていない場合は、先に
34
+ analyze-project を実行するよう促す(analyze-project 自身は edit-plan の一部ではないため、
35
+ 別スキルとして呼び出す)。
36
+
37
+ 分析レポートが持つもの(事実 + 素材の読み + 客観的関係 + 取材台帳 + 来歴)はそのまま証拠として
38
+ 引用してよい。分析レポートに**構成案(arc)は表示されない**(`interpretation.json` の
39
+ データとしては存在するが、対話フェーズでの提案の種として意図的に非表示 — analyze-project の
40
+ 設計)。編集方針・構成の組み立ては、この節以降で edit-plan がチャット上で行う。
41
+
42
+ ## 方針をチャットで決める
43
+
44
+ 方針(サムネイル案・カット強度・字幕方針・章立て採否・オープニングフック)は、分析レポートの
45
+ 根拠を踏まえて **推奨案 + 代替案 + 各案の利点/欠点/失うもの + 推奨理由** をチャットで提示し、
46
+ 人間の明示回答を得る。「どうしますか」と選択を丸投げする聞き方はしない(推奨を示した上で
47
+ 承認・修正・却下を求める)。
48
+
49
+ カードに載せていた**決定レベル / 操作レベルの線引きは変えない**: word 単位のカット採否や
50
+ 字幕セグメントの一覧はチャットにもレポートにも出さない。それらはアプリ(ビューワー)側の
51
+ 領分であり、この線引きは
52
+ [notes-2026-07-14](../../docs/notes-2026-07-14-captions-and-cut-editing.md) 追記部の不変条項。
53
+
54
+ チャットでの提示 → 回答は [approvals-and-generation.md](approvals-and-generation.md) の
55
+ Checkpoint 1(方針)として運用し、確定内容を `decision-log.md`([decision_log](#decision_log) 節の慣行)へ追記する。
56
+
57
+ ## サムネイル案
58
+
59
+ 3 経路(実フレーム / Codex 生成 / 混成)の候補画像を作り、チャットで比較提示する。
60
+
61
+ - **経路 A**: 視認済み実フレーム + [thumbnail authoring](../overlay-authoring/thumbnail.md) に従う HTML 文字組。source と時刻を記す。
62
+ - **経路 B**: Codex 画像生成。手、prompt、生成日時を記す。
63
+ - **混成**: B で背景を作り、A の HTML 文字組で日本語タイトルを載せる。両工程の provenance を分ける。
64
+
65
+ 可能なら 3 経路を 1 案以上ずつ比較する。経路 B または混成が利用不能でも架空画像を置かず、複数の A 案を提示して利用不能理由を記す。この `3` は M5 契約の 2 経路 + 混成から導く比較数で、プラットフォームの成功閾値ではない。
66
+
67
+ 上位タスクの指示で経路 A/B/混成の一部にしかスコープが与えられていない場合は、**未実施**と**利用不能**を区別して記録する。「利用不能」は経路を試みたが実行できなかった場合に使い、「未実施(スコープ外)」は上位タスクの指示によって最初からその経路を対象外にした場合に使う。両者を区別しないと、後続工程が「生成を試みて失敗した」のか「そもそも指示されていない」のかを判別できない。
68
+
69
+ 対象外の経路は、チャット提示でも比較の枠自体は残したまま架空画像を置かず、`未実施(スコープ外: <上位タスクが指定した範囲の要約>)` の 1 行に置き換える。`decision-log.md` には `(thumbnail, route-a)` / `(thumbnail, route-b)` / `(thumbnail, route-mixed)` のうち対象外の経路をキーに、決定を `未実施(スコープ外)`、理由に上位タスクの指示文またはその要約を記録する。
70
+
71
+ 画像生成の前には [approvals-and-generation.md](approvals-and-generation.md) の宣言を行う。
72
+
73
+ ## カット判断一覧
74
+
75
+ 各行に素材 ID、source の `start/end`、`keep` または `drop`、根拠 event、根拠 anchor、理由を書く。keep range は source ごとに昇順・非重複にする。カット後 timeline 時刻と source 時刻を混ぜない。ここに並ぶのは決定レベルの keep/drop であり、word 単位の採否はアプリ側で操作する。
76
+
77
+ この一覧はチャットでの提示に使うと同時に、`edit.json.cuts` を組み立てる直接の一次証拠になる。`decision-log.md` の `cut` category にまとめて記録する(1 行 1 区間、または要約 + 詳細は生成物として別途保存してもよい)。トレーラー・オープニングフックなど本編と別に切り出す**切り出し・先出しクリップの `in/out` は、見せ場スコア位置の機械窓のままにせず、クリップ内発話へスナップして呼吸 0.5s を残す**(発話スナップの規則は [execution.md](execution.md) §2)。
78
+
79
+ ## 素材計画
80
+
81
+ 全体枠とシーン枠を分ける。
82
+
83
+ - **全体**: BGM、字幕(全文字幕の方針)。目的、入り・抜け、ライセンスまたは生成可否を扱う。
84
+ - **シーン単位**: SFX、B ロール、テロップスタイル、特殊表現。対象 scene と時刻を付ける。
85
+
86
+ **字幕枠は方針レベルだけを扱う**(セグメント単位の内容一覧はチャットにもレポートにも載せない。確認・修正はアプリの字幕リストと contenteditable で行う)。字幕枠の方針としてチャットで提示・決定する事項:
87
+
88
+ - 付ける / 付けない / 選択的(重要箇所のみ)の別と理由
89
+ - スタイル(配置・行数・1 行文字数目安・地と文字色。telop.md の字幕原則に従う)
90
+ - **カットとの従属関係**: 字幕はカット後タイムラインに従属し、カットで除去された発話は字幕ごと消える(字幕を理由にカットを変えない。変えたい場合はカット判断の修正として扱う)
91
+ - 長文の分割・時間按分の規則(word タイムスタンプがある場合はそれを優先)。**表示区間は実発話区間に一致させ、segment 境界を敷き詰めない**(隙間の原則。実発話が終われば字幕も終わる。区間の作り方は [execution.md](execution.md) §4)
92
+ - 修正の運用: ASR 生テキストの誤りはアプリ内で直す前提(将来のエージェント整え機能はスコープ外なら明記)
93
+ - カラオケ表示・強調ポップの採否(既定は不使用)
94
+
95
+ 各枠は次の三択から **1 つ**を明記する。この `3` は M5 契約の判断肢であり、運用上の推測値ではない。
96
+
97
+ 1. **あれば提案**: 実際のライブラリ検索結果、権利条件、プレビュー画像または試聴参照を示す。検索は全スコープ層を近い順(プロジェクト `assets/` → 上位ディレクトリの `.akari/assets/` → `~/.akari/assets/` → 製品リポ `assets/` → `catalog/`)に行い、提案にはどの層のヒットかを明記する。同一 id は近い層を採る。
98
+ 2. **なければ生成**: prompt、生成する手、生成済み静止プレビュー、provenance を示す。動画 B ロールはまず静止画だけを作る。
99
+ 3. **使わない**: 無理に埋めず、非採用理由を示す。
100
+
101
+ 候補が見つからないことを「あれば提案」と記録しない。BGM と SFX は `audio`、ナレーションは `audio.narration[]`、動画 B ロールは v1 の `sources[]` + `cuts[].src` へ格納できる([execution.md](execution.md) §1)。公開契約のどのフィールドでも表せない演出だけ、計画上の採用と `edit.json` への格納可否を分けて提示する。単一中間マスターへ焼き込む場合は実行承認の対象にする。
102
+
103
+ ナレーションの話者がアバターのときは、原稿を書く前に [avatar-resolution.md](avatar-resolution.md#台本生成への接続persona-注入s2-具体化) の persona 注入手順(ペルソナ要約の反映・NG 遵守)に従う。
104
+
105
+ このチャット提示は Checkpoint 2(素材計画)として運用し([approvals-and-generation.md](approvals-and-generation.md))、確定内容を `decision-log.md` の `material` category に記録する。
106
+
107
+ ## decision_log
108
+
109
+ `(category, subject)` を判断対象のキーとして、時刻順に追記する。各行に ISO 8601 日時、category、subject、決定、理由、決定者、関連 checkpoint を持たせる。同じキーの方針が変わっても過去行を直さず、新しい行を追加して以前の決定を参照する。
110
+
111
+ **置き場所**(2026-07-22 改訂): 固定 6 章 HTML の 1 節として埋め込む運用は retired。プロジェクト直下の独立ファイル `decision-log.md` に追記する([analyze-project の decision-record.md](../analyze-project/decision-record.md) と共有する単一 SSOT — analyze-project の 2 パス目判断・取材 Q&A と、edit-plan の承認・生成判断が同じファイルへ時系列に積み重なる)。フィールド構成・追記専用の規律はここで変えていない。
112
+
113
+ 次を決定として記録する。
114
+
115
+ - 方針、素材計画、実行の承認・却下・修正要求
116
+ - 生成手の選択と fallback
117
+ - `使わない` を含む明示的な非採用
118
+ - source 構成の選択(v1 マルチソース / v0 単一 source / 中間マスターへ conform)
119
+ - overlay-authoring 不在時の CLAUDE.md fallback
120
+ - 上位タスクの指示によるサムネ経路 A/B/混成の未実施(スコープ限定)
121
+ - チャットでの方針確定内容(推奨どおりか、修正が入ったか。差分を記録する)
122
+
123
+ ## 汎用カード機構(他スキルが参照する仕様)
124
+
125
+ 以下は選択肢式の質問対話に使う汎用カード機構の仕様である。**edit-plan は自身の方針決定に
126
+ この機構を使わない**(方針はチャットで決める。上の各節を参照)。ただし
127
+ [research-plan](../research-plan/SKILL.md) の候補選定カードや [plan-json.md](plan-json.md) の
128
+ 質問対話(素材ゼロからの企画起点フロー)はこの機構をそのまま使い続けるため、仕様は SSOT として
129
+ 維持する。
130
+
131
+ ### カードの data 属性
132
+
133
+ カードの DOM は [report-template.html](../../packages/decision-cards/report-template.html) に従う。ランタイム(ヘルパーが注入する JS)が次の data 属性だけを解釈して UI 化する。カード種別のハードコードはしない。
134
+
135
+ | 属性 | 置く要素 | 意味 |
136
+ |---|---|---|
137
+ | `data-card="<id>"` | カードコンテナ | 1 決定。id は decisions[].id と一致 |
138
+ | `data-question="<文>"` | カードコンテナ | 質問文(要約画面で使う) |
139
+ | `data-option="<key>"` | 選択肢要素 | 単選の選択肢 |
140
+ | `data-default="true"` | 選択肢要素 | AI 推奨(初期選択)。カード内に必ず 1 個 |
141
+ | `data-check="<key>"` | チェック要素 | 追加の複数選択(任意) |
142
+ | `data-note` | textarea 等 | 自由記入(任意) |
143
+ | `data-action="accept-all"` | ボタン | 全カード既定値のまま要約画面へ |
144
+ | `data-action="commit"` | ボタン | 確定 → completedAt 記入 |
145
+ | `data-view="summary"` | コンテナ | 確定内容の要約画面 |
146
+
147
+ - 上記以外の見た目・構成は自由 HTML。エンジンが解釈するのは data 属性だけ。
148
+ - 根拠・証拠・詳細は `<details>` の折りたたみに置く。カード表面には質問と選択肢だけを残す。
149
+
150
+ ### decisions.json 雛形
151
+
152
+ カードを使うスキルは、レポートと対になる `<レポートパス>.decisions.json` の雛形を併せて書く。雛形は全カードの `answer` に AI 推奨の既定値を入れ、`byDefault: true` / `answeredAt: null`、トップレベルの `completedAt: null` とする。
153
+
154
+ ```jsonc
155
+ {
156
+ "version": 0,
157
+ "report": "<レポートへの相対パス>",
158
+ "createdAt": "<ISO8601>",
159
+ "completedAt": null,
160
+ "decisions": [
161
+ { "id": "<data-card と一致>", "answer": { }, "byDefault": true, "answeredAt": null }
162
+ ]
163
+ }
164
+ ```
165
+
166
+ - `answer` の形はカード種別ごとに使用側スキルが宣言する(HTML と decisions 雛形が SSOT)。
167
+ - 人間の操作はヘルパーが `answer` / `byDefault: false` / `answeredAt` を更新する。雛形を上書きせず、ラウンドごとにレポート + decisions の組を増やす。
168
+ - decisions.json が無い・破損している場合、使用側スキルはチャットの明示承認で代替する。
169
+
170
+ ### おまかせと要約ビュー
171
+
172
+ 「全部おまかせ」ボタン(`data-action="accept-all"`)と要約ビュー(`data-view="summary"`)は必須。おまかせでも即開始は禁止。必ず要約 1 画面を挟んでから確定する。確定(commit)でヘルパーが `completedAt` を記入し、使用側スキルはそれをもって進行してよい。
173
+
174
+ ## 自己完結 HTML を作る場合の安全性
175
+
176
+ edit-plan がサムネイル候補シートなど自己完結 HTML を作る場合は次を守る。
177
+
178
+ - CSS、画像、根拠 transcript を HTML 内へ入れ、外部 CSS、font、script、remote image を参照しない。
179
+ - 実フレームと生成画像は `data:image/...;base64,...` として埋め、意味のある `alt` を付ける。
180
+ - transcript、所見、タイトル、prompt、path を文脈に合わせてエスケープする。未検証 HTML、`javascript:` URL、event handler を挿入しない。
181
+ - 状態を色だけで表現せず、`未承認`、`承認`、`却下` を文字で表示する。
182
+
183
+ ## よくある間違い
184
+
185
+ - analyze-project の分析レポートを読まずに方針を組み立てる(根拠のない推奨案を作る)。
186
+ - ライブラリの実ヒットがないのにプレビューを捏造する。
187
+ - 生成画像へ prompt は残すが、手や日時を残さない。
188
+ - 最新判断で `decision-log.md` の過去行を上書きする。
189
+ - remote image を貼り、自己完結成果物に見せる。
190
+ - スコープ外で未実施の経路を「利用不能」と書き、試みて失敗したかのように見せる。
191
+ - word 単位のカット採否や字幕セグメント一覧をチャットに載せる(決定レベル/操作レベルの線引き違反)。
192
+ - 「どうしますか」と選択を丸投げし、推奨案・代替案・理由を示さない。
@@ -0,0 +1,108 @@
1
+ # 分析収集と統合ワークフロー
2
+
3
+ ## 原則
4
+
5
+ 素材ごとの観察と、素材横断の編集判断を分離する。各分析はその素材だけを扱い、統合エージェントだけがサムネイル、方向性、カット、素材計画を比較する。
6
+
7
+ ## 1. 入力と出力先を固定する
8
+
9
+ 入力として、素材パス、既存 `analysis.json`、希望する出力先を列挙する。出力先の指定がなければ、素材群の共通プロジェクトディレクトリ直下の `edit-plan/` を提案し、採用理由を完了報告に残す。別プロジェクトの既存レポートや `decision-log.md` を混ぜない。
10
+
11
+ 標準出力は次の形とする(2026-07-22 改訂: `editing-report.html` は生成しない。分析レポートは
12
+ [analyze-project](../analyze-project/SKILL.md) がプロジェクト直下に作る `analysis-report.html` を
13
+ 指し、edit-plan はそれを読む側になる)。
14
+
15
+ ```text
16
+ <plan-dir>/
17
+ ├── decision-log.md # analyze-project と共有・追記専用(判断記録)
18
+ ├── edit.json # 実行承認後だけ
19
+ ├── overlays/ # 実行承認後だけ
20
+ └── generated/ # 生成した静止画等の原本(provenance 込み)
21
+ ```
22
+
23
+ 生成物の原本と provenance は再検証できるよう残す。方針・素材計画の証拠は analyze-project の
24
+ 分析レポート(読み取り専用・自己完結 HTML)を参照する。
25
+
26
+ ## 2. 素材の有無で分岐する
27
+
28
+ ### 録画素材がある場合
29
+
30
+ 素材ごとに次の順で既存分析を探す。
31
+
32
+ 1. ユーザーが明示した `analysis.json`
33
+ 2. `<source-dir>/analysis/<source-stem>/analysis.json`
34
+ 3. 素材専用ディレクトリであると確認できる場合だけ `<source-dir>/analysis/analysis.json`
35
+
36
+ 相対 `source`、`keyframes[].path`、`tracks.person_matte` は、それぞれの `analysis.json` 所在ディレクトリを基準に解決する。パス文字列を分析レポートや `decision-log.md` の場所から解決し直さない。
37
+
38
+ 有効な分析がない素材は、1 素材 = 1 サブエージェントとして `analyze-footage` を実行する。複数素材なら、利用可能なサブエージェントへ同時に割り当ててから全件を待つ。各依頼には source の絶対パス、リポジトリルート、[analyze-footage](../analyze-footage/SKILL.md) を渡し、他素材や共有成果物を編集させない。逐次実行へ変えた場合は理由を報告する。
39
+
40
+ 既存分析を再利用するときも `source` が対象素材を指すことを確認する。新旧判定に必要な hash や解析日時は v0 Schema にないため、鮮度を推測しない。素材が更新された疑いがあれば再分析するか、人間へ差分を示す。
41
+
42
+ ### 素材がゼロの場合
43
+
44
+ `analysis.json` を捏造しない。「リサーチ → 台本 → 生成計画」モードとし、録画素材がないこと・
45
+ 採用した根拠・台本の版をチャットで提示し、`decision-log.md` に記録する(analyze-project は
46
+ 素材の analysis.json を前提とするスキルであり、素材ゼロのこの分岐では使わない)。静止コンセプト
47
+ も同様にチャットで提示し、動画生成は承認工程まで保留する。生成後に複数クリップとなる場合も、
48
+ 実行時には [execution.md](execution.md) §1 の source 構成規則を適用する(複数クリップは v1 の `sources[]` + `cuts[].src` が第一選択肢)。
49
+
50
+ 方針決めは [plan-json.md](plan-json.md) の手順で行う: 選択肢式の質問対話で深掘り、確定した構成ビートと制約を `<plan-dir>/plan.json`(仮枠タイムライン。[contract-2026-07-20-plan-json-v0.md](../../docs/contract-2026-07-20-plan-json-v0.md))へ落としてからチャットでの方針提示に入る([report-guide.md](report-guide.md) 参照)。以降の提示は plan.json の slot id を根拠として参照する。
51
+
52
+ ## 3. 各 analysis.json を検証する
53
+
54
+ [analysis.schema.json](../../packages/schemas/analysis.schema.json) を Draft 2020-12 対応 validator で検証する。validator を得るための無断ネットワーク導入はしない。併せて次を確認する。
55
+
56
+ - `source` と全 keyframe path が解決できる。
57
+ - すべての区間で `end > start`、時刻が source duration 内である。
58
+ - face box の `x + width <= 1`、`y + height <= 1` が成立する。
59
+ - transcript、event、track の speaker ID が矛盾しない。
60
+ - `transcript: []` が「無発話」なのか「文字起こし未取得」なのか、分析エージェントの報告で区別できる。
61
+
62
+ 不正な分析を黙って修復して統合しない。再分析、当該素材の除外、根拠不足のまま限定利用、の得失を示し、人間の選択を `decision-log.md` に追記する。
63
+
64
+ ## 4. 素材横断の証拠索引を作る
65
+
66
+ 素材 ID、source path、duration、transcript 区間、keyframe、event を対応付ける表を作る。チャット提示や `decision-log.md` から参照できる安定した ID を割り当て、引用箇所を明確にする。
67
+
68
+ カット候補は source ごとに keep/drop と根拠 event を作る。この時点では `edit.json` を作らない。複数素材を 1 本のタイムラインへ並べる順序も、編集方針の承認対象にする。
69
+
70
+ ## 5. チェックポイントを進める
71
+
72
+ 段階の運びは変わらないが、各段階の証拠は「レポートを更新する」のではなく「analyze-project の
73
+ 分析レポートを読み、チャットで提示する」形に変わった([report-guide.md](report-guide.md) 参照)。
74
+
75
+ Checkpoint 1 の提示に着手する前に、[recipe.md](recipe.md) の recall 手順で
76
+ `~/.akari/recipes/`(`workflow: "edit"`)を確認する。見つかれば出所付きの推奨として添え、
77
+ 今回の方針提示を上書きしない(採用は人間の明示宣言があったときだけ)。
78
+
79
+ 1. サムネイル案・編集方針・カット案をチャットで提示し、Checkpoint 1(方針)で停止する。
80
+ 2. 承認された方針に沿って素材計画(BGM/字幕/SFX/B ロールの三択)と静止プレビューをチャットで
81
+ 提示し、Checkpoint 2(素材計画)で停止する。
82
+ 3. 出力仕様、source 構成の選択(v1 マルチソース / v0 単一 source / 中間マスターへ conform)、生成・conform・overlay の実行一覧を提示し、
83
+ Checkpoint 3(実行)で停止する。
84
+ 4. 承認後だけ `edit.json` と最終 overlay を作る。完了処理として [recipe.md](recipe.md) の
85
+ freeze 手順を確認し、そのプロジェクトでまだ申し出ていなければ一度だけ(offer-once)
86
+ レシピ化を人間に申し出る。
87
+
88
+ 各チェックポイントの承認内容・修正指示は `decision-log.md` へ追記する(既存行は変更・削除
89
+ せず、新しい行を末尾へ追加する)。カット判断一覧(素材 ID・source の start/end・keep/drop・
90
+ 根拠 event・理由)と素材計画の三択結果(あれば提案 / なければ生成 / 使わない)は、
91
+ `decision-log.md` の該当 category(`cut`/`material`)の下に一覧として記録し、`edit.json` 生成時
92
+ の一次証拠にする。
93
+
94
+ ## 6. 出力先の補足
95
+
96
+ ad-hoc な検証スクリプトや、統合判断のための一時的な比較・実験生成物は、プロジェクトルート
97
+ 直下や `<plan-dir>/` 直下に書かず、`.akari/work/` へ置く
98
+ ([project-structure-v0 契約](../../docs/contract-2026-07-25-project-structure-v0.md) §1)。
99
+ `decision-log.md`・`edit.json`・`overlays/`・`generated/` 等、正式な生成物の出力先(§1)は変わらない。
100
+
101
+ ## よくある間違い
102
+
103
+ - 複数素材を 1 サブエージェントへ渡し、素材ごとの証拠境界を失う。
104
+ - `analysis.json` から見た相対パスを、分析レポートや `decision-log.md` から見た相対パスとして開く。
105
+ - `transcript: []` を無音と断定する。
106
+ - 素材ゼロなのに架空の分析 event を作る。
107
+ - チャットでの提示より先に `edit.json` や最終 overlay を作る。
108
+ - analyze-project の分析レポートを読まずに方針を組み立てる(根拠のない推奨案を作る)。
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: generate-narration
3
+ description: 原稿テキストから VOICEVOX(ローカル・ゼロ円の既製声)または fal Qwen3-TTS(自声クローン)でナレーション音声を生成し、edit.json の audio.narration[] へ書き込むスキル。ナレーションを作ってほしいと頼まれたとき、仮ナレ(下書き試聴)が欲しいとき、声プロファイルを新規に作りたいとき、または既存のナレーションをエンジンや声で差し替えたいときに使う。
4
+ ---
5
+
6
+ # ナレーション音声を生成する
7
+
8
+ > **Language**: Respond in the user's language — 対話・質問・承認確認・レポートはユーザーの使用言語に合わせる(例: 英語で話しかけられたら英語で応答する)。
9
+
10
+ # FORBIDDEN 級ハードルール
11
+
12
+ 次の規則は詳細手順より常に優先する。
13
+
14
+ 1. **人声クローンはプロファイル所有者本人の声のみ。** consent 記録が無いプロファイルは使用しない
15
+ 2. **参照音声を外部送信する前のローカル whisper 照合ガード必須。** スキップはオーナー明示指示時のみ、
16
+ かつその旨を記録する
17
+ 3. **生成には読み原稿(かな化)を使い、script / reading を両方 edit.json に記録する**
18
+ 4. **有償レーン(fal)は費用宣言 → 明示承認後のみ実行する。** ElevenLabs は凍結中 — 選択肢として
19
+ 提示すること自体をしない
20
+ 5. **API キー直叩き禁止・manage-connections 経由のみ。** doctor が `ok` でないレーンは提示しない
21
+ 6. **provenance を毎回記録する。** VOICEVOX 系の声は credit 欄(例「VOICEVOX:ずんだもん」)が必須
22
+
23
+ ## 実行順と目次
24
+
25
+ 1. [engines.md](engines.md) を読み、エンジンアダプタ(voicevox / fal-qwen3)の使い方、選び方、
26
+ 仮ナレ→本番の二段運用を確認する。ナレーション音声の生成そのものはここで行う。
27
+ 2. 声プロファイルがまだ無く自声クローンを使いたい場合だけ [voice-profile-setup.md](voice-profile-setup.md)
28
+ を読み、原稿提示 → 録音 → whisper 照合ガード → fal クローン → 保存 → 耳検収の手順を踏む。
29
+ 3. 表示原稿を読み原稿(かな化)に変換する前処理は [reading-text.md](reading-text.md) を読み、
30
+ 規約に沿って行う。
31
+ 4. 話者がアバターのときは [avatar-voice.md](avatar-voice.md) を読み、`voice/voice.json` の `lane`/`ref` を上記エンジンへ解決する。
32
+
33
+ 現在の工程に対応するファイルだけを読み、先読みしない。
34
+
35
+ ## 根拠
36
+
37
+ - データ契約: [docs/contract-2026-07-20-edit-json-v1-narration.md](../../docs/contract-2026-07-20-edit-json-v1-narration.md)
38
+ - 音声契約(BGM/SFX・ducking の前提): [docs/contract-2026-07-14-edit-json-v1-audio.md](../../docs/contract-2026-07-14-edit-json-v1-audio.md)
39
+ - 接続・doctor・費用承認の統治: [../manage-connections/SKILL.md](../manage-connections/SKILL.md)(編集はしない)
40
+ - クラウド送信の模範実装: [../analyze-footage/bin/transcribe-cloud.mjs](../analyze-footage/bin/transcribe-cloud.mjs)
@@ -0,0 +1,18 @@
1
+ # 朗読原稿 v1(声プロファイル setup 用)
2
+
3
+ - バージョン: v1
4
+ - 文字数: 約 330 字
5
+ - 想定尺: 45〜60 秒
6
+ - 用途: 声プロファイル作成時の参照録音(`reference_text` と完全一致させるため、この本文を人間が改変しない)
7
+
8
+ この本文は正文であり、書き換えない。訂正が必要な場合は v2 として新しいファイルを追加し、
9
+ `voice-profile-setup.md` から参照するバージョンを切り替える(プロファイルの `meta.json` に
10
+ `script_version` を記録し、どのバージョンで作られたプロファイルかを追跡する)。
11
+
12
+ ## 本文(v1)
13
+
14
+ こんにちは。これは、AKARI Video のナレーション用ボイスプロファイルを作るための録音です。普段の話し方より、少しだけ丁寧に、ゆっくり読み上げてください。
15
+ 朝の光が窓から差し込み、街はゆっくりと動き出します。コーヒーを一杯淹れて、今日の計画を立てましょう。
16
+ 新しい技術は、私たちの毎日を静かに変えていきます。動画の編集も、資料の作成も、これからはもっと自由になります。
17
+ 数字の読み方も確認します。1、2、3、4、5。2026年7月20日、気温は28度、湿度は65パーセント。
18
+ 最後に、いつもの調子でひとこと。今日もいい一日にしましょう。以上で録音は終わりです。ありがとうございました。
@@ -0,0 +1,54 @@
1
+ # アバターの声を narration-tts レーンへ自動解決する(S2 新設)
2
+
3
+ 台本の話者がアバター([edit-plan/avatar-resolution.md](../edit-plan/avatar-resolution.md) で
4
+ 解決済み)のとき、そのアバターの `voice/voice.json`(L2。このときだけ読む — 他のアバターの
5
+ `voice/` は読まない)を読み、`lane` / `ref` / `credit` を [engines.md](engines.md) の 3 レーンへ
6
+ そのまま渡す。**アバター専用の新しいエンジン・新しいフィールドは発明しない** — voice-tts
7
+ 契約の既存 3 レーンをアバターの登録値で呼び出すだけの薄い解決層である。
8
+
9
+ ## 解決手順
10
+
11
+ 1. `voice/voice.json`(無ければ `avatar.json` の `voice` オブジェクト。同内容)から
12
+ `lane` / `ref` / `credit` を読む
13
+ 2. `lane` に応じて engines.md のコマンドへ引数を組み立てる(下表)
14
+ 3. 生成後、`credit` が非 null なら [credit の転写](#credit-の転写) の手順で `provenance.credit`
15
+ に反映されていることを確認する
16
+ 4. `edit.json` のスキーマは変更しない — `audio.narration[].provenance.voice` にはアバターの
17
+ `voice.ref`(`speaker:3(ずんだもん/ノーマル)` / `profile:owner-ja` のような narration-tts
18
+ 契約と同型の参照文字列)がそのまま入るだけであり、アバター ID を指す新フィールドは追加しない
19
+
20
+ ## lane ごとの解決
21
+
22
+ | `voice.lane` | 解決先 | 承認ゲート | 備考 |
23
+ |---|---|---|---|
24
+ | `voicevox` | `--engine voicevox --speaker <ref から取り出した id>` | 不要(ゼロ円・宣言のみ。ハードルール 4 の対象外 — engines.md の voicevox アダプタと同じ) | `ref` の形式 `speaker:<id>(<名前>)` から先頭の整数を取り出して `--speaker` に渡す |
25
+ | `fal-clone` | `--engine fal-qwen3 --profile <ref から取り出した profile 名>` | **必要**(費用宣言 → 明示承認後のみ実行。ハードルール 4) | まず `--dry-run` で見積り費用を提示し、承認を得てから `--yes --apply` 相当を実行する。本人以外の声を無断で使わない(ハードルール 1 は generate-narration 本体が担保) |
26
+ | `recorded` | TTS 呼び出しなし | 該当なし | 人間が用意した音声ファイルをそのまま `audio.narration[].path` に置き、`provenance.provider: "human"` として記録する(generate-narration.mjs は使わない) |
27
+
28
+ `ref` の取り出し方(正規表現の目安):
29
+
30
+ - `voicevox`: `ref` が `speaker:3(ずんだもん/ノーマル)` の形なら `speaker:` の直後から次の `(` まで
31
+ の数字が `--speaker` の値
32
+ - `fal-clone`: `ref` が `profile:owner-ja` の形なら `profile:` の直後が `--profile` の値
33
+
34
+ ## credit の転写
35
+
36
+ `voice.credit`(非 null のとき)は narration の `provenance.credit` へ転写する。
37
+
38
+ - **`voicevox` レーン**: `generate-narration.mjs` は生成のたびに VOICEVOX エンジンへ `/speakers`
39
+ を問い合わせて話者名を解決し、`credit: "VOICEVOX:<話者名>"` を自動で `provenance` に埋める
40
+ ([engines.md](engines.md#voicevox-アダプタ))。通常はこの自動値がアバターの登録 `credit` と
41
+ 一致する(同じ speaker id を指しているため)。**一致することを確認し**、値が空でないことだけ
42
+ 検査すればよい(手で書き直す必要はない)
43
+ - **`fal-clone` レーン**: `generate-narration.mjs` の fal 経路は `credit` を `provenance` に
44
+ 自動で埋めない(自声クローンには通常クレジット義務が無いため)。もしアバターの `voice.credit`
45
+ が非 null のまま fal-clone を使うケースがあれば(例外的な third-party クローン)、生成後の
46
+ `entry.provenance.credit` にアバターの `voice.credit` を手動で追記してから `edit.json` へ
47
+ 反映し、`validate-edit.mjs` を再実行する
48
+
49
+ ## 出力の確認
50
+
51
+ `--apply` を付けない場合、標準出力の `entry` JSON(`provenance` 含む)で `voice` / `credit` が
52
+ アバターの登録値と一致することを確認できる。`--apply` する場合は
53
+ [approvals-and-generation.md](../edit-plan/approvals-and-generation.md) のチェックポイント運用に
54
+ 従う。