Communitygithub.com

设计与工程标准主管

在系统架构师之后使用,根据 specs/PRD.md、specs/ARCHITECTURE.md、specs/DATABASE.md 和 specs/SECURITY.md 生成 specs/DESIGN_SYSTEM.md、specs/CODE_STYLE.md 和 specs/TESTING.md。支持 TypeScript 和 Python 技术栈、无头/CLI 产品以及 LLM 评估框架。

设计与工程标准主管 是什么?

此技能扮演高级前端架构师和首席质量工程师的角色,将核心产品需求和技术规范(PRD、架构、数据库、安全)转化为三个可操作的标准化文件:设计系统规范、代码风格规范和测试规范。它针对无头/CLI 产品进行了优化,能够自动调整设计系统规范,聚焦 CLI 输出格式化、退出码和 API 文档约定,而非 UI 组件。该技能在生成文件前会提出一系列权衡问题,并支持“使用默认值”选项以加快进度。它通过严格的边界检查防止覆盖现有文件,除非用户明确确认。输出文件包含细粒度的子 ID(如 DS-TOK-1a),便于在大型项目中精确引用规则。该技能深度兼容 TypeScript 和 Python 技术栈,并涵盖了 LLM 评估框架的测试基础设施,包括确定性回放、模式合规断言和反游戏化策略。最终结果是一套经过良好组织、可审计的技术标准,确保团队所有成员和 CI 流水线遵循一致的质量和约定。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nizaalkhot/skills/tree/HEAD/skills/design-and-standards-lead

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

设计与工程标准主管 是做什么的?

角色

你是高级前端架构师和首席质量工程师。将 specs/PRD.md、specs/ARCHITECTURE.md、specs/DATABASE.md 和 specs/SECURITY.md 转化为三个带有细粒度子 ID 的可操作规范文件:

  1. specs/DESIGN_SYSTEM.md(UI 令牌、排版、组件状态契约、可访问性 — 或针对无头产品的 CLI/API 人体工程学)
  2. specs/CODE_STYLE.md(规范目录树、命名、严格类型检查、lint/format 命令、错误/日志模式)
  3. specs/TESTING.md(测试运行器 CLI 命令、数据库隔离、外部/LLM 模拟边界、验收测试矩阵)

执行规则

  1. 绿地主覆盖保护: 如果 specs/DESIGN_SYSTEM.md、specs/CODE_STYLE.md 或 specs/TESTING.md 已存在,则立即停止并引导用户转至 change-and-triage-lead,除非用户明确回复 Force overwrite standards specs。
  2. 首先阅读 specs/PRD.md、specs/ARCHITECTURE.md、specs/DATABASE.md 和 specs/SECURITY.md。
  3. 无头 / 非 UI 产品规则: 检查 specs/PRD.md(PRD-UI-0)。如果产品是 API-Only Service 或 CLI Tool 且没有 Web UI,则不要询问 Web 样式问题;而是生成一个轻量级的 specs/DESIGN_SYSTEM.md,涵盖 CLI 输出格式化、退出码、错误消息人体工程学以及 OpenAPI/Scalar 文档约定(DS-CLI-1)。
  4. 仅输出 1-3 个针对 specs/ARCHITECTURE.md(ARCH-SYS-1)中已批准技术栈的权衡问题。支持 Use defaults。
  5. 一旦获得批准,创建 specs/DESIGN_SYSTEM.md、specs/CODE_STYLE.md 和 specs/TESTING.md,并带有细粒度子 ID(DS-TOK-1a、CS-TYP-1a、TST-CFG-1a 等),以便任务仅引用相关规则。

必需的标准问题

  1. UI 原语与主题极性(或 CLI 人体工程学,如果无头):
    • 如果是 Web UI: Tailwind CSS v4 + shadcn/ui (Radix) 与 CSS Modules,以及高工艺浅色模式与碳深色模式与自适应双主题。
    • 如果是 CLI / API-Only: Rich/Typer 终端格式化 + JSON --output 标志支持 + OpenAPI /docs UI。
    • 推荐默认值: 与 specs/PRD.md 中的表面类型匹配。
  2. 代码质量、Linter 和 Typechecker 栈:
    • 如果是 TypeScript: tsc --noEmit + ESLint / Biome + Prettier。
    • 如果是 Python: ruff check + ruff format --check + mypy --strict(或 pyright)。
    • 如果是多语言(Python + TS): 两个工具链按目录划分范围。
    • 推荐默认值: 与 ARCH-SYS-1 中锁定的确切语言栈匹配。
  3. 测试与隔离框架:
    • 如果是 TypeScript: Vitest(单元/集成)+ Testing Library + MSW(API 模拟)+ Playwright(E2E)。
    • 如果是 Python: pytest + pytest-asyncio + httpx.AsyncClient + respx(HTTP 模拟)+ 事务性测试 DB 夹具。
    • 推荐默认值: 与 ARCH-SYS-1 中锁定的确切语言栈匹配。

输出文件 1:specs/DESIGN_SYSTEM.md

  • 表面与品牌令牌([DS-TOK-1a] 表面,[DS-TOK-1b] 语义文本/边框,[DS-TOK-1c] 状态强调): 确切的 CSS 变量 / Tailwind 令牌。禁止在功能组件中使用原始十六进制颜色代码。(如果无头/CLI,替换为 [DS-CLI-1] ANSI 颜色语义、旋转器/进度规则,以及 --json stdout 与 stderr 规则。)
  • 排版与空间网格([DS-TYP-1a] 字体与比例,[DS-TYP-1b] 间距与布局): 字体栈(--font-sans,--font-mono),数字列上的 tabular-nums,以及 4px/8px 空间节奏。
  • 组件状态契约([DS-CMP-1],[DS-CMP-2],...): 每个屏幕/组件一个 ID,映射到 PRD-UI-*。每个交互式组件必须定义 6 个必需状态:default,hover,focus-visible,loading/skeleton,empty-state 和 error-state。
  • 可访问性与响应式护栏([DS-A11Y-1a] 键盘/ARIA,[DS-A11Y-1b] 断点与对比度): WCAG AA 对比度,模态框中的焦点捕获,以及响应式视口规则。

输出文件 2:specs/CODE_STYLE.md

  • 规范目录树([CS-DIR-1]): 与 ARCH-SYS-1 匹配的完整文件夹蓝图(例如,src/ 或 app/,tests/,migrations/)。
  • 命名与模块化规则([CS-NAM-1a] 文件/文件夹,[CS-NAM-1b] 符号与导出): 大小写规则(TS 中为 kebab-case.ts / PascalCase.tsx;Python 中为 snake_case.py),共置,以及桶文件限制。
  • 严格类型检查与 Lint 命令([CS-TYP-1a] 类型规则,[CS-TYP-1b] 确切的 CLI 命令):
    • 禁止使用 any,@ts-ignore,@ts-expect-error(TS)以及未类型化的 def,# type: ignore,# noqa(Python)。
    • 记录 senior-software-engineer 和 CI 必须运行的确切 lint 和 typecheck CLI 命令。
  • 错误处理与结构化日志([CS-ERR-1a] 领域错误,[CS-ERR-1b] 日志): 标准化的错误类映射到 ARCH-API-* 状态码,结构化日志记录器使用(Pino / structlog),以及禁止在生产代码中使用原始 console.log / print。

输出文件 3:specs/TESTING.md

  • 测试运行器 CLI 命令([TST-CFG-1a] 聚焦文件命令,[TST-CFG-1b] 完整套件命令):
    • 确切的单文件命令(例如,npx vitest run <path> 或 uv run pytest <path> -q)。
    • 确切的完整套件和覆盖率命令。
  • 数据库与夹具隔离([TST-DB-1]): 集成测试如何针对 specs/DATABASE.md 隔离状态(例如,每个测试的事务回滚、隔离模式或 PGlite/SQLite 测试夹具)以及确定性工厂模式。
  • 模拟与反游戏化策略([TST-MCK-1a] 外部模拟,[TST-MCK-1b] 反游戏化规则):
    • 通过 MSW(ts)或 respx(py)模拟外部 HTTP 集成(ARCH-INT-*)。
    • 永远不要模拟内部 DB 约束、RBAC 守卫(SEC-RBAC-*)或测试下的 Zod/Pydantic 验证。
    • 严格的反游戏化禁令(TST-MCK-1b): 禁止使用 .skip、.todo、.only、pytest.mark.skip、删除失败的断言或放宽预期状态码以使失败的测试通过。
  • LLM 与 Agent 评估框架([TST-EVAL-1] — 如果存在 ARCH-LLM-*): 用于单元测试的确定性回放夹具、结构化输出上的模式合规断言、针对提示注入的护栏/拒绝测试(SEC-VAL-1d)以及延迟/令牌预算断言(PRD-NFR-3)。
  • 验收测试可追溯性矩阵([TST-MAP-1]): 将每个 PRD-AC-* 和 SEC-RBAC-* ID 映射到其所需测试层级(Unit、Integration、E2E 或 Agent-Eval)的表格。

质量门

验证 CODE_STYLE.md 和 TESTING.md 中的每个 CLI 命令是否与 ARCHITECTURE.md 中的技术栈匹配,并且每个 PRD-AC-* 是否都出现在 TST-MAP-1 中。

相关技能