brand-kit
Skill19 starsChanged 29 days agoMITView on GitHub
Use when a user wants their videos to stay visually consistent — saving caption styling, card colours and geometry, title treatment, logos, fonts, voice and CTA copy once instead of redeciding them per video.
- Installs packages
17 other projects use a version of this.
Adopted by
Most recently taken up by
- matteotitta/repo-structure-agencytheir own version, first seen Nov 8, 2026
- Pagepro/nexitytheir own version, first seen Nov 8, 2026
- dotslashsimran/simcrafttheir own version, first seen Nov 8, 2026
- CatCatUncle/openworkbuddytheir own version, first seen Nov 5, 2026
- hojiahao/cineloomtheir own version, first seen Nov 1, 2026
- bodr-ing/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use expert-pov, funnel-strategy and 4 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
matteotittaSkillexpert-pov
Extracts contrarian beliefs, market perspectives, and philosophical stances from founder interviews or questionnaire
Also in 3 projects that use this
matteotittaSkillfunnel-strategy
Maps a company''s GTM motion (PLG, SLG, or Hybrid) to concrete funnel stages with inputs, outputs, and qualification
Also in 3 projects that use this
growthack88Skillicp-research
Scrapes case studies, testimonials, and solutions pages from a target website to build structured ICP documentation. Produces TAM analysis, firmographic segments, champion and economic buyer personas, use case mapping, customer proof points, and voice-of-customer synthesis with normalized attributes. Requires website URL as primary input. Upstream: recommended company-context. Downstream: feeds positioning, product-messaging, landing-page-copy, content-strategy, and outreach-emails.
Also in 3 projects that use this
nocodeworkSkillcompany-context
Interview the user to build or update a reusable company context file for AI tools — what the company does, its offer, clients, personas, positioning, voice, and the questions clients ask most. Use when the user says "build our company context", "create company context", "set up business context for AI", "update our company context", or wants AI to answer clients and write content in the company's voice without re-explaining the business each time. Produces company-context.md.
Also in 3 projects that use this
YepAPISkillcompetitor-research
Competitive analysis between domains using YepAPI.
Also in 4 projects that use this
- +1 more from matteotitta
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- CatCatUncle/openworkbuddy★ 398same name
- cognyai/claude-code-marketing-skills★ 106same name
- dotslashsimran/simcraft★ 69same name
- dlazy-ai/ecommerce-skills★ 61same name
- matteotitta/genesys-skills★ 46same name
- adityareddy-dev/deskstudio★ 43same name
- Pagepro/nexity★ 19same name
- hojiahao/cineloom★ 10same name
- hojiahao/cinefoundry★ 9same name
- NulightJens/jensai-skills★ 9same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository23 other files it gives its agents.
- agent-interviewSkill
- audio-acquisitionSkill
- content-autopsySkill
- edit-handoffSkill
- editor-beat-syncSkill
- editor-camera-directingSkill
- editor-captionsSkill
- editor-motion-graphicsSkill
- editor-plan-and-checkSkill
- editor-sfx-sparseSkill
- editor-soundtrackSkill
- editor-versionsSkill
- hook-anatomySkill
- media-acquisitionSkill
- platform-fluencySkill
- read-the-roomSkill
- repurpose-engineSkill
- studio-setupSkill
- subject-compositingSkill
- trend-radarSkill
- video-formatsSkill
- video-productionSkill
- voice-matchingSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Author cards against a role, not a colour: Write {"card": {"style": "label", "heading": "TOKYO"}} and let --apply fill in bg, fg, tracking …
- Distinctive: line 61
A brand that exists only in the chat: If you did not write it to a file and name the path out loud, it is not saved.
“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Brand Kit
A look is something the USER has, not something a project has. It is reusable across every video they will ever make, so it belongs in a file — not inside one generator script, and not in your memory of this session.
Requires
The preset mechanism is styles, which needs pip install 'video-studio-engine @ https://github.com/scrollmark/social-skills/archive/refs/heads/master.tar.gz' (base install, no extras) and then runs as video-studio styles …. It is not bundled here: it reads and writes a styles tree and a storyboard document, so it is not a lone file that can live in a skill folder.
Without that install there is no --list, --show, --apply or --save, and nothing expands a preset into a storyboard — you can still agree a brand with the user and hand-write the files, but applying it becomes manual editing. --apply and --save also assume a storyboard JSON in the engine's shape.
What Ships Today: Look Presets
video-studio styles --list
video-studio styles --show tourism
video-studio styles --apply tourism --storyboard <project>/storyboard.json
video-studio styles --save theirs --from <project>/storyboard.jsonA preset is one markdown file: frontmatter (name, description), prose saying when to reach for it, and a single fenced JSON block holding the values. The JSON covers exactly two things — captions (colour, stroke, strokeWidth, fontSize, wordGap, wordsPerPage, uppercase, bottom, palette) and cards, a named role such as label, stat, title or cta mapped to bg, fg, fontFamily, italic, weight, fontSize, tracking, align and a rect. Unknown keys are reported, not silently dropped, because a misspelled key renders as nothing and reads like a styling choice.
Resolution order, first match winning: <project>/styles/ → $VIDEO_STUDIO_STYLES → the user's own ~/.config/video-studio/styles/ → the presets shipped with the toolchain. The user-level directory is the load-bearing one; a preset kept in a checkout dies with the checkout.
A card can name its face. fontFamily takes any family the editor loads — every Google font plus the system stacks — with italic and weight beside it. bg: "transparent" puts the type straight on the footage with no panel. This is most of what separates two looks: before it existed every card in every video was Inter, whatever the preset said. Name a real fallback ("Playfair Display, Didot, Georgia, serif"), and give an unusual display face an explicit fontSize — the automatic sizing is calibrated to Inter's width.
Author cards against a role, not a colour. Write {"card": {"style": "label", "heading": "TOKYO"}} and let --apply fill in bg, fg, tracking and rect. Anything the scene sets explicitly wins, so a one-off override never means abandoning the brand.
When a user describes a look they want, save it. --save lifts the look out of a finished storyboard into a preset file, by default into their own config directory. A look that exists only in this conversation is gone tomorrow — that is the whole point of the feature. Tell them where it went and what to call it next time.
Applying is an expansion step, not a render-time lookup: the storyboard ends up holding the real values, so it stays a document you can read, and editing a preset later cannot silently restyle a video that was already approved.
Title Consistency
Classify every text element before layout. Do not treat all on-screen text as "titles".
- Subtitles are narration support. They come from the voice timing files and render through
captionStyle— the preset'scaptionsblock is what keeps them identical across videos. Keep them near the lower safe zone; override per scene only when artwork occupies that band. - Labels are editorial overlays: names, rankings, dates, stats, category tags, lower-thirds, CTAs. Build them as card roles so the brand owns them. Labels carry the personality — they may slide, pop, badge or frame.
- Signs are in-world text objects: posters, placards, scoreboards, phone notifications. Composite them as cards. Never ask a generator for readable text; it invents letterforms.
Keep contrast decisions systematic — brand-level colours, strokes, shadows and panels before per-scene exceptions. Default label motion to slide/fly-in plus scale/pop, one entrance vocabulary per brand, varying only direction, delay and intensity by scene energy. Do not mix unrelated label styles in one video; if a treatment changes, make the change narratively motivated and reuse the new treatment from that point forward.
What a Brand Bundle Would Add — PROPOSED, NOT BUILT
Presets cover colour, captions and card geometry. They do not cover the rest of an identity. The proposal is a bundle directory at ~/.config/video-studio/brands/<name>/, resolved by the same chain (<project>/brands/ → $VIDEO_STUDIO_BRANDS → user → shipped) and written in the same frontmatter-plus-JSON format:
brand.md— the look JSON exactly as today, plus a bundle name so a user can say "use Northwind" instead of naming a colour.logo/— wordmark and mark as SVG plus transparent PNG, with the safe-area and minimum-size rule beside them.fonts/— the actual font files.fontFamilytoday names a face the render host may not have installed.voice.md— narration identity: which voice, pace, and the words this brand does not say.cta.md— the closing lines, in the two or three lengths different formats ask for.
None of that resolves today. styles reads captions and cards and flags every other key as unknown, so a brand bundle needs new code before you can promise it. Until it exists: agree the extra pieces with the user, write them into the project, and say plainly that only captions, card colours and card geometry survive to the next video automatically.
Anti-patterns
- Redeciding the palette per video. Three spots built by hand in one session drifted to three different label heights for the same kind of label. That drift is what the preset file prevents.
- Describing the brand bundle as if it works. Logos, fonts, voice and CTA copy are a proposal. Saying "saved to your brand" when only the look persisted is a promise the next session will break.
- A brand that exists only in the chat. If you did not write it to a file and name the path out loud, it is not saved.
- Naming a font instead of shipping it. A
fontFamilythe render host lacks silently falls back, and the fallback is what ships.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

