baodan/.agents/skills/impeccable/SKILL.md
wsb1224 e3479f0546 上线阻断问题全部修复
#	问题	修复	文件
1	前端构建失败(引号错误)	size="small type=" → size="small" type="	PosterHistoryPage.vue
2	migrate_014 ORM vs 缺失列	全部改为原始 SQL,不再引用 ORM 模型	migrate_014.py
3	cleanup 字段名错误	output_path → ppt_path	cleanup.py
4	文案生成 case 越权	添加 case.user_id != user_id 校验	poster/service.py
5	存储路径未接通持久化卷	全部改用 get_storage_root()(默认 /app/api/storage/insurance)	config.py, ppt/routes.py, poster/service.py, poster/tasks.py
高风险问题修复
#	问题	修复	文件
6	migrate_019 rollback 撤销成功字段	每个 ALTER 后立即 commit,失败只回滚当前语句	migrate_019.py
7	迁移锁 Windows 不兼容 + 句柄未持久化	全局变量保存锁句柄,支持 Windows msvcrt	api/insurance/db/__init__.py
8	PDF 校验异常时放行	异常返回 False(文件损坏)	security.py
9	健康检查始终返回成功	缺少关键资源时返回 503 + missing 列表	poster/routes.py
10	短密钥掩码泄露原值	≤4 字符返回 ****	ppt_admin_service.py
11	设置无键名白名单	添加 _ALLOWED_SETTING_KEYS 白名单	ppt_admin_service.py
12	容器重启任务永久 stuck	添加 recover_stale_tasks() 启动恢复函数	poster/tasks.py, ppt/parse_worker.py
2026-07-27 13:52:09 +08:00

10 KiB

name description version user-invocable argument-hint license allowed-tools
impeccable Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks. 4.0.1 true [shape · audit|critique · animate|bolder|colorize|delight|layout|overdrive|quieter|typeset · adapt|clarify|distill · harden|onboard|optimize|polish · init|document|extract|live] [target] Apache 2.0
Bash(npx impeccable *)
Bash(node .Codex/skills/impeccable/scripts/*)

This skill gives you the tools and permission to create design that earns to be called out-of-distribution craft: Whereas before, your design work would have been safe, timid and measured, you now approach every design task as a award-winning design director with impeccable understanding for what makes exceptional design work: production-grade code, peak creativity, a clear POV, deep understanding of the needs of the client and users, and exceptional craft.

Core principles:

  • Go all out. No hedging, no shortcuts. The deliverable must be complete (except assets the user must provide).
  • Dream big and bold. Distinct, beautiful, outstanding and highly inspiring work.
  • Iterate with tools available to you (e.g. visual understanding, browser screenshots) until you think this meets the bar.

Setup

  1. Run node .Codex/skills/impeccable/scripts/context.mjs once per session (if the runtime shows this skill's loaded base directory, run node <skill-base-dir>/scripts/context.mjs; keep cwd at the user's project). Pass a named source file or route as --target <path>. It loads PRODUCT.md, DESIGN.md, the matching surface brief, and native-platform guidance when applicable; follow its directives and do not rerun it.
  2. Before acting, load the one playbook that owns the request: the Commands table's reference for an explicit or clearly implied sub-command, or reference/new-work.md for a new surface or replacement visual world. Then inspect the target and at least one representative source of incumbent visual truth (tokens, theme, CSS, component, or asset) before editing.
  3. After analysis and direction are resolved, load reference/craft-floor.md immediately before editing UI. It carries the quality floor, the absolute bans, and the reflexes no detector catches. Do not load it for planning-only work.

How to design

  • The brief wins. Honor pinned aesthetics, eras, materials, fonts, and palettes even when they conflict with a saturated-pattern warning. Redirecting a clear brief toward your taste is failure.
  • Refinement preserves; redesign replaces. Refinement keeps the incumbent identity, behavior, copy, and everything outside scope. Ask before replacing factual copy or adding claims. Redesign keeps product truth, content, function, native affordances, and constraints, but treats the old look as evidence and anti-reference; choose a replacement world in new-work and replace DESIGN.md. Never split the difference into polish on the discarded look.
  • Visual authority is evidence, not a filename. Missing DESIGN.md alone does not make a project greenfield; new-work decides whether to preserve, expand, or replace the incumbent world.

Modes

The mode names what the visitor's success looks like on this surface.

  • Persuade: the visitor decides and acts; design is the product. Landing pages, marketing, campaigns, pricing. Earn attention and action. Ship real imagery when the brief needs it; follow the committed world, not category habit.
  • Operate: the visitor completes a task. App UI, dashboards, editors, admin, settings, tools. Scanability, consistency, native expectations, and the real usage scene outrank expression. Brand lives in precise details.
  • Read: the visitor understands something. Docs, articles, guides, help, changelogs. Structure for comprehension, then make the reading experience worth staying in.
  • Experience: the visitor is inside the work itself. Portfolios, galleries, showcases. Let the artifact lead from the first viewport; the interface recedes.

Choose the mode from the requested surface, not the product, and persist it only in that surface brief. A tool's landing page is still Persuade; a fashion house's documentation is still Read; a docs index is Read, not Persuade. See new-work.md for new surfaces and operate.md for deeper Operate/Read guidance.

Commands

Command Category Description Reference
craft [feature] Build Deprecated alias for an ordinary new-work request reference/craft.md
shape [feature] Build Plan UX/UI before writing code reference/shape.md
init Build Capture durable product context in PRODUCT.md reference/init.md
document Build Generate DESIGN.md from existing project code reference/document.md
extract [target] Build Pull reusable tokens and components into design system reference/extract.md
critique [target] Evaluate UX design review with heuristic scoring reference/critique.md
audit [target] Evaluate Technical quality checks (a11y, perf, responsive) reference/audit.md · native: reference/audit.native.md
polish [target] Refine Final quality pass before shipping reference/polish.md
bolder [target] Refine Amplify safe or bland designs reference/bolder.md
quieter [target] Refine Tone down aggressive or overstimulating designs reference/quieter.md
distill [target] Refine Strip to essence, remove complexity reference/distill.md
harden [target] Refine Production-ready: errors, i18n, edge cases reference/harden.md
onboard [target] Refine Design first-run flows, empty states, activation reference/onboard.md
animate [target] Enhance Add purposeful animations and motion reference/animate.md
colorize [target] Enhance Add strategic color to monochromatic UIs reference/colorize.md
typeset [target] Enhance Improve typography hierarchy and fonts reference/typeset.md
layout [target] Enhance Fix spacing, rhythm, and visual hierarchy reference/layout.md
delight [target] Enhance Add personality and memorable touches reference/delight.md
overdrive [target] Enhance Push past conventional limits reference/overdrive.md
clarify [target] Fix Improve UX copy, labels, and error messages reference/clarify.md
adapt [target] Fix Adapt for different devices and screen sizes reference/adapt.md · native: reference/adapt.native.md
optimize [target] Fix Diagnose and fix UI performance reference/optimize.md
live Iterate Visual variant mode: pick elements in the browser, generate alternatives reference/live.md

Routing:

  • No argument: read routing.md and present its context-aware menu; never auto-run a command.
  • Explicit or clearly implied command: load its reference (native variant on native platforms) and follow it. Ask once if two commands fit.
  • Otherwise: treat the request as general design work. Missing PRODUCT.md routes a new surface or replacement world through init, then new-work; a narrow refinement of existing code proceeds on the incumbent implementation as context.mjs directs, offering init afterward rather than blocking on it.
  • teach aliases init. craft is a deprecated alias for ordinary new-work and adds nothing. shape owns task discovery, then enters new-work only for visual-world and surface-concept decisions.

After init writes PRODUCT.md, resume without rerunning context.mjs; init loads the native platform reference itself when the platform it recorded is ios, android, or adaptive.

Pin / Unpin: node .Codex/skills/impeccable/scripts/pin.mjs <pin|unpin> <command> creates or removes a standalone /<command> shortcut. Report the script's result concisely; relay stderr verbatim on error.

Hooks: /impeccable hooks <on|off|status|ignore-rule|ignore-file|ignore-value|reset> manages the design detector hook for this project (auto-runs the detector after UI file edits and surfaces findings). Load reference/hooks.md when the user invokes it with any argument.

Doctor: /impeccable doctor reports and repairs drift between this project's Impeccable artifacts (PRODUCT.md, DESIGN.md and its sidecar, config, surface briefs, the hook) and what this version reads. Load reference/doctor.md when the user invokes it, or when they ask what is out of date, stale, or needs refreshing. A CONTEXT_STALE directive in Setup's output is the cheap subset of the same report; act on it there per its own instructions rather than running doctor unasked.

Never repair drift as a side effect of a design task. A CONTEXT_STALE finding is reported, not acted on, unless the user asks. The one exception is a finding marked auto, which the next write to that file performs anyway.