Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create a new ButterCut library. Gather library info (name, footage location, language, transcript proofreading) and scaffold the library. Use when the user wants to start a **new** library. Libraries are containers of footage and footage analysis (transcripts, contact sheets, etc). User's may also refer to Libraries as "projects" or similiar. Ask them to confirm if they want a new Library (footage container) or just a new cut (roughcut, select, etc) if unsure.
.claude/skills/barefootford-create-library/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 4% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -18% | 0% |
This skill is performed in the main thread.
Before any library setup, check if libraries/settings.yaml exists. If not, copy from template:
bashcp templates/settings_template.yaml libraries/settings.yaml
If no previous settings.yaml was present, use AskUserQuestion to ask the user to confirm or change their defaults (editor and whisper_model).
Editor options (label shown to user → value to save):
fcpxpremiereresolvewhisper_model options:
transcript_refinement)Save the shortcode (fcpx / premiere / resolve) to libraries/settings.yaml.
First, guard against clobbering an existing library. Once you have a candidate name (after question 1 below), check:
bashruby lib/buttercut/library.rb <name> exists # exits 0 if it does, 1 if not
If it already exists, stop creating — the user is really resuming or adding footage. Switch to the process-library skill instead.
Ask the user these questions one at a time — never all at once.
mov, mp4, mts, m2ts, mxf, avi; image — jpg, jpeg, png. Anything else is rejected with a message naming the supported sets (it can be converted with ffmpeg first).AskUserQuestion with options: "English", "Spanish", and a free-text fallback for other languages.en, es, fr) behind the scenes when needed for transcription.AskUserQuestion with this exact question: "Can I proofread the transcripts after they're generated? I'll use the video's context to fix mistakes."transcript_refinement in library.yaml (true for Yes, false for No). Default to true if the user skips.Read the editor from libraries/settings.yaml — you'll pass it into the create call next.
Library.create is the one operation that doesn't have a plain CLI form (kwarg-heavy). Run it via ruby -e. It creates the directory tree (transcripts/, contact_sheets/, summaries/, cuts/, plans/, misc/), ffprobes each video for duration, and writes library.yaml in one call. media_paths takes videos and images together — the type is inferred from each file's extension:
bashruby -e "require_relative 'lib/buttercut/library'; \ Library.create('my-library', \ language: 'en', \ editor: 'fcpx', \ transcript_refinement: true, \ media_paths: ['/abs/foo.mov', '/abs/title-card.png'])"
Each video entry starts with empty transcript, contact_sheet, and summary — empty means "todo", filename presence means "done." Image entries get only an empty summary (no transcript, contact sheet, or duration — stills are timeless).
The library now exists but no footage has been analyzed. Continue straight into the process-library skill to analyze the footage end-to-end. Read that skill and continue processing the library.
Tell the user: "Library setup complete. Found N] videos (55 minutes of footage]). Starting footage analysis..." then proceed with process-library against the library you just created.
templates/library_template.yaml and run ruby lib/buttercut/library.rb migrate if anything's missing or renamed. See AGENTS.md → Critical Principles.Other measured skills in the registry, with their headline benchmark lift.