Brand and Design Toolkit
nextlevelbuilder/ui-ux-pro-max-skill
Bundles design tasks behind one skill: brand identity, tokens, UI styling, logos, corporate identity mockups, slides, banners, icons and social images.
Create project logo and banner SVGs, then export them to light and dark PNG variants.
$ npx skills add kdeldycke/dotfiles --skill brand-assets -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kdeldycke/dotfiles brand-assets --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/dotfiles/.agents/skills/brand-assets .claude/skills/brand-assets && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "brand-assets" agent skill from https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assets into .claude/skills/brand-assets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brand-assets", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assetsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add kdeldycke/dotfiles --skill brand-assets -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kdeldycke/dotfiles brand-assets --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .agents/skills && cp -r skills-src/dotfiles/.agents/skills/brand-assets .agents/skills/brand-assets && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brand-assets" agent skill from https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assets into .agents/skills/brand-assets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brand-assets", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kdeldycke/dotfiles --skill brand-assets -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kdeldycke/dotfiles brand-assets --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/dotfiles/.agents/skills/brand-assets .cursor/skills/brand-assets && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "brand-assets" agent skill from https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assets into .cursor/skills/brand-assets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brand-assets", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/kdeldycke/dotfiles.git --path dotfiles/.agents/skills/brand-assets--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add kdeldycke/dotfiles --skill brand-assets -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kdeldycke/dotfiles brand-assets --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/dotfiles/.agents/skills/brand-assets .gemini/skills/brand-assets && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "brand-assets" agent skill from https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assets into .gemini/skills/brand-assets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brand-assets", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install kdeldycke/dotfiles brand-assetsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add kdeldycke/dotfiles --skill brand-assets -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .github/skills && cp -r skills-src/dotfiles/.agents/skills/brand-assets .github/skills/brand-assets && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "brand-assets" agent skill from https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assets into .github/skills/brand-assets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brand-assets", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kdeldycke/dotfiles --skill brand-assets -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kdeldycke/dotfiles brand-assets --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/dotfiles/.agents/skills/brand-assets .opencode/skills/brand-assets && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "brand-assets" agent skill from https://github.com/kdeldycke/dotfiles/tree/main/dotfiles/.agents/skills/brand-assets into .opencode/skills/brand-assets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brand-assets", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
brand-assetsCreate project logo and banner SVGs, then export them to light and dark PNG variants.
Brand Assets is an agent skill from kdeldycke/dotfiles. Create project logo and banner SVGs, then export them to light and dark PNG variants. Use when you design a logo or banner, or regenerate the PNGs from their SVG source files.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code. Recommended model: Opus.
It sits in Media & Creative, covering Logo and visual identity. The repository describes itself as: 🍎 macOS dotfiles for Python developers. The licence is BSD-2-Clause.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 37173b9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python, bash and css).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code. Recommended model: Opus.
From compatibility in the SKILL.md frontmatter.
Brand Assets loads about 4.7k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 2,722 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from kdeldycke/dotfiles at commit 37173b9, republished under its BSD-2-Clause licence (© kdeldycke). 2,722 words, ~4,744 tokens.
.claude/skills/brand-assets/SKILL.md (or your agent's skills folder).Create, maintain, and export project logo and banner assets as SVGs with light/dark PNG variants.
The Sphinx side of the convention (the light_logo/dark_logo pair, html_favicon, ogp_image and the rules around them) lives in .claude/agents/sphinx-docs.md § docs/conf.py hygiene › Theme assets and OpenGraph. When this skill writes a new asset path into docs/conf.py, follow the canonical values defined there, as § Sphinx integration below spells them out: logo-square-light.png and logo-square-dark.png for the logo pair, assets/favicon.svg for the favicon, and _static/banner-social-light.png for ogp_image.
Every project produces four SVG variants, each with light and dark PNG exports:
Favicon (favicon.svg): The project icon only, no text, no margins. Tight-cropped to the icon's bounding box. Used as html_favicon in Sphinx and as the browser tab icon. Transparent background. Does not need PNG exports (browsers handle SVG favicons natively). If the mark itself is theme-invariant (flat, unoutlined — see "Isometric / faceted marks" below), the same source also serves any platform app-icon bundle (.ico, .icns, a build tool's icon input) with a single rendering: a browser tab and a dock are surfaces with no theme this script can query, and a mark with no outline needs no dark variant to stay legible on either.
Square logo (logo-square.svg): The project icon with the project name centered below it. Its light and dark PNG exports are the Sphinx sidebar logo pair (light_logo/dark_logo). Transparent background. The viewBox is taller than the icon to accommodate the text below.
Banner (logo-banner.svg): Horizontal layout with the icon on the left, project name and tagline to the right. Transparent background. Used in the GitHub readme.
Social banner (banner-{style}.svg): Same layout as the banner but with a decorative opaque background (e.g., marble veins, gradients, wave patterns). Used for OpenGraph/social previews. Opaque background.
Each SVG produces two PNGs: {name}-light.png and {name}-dark.png. The favicon is SVG-only (no PNG exports needed).
When base SVGs already exist (at least a square logo or banner), skip any interactive menu and proceed directly:
docs/conf.py if not already configured.Only ask the user a question when the gap analysis is genuinely ambiguous (multiple competing icon sources, unclear which element is the project icon).
Revising the treatment of a mark that already has SVG sources — outlined vs flat, how many shading planes, how a cutout gets painted — is a different exercise from Design exploration below, which assumes no SVG exists yet. It still deserves the same breadth before committing to a direction, and it must be judged on both themes at once: a treatment that reads fine on white can fail outright on near-black (see "Isometric / faceted marks" below for why an outlined mark is especially prone to this).
Render a contact sheet of candidates, each shown on both light and dark backgrounds side by side, plus small thumbnails (16/24/32/48px) next to the full-size renders. Reviewing every candidate at working size and at icon size in one image is what catches a treatment that reads well full-size and turns to mush at 16px, or that loses a plane's contrast on one theme while looking fine on the other — a theme-specific failure is easy to miss when a candidate is only ever shown on the theme you happen to be looking at. Ten to fourteen candidates is a reasonable spread per round; expect two rounds in practice, one for the coarse direction and a second to refine the winner's remaining open question (how a void or cutout inside the mark gets treated, for instance).
Once a direction is picked, "Isometric / faceted marks" below covers the specific techniques — flat plane shading, a computed midpoint color, painting a void behind a cutout, keeping a terminal rendition in sync — that this kind of redesign usually needs.
When creating assets for a new project with no existing SVGs, start with a broad exploration phase to find a visual direction before refining.
Prompt pattern:
Create several PNG versions of {base-svg} but with different abstract backgrounds (curvy, bitmap, slopes, splines, gradients, noise, halftone, topographic, marble, waves, geometric, etc). Generate 30 of them, all singularly different, so I can choose a direction. Place them in {assets-dir}.
Use rsvg-convert or a Python script (Pillow) to composite the base SVG over programmatically generated backgrounds. Number each output banner-{nn}-{descriptor}.png (e.g., banner-12-wind-lines.png, banner-27-marble-veins.png).
The user reviews the candidates and picks one or more to refine. Delete the rest.
Recreate the chosen design as a clean, hand-authored SVG:
style attributes).@media queries).{name}.svg is the canonical source (always renders in light mode).{name}-light.png is the light-theme PNG export.{name}-dark.png is the dark-theme PNG export.SVGs use CSS classes for themed properties (fills, strokes). To export a themed PNG:
<style> block with dark-mode colors swapped in.rsvg-convert.Key substitutions on the whole CSS declaration, never on the bare color. A mark that uses a brand color as a literal fill (a flat isometric plane, an icon's own stroke) and a themed element using the same hex (lettering, a caption) look identical to a substitution keyed on the color alone: it has no way to tell "this should flip" from "this should stay put," and repaints both. Key each entry of the substitution map on the full declaration — .word{fill:#2d2364} → .word{fill:#d3d3f6} — never on #2d2364 → #d3d3f6 in isolation, so a class rule the mark itself owns can never match. This is easy to get away with for a while: an outlined mark that only uses a color for its stroke is safe under a bare-color swap, because nothing else in the file happens to share that stroke's exact hex. The moment the mark's faces start declaring that same hex as a literal fill (the flat-shading style below), the identical swap starts repainting the mark along with whatever else used to be the only thing carrying that color.
Typical light/dark color pairs (Tailwind Slate palette):
| Role | Light | Dark |
|---|---|---|
| Frame/ring | #334155 | #94A3B8 |
| Handle out | #334155 | #94A3B8 |
| Handle in | #475569 | #CBD5E1 |
| Title text | #1E293B | #F1F5F9 |
| Tagline | #64748B | #CBD5E1 |
| Background | #F8FAFC | #0F172A |
| Vein light | #e2e8ef | #1a2535 |
| Vein dark | #c6cfda | #253040 |
A mark built from isometric solids (boxes, cubes, prisms) reads correctly with flat, unoutlined faces — one color per plane the light can catch, and the eye reconstructs the shape from the pattern of values alone, the way a game sprite does. This is the fix when a stroked version of the same mark fails on a dark background: an outline drawn in the dark brand color has nothing to contrast against near-black, so the silhouette dissolves at its edges while anything drawn with a plain fill (lettering, other flat elements) stays perfectly legible beside it. If a themed mark loses its edges on one background but not the other, that mismatch is usually the tell that it wants flat shading instead of an outline, not a different dark-mode color for the same stroke.
Three planes need three values. A glance at an isometric solid shows at most three faces: one lit from above, and two vertical faces turned away from each other. Two brand colors are not enough on their own for that third plane, and the honest way to produce a third value without expanding the palette is the arithmetic midpoint of the other two, computed per channel and enforced with a test rather than hand-picked:
mid = "#{:02x}{:02x}{:02x}".format(
*((int(ink[i : i + 2], 16) + int(wash[i : i + 2], 16)) // 2 for i in (1, 3, 5))
)That keeps the palette "two colors and a derivation" instead of three unrelated choices, and a test that recomputes the midpoint from the two brand constants and compares it against the shipped one catches drift the moment someone nudges the third value by eye instead of by formula.
Discovering which path is which plane. When the source SVG is already a flat list of <path> elements with no naming that says what each one draws, recolor every path a distinct hue (step through HSV, one hue per path index) and render at a readable size. The rainbow render makes the plane each path belongs to obvious at a glance, so the mapping from path index to plane becomes a literal fact to hard-code once, rather than something re-derived by eye on every future edit.
Filling a void inside the silhouette. A mark with a cutout (an open lid, a ring) that used to hide the gap behind an outline needs the interior actually painted once the outline is gone, or the void reads as a hole rather than as depth. Compute the interior walls from vertices the exterior geometry already has (the rim of the opening), draw each wall at its full extent, and clip it to the rim polygon with <clipPath> — that avoids hand-computing where two walls intersect, since the clip does the trimming for free. Critically, an interior wall is lit as the plane it faces, not the plane it sits behind: the wall on the far side of a left-facing opening itself faces right, and so takes the right-plane color, mirrored from what a same-side exterior face would show. Getting this backwards makes any object floating inside the void blend into the wall directly behind it on one of its own faces; getting it right guarantees every face of that object lands on the tone opposite whatever sits behind it.
Keep a terminal or block-character rendition in sync with the same source. If the project also ships a low-resolution rendition of the mark (half-block terminal art for a CLI's --version banner, an ASCII favicon), derive its interior detail from the SVG rather than hand-tuning it: for every grid cell not already covered by the silhouette, test its center point against the source's rim polygon — in the SVG's own coordinate space, not pixel space — with a standard point-in-polygon test, and fill it only when the test passes. Symmetrize by testing a cell together with its mirror (fill both if either passes) rather than trusting the sampling grid to be perfectly centered: a rounding error in the grid math is a far easier way to end up asymmetric than the source geometry itself. This is what keeps two renditions of "the same" mark from drifting into two different designs over time.
<rect> background. The PNG will have alpha transparency, suitable for overlaying on any surface.<rect> with a .bg class. Swap its fill color for the target theme. Both light and dark PNGs get their respective solid background.Use rsvg-convert (from librsvg):
$ rsvg-convert -o output.png input.svgIf rsvg-convert is unavailable, fall back to inkscape --export-type=png --export-filename=output.png input.svg.
Discover SVGs. If $ARGUMENTS is a directory, find all .svg files in it. If it's a specific file, use that. Default to docs/assets/.
For each SVG, read it and identify:
<rect> with .bg class exists (opaque) or not (transparent).Generate light PNG. The SVG already has light-mode styles, so convert directly:
rsvg-convert -o {name}-light.png {name}.svg.bg rect has the light fill).Generate dark PNG. Create a temporary SVG with dark-mode colors:
<style> block with dark-mode values..bg fill is swapped to the dark background color.Report the generated files and their sizes.
.svg files. Only create temporary copies for baking.@media (prefers-color-scheme: dark) blocks. Light-mode styles are the only styles in the SVG. Dark mode is handled exclusively through baked PNG exports.<g> elements will also strip color from any child that was relying on inherited fill instead of a class of its own, silently turning it black.'Inter', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif.radialGradient for the lens glass.docs/conf.pyWire the assets into the Furo theme:
html_favicon = "assets/favicon.svg"
html_theme_options = {
"light_logo": "logo-square-light.png",
"dark_logo": "logo-square-dark.png",
"sidebar_hide_name": True,
# ...
}
ogp_image = "_static/banner-social-light.png"
html_static_path = [
"_static",
"assets/banner-social-light.png",
"assets/logo-square-dark.png",
"assets/logo-square-light.png",
]light_logo/dark_logo: The two PNG exports of the square logo (with project name baked in), which Furo swaps with its own theme toggle. Never set html_logo beside them: Furo prefers it, skips the pair, and shows the light-only SVG on the dark theme. Combined with "sidebar_hide_name": True to avoid a duplicate auto-generated name below the logo.html_favicon: Points to the icon-only favicon (no text, tight crop).ogp_image: The light social banner, served by the site itself so social crawlers can fetch it.html_static_path: Furo and sphinxext.opengraph resolve those three names against _static/, so each PNG needs its own entry. Listing docs/assets/ whole would copy every screenshot along with them.The readme includes a centered banner image (logo-banner.svg) for GitHub. When the readme is included in the Sphinx front page via {include}, the banner is redundant with the sidebar logo. Hide it with custom CSS:
docs/_static/custom.css:
/* Hide the readme banner on the Sphinx front page (logo already in sidebar). */
article p[align="center"]:has(img[alt="Project Name"]) {
display: none;
}Wire it in conf.py, where _static already opens the html_static_path list above:
html_css_files = ["custom.css"]Replace "Project Name" with the actual alt text of the banner <img> in the readme.
When a design exists only as a raster image (PNG/JPEG) and needs to be reproduced as a clean SVG, use pixel analysis to extract geometry and colors.
Identify the background color. Sample pixels in a known empty region. This establishes the threshold for separating foreground elements from background.
Scan for foreground features. Using Pillow + NumPy, iterate over the image in slices (vertical columns for horizontal features, horizontal rows for vertical features). At each slice, threshold grayscale values to find pixels that differ from the background.
Cluster pixels into distinct elements. Group adjacent foreground pixels within a slice. A gap larger than 3-5px indicates a separate element. For each cluster, record:
Trace paths across slices. Match clusters across adjacent slices by proximity to build continuous paths. Each path becomes a series of (x, y) sample points.
Fit SVG paths. Convert the sampled points into SVG cubic bezier curves:
C (cubic bezier) for the initial segment.S (smooth cubic bezier) for continuations. Each S needs 4 coordinates (control point + endpoint); fewer causes the path to terminate early.x=-20 and x=1300 for a 1280-wide image) so lines reach the borders cleanly.Assign colors. Group paths by sampled RGB values. Create CSS classes for each distinct color and assign them to the corresponding paths.
© kdeldycke, BSD-2-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in dotfiles/.agents/skills/brand-assets of kdeldycke/dotfiles.
Open the folder on GitHubat commit 37173b9
Brand Assets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brand Assets this skillkdeldycke/dotfiles | 173 | — | ~4.7k | Automated safety check: Pass | BSD-2-Clause | |
| Brand and Design Toolkitnextlevelbuilder/ui-ux-pro-max-skill | 135k | 1 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Anthropic Brand Stylinganthropics/skills | 180k | 30 repos | ~559 | Automated safety check: Pass | Apache-2.0 | |
| Logo Designkaankiziltug/logo-design-skill | 2.5k | — | ~4.4k | Automated safety check: Pass | MIT | |
| Logo Generatorop7418/logo-generator-skill | 2.2k | — | ~1.8k | Automated safety check: Notes | None | |
| Web Asset Generatoralonw0/web-asset-generator | 514 | 1 repos | ~6.6k | Automated safety check: Pass | MIT |
nextlevelbuilder/ui-ux-pro-max-skill
Bundles design tasks behind one skill: brand identity, tokens, UI styling, logos, corporate identity mockups, slides, banners, icons and social images.
anthropics/skills
Applies Anthropic's brand colors and fonts to artifacts such as PowerPoint slides, using fixed hex values for text and accents, Poppins headings and Lora body text.
kaankiziltug/logo-design-skill
Professional logo and brand-mark design, from brief to production files.
op7418/logo-generator-skill
Generate professional SVG logos and high-end showcase images.
alonw0/web-asset-generator
Generate web assets including favicons, app icons (PWA), and social media meta images (Open Graph) for Facebook, Twitter, WhatsApp, and LinkedIn.
onyx-dot-app/onyx
Generate or edit raster images (photos, illustrations, textures, sprites, mockups, logos, infographics) using the workspace's configured image-generation provider via onyx-cli image.
kdeldycke/dotfiles
Audit and tune the configuration of coding agents across Claude Code and pi - settings files (settings.json, settings.local.json), permission rules, instruction files (CLAUDE.md, AGENTS.md), skill…
kdeldycke/dotfiles
Analyze a GitHub repository's issues and PRs to find unaddressed feature requests, dismissed ideas, maintenance signals, and opportunities relevant to the current project.
kdeldycke/dotfiles
Fill a web form using data extracted from local documents (PDFs, images, spreadsheets).
kdeldycke/dotfiles
Rename documents and files (PDFs, images, screenshots, etc.) by reading their content to extract the effective/publication date, then renaming them with a "YYYY-MM-DD - Clear descriptive title.ext"…
kdeldycke/dotfiles
Choose what a repository's CI test matrix covers. An agent skill from kdeldycke/dotfiles.
kdeldycke/dotfiles
Compare and synchronize Sphinx documentation against the upstream kdeldycke/repomatic reference, or across sibling projects.
Categories
Create project logo and banner SVGs, then export them to light and dark PNG variants. Brand Assets is an agent skill from kdeldycke/dotfiles. Create project logo and banner SVGs, then export them to light and dark PNG variants.
Brand Assets fits situations like: you design a logo; regenerate the PNGs from their SVG source files.
Run `npx skills add kdeldycke/dotfiles --skill brand-assets -a claude-code`. Or copy the skill folder (dotfiles/.agents/skills/brand-assets in kdeldycke/dotfiles) into .claude/skills/brand-assets in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kdeldycke/dotfiles --skill brand-assets -a codex`. Or copy the skill folder (dotfiles/.agents/skills/brand-assets in kdeldycke/dotfiles) into .agents/skills/brand-assets in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kdeldycke/dotfiles --skill brand-assets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brand-assets, .gemini/skills/brand-assets, .github/skills/brand-assets and .opencode/skills/brand-assets in your project.
SKILL.md names no scripts, command-line tools or credentials: Brand Assets is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Designed for Claude Code. Recommended model: Opus..
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Brand Assets is published under the BSD-2-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Brand Assets: Brand and Design Toolkit (nextlevelbuilder/ui-ux-pro-max-skill, 135k stars), Anthropic Brand Styling (anthropics/skills, 180k stars), Logo Design (kaankiziltug/logo-design-skill, 2.5k stars) and Logo Generator (op7418/logo-generator-skill, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kdeldycke (a GitHub user) maintains it in kdeldycke/dotfiles, which has 173 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 9, 2026.
Source: kdeldycke/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.