ApertureOscillation
3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis — to surface design tensions,…
Static visual content across 20+ formats — diagrams, mermaid, infographics, D3 dashboards, comics, icons, wallpaper — via Nano Banana Pro (default), Nano Banana, and Flux. USE WHEN art, illustration, diagram, flowchart, infographic, header image, blog social thumbnail,
$ npx -y skills add danielmiessler/personal_ai_infrastructure --skill Art --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ArtContext preview
The summary Claude sees to decide when to auto-load this skill.
Static visual content across 20+ formats — diagrams, mermaid, infographics, D3 dashboards, comics, icons, wallpaper — via Nano Banana Pro (default), Nano Banana, and Flux. USE WHEN art, illustration, diagram, flowchart, infographic, header image, blog social thumbnail,
name: Art version: 1.5.23 description: "Static visual content across 20+ formats — diagrams, mermaid, infographics, D3 dashboards, comics, icons, wallpaper — via Nano Banana Pro (default), Nano Banana, and Flux. USE WHEN art, illustration, diagram, flowchart, infographic, header image, blog social thumbnail, visualize, generate image, mermaid, architecture diagram, comic, icon, blog art, framework diagram, D3 chart, remove background, wallpaper. NOT FOR locked house-style YouTube/channel/video thumbnails, video or animation (use Remotion), or web UI design and integrated frontend layout (use Webdesign)."
**Before executing, check for user customizations at:** `~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Art/`
If this directory exists, load and apply:
These override default behavior. If the directory does not exist, proceed with skill defaults.
**You MUST send this notification BEFORE doing anything else when this skill is invoked.**
1. **Send voice notification**:
curl -s -X POST http://localhost:31337/notify \
-H "Content-Type: application/json" \
-d '{"message": "Running the WORKFLOWNAME workflow in the Art skill to ACTION"}' \
> /dev/null 2>&1 &2. **Output text notification**:
Running the **WorkflowName** workflow in the **Art** skill to ACTION...
**This is not optional. Execute this curl command immediately upon skill invocation.**
Generates static visual content across 20+ formats — blog headers, technical and architecture diagrams, frameworks, taxonomies, timelines, comparisons, stat cards, comics, icons, wallpapers, D3 charts, Mermaid diagrams — using Flux, Nano Banana Pro (Gemini 3 Pro), and GPT-Image-2. Every request routes through a named workflow that encodes the technique and palette, output stages to $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) for review first, and blog headers ship both a transparent inline version and an opaque social thumbnail.
The bare image model produces inconsistent, off-style output when handed a freeform prompt — one session shipped 12 rejected diagrams because the prompt skipped the workflow that holds the composition rules. Different formats need different models (text-heavy cards want GPT-Image-2; editorial headers want Nano Banana Pro), different size formats, and different transparency handling. Without a fixed routing-and-staging discipline, you get wrong sizes, opaque headers that bleed over the page background, and images pushed straight to a repo before anyone looked at them. This skill makes the workflow, the model choice, and the Downloads-first review mandatory in code, not just in markdown.
A complete visual content system for illustrations, diagrams, and other static visuals. Each request picks a matching workflow file first, follows its prompt template, then calls `Generate.ts` with `--workflow=<name>` plus model/size/output flags. `Generate.ts` itself enforces that the workflow was followed, output always lands in $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) for preview, and blog headers run with `--thumbnail` to produce both the transparent PNG and the sepia-backed social thumbnail.
**This rule used to be markdown-only and was silently ignored, producing 12 rejected diagrams in one session (incident 2026-04-30). It now lives in code.**
**`Generate.ts` itself** refuses to run unless you pass `--workflow=<name>` (or the explicit `--freeform-confirmed` opt-out). It exits non-zero with the workflow lookup table.
**The flow that works:** read the matching workflow file → follow its prompt template → invoke `Generate.ts` with `--workflow=<that-workflow-name>` plus your model/prompt/size flags. The `--workflow=<name>` flag is your explicit assertion "I read the workflow and followed it."
**The flow that's blocked:** composing a freeform prompt and shipping it directly to `Generate.ts`. `Generate.ts` will refuse.
Reading the workflow's caps-warning, mentally noting "do the workflow," then composing a Bash command with your own prompt anyway because it feels faster. **Stop.** The workflow templates encode the technique, palette, composition rules, and validation gate the bare model fails to honor. Skipping them produced — verbatim — "absolute fucking ass" diagrams. Read the workflow file FIRST. Compose the prompt FROM the template. Pass `--workflow=<name>` so the gate can see you did it.
bun ~/.claude/skills/Art/Tools/Generate.ts \
--workflow=<WorkflowName> \
--model nano-banana-pro \
--prompt "..." \
--size 2K \
--aspect-ratio 16:9 \
--output "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/<filename>.png`<WorkflowName>` MUST match a file under `Workflows/` (without `.md`):
**Routing rules — pick a workflow FIRST, before writing any prompt:**
| Request shape | Required workflow | |---------------|-------------------| | Blog header / editorial essay illustration | **`Workflows/Essay.md`** — Steps 1–8 in order, no skipping | | Mermaid diagram | `Workflows/Mermaid.md` | | Technical / architecture diagram | `Workflows/TechnicalDiagrams.md` | | Framework / 2x2 / matrix | `Workflows/Frameworks.md` | | D3 dashboard / chart | `Workflows/D3Dashboards.md` | | Taxonomy / hierarchy | `Workflows/Taxonomies.md` | | Timeline | `Workflows/Timelines.md` | | Comparison | `Workflows/Comparisons.md` | | Stat card | `Workflows/Stats.md` | | Aphorism / quote card | `Workflows/Aphorisms.md` | | Comic panel | `Workflows/Comics.md` | | Locked house-style YouTube / chann
⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.
Repo: danielmiessler/personal_ai_infrastructure
3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis — to surface design tensions,…
Curated aphorism collection with CRUD — content-based matching, themed search, thinker research, DB maintenance. Quotes organized by author/theme/context/usage…
Scrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls…
Search and retrieve arXiv academic papers by topic, category, or paper ID — with AlphaXiv-enriched AI-generated overviews. Uses arXiv Atom API across…
AI audio editing pipeline: Whisper word-level transcription → Claude segment classification (KEEP/CUT_FILLER/CUT_FALSE_START/CUT_STUTTER/CUT_DEAD_AIR) → ffmpeg…
Divergent ideation and corpus expansion via Verbalized Sampling plus extended thinking — single-shot generates several internally diverse candidates and…