design-inspiration
Design Inspiration
This skill has two responsibilities:
- Load references — read visual inspiration files before any design task
- Save to gallery — ingest design references into laniameda.gallery under the Designs pillar
Workflow A — Load references before designing
Step 1 — Load references
Before writing a single line of design code or producing any visual output:
- Run
ls /mnt/skills/user/design-inspiration/references/to see what's available. - For every image file found, load it with the
viewtool and study it carefully. - For every
.mdor.txtfile found, read it with theviewtool. - Synthesize what you observe into a mental model of the target aesthetic (see below).
If no references exist yet, note this to the user and proceed with your best judgement, suggesting they populate the folder (see Adding References below).
Step 2 — Extract the design language
From the references, identify and internalize:
| Dimension | What to look for |
|---|---|
| Color palette | Background, surface, accent, text, border colors. Exact hex values if readable. |
| Typography | Font families, weights, sizes, line heights, letter spacing. |
| Spacing & layout | Grid density, padding rhythm, margin scale, component gaps. |
| Shape language | Border radius, sharp vs. rounded, card styles, button shapes. |
| Depth & elevation | Shadows, blur, layering, glassmorphism, flat vs. skeuomorphic. |
| Motion cues | Any noted animations, transitions, interaction patterns. |
| Mood / tone | Minimal, brutalist, editorial, dark luxury, playful, corporate, etc. |
| Recurring patterns | Repeated UI motifs, icon styles, dividers, decorative elements. |
Step 3 — Apply to the design task
Use the extracted design language as constraints when generating code or describing designs:
- Match the color palette precisely — don't default to generic blues/grays.
- Mirror the typography choices, including weight and size relationships.
- Preserve the spacing rhythm and layout density.
- Replicate the shape and depth language.
- Comment in your code what reference(s) you're drawing from.
Step 4 — Call out deviations
If you intentionally deviate from the references (e.g. for accessibility, technical constraints, or because a reference doesn't cover the required component), say so explicitly.
Workflow B — Save to laniameda.gallery (Design pillar)
Use this workflow when the user wants to save a design reference, screenshot, URL, or note
to the gallery. All design saves go to pillar: "designs".
Trigger phrases
- "save to gallery"
- "add to gallery"
- "save this design / reference / inspiration"
- "archive this"
- "log this to the gallery"
Step 1 — Collect what to save
Determine the content type from what the user provides:
| What they give you | Content type |
|---|---|
| A URL (Dribbble, Figma, website, etc.) | url |
| A local image file path | imagePath |
| A description / notes only | designInspiration text + allowPromptOnly: true |
| An uploaded image | Save it locally first, then use imagePath |
Step 2 — Extract tags
From the content being saved, extract relevant typedTags. Use only valid categories:
design_style— e.g. "dark-luxury", "brutalist", "editorial", "glassmorphism"design_type— e.g. "landing-page", "dashboard", "card", "navigation", "modal"color— e.g. "amber", "near-black", "warm-white"style— e.g. "minimal", "dense", "airy"content_type— e.g. "ui-screenshot", "figma-export", "mockup"platform— e.g. "web", "mobile", "desktop"component_type— e.g. "button", "input", "hero-section"
Format: { "category": "<category>", "value": "<value>" }
Step 3 — Build the ingest payload
{
"pillar": "designs",
"designInspiration": "<brief description of what this is and why it's inspiring>",
"url": "<url if applicable>",
"imagePath": "<local path if applicable>",
"allowPromptOnly": true,
"ingestKey": "design-<slug>-<YYYY-MM-DD>",
"typedTags": [
{ "category": "design_style", "value": "dark-luxury" },
{ "category": "design_type", "value": "landing-page" }
]
}
Rules:
- Always set
pillar: "designs" - Always provide at least one of:
url,imagePath, ordesignInspiration - Set
allowPromptOnly: truewhen saving text/notes without a file or URL - Use a stable, human-readable
ingestKeyfor retry safety (e.g.design-vercel-dashboard-2026-03-27) - Never hardcode
ownerUserId— it's read from env (KB_OWNER_USER_ID=278674008)
Step 4 — Run the ingest script
bun run ~/.agents/skills/laniameda-gallery-ingest/scripts/ingest.ts '<payload-json>'
If env vars aren't set in the shell, prefix them:
CONVEX_URL=<from-env> KB_OWNER_USER_ID=278674008 \
bun run ~/.agents/skills/laniameda-gallery-ingest/scripts/ingest.ts '<payload-json>'
Both CONVEX_URL and KB_OWNER_USER_ID are already set in /root/.openclaw/.env — no need to pass them manually in most contexts.
Step 5 — Confirm to user
After a successful ingest, confirm with:
- What was saved (title/description)
- The
ingestKeyused (useful for future updates) - Pillar: Designs ✓
If the ingest fails, show the error and suggest checking CONVEX_URL env var or verifying the skill is installed:
bunx skills add https://github.com/laniamedaHQ/laniameda-gallery/tree/main/skills/laniameda-gallery-ingest -g -a openclaw
Example payloads
Save a URL:
{
"pillar": "designs",
"designInspiration": "Vercel dashboard — clean dark UI with tight spacing and monospace data display",
"url": "https://vercel.com/dashboard",
"allowPromptOnly": true,
"ingestKey": "design-vercel-dashboard-2026-03-27",
"typedTags": [
{ "category": "design_style", "value": "dark-minimal" },
{ "category": "design_type", "value": "dashboard" },
{ "category": "platform", "value": "web" }
]
}
Save a local screenshot:
{
"pillar": "designs",
"designInspiration": "UI screenshot showing amber-on-dark card layout with tight grid",
"imagePath": "/Users/michael/Desktop/card-reference.png",
"ingestKey": "design-card-amber-dark-2026-03-27",
"typedTags": [
{ "category": "design_style", "value": "dark-luxury" },
{ "category": "design_type", "value": "card" },
{ "category": "color", "value": "amber" }
]
}
Save notes only:
{
"pillar": "designs",
"designInspiration": "Reference aesthetic: near-black bg #0A0A0A, amber accent #F59E0B, Inter font, 8px radius on cards, no shadows — depth via layering only",
"allowPromptOnly": true,
"ingestKey": "design-aesthetic-notes-2026-03-27",
"typedTags": [
{ "category": "design_style", "value": "dark-luxury" },
{ "category": "color", "value": "amber" }
]
}
Adding local references
To add design references to this skill's local folder, place files in:
/mnt/skills/user/design-inspiration/references/
Accepted file types:
.png,.jpg,.webp,.gif— screenshots, mockups, inspiration images.md— written design notes, token values, brand guidelines.txt— color palettes, font stacks, spacing scales
Tips:
- Include screenshots of UI you admire — the more specific the better.
- Add a brief
.mdnote alongside each image describing what you like about it. - Group related references with a common prefix (e.g.
dark-card-01.png,dark-card-02.png).
Skill maintenance
- Update local references whenever the design direction evolves.
- Remove outdated references to keep the aesthetic signal clean.
- If references conflict, newer files take precedence — or add a
PRIORITY.mdto explicitly rank them. - When the ingest contract changes, the source of truth is always:
~/work/laniameda/laniameda.gallery/skills/laniameda-gallery-ingest/SKILL.md
More from michailbul/laniameda-skills
notion-sync
>
14instagram-extract
Extract text, links, and key takeaways from Instagram/Threads posts (especially carousels) and LinkedIn posts using an already-logged-in Brave/Chrome tab via OpenClaw Browser Relay. Use when the user pastes an Instagram/Threads/LinkedIn URL (or forwards screenshots) and asks something generic like “save it”, “capture this”, “summarize and store”, or “put this in the vault” — you should decide what’s worth saving, classify it into the right pillar, save it to the local KB and/or ingest prompts via the laniameda-kb skill, and also emit a compact JSON payload into a media-agent inbox file for downstream reuse.
12carousel-designer
>
11andromeda-messages
>
10deepgram-transcribe
>
10repo-kanban-pm
Install and enforce a lightweight product-management workflow inside a code repo: feature-as-kanban boards, ROADMAP status tracking, branch/PR conventions, and an optional daily OpenClaw cron PM review. Use this skill when (1) starting work in a NEW repository/project that does not yet have a ROADMAP+feature-KANBAN system, (2) you are delegated to spin up a new project and want multi-agent coordination from day one, or (3) you are asked to fix/restructure an existing repo and introduce an organized backlog/feature tracking system. Also use when adding a daily PM audit loop (cron) to keep code + docs + PRs in sync.
10