Skip to content
cccskills
FreePublished on GitHubEnglish overview

multica-icons

Create or review icons for Multica web and desktop interfaces using the project's drawing rules. The skill explains how to check for existing symbols, build a glyph, preview it at several sizes, and regenerate the exported icon files.

OriginalShow the original description

Use when a Multica web/desktop UI change needs an icon that `@multica/ui/icons` does not export yet, or when redrawing or reviewing a Multica glyph. Covers the grid, corner and stroke construction, the body/detail markers, and the generate-and-preview loop. Never reach for an icon library, inline SVG, or emoji instead.

multica-ai/multica54,253 stars(GitHub 54,253 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Adding a missing icon to a Multica interface
  • Reviewing or redrawing a Multica glyph
  • Checking icon legibility at small sizes
  • Regenerating exported icon files

Overview

What it does

This skill guides you through adding symbols that are not already available in Multica web or desktop interfaces, or reviewing an existing drawing. First, search existing icons and aliases. If one already has the same meaning, add an alias instead of drawing a near-duplicate. For a new shape, use the shared helpers and distinguish the outer silhouette from its inner lines. Follow the project's 24×24 grid, stroke weight, corner shapes, and detail limits. Preview the icon at several sizes to check legibility and distinguishability, then regenerate the exported files.

When it helps

Use it when a Multica interface needs an icon for an action or state, or when an existing symbol needs to be redrawn. It helps you check readability at small sizes and appearance when selected, while keeping additions and reviews consistent with the project's icon style.

Example requests

  • “Check whether an existing icon fits this screen.”
  • “Draw a new symbol using Multica's rules.”
  • “Check whether this icon is readable at smaller sizes.”

Notes

Icons use the project's drawing approach. Do not use external icon libraries, inline SVG, or emoji. Do not hand-edit generated files; use the specified pnpm commands to preview and regenerate them.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIt forbids manual edits to generated files and specifies regeneration commands.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt requires `pnpm` and a browser for previews; installation steps are not stated.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 30, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md4.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Drawing Multica icons

Every icon in the product is a Multica drawing exported from @multica/ui/icons. No icon library is installed, and lint rejects imports from one. When you need a new symbol, draw it.

Before drawing

  1. Search packages/ui/icons/index.ts for the name and for synonyms. If an existing glyph already means the same thing, add an alias to ALIASES in drawings.mjs instead of drawing a near-duplicate.
  2. Pick a name that describes the symbol, not the feature (Webhook, not IntegrationsNav). Follow the existing PascalCase names.

Where things live

  • packages/ui/icons/drawings/construction.mjs holds the shared geometry helpers.
  • packages/ui/icons/drawings/drawings.mjs holds every drawing as inner SVG markup, plus ALIASES.
  • packages/ui/icons/glyphs.ts and index.ts are generated. Never edit them by hand; icons.test.ts fails when they drift.

Construction

  • Grid. 24×24 viewBox, with a 2px round-capped, round-joined stroke from the renderer. Keep geometry inside 2.5–21.5. Most silhouettes span 2.75–21.25. An object glyph whose longest side is under about 17 renders visibly smaller than its neighbours; only chevrons, X and similar marks stay small. Keep parallel strokes at least 3 apart so a gap survives at 14px. A stroke that crosses a shape, such as a pencil's cap line, ends exactly on the outline's centreline; the round cap pokes out if it runs past. When you scale or move a body, recompute these endpoints.

  • Corners. Use shape([[x, y, k], ...]) and rect(x, y, w, h, k), which build continuous-curvature (squircle) corners. Typical k values:

    • 5–7 for large containers such as cards, windows and chat bubbles.
    • 2.5–4 for small parts.
    • 1–1.5 for tips and points.
    • 0 for a hard corner, which is rare.

    Do not hand-write a r r arc corners for rectangles.

  • Anything that points. Chevrons, arrowheads, < > brackets, prompts and direction triangles (play, skip) turn at a sharp vertex: a straight polyline such as M9 6L15 12 9 18, or head(x, y, dir, depth, half) for an arrowhead with its tip at (x, y). Never round the tip with a curve or a k corner; the round stroke join is the only softening. The bend in a corner or U-turn arrow's shaft may stay rounded.

  • Checks. Use tick(a, v, b): two straight strokes meeting at a tight vertex. Never bow a stroke through a curve where it should turn a corner; a check or any other angular mark drawn that way reads as handwriting.

  • Dots. dot(x, y, r) with r 1.1–1.5. Use dots only where they carry meaning: info, alert, eyes, status lights.

  • Polygons and stars. polygon(cx, cy, radii, count, k).

  • Reuse parts. file(), folderBody, bubble, ring, user(), link, cw and ccw already exist. A variant (…Off, …Plus, …X) is the base drawing plus one stroke. A slash runs m3 3 18 18.

Body and details

  • Mark the main closed silhouette with class="b" (body). The active sidebar item fills it at 20% opacity.
    • Any icon that can appear in navigation must have a body. A test enforces this for route icons.
    • Only mark closed shapes. An open arc with a fill closes into a stray chord.
  • Mark strokes that sit inside the body with class="k" (detail).
  • Detail budget. At most two inner details. Every detail must carry meaning: a check, a symbol, a divider that defines the object. Drop decorative highlights, extra lines and texture. Icons render at 14px in dense rows, where a third detail turns into noise.

Loop

  1. Add the drawing to DRAWINGS in drawings.mjs. Keep sections grouped by subject.
  2. Run pnpm --filter @multica/ui icons --preview NewName Neighbour1 Neighbour2. Open the printed HTML file in a browser and check four things:
    • At 48px: does the geometry sit on the grid, with even optical weight next to its neighbours?
    • At 18px and 14px: is it still legible, or do inner details merge?
    • In the tinted (active) tile: does only the silhouette fill?
    • Against similar glyphs: can it be told apart at a glance?
  3. Run pnpm --filter @multica/ui icons to regenerate glyphs.ts and index.ts.
  4. Import the new name from @multica/ui/icons. Then run pnpm --filter @multica/ui test and the typecheck for the package that uses it.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Guide production incident handling by establishing impact, start time, and recent changes before proposing action. Document evidence for rollback requests, keep the issue updated, and distinguish service recovery from resolution that explains the incident.

  • Establish the impact and start time of a production incident
  • Check whether deployments align with the incident timeline
  • Prepare a rollback request with supporting evidence
multica-ai/multica54.3KUpdated Oct 29, 2026

Guide a new Multica member from an initial conversation to a confirmed task running as an issue. Mika shapes a concrete goal, previews the plan, starts approved work, and explains where to follow progress and results.

  • Start a first delegated task in Multica
  • Turn current goals into a project board
  • Delegate a small research task
multica-ai/multica54.3KUpdated Oct 29, 2026

multica-platform

FreeSummary

Use Multica’s platform rules to manage issues, agents, projects, and automated runs. The skill directs agents to relevant references and explains checks needed before changes that update workspace records or start work.

  • Check issue and pull request handling rules
  • Configure agents and squad routing
  • Investigate scheduled runs that did not start
multica-ai/multica54.3KUpdated Oct 29, 2026

Find where Multica’s issue management guidance has moved and how to replace retired metadata guidance. This redirect points older task briefs to the current skill and explains where different kinds of issue information belong.

  • Find current guidance from an older task brief
  • Check alternatives to retired issue metadata
  • Locate rules for linking pull requests to issues
multica-ai/multica54.3KUpdated Oct 29, 2026

Review web interface code against the latest Web Interface Guidelines to identify issues in design, usability, and accessibility. Specify files or a file pattern, and receive concise findings with file names and line numbers.

  • Review the code behind a web interface
  • Check accessibility against the guidelines
  • Request a design or usability review
multica-ai/multica54.3KUpdated Oct 29, 2026

See all skills by multica-ai

Report a problem with this skill