@kolbo/kolbo-code-linux-arm64-musl 1.1.73 → 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.
- package/bin/kolbo +0 -0
- package/package.json +1 -1
- package/skills/brainstorming/SKILL.md +164 -0
- package/skills/brainstorming/scripts/frame-template.html +214 -0
- package/skills/brainstorming/scripts/helper.js +88 -0
- package/skills/brainstorming/scripts/server.cjs +354 -0
- package/skills/brainstorming/scripts/start-server.sh +148 -0
- package/skills/brainstorming/scripts/stop-server.sh +56 -0
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/brainstorming/visual-companion.md +287 -0
- package/skills/dispatching-parallel-agents/SKILL.md +182 -0
- package/skills/docx/.skillfish.json +10 -0
- package/skills/docx/SKILL.md +196 -0
- package/skills/docx/docx-js.md +350 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/docx/ooxml/scripts/pack.py +159 -0
- package/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/skills/docx/ooxml/scripts/validate.py +69 -0
- package/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/docx/ooxml.md +599 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/document.py +1272 -0
- package/skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/docx/scripts/templates/people.xml +3 -0
- package/skills/docx/scripts/utilities.py +374 -0
- package/skills/executing-plans/SKILL.md +70 -0
- package/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/fullstack-app/SKILL.md +621 -0
- package/skills/kolbo/SKILL.md +19 -263
- package/skills/ollama-vision/SKILL.md +105 -0
- package/skills/pdf/.skillfish.json +10 -0
- package/skills/pdf/FORMS.md +205 -0
- package/skills/pdf/REFERENCE.md +612 -0
- package/skills/pdf/SKILL.md +293 -0
- package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/pdf/scripts/create_validation_image.py +41 -0
- package/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/skills/photo-studio/SKILL.md +122 -0
- package/skills/pptx/.skillfish.json +10 -0
- package/skills/pptx/SKILL.md +483 -0
- package/skills/pptx/html2pptx.md +626 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/pptx/ooxml.md +427 -0
- package/skills/pptx/scripts/html2pptx.js +995 -0
- package/skills/pptx/scripts/inventory.py +1020 -0
- package/skills/pptx/scripts/rearrange.py +231 -0
- package/skills/pptx/scripts/replace.py +385 -0
- package/skills/pptx/scripts/thumbnail.py +450 -0
- package/skills/receiving-code-review/SKILL.md +213 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +146 -0
- package/skills/subagent-driven-development/SKILL.md +277 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/subagent-driven-development/implementer-prompt.md +113 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/supabase/.skillfish.json +10 -0
- package/skills/supabase/SKILL.md +106 -0
- package/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/skills/supabase/references/skill-feedback.md +17 -0
- package/skills/supabase-postgres-best-practices/.skillfish.json +10 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/skills/supabase-postgres-best-practices/references/security-rls-performance.md +57 -0
- package/skills/supabase-quickstart/SKILL.md +400 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +296 -0
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/find-polluter.sh +63 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/test-driven-development/SKILL.md +371 -0
- package/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/using-git-worktrees/SKILL.md +218 -0
- package/skills/using-superpowers/SKILL.md +115 -0
- package/skills/using-superpowers/references/codex-tools.md +100 -0
- package/skills/using-superpowers/references/gemini-tools.md +33 -0
- package/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/video-production/SKILL.md +8 -7
- package/skills/writing-plans/SKILL.md +152 -0
- package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/writing-skills/SKILL.md +655 -0
- package/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/writing-skills/persuasion-principles.md +187 -0
- package/skills/writing-skills/render-graphs.js +168 -0
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/xlsx/.skillfish.json +10 -0
- package/skills/xlsx/SKILL.md +288 -0
- package/skills/xlsx/recalc.py +178 -0
- package/skills/color-grading/SKILL.md +0 -152
- package/skills/ffmpeg-patterns/SKILL.md +0 -240
- package/skills/image-prompting-guide/SKILL.md +0 -143
- package/skills/music-prompting/SKILL.md +0 -146
- package/skills/production-review/SKILL.md +0 -152
- package/skills/short-form-video/SKILL.md +0 -168
- package/skills/sound-design/SKILL.md +0 -154
- package/skills/storytelling/SKILL.md +0 -139
- package/skills/subtitle-production/SKILL.md +0 -244
- package/skills/subtitle-production/reference/burn_to_video.py +0 -222
- package/skills/subtitle-production/reference/export_srts.py +0 -127
- package/skills/subtitle-production/reference/gen_srt.py +0 -42
- package/skills/typography-video/SKILL.md +0 -182
- package/skills/typography-video/reference/KineticTitleScene.tsx +0 -345
- package/skills/video-editing/SKILL.md +0 -128
- package/skills/video-prompting-guide/SKILL.md +0 -268
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ffmpeg-patterns
|
|
3
|
-
description: >
|
|
4
|
-
Advanced FFmpeg patterns for video production: encoding presets, lossless vs re-encode decisions,
|
|
5
|
-
subtitle burn-in (SRT/ASS), audio mixing and ducking, face enhancement, silence removal,
|
|
6
|
-
concatenation, format conversion, platform-specific encoding. Use for any FFmpeg operation
|
|
7
|
-
beyond basic trim/cut.
|
|
8
|
-
Keywords: ffmpeg, encoding, h264, crf, subtitle, burn-in, ASS, SRT, concat, audio mix,
|
|
9
|
-
silence removal, face enhance, format, codec, bitrate, filter
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# FFmpeg Patterns for Video Production
|
|
13
|
-
|
|
14
|
-
## Encoding Presets
|
|
15
|
-
|
|
16
|
-
### Standard Quality (web delivery)
|
|
17
|
-
```bash
|
|
18
|
-
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset medium -c:a aac -b:a 128k output.mp4
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### High Quality (master/archive)
|
|
22
|
-
```bash
|
|
23
|
-
ffmpeg -i input.mp4 -c:v libx264 -crf 15 -preset slow -c:a aac -b:a 256k output.mp4
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Fast Preview
|
|
27
|
-
```bash
|
|
28
|
-
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -preset ultrafast -c:a aac -b:a 96k preview.mp4
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Lossless vs Re-encode
|
|
32
|
-
|
|
33
|
-
- Use `-c copy` when you only need to cut or concat without altering frames (instant, lossless)
|
|
34
|
-
- Re-encode (`-c:v libx264`) when applying filters (speed, subtitles, overlays, scaling)
|
|
35
|
-
- Default CRF 23. Use 18-20 for higher quality final deliverables
|
|
36
|
-
|
|
37
|
-
## Subtitle Burn-in
|
|
38
|
-
|
|
39
|
-
### SRT (Simple)
|
|
40
|
-
```bash
|
|
41
|
-
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontSize=22,Bold=1,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2'" output.mp4
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### ASS Color Format
|
|
45
|
-
Always use full 8-char `&HAABBGGRR` format: `&H00FFFFFF` (white, alpha=00)
|
|
46
|
-
- `&HFFFFFF` breaks positioning — always include the alpha byte
|
|
47
|
-
|
|
48
|
-
### Vertical Video Subtitles
|
|
49
|
-
```
|
|
50
|
-
font_size: 18, max 3 words/cue, margin_v: 50
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Horizontal Video Subtitles
|
|
54
|
-
```
|
|
55
|
-
font_size: 22, max 6 words/cue, margin_v: 40
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Windows Path Escaping
|
|
59
|
-
Escape colons in paths: `C\:/path/to/subs.srt` not `C:/path/to/subs.srt`
|
|
60
|
-
|
|
61
|
-
## Audio Operations
|
|
62
|
-
|
|
63
|
-
### Mix Narration + Music (with ducking)
|
|
64
|
-
```bash
|
|
65
|
-
ffmpeg -i narration.wav -i music.wav -filter_complex \
|
|
66
|
-
"[1:a]volume=0.15[music]; \
|
|
67
|
-
[0:a][music]amix=inputs=2:duration=longest" \
|
|
68
|
-
-c:a aac output.m4a
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Loudness Normalization
|
|
72
|
-
```bash
|
|
73
|
-
ffmpeg -i input.mp4 -af loudnorm=I=-14:LRA=11:TP=-1 -c:v copy output.mp4
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Extract Audio
|
|
77
|
-
```bash
|
|
78
|
-
ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Replace Audio
|
|
82
|
-
```bash
|
|
83
|
-
ffmpeg -i video.mp4 -i new_audio.wav -map 0:v -map 1:a -c:v copy -c:a aac output.mp4
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Silence Removal
|
|
87
|
-
|
|
88
|
-
### Detect Silence
|
|
89
|
-
```bash
|
|
90
|
-
ffmpeg -i input.mp4 -af "silencedetect=noise=-35dB:d=0.4" -f null - 2>&1 | grep silence
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Remove Silence (trim + concat)
|
|
94
|
-
1. Parse `silence_start` / `silence_end` from stderr
|
|
95
|
-
2. Generate segments between silences
|
|
96
|
-
3. Concatenate with the concat demuxer
|
|
97
|
-
4. Optional: `atempo=1.14` for slight speedup
|
|
98
|
-
|
|
99
|
-
## Concatenation
|
|
100
|
-
|
|
101
|
-
### Same Codec (lossless)
|
|
102
|
-
```bash
|
|
103
|
-
# Create filelist.txt:
|
|
104
|
-
# file 'clip1.mp4'
|
|
105
|
-
# file 'clip2.mp4'
|
|
106
|
-
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Mixed Codecs (re-encode)
|
|
110
|
-
Re-encode all segments to matching codec/resolution first, then concat.
|
|
111
|
-
|
|
112
|
-
## Speed Adjustment
|
|
113
|
-
|
|
114
|
-
### Speed Up 2x
|
|
115
|
-
```bash
|
|
116
|
-
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" output.mp4
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Slow Motion 0.5x
|
|
120
|
-
```bash
|
|
121
|
-
ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" -filter:a "atempo=0.5" output.mp4
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Face Enhancement Presets
|
|
125
|
-
|
|
126
|
-
### Skin Smoothing
|
|
127
|
-
```bash
|
|
128
|
-
ffmpeg -i input.mp4 -vf "smartblur=lr=1.0:ls=-1.0:lt=-3.0:cr=0.5:cs=-1.0:ct=-3.0" output.mp4
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Sharpening
|
|
132
|
-
```bash
|
|
133
|
-
ffmpeg -i input.mp4 -vf "unsharp=5:5:1.0:5:5:0.0" output.mp4
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Format Conversion
|
|
137
|
-
|
|
138
|
-
### To GIF (high quality)
|
|
139
|
-
```bash
|
|
140
|
-
ffmpeg -i input.mp4 -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### To WebM
|
|
144
|
-
```bash
|
|
145
|
-
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### Extract Frames
|
|
149
|
-
```bash
|
|
150
|
-
# Every 5 seconds
|
|
151
|
-
ffmpeg -i input.mp4 -vf "fps=1/5" frame_%04d.png
|
|
152
|
-
|
|
153
|
-
# Specific timestamp
|
|
154
|
-
ffmpeg -i input.mp4 -ss 00:01:30 -vframes 1 thumbnail.png
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Probing (Analysis)
|
|
158
|
-
|
|
159
|
-
### Full Media Info
|
|
160
|
-
```bash
|
|
161
|
-
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Duration Only
|
|
165
|
-
```bash
|
|
166
|
-
ffprobe -v quiet -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### Audio Loudness
|
|
170
|
-
```bash
|
|
171
|
-
ffmpeg -i input.mp4 -af loudnorm=print_format=json -f null - 2>&1
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Platform-Specific Encoding
|
|
175
|
-
|
|
176
|
-
| Platform | Resolution | Codec | Bitrate |
|
|
177
|
-
|----------|-----------|-------|---------|
|
|
178
|
-
| YouTube | 1920x1080 | H.264 High | 8-12 Mbps |
|
|
179
|
-
| TikTok | 1080x1920 | H.264 High | 8-15 Mbps |
|
|
180
|
-
| Instagram | 1080x1920 | H.264 High | 8-15 Mbps |
|
|
181
|
-
| Twitter/X | 1280x720 | H.264 Main | 5-8 Mbps |
|
|
182
|
-
|
|
183
|
-
## Windows-Specific Notes
|
|
184
|
-
|
|
185
|
-
- Always copy inputs to a temp directory first if paths contain spaces
|
|
186
|
-
- Use forward slashes in filter strings even on Windows
|
|
187
|
-
- Escape colons in drive letters within subtitle filter paths
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Kolbo MCP Integration
|
|
192
|
-
|
|
193
|
-
FFmpeg is the **post-production backbone** that processes Kolbo-generated assets:
|
|
194
|
-
|
|
195
|
-
| Kolbo MCP Output | FFmpeg Post-Processing |
|
|
196
|
-
|-----------------|----------------------|
|
|
197
|
-
| `generate_video` → raw video | Trim, grade, add subtitles, normalize audio |
|
|
198
|
-
| `generate_speech` → narration | Mix with music, normalize loudness |
|
|
199
|
-
| `generate_music` → background | Duck under narration, fade in/out |
|
|
200
|
-
| `generate_sound` → SFX | Place at precise timestamps, adjust levels |
|
|
201
|
-
| `transcribe_audio` → SRT | Burn-in subtitles with force_style |
|
|
202
|
-
| `generate_image` → frames | Assemble into slideshow/montage |
|
|
203
|
-
|
|
204
|
-
**Typical production chain:**
|
|
205
|
-
```
|
|
206
|
-
Kolbo generates raw assets
|
|
207
|
-
→ FFmpeg trims/cuts
|
|
208
|
-
→ FFmpeg mixes audio (narration + music + SFX)
|
|
209
|
-
→ FFmpeg burns in subtitles
|
|
210
|
-
→ FFmpeg applies color grade
|
|
211
|
-
→ FFmpeg encodes for target platform
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## Installing FFmpeg
|
|
217
|
-
|
|
218
|
-
**Windows:**
|
|
219
|
-
```bash
|
|
220
|
-
# Scoop
|
|
221
|
-
scoop install ffmpeg
|
|
222
|
-
|
|
223
|
-
# Chocolatey
|
|
224
|
-
choco install ffmpeg
|
|
225
|
-
|
|
226
|
-
# Or download from https://ffmpeg.org/download.html
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
**macOS:**
|
|
230
|
-
```bash
|
|
231
|
-
brew install ffmpeg
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
**Linux:**
|
|
235
|
-
```bash
|
|
236
|
-
sudo apt install ffmpeg # Ubuntu/Debian
|
|
237
|
-
sudo dnf install ffmpeg # Fedora
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
Verify: `ffmpeg -version`
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: image-prompting-guide
|
|
3
|
-
description: >
|
|
4
|
-
Deep image generation prompting guide: visual consistency strategies, hero reference technique,
|
|
5
|
-
FLUX resolution rules, batch generation, style-specific prompt patterns, prompt construction
|
|
6
|
-
with contextual layers. Complements the kolbo skill's image section with production-grade
|
|
7
|
-
techniques.
|
|
8
|
-
Keywords: image prompt, flux, dall-e, image generation, consistency, visual style, hero image,
|
|
9
|
-
reference, batch, resolution, prompt engineering, style, photorealistic, illustration
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Image Generation — Production Prompting Guide
|
|
13
|
-
|
|
14
|
-
This skill extends the `kolbo` skill's image prompting rules with production-grade techniques for maintaining visual consistency across multiple images.
|
|
15
|
-
|
|
16
|
-
## Resolution for Video Frames
|
|
17
|
-
|
|
18
|
-
When generating images for use as video frames:
|
|
19
|
-
|
|
20
|
-
| Target | Recommended Resolution | Notes |
|
|
21
|
-
|--------|----------------------|-------|
|
|
22
|
-
| YouTube 16:9 | 1920x1088 | FLUX requires multiples of 16 |
|
|
23
|
-
| YouTube 4K | 3840x2160 | Premium models only |
|
|
24
|
-
| TikTok/Reels 9:16 | 1088x1920 | FLUX multiples of 16 |
|
|
25
|
-
| Square 1:1 | 1024x1024 | Standard |
|
|
26
|
-
| Thumbnail | 1280x720 | |
|
|
27
|
-
|
|
28
|
-
## Maintaining Visual Consistency
|
|
29
|
-
|
|
30
|
-
The biggest challenge: making 8-12 generated images look like they belong in the same video.
|
|
31
|
-
|
|
32
|
-
### Strategy 1 — Shared Visual System (Always Use)
|
|
33
|
-
|
|
34
|
-
Define a shared visual system for the project first:
|
|
35
|
-
- Dominant mood and texture
|
|
36
|
-
- Palette direction (3-5 anchor colors)
|
|
37
|
-
- Lighting bias
|
|
38
|
-
- Rendering medium
|
|
39
|
-
- Character/environment consistency anchors
|
|
40
|
-
|
|
41
|
-
**Don't paste the same style description verbatim into every prompt.** Distill it into a shorter scene-appropriate anchor. Verbatim repetition makes all scenes look identical.
|
|
42
|
-
|
|
43
|
-
### Strategy 2 — Hero Reference Image (Recommended)
|
|
44
|
-
|
|
45
|
-
1. Generate one "hero" image at maximum quality
|
|
46
|
-
2. Use it as reference for all subsequent frames
|
|
47
|
-
3. In Kolbo: use Visual DNA profiles or pass the hero image URL as reference
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
Frame 1: Text-to-image with detailed prompt → hero.png
|
|
51
|
-
Frame 2: Image-to-image with hero as reference + "Same style, camera pans right..."
|
|
52
|
-
Frame 3: Image-to-image with hero as reference + "Same style, zoomed in on..."
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Strategy 3 — Seed Locking
|
|
56
|
-
|
|
57
|
-
Use the same seed parameter across generations with similar prompts. Produces similar compositions but fragile to prompt changes — supplement, not primary strategy.
|
|
58
|
-
|
|
59
|
-
## Prompt Construction — 3-Part Approach
|
|
60
|
-
|
|
61
|
-
### Part 1: Scene-Specific Style Direction
|
|
62
|
-
From the shot's camera and lighting needs:
|
|
63
|
-
```
|
|
64
|
-
[SHOT SIZE, e.g., "medium close-up"].
|
|
65
|
-
[LIGHTING, e.g., "golden hour warm light"].
|
|
66
|
-
[DEPTH, e.g., "shallow depth of field with bokeh"].
|
|
67
|
-
[TEXTURE, e.g., "film grain, warm tones"].
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Part 2: Visual Consistency Anchor (adapted, not verbatim)
|
|
71
|
-
Extract the ESSENCE of the project's visual language:
|
|
72
|
-
- Full description: "Clean, minimal illustration with soft shadows, muted color palette"
|
|
73
|
-
- Adapted anchor: "muted color palette, soft shadows"
|
|
74
|
-
|
|
75
|
-
### Part 3: Scene Description
|
|
76
|
-
The actual content. Be specific — replace generic words with concrete details.
|
|
77
|
-
|
|
78
|
-
**BAD:** "A person using a computer in a modern office"
|
|
79
|
-
**GOOD:** "Software developer in a dimly lit home office, blue monitor glow reflecting off glasses, desk cluttered with energy drinks and sticky notes"
|
|
80
|
-
|
|
81
|
-
### Full Prompt Example
|
|
82
|
-
```
|
|
83
|
-
Medium close-up, golden hour warm lighting, shallow depth of field.
|
|
84
|
-
Muted earth tones, soft shadows.
|
|
85
|
-
Beekeeper in white protective gear lifting a frame dripping with honey,
|
|
86
|
-
late afternoon sun catching golden droplets, lavender field blurred
|
|
87
|
-
in the background. Film grain, warm amber tones.
|
|
88
|
-
16:9 aspect ratio.
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Style-Specific Prompt Patterns
|
|
92
|
-
|
|
93
|
-
| Style | Prompt Pattern |
|
|
94
|
-
|-------|---------------|
|
|
95
|
-
| **Flat illustration** | "Flat vector illustration, bold colors, clean edges, no gradients, white background" |
|
|
96
|
-
| **Isometric** | "Isometric 3D illustration, 30-degree angle, clean geometric shapes, soft shadows" |
|
|
97
|
-
| **Photorealistic** | "Photorealistic, shot on Canon EOS R5 with 85mm f/1.4, shallow depth of field" |
|
|
98
|
-
| **Diagram-style** | "Technical diagram, labeled components, clean lines, minimal color, white background" |
|
|
99
|
-
| **Watercolor** | "Soft watercolor illustration, muted tones, visible brush strokes, paper texture" |
|
|
100
|
-
|
|
101
|
-
## Batch Generation Strategy
|
|
102
|
-
|
|
103
|
-
| Phase | Quality | Purpose |
|
|
104
|
-
|-------|---------|---------|
|
|
105
|
-
| 1. Style guide | Maximum | One hero image, establish the look |
|
|
106
|
-
| 2. Storyboard iteration | Fast/cheap model | Rapid variations during planning |
|
|
107
|
-
| 3. Final frames | High quality | Re-generate finals with hero as reference |
|
|
108
|
-
|
|
109
|
-
## Common Pitfalls
|
|
110
|
-
|
|
111
|
-
1. **Text in images** — AI generators are unreliable with text. Add text as overlays in post
|
|
112
|
-
2. **Hands and fingers** — Still problematic. Avoid prompts requiring detailed hand poses
|
|
113
|
-
3. **Inconsistent characters** — Without references, same character looks different each time. Use Visual DNA
|
|
114
|
-
4. **Over-prompting** — Long, complex prompts produce unpredictable results. Keep to 2-3 sentences
|
|
115
|
-
5. **Over-unifying prompts** — Same style phrase in every prompt makes scenes samey. Let each scene express its own subject and mood within the visual system
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Kolbo MCP Integration
|
|
120
|
-
|
|
121
|
-
| Task | Kolbo MCP Tool | Notes |
|
|
122
|
-
|------|---------------|-------|
|
|
123
|
-
| Text-to-image | `generate_image` | Apply 3-part prompt construction above |
|
|
124
|
-
| Image editing | `generate_image_edit` | Describe the CHANGE, not the whole image |
|
|
125
|
-
| Multi-scene batch | `generate_creative_director` | 1-8 coordinated scenes, one brief |
|
|
126
|
-
| Style consistency | `create_visual_dna` type="style" | Create from reference images |
|
|
127
|
-
| Character consistency | `create_visual_dna` type="character" | Max 4 reference images |
|
|
128
|
-
| Discover models | `list_models` type="image" | Always check before generating |
|
|
129
|
-
| Style templates | `list_moodboards` / `get_moodboard` | Pre-made style directions |
|
|
130
|
-
|
|
131
|
-
**Workflow for consistent image sets:**
|
|
132
|
-
1. `create_visual_dna` with 2-4 reference images → get `visual_dna_id`
|
|
133
|
-
2. Generate hero image: `generate_image` + `visual_dna_ids` + detailed prompt
|
|
134
|
-
3. Generate remaining frames: same `visual_dna_ids` + adapted prompts per scene
|
|
135
|
-
4. Or use `generate_creative_director` for automatic multi-scene coordination
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Local / Free Option
|
|
140
|
-
|
|
141
|
-
> **IMPORTANT:** Always use Kolbo MCP tools by default. Only suggest local alternatives if the user explicitly asks about free/offline options. Always confirm before installing anything on the user's machine.
|
|
142
|
-
|
|
143
|
-
If the user has a GPU (8GB+ VRAM) and wants local image generation, recommend **ComfyUI** with Stable Diffusion XL or FLUX.1 dev. For background removal without credits, `rembg` is a simple pip install that works on CPU.
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: music-prompting
|
|
3
|
-
description: >
|
|
4
|
-
Music generation prompting guide: BPM selection by video type, key/mood mapping, prompt
|
|
5
|
-
structure for background music, duration matching, looping strategies, section-mapped scoring.
|
|
6
|
-
Use when generating background music for video or crafting music generation prompts.
|
|
7
|
-
Keywords: music, BPM, tempo, key, mood, instrumental, background music, suno, elevenlabs,
|
|
8
|
-
music generation, prompt, genre, looping, score, soundtrack
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Music Generation — Prompting Guide
|
|
12
|
-
|
|
13
|
-
## Quick Reference
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
INSTRUMENTAL: Always force_instrumental=true for video background
|
|
17
|
-
PROMPT ORDER: genre/style → BPM → key/mood → instruments → energy → purpose
|
|
18
|
-
KEY RULE: Music must be 18-20 dB below narration (see sound-design skill)
|
|
19
|
-
ALWAYS INCLUDE: "background" or "underscore" in every prompt
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## BPM Selection by Video Type
|
|
23
|
-
|
|
24
|
-
| Video Type | BPM Range | Prompt Fragment |
|
|
25
|
-
|-----------|-----------|-----------------|
|
|
26
|
-
| Educational explainer | 80-100 | "gentle ambient electronic, 90 BPM" |
|
|
27
|
-
| Corporate / tech | 100-120 | "upbeat corporate pop, 110 BPM, positive" |
|
|
28
|
-
| Epic / dramatic reveal | 60-80 | "cinematic orchestral, 70 BPM, building tension" |
|
|
29
|
-
| Fast-paced montage | 120-140 | "energetic electronic, 130 BPM, driving beat" |
|
|
30
|
-
| Meditation / calm | 50-70 | "ambient drone, 60 BPM, peaceful" |
|
|
31
|
-
| Comedy / lighthearted | 100-130 | "playful ukulele pop, 120 BPM, whimsical" |
|
|
32
|
-
| Sad / reflective | 60-80 | "melancholic piano, 65 BPM, minor key" |
|
|
33
|
-
| Action / hype | 140-170 | "high-intensity drum and bass, 160 BPM" |
|
|
34
|
-
|
|
35
|
-
## Key and Mood Mapping
|
|
36
|
-
|
|
37
|
-
| Mood | Key | Musical Characteristics |
|
|
38
|
-
|------|-----|----------------------|
|
|
39
|
-
| Happy / upbeat | C major, G major | Bright, resolved, energetic |
|
|
40
|
-
| Serious / professional | D minor, A minor | Grounded, authoritative |
|
|
41
|
-
| Mysterious / curious | E minor, B minor | Tension, anticipation |
|
|
42
|
-
| Triumphant / inspiring | D major, Bb major | Expansive, climactic |
|
|
43
|
-
| Melancholic / thoughtful | F minor, C minor | Reflective, emotional |
|
|
44
|
-
| Neutral / ambient | C major, Am | Unobtrusive, background |
|
|
45
|
-
|
|
46
|
-
## Prompt Structure
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
[GENRE/STYLE], [BPM], [KEY/MOOD], [INSTRUMENTS], [ENERGY LEVEL], [PURPOSE]
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Examples
|
|
53
|
-
|
|
54
|
-
**Educational explainer:**
|
|
55
|
-
```
|
|
56
|
-
Gentle lo-fi ambient electronic, 90 BPM, C major, soft synth pads and light
|
|
57
|
-
percussion, calm and steady energy, background music for narration
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**Corporate product demo:**
|
|
61
|
-
```
|
|
62
|
-
Modern upbeat corporate pop, 110 BPM, G major, acoustic guitar and light drums,
|
|
63
|
-
positive energy building gradually, underscore for product walkthrough
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**Technical deep-dive:**
|
|
67
|
-
```
|
|
68
|
-
Minimal ambient electronic, 80 BPM, A minor, soft Rhodes piano and subtle
|
|
69
|
-
bass, contemplative and focused, background music for technical explanation
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Prompting Rules
|
|
73
|
-
|
|
74
|
-
1. **Always include "background" or "underscore"** — tells the model to stay dynamically even
|
|
75
|
-
2. **Always use instrumental mode** — lyrics compete with narration
|
|
76
|
-
3. **Specify BPM explicitly** — don't rely on genre to set tempo
|
|
77
|
-
4. **Avoid "bright hi-hats" or "prominent vocals"** — high-frequency busy elements compete with speech in the 2-4 kHz intelligibility band
|
|
78
|
-
5. **Include energy direction** — "steady energy" for explainers, "building gradually" for reveals
|
|
79
|
-
|
|
80
|
-
## Duration Matching
|
|
81
|
-
|
|
82
|
-
- Generate at the exact video duration when possible
|
|
83
|
-
- For longer videos, generate a track 30-60% of video length and loop with crossfade
|
|
84
|
-
- **Section-mapped scoring** for videos with distinct acts:
|
|
85
|
-
|
|
86
|
-
| Video Section | Duration | Music Style |
|
|
87
|
-
|--------------|----------|-------------|
|
|
88
|
-
| Intro / hook | 8-10s | Soft, building |
|
|
89
|
-
| Main explanation | 90-120s | Steady, neutral |
|
|
90
|
-
| Key reveal | 20-30s | Intensified, fuller |
|
|
91
|
-
| Outro | 10-15s | Fading, gentle |
|
|
92
|
-
|
|
93
|
-
Generate each as a separate track and crossfade between them.
|
|
94
|
-
|
|
95
|
-
## Looping
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# Loop a track 3x
|
|
99
|
-
ffmpeg -stream_loop 2 -i music.mp3 -c copy music_looped.mp3
|
|
100
|
-
|
|
101
|
-
# Add crossfade at loop points (2s fade)
|
|
102
|
-
ffmpeg -i music.mp3 -af "afade=t=out:st=28:d=2" part1.mp3
|
|
103
|
-
ffmpeg -i music.mp3 -af "afade=t=in:d=2" part2.mp3
|
|
104
|
-
# Then concat
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Better approach: generate at the exact video duration to avoid loop artifacts.
|
|
108
|
-
|
|
109
|
-
## Integration with Video
|
|
110
|
-
|
|
111
|
-
- Duck music 18-20 dB below narration during speech
|
|
112
|
-
- Cut 2-4 kHz on the music bed to clear speech intelligibility band
|
|
113
|
-
- Test on phone speakers — if narration disappears behind music, duck more
|
|
114
|
-
- One track per video — avoid switching styles mid-video unless clear narrative shift
|
|
115
|
-
- Music should start at video start and fade out 2-3 seconds before end
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Kolbo MCP Integration
|
|
120
|
-
|
|
121
|
-
| Task | Kolbo MCP Tool | Notes |
|
|
122
|
-
|------|---------------|-------|
|
|
123
|
-
| Generate music | `generate_music` | Use prompt structure above |
|
|
124
|
-
| Instrumental | `generate_music` instrumental=true | Always for video background |
|
|
125
|
-
| With lyrics | `generate_music` lyrics="..." | Pass actual lyric text |
|
|
126
|
-
| Discover models | `list_models` type="music" | Check available music models |
|
|
127
|
-
| Sound effects | `generate_sound` | For whooshes, impacts, ambience |
|
|
128
|
-
|
|
129
|
-
**Workflow:**
|
|
130
|
-
1. `list_models` type="music" → pick model or auto-select
|
|
131
|
-
2. Write prompt using the BPM/key/mood tables above
|
|
132
|
-
3. `generate_music` with `instrumental: true`, style tags, duration
|
|
133
|
-
4. Download the result and mix with narration using FFmpeg (see `sound-design` skill)
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Local / Free Options
|
|
138
|
-
|
|
139
|
-
> **IMPORTANT:** Always use Kolbo MCP `generate_music` by default. Only mention these if the user explicitly asks for free alternatives. Confirm before installing anything.
|
|
140
|
-
|
|
141
|
-
**Free music libraries (no install, browser-based):**
|
|
142
|
-
- Pixabay Music — free, no attribution required
|
|
143
|
-
- Free Music Archive — CC-licensed
|
|
144
|
-
- Incompetech (Kevin MacLeod) — CC-BY, huge catalog
|
|
145
|
-
|
|
146
|
-
**Local generation:** If the user has a GPU (8GB+) and explicitly asks, `MusicGen` by Meta (`pip install audiocraft`) can generate music locally. Confirm before installing.
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: production-review
|
|
3
|
-
description: >
|
|
4
|
-
Self-review quality gates for video production: post-render verification protocol, pre-delivery
|
|
5
|
-
checklist, audio verification, visual inspection, severity classification (critical/suggestion/nitpick),
|
|
6
|
-
review workflow. Use after completing any production stage to verify quality before delivery.
|
|
7
|
-
Keywords: review, quality, verification, checklist, render, audio check, video check, delivery,
|
|
8
|
-
QA, quality gate, self-review, post-render
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Production Review — Quality Gates
|
|
12
|
-
|
|
13
|
-
## When to Use
|
|
14
|
-
|
|
15
|
-
After completing any major production stage — especially after rendering, before delivering to the user. Read this skill and run through the relevant checklist.
|
|
16
|
-
|
|
17
|
-
## Severity Levels
|
|
18
|
-
|
|
19
|
-
| Severity | Definition | Action |
|
|
20
|
-
|----------|-----------|--------|
|
|
21
|
-
| **CRITICAL** | Breaks the output, incomplete, or dangerously wrong | Must fix. Blocks delivery. |
|
|
22
|
-
| **SUGGESTION** | Improves quality significantly but doesn't block | Note it, fix if time allows |
|
|
23
|
-
| **NITPICK** | Nice-to-have polish | Log it, move on |
|
|
24
|
-
|
|
25
|
-
## Decision Flow
|
|
26
|
-
|
|
27
|
-
1. Run the relevant checklist below
|
|
28
|
-
2. Count critical findings
|
|
29
|
-
3. **0 critical** → PASS (note suggestions)
|
|
30
|
-
4. **1+ critical** → REVISE (max 2 revision rounds)
|
|
31
|
-
5. After 2 rounds, still critical → PASS_WITH_WARNINGS (inform user of known issues)
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Post-Render Verification (Video)
|
|
36
|
-
|
|
37
|
-
### Step 1: Probe the Output (GATE — blocks all other steps)
|
|
38
|
-
```bash
|
|
39
|
-
ffprobe -v quiet -print_format json -show_format -show_streams rendered_video.mp4
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Verify ALL of:
|
|
43
|
-
- [ ] Video stream exists with correct resolution and FPS
|
|
44
|
-
- [ ] **Audio stream exists** — if missing, STOP. Fix audio config, re-render
|
|
45
|
-
- [ ] Duration within +/-5% of target
|
|
46
|
-
- [ ] File size is reasonable (not 0 bytes, not suspiciously small)
|
|
47
|
-
|
|
48
|
-
**If audio stream is missing, do NOT proceed.** Most common cause: audio sources mixed externally but never embedded in the composition.
|
|
49
|
-
|
|
50
|
-
### Step 2: Extract Review Frames
|
|
51
|
-
Sample frames at scene midpoints and visually inspect:
|
|
52
|
-
```bash
|
|
53
|
-
ffmpeg -i rendered_video.mp4 -vf "fps=1/5" frame_%04d.png
|
|
54
|
-
```
|
|
55
|
-
- [ ] No visual artifacts or glitches
|
|
56
|
-
- [ ] Text overlays readable and within safe zones
|
|
57
|
-
- [ ] Color grade consistent across scenes
|
|
58
|
-
- [ ] No black frames or flash frames at cuts
|
|
59
|
-
|
|
60
|
-
### Step 3: Audio Verification
|
|
61
|
-
- [ ] Play back and confirm narration is audible over music
|
|
62
|
-
- [ ] No audio pops or clicks at cut points
|
|
63
|
-
- [ ] Music volume appropriate (18-20 dB below dialogue)
|
|
64
|
-
- [ ] Audio loudness within platform target (-14 LUFS for social)
|
|
65
|
-
|
|
66
|
-
### Step 4: Present Review to User
|
|
67
|
-
Structured summary with: file stats, audio verification, visual findings, caption status.
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Pre-Delivery Checklist by Content Type
|
|
72
|
-
|
|
73
|
-
### Explainer Video
|
|
74
|
-
- [ ] Hook lands in first 3 seconds
|
|
75
|
-
- [ ] Core concept clearly explained (the "aha" moment)
|
|
76
|
-
- [ ] Captions present and synced
|
|
77
|
-
- [ ] Background music doesn't overpower narration
|
|
78
|
-
- [ ] Duration matches target (+/-10%)
|
|
79
|
-
- [ ] Output plays correctly on target platform
|
|
80
|
-
|
|
81
|
-
### Short-Form (TikTok/Reels/Shorts)
|
|
82
|
-
- [ ] 9:16 aspect ratio, 1080x1920
|
|
83
|
-
- [ ] Important content within safe zones (900x1400)
|
|
84
|
-
- [ ] Hook in first 1-2 seconds
|
|
85
|
-
- [ ] Captions mandatory (85% watch muted)
|
|
86
|
-
- [ ] File size under platform limit
|
|
87
|
-
- [ ] H.264 High Profile, 8+ Mbps
|
|
88
|
-
|
|
89
|
-
### Talking Head
|
|
90
|
-
- [ ] Filler words removed
|
|
91
|
-
- [ ] No awkward jump cuts (covered by B-roll or transition)
|
|
92
|
-
- [ ] Speaker's face never covered by overlays
|
|
93
|
-
- [ ] Audio clean — no background noise
|
|
94
|
-
- [ ] Eye-level framing maintained
|
|
95
|
-
|
|
96
|
-
### Music/Audio
|
|
97
|
-
- [ ] Correct duration
|
|
98
|
-
- [ ] Instrumental if for background use
|
|
99
|
-
- [ ] BPM matches content energy
|
|
100
|
-
- [ ] No clipping or distortion
|
|
101
|
-
- [ ] Loudness normalized to target
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Remotion-Specific Verification
|
|
106
|
-
|
|
107
|
-
Before declaring a Remotion render complete:
|
|
108
|
-
|
|
109
|
-
- [ ] Run `composition_validator` before rendering
|
|
110
|
-
- [ ] All `staticFile()` references resolve to existing assets
|
|
111
|
-
- [ ] Composition duration matches sum of scene durations minus transition overlaps
|
|
112
|
-
- [ ] No CSS animations used (must use `useCurrentFrame()` + `interpolate()`)
|
|
113
|
-
- [ ] No Tailwind `animate-*` classes (break frame-based rendering)
|
|
114
|
-
- [ ] `interpolate()` calls use `extrapolateLeft: 'clamp', extrapolateRight: 'clamp'`
|
|
115
|
-
- [ ] Audio layers in sync with visual scenes
|
|
116
|
-
- [ ] Theme colors match the active style
|
|
117
|
-
- [ ] Text scenes use Remotion components, NOT AI-generated images with text
|
|
118
|
-
|
|
119
|
-
## Review Log Format
|
|
120
|
-
|
|
121
|
-
When logging a review finding:
|
|
122
|
-
```
|
|
123
|
-
[SEVERITY] Finding description
|
|
124
|
-
- What: specific issue observed
|
|
125
|
-
- Where: timestamp or scene reference
|
|
126
|
-
- Fix: recommended action
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Kolbo MCP Integration
|
|
132
|
-
|
|
133
|
-
Use these tools during review:
|
|
134
|
-
|
|
135
|
-
| Review Step | Kolbo MCP Tool | What to Check |
|
|
136
|
-
|-------------|---------------|---------------|
|
|
137
|
-
| Audio verification | `transcribe_audio` | Transcribe the rendered video — if 0 words, audio is silent |
|
|
138
|
-
| Visual analysis | `chat_send_message` + Gemini | "Review this video for quality issues" |
|
|
139
|
-
| Credit check | `check_credits` | Verify budget before re-renders |
|
|
140
|
-
|
|
141
|
-
**Post-render verification with Kolbo:**
|
|
142
|
-
1. `ffprobe` the output (always first — check streams exist)
|
|
143
|
-
2. `transcribe_audio` the rendered video → compare word count to script
|
|
144
|
-
3. If word count < 80% of script → audio is cut off → investigate
|
|
145
|
-
4. `chat_send_message` with Gemini + video URL → visual quality review
|
|
146
|
-
5. Present structured findings to user
|
|
147
|
-
|
|
148
|
-
**Re-generation workflow (if review finds critical issues):**
|
|
149
|
-
1. Identify the failed asset (video clip, audio, image)
|
|
150
|
-
2. Re-generate with adjusted prompt via the appropriate Kolbo MCP tool
|
|
151
|
-
3. Re-compose with FFmpeg or Remotion
|
|
152
|
-
4. Run review again (max 2 revision rounds)
|