forge

forge is a command for coding agents from TaewoooPark/UIForge. It costs 31 tokens per session (1,315 once invoked), scanned A, original, MIT.

A command that turns a design brief into a complete user-interface direction and build plan. It first defines the intended audience and visual style, then establishes shared design values such as colors, type sizes, spacing, and motion.

In plain words
What is it for?
Use it to create web-interface concepts from a brief, choose one design direction, define reusable design values, select suitable components, compose the page, and review it critically.
Why use it?
It prevents the interface from being assembled randomly or from jumping straight to individual components without a consistent overall direction.

Command

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the uiforge plugin — 4 skills, 6 commands, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/taewooopark/uiforge/forge
Clone the repo
git clone --depth 1 https://github.com/TaewoooPark/UIForge

Or install uiforge, the plugin that ships this one along with the rest of its 4 skills, 6 commands, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for forge

README.md
[![agentmods](https://agentmods.dev/badge/commands/taewooopark/uiforge/forge.svg)](https://agentmods.dev/commands/taewooopark/uiforge/forge)
Your own site
<a href="https://agentmods.dev/commands/taewooopark/uiforge/forge"><img src="https://agentmods.dev/badge/commands/taewooopark/uiforge/forge.svg" alt="Measured on agentmods" height="20"></a>
Per session 31 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,315 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00031 $0.01315
Opus 5 $0.00015 $0.00658
Sonnet 5 $0.00006 $0.00263
Haiku 4.5 $0.00003 $0.00131

Measured 3d ago against content hash 3409f1ae1e89, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

forge scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/forge.md · 70 lines

How it starts

The opening of the file, as written. The whole thing — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Forge the UI described in $ARGUMENTS (if empty, ask for the brief and the surface). Run the UIForge pipeline in order — do not skip to components. Use the uiforge:design-director skill as the brain and pull in the other skills at their step.

  1. Thesis — write one sentence: who it's for, the feeling on load, where the eye lands, and the single thing it's remembered by. Confirm it before building.
  2. Direction — commit to ONE point of view from the design-director's directions.md (Editorial / Precise / Brutalist / Warm / Maximalist). State it. If the brief names a reference (a site/image to feel like), run /uiforge:reskin <ref> (or uiforge-extract.mjs) first to emit signature.json — the measured reference then drives tokens, sourcing, and the gate below, so the rules come from the reference instead of generic defaults.
  3. Tokens first — invoke uiforge:design-tokens: emit tokens.css (color roles, one type scale, 8px spacing, one radius/shadow) + motion.ts, derived from the direction. Override the shadcn/Tailwind defaults. Nothing downstream uses a value that isn't a token.
  4. Source components — never hand-author; pull the ones that FIT. Rank the catalog against the need (and the signature, if you extracted one): node ${CLAUDE_PLUGIN_ROOT}/tools/uiforge-source.mjs "<need>" --spec signature.json --type ui — it scores by semantic fit × style fit (radii vs your signature) × taste (a11y + radix provenance + variants) and prints the npx shadcn add … for the top picks. Install those (shadcn MCP / CLI; run /uiforge:setup first if unwired); at most one effect-maximalist piece, only as the signature. Verify props.
  5. Compose to the budget — one signature moment; everything else quiet. Direct motion with uiforge:motion (one signature, reduced-motion) and copy with uiforge:content (outcome labels, real states, no hype). Design every reachable state (loading / empty / error), not just the happy path.
  6. Enforce — loop until the Gate passes (this is not one pass): a. Run node ${CLAUDE_PLUGIN_ROOT}/tools/uiforge-lint.mjs . --strict. b. If it exits non-zero, fix the exact violations it names — promote raw hex to tokens, swap a default/system font for a kit face (${CLAUDE_PLUGIN_ROOT}/tools/kits/), drop the purple/gradient, add the reduced-motion path, snap off-grid spacing — then go back to (a). Loop until it exits 0 (cap ~5 rounds; if still stuck, report exactly what and why). c. Render audit (deep tier) — the grep gate is source-only; now grade the rendered result, which is where contrast, accent coverage, rhythm, and layout tells actually live. Render the view and run node ${CLAUDE_PLUGIN_ROOT}/tools/uiforge-render-audit.mjs <url|file.html> --viewport 1440x900. If you extracted a signature.json, add --spec signature.json — grading becomes reference-relative (match the reference's accent budget, grid, type ramp, and layout), while WCAG contrast stays an absolute a11y floor. Fix every contrast failure; bring accent/rhythm/type/layout into line with the signature (or, with no reference, under the generic defaults). Re-run until the grade is A/A+ with 0 contrast fails. (Needs a browser; if none, say so and skip.) d. Attention & hierarchy — a clean render can still lead the eye nowhere. node ${CLAUDE_PLUGIN_ROOT}/tools/uiforge-attention.mjs <url|file.html> --expect "<your intended #1>". If it reports hierarchy: flat or the headline/CTA is buried (the eye lands on a competing block, not your focus), widen the size/contrast/whitespace gap around the focal element and re-run until there is one clear #1 and it is yours. e. Adversarial slop detector — run the design-director's references/slop-detector.md: render + screenshot the view (normal and prefers-reduced-motion), then use an implementation-blind judge (a subagent given only the screenshots) to try to prove a machine made it. Fix every tell it cites; re-render; re-judge until CLEAN. f. Forced subtraction — remove the single least-justified element, then confirm the linter still exits 0.

Read the full file on GitHub · 70 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 70 lines · 31 tokens per session scan A 3409f1ae1e89

Subscribe to this mod's changes

forge is a command published in the GitHub repository TaewoooPark/UIForge (7 stars, last pushed 1mo ago), licensed MIT. It adds 31 tokens to every session and 1,315 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.