cards-builder — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cards-builder (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The judgment + content layer for playable cards (design.md §5) — Foundry card stacks (decks, hands, piles) for in-play use: a Deck of Many Things, a tarokka deck, an encounter/fate deck, a standard deck of cards. As with every authoring skill: you decide; the tool does.
outcome/effect/flavor), and which art it uses. That judgment IS the job.
create-cards renders your cards into the v14 Cards/Card shape (oneface per card: { name, text?, img? }); import-cards instantiates a core preset deck. Neither invents a card.
Read _shared/authoring-policy.md. The big clarification for cards:
is N/A — decks are asset-driven, like scenes: the card art is an uploaded image asset, and the face text is yours to write. There is no "copy the book deck" path; `import-cards` only instantiates Foundry's built-in preset** decks (a standard 52-card deck).
list and its effects come from the DMG; transcribe them, don't invent new cards or outcomes. If the user wants a deck of content you don't have, STOP and ASK rather than making it up. Custom/themed decks (an event deck for your adventure) are yours to author.
folderName?, cards?: [{ name, text?, img? }] }`. Builds a stack with one face per card.
{ preset, name?, folderName? }), e.g.pokerDark / pokerLight (a standard 52-card deck). The ready-made-deck path.
Each card is { name, text?, img? } plus an optional card-level description:
| Field | Use it for |
|---|---|
name | The card's name ("The Sun", "Ace of Spades", "Wolf Pack"). Required. |
text | Face text shown on the card (HTML) — the outcome/effect/flavor (e.g. a Deck of Many Things result). Pass <p>…</p>. |
img | A Data-relative path to the card's art (an uploaded image). |
description | A card-level GM/meta note — not shown on the face. |
A card with text and/or img gets a face; with neither it's a plain named card. Art and text can combine (illustrated card with a caption).
an encounter deck). Build the canonical/themed set here.
For authoring (this phase) you almost always build a deck.
deck of the canonical DMG cards; each card name = the card (Sun, Moon,Vizier, Talons, Donjon, …) and text = its DMG effect (transcribe the book — don't invent). Add card art if the user supplies images.
deck; each card a name + meaning (text) + art.deck where each card is an event you author (text), drawnto drive a scene. Card art optional.
Card art is an uploaded image (upload-asset / the scene-style asset path), not a compendium pull. If the user gives you images, reference them by their Data-relative path in img; otherwise build a text-only deck (cards still work, they just show text, not a picture).
Build decks now. Dealing, drawing, shuffling, and passing cards in play are out of scope (a later, in-play phase) — create-cards / import-cards set up the stack; running it at the table comes later.
STOP and ASK.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.