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.
- package/LICENSE +21 -0
- package/README.md +81 -0
- package/bin/akari.mjs +14 -0
- package/package.json +42 -0
- package/src/cli.mjs +140 -0
- package/src/messages.mjs +100 -0
- package/src/path-lookup.mjs +47 -0
- package/src/project-state.mjs +25 -0
- package/src/repo-assets.mjs +59 -0
- package/src/task-labels.mjs +30 -0
- package/src/update-check.mjs +189 -0
- package/vendor/packages/project-scaffold/package.json +11 -0
- package/vendor/packages/project-scaffold/src/index.mjs +523 -0
- package/vendor/packages/project-scaffold/test/create-project.test.mjs +81 -0
- package/vendor/packages/project-scaffold/test/skill-adapter-link.test.mjs +204 -0
- package/vendor/packages/schemas/analysis.schema.json +475 -0
- package/vendor/packages/schemas/asset-meta.schema.json +225 -0
- package/vendor/packages/schemas/avatar-rendition.schema.json +65 -0
- package/vendor/packages/schemas/avatar.schema.json +178 -0
- package/vendor/packages/schemas/bin/validate-asset.mjs +597 -0
- package/vendor/packages/schemas/bin/validate-avatar.mjs +486 -0
- package/vendor/packages/schemas/bin/validate-captions.mjs +316 -0
- package/vendor/packages/schemas/bin/validate-connections.mjs +295 -0
- package/vendor/packages/schemas/bin/validate-edit.mjs +766 -0
- package/vendor/packages/schemas/bin/validate-intake.mjs +185 -0
- package/vendor/packages/schemas/bin/validate-interpretation.mjs +515 -0
- package/vendor/packages/schemas/bin/validate-plan-comments.mjs +170 -0
- package/vendor/packages/schemas/bin/validate-plan.mjs +365 -0
- package/vendor/packages/schemas/bin/validate-recipe.mjs +267 -0
- package/vendor/packages/schemas/bin/validate-research-plan.mjs +510 -0
- package/vendor/packages/schemas/bin/validate-review.mjs +427 -0
- package/vendor/packages/schemas/captions.schema.json +141 -0
- package/vendor/packages/schemas/connections.schema.json +153 -0
- package/vendor/packages/schemas/edit.schema.json +437 -0
- package/vendor/packages/schemas/examples/analysis-person-matte-valid/analysis.json +18 -0
- package/vendor/packages/schemas/examples/captions-text-style-background-mode-invalid/captions.json +18 -0
- package/vendor/packages/schemas/examples/captions-text-style-color-non-hex-invalid/captions.json +14 -0
- package/vendor/packages/schemas/examples/captions-text-style-default-only-valid/captions.json +27 -0
- package/vendor/packages/schemas/examples/captions-text-style-omitted-valid/captions.json +11 -0
- package/vendor/packages/schemas/examples/captions-text-style-opacity-out-of-range-invalid/captions.json +8 -0
- package/vendor/packages/schemas/examples/captions-text-style-record-override-valid/captions.json +27 -0
- package/vendor/packages/schemas/examples/captions-text-style-size-non-positive-invalid/captions.json +14 -0
- package/vendor/packages/schemas/examples/captions-text-style-zone-invalid/captions.json +16 -0
- package/vendor/packages/schemas/examples/connections-v0-invalid-auth/connections.json +32 -0
- package/vendor/packages/schemas/examples/connections-v0-memory-valid/connections.json +42 -0
- package/vendor/packages/schemas/examples/edit-beats-duplicate-id/edit.json +11 -0
- package/vendor/packages/schemas/examples/edit-beats-invalid-id/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-beats-missing-kind/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-beats-strength-out-of-range/edit.json +11 -0
- package/vendor/packages/schemas/examples/edit-beats-v0-src-present/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-beats-v0-valid/edit.json +29 -0
- package/vendor/packages/schemas/examples/edit-beats-v1-src-missing-reference/edit.json +14 -0
- package/vendor/packages/schemas/examples/edit-beats-v1-valid/edit.json +37 -0
- package/vendor/packages/schemas/examples/edit-bgm-ducking-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-bgm-fade-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-bgm-fade-valid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-bgm-in-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-bgm-in-valid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-bgm-missing-path/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-bgm-null-valid/edit.json +11 -0
- package/vendor/packages/schemas/examples/edit-bgm-sfx-gain-out-of-range/edit.json +11 -0
- package/vendor/packages/schemas/examples/edit-bgm-sfx-valid/edit.json +23 -0
- package/vendor/packages/schemas/examples/edit-chroma-key-invalid/edit.json +7 -0
- package/vendor/packages/schemas/examples/edit-cuts-at-negative-invalid/edit.json +7 -0
- package/vendor/packages/schemas/examples/edit-cuts-at-track-valid/edit.json +20 -0
- package/vendor/packages/schemas/examples/edit-cuts-opacity-out-of-range-invalid/edit.json +16 -0
- package/vendor/packages/schemas/examples/edit-cuts-track-invalid/edit.json +7 -0
- package/vendor/packages/schemas/examples/edit-cuts-transform-full-valid/edit.json +17 -0
- package/vendor/packages/schemas/examples/edit-cuts-transform-omitted-valid/edit.json +9 -0
- package/vendor/packages/schemas/examples/edit-cuts-transform-partial-valid/edit.json +16 -0
- package/vendor/packages/schemas/examples/edit-cuts-transform-rotate-invalid/edit.json +16 -0
- package/vendor/packages/schemas/examples/edit-cuts-transform-scale-invalid/edit.json +16 -0
- package/vendor/packages/schemas/examples/edit-cuts-transform-unknown-key-invalid/edit.json +16 -0
- package/vendor/packages/schemas/examples/edit-direction-intensity-negative/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-direction-intensity-not-integer/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-direction-intensity-out-of-range/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-direction-missing-preset/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-direction-overrides-array/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-direction-preset-only/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-direction-valid/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-empty-word/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-invalid-id/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-missing-emotion/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-range-invalid/edit.json +11 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-v0-src-present/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-v0-valid/edit.json +32 -0
- package/vendor/packages/schemas/examples/edit-emphasis-words-v1-valid/edit.json +39 -0
- package/vendor/packages/schemas/examples/edit-layers-invalid-bad-blend/edit.json +17 -0
- package/vendor/packages/schemas/examples/edit-layers-invalid-chroma-key-on-baked/edit.json +17 -0
- package/vendor/packages/schemas/examples/edit-layers-invalid-duplicate-id/edit.json +11 -0
- package/vendor/packages/schemas/examples/edit-layers-track-invalid/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-layers-valid/edit.json +31 -0
- package/vendor/packages/schemas/examples/edit-look-invalid/edit.json +7 -0
- package/vendor/packages/schemas/examples/edit-master-invalid/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-narration-gain-out-of-range/edit.json +18 -0
- package/vendor/packages/schemas/examples/edit-narration-invalid-id/edit.json +17 -0
- package/vendor/packages/schemas/examples/edit-narration-missing-provenance/edit.json +16 -0
- package/vendor/packages/schemas/examples/edit-narration-valid/edit.json +36 -0
- package/vendor/packages/schemas/examples/edit-narration-voicevox-missing-credit/edit.json +20 -0
- package/vendor/packages/schemas/examples/edit-render-basics-valid/edit.json +22 -0
- package/vendor/packages/schemas/examples/edit-sfx-in-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-sfx-in-out-valid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-sfx-out-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-sfx-out-type-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-sfx-t-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-sfx-track-invalid/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-speed-invalid/edit.json +7 -0
- package/vendor/packages/schemas/examples/edit-timeline-declared-valid/edit.json +14 -0
- package/vendor/packages/schemas/examples/edit-timeline-duplicate-id-invalid/edit.json +13 -0
- package/vendor/packages/schemas/examples/edit-timeline-interleaved-valid/edit.json +22 -0
- package/vendor/packages/schemas/examples/edit-timeline-omitted-valid/edit.json +7 -0
- package/vendor/packages/schemas/examples/edit-timeline-ref-invalid/edit.json +13 -0
- package/vendor/packages/schemas/examples/edit-tracks-section-invalid/edit.json +8 -0
- package/vendor/packages/schemas/examples/edit-tracks-section-valid/edit.json +13 -0
- package/vendor/packages/schemas/examples/edit-transition-invalid/edit.json +10 -0
- package/vendor/packages/schemas/examples/edit-v0-sample/edit.json +27 -0
- package/vendor/packages/schemas/examples/edit-v0-sample/overlays/cap-a.html +17 -0
- package/vendor/packages/schemas/examples/edit-v0-sample/overlays/cap-b.html +17 -0
- package/vendor/packages/schemas/examples/edit-v1-bgm-sfx-valid/edit.json +13 -0
- package/vendor/packages/schemas/examples/edit-v1-sample/edit.json +14 -0
- package/vendor/packages/schemas/examples/plan-comments-v0-sample/plan-comments.json +19 -0
- package/vendor/packages/schemas/examples/plan-v0-sample/plan.json +39 -0
- package/vendor/packages/schemas/examples/recipe-v0-sample/product-demo-quick-cuts.json +23 -0
- package/vendor/packages/schemas/examples/review-v1-sample/review.json +11 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/AVATAR.md +159 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-avatar-md-136-lines/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-default-role/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-energy-out-of-range/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-asset/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/avatar.json +21 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-missing-rights/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-no-avatar-json/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-in-catalog/catalog/avatars/impostor/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/invalid-person-sellable/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/unsupported-version/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/avatar.json +22 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/AVATAR.md +30 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/avatar.json +23 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-bustup/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/happy.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/neutral-half.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/neutral-open.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/neutral.png +0 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-unknown-fields/renditions/2d-fullbody/rendition.json +18 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-voice-only/AVATAR.md +28 -0
- package/vendor/packages/schemas/fixtures/avatar/valid-voice-only/avatar.json +19 -0
- package/vendor/packages/schemas/fixtures/intake/invalid-duplicate-task/intake.json +8 -0
- package/vendor/packages/schemas/fixtures/intake/invalid-missing-submitted-at/intake.json +8 -0
- package/vendor/packages/schemas/fixtures/intake/invalid-target-exclusive/intake.json +8 -0
- package/vendor/packages/schemas/fixtures/intake/invalid-unknown-task/intake.json +8 -0
- package/vendor/packages/schemas/fixtures/intake/valid-draft/intake.json +8 -0
- package/vendor/packages/schemas/fixtures/intake/valid-submitted/intake.json +8 -0
- package/vendor/packages/schemas/fixtures/plan/invalid-bad-confidence-enum/plan.json +15 -0
- package/vendor/packages/schemas/fixtures/plan/invalid-constraint-bad-applies-to/plan.json +18 -0
- package/vendor/packages/schemas/fixtures/plan/invalid-dangling-media-path/plan.json +15 -0
- package/vendor/packages/schemas/fixtures/plan/invalid-duplicate-slot-id/plan.json +25 -0
- package/vendor/packages/schemas/fixtures/plan/invalid-missing-required-field/plan.json +14 -0
- package/vendor/packages/schemas/fixtures/plan/unsupported-version/plan.json +4 -0
- package/vendor/packages/schemas/fixtures/plan/valid/plan.json +40 -0
- package/vendor/packages/schemas/fixtures/plan/valid/scaffold/beat-01.png +1 -0
- package/vendor/packages/schemas/fixtures/plan/valid/scaffold/beat-01.wav +1 -0
- package/vendor/packages/schemas/fixtures/plan/valid/scaffold/broll.mp4 +1 -0
- package/vendor/packages/schemas/fixtures/plan/warns-confidence-gap/plan.json +28 -0
- package/vendor/packages/schemas/fixtures/plan-comments/invalid-bad-pass/plan-comments.json +6 -0
- package/vendor/packages/schemas/fixtures/plan-comments/invalid-bad-target-id-for-index-kind/plan-comments.json +13 -0
- package/vendor/packages/schemas/fixtures/plan-comments/invalid-bad-target-kind/plan-comments.json +13 -0
- package/vendor/packages/schemas/fixtures/plan-comments/invalid-comments-not-array/plan-comments.json +6 -0
- package/vendor/packages/schemas/fixtures/plan-comments/invalid-missing-comment-field/plan-comments.json +12 -0
- package/vendor/packages/schemas/fixtures/plan-comments/invalid-missing-version/plan-comments.json +5 -0
- package/vendor/packages/schemas/fixtures/plan-comments/unsupported-version/plan-comments.json +6 -0
- package/vendor/packages/schemas/fixtures/plan-comments/valid/plan-comments.json +19 -0
- package/vendor/packages/schemas/fixtures/plan-comments/valid-unknown-fields/plan-comments.json +15 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-bad-aspect/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-bad-confirmed-by/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-bad-name-casing/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-bad-workflow/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-duplicate-overlay-kind/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-empty-confirmed/recipe.json +9 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-empty-narration/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-missing-version/recipe.json +12 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-provenance-mismatch/recipe.json +15 -0
- package/vendor/packages/schemas/fixtures/recipe/invalid-source-project-path/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/unsupported-version/recipe.json +13 -0
- package/vendor/packages/schemas/fixtures/recipe/valid/recipe.json +15 -0
- package/vendor/packages/schemas/fixtures/recipe/valid-unknown-fields/recipe.json +16 -0
- package/vendor/packages/schemas/fixtures/review/invalid-malformed-canvas-target/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/invalid-malformed-doc-target/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/invalid-malformed-image-target/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/invalid-strokes-bad-space/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/invalid-strokes-canvas-rect-with-frame/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/invalid-strokes-image-rect-with-frame/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/invalid-video-null-sourcet/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/valid/review.json +8 -0
- package/vendor/packages/schemas/fixtures/review/valid-canvas-target/review.json +7 -0
- package/vendor/packages/schemas/fixtures/review/valid-input-session/review.json +6 -0
- package/vendor/packages/schemas/fixtures/review/valid-strokes/review.json +8 -0
- package/vendor/packages/schemas/intake.schema.json +117 -0
- package/vendor/packages/schemas/interpretation.schema.json +419 -0
- package/vendor/packages/schemas/package.json +18 -0
- package/vendor/packages/schemas/plan-comments.schema.json +52 -0
- package/vendor/packages/schemas/plan.schema.json +129 -0
- package/vendor/packages/schemas/recipe.schema.json +106 -0
- package/vendor/packages/schemas/research-plan.schema.json +230 -0
- package/vendor/packages/schemas/review.schema.json +227 -0
- package/vendor/packages/schemas/test/fixtures/asset/invalid-matched-by/audio/whoosh-transition/meta.json +31 -0
- package/vendor/packages/schemas/test/fixtures/asset/valid-catalog/audio/whoosh-transition/meta.json +31 -0
- package/vendor/packages/schemas/test/fixtures/asset/valid-library/telop/lower-third-clean/fragment.html +139 -0
- package/vendor/packages/schemas/test/fixtures/asset/valid-library/telop/lower-third-clean/meta.json +32 -0
- package/vendor/packages/schemas/test/fixtures/asset/valid-library/telop/lower-third-clean/preview.png +0 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-analyses-missing-ref/interpretation.json +131 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-analyses-ref-mismatch/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-arc-empty-refs/interpretation.json +126 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-context-missing-interview/interpretation.json +126 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-context-null-intake/interpretation.json +133 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-dangling-arc-ref/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-duplicate-asset-ref/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-flag-bad-type/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-flag-missing-evidence/interpretation.json +131 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-missing-required-field/interpretation.json +131 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-open-question-answer-present-when-open/interpretation.json +133 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-open-question-answered-without-answer/interpretation.json +131 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-relations-dangling-target/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-relations-self-reference/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-section-end-before-start/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-section-mismatched-start-end/interpretation.json +131 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/invalid-unknown-root-field/interpretation.json +133 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/unsupported-version/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/interpretation/valid/interpretation.json +132 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-bad-category-enum/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-dangling-chapter-ref/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-dangling-shot-list-ref/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-decided-at-mismatch/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-duplicate-candidate-id/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-japan-sns-notes-empty/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-missing-required-field/research-plan.json +127 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-selected-missing-candidate/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/invalid-structure-confirmed-mismatch/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/unsupported-version/research-plan.json +128 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/valid/research-plan.json +79 -0
- package/vendor/packages/schemas/test/fixtures/research-plan/warns-empty-sources/research-plan.json +120 -0
- package/vendor/packages/schemas/test/validate-asset.test.mjs +38 -0
- package/vendor/packages/schemas/test/validate-avatar.test.mjs +109 -0
- package/vendor/packages/schemas/test/validate-captions.test.mjs +59 -0
- package/vendor/packages/schemas/test/validate-connections.test.mjs +31 -0
- package/vendor/packages/schemas/test/validate-edit.test.mjs +490 -0
- package/vendor/packages/schemas/test/validate-intake.test.mjs +66 -0
- package/vendor/packages/schemas/test/validate-interpretation.test.mjs +167 -0
- package/vendor/packages/schemas/test/validate-plan-comments.test.mjs +70 -0
- package/vendor/packages/schemas/test/validate-plan.test.mjs +67 -0
- package/vendor/packages/schemas/test/validate-recipe.test.mjs +107 -0
- package/vendor/packages/schemas/test/validate-research-plan.test.mjs +98 -0
- package/vendor/packages/schemas/test/validate-review.test.mjs +102 -0
- package/vendor/skills/.gitkeep +0 -0
- package/vendor/skills/address-review/SKILL.md +84 -0
- package/vendor/skills/address-review/bin/core/review-store.mjs +210 -0
- package/vendor/skills/address-review/bin/list.mjs +198 -0
- package/vendor/skills/address-review/bin/respond.mjs +89 -0
- package/vendor/skills/address-review/dev-fixtures/fixture-project/captions.json +22 -0
- package/vendor/skills/address-review/dev-fixtures/fixture-project/edit.json +12 -0
- package/vendor/skills/address-review/dev-fixtures/fixture-project/review.json +100 -0
- package/vendor/skills/address-review/test/review-store.test.mjs +201 -0
- package/vendor/skills/analyze-footage/SKILL.md +35 -0
- package/vendor/skills/analyze-footage/analysis-json.md +185 -0
- package/vendor/skills/analyze-footage/bin/person-matte/person-matte-helper.swift +343 -0
- package/vendor/skills/analyze-footage/bin/person-matte/person-matte.mjs +415 -0
- package/vendor/skills/analyze-footage/bin/speechanalyzer-helper.swift +138 -0
- package/vendor/skills/analyze-footage/bin/transcribe-cloud.mjs +486 -0
- package/vendor/skills/analyze-footage/bin/transcribe-sa.mjs +189 -0
- package/vendor/skills/analyze-footage/events-and-hooks.md +93 -0
- package/vendor/skills/analyze-footage/keyframes-and-review.md +130 -0
- package/vendor/skills/analyze-footage/media-and-transcript.md +219 -0
- package/vendor/skills/analyze-footage/person-matte.md +121 -0
- package/vendor/skills/analyze-footage/references/akari-data-contract.md +18 -0
- package/vendor/skills/analyze-footage/references/asset.meta.example.json +23 -0
- package/vendor/skills/analyze-footage/test/fixtures/scribe-punctuation-inflation.json +17 -0
- package/vendor/skills/analyze-footage/test/normalize-scribe.test.mjs +76 -0
- package/vendor/skills/analyze-footage/workflow.md +95 -0
- package/vendor/skills/analyze-project/SKILL.md +58 -0
- package/vendor/skills/analyze-project/collect.md +51 -0
- package/vendor/skills/analyze-project/decision-record.md +55 -0
- package/vendor/skills/analyze-project/interpretation.md +128 -0
- package/vendor/skills/analyze-project/interview.md +66 -0
- package/vendor/skills/analyze-project/references/interpretation-shape.md +42 -0
- package/vendor/skills/analyze-project/references/open-questions-examples.md +35 -0
- package/vendor/skills/analyze-project/validate-and-render.md +66 -0
- package/vendor/skills/bake-3d/SKILL.md +78 -0
- package/vendor/skills/compile-review-session/SKILL.md +78 -0
- package/vendor/skills/compile-review-session/bin/compile-review-session.mjs +799 -0
- package/vendor/skills/compile-review-session/bin/core/canvas-compiler.mjs +105 -0
- package/vendor/skills/compile-review-session/bin/core/compiler.mjs +221 -0
- package/vendor/skills/compile-review-session/bin/core/review-store.mjs +74 -0
- package/vendor/skills/compile-review-session/bin/core/time-mapping.mjs +370 -0
- package/vendor/skills/compile-review-session/bin/core/transcription.mjs +721 -0
- package/vendor/skills/compile-review-session/compilation-rules.md +98 -0
- package/vendor/skills/compile-review-session/dev-fixtures/README.md +24 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/edit.snapshot.json +12 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/events.jsonl +2 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0001/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/edit.snapshot.json +12 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/events.jsonl +5 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0002/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/edit.snapshot.json +12 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/events.jsonl +19 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0003/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/edit.snapshot.json +12 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/events.jsonl +2 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0004/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0005/session.json +1 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0006/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0006/events.jsonl +2 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0006/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/edit.snapshot.json +13 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/events.jsonl +9 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0007/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/audio.wav +0 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/edit.snapshot.json +12 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/events.jsonl +2 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/session.json +11 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review/sessions/s-0008/transcript.json +9 -0
- package/vendor/skills/compile-review-session/dev-fixtures/fixture-project/review.json +7 -0
- package/vendor/skills/compile-review-session/test/canvas-compiler.test.mjs +283 -0
- package/vendor/skills/compile-review-session/test/compiler.test.mjs +458 -0
- package/vendor/skills/create-project/SKILL.md +46 -0
- package/vendor/skills/create-project/bin/create-project.mjs +88 -0
- package/vendor/skills/edit-lint/SKILL.md +73 -0
- package/vendor/skills/edit-plan/SKILL.md +64 -0
- package/vendor/skills/edit-plan/approvals-and-generation.md +106 -0
- package/vendor/skills/edit-plan/avatar-resolution.md +241 -0
- package/vendor/skills/edit-plan/beat-sync.md +545 -0
- package/vendor/skills/edit-plan/beats.md +197 -0
- package/vendor/skills/edit-plan/emphasis-detection.md +366 -0
- package/vendor/skills/edit-plan/execution.md +157 -0
- package/vendor/skills/edit-plan/expression-selection.md +290 -0
- package/vendor/skills/edit-plan/plan-json.md +52 -0
- package/vendor/skills/edit-plan/recipe.md +74 -0
- package/vendor/skills/edit-plan/references/asset.decisions.example.json +12 -0
- package/vendor/skills/edit-plan/references/event.example.json +7 -0
- package/vendor/skills/edit-plan/report-guide.md +192 -0
- package/vendor/skills/edit-plan/workflow.md +108 -0
- package/vendor/skills/generate-narration/SKILL.md +40 -0
- package/vendor/skills/generate-narration/assets/reading-script-v1.md +18 -0
- package/vendor/skills/generate-narration/avatar-voice.md +54 -0
- package/vendor/skills/generate-narration/bin/generate-narration.mjs +572 -0
- package/vendor/skills/generate-narration/engines.md +78 -0
- package/vendor/skills/generate-narration/reading-text.md +36 -0
- package/vendor/skills/generate-narration/voice-profile-setup.md +77 -0
- package/vendor/skills/harvest-asset/SKILL.md +132 -0
- package/vendor/skills/manage-connections/SKILL.md +75 -0
- package/vendor/skills/manage-connections/bin/doctor.mjs +341 -0
- package/vendor/skills/overlay-authoring/3d.md +143 -0
- package/vendor/skills/overlay-authoring/SKILL.md +30 -0
- package/vendor/skills/overlay-authoring/motion.md +58 -0
- package/vendor/skills/overlay-authoring/table.md +41 -0
- package/vendor/skills/overlay-authoring/telop.md +69 -0
- package/vendor/skills/overlay-authoring/text-behind-person.md +224 -0
- package/vendor/skills/overlay-authoring/thumbnail.md +126 -0
- package/vendor/skills/render-cut/SKILL.md +66 -0
- package/vendor/skills/research-plan/SKILL.md +75 -0
- package/vendor/skills/research-plan/competitor.md +50 -0
- package/vendor/skills/research-plan/ideate.md +56 -0
- package/vendor/skills/research-plan/shotlist.md +46 -0
- package/vendor/skills/research-plan/storyboard.md +48 -0
- package/vendor/skills/research-plan/trends.md +33 -0
- package/vendor/skills/setup-audio-library/SKILL.md +93 -0
- package/vendor/skills/setup-audio-library/candidate-list.md +72 -0
- package/vendor/skills/setup-audio-library/drop-folder.md +72 -0
- package/vendor/skills/setup-audio-library/gallery.md +43 -0
- package/vendor/skills/setup-library/SKILL.md +33 -0
- package/vendor/skills/setup-library/fetch-and-validate.md +102 -0
- package/vendor/skills/setup-library/starter-pack.md +55 -0
- package/vendor/skills/setup-library/tools-check.md +83 -0
- package/vendor/skills/verify/SKILL.md +137 -0
- package/vendor/templates/project-default/.akari/cache/.gitkeep +0 -0
- package/vendor/templates/project-default/.akari/connections.json +233 -0
- package/vendor/templates/project-default/.akari/diffs/.gitkeep +1 -0
- package/vendor/templates/project-default/.akari/events/.gitkeep +1 -0
- package/vendor/templates/project-default/.akari/reports/.gitkeep +0 -0
- package/vendor/templates/project-default/.akari/sidecars/.gitkeep +1 -0
- package/vendor/templates/project-default/.akari/work/.gitkeep +0 -0
- package/vendor/templates/project-default/.akari/workflow.json +48 -0
- package/vendor/templates/project-default/.claude/settings.json +15 -0
- package/vendor/templates/project-default/.claude/skills/README.md +26 -0
- package/vendor/templates/project-default/AGENTS.md +49 -0
- package/vendor/templates/project-default/CLAUDE.md +35 -0
- package/vendor/templates/project-default/assets/.gitkeep +1 -0
- package/vendor/templates/project-default/exports/.gitkeep +1 -0
- package/vendor/templates/project-default/planning/.gitkeep +1 -0
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
# 見せ場マーカーを演出へ連動させる(beats → SE 発火)
|
|
2
|
+
|
|
3
|
+
承認済みの `beats[]`(見せ場マーカー)から、既存の `edit.json` 語彙だけで「見せ場で鳴って画が動く」を
|
|
4
|
+
組むための翻訳規約である。[beats.md](beats.md) が「見せ場をどう**書くか**」(導出規約)を定めるのに対し、
|
|
5
|
+
本リーフは「書かれた見せ場をどう**使うか**」(消費規約)を定める。
|
|
6
|
+
|
|
7
|
+
[edit.json v1 見せ場マーカー契約](../../docs/contract-2026-07-22-edit-json-v1-beats.md) §6 は、
|
|
8
|
+
「beats を読んで実際にどんな演出を発火するか」を契約スコープ外=消費側の別契約と明記している。
|
|
9
|
+
本リーフはその消費側規約の v0 であり、契約が消費側に課す 2 つの不変条件(source 秒アンカーの尊重・
|
|
10
|
+
劣化規約の尊重)の上に立つ。
|
|
11
|
+
|
|
12
|
+
## v0 のスコープ(オーナー裁定済み・ここで広げない)
|
|
13
|
+
|
|
14
|
+
- SE は**手持ちライブラリのみ**を使う。新規取得・外部ダウンロードをしない。
|
|
15
|
+
- 視覚トランジションの `edit.json` 語彙は未契約である。v0 の同時発火は
|
|
16
|
+
**SE + カット境界 + overlay 装飾**の 3 点で構成し、専用トランジション語彙を発明しない。
|
|
17
|
+
- BGM は「冒頭とエンディングのみ」の既定を尊重し、**ビート連動の BGM 操作をしない**
|
|
18
|
+
(ダッキングは narration 由来の既存機構のまま。ビート連動の BGM 変化はツマミ導入まで席)。
|
|
19
|
+
- 囲い・ラメ等の専用視覚部品の新設はスコープ外である(既存 overlay 部品の選択提案までは可)。
|
|
20
|
+
|
|
21
|
+
## 入力
|
|
22
|
+
|
|
23
|
+
- 入力は**人間承認済みの `beats[]`** である([beats.md](beats.md) の導出規約 — 下限 `strength`
|
|
24
|
+
0.5 と根拠必須 — を通過したもの)。**承認前の beats から演出を組まない。**
|
|
25
|
+
- 密度(60 秒あたりの件数・同一 kind の間隔)は導出段では課されていない。**演出過多の抑制は
|
|
26
|
+
本リーフの責務**であり、§評価順の「密度ガードレール」で射影後の timeline 秒に対して適用する。
|
|
27
|
+
- 承認の記録は `decision-log.md`([report-guide.md](report-guide.md#decision_log))に残っている
|
|
28
|
+
ものを指す。無操作・タイムアウト・過去の包括承認を今回の承認に読み替えない。
|
|
29
|
+
- **演出の強さの入力は `edit.json` の `direction { preset, intensity }`**(演出宣言)である。
|
|
30
|
+
本リーフの演出数値はすべてここから導く(§演出プリセットと `intensity` 写像)。`direction` が
|
|
31
|
+
無ければ既定動作(`youtube-long-standard` + `intensity` 50)で従来どおりに振る舞う。
|
|
32
|
+
|
|
33
|
+
## 射影 — source 秒から timeline 秒へ
|
|
34
|
+
|
|
35
|
+
`beats[].t` は **source 秒**である([beats.md](beats.md) §座標 / beats 契約 §3)。発火位置は毎回
|
|
36
|
+
`cuts[]` から計算し、計算結果を `beats[]` へ書き戻さない。
|
|
37
|
+
|
|
38
|
+
- `beats[].t`(source 秒)を `cuts[]` で timeline 秒へ射影して**発火位置**とする。
|
|
39
|
+
- 射影式は [execution.md](execution.md) §2 と同じ:
|
|
40
|
+
source 時刻 `s` が keep-range `[in, out)` にあるとき、
|
|
41
|
+
`timeline = (それ以前の keep-range 長の合計) + (s - in)`。
|
|
42
|
+
- **一対多**(同一 beat の複数出現。同じ source 区間がタイムライン上に複数回現れる場合)は、
|
|
43
|
+
**出現ごとに発火**する。
|
|
44
|
+
- **射影先 0 件の beat は発火なし**(カットで落とした区間の見せ場)。これは正常であり、
|
|
45
|
+
エラーでも warning でもない(beats 契約 §4)。
|
|
46
|
+
|
|
47
|
+
## 演出プリセットと `intensity` 写像
|
|
48
|
+
|
|
49
|
+
本リーフの演出数値(強度ゲート・密度・`gain_db` の目安・儀式スナップ窓)は固定値ではなく、
|
|
50
|
+
`edit.json` の `direction { preset, intensity }`
|
|
51
|
+
([演出宣言契約](../../docs/contract-2026-07-23-edit-json-v1-direction.md))から**決定的に**導く。
|
|
52
|
+
契約は器と意味論だけを定め、「どの規則のどの数値をどうスケールするかの写像表は消費側が持つ」と
|
|
53
|
+
明記している(同 §4 / §7)。**本節がその写像の正である。**
|
|
54
|
+
|
|
55
|
+
### プリセット実パラメータ表(`intensity` = 50 のときの値)
|
|
56
|
+
|
|
57
|
+
| パラメータ | `youtube-long-standard` | `shorts-high-energy` | `calm-explainer` |
|
|
58
|
+
|---|---|---|---|
|
|
59
|
+
| 強度ゲート | 0.8 | 0.7 | 0.9 |
|
|
60
|
+
| 密度: 60 秒あたり最大 | 2 件 | 4 件 | 1 件 |
|
|
61
|
+
| 密度: 同 kind 間隔 | 20 秒 | 10 秒 | 30 秒 |
|
|
62
|
+
| `gain_db` 基準(目安表の標準行) | -6 | -4 | -8 |
|
|
63
|
+
| 儀式スナップ窓 | ±1.0 秒 | ±1.0 秒 | ±0.5 秒 |
|
|
64
|
+
|
|
65
|
+
`preset` は enum ではない(契約 §2 / §3)。上表に無い `preset`(未知のプリセット)は下記の
|
|
66
|
+
**既定動作**へフォールバックする。上表の 3 プリセット以外を勝手に増やさない
|
|
67
|
+
(増設はオーナー裁定・別契約の仕事である)。
|
|
68
|
+
|
|
69
|
+
### `intensity` 写像(全プリセット共通・決定的)
|
|
70
|
+
|
|
71
|
+
`i` = `direction.intensity`(整数 `[0, 100]`。50 が基準)。上表の値を `base` として次で決まる。
|
|
72
|
+
|
|
73
|
+
| パラメータ | 写像式 | 備考 |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| 強度ゲート | `gate = base - (i - 50) * 0.002` | `i=0` で +0.1・`i=100` で -0.1。`[0.5, 0.95]` にクランプ |
|
|
76
|
+
| 60 秒あたり最大件数 | `max = round(base * (0.5 + i / 100))` | `i=0` で半分・`i=100` で 1.5 倍。最小 1 |
|
|
77
|
+
| 同 kind 間隔 | `interval = base * (1.5 - i / 100)` 秒 | `i=0` で 1.5 倍・`i=100` で 0.5 倍 |
|
|
78
|
+
| `gain_db` 目安表の 3 値 | `各値 + (i - 50) * 0.04` dB | `i=100` で +2 dB・`i=0` で -2 dB。`[-60, 12]` にクランプ |
|
|
79
|
+
| 儀式スナップ窓 | **写像しない**(プリセット固有値のまま) | 儀式は `intensity` で増減しない |
|
|
80
|
+
|
|
81
|
+
- `round` は四捨五入(`.5` は大きい方へ)。件数は写像後に最小 1 でクランプする。
|
|
82
|
+
- 途中式は丸めずに計算し、レポートへ書くときだけ表示桁を落とす。
|
|
83
|
+
- 写像は**単調**である。`i` を上げると強度ゲートは下がり・件数上限は増え・同 kind 間隔は縮み・
|
|
84
|
+
`gain_db` は上がる。どれも「発火を減らす方向へは動かない」ため、**同一入力(同じ `beats[]` と
|
|
85
|
+
`cuts[]`)に対する SE 件数は `i` について単調非減少**になる(減ることはない。増えるとは限らない)。
|
|
86
|
+
|
|
87
|
+
### `direction` 欠落時・不正時の既定動作
|
|
88
|
+
|
|
89
|
+
`direction` フィールドが無い、または劣化規約(契約 §5)で宣言ごと無視されたときは、
|
|
90
|
+
**`preset` = `youtube-long-standard` + `intensity` = 50** として本リーフを適用する
|
|
91
|
+
(契約 §5 の既定動作と同文)。このときの値は上表の 1 列目 = 強度ゲート 0.8 / 60 秒あたり最大
|
|
92
|
+
2 件 / 同 kind 間隔 20 秒 / `gain_db` 標準 -6 / 儀式スナップ窓 ±1.0 秒であり、**`direction` 導入前に
|
|
93
|
+
本リーフが固定値として書いていた数値と一致する**(現行動作の非退行)。
|
|
94
|
+
|
|
95
|
+
### `intensity` に依存しないもの
|
|
96
|
+
|
|
97
|
+
次は `intensity` を動かしても変わらない。
|
|
98
|
+
|
|
99
|
+
- **儀式スナップ窓**(プリセット固有値のまま。写像しない)
|
|
100
|
+
- **儀式が強度ゲート・密度に優先する規則**(儀式スナップが成立した `turn` を密度で落とさない)
|
|
101
|
+
- **同一時刻 ±0.5 秒以内に SE は 1 個**の制限(窓幅も「`strength` の高い方を残す」優先規則も固定)
|
|
102
|
+
- **評価順そのもの**(射影 → 儀式スナップ → 強度ゲート → 密度 → ±0.5 秒制限 → 昇順追記)
|
|
103
|
+
|
|
104
|
+
## 評価順(決定的に処理する)
|
|
105
|
+
|
|
106
|
+
同じ `beats[]` と `cuts[]` からは常に同じ `audio.sfx[]` が出るように、次の順で処理する。
|
|
107
|
+
|
|
108
|
+
1. **射影**: 全 beat を timeline 秒へ射影する(0 件の beat はここで脱落)。
|
|
109
|
+
2. **章転換の儀式**: `turn` の射影先がカット境界の**儀式スナップ窓**以内なら、その境界時刻へ
|
|
110
|
+
スナップする(窓幅は §演出プリセットと `intensity` 写像。既定 ±1.0 秒)。
|
|
111
|
+
3. **強度ゲート**: `strength` が**強度ゲート値**以上の beat のみ SE を残す(値は同節。既定 0.8。
|
|
112
|
+
2 で儀式が成立した `turn` は儀式側が優先し、ゲートで落とさない。§章転換の儀式を見る)。
|
|
113
|
+
4. **密度ガードレール**: **射影後の timeline 秒**で「60 秒あたり最大件数」「同一 kind の連続は
|
|
114
|
+
同 kind 間隔以上空ける」を適用する(値は同節。既定 2 件 / 20 秒。§密度ガードレール)。
|
|
115
|
+
5. **同時多発の制限**: 同一時刻 ±0.5 秒以内に SE が 2 個以上あれば、`strength` が高い beat を残す。
|
|
116
|
+
6. **書き出し**: 残った発火を `audio.sfx[]` へ timeline 秒昇順で追記する。
|
|
117
|
+
|
|
118
|
+
評価順は **射影 → 儀式スナップ → 強度ゲート → 密度 → ±0.5 秒制限 → 昇順追記** である。
|
|
119
|
+
|
|
120
|
+
## 密度ガードレール
|
|
121
|
+
|
|
122
|
+
演出過多を防ぐための規則である。**数値は `direction { preset, intensity }` から導く**
|
|
123
|
+
(§演出プリセットと `intensity` 写像)。素材ジャンル・配信先による調整は `direction` 宣言の
|
|
124
|
+
仕事であり、ここで勝手に緩めない。
|
|
125
|
+
|
|
126
|
+
- **60 秒あたり最大件数**(既定 preset・`i=50` で **2 件**)
|
|
127
|
+
- **同一 kind の連続は同 kind 間隔以上空ける**(既定 preset・`i=50` で **20 秒**)
|
|
128
|
+
|
|
129
|
+
適用のしかたは次のとおり。
|
|
130
|
+
|
|
131
|
+
- **数える座標は射影後の timeline 秒**である。source 秒で数えると、カットで落とした区間の beat が
|
|
132
|
+
枠を消費し、生き残るべき発火を押し出す(この取りこぼしは dogfood で実測された。だから
|
|
133
|
+
[beats.md](beats.md) の導出段から本リーフの発火段へ移した)。
|
|
134
|
+
- 枠を超えたときは **`strength` が高い方を残す**。同値なら timeline 秒が早い方を残す(決定性)。
|
|
135
|
+
- **儀式スナップが成立した `turn` は密度でも落とさない**(強度ゲートに優先するのと同じ理由で、
|
|
136
|
+
章転換で音と画を同時に切り替える儀式が原理的に成立しなくなるため)。密度の件数勘定には
|
|
137
|
+
含めるが、落とす対象は儀式以外の発火から選ぶ。
|
|
138
|
+
- 密度で落とした発火は「不採用候補」として編集判断レポート([decision-log.md](report-guide.md#decision_log))
|
|
139
|
+
に残す。落ちた beat は `beats[]` から消さない(**無音の見せ場**として残る)。
|
|
140
|
+
|
|
141
|
+
## SE 発火規則
|
|
142
|
+
|
|
143
|
+
- `audio.sfx[]` に `{ path, t: <射影後 timeline 秒>, gain_db }` を追記する。**`gain_db` の既定は
|
|
144
|
+
目安表の標準行**(§`gain_db` の目安。既定 preset・`i=50` で **-6**)。
|
|
145
|
+
(`audio.sfx[].t` は**タイムライン秒**である。
|
|
146
|
+
[音声契約](../../docs/contract-2026-07-14-edit-json-v1-audio.md) §1 のフィールド表を見る。
|
|
147
|
+
`gain_db` のクランプ範囲は `[-60, 12]`。)
|
|
148
|
+
- **同時多発の制限**: 同一時刻 ±0.5 秒以内に SE は 1 個までとする(`strength` が高い beat を優先)。
|
|
149
|
+
この窓幅は `intensity` に依存しない。
|
|
150
|
+
- **密度ガードレール**: 射影後の timeline 秒で 60 秒あたり最大件数・同一 kind の連続は同 kind
|
|
151
|
+
間隔以上空ける(§密度ガードレール。既定 2 件 / 20 秒)。
|
|
152
|
+
- **`strength` が強度ゲート値以上の beat のみ SE を付ける**(既定 preset・`i=50` で 0.8。
|
|
153
|
+
それ未満は**無音の見せ場**として残す)。
|
|
154
|
+
無音の見せ場は beats から消さない。SE を付けなかったという判断であり、見せ場でなくなった
|
|
155
|
+
わけではない。
|
|
156
|
+
|
|
157
|
+
### `gain_db` の目安
|
|
158
|
+
|
|
159
|
+
下表は **`youtube-long-standard` の `intensity` = 50**(= `direction` 欠落時の既定動作)の値である。
|
|
160
|
+
場面に合わせて次を目安に振る。
|
|
161
|
+
|
|
162
|
+
| 条件 | `gain_db` |
|
|
163
|
+
|---|---|
|
|
164
|
+
| `strength >= 0.9`、または hook の儀式的な一発 | -4 |
|
|
165
|
+
| 標準 | -6 |
|
|
166
|
+
| `emotion` kind・静かな場面・連続発火の 2 発目 | -8 |
|
|
167
|
+
|
|
168
|
+
**プリセットが変わると標準行が変わり**(`shorts-high-energy` は -4 / `calm-explainer` は -8。
|
|
169
|
+
§プリセット実パラメータ表)、上下 2 行は標準行との相対差 +2 / -2 dB を保つ。さらに `intensity`
|
|
170
|
+
に応じて 3 値すべてへ `(i - 50) * 0.04` dB を加える(§`intensity` 写像)。既定 preset での例:
|
|
171
|
+
|
|
172
|
+
| `i` | 加算 | -4 の行 | 標準行 | -8 の行 |
|
|
173
|
+
|---|---|---|---|---|
|
|
174
|
+
| 30 | -0.8 dB | -4.8 | -6.8 | -8.8 |
|
|
175
|
+
| 50 | ±0 dB | -4 | -6 | -8 |
|
|
176
|
+
| 80 | +1.2 dB | -2.8 | -4.8 | -6.8 |
|
|
177
|
+
|
|
178
|
+
範囲は音声契約の `[-60, 12]` クランプのままである。表以外の値を使ってもよいが、その場合は
|
|
179
|
+
理由を編集レポートへ 1 行で記録する(**写像後の 3 値**は理由の記録を要しない既定である)。
|
|
180
|
+
|
|
181
|
+
## 章転換の儀式(turn beat)
|
|
182
|
+
|
|
183
|
+
射影先が**カット境界の儀式スナップ窓以内**(§演出プリセットと `intensity` 写像。既定 preset で
|
|
184
|
+
±1.0 秒 / `calm-explainer` で ±0.5 秒。**`intensity` では動かない**)にある場合、SE の `t` は
|
|
185
|
+
その**境界時刻へスナップ**する(音と画の切替を同時発火させる)。**境界から遠い `turn` は通常規則**
|
|
186
|
+
(射影位置そのまま・強度ゲートも通常どおり)に従う。
|
|
187
|
+
|
|
188
|
+
- カット境界の集合 = 各 keep-range の開始 timeline 秒(先頭の 0 を含む)+ タイムライン終端。
|
|
189
|
+
- スナップは `audio.sfx[].t` にだけ効く。`beats[].t` は書き換えない(source 秒アンカー)。
|
|
190
|
+
- **儀式は強度ゲートに優先する**。「境界から遠い `turn` は通常規則」という規定は、境界に近い
|
|
191
|
+
`turn` が通常規則の外にあることを意味する。[beats.md](beats.md) の既定マッピングでは
|
|
192
|
+
`chapter` event → `turn` の `strength` は 0.5 ±0.2(最大 0.7)であり、儀式がゲートに従属すると
|
|
193
|
+
`turn` の SE は原理的に発火しない。章転換で音と画を同時に切り替えるという儀式の目的が
|
|
194
|
+
成り立たなくなるため、スナップ窓以内の `turn` は強度ゲートを通さずスナップ発火させる。
|
|
195
|
+
ここは v0 の解釈であり、`direction` 導入後も**そのまま維持する**(儀式は `intensity` 非依存 =
|
|
196
|
+
演出を最小まで絞っても残る、契約 §4 の `intensity` = 0「演出最小限(儀式のみ)」と整合する)。
|
|
197
|
+
見直しはオーナー裁定による。
|
|
198
|
+
|
|
199
|
+
## SE 既定表(kind → 手持ち SE)
|
|
200
|
+
|
|
201
|
+
### 探索層と充足状況(2026-07-22 実測)
|
|
202
|
+
|
|
203
|
+
素材の探索順は [report-guide.md](report-guide.md#素材計画) の全スコープ層(プロジェクト `assets/` →
|
|
204
|
+
上位ディレクトリの `.akari/assets/` → `~/.akari/assets/` → 製品リポ `assets/` →
|
|
205
|
+
`catalog/`)に従う。2026-07-22 時点の実測は次のとおりである。
|
|
206
|
+
|
|
207
|
+
| 層 | 実体 | 状態 |
|
|
208
|
+
|---|---|---|
|
|
209
|
+
| 製品リポ `assets/audio/` | `INDEX.md` のみ(「まだ素材なし」) | **未充足**(全 kind) |
|
|
210
|
+
| `catalog/audio/`(15 パック) | `meta.json` のみ。全件 `"remote": true` | **未充足**(参照配布のみ・実体バイナリを置かない規約) |
|
|
211
|
+
| ユーザーライブラリ `~/.akari/assets/audio/`(10 パック・340 ファイル) | 音源実体あり | **充足**(下表はここの実体を指す) |
|
|
212
|
+
|
|
213
|
+
したがって**製品リポジトリ内には SE の実体が 1 件も無く、リポジトリ層としては 5 kind すべてが
|
|
214
|
+
未充足**である。下表の既定はユーザーライブラリ層の実在ファイルであり、この層が無い環境では
|
|
215
|
+
既定表は空になる。**未充足の kind・未充足の環境に対する調達は
|
|
216
|
+
[setup-audio-library](../setup-audio-library/SKILL.md) 側の仕事であり、本リーフでは代用音源を
|
|
217
|
+
勝手に選ばない。**
|
|
218
|
+
|
|
219
|
+
### 既定表
|
|
220
|
+
|
|
221
|
+
パス基点は `~/.akari/assets/audio/`。`catalog/audio/<pack-id>/meta.json` が
|
|
222
|
+
ライセンス・クレジット要件の正であり、下表の値はそれと突き合わせ済みである。
|
|
223
|
+
|
|
224
|
+
| kind | 音の性格 | 既定 SE(実在パス・優先順) | ライセンス | クレジット | 状態 |
|
|
225
|
+
|---|---|---|---|---|---|
|
|
226
|
+
| `hook` | インパクト系(ドン/ガツン) | `soundeffect-lab-ambient-life-pack/和太鼓でドン.mp3`<br>`soundeffect-lab-anime-direction-pack/シャキーン1.mp3` | LicenseRef-SoundEffectLab-Free | 不要(任意) | 充足(ライブラリ層) |
|
|
227
|
+
| `turn` | スウィッシュ系(シュッ/whoosh) | `soundeffect-lab-anime-direction-pack/シュッ!.mp3`<br>`soundeffect-lab-anime-direction-pack/シーン切り替え1.mp3` | LicenseRef-SoundEffectLab-Free | 不要(任意) | 充足(ライブラリ層) |
|
|
228
|
+
| `punchline` | ポップ/決定音系(ポン/ジャン) | `soundeffect-lab-ui-signal-pack/決定ボタンを押す1.mp3`<br>`musmus-onomatope-sfx-pack/ポッ.mp3` | LicenseRef-SoundEffectLab-Free<br>LicenseRef-MusMus-Free | 1 点目は不要<br>2 点目は**必須**(下記 MusMus) | 充足(ライブラリ層) |
|
|
229
|
+
| `reveal` | キラーン/チャイム系 | `soundeffect-lab-anime-direction-pack/きらーん1.mp3`<br>`musmus-onomatope-sfx-pack/チャイム.mp3` | LicenseRef-SoundEffectLab-Free<br>LicenseRef-MusMus-Free | 1 点目は不要<br>2 点目は**必須**(下記 MusMus) | 充足(ライブラリ層) |
|
|
230
|
+
| `emotion` | 控えめなポップ系(強い衝撃音を使わない) | `otologic-motion-pop-sfx-pack/Motion-Pop19-1.mp3`<br>`soundeffect-lab-anime-direction-pack/パッ.mp3` | CC-BY-4.0<br>LicenseRef-SoundEffectLab-Free | 1 点目は**必須**(下記 OtoLogic)<br>2 点目は不要 | 充足(ライブラリ層) |
|
|
231
|
+
|
|
232
|
+
`kind` は enum ではない(beats 契約 §2)。上表に無い `kind` の beat は既定 SE を持たないため、
|
|
233
|
+
SE を付けずに無音の見せ場として残すか、素材計画としてチャットで提案して承認を得る。
|
|
234
|
+
|
|
235
|
+
### 文脈による選び分け(優先順は既定のまま)
|
|
236
|
+
|
|
237
|
+
既定は**機械的固定 = 常に優先順の 1 点目**である。そのうえで、**同 kind の表内・同ライセンス
|
|
238
|
+
確認済みの範囲で、文脈(場面のトーン・直前 SE との重複回避)を理由に 2 点目以降や別採用を
|
|
239
|
+
選んでよい。選んだ理由は編集レポートの選択根拠に 1 行で記録する(理由なき逸脱は不可 =
|
|
240
|
+
既定の 1 点目)。**
|
|
241
|
+
|
|
242
|
+
- 選び分けの範囲は**同 kind の行の中**に限る。別 kind の行から借りてこない。
|
|
243
|
+
- 2 点目以降が `attribution_required: true` のパックなら、採用した時点でクレジット文の義務が
|
|
244
|
+
発生する(§`attribution_required: true` の採用時に必要なクレジット文)。「同ライセンス確認済み」
|
|
245
|
+
とは、この義務まで確認したうえで選ぶという意味である。
|
|
246
|
+
- 理由の例: 「直前 4.4 秒で `hook` 1 点目(和太鼓)が鳴っているため、22.0 秒の `turn` は重複を
|
|
247
|
+
避けて 2 点目のシーン切り替え音を採用」「静かな独白の場面のため `emotion` は 2 点目の軽い
|
|
248
|
+
『パッ』を採用」。
|
|
249
|
+
|
|
250
|
+
### `attribution_required: true` の採用時に必要なクレジット文
|
|
251
|
+
|
|
252
|
+
採用したら編集レポートのクレジット文へ次の文言をそのまま載せる(`meta.json` の `ai_usage` に
|
|
253
|
+
書かれた表記をそのまま使い、要約・言い換えをしない)。
|
|
254
|
+
|
|
255
|
+
| パック | クレジット文 |
|
|
256
|
+
|---|---|
|
|
257
|
+
| `musmus-onomatope-sfx-pack` | `BGM:MusMus`(フル表記: `フリーBGM・音楽素材 MusMus https://musmus.main.jp`) |
|
|
258
|
+
| `otologic-motion-pop-sfx-pack` | `音:OtoLogic(https://otologic.jp/)` |
|
|
259
|
+
|
|
260
|
+
`attribution_required: false` のパック(効果音ラボ・DOVA-SYNDROME)はクレジット任意である。
|
|
261
|
+
ただし効果音ラボ・MusMus・OtoLogic はいずれも**素材単体の再配布を禁じている**。採用 SE を
|
|
262
|
+
プロジェクトへ複製するのは可だが、**公開リポジトリへコミットしない**。
|
|
263
|
+
|
|
264
|
+
### プロジェクトへの取り込みとパス
|
|
265
|
+
|
|
266
|
+
`audio.sfx[].path` は edit.json からの相対パスまたは絶対パスである(音声契約 §2)。可搬性のため、
|
|
267
|
+
採用した SE はプロジェクトの `assets/audio/<pack-id>/<file>` へ複製し、**相対パスで参照する**ことを
|
|
268
|
+
既定とする([execution.md](execution.md) §2 の「同一ツリーでは相対を使う」に従う)。複製しない
|
|
269
|
+
運用ではライブラリ層の絶対パスを書いてもよいが、プロジェクトの可搬性は失われる。
|
|
270
|
+
|
|
271
|
+
## overlay 装飾の選択肢
|
|
272
|
+
|
|
273
|
+
見せ場での視覚は、**カット境界の切替そのもの + 既存 overlay 部品(telop / motion カテゴリ)の
|
|
274
|
+
提案まで**とする。
|
|
275
|
+
|
|
276
|
+
- 既存部品の選択は [overlay-authoring](../overlay-authoring/SKILL.md) のカテゴリから行い、
|
|
277
|
+
素材計画(Checkpoint 2)としてチャットで提案・承認を得る。
|
|
278
|
+
- **部品の新設・トランジション語彙の発明をしない。** `edit.json` に `transition` 系の未契約
|
|
279
|
+
フィールドを足さない。囲い・ラメ等の専用視覚部品を新設しない。
|
|
280
|
+
- overlay を置く場合の `overlays[].start` は SE と同じ timeline 秒であり、SE の `t` と揃える
|
|
281
|
+
(儀式でスナップした `turn` では、スナップ後の境界時刻へ揃える)。
|
|
282
|
+
|
|
283
|
+
## worked example
|
|
284
|
+
|
|
285
|
+
### 入力 1 — `beats[]`([beats.md](beats.md) の worked example の出力そのまま)
|
|
286
|
+
|
|
287
|
+
| id | kind | `t`(source 秒) | strength |
|
|
288
|
+
|---|---|---|---|
|
|
289
|
+
| `b-0001` | `hook` | 12.4 | 0.8 |
|
|
290
|
+
| `b-0002` | `turn` | 48.0 | 0.7 |
|
|
291
|
+
| `b-0003` | `emotion` | 96.2 | 0.7 |
|
|
292
|
+
| `b-0004` | `punchline` | 132.0 | 0.8 |
|
|
293
|
+
| `b-0005` | `emotion` | 12.4 | 0.6 |
|
|
294
|
+
|
|
295
|
+
### 入力 2 — `cuts[]`(keep-range 3 件)
|
|
296
|
+
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"cuts": [
|
|
300
|
+
{ "in": 8.0, "out": 30.0 },
|
|
301
|
+
{ "in": 47.2, "out": 60.0 },
|
|
302
|
+
{ "in": 94.0, "out": 100.0 }
|
|
303
|
+
]
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
keep-range 長は 22.0 / 12.8 / 6.0 秒。timeline 上の区間と境界は次のとおり。
|
|
308
|
+
|
|
309
|
+
| cut | source `[in, out)` | timeline `[開始, 終了)` |
|
|
310
|
+
|---|---|---|
|
|
311
|
+
| `cuts[0]` | `[8.0, 30.0)` | `[0.0, 22.0)` |
|
|
312
|
+
| `cuts[1]` | `[47.2, 60.0)` | `[22.0, 34.8)` |
|
|
313
|
+
| `cuts[2]` | `[94.0, 100.0)` | `[34.8, 40.8)` |
|
|
314
|
+
|
|
315
|
+
カット境界の集合 = `{ 0.0, 22.0, 34.8, 40.8 }`(タイムライン長 40.8 秒)。
|
|
316
|
+
|
|
317
|
+
### 射影と儀式(`intensity` 非依存の段)
|
|
318
|
+
|
|
319
|
+
射影と儀式スナップは `direction` に依存しない(儀式スナップ窓は既定 preset で ±1.0 秒であり、
|
|
320
|
+
`intensity` では動かない)。ここまでは 3 通りで共通である。
|
|
321
|
+
|
|
322
|
+
| beat | 所属 cut | 先行 keep-range 長の合計 | `t - in` | 射影後 timeline 秒 | 最近傍境界との距離 | 儀式 |
|
|
323
|
+
|---|---|---|---|---|---|---|
|
|
324
|
+
| `b-0001` `hook` 0.8 | `cuts[0]` | 0.0 | `12.4 - 8.0 = 4.4` | **4.4** | `4.4 - 0.0 = 4.4` | 対象外(`turn` ではない) |
|
|
325
|
+
| `b-0002` `turn` 0.7 | `cuts[1]` | 22.0 | `48.0 - 47.2 = 0.8` | 22.8 | `22.8 - 22.0 = 0.8 ≤ 1.0` | **成立 → 22.0 へスナップ** |
|
|
326
|
+
| `b-0003` `emotion` 0.7 | `cuts[2]` | 34.8 | `96.2 - 94.0 = 2.2` | **37.0** | `37.0 - 34.8 = 2.2` | 対象外(`turn` ではない) |
|
|
327
|
+
| `b-0004` `punchline` 0.8 | なし(`132.0` はどの keep-range にも含まれない) | — | — | — | — | — |
|
|
328
|
+
| `b-0005` `emotion` 0.6 | `cuts[0]` | 0.0 | `12.4 - 8.0 = 4.4` | **4.4** | `4.4 - 0.0 = 4.4` | 対象外(`turn` ではない) |
|
|
329
|
+
|
|
330
|
+
`b-0004` は**射影先 0 件**であり、以降どの `intensity` でも発火しない(正常)。
|
|
331
|
+
|
|
332
|
+
### `intensity` 30 / 50 / 80 の比較(`preset` = `youtube-long-standard`)
|
|
333
|
+
|
|
334
|
+
適用後パラメータ(§`intensity` 写像の途中式):
|
|
335
|
+
|
|
336
|
+
| パラメータ | `i=30` | `i=50` | `i=80` |
|
|
337
|
+
|---|---|---|---|
|
|
338
|
+
| 強度ゲート `0.8 - (i-50)*0.002` | `0.8 - (-20)*0.002 =` **0.84** | `0.8 - 0*0.002 =` **0.8** | `0.8 - 30*0.002 =` **0.74** |
|
|
339
|
+
| 60 秒あたり最大 `round(2*(0.5+i/100))` | `round(2*0.8) = round(1.6) =` **2 件** | `round(2*1.0) =` **2 件** | `round(2*1.3) = round(2.6) =` **3 件** |
|
|
340
|
+
| 同 kind 間隔 `20*(1.5-i/100)` | `20*1.2 =` **24 秒** | `20*1.0 =` **20 秒** | `20*0.7 =` **14 秒** |
|
|
341
|
+
| `gain_db` 標準行 `-6 + (i-50)*0.04` | `-6 - 0.8 =` **-6.8** | **-6** | `-6 + 1.2 =` **-4.8** |
|
|
342
|
+
| 儀式スナップ窓(写像しない) | ±1.0 秒 | ±1.0 秒 | ±1.0 秒 |
|
|
343
|
+
|
|
344
|
+
各通りの強度ゲート判定と発火:
|
|
345
|
+
|
|
346
|
+
| beat(射影後) | `i=30`(ゲート 0.84) | `i=50`(ゲート 0.8) | `i=80`(ゲート 0.74) |
|
|
347
|
+
|---|---|---|---|
|
|
348
|
+
| `b-0001` `hook` 0.8 @ 4.4 | 0.8 < 0.84 → **不通過** | 0.8 ≥ 0.8 → 通過 | 0.8 ≥ 0.74 → 通過 |
|
|
349
|
+
| `b-0002` `turn` 0.7 @ 22.0(儀式成立) | 儀式が優先 → **発火** | 儀式が優先 → **発火** | 儀式が優先 → **発火** |
|
|
350
|
+
| `b-0003` `emotion` 0.7 @ 37.0 | 0.7 < 0.84 → 不通過 | 0.7 < 0.8 → 不通過 | 0.7 < 0.74 → 不通過 |
|
|
351
|
+
| `b-0004` `punchline` 0.8 | 射影先 0 件 | 射影先 0 件 | 射影先 0 件 |
|
|
352
|
+
| `b-0005` `emotion` 0.6 @ 4.4 | 0.6 < 0.84 → 不通過 | 0.6 < 0.8 → 不通過 | 0.6 < 0.74 → 不通過 |
|
|
353
|
+
| **発火した SE** | 22.0 `turn` | 4.4 `hook` / 22.0 `turn` | 4.4 `hook` / 22.0 `turn` |
|
|
354
|
+
| **件数** | **1** | **2** | **2** |
|
|
355
|
+
|
|
356
|
+
密度ガードレールの検算: 発火候補は `i=30` が 1 件・`i=50` が 2 件(上限 2 ちょうど)・`i=80` が
|
|
357
|
+
2 件(上限 3 に対し余裕)で、タイムライン長 40.8 秒のどの 60 秒窓を取っても上限内である。
|
|
358
|
+
同一 kind の連続は 3 通りとも無い(`hook` と `turn`)ため、同 kind 間隔(24 / 20 / 14 秒)の
|
|
359
|
+
規則にも触れない。落ちる発火は 3 通りとも 0 件である。
|
|
360
|
+
|
|
361
|
+
同時多発の制限の検算: `i=50` / `i=80` の発火は 4.4 と 22.0 の 2 件で差は 17.6 秒。±0.5 秒以内の
|
|
362
|
+
重なりは無いためどちらも残る。`b-0005` は `b-0001` と同じ 4.4 へ射影されるが、3 通りとも
|
|
363
|
+
その前の強度ゲートで脱落しているため ±0.5 秒の競合にはならない(仮に `b-0005` がゲート以上
|
|
364
|
+
だったなら、`strength` の高い `b-0001` が残る)。
|
|
365
|
+
|
|
366
|
+
**単調性の確認**: SE 件数は **1(`i=30`)≤ 2(`i=50`)≤ 2(`i=80`)** で単調非減少である。
|
|
367
|
+
`i=50 → 80` で増えていないのは、ゲートが 0.74 まで下がってもこの入力に `[0.74, 0.8)` の
|
|
368
|
+
`strength` を持つ beat が存在しない(次点が 0.7)ためであり、写像が単調でも件数が必ず増えるとは
|
|
369
|
+
限らないことの実例である。逆向き(`i` を上げて件数が減る)は写像の単調性から起きない。
|
|
370
|
+
|
|
371
|
+
`gain_db` は各通りとも標準行の値(-6.8 / -6 / -4.8)とした(`strength` は 0.8 で 0.9 未満、
|
|
372
|
+
`hook` の 4.4 秒は儀式スナップではないため -4 の行の条件に当たらない)。SE はいずれも既定表の
|
|
373
|
+
1 点目であり、文脈による選び分けを行っていないため選択根拠の追記も発生しない。
|
|
374
|
+
|
|
375
|
+
### 出力 — `edit.json`(`i=50` の完全 JSON)
|
|
376
|
+
|
|
377
|
+
```json
|
|
378
|
+
{
|
|
379
|
+
"version": 0,
|
|
380
|
+
"output": { "width": 1280, "height": 720, "fps": 30 },
|
|
381
|
+
"source": { "path": "source.mp4", "proxy": null },
|
|
382
|
+
"direction": { "preset": "youtube-long-standard", "intensity": 50 },
|
|
383
|
+
"cuts": [
|
|
384
|
+
{ "in": 8.0, "out": 30.0 },
|
|
385
|
+
{ "in": 47.2, "out": 60.0 },
|
|
386
|
+
{ "in": 94.0, "out": 100.0 }
|
|
387
|
+
],
|
|
388
|
+
"overlays": [],
|
|
389
|
+
"audio": {
|
|
390
|
+
"sfx": [
|
|
391
|
+
{ "path": "assets/audio/soundeffect-lab-ambient-life-pack/和太鼓でドン.mp3", "t": 4.4, "gain_db": -6 },
|
|
392
|
+
{ "path": "assets/audio/soundeffect-lab-anime-direction-pack/シュッ!.mp3", "t": 22.0, "gain_db": -6 }
|
|
393
|
+
]
|
|
394
|
+
},
|
|
395
|
+
"beats": [
|
|
396
|
+
{
|
|
397
|
+
"id": "b-0001",
|
|
398
|
+
"t": 12.4,
|
|
399
|
+
"kind": "hook",
|
|
400
|
+
"strength": 0.8,
|
|
401
|
+
"basis": "hook event 12.4–24.0s / 5 軸合計 21/25 → 0.8。発話『ついに来ました、今日はこれを全部お見せします。』"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"id": "b-0002",
|
|
405
|
+
"t": 48.0,
|
|
406
|
+
"kind": "turn",
|
|
407
|
+
"strength": 0.7,
|
|
408
|
+
"basis": "chapter event『セットアップ手順』@ 48.0s。本編の入口として既定 0.5 から +0.2"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"id": "b-0003",
|
|
412
|
+
"t": 96.2,
|
|
413
|
+
"kind": "emotion",
|
|
414
|
+
"strength": 0.7,
|
|
415
|
+
"basis": "発話『正直、ここまで変わるとは思っていませんでした。』@ 96.2s"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "b-0004",
|
|
419
|
+
"t": 132.0,
|
|
420
|
+
"kind": "punchline",
|
|
421
|
+
"strength": 0.8,
|
|
422
|
+
"basis": "highlight event importance 4『処理時間は 12 分から 90 秒になりました。』@ 132.0s"
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"id": "b-0005",
|
|
426
|
+
"t": 12.4,
|
|
427
|
+
"kind": "emotion",
|
|
428
|
+
"strength": 0.6,
|
|
429
|
+
"basis": "発話『ついに来ました、今日はこれを全部お見せします。』@ 12.4s。冒頭の高揚を hook とは別に感情の山として記録"
|
|
430
|
+
}
|
|
431
|
+
]
|
|
432
|
+
}
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
`beats[].t` は射影後も source 秒のまま(12.4 / 48.0 / 96.2 / 132.0 / 12.4)であり、スナップした `turn` も
|
|
436
|
+
書き換えていない。SE の 2 件はいずれも既定表 `hook` / `turn` の 1 点目であり、どちらも
|
|
437
|
+
`attribution_required: false` のためクレジット文は発生しない。BGM は `audio` に一切書いていない
|
|
438
|
+
(ビート連動の BGM 操作をしない)。`direction` は演出の入力宣言であり、`beats[]` と同じく
|
|
439
|
+
書き出し成否を左右しない([演出宣言契約](../../docs/contract-2026-07-23-edit-json-v1-direction.md) §5)。
|
|
440
|
+
|
|
441
|
+
### 出力の差分 — `i=30` / `i=80`
|
|
442
|
+
|
|
443
|
+
`i=30` / `i=80` は上の完全 JSON のうち **`direction.intensity` と `audio.sfx[]` だけ**が差し替わり、
|
|
444
|
+
`version` / `output` / `source` / `cuts` / `overlays` / `beats` は同一である
|
|
445
|
+
(`beats[]` は素材の事実であり `intensity` で変わらない)。
|
|
446
|
+
|
|
447
|
+
```jsonc
|
|
448
|
+
// i = 30 — 強度ゲート 0.84 で hook 0.8 が落ち、儀式スナップした turn だけが残る
|
|
449
|
+
"direction": { "preset": "youtube-long-standard", "intensity": 30 },
|
|
450
|
+
"audio": {
|
|
451
|
+
"sfx": [
|
|
452
|
+
{ "path": "assets/audio/soundeffect-lab-anime-direction-pack/シュッ!.mp3", "t": 22.0, "gain_db": -6.8 }
|
|
453
|
+
]
|
|
454
|
+
}
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
```jsonc
|
|
458
|
+
// i = 80 — 強度ゲート 0.74。発火は i=50 と同じ 2 件で、gain_db だけが +1.2 dB される
|
|
459
|
+
"direction": { "preset": "youtube-long-standard", "intensity": 80 },
|
|
460
|
+
"audio": {
|
|
461
|
+
"sfx": [
|
|
462
|
+
{ "path": "assets/audio/soundeffect-lab-ambient-life-pack/和太鼓でドン.mp3", "t": 4.4, "gain_db": -4.8 },
|
|
463
|
+
{ "path": "assets/audio/soundeffect-lab-anime-direction-pack/シュッ!.mp3", "t": 22.0, "gain_db": -4.8 }
|
|
464
|
+
]
|
|
465
|
+
}
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### 検証(2026-07-23 実測 / `intensity` 3 通り)
|
|
469
|
+
|
|
470
|
+
3 通りそれぞれを `edit.json` として別々の一時プロジェクトへ置き、SE を
|
|
471
|
+
`assets/audio/<pack-id>/` へ実体配置して検証した(`analysis.json` は `duration: 180` のみ、
|
|
472
|
+
`source.mp4` は実ファイル。3 プロジェクトとも同じ素材構成)。
|
|
473
|
+
|
|
474
|
+
```
|
|
475
|
+
$ node packages/schemas/bin/validate-edit.mjs <tmp>/proj-i30/edit.json
|
|
476
|
+
OK: <tmp>/proj-i30/edit.json # exit 0 / 0.097s
|
|
477
|
+
$ node packages/edit-lint/bin/edit-lint.mjs <tmp>/proj-i30
|
|
478
|
+
PASS: <tmp>/proj-i30 (0 findings, 4 skipped) # exit 0 / 0.125s
|
|
479
|
+
|
|
480
|
+
$ node packages/schemas/bin/validate-edit.mjs <tmp>/proj-i50/edit.json
|
|
481
|
+
OK: <tmp>/proj-i50/edit.json # exit 0 / 0.107s
|
|
482
|
+
$ node packages/edit-lint/bin/edit-lint.mjs <tmp>/proj-i50
|
|
483
|
+
PASS: <tmp>/proj-i50 (0 findings, 4 skipped) # exit 0 / 0.135s
|
|
484
|
+
|
|
485
|
+
$ node packages/schemas/bin/validate-edit.mjs <tmp>/proj-i80/edit.json
|
|
486
|
+
OK: <tmp>/proj-i80/edit.json # exit 0 / 0.093s
|
|
487
|
+
$ node packages/edit-lint/bin/edit-lint.mjs <tmp>/proj-i80
|
|
488
|
+
PASS: <tmp>/proj-i80 (0 findings, 4 skipped) # exit 0 / 0.104s
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
`gain_db` の写像後の値(-6.8 / -4.8)が音声契約の `[-60, 12]` クランプ内であることも、この
|
|
492
|
+
PASS で機械的に確認されている。参照解決が実際に効いていることは、SE 1 点を退避した状態で
|
|
493
|
+
`[warning] audio.sfx.file: sfx path does not resolve to a regular file: ...` が 1 件出ることで確認した
|
|
494
|
+
(戻すと 0 findings に復帰)。
|
|
495
|
+
|
|
496
|
+
## 検証
|
|
497
|
+
|
|
498
|
+
書いた `audio.sfx[]` は既存の検証手順([execution.md](execution.md) §4 の
|
|
499
|
+
[edit-lint](../edit-lint/SKILL.md) 実行)で `edit.json` ごと検証する。edit-lint は次を見る。
|
|
500
|
+
|
|
501
|
+
- `audio.sfx[].t` が負・非有限ならエラー、タイムライン長を超えていれば warning。
|
|
502
|
+
- `audio.sfx[].gain_db` が `[-60, 12]` の外ならエラー。
|
|
503
|
+
- `audio.sfx[].path` が実ファイルへ解決できなければ warning(音声は装飾であり、映像本体の
|
|
504
|
+
書き出し成否を左右しない — 音声契約 §5 の劣化規約)。**warning でも放置しない。**
|
|
505
|
+
パス誤り・未取り込みのまま書き出すと無音で仕上がる。
|
|
506
|
+
|
|
507
|
+
## よくある間違い
|
|
508
|
+
|
|
509
|
+
- 承認前の `beats[]` から先回りして SE を組む。
|
|
510
|
+
- `audio.sfx[].t` に source 秒(`beats[].t`)をそのまま書く。SE は timeline 秒である。
|
|
511
|
+
- 射影結果を `beats[].t` へ書き戻す。beats は素材の事実であり、カットを変えるたびにずれる値を
|
|
512
|
+
焼き込まない。
|
|
513
|
+
- 射影先 0 件の beat を「取りこぼし」と誤認し、cuts を変えてでも鳴らそうとする
|
|
514
|
+
(カットで落とした見せ場が鳴らないのは正常)。
|
|
515
|
+
- 強度ゲート未満の `strength` の beat に SE を付けて演出過多にする(既定 preset・`i=50` なら
|
|
516
|
+
0.8 未満)。無音の見せ場を残すのが既定である。
|
|
517
|
+
- `edit.json` の `direction` を見ずに、強度ゲート 0.8 / 密度 2 件・20 秒 / スナップ窓 ±1.0 秒を
|
|
518
|
+
固定値として使う。これらは `direction { preset, intensity }` から導く値であり、既定 preset・
|
|
519
|
+
`i=50` のときだけ従来の固定値と一致する。
|
|
520
|
+
- `intensity` を「なんとなく強め・弱め」と定性的に解釈する。写像式(§`intensity` 写像)で
|
|
521
|
+
数値へ落とし、途中式をレポートに残す。
|
|
522
|
+
- `intensity` で儀式スナップ窓を伸縮させる、または `intensity` を下げて儀式スナップ済みの `turn`
|
|
523
|
+
を消す。儀式は `intensity` 非依存であり、`intensity` = 0 でも残る。
|
|
524
|
+
- `direction` が壊れているのを理由に書き出しを止める。宣言ごと捨てて既定動作
|
|
525
|
+
(`youtube-long-standard` + `intensity` 50)へ倒すのが劣化規約である。
|
|
526
|
+
- 同一時刻 ±0.5 秒に SE を重ねる(複数の beat が近接したら `strength` の高い 1 件だけを残す)。
|
|
527
|
+
- `turn` のスナップで `beats[].t` を境界へ動かす(動かすのは `audio.sfx[].t` だけ)。
|
|
528
|
+
- 密度ガードレールを **source 秒**(`beats[].t`)で数える。数えるのは射影後の timeline 秒であり、
|
|
529
|
+
カットで落とした区間の beat に枠を消費させない。
|
|
530
|
+
- 密度を導出段([beats.md](beats.md))へ持ち帰って beats 自体を間引く。beats は素材の事実であり、
|
|
531
|
+
間引くのは発火の方である。
|
|
532
|
+
- 密度ガードレールで儀式スナップ済みの `turn` を落とす(章転換の儀式は密度にも優先する)。
|
|
533
|
+
- 密度で落とした発火を `decision-log.md` に残さず、黙って消す。
|
|
534
|
+
- 評価順を入れ替える(例: ±0.5 秒制限を密度より先に効かせる)。順は
|
|
535
|
+
射影 → 儀式スナップ → 強度ゲート → 密度 → ±0.5 秒制限 → 昇順追記で固定である。
|
|
536
|
+
- 既定表の 2 点目以降を採用したのに、選んだ理由を編集レポートの選択根拠へ 1 行で残さない
|
|
537
|
+
(理由なき逸脱は不可。既定は 1 点目である)。
|
|
538
|
+
- 文脈の選び分けと称して**別 kind の行**から音を借りる、または表外・ライセンス未確認の音源を使う。
|
|
539
|
+
- `gain_db` を目安表以外の値にしたのに理由を記録しない。逆に、**写像後の**目安表の 3 値
|
|
540
|
+
(既定 preset・`i=50` で -4 / -6 / -8)へいちいち理由を書く必要はない。
|
|
541
|
+
- 既定表に無い kind へ「近そうな音」を勝手に割り当てる。未充足は未充足として残し、調達は
|
|
542
|
+
setup-audio-library に回す。
|
|
543
|
+
- ビートに合わせて BGM の音量・曲を切り替える(v0 では BGM を触らない)。
|
|
544
|
+
- `edit.json` に未契約のトランジションフィールドを足す、または見せ場用の新規 overlay 部品を新設する。
|
|
545
|
+
- `attribution_required: true` の SE を採用したのにクレジット文を編集レポートへ載せない。
|