diff --git a/skills/plan/skeleton-gen/SKILL.md b/skills/plan/skeleton-gen/SKILL.md index 401bec7..592b906 100644 --- a/skills/plan/skeleton-gen/SKILL.md +++ b/skills/plan/skeleton-gen/SKILL.md @@ -61,23 +61,29 @@ docs/04 已由 scope-lock 写入 § 零。本步骤追加 § 一 ~ 三。 #### C.1 复制 ```bash -mkdir -p scripts .githooks sql/migrations +mkdir -p scripts .githooks sql/migrations src/styles touch sql/migrations/.gitkeep cp "${CLAUDE_SKILL_DIR}/templates/env-local-template" .env.local cp "${CLAUDE_SKILL_DIR}/templates/githooks-pre-push-template.sh" .githooks/pre-push cp "${CLAUDE_SKILL_DIR}/templates/scripts-setup-test-db-template.sh" scripts/setup-test-db.sh +cp "${CLAUDE_SKILL_DIR}/templates/styles-tokens-template.css" src/styles/tokens.css ``` #### C.2 渲染 scripts/test.sh -读取 `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`,基于步骤 A 的技术栈(docs/04)推断命令后写到 `scripts/test.sh`: +读取 `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`,基于步骤 A 的技术栈(docs/04 § 零)为 7 个占位推断命令后写到 `scripts/test.sh`: -- `{{build_cmd}}` 构建 -- `{{lint_cmd}}` lint -- `{{test_cmd}}` unit + integration -- `{{e2e_cmd}}` E2E(无 E2E 则填 `echo "[test.sh] e2e 略"`) +- `{{backend_build}}` / `{{backend_lint}}` / `{{backend_test}}` 后端各 stage 命令 +- `{{frontend_build}}` / `{{frontend_lint}}` / `{{frontend_test}}` 前端各 stage 命令 +- `{{e2e_cmd}}` E2E(无 E2E 工具则填 `echo "[test.sh] e2e 略"`) -> 双端项目(backend + frontend)用 `(cd backend && ) && (cd frontend && )` 串联;单端直接写一条。 +> 推断规则:根据 `docs/04 § 零` 。 +> - 「后端*」存在 → 据后端技术栈推 backend 三槽(build / lint / test 命令) +> - 「前端*」存在 → 据前端技术栈推 frontend 三槽 +> - 缺席 stack → 三槽全填 `:`(运行期 `[ -d X ]` 守卫对接;语法合法即可) +> - `{{e2e_cmd}}` 通常仅前端,按上述前端规则或填 `echo "[test.sh] e2e 略"` +> +> 表结构异常(列名变更 / 无中文前缀)时停下,用 `AskUserQuestion` 让用户显式确认每 stack 命令。 #### C.3 赋权 + 配置 git hooks @@ -88,6 +94,7 @@ git config core.hooksPath .githooks 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: - ` - [ ] 工具脚本已生成(scripts/*.sh、.githooks/pre-push、.env.local)` +- ` - [ ] 样式 token 骨架已生成(src/styles/tokens.css)` ### D. 追加 .gitignore 忽略项 @@ -149,9 +156,10 @@ QA 横幅涵盖:产出文件清单(docs/04 / 06 / 07 / 09 + scripts/*.sh + . - `${CLAUDE_SKILL_DIR}/templates/docs-06-static-template.md`(大纲) - `${CLAUDE_SKILL_DIR}/templates/docs-07-env-template.md`(大纲) - `${CLAUDE_SKILL_DIR}/templates/docs-09-structure-template.md`(大纲) -- `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`(推断命令填充:build/lint/test/e2e) +- `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`(推断命令填充 7 槽:backend/frontend × build/lint/test + e2e;缺席 stack 填 `:`) - `${CLAUDE_SKILL_DIR}/templates/scripts-setup-test-db-template.sh`(0 槽位) - `${CLAUDE_SKILL_DIR}/templates/githooks-pre-push-template.sh`(0 槽位) - `${CLAUDE_SKILL_DIR}/templates/env-local-template`(0 槽位) - `${CLAUDE_SKILL_DIR}/templates/gitignore-append-template`(0 槽位) +- `${CLAUDE_SKILL_DIR}/templates/styles-tokens-template.css`(0 槽位,样式 token 骨架) - `${CLAUDE_SKILL_DIR}/scripts/merge-gitignore.sh`(.gitignore 逐行判重合并脚本) diff --git a/skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md b/skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md index 0284285..396405a 100644 --- a/skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md +++ b/skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md @@ -38,6 +38,14 @@ skeleton-gen 读取 docs/04 § 零(技术栈表)和 docs/01-需求清单/ind ### 2.4 错误处理 +### 2.5 样式与主题 + + ## 三、共同约定 ### 3.1 Git 提交 diff --git a/skills/plan/skeleton-gen/templates/docs-06-static-template.md b/skills/plan/skeleton-gen/templates/docs-06-static-template.md index 107391e..f991a99 100644 --- a/skills/plan/skeleton-gen/templates/docs-06-static-template.md +++ b/skills/plan/skeleton-gen/templates/docs-06-static-template.md @@ -40,8 +40,24 @@ UI 细节(布局参数、颜色、组件选型)来自 § 零 前端 UI 组 ### 3.3 权限控制(前端) -## 四、主题与颜色 - +## 四、Design Tokens + + + +### 4.1 全局调色板 + + +### 4.2 组件级状态色 + + +### 4.3 引用约定 + ## 五、页面清单 (由 `downstream-gen` 按模块追加段落) diff --git a/skills/plan/skeleton-gen/templates/styles-tokens-template.css b/skills/plan/skeleton-gen/templates/styles-tokens-template.css new file mode 100644 index 0000000..bc8a542 --- /dev/null +++ b/skills/plan/skeleton-gen/templates/styles-tokens-template.css @@ -0,0 +1,43 @@ +/* + * src/styles/tokens.css — Design Tokens + * 命名规范见 docs/04-技术规范.md § 2.5 + * 色值锁定见 docs/06-UI交互规范.md § 四 + * + * 命名格式:--color--- + * 组件域:form / table-row / table-header / ... + * 作用:bg(背景)/ fg(前景/字体)/ border + * 状态:edit / readonly / hover / selected(无状态时省略) + * + * 约束: + * - 组件样式中只用 var(--color-xxx),禁止硬编码 hex / rgba + * - 修改色值只改本文件,不允许在组件级覆盖 + * - 新增 token 须先登记到 docs/06 § 4.1 / 4.2,再补到此处 + */ + +:root { + /* === 1. 全局调色板(与 Ant Design 主题对齐) === */ + --color-primary: #1890ff; + --color-success: #52c41a; + --color-warning: #faad14; + --color-error: #ff4d4f; + --color-text: rgba(0, 0, 0, 0.85); + --color-text-secondary: rgba(0, 0, 0, 0.45); + --color-border: #d9d9d9; + --color-bg-base: #f0f2f5; + + /* === 2. 组件级状态色(与 docs/06 § 4.2 一一对应) === */ + + /* form:输入框 / 备注框 / 时间框 / 下拉框共用 */ + --color-form-bg-edit: #ffffff; + --color-form-bg-readonly: #f1f2f8; + --color-form-bg-hover: #f5f5f5; /* 仅下拉框使用 */ + --color-form-fg: #000000; + + /* table */ + --color-table-row-bg-selected: #86d5fb; + --color-table-row-bg-hover: #fff7e6; + --color-table-row-bg-readonly: #f1f2f8; /* = rgb(241, 242, 248) */ + --color-table-row-fg: #000000; + --color-table-header-bg: #f5f5f5; + --color-table-header-fg: rgba(0, 0, 0, 0.85); /* = #000000D9 */ +}