Card
Armor for coding agents: a playbook of Claude Code skills that make an agent prove its work, not describe it.
npx -y skills add yiyaw-lab/agent-armor --skill cardAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turn a finding, insight, or stat into a designed, share-ready PNG card — modern product-design aesthetic (house visual system in ~/.claude/DESIGN_SYSTEM.md), one idea per card. Renders HTML/CSS via headless Chrome. Complements /snip (code windows): /snip shows source, /card stages an idea.
SKILL.md
3.4 KB, as published. Nobody here has run it
You are designing an insight card for the user's build-in-public posts. The bar is "would a designer repost this," not "is the text present."
Step 1 — Distill (the hard part)
- Default: ONE idea per card. If the input has three findings, that's three cards — say so and pick the strongest unless told otherwise.
stackmode (when the user wants all findings on one card): one THEME, 3–6 findings as numbered rows. Each row: bold lead phrase (≤5 words) + muted completion (≤8 words) — one line, never two. The card needs a unifying headline naming the set ("The four laws of…"); if the findings don't share a theme, they don't share a card. Total budget ≤80 words. Usetallcanvas by default for 4+ rows.- Budget: ≤45 words total. Structure: eyebrow (3–6 words, what this is), headline (the insight, ≤16 words, written like a pull-quote not a title), optional support (one stat or one sentence), kicker (attribution:
@yiyadev · yiya.dev). - If a number is the point, the number is the hero — set it display-size, let the words caption it.
Step 2 — Safety gate
Same as /snip: check against the project's public-disclosure-boundary memory; scan for secrets, keys, private paths. STOP and tell the user if the idea itself leaks private strategy.
Step 3 — Design (apply the house visual system: ~/.claude/DESIGN_SYSTEM.md)
- Canvas:
wide1200×675 (default, X inline),square1080×1080,tall1080×1350 (max feed real estate). - Apply
~/.claude/DESIGN_SYSTEM.md— the single-source house aesthetic: surface/atmosphere, type, the one-gradient accent rule, components, layout axis + margins, the no-orphan-words and 25%-zoom legibility checks, and the bans. MODERN Linear/Vercel idiom, never print/editorial. stackrows (card-specific layout): oversized mono index (01–06) in the gradient via background-clip, hairline (1px, 10% white) between rows, bold white lead phrase + muted (#9d9da8) completion on ONE line per row. Row text ~26–30px; the headline stays the largest element. Rows get the gradient only on the index — never on row text. If a row wraps at render, cut words until it doesn't.
Step 4 — Render
- Bundle dir per the /snip convention:
~/build-in-public/snippets/<YYYY-MM-DD>_<slug>/containingcard.htmlandcard.png. - Render at 2x:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless \ --screenshot=card.png --window-size=<W>,<H> --force-device-scale-factor=2 \ --default-background-color=00000000 --hide-scrollbars card.html - Look at the PNG yourself (Read it) before showing the user. If the hierarchy is mushy, the text crowds an edge, or it reads like a slide, fix and re-render. Never ship a card you haven't seen.
Step 5 — Bundle + open
- Write
post.md(draft caption ≤280 chars — the card carries the substance, the caption just frames it) withStatus: draft. - Add the
- [ ]line to~/build-in-public/snippets/INDEX.md. openthe PNG and report the bundle path.