Skip to content
Content
Command

/contribute

Share improvements - issues, PRs, skills, templates

From plugin
claude-code-video-toolkit
2.1k13 skills13 commands
Install
$ npx -y skills add digitalsamba/claude-code-video-toolkit --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/contribute

Context preview

What this command does when you run it.

Share improvements - issues, PRs, skills, templates

Command definition

contribute.md
description: Share improvements - issues, PRs, skills, templates

Contribute

Help users contribute improvements back to the toolkit without sharing their private project work.

Entry Point

When invoked, determine the contribution type:

How would you like to contribute?

  1. **Report an issue** - Bug, missing feature, or question
  2. **Submit an improvement** - PR for command, skill, template, or docs
  3. **Share a new skill** - Package domain knowledge you've developed
  4. **Share a template** - Generalize a project into a reusable template
  5. **Share an example project** - Showcase a real project (configs + scripts, no large media)

Which would you like to do?

---

Option 1: Report an Issue

I'll help you create a GitHub issue.

What type of issue?
  1. ๐Ÿ› Bug report
  2. ๐Ÿ’ก Feature request
  3. ๐Ÿ“ Documentation improvement
  4. โ“ Question

Describe the issue:

Then generate issue with `gh issue create`:

gh issue create \
  --repo digitalsamba/claude-code-video-toolkit \
  --title "Bug: description" \
  --body "## Description

[User's description]

## Steps to Reproduce

[If bug]

## Expected Behavior

[If bug]

---
Reported via /contribute command"

---

Option 2: Submit an Improvement

Step 1: Verify Safety

Let me check what would be shared...

โœ… Safe to share:
   .claude/commands/video.md (modified)
   .claude/skills/ffmpeg/SKILL.md (modified)

โŒ Ignored (stays private):
   projects/ (your video work)
   assets/voices/ (your voice samples)
   .env (secrets)

Does this look right?

Step 2: Create Branch & Commit

# Show current status
git status

# Create branch
git checkout -b improve/short-description

# Stage toolkit files only
git add .claude/ templates/ lib/ docs/ _internal/ tools/ brands/default/

# Commit with description
git commit -m "$(cat <<'EOF'
Improve: short description

Longer description of what changed and why.

๐Ÿค– Generated with Claude Code
EOF
)"

Step 3: Create PR

gh pr create \
  --title "Improve: short description" \
  --body "$(cat <<'EOF'
## Summary

What this PR improves.

## Changes

- Change 1
- Change 2

## Testing

How to test the improvement.

---
๐Ÿค– Generated with Claude Code
EOF
)"

Step 4: Confirmation

PR created! ๐ŸŽ‰

View at: [PR URL]

Your projects/ directory was NOT included.
Only toolkit improvements were shared.

After merge, you can update your local copy:
  git checkout main
  git pull

---

Option 3: Share a Skill

Step 1: Identify Skill

Which skill would you like to share?

Found in .claude/skills/:
  1. ffmpeg (beta) - already in toolkit
  2. my-new-skill (draft) - your addition

Or describe a new skill to create.

Step 2: Prepare Skill

Check skill is ready:

  • [ ] SKILL.md has clear description
  • [ ] Examples are tested and work
  • [ ] No project-specific paths or secrets
  • [ ] Status is at least "beta"

Step 3: Create PR

Same as Option 2, but focused on `.claude/skills/{name}/`

---

Option 4: Share a Template

Step 0: Is it actually a template? (ask this first)

Most "new template" ideas are really a **brand profile**. Ask before anything else, and take the answer seriously โ€” this is the single most common wrong turn in this command:

What makes your video different from the closest existing template?

  a. Colors, fonts, logo, narrator voice
  b. Scene pacing / timing values
  c. Different scenes, different structure, different composition code

If (a) or (b) only -> you want a BRAND PROFILE, not a template.

**If (a) or (b):** stop here and run `/brand` instead. Templates read their palette, fonts and voice from a brand (`voice.brand` in `config.json` points at `brands/<name>/voice.json`), and timing values like `lead`/`tail`/`xfade` live in your project's own `config.json`. Copying a template to change those produces a near-identical fork that stops inheriting fixes to the original โ€” worse for you than for the toolkit.

A brand profile does not need to be committed to this repo to work. Keep it local unless it is genuinely useful to other people.

**Only continue below if (c)** โ€” the composition code itself differs.

Step 1: Identify Template

Templates are generalized from projects.

Do you have a project you'd like to turn into a template?
Or an existing template in templates/ to share?

Step 2: Generalize (if from project)

To turn a project into a shareable template:

1. Copy to templates/:
   cp -r projects/my-video templates/my-template

2. Remove project-specific content:
   - Clear demo videos from public/demos/
   - Reset config to example values
   - Remove generated audio
   - Update README with generic instructions

3. Verify it works:
   cd templates/my-template
   npm install
   npm run studio

4. Check it is not a near-duplicate โ€” diff every file against the
   template you started from:

   for f in <new-template>/*; do
     diff -q "<base-template>/$(basename "$f")" "$f" 2>/dev/null
   done

   Identical composition code (build.py, gen_captions.py, src/) means this
   should be a brand profile plus project config, not a template. Go back
   to Step 0.

Ready to proceed?

Step 3: Create PR

Same as Option 2, but focused on `templates/{name}/`

---

Option 5: Share an Example Project

Example projects showcase real-world usage. They include configs, scripts, and documentation but NOT large media files.

Step 1: List Available Projects

Found in projects/:

  1. digital-samba-skill-demo
     Marketing video for DS Claude Code skill
     Template: product-demo style

  2. sprint-review-cho-oyu
     iOS sprint review for Digital Samba Mobile
     Template: sprint-review

Which project would you like to share as an example?

Step 1b: Contributor Recognition

We'd like to credit you for sharing this example!

Your name or organization: ___
Website URL (optional, for backlink): ___

This will appear in:
  - examples/README.m
Read more
Ships withclaude-code-video-toolkit

Tell Claude Code what video you want โ€” it writes the script, generates the voiceover, music, and visuals, and renders the MP4.

Get the whole plugin

Other commands on claude-code-video-toolkit.