Forge masterpiece UI, not AI slop — a design art-director plugin for Claude Code. Forces a deliberate choice on every design axis (type, color, space, motion), sources components from vetted registries, and gates output on forced-subtraction + critique.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 00eca20 · analyzer v28 · 21h ago
skills & prompt files 4
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 26
filesystem 23
- fs TaewoooPark-UIForge-00eca20/tools/create-uiforge.mjs :13
import fs from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-archive.mjs :16
import { mkdirSync, writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-assets.mjs :17
import { readFileSync, mkdirSync, writeFileSync, existsSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-capture.mjs :18
import { writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-catalog.mjs :23
import { readFileSync, existsSync } from 'node:fs'; - fs TaewoooPark-UIForge-00eca20/tools/uiforge-corpus.mjs :20
import { readFileSync, writeFileSync, existsSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-debundle.mjs :15
import { readFileSync, existsSync, mkdirSync, statSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-detect.mjs :12
import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-diff.mjs :31
import { readFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-export.mjs :21
import { readFileSync, writeFileSync, mkdirSync, copyFileSync, existsSync, readdirSync, statSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-extract.mjs :17
import { writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-freeze.mjs :19
import { writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-harvest.mjs :32
import { readFileSync, existsSync, mkdirSync } from 'node:fs'; - fs TaewoooPark-UIForge-00eca20/tools/uiforge-lint.mjs :16
import fs from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-reconstruct.mjs :13
import { readFileSync, writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-restore.mjs :17
import { mkdirSync, writeFileSync, existsSync, cpSync, readFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-segment.mjs :21
import { readFileSync, writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-site.mjs :13
import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync, statSync, copyFileSync, rmSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-source.mjs :17
import { existsSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-sourcemap.mjs :15
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-tailwindify.mjs :20
import { readFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-theme.mjs :13
import { readFileSync, writeFileSync } from 'node:fs' - fs TaewoooPark-UIForge-00eca20/tools/uiforge-visualgate.mjs :16
import { existsSync, statSync, readFileSync, writeFileSync, mkdtempSync } from 'node:fs'
shell / exec 7
- shell TaewoooPark-UIForge-00eca20/tools/uiforge-corpus.mjs :19
import { spawnSync } from 'node:child_process' - shell TaewoooPark-UIForge-00eca20/tools/uiforge-debundle.mjs :14
import { spawnSync } from 'node:child_process' - shell TaewoooPark-UIForge-00eca20/tools/uiforge-extract.mjs :16
import { spawnSync } from 'node:child_process' - shell TaewoooPark-UIForge-00eca20/tools/uiforge-restore.mjs :16
import { spawn } from 'node:child_process' - shell TaewoooPark-UIForge-00eca20/tools/uiforge-score.mjs :10
import { spawnSync } from 'node:child_process' - shell TaewoooPark-UIForge-00eca20/tools/uiforge-site.mjs :14
import { execFileSync } from 'node:child_process' - shell TaewoooPark-UIForge-00eca20/tools/uiforge-visualgate.mjs :15
import { spawn } from 'node:child_process'
network 8
- net TaewoooPark-UIForge-00eca20/tools/uiforge-archive.mjs :181
import http from 'node:http' - net TaewoooPark-UIForge-00eca20/tools/uiforge-assets.mjs :47
const res = await fetch(url, { redirect: 'follow', signal: ctrl.signal }) - net TaewoooPark-UIForge-00eca20/tools/uiforge-capture.mjs :181
try { return await fetch(href, { redirect: 'follow', signal: c.signal }) } finally { clearTimeout(t) } - net TaewoooPark-UIForge-00eca20/tools/uiforge-freeze.mjs :48
const res = await fetch(href, { redirect: 'follow', headers: { 'user-agent': UA }, signal: ctrl.signal }) - net TaewoooPark-UIForge-00eca20/tools/uiforge-harvest.mjs :283
res = await fetch(url, { headers: { accept: 'application/json' }, signal: ctrl.signal }); - net TaewoooPark-UIForge-00eca20/tools/uiforge-restore.mjs :88
try { await fetch(`http://localhost:${port}/`, { signal: AbortSignal.timeout(1000) }); return true } catch {} - net TaewoooPark-UIForge-00eca20/tools/uiforge-sourcemap.mjs :33
try { return await fetch(url, { signal: c.signal, headers: { 'user-agent': 'Mozilla/5.0' } }) } catch { return null } finally { clearTimeout(t) } - net TaewoooPark-UIForge-00eca20/tools/uiforge-visualgate.mjs :13
import http from 'node:http'