@laitszkin/apollo-toolkit 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/AGENTS.md +62 -0
  2. package/CHANGELOG.md +100 -0
  3. package/LICENSE +21 -0
  4. package/README.md +144 -0
  5. package/align-project-documents/SKILL.md +94 -0
  6. package/align-project-documents/agents/openai.yaml +4 -0
  7. package/analyse-app-logs/LICENSE +21 -0
  8. package/analyse-app-logs/README.md +126 -0
  9. package/analyse-app-logs/SKILL.md +121 -0
  10. package/analyse-app-logs/agents/openai.yaml +4 -0
  11. package/analyse-app-logs/references/investigation-checklist.md +58 -0
  12. package/analyse-app-logs/references/log-signal-patterns.md +52 -0
  13. package/answering-questions-with-research/SKILL.md +46 -0
  14. package/answering-questions-with-research/agents/openai.yaml +4 -0
  15. package/bin/apollo-toolkit.js +7 -0
  16. package/commit-and-push/LICENSE +21 -0
  17. package/commit-and-push/README.md +26 -0
  18. package/commit-and-push/SKILL.md +70 -0
  19. package/commit-and-push/agents/openai.yaml +4 -0
  20. package/commit-and-push/references/branch-naming.md +15 -0
  21. package/commit-and-push/references/commit-messages.md +19 -0
  22. package/deep-research-topics/LICENSE +21 -0
  23. package/deep-research-topics/README.md +43 -0
  24. package/deep-research-topics/SKILL.md +84 -0
  25. package/deep-research-topics/agents/openai.yaml +4 -0
  26. package/develop-new-features/LICENSE +21 -0
  27. package/develop-new-features/README.md +52 -0
  28. package/develop-new-features/SKILL.md +105 -0
  29. package/develop-new-features/agents/openai.yaml +4 -0
  30. package/develop-new-features/references/testing-e2e.md +35 -0
  31. package/develop-new-features/references/testing-integration.md +42 -0
  32. package/develop-new-features/references/testing-property-based.md +44 -0
  33. package/develop-new-features/references/testing-unit.md +37 -0
  34. package/discover-edge-cases/CHANGELOG.md +19 -0
  35. package/discover-edge-cases/LICENSE +21 -0
  36. package/discover-edge-cases/README.md +87 -0
  37. package/discover-edge-cases/SKILL.md +124 -0
  38. package/discover-edge-cases/agents/openai.yaml +4 -0
  39. package/discover-edge-cases/references/architecture-edge-cases.md +41 -0
  40. package/discover-edge-cases/references/code-edge-cases.md +46 -0
  41. package/docs-to-voice/.env.example +106 -0
  42. package/docs-to-voice/CHANGELOG.md +71 -0
  43. package/docs-to-voice/LICENSE +21 -0
  44. package/docs-to-voice/README.md +118 -0
  45. package/docs-to-voice/SKILL.md +107 -0
  46. package/docs-to-voice/agents/openai.yaml +4 -0
  47. package/docs-to-voice/scripts/docs_to_voice.py +1385 -0
  48. package/docs-to-voice/scripts/docs_to_voice.sh +11 -0
  49. package/docs-to-voice/tests/test_docs_to_voice_api_max_chars.py +210 -0
  50. package/docs-to-voice/tests/test_docs_to_voice_sentence_timeline.py +115 -0
  51. package/docs-to-voice/tests/test_docs_to_voice_settings.py +43 -0
  52. package/docs-to-voice/tests/test_docs_to_voice_speech_rate.py +57 -0
  53. package/enhance-existing-features/CHANGELOG.md +35 -0
  54. package/enhance-existing-features/LICENSE +21 -0
  55. package/enhance-existing-features/README.md +54 -0
  56. package/enhance-existing-features/SKILL.md +120 -0
  57. package/enhance-existing-features/agents/openai.yaml +4 -0
  58. package/enhance-existing-features/references/e2e-tests.md +25 -0
  59. package/enhance-existing-features/references/integration-tests.md +30 -0
  60. package/enhance-existing-features/references/property-based-tests.md +33 -0
  61. package/enhance-existing-features/references/unit-tests.md +29 -0
  62. package/feature-propose/LICENSE +21 -0
  63. package/feature-propose/README.md +23 -0
  64. package/feature-propose/SKILL.md +107 -0
  65. package/feature-propose/agents/openai.yaml +4 -0
  66. package/feature-propose/references/enhancement-features.md +25 -0
  67. package/feature-propose/references/important-features.md +25 -0
  68. package/feature-propose/references/mvp-features.md +25 -0
  69. package/feature-propose/references/performance-features.md +25 -0
  70. package/financial-research/SKILL.md +208 -0
  71. package/financial-research/agents/openai.yaml +4 -0
  72. package/financial-research/assets/weekly_market_report_template.md +45 -0
  73. package/fix-github-issues/SKILL.md +98 -0
  74. package/fix-github-issues/agents/openai.yaml +4 -0
  75. package/fix-github-issues/scripts/list_issues.py +148 -0
  76. package/fix-github-issues/tests/test_list_issues.py +127 -0
  77. package/generate-spec/LICENSE +21 -0
  78. package/generate-spec/README.md +61 -0
  79. package/generate-spec/SKILL.md +96 -0
  80. package/generate-spec/agents/openai.yaml +4 -0
  81. package/generate-spec/references/templates/checklist.md +78 -0
  82. package/generate-spec/references/templates/spec.md +55 -0
  83. package/generate-spec/references/templates/tasks.md +35 -0
  84. package/generate-spec/scripts/create-specs +123 -0
  85. package/harden-app-security/CHANGELOG.md +27 -0
  86. package/harden-app-security/LICENSE +21 -0
  87. package/harden-app-security/README.md +46 -0
  88. package/harden-app-security/SKILL.md +127 -0
  89. package/harden-app-security/agents/openai.yaml +4 -0
  90. package/harden-app-security/references/agent-attack-catalog.md +117 -0
  91. package/harden-app-security/references/common-software-attack-catalog.md +168 -0
  92. package/harden-app-security/references/red-team-extreme-scenarios.md +81 -0
  93. package/harden-app-security/references/risk-checklist.md +78 -0
  94. package/harden-app-security/references/security-test-patterns-agent.md +101 -0
  95. package/harden-app-security/references/security-test-patterns-finance.md +88 -0
  96. package/harden-app-security/references/test-snippets.md +73 -0
  97. package/improve-observability/SKILL.md +114 -0
  98. package/improve-observability/agents/openai.yaml +4 -0
  99. package/learn-skill-from-conversations/CHANGELOG.md +15 -0
  100. package/learn-skill-from-conversations/LICENSE +22 -0
  101. package/learn-skill-from-conversations/README.md +47 -0
  102. package/learn-skill-from-conversations/SKILL.md +85 -0
  103. package/learn-skill-from-conversations/agents/openai.yaml +4 -0
  104. package/learn-skill-from-conversations/scripts/extract_recent_conversations.py +369 -0
  105. package/learn-skill-from-conversations/tests/test_extract_recent_conversations.py +176 -0
  106. package/learning-error-book/SKILL.md +112 -0
  107. package/learning-error-book/agents/openai.yaml +4 -0
  108. package/learning-error-book/assets/error_book_template.md +66 -0
  109. package/learning-error-book/scripts/render_markdown_to_pdf.py +367 -0
  110. package/lib/cli.js +338 -0
  111. package/lib/installer.js +225 -0
  112. package/maintain-project-constraints/SKILL.md +109 -0
  113. package/maintain-project-constraints/agents/openai.yaml +4 -0
  114. package/maintain-skill-catalog/README.md +18 -0
  115. package/maintain-skill-catalog/SKILL.md +66 -0
  116. package/maintain-skill-catalog/agents/openai.yaml +4 -0
  117. package/novel-to-short-video/CHANGELOG.md +53 -0
  118. package/novel-to-short-video/LICENSE +21 -0
  119. package/novel-to-short-video/README.md +63 -0
  120. package/novel-to-short-video/SKILL.md +233 -0
  121. package/novel-to-short-video/agents/openai.yaml +4 -0
  122. package/novel-to-short-video/references/plan-template.md +71 -0
  123. package/novel-to-short-video/references/roles-json.md +41 -0
  124. package/open-github-issue/LICENSE +21 -0
  125. package/open-github-issue/README.md +97 -0
  126. package/open-github-issue/SKILL.md +119 -0
  127. package/open-github-issue/agents/openai.yaml +4 -0
  128. package/open-github-issue/scripts/open_github_issue.py +380 -0
  129. package/open-github-issue/tests/test_open_github_issue.py +159 -0
  130. package/open-source-pr-workflow/CHANGELOG.md +32 -0
  131. package/open-source-pr-workflow/LICENSE +21 -0
  132. package/open-source-pr-workflow/README.md +23 -0
  133. package/open-source-pr-workflow/SKILL.md +123 -0
  134. package/open-source-pr-workflow/agents/openai.yaml +4 -0
  135. package/openai-text-to-image-storyboard/.env.example +10 -0
  136. package/openai-text-to-image-storyboard/CHANGELOG.md +49 -0
  137. package/openai-text-to-image-storyboard/LICENSE +21 -0
  138. package/openai-text-to-image-storyboard/README.md +99 -0
  139. package/openai-text-to-image-storyboard/SKILL.md +107 -0
  140. package/openai-text-to-image-storyboard/agents/openai.yaml +4 -0
  141. package/openai-text-to-image-storyboard/scripts/generate_storyboard_images.py +763 -0
  142. package/package.json +36 -0
  143. package/record-spending/SKILL.md +113 -0
  144. package/record-spending/agents/openai.yaml +4 -0
  145. package/record-spending/references/account-format.md +33 -0
  146. package/record-spending/references/workbook-layout.md +84 -0
  147. package/resolve-review-comments/SKILL.md +122 -0
  148. package/resolve-review-comments/agents/openai.yaml +4 -0
  149. package/resolve-review-comments/references/adoption-criteria.md +23 -0
  150. package/resolve-review-comments/scripts/review_threads.py +425 -0
  151. package/resolve-review-comments/tests/test_review_threads.py +74 -0
  152. package/review-change-set/LICENSE +21 -0
  153. package/review-change-set/README.md +55 -0
  154. package/review-change-set/SKILL.md +103 -0
  155. package/review-change-set/agents/openai.yaml +4 -0
  156. package/review-codebases/LICENSE +21 -0
  157. package/review-codebases/README.md +67 -0
  158. package/review-codebases/SKILL.md +109 -0
  159. package/review-codebases/agents/openai.yaml +4 -0
  160. package/scripts/install_skills.ps1 +283 -0
  161. package/scripts/install_skills.sh +262 -0
  162. package/scripts/validate_openai_agent_config.py +194 -0
  163. package/scripts/validate_skill_frontmatter.py +110 -0
  164. package/specs-to-project-docs/LICENSE +21 -0
  165. package/specs-to-project-docs/README.md +57 -0
  166. package/specs-to-project-docs/SKILL.md +111 -0
  167. package/specs-to-project-docs/agents/openai.yaml +4 -0
  168. package/specs-to-project-docs/references/templates/architecture.md +29 -0
  169. package/specs-to-project-docs/references/templates/configuration.md +29 -0
  170. package/specs-to-project-docs/references/templates/developer-guide.md +33 -0
  171. package/specs-to-project-docs/references/templates/docs-index.md +39 -0
  172. package/specs-to-project-docs/references/templates/features.md +25 -0
  173. package/specs-to-project-docs/references/templates/getting-started.md +38 -0
  174. package/specs-to-project-docs/references/templates/readme.md +49 -0
  175. package/systematic-debug/LICENSE +21 -0
  176. package/systematic-debug/README.md +81 -0
  177. package/systematic-debug/SKILL.md +59 -0
  178. package/systematic-debug/agents/openai.yaml +4 -0
  179. package/text-to-short-video/.env.example +36 -0
  180. package/text-to-short-video/LICENSE +21 -0
  181. package/text-to-short-video/README.md +82 -0
  182. package/text-to-short-video/SKILL.md +221 -0
  183. package/text-to-short-video/agents/openai.yaml +4 -0
  184. package/text-to-short-video/scripts/enforce_video_aspect_ratio.py +350 -0
  185. package/version-release/CHANGELOG.md +53 -0
  186. package/version-release/LICENSE +21 -0
  187. package/version-release/README.md +28 -0
  188. package/version-release/SKILL.md +94 -0
  189. package/version-release/agents/openai.yaml +4 -0
  190. package/version-release/references/branch-naming.md +15 -0
  191. package/version-release/references/changelog-writing.md +8 -0
  192. package/version-release/references/commit-messages.md +19 -0
  193. package/version-release/references/readme-writing.md +12 -0
  194. package/version-release/references/semantic-versioning.md +12 -0
  195. package/video-production/CHANGELOG.md +104 -0
  196. package/video-production/LICENSE +18 -0
  197. package/video-production/README.md +68 -0
  198. package/video-production/SKILL.md +213 -0
  199. package/video-production/agents/openai.yaml +4 -0
  200. package/video-production/references/plan-template.md +54 -0
  201. package/video-production/references/roles-json.md +41 -0
  202. package/weekly-financial-event-report/SKILL.md +195 -0
  203. package/weekly-financial-event-report/agents/openai.yaml +4 -0
  204. package/weekly-financial-event-report/assets/financial_event_report_template.md +53 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: version-release
3
+ description: "Guide the agent to prepare and publish a versioned release (version bump, changelog, tag, and push). Use only when users explicitly request version/tag/release work. If the release scope includes new completed spec files, run `specs-to-project-docs` before finalizing the release so project docs are standardized into categorized files and the old specs are removed or archived."
4
+ ---
5
+
6
+ # Version Release
7
+
8
+ ## Dependencies
9
+
10
+ - Required: none.
11
+ - Conditional: `review-change-set`, `discover-edge-cases`, and `harden-app-security` for code-affecting releases before metadata edits and the final commit; `specs-to-project-docs` when the release scope includes new completed spec files.
12
+ - Optional: none.
13
+ - Fallback: If a required release dependency is unavailable for a code-affecting scope, or if `specs-to-project-docs` is required for spec conversion but unavailable, stop and report the missing dependency.
14
+
15
+ ## Standards
16
+
17
+ - Evidence: Inspect the active change set and the release range before touching version files, tags, or changelog entries.
18
+ - Execution: Use this workflow only for explicit release intent, run the required quality gates, standardize project docs into categorized files when new specs are present, then update versions, docs, commit, tag, and push.
19
+ - Quality: Never guess versions, align user-facing docs with actual code, and convert completed planning docs into standardized categorized project docs before the release is published.
20
+ - Output: Produce a versioned release commit and tag with synchronized changelog and relevant repository documentation.
21
+
22
+ ## Overview
23
+
24
+ Run a standardized release workflow for versioned delivery:
25
+
26
+ - resolve release scope
27
+ - align project code and standardized categorized project documentation
28
+ - bump version files
29
+ - update changelog and relevant docs
30
+ - commit, tag, and push
31
+
32
+ ## References
33
+
34
+ Load only when needed:
35
+
36
+ - `references/semantic-versioning.md`
37
+ - `references/commit-messages.md`
38
+ - `references/branch-naming.md`
39
+ - `references/changelog-writing.md`
40
+ - `references/readme-writing.md`
41
+
42
+ ## Workflow
43
+
44
+ 1. Inspect current changes
45
+ - Run `git status -sb`, `git diff --stat`, and `git diff --cached --stat`.
46
+ - Check staged files with `git diff --cached --name-only`.
47
+ 2. Confirm release intent
48
+ - Use this skill only when the user explicitly requests version/tag/release work.
49
+ - If no release intent is present, use `commit-and-push` instead.
50
+ 3. Classify changes and run dependencies when required
51
+ - `code-affecting`: runtime code, tests, build scripts, CI logic, or behavior-changing config.
52
+ - `docs-only`: documentation/content updates only.
53
+ - `new-specs-present`: the current change set or release range adds or updates completed planning files such as `spec.md`, `tasks.md`, `checklist.md`, or their containing plan directories.
54
+ - For code-affecting changes, run `review-change-set` to challenge architecture and simplification assumptions in the active change set.
55
+ - For code-affecting changes, run `discover-edge-cases` and resolve any confirmed findings.
56
+ - For code-affecting changes, ensure `harden-app-security` has been executed for the same scope as an adversarial quality gate.
57
+ 4. Identify release range
58
+ - Find latest version tag with `git describe --tags --abbrev=0` (fallback to `git tag --list`).
59
+ - If no tags exist, use initial commit from `git rev-list --max-parents=0 HEAD`.
60
+ - Review `git log --oneline <range>` and `git diff --stat <range>`.
61
+ 5. Standardize project docs when new specs are in scope
62
+ - Execute `specs-to-project-docs` when `new-specs-present` is true and the related implementation scope is complete enough for documentation consolidation.
63
+ - Let `specs-to-project-docs` convert the relevant specs into categorized project docs such as `docs/README.md`, `docs/getting-started.md`, `docs/configuration.md`, `docs/architecture.md`, `docs/features.md`, and `docs/developer-guide.md`.
64
+ - Let the skill normalize any existing project docs to the same structure and remove or archive superseded source spec files.
65
+ - If the specs still represent active unfinished work, do not convert them yet; report that the spec files remain active and should not be deleted.
66
+ 6. Align code and project docs
67
+ - Compare release range changes with user-facing docs and operational docs to ensure they match actual code behavior.
68
+ - Required alignment targets include project docs such as `README.md`, usage/setup docs, API docs, deployment/runbook docs, and release notes sources when present.
69
+ - After `specs-to-project-docs` runs, treat the categorized outputs as the canonical project-doc structure.
70
+ - If mismatches are found, update the relevant project docs before version bumping/tagging.
71
+ 7. Decide version and tag format
72
+ - Read existing version files (for example `project.toml`, `package.json`, or repo-specific version files).
73
+ - Infer existing tag format (`vX.Y.Z` or `X.Y.Z`) from repository tags.
74
+ - If the user provides the target version, use it directly.
75
+ - If it is missing, ask the user for the target version or semver bump type.
76
+ - Provide recommendations only when explicitly requested.
77
+ 8. Update version files
78
+ - Update every detected version file consistently.
79
+ - Preserve file formatting; change only version values.
80
+ 9. Update release docs
81
+ - Update `CHANGELOG.md` with a new version entry using the selected release range.
82
+ - Update `README.md` only when behavior or usage changed.
83
+ - Update `AGENTS.md` only when agent workflow/rules changed.
84
+ 10. Commit and tag
85
+ - Create a release-oriented commit message (for example `chore(release): bump version and update changelog`) when applicable.
86
+ - Create the version tag locally after commit.
87
+ 11. Push
88
+ - Push commit(s) and the release tag to the current branch.
89
+
90
+ ## Notes
91
+
92
+ - Never guess versions; always read from files and user intent.
93
+ - If tests are required by repository conventions, run them before commit.
94
+ - If a new branch is required, follow `references/branch-naming.md`.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Version Release"
3
+ short_description: "Prepare a versioned release with bump, changelog, tag, and push"
4
+ default_prompt: "Use $version-release only for explicit release/version/tag requests: inspect the release scope, and for code-affecting changes run $review-change-set, $discover-edge-cases, and $harden-app-security as quality gates, run $specs-to-project-docs when the release scope includes new completed spec files so project docs are standardized into categorized files and old specs are removed or archived, align user-facing docs with real behavior, update version files and CHANGELOG, create the release commit and tag, and push both commits and tags."
@@ -0,0 +1,15 @@
1
+ # Branch Naming Instructions
2
+
3
+ Use a short, descriptive branch name in this pattern:
4
+
5
+ - type/short-description
6
+ - type/issue-id-short-description (if issue ids are used)
7
+
8
+ Guidelines:
9
+ - Use lowercase letters and hyphens only.
10
+ - Align type with commit message types (feat, fix, docs, chore, refactor, test).
11
+ - Do not rename the current branch unless the user explicitly asks.
12
+
13
+ Examples:
14
+ - feat/add-rpc-timeouts
15
+ - fix/1234-parse-registry
@@ -0,0 +1,8 @@
1
+ # CHANGELOG Writing
2
+
3
+ Follow the existing changelog format. If none is defined, use Keep a Changelog style.
4
+
5
+ - Add a new version heading with the release date (YYYY-MM-DD).
6
+ - Group entries under clear sections: Added, Changed, Fixed, Removed, Deprecated, Security.
7
+ - Write user-facing bullets; avoid commit hashes or internal-only details.
8
+ - Call out breaking changes explicitly.
@@ -0,0 +1,19 @@
1
+ # Commit Message Instructions
2
+
3
+ Use a concise Conventional Commit style:
4
+
5
+ - Format: type: short subject
6
+ - Subject: imperative, lower case, no trailing period, <= 72 chars
7
+ - Scope: include only if the repo already uses it (type(scope): subject)
8
+ - Select `type` from the actual change intent in the staged diff (feature, bugfix, docs, etc.)
9
+ - Do not use version-only subjects (for example `feat: v1.2.3`)
10
+ - If the commit only contains release metadata, use `chore(release): ...`
11
+
12
+ Common types:
13
+ - feat, fix, docs, chore, refactor, test, style, perf, build, ci
14
+
15
+ Examples:
16
+ - feat: add rpc retry backoff
17
+ - fix: handle empty response payload
18
+ - docs: update env var table
19
+ - chore(release): bump version and update changelog
@@ -0,0 +1,12 @@
1
+ # README Writing
2
+
3
+ Update README only when it contradicts the code changes.
4
+
5
+ Check and update as needed:
6
+ - Overview and feature list
7
+ - Installation and setup steps
8
+ - Usage examples and CLI commands
9
+ - Configuration or environment variables
10
+ - API or integration instructions
11
+
12
+ Keep edits minimal and consistent with the existing style.
@@ -0,0 +1,12 @@
1
+ # Semantic Versioning
2
+
3
+ Use MAJOR.MINOR.PATCH for release versions.
4
+
5
+ - MAJOR: incompatible or breaking changes.
6
+ - MINOR: backward-compatible new features.
7
+ - PATCH: backward-compatible bug fixes.
8
+
9
+ Pre-release or build metadata (for example, 1.2.3-rc.1) is allowed only if the repo already uses it.
10
+ Prefer the existing tag format and prefix (v1.2.3 vs 1.2.3).
11
+
12
+ If the change type is ambiguous, choose the lower bump and ask the user to confirm.
@@ -0,0 +1,104 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ ## [0.6.0] - 2026-02-17
6
+
7
+ ### Added
8
+ - Enforce `16:9` output as the default long-video aspect ratio (default `1920x1080`).
9
+ - Require fresh storyboard image generation per run (no reuse of previously generated storyboard pictures).
10
+ - Add an audience-retention animation requirement for long-form timelines and an animation planning section in the plan template.
11
+
12
+ ### Changed
13
+ - Remove climax-short-clip planning/output requirements and replace them with chapter-level animation planning.
14
+ - Update `SKILL.md`, `README.md`, `agents/openai.yaml`, and `references/plan-template.md` to match the new 16:9 + fresh-images + animation-first long-video workflow.
15
+
16
+ ### Removed
17
+ - Remove `text-to-short-video` as a dependency from the default long-form workflow.
18
+ - Remove related climax-scene short-video generation and integration steps.
19
+
20
+ ## [0.5.0] - 2026-02-17
21
+
22
+ ### Added
23
+ - Require integrating every climax short clip generated by `text-to-short-video` into the final long-form timeline.
24
+ - Add a compact plan template with four required sections: `Meta Data`, `Reference Text`, `Images Needed To Be Generated`, and `Climax Scenes Selected And Videos To Be Generated`.
25
+
26
+ ### Changed
27
+ - Replace the single important-section short-clip flow with climax-scene selection for text-driven jobs.
28
+ - Update `SKILL.md`, `README.md`, and `agents/openai.yaml` to capture climax-scene locks, clip integration positions, and source-reference-only planning guidance.
29
+
30
+ ## [0.4.0] - 2026-02-17
31
+
32
+ ### Added
33
+ - Add long-form structure and timing-plan requirements to the plan template for 10+ minute productions.
34
+ - Add optional highlight-clip flow that allows `text-to-short-video` only when explicitly requested.
35
+
36
+ ### Changed
37
+ - Reposition the skill as a long-form video production workflow (default target: more than 10 minutes) instead of short-video-first behavior.
38
+ - Replace key-segment-first short pipeline rules with chaptered long-form planning, timing, and rendering guidance in `SKILL.md`, `README.md`, and `agents/openai.yaml`.
39
+
40
+ ## [0.3.0] - 2026-02-17
41
+
42
+ ### Added
43
+ - Add `text-to-short-video` as the default text-first production dependency.
44
+ - Require extracting the most important text segment before short-video generation unless the user locks an exact segment.
45
+ - Add recurring-role prompt policy: reuse existing role skeletons and create new JSON prompt entries only for undefined roles.
46
+ - Add `Key Segment` and `Prompt Strategy` sections to `references/plan-template.md`.
47
+ - Add `prompts.json` path to the output contract.
48
+
49
+ ### Changed
50
+ - Update `SKILL.md`, `README.md`, and `agents/openai.yaml` to enforce text abstraction plus role-aware prompt reuse before generation.
51
+
52
+ ## [0.2.0] - 2026-02-16
53
+
54
+ ### Added
55
+ - Require generating a pre-production plan markdown in `<project_dir>/docs/plans/` named with `<YYYY-MM-DD>-<content_name>.md`.
56
+ - Define mandatory plan sections for `Video Transcripts` and `Images To Generate`.
57
+ - Add `references/plan-template.md` as the canonical pre-generation plan template.
58
+ - Add square-bracketed guidance and placeholders in the template, including explicit instruction to remove them after filling.
59
+ - Add plan markdown path to the output contract.
60
+
61
+ ### Changed
62
+ - Enforce explicit user confirmation of the plan document before running any generation or rendering step.
63
+ - Require creating plan files from the reference template before generation.
64
+ - Require replacing and removing all square-bracket placeholder/instruction text before sending the plan for user confirmation.
65
+ - Update the agent default prompt and README to reflect the template-driven plan-first workflow.
66
+
67
+ ## [0.1.3] - 2026-02-15
68
+
69
+ ### Added
70
+ - Require preserving the Remotion workspace by default so users can revise and re-render later.
71
+ - Add Remotion workspace path to output locations and output contract.
72
+
73
+ ### Changed
74
+ - Update agent default prompt to explicitly keep the Remotion project unless cleanup is requested.
75
+
76
+ ## [0.1.2] - 2026-02-15
77
+
78
+ ### Added
79
+ - Require subtitle color and depth to adapt to image color elements in the subtitle-safe area.
80
+ - Add subtitle readability verification with minimum contrast target (`4.5:1`) and fallback backing plate rule.
81
+ - Add `subtitle-contrast-report.json` to the output contract for traceable subtitle style decisions.
82
+
83
+ ### Changed
84
+ - Replace fixed subtitle text/stroke/shadow defaults with an adaptive color/depth strategy.
85
+ - Update README and agent default prompt to emphasize image-aware subtitle readability behavior.
86
+
87
+ ## [0.1.1] - 2026-02-15
88
+
89
+ ### Added
90
+ - Require explicit user confirmation before any video production starts.
91
+ - Define a unified subtitle style profile shared by single and multi outputs.
92
+ - Add subtitle segment processing rules (overlap filtering, clamping, and local time rebasing).
93
+
94
+ ### Changed
95
+ - Enforce cue-by-cue subtitle timing in Remotion rendering.
96
+ - Extend output contract to include subtitle style config path and subtitle sync verification.
97
+ - Update README and agent default prompt to reflect subtitle style and sync requirements.
98
+
99
+ ## [0.1.0] - 2026-02-15
100
+
101
+ ### Added
102
+ - Initial `video-production` skill release.
103
+ - End-to-end workflow across storyboard generation, narration/subtitles, and Remotion rendering.
104
+ - Support for both single long video output and multi-clip segmented output.
@@ -0,0 +1,18 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Yamiyorunoshura
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
6
+ associated documentation files (the "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
9
+ following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies or substantial
12
+ portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
15
+ LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
16
+ EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
18
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,68 @@
1
+ # Video Production Skill
2
+
3
+ A Codex skill for long-form video production (more than 10 minutes) that follows user instructions and invokes only the needed dependency skills.
4
+
5
+ ## Capabilities
6
+
7
+ - Adapts the workflow to user-provided assets instead of forcing a fixed pipeline.
8
+ - Uses a long-form chaptered workflow as the default text-to-video path.
9
+ - Abstracts a complete long-form story arc and chapter map before generation (unless user locks a structure).
10
+ - Enforces final output at `16:9` (default `1920x1080`).
11
+ - Ensures `<project_dir>/roles/roles.json` exists first (create if missing), then reuses existing recurring-role prompts and only defines missing roles.
12
+ - Regenerates required storyboard images per run (no reuse of previously generated storyboard pictures).
13
+ - Calls voice/subtitle generation only when audio or SRT is missing.
14
+ - Uses Remotion best practices to compose and render final output.
15
+ - Requires timeline animation for long videos to improve audience retention.
16
+ - Asks interactive clarifying questions when key information is missing (for example subtitle style, target duration, chapter pacing, and animation style).
17
+ - Creates `<project_dir>/docs/long-video-plans/<YYYY-MM-DD>-<content_name>.md` from `references/plan-template.md` before generation and waits for user confirmation.
18
+ - Uses a compact plan template with only four sections: meta data, reference text, images needed, and animation plan.
19
+ - Defaults to one long-form video unless the user explicitly requests multi-episode output.
20
+ - Preserves the Remotion project by default for later edits.
21
+ - Maintains Remotion `.gitignore` (including `node_modules/` and build/cache outputs) to keep git projects clean.
22
+
23
+ ## Dependency Skills
24
+
25
+ - `openai-text-to-image-storyboard`
26
+ - `docs-to-voice`
27
+ - `remotion-best-practices`
28
+
29
+ ## Typical Inputs
30
+
31
+ - `project_dir`
32
+ - source text (or existing assets)
33
+ - `content_name`
34
+ - existing role prompt source (optional `prompts.json` or role definitions)
35
+ - reference text sources (path/URL + scope notes; no full text embedding in plan)
36
+ - target duration (10+ minutes for long-form requests)
37
+ - chapter pacing preference
38
+ - subtitle style preferences
39
+ - animation style preference
40
+
41
+ ## Output Contract
42
+
43
+ Return absolute paths for:
44
+
45
+ - plan markdown file (`<project_dir>/docs/long-video-plans/<YYYY-MM-DD>-<content_name>.md`)
46
+ - roles.json file (`<project_dir>/roles/roles.json`, used for role reuse/initialization)
47
+ - prompts.json file (if used)
48
+ - storyboard directory (if used)
49
+ - narration audio file (if used)
50
+ - subtitle SRT file (if used)
51
+ - final rendered long-form MP4 (`16:9`, with planned animations)
52
+ - Remotion workspace directory
53
+ - Remotion `.gitignore` file path
54
+
55
+ ## Files
56
+
57
+ - `SKILL.md` - workflow and execution rules
58
+ - `agents/openai.yaml` - display metadata and default prompt
59
+ - `references/plan-template.md` - pre-generation plan markdown template
60
+ - `references/roles-json.md` - recurring-role schema for `roles.json`
61
+
62
+ ## Quick Start
63
+
64
+ In Codex, call the skill directly:
65
+
66
+ ```text
67
+ Use $video-production to generate a long-form video based on my instructions.
68
+ ```
@@ -0,0 +1,213 @@
1
+ ---
2
+ name: video-production
3
+ description: Generate long-form videos (more than 10 minutes) by following user instructions and invoking related skills only when needed (`openai-text-to-image-storyboard`, `docs-to-voice`, `remotion-best-practices`). For text inputs, extract a complete long-form story arc, generate fresh storyboard images (no reuse of previously generated pictures), and render a 16:9 animated long-form video.
4
+ ---
5
+
6
+ # Video Production
7
+
8
+ ## Dependencies
9
+
10
+ - Required: `remotion-best-practices` for final composition and rendering.
11
+ - Conditional: `openai-text-to-image-storyboard` when visuals must be generated and `docs-to-voice` when narration or subtitles must be generated.
12
+ - Optional: none.
13
+ - Fallback: If a required generation or rendering dependency is unavailable for the chosen path, stop and report the blocked dependency.
14
+
15
+ ## Standards
16
+
17
+ - Evidence: Follow user instructions first, collect only the inputs needed for the selected path, and clarify preference-sensitive details before generation.
18
+ - Execution: Create a long-video plan, wait for explicit approval, then run image generation, narration, and Remotion rendering in order.
19
+ - Quality: Keep output longer than 10 minutes by default, enforce `16:9`, reuse role identities correctly, and never reuse previously generated storyboard images.
20
+ - Output: Return absolute artifact paths, runtime and chapter summaries, animation verification, role reuse notes, and generated-image policy confirmation.
21
+
22
+ ## Core Rules
23
+
24
+ 1. Follow user instructions first. Use the required execution sequence below unless the user explicitly overrides it.
25
+ 2. For text-driven requests, use a long-form pipeline by default and target final output longer than 10 minutes.
26
+ 3. Before generation, turn source text into a coherent long-form structure (hook, chapter progression, and closing).
27
+ 4. The final output aspect ratio must be `16:9` (default resolution: `1920x1080`).
28
+ 5. Role prompt policy for prompt generation:
29
+ - always ensure `<project_dir>/roles/roles.json` exists before any prompt generation
30
+ - if a recurring role already has a defined prompt skeleton, reuse it without rewriting identity fields
31
+ - if a recurring role appears but is not defined, generate new role entries using the supported `prompts.json` schema
32
+ 6. Call only relevant dependency skills:
33
+ - `openai-text-to-image-storyboard`: generate storyboard images when user did not provide usable visuals
34
+ - `docs-to-voice`: generate narration/timeline/SRT when user did not provide audio or subtitles
35
+ - `remotion-best-practices`: compose and render the final long-form output
36
+ 7. Do not reuse previously generated storyboard pictures. Generate fresh images for each run unless the user provides external assets to use.
37
+ 8. Long-form videos must include timeline animation to maintain audience focus (for example pan/zoom, parallax, controlled camera moves, and chapter transitions).
38
+ 9. Before any asset generation or rendering, create a plan markdown in `<project_dir>/docs/long-video-plans/` and wait for explicit user confirmation.
39
+ 10. Never ask the user whether to output a single video or multiple episodes.
40
+ - If the user explicitly asks for episodes/parts, produce multi-episode output.
41
+ - Otherwise default to one full long video.
42
+ 11. Keep Remotion project files unless the user explicitly asks for cleanup.
43
+ 12. Keep git repositories clean by ensuring Remotion dependency/build/cache artifacts are ignored.
44
+
45
+ ## Required Execution Sequence
46
+
47
+ When this skill is triggered, run the production stages in this order:
48
+
49
+ 1. Generate the production plan markdown and wait for explicit user confirmation before any generation.
50
+ 2. Check whether images are needed; generate missing images with `openai-text-to-image-storyboard` (fresh generation only, no reuse of previously generated pictures).
51
+ 3. Generate the narration/audio track with `docs-to-voice` when usable audio is not already provided.
52
+ 4. Use `remotion-best-practices` to combine prepared assets (images, audio/subtitles, and planned animations) into the final `16:9` long-form video.
53
+
54
+ ## Interactive Clarification (Required)
55
+
56
+ Before running generation commands, check whether details are sufficient. If not, ask concise targeted questions and wait for user replies.
57
+ Do not guess preference-sensitive options.
58
+
59
+ Prioritize asking these missing items:
60
+
61
+ - target total duration (default recommendation: 10-15 minutes when user says long video)
62
+ - chapter pacing (chapter count or average chapter duration)
63
+ - subtitle style (font, size, color, stroke/background, position, max lines)
64
+ - narration language/voice tone (if narration must be generated)
65
+ - visual style keywords (if storyboard images must be generated)
66
+ - animation style preference (subtle/cinematic/dynamic, transition density, motion intensity)
67
+ - existing role prompt source (user-provided prompt file or existing `<project_dir>/pictures/<content_name>/prompts.json`) when recurring roles are expected
68
+ - output location / filename rules when not obvious
69
+
70
+ Ask only the minimum set required to unblock progress.
71
+
72
+ ## Inputs to Collect
73
+
74
+ Collect only what is needed for the requested job (not everything by default):
75
+
76
+ - `project_dir`
77
+ - `content_name`
78
+ - source script/text (unless the user provides complete audio + subtitles)
79
+ - extracted long-form story arc with chapter breakdown (unless user provides an exact chapter structure)
80
+ - source reference set (file paths/URLs and scope notes; do not inline full long text in plan)
81
+ - final transcript text used for narration/subtitles
82
+ - existing prompt assets (`prompts.json`, character roster, or user-defined role prompts)
83
+ - user-provided assets (images, audio, subtitles, branding)
84
+ - animation direction for chapter segments
85
+ - output requirements from user instructions
86
+
87
+ ## Workflow
88
+
89
+ ### 1) Read user intent and choose skill calls
90
+
91
+ Create a concise execution checklist:
92
+
93
+ - what the user already provided
94
+ - what still needs generation
95
+ - whether to run the long-form text path or fallback asset path
96
+ - which dependency skills will be called
97
+ - where animation beats are required in the timeline
98
+ - what will be skipped
99
+
100
+ ### 2) Abstract long-form story arc and chapter timing (text-first path)
101
+
102
+ When the request includes source text and the user did not lock a specific structure:
103
+
104
+ - extract one self-contained long-form narrative arc suitable for a 10+ minute video
105
+ - split content into chapters with clear transitions and duration targets
106
+ - preserve original wording for key hooks and turning points whenever possible
107
+ - ensure narrative continuity (setup -> development -> escalation -> payoff/closing)
108
+ - define chapter-level animation intent to avoid long static visual stretches
109
+
110
+ If the user already provides an exact chapter structure, reuse it directly and skip abstraction for those parts.
111
+
112
+ ### 3) Resolve role prompt reuse and ensure `roles.json` exists before prompt generation
113
+
114
+ Before generating or updating `prompts.json`:
115
+
116
+ 1. detect recurring roles across all chapters
117
+ 2. set target role file path:
118
+ - `<project_dir>/roles/roles.json`
119
+ 3. if `roles.json` exists, read it first and reuse matching roles
120
+ 4. if `roles.json` does not exist, create it first using `references/roles-json.md`
121
+ - include detected recurring roles when available
122
+ - if no recurring roles are detected, initialize with `{"characters": []}`
123
+ 5. load reusable prompt sources in this order:
124
+ - user-provided prompt file or role definitions
125
+ - existing `<project_dir>/pictures/<content_name>/prompts.json` (if present)
126
+ 6. apply role policy:
127
+ - defined role: reuse existing role skeleton following `references/roles-json.md`
128
+ - undefined role: add a new role entry following `references/roles-json.md`
129
+ 7. choose schema:
130
+ - use structured format with `characters` + `scenes` when recurring roles exist
131
+ - use simple list format only when no recurring roles need continuity
132
+
133
+ ### 4) Create production plan markdown and wait for confirmation
134
+
135
+ Before generating images/audio/subtitles/video:
136
+
137
+ - create directory `<project_dir>/docs/long-video-plans/` if missing
138
+ - create a plan file named `<YYYY-MM-DD>-<content_name>.md`
139
+ - load the reference template at `references/plan-template.md`
140
+ - copy the template into the plan file first, then fill it
141
+ - use local date for `YYYY-MM-DD`; sanitize `content_name` for filename safety
142
+ - keep this long-video plan location separate from short-video plans (`<project_dir>/docs/plans/`)
143
+ - include only these sections:
144
+ - `## Meta Data`
145
+ - `## Reference Text`
146
+ - `## Images Needed To Be Generated`
147
+ - `## Animation Plan For Audience Retention`
148
+ - in `Meta Data`, include compact runtime/layout/output metadata and keep aspect ratio at `16:9`
149
+ - in `Reference Text`, include only source references (file paths/URLs + range/scope + purpose), not full long text
150
+ - in `Images Needed To Be Generated`, list every image required for this run and mark all as fresh generation (no generated-image reuse)
151
+ - in `Animation Plan For Audience Retention`, include chapter-level animation type, transition, and focus goal
152
+ - replace all square-bracket placeholders with concrete content
153
+ - remove all square-bracket placeholder/instruction text before sharing the plan for confirmation
154
+ - return the absolute plan file path to the user and ask for explicit confirmation
155
+ - do not run generation/render commands until user confirms the plan document
156
+
157
+ ### 5) Generate and integrate the long-form video in required order (default path)
158
+
159
+ After plan confirmation:
160
+
161
+ - run `openai-text-to-image-storyboard` for all approved storyboard assets that need generation in the current run
162
+ - generate narration/subtitles chapter-by-chapter with `docs-to-voice` when needed
163
+ - compose one continuous Remotion timeline with `remotion-best-practices`
164
+ - maintain `16:9` output
165
+ - apply planned animation beats across opening, middle, and closing chapters
166
+ - avoid long static holds by using motion or transition treatment
167
+ - verify total rendered runtime is longer than 10 minutes unless the user explicitly requested shorter
168
+ - verify animation is present in the final render and aligns with the approved plan
169
+
170
+ ### 6) Keep reusable project artifacts
171
+
172
+ Default workspace:
173
+
174
+ - `<project_dir>/video/<content_name>/remotion/`
175
+
176
+ Keep Remotion sources by default unless the user explicitly requests cleanup.
177
+
178
+ Git hygiene (required):
179
+
180
+ - create or update `<project_dir>/video/<content_name>/remotion/.gitignore`
181
+ - do not remove user-defined ignore rules already in that file
182
+ - ensure it includes at least these entries:
183
+ - `node_modules/`
184
+ - `.cache/`
185
+ - `dist/`
186
+ - `build/`
187
+ - `out/`
188
+ - `.DS_Store`
189
+ - `*.log`
190
+
191
+ ## Output Contract
192
+
193
+ Return absolute paths for produced artifacts:
194
+
195
+ - plan markdown file (`<project_dir>/docs/long-video-plans/<YYYY-MM-DD>-<content_name>.md`)
196
+ - `roles.json` file used for role reuse/initialization (`<project_dir>/roles/roles.json`)
197
+ - `prompts.json` file used for generation
198
+ - storyboard directory (if generated or used; generated storyboard images must be fresh for this run)
199
+ - narration audio file (if generated or used)
200
+ - subtitle SRT file (if generated or used)
201
+ - final long-form MP4 in `16:9` with planned animations
202
+ - Remotion workspace directory
203
+ - Remotion `.gitignore` file path
204
+
205
+ Also report:
206
+
207
+ - extracted long-form structure summary (and whether it was user-locked or agent-abstracted)
208
+ - chapter duration summary and total runtime
209
+ - animation plan summary (planned vs actual)
210
+ - role prompt reuse summary (reused vs newly defined roles)
211
+ - what assumptions were clarified through interactive questions
212
+ - subtitle sync verification (first/middle/last cue spot check)
213
+ - generated-image policy verification (fresh generation confirmed, no generated-image reuse)
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Video Production"
3
+ short_description: "Generate 16:9 long-form videos with plan confirmation, fresh images, and timeline animations"
4
+ default_prompt: "Use $video-production to produce long-form videos (more than 10 minutes) by following user instructions. For text inputs, extract a coherent long-form story arc, split it into timed chapters, and keep final output at 16:9 (default 1920x1080). Before generating or updating prompts, detect recurring roles and ensure <project_dir>/roles/roles.json exists first (create it if missing using references/roles-json.md), then reuse existing role prompt skeletons and generate new role entries only for undefined roles using the supported JSON prompt schema. Do not reuse previously generated storyboard pictures; generate fresh storyboard images for each run unless the user supplies external assets. If required details are missing, ask interactive clarifying questions first (for example target duration, chapter pacing, subtitle style, voice, animation style, or role prompt source). Before any generation starts, create a plan markdown at <project_dir>/docs/long-video-plans/<YYYY-MM-DD>-<content_name>.md from references/plan-template.md with only these sections: meta data, reference text, images needed to be generated, and animation plan for audience retention. In the reference text section, refer to source locations only and do not embed full long text. Replace all square-bracket placeholders with concrete content, remove placeholder/instruction text, and then wait for explicit user confirmation. Do not ask whether output should be single or multi-episode; infer from the user request (default to single unless episodes are explicitly requested). Use docs-to-voice when audio/subtitles are missing and remotion-best-practices for final assembly. The final render must include timeline animations to maintain audience focus. Keep the Remotion workspace and ensure its .gitignore excludes dependency/build/cache artifacts (such as node_modules/) so git repositories stay clean."
@@ -0,0 +1,54 @@
1
+ # Video Production Plan
2
+
3
+ [Instruction: Copy this template to `<project_dir>/docs/long-video-plans/<YYYY-MM-DD>-<content_name>.md` before any generation starts.]
4
+ [Instruction: Replace every square-bracket placeholder with real content.]
5
+ [Instruction: After filling, delete all square-bracket instruction/placeholder text before showing the plan to the user for confirmation.]
6
+
7
+ # [VIDEO_TITLE]
8
+
9
+ ## Meta Data
10
+
11
+ [Instruction: Fill only compact metadata used for production decisions and stage sequencing.]
12
+ - Date: [YYYY-MM-DD]
13
+ - Content Name: [CONTENT_NAME]
14
+ - Aspect Ratio / Resolution: [16:9 / 1920x1080]
15
+ - Target Duration (minutes): [TARGET_DURATION_MINUTES]
16
+ - Output Mode: [SINGLE_OR_MULTI_EPISODE]
17
+ - Execution Sequence: [PLAN -> IMAGES -> AUDIO -> REMOTION]
18
+ - Audio Track Plan: [GENERATE_WITH_DOCS_TO_VOICE_OR_REUSE_EXISTING]
19
+ - Final Assembly Plan: [REMOTION_BEST_PRACTICES]
20
+ - Remotion Workspace: [ABSOLUTE_PATH]
21
+
22
+ ## Reference Text
23
+
24
+ [Instruction: Do not paste full long text. Only reference source locations and short purpose notes because this skill targets long-form generation.]
25
+ 1. [SOURCE_ID] - [TYPE_FILE_OR_URL] - [ABSOLUTE_PATH_OR_URL]
26
+ - Scope: [CHAPTER_OR_RANGE]
27
+ - Purpose: [HOW_THIS_SOURCE_IS_USED]
28
+ 2. [SOURCE_ID] - [TYPE_FILE_OR_URL] - [ABSOLUTE_PATH_OR_URL]
29
+ - Scope: [CHAPTER_OR_RANGE]
30
+ - Purpose: [HOW_THIS_SOURCE_IS_USED]
31
+
32
+ ## Images Needed To Be Generated
33
+
34
+ [Instruction: List only images that still need generation for this run. Do not reuse previously generated storyboard images. If none, write `None`.]
35
+ 1. [SCENE_ID_OR_ORDER] - [IMAGE_PROMPT_OR_DESCRIPTION]
36
+ - Usage: [INTENDED_USAGE_IN_LONG_VIDEO]
37
+ - Generation Policy: [FRESH_GENERATION]
38
+ 2. [SCENE_ID_OR_ORDER] - [IMAGE_PROMPT_OR_DESCRIPTION]
39
+ - Usage: [INTENDED_USAGE_IN_LONG_VIDEO]
40
+ - Generation Policy: [FRESH_GENERATION]
41
+
42
+ ## Animation Plan For Audience Retention
43
+
44
+ [Instruction: List chapter-level animation plans used in final Remotion assembly to avoid static visuals and keep audience focus.]
45
+ 1. [CHAPTER_ID_OR_RANGE]
46
+ - Animation Type: [PAN_ZOOM_OR_PARALLAX_OR_CAMERA_MOVE]
47
+ - Motion Notes: [HOW_MOTION_IS_APPLIED]
48
+ - Transition: [CUT_FADE_SLIDE_OR_OTHER]
49
+ - Focus Goal: [WHY_THIS_MAINTAINS_ATTENTION]
50
+ 2. [CHAPTER_ID_OR_RANGE]
51
+ - Animation Type: [PAN_ZOOM_OR_PARALLAX_OR_CAMERA_MOVE]
52
+ - Motion Notes: [HOW_MOTION_IS_APPLIED]
53
+ - Transition: [CUT_FADE_SLIDE_OR_OTHER]
54
+ - Focus Goal: [WHY_THIS_MAINTAINS_ATTENTION]