Commit 82b3eaa90c88c17c6cdc93706bb8b23a4d0b3ef0

Authored by zichun
1 parent c43e7989

templates: move per-section LLM guidance from template comments into the consuming SKILL.md

skills/plan/frontend-scope-lock/templates/fe-scope-template.md
1   -<!--
2   -fe-scope-template:A6 frontend-scope-lock 的产出骨架。
3   -本模板被 frontend-scope-lock 填充后写入两处:
4   - - § 一 ~ § 三(UI 约定 / Design Tokens / 组件库)→ 写入 docs/06-UI交互规范.md(合并进 § 一/§ 二/§ 四 对应小节,不另起文件)
5   - - § 四(前端栈摘要)→ 写入 docs/04-技术规范.md § 二(前端编码规范)的引用说明
6   - - § 五(每个 FE-NN 设计决策表)→ 写入 docs/06 § 三 之后,作为 FE 级设计契约
7   -渲染约定:
8   -1) 所有 {{占位符}} 必须由 frontend-scope-lock 用「从 prototype + docs/01 + docs/05/06 提炼并经 AskUserQuestion 确认」的真实值替换。
9   - 不允许留 {{...}} 占位,也不允许留示例值——留占位/示例即视为 A6 未完成。
10   -2) § 五 的 FE-NN 行数 = docs/08 § 三 推导出的 FE 清单条目数,一 FE 一行。
11   -3) 渲染后这段 HTML 注释要剥掉,不进入最终文档。
12   --->
13 1 ## 一、项目级 UI 约定
14 2  
15 3 > 来源:prototype/*.html 实测 + docs/01 REQ 卡片 UI 描述 + docs/06 已有布局。经用户确认。
... ...
skills/plan/project-init/templates/docs-08-initial-template.md
... ... @@ -51,26 +51,9 @@
51 51  
52 52 (A5 填入后,每行一个后端模块。每个模块的 `里程碑:` 字段在 `—` 和 `milestone/<id>` 之间变化,完成由本地 `git tag -l` 判定。`coding-start` 每次按 docs/02 REQ 序扫每模块的里程碑 tag 决定派发。后端模块全部打里程碑后自动进入 § 三 前端阶段。)
53 53  
54   -<!-- 模块格式示例(由 A5 downstream-gen 追加;功能子项由 coding.mjs 的 review stage 在 approve 时勾选):
55   -- module_sys 系统管理
56   - - 依赖: —
57   - - 路径: backend/module/sys/
58   - - 里程碑: —
59   - - 功能:
60   - - [ ] REQ-SYS-001 用户登录
61   - - [ ] REQ-SYS-002 用户注册
62   --->
63   -
64 54 ## 三、Coding 阶段(前端整体)
65 55  
66 56 (FE 业务功能清单在 Plan 期 A6 `frontend-scope-lock` 由 prototype/ + docs/01 + docs/05 推导后写入下方"功能:"项;Coding 阶段 `coding.mjs` 的 Router 把全部未完成 FE 聚合为单一 `frontend-phase` 阶段,排在所有后端模块之后。整个前端阶段 1 个里程碑 tag,分支 `frontend-phase`。)
67 57  
68 58 - 整体里程碑: —
69 59 - 功能:
70   - <!-- AI 进入时按以下行格式写入(每行 1 个 FE,可关联多个 REQ / 多份原型):
71   - - [ ] FE-NN 功能名 | 关联 REQ:REQ-A, REQ-B | 关联原型:prototype/<file>.html, prototype/<other>.html
72   -
73   - 示例:
74   - - [ ] FE-01 用户登录与注册 | 关联 REQ:REQ-SYS-001, REQ-SYS-002 | 关联原型:prototype/auth.html
75   - - [ ] FE-02 仪表盘总览 | 关联 REQ:REQ-DASH-001 | 关联原型:prototype/dashboard.html
76   - -->
... ...
skills/plan/scope-lock/templates/config-vars-template.yaml
1   -# config-vars.yaml — 项目配置清单
2   -#
3   -# 用途:登记「需人工提供 / 确认」的非敏感、项目级配置(根包名、应用端口、前端包名、初始账号等)。
4   -# YAML 分组,逐项填写与核对一目了然。
5   -# 规则:命名约定 / 端口约定 / 安全要求统一写在 docs/07-环境配置.md,本文件只放值、不重复写规则。
6   -# 边界:
7   -# - 机器 / 环境相关的连接信息(DB_HOST / DB_PORT / DB_USER / DB_SCHEMA 等)→ 仓库根 .env.local,不写在此。
8   -# - 敏感凭据(密码 / 密钥 / token)→ .env.local;本文件 secrets_ref 只登记键名供核对,绝不写真实值。
9   -# 填写:A1 scope-lock 按 docs/04 § 零 技术栈推断默认值填入;无对应技术栈的整节删除;无法推断的留 【人工填写:…】(A2 skeleton-gen 补填)。
  1 +# config-vars.yaml — non-sensitive project config; rules live in docs/07.
  2 +# Sensitive values go in .env.local; only list key names under secrets_ref.
10 3  
11 4 backend:
12 5 base_package: 【人工填写:后端根包名 / 命名空间,如 com.acme.erp】
... ... @@ -20,8 +13,6 @@ admin_init:
20 13 username: 【人工填写:超级管理员初始账号,如 admin】
21 14 # 初始密码属敏感 → 见 .env.local 的 ADMIN_INIT_PASSWORD
22 15  
23   -# 敏感值引用:真实值在 .env.local,此处只登记「键名 + 含义」,供 A2 skeleton-gen 核对 .env.local 是否齐全。
24   -# 按技术栈增删行(注释行表示可选,按需取消注释)。
25 16 secrets_ref:
26 17 - DB_PASSWORD # 数据库密码
27 18 - JWT_SECRET # JWT / 令牌签名密钥
... ...
skills/plan/scope-lock/templates/req-card-template.md
1 1 <!--
2   -req-card-template:å•å¼  REQ å¡ç‰‡éª¨æž¶ã€‚æ¯å¼ å¡ç‰‡æ˜¯ docs/01-需求清å•/<module>/REQ-XXX-NNN.md 一个独立文件。
3   -
4   -渲染约定:
5   -1) scope-lock æ¸²æŸ“æ—¶æ›¿æ¢ 6 个å ä½ç¬¦ï¼š{{req_id}} / {{title}} / {{goal}} / {{rules}} / {{constraints}} / {{acceptance}}
6   - è¿™ 6 项由 CC æ ¹æ® docs/01-需求清å•/index.md çš„ã€Œæ ¸å¿ƒåŠŸèƒ½ç‚¹ã€æŽ¨æ–­èµ·è‰ï¼š
7   - - req_id / title:从核心功能点拆分命åå¾—æ¥
8   - - goal:用一å¥è¯å±•å¼€ title
9   - - rules / constraints / acceptance:业务语义层é¢çš„åˆç†èµ·è‰ï¼Œå¾…人工审阅修订
10   -2) `**输入字段**` / `**输出字段**` 为**结构化字段表**:æ¯ä¸ªå­—段一行,6 列固定结构
11   - (字段å | 类型 | å¿…å¡« | 校验规则 | 业务规则 | 示例值)。
12   - 模æ¿å†…æ¯å¼ è¡¨ç»™å‡ºä¸€è¡Œç¤ºä¾‹è¡Œï¼Œåˆ—首注明 `ã€ç¤ºä¾‹è¡Œï¼Œæ›¿æ¢ä¸ºçœŸå®žå­—段】`。
13   - 人工拿到å¡ç‰‡åŽæŒ‰æœ¬ REQ 实际业务**é€è¡Œæ›¿æ¢ä¸ºçœŸå®žå­—段 / 增删行**:
14   - - 字段å:本 REQ 真实的输入 / 输出字段
15   - - 类型:真实数æ®ç±»åž‹ï¼ˆæ–‡æœ¬ / æ•´æ•° / é‡‘é¢ / 日期 / 布尔 / 枚举 / …)
16   - - 必填:是 / å¦
17   - - 校验规则:长度 / æ ¼å¼ / 范围 / 唯一性等å¯éªŒè¯çº¦æŸï¼ˆå¦‚「3-20 ä½å­—æ¯æ•°å­—下划线;系统内唯一ã€ï¼‰
18   - - 业务规则:该字段的业务å«ä¹‰ / æ¥æº / 默认值 / è”动逻辑
19   - - 示例值:一个真实约æŸä¸‹çš„åˆæ³•å–值
20   -3) **「示例值ã€åˆ—必须替æ¢ä¸ºçœŸå®žçº¦æŸä¸‹çš„å–值。留模æ¿é»˜è®¤å ä½ï¼ˆ`ã€ç¤ºä¾‹è¡Œï¼Œæ›¿æ¢ä¸ºçœŸå®žå­—段】` 或 `<示例值>`)å³è§†ä¸ºè¯¥ REQ å¡ç‰‡æœªå®Œæˆï¼ŒA1 终结校验会阻断进入下一阶段。**
21   -4) `**ä¾èµ–表**: TBD(A3 自动补)` å’Œ `**ä¾èµ–接å£**: TBD(A5 自动补)` 是åŽç»­ skill 自动回填的å ä½ï¼Œæ¸²æŸ“æ—¶**ä¿æŒåŽŸæ ·**,ä¸è¦æ›¿æ¢ä¸º `-` 也ä¸è¦æ›¿æ¢ä¸º `{{...}}`
22   -5) 渲染åŽè¿™æ®µ HTML 注释è¦**剥掉**,ä¸è¿›å…¥æœ€ç»ˆå¡ç‰‡ï¼ˆlib/render.mjs 自动剥离)
  2 +req-card-template:å•å¼  REQ å¡ç‰‡éª¨æž¶ã€‚两处 `TBD(A3 自动补)` / `TBD(A5 自动补)` é¡»ä¿æŒåŽŸæ ·ã€‚
23 3 -->
24 4 ### {{req_id}} {{title}}
25 5  
... ... @@ -29,13 +9,13 @@ req-card-template:å•å¼  REQ å¡ç‰‡éª¨æž¶ã€‚æ¯å¼ å¡ç‰‡æ˜¯ docs/01-需求清å
29 9  
30 10 | 字段å | 类型 | å¿…å¡« | 校验规则 | 业务规则 | 示例值 |
31 11 | --- | --- | --- | --- | --- | --- |
32   -| ã€ç¤ºä¾‹è¡Œï¼Œæ›¿æ¢ä¸ºçœŸå®žå­—段】 | 文本 | 是 | 3-20 ä½å­—æ¯æ•°å­—下划线;系统内唯一 | 用户登录账å·ï¼Œç³»ç»Ÿå†…唯一标识 | <示例值> |
  12 +| {{input_field_name}} | {{input_field_type}} | {{input_field_required}} | {{input_field_validation}} | {{input_field_business}} | {{input_field_example}} |
33 13  
34 14 **输出字段**:
35 15  
36 16 | 字段å | 类型 | å¿…å¡« | 校验规则 | 业务规则 | 示例值 |
37 17 | --- | --- | --- | --- | --- | --- |
38   -| ã€ç¤ºä¾‹è¡Œï¼Œæ›¿æ¢ä¸ºçœŸå®žå­—段】 | æ•´æ•° | 是 | 大于 0 | 新建记录的主键 id | <示例值> |
  18 +| {{output_field_name}} | {{output_field_type}} | {{output_field_required}} | {{output_field_validation}} | {{output_field_business}} | {{output_field_example}} |
39 19  
40 20 - **跨字段规则**: {{rules}}
41 21 - **边界**: {{constraints}}
... ...
skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md
1   -<!--
2   -本文件是 docs/04-技术规范.md 的 § 一+ 大纲。
3   -skeleton-gen 读取 docs/04 § 零(技术栈表)和 docs/01-需求清单/index.md(模块索引),
4   -按下述大纲生成本项目专属的规范内容。LLM 不要原样拷贝提示文字,只保留 section 标题。
5   --->
6   -
7 1 ## 一、后端规范
8 2  
9 3 ### 1.1 规则
10   -<!-- 后端通用约定:保留下方占位符不要代填,由人工在 skeleton-gen § E 填写;每条一个 bullet,按需复制本行新增更多。 -->
11 4 - 【人工填写:一条后端通用约定,按需复制本行新增更多;无则填「无」】
12 5  
13 6 ### 1.2 分层结构
14   -<!-- 按 § 零 的后端框架定层次:controller/service/mapper 等;每层职责一句话。 -->
15 7  
16 8 ### 1.3 命名约定
17   -<!-- 包名(根包用【人工填写:根包名】占位)/ 类名 / 方法名 / 常量的大小写规则,含 2 个示例。 -->
18 9  
19 10 ### 1.4 统一响应格式
20   -<!-- 成功/失败的 JSON 结构,错误码段位划分。 -->
21 11  
22 12 ### 1.5 异常处理
23   -<!-- 全局异常处理器的使用方式;哪些异常要 catch,哪些禁止;**接口响应禁止回显后端异常堆栈**(返用户友好错误码 + 文案)。 -->
24 13  
25 14 ### 1.6 事务
26   -<!-- 事务边界(通常 service 层);跨服务调用的禁止/替代方案。 -->
27 15  
28 16 ### 1.7 认证
29   -<!-- 基于 § 零 认证方案推导:token 生命周期、刷新机制、密钥管理。 -->
30 17  
31 18 ## 二、前端规范
32 19  
33 20 ### 2.1 目录约定
34   -<!-- 基于 § 零 前端框架推导:api/components/pages/store/hooks/utils 的职责;**前端禁止直接写 SQL / 操作 DB**,所有数据访问走 api/ 层统一封装。 -->
35 21  
36 22 ### 2.2 状态管理
37   -<!-- 基于 § 零 状态管理技术推导:全局 vs 局部、服务端数据的存放。 -->
38 23  
39 24 ### 2.3 请求封装
40   -<!-- HTTP 客户端的拦截器、超时、错误重试、鉴权注入。 -->
41 25  
42 26 ### 2.4 错误处理
43   -<!-- 网络错误 / 业务错误 / 页面级错误的分层处理。 -->
44 27  
45 28 ### 2.5 样式与主题
46   -<!-- 基于 § 零 UI 库给出 CSS 变量约定:
47   - - 命名格式 `--color-<scope>-<role>-<state>`(scope=form/table-row/...,role=bg/fg/border,state=edit/readonly/hover/selected)
48   - - 文件位置 `src/styles/tokens.css`,由 skeleton-gen 生成空骨架,色值由 docs/06 § 四锁定后填入
49   - - 组件样式中只用 var(--color-xxx),禁止硬编码 hex/rgba
50   - - 与 UI 库主题对接(如 Ant Design ConfigProvider.theme.token)的映射方式
51   - 具体 token 表见 docs/06 § 四。 -->
52 29  
53 30 ## 三、共同约定
54 31  
... ... @@ -56,14 +33,9 @@ skeleton-gen 读取 docs/04 § 零(技术栈表)和 docs/01-需求清单/ind
56 33 `<type>(<scope>): <subject> REQ-XXX-NNN`
57 34  
58 35 ### 3.2 分页查询
59   -<!-- 后端分页对象 + 前端分页组件,入参出参约定。 -->
60 36  
61 37 ### 3.3 日期与金额
62   -<!-- 后端类型(如 LocalDateTime / BigDecimal)+ 前端展示工具;金额精度约定。 -->
63 38  
64 39 ### 3.4 数据访问规约
65   -<!-- 基于 § 零 数据访问技术(MyBatis-Plus / JPA 等):SELECT 字段显式列举,**禁止 `SELECT *`**;循环中不得执行 DB 查询(**N+1 反模式**),改用批量查 / IN 子句 / JOIN;Mapper XML 里字段与表名用常量或引用,避免拼字符串。 -->
66 40  
67 41 ### 3.5 配置与安全
68   -<!-- 配置:DB 连接 / 端口 / 密钥 / 第三方 URL 等一律放 `application.yml` + `.env.local`,代码里**禁止硬编码**。
69   - 前端安全:`localStorage` 不存敏感信息(token / 身份 / 个人数据),推荐 HttpOnly Cookie 或 内存 + 刷新 token 模式;接口响应禁止回显后端异常堆栈(与 § 1.5 一致)。 -->
... ...
skills/plan/skeleton-gen/templates/docs-06-static-template.md
1   -<!--
2   -本文件是 docs/06-UI交互规范.md çš„ § 一 ~ 三 大纲(§ 䏉页颿¸…å•ç”± downstream-gen 按模å—追加;FE 决策表由 A6 frontend-scope-lock 追加到 § 三之åŽï¼‰ã€‚
3   -skeleton-gen è¯»å– docs/04 § é›¶ å’Œ docs/01 index,按下述大纲生æˆé¡¹ç›®ä¸“属内容。
4   -布局/页é¢éª¨æž¶ä»¥é¡¹ç›®æ ¹çš„ prototype/ 陿€ HTML mockup 为æƒå¨ï¼Œæœ¬æ–‡ä»¶ä»…承载跨页é¢é€šç”¨è§„则与 Design Tokens。
5   --->
6   -
7 1 # 06-UI交互规范
8 2  
9 3 > 本项目所有页é¢å¸ƒå±€ä»¥é¡¹ç›®æ ¹ `prototype/` ç›®å½•ä¸‹çš„é™æ€ HTML mockup 为æƒå¨ã€‚å‰ç«¯é˜¶æ®µå®žçŽ°æ—¶ç›´æŽ¥ä»¥ prototype/ HTML 推导组件树与样å¼ã€‚本文件仅承载跨页é¢é€šç”¨è§„则与 Design Tokens。
... ... @@ -11,32 +5,18 @@ skeleton-gen è¯»å– docs/04 § é›¶ å’Œ docs/01 index,按下述大纲生æˆé¡¹ç
11 5 ## 一ã€é€šç”¨äº¤äº’规则
12 6  
13 7 ### 1.1 æ“作å馈
14   -<!-- æˆåŠŸ/失败消æ¯ï¼›å±é™©æ“作二次确认;长耗时按钮 loading æ€ã€‚ -->
15 8  
16 9 ### 1.2 æ•°æ®å±•示
17   -<!-- ç©ºçŠ¶æ€ / 加载 / 异常 的统一组件与文案。 -->
18 10  
19 11 ### 1.3 æƒé™æŽ§åˆ¶ï¼ˆå‰ç«¯ï¼‰
20   -<!-- èœå•级 / 按钮级 / 路由级的控制方å¼ï¼Œå…³è”åŽç«¯ RBAC。 -->
21 12  
22 13 ## 二ã€Design Tokens
23 14  
24   -<!-- 所有色值统一以 CSS å˜é‡å®šä¹‰äºŽ src/styles/tokens.css;命åè§„èŒƒè§ docs/04 § 2.5。 -->
25   -
26 15 ### 2.1 全局调色æ¿
27   -<!-- 与 § é›¶ UI 库主题对é½ï¼šåˆ—å = 语义 / å˜é‡å / 默认值 / 用途。
28   - 至少å«ï¼šä¸»è‰²/æˆåŠŸ/警告/错误/主文字/次文字/边框/背景。 -->
29 16  
30 17 ### 2.2 组件级状æ€è‰²
31   -<!-- 场景 × çŠ¶æ€æ˜ å°„表:列å = åºå· / 组件 / 编辑bg / åªè¯»bg / 悬浮bg / 编辑fg / åªè¯»fg / 悬浮fg / 备注。
32   - å•元格写 token å(var(--color-xxx) å½¢å¼ï¼‰ï¼Œä¸å†™ hexï¼›"—" 表示该状æ€ä¸é€‚用。
33   - 表åŽè¿½åŠ ã€ŒToken 默认值ã€è¡¨ï¼Œåˆ—出æ¯ä¸ª --color-xxx 在 tokens.css 的默认值。 -->
34 18  
35 19 ### 2.3 引用约定
36   -<!-- 一å¥è¯ä¸‰æ¡ï¼š
37   - - 组件样å¼åªç”¨ var(--color-xxx)ï¼Œç¦æ­¢ç¡¬ç¼–ç 
38   - - 新增 token 须先登记到 § 2.1/2.2 å†è¡¥ tokens.css
39   - - ä¿®æ”¹è‰²å€¼åªæ”¹ tokens.css 一处,ä¸å…许组件覆盖 -->
40 20  
41 21 ## 三ã€é¡µé¢æ¸…å•
42 22 (由 `downstream-gen` 按模å—追加段è½ï¼‰
... ...
skills/plan/skeleton-gen/templates/docs-07-env-template.md
1   -<!--
2   -本文件是 docs/07-环境配置.md 的大纲。
3   -docs/07 只记规则与约定,不记具体配置值——端口 / 包名 / 库名等真实值在 config-vars.yaml(A1 锁定)与 .env.local(敏感)。
4   -skeleton-gen 基于 docs/04 § 零 技术栈表推导各节内容:
5   - § 一 依赖清单 → 从技术栈的每一行技术推导运行时和构建依赖
6   - § 二 端口约定 → 从后端/前端/数据库/缓存/反向代理 各取默认端口(约定值;项目实际采用值记在 config-vars.yaml)
7   - § 四 常用命令 → 基于构建工具、包管理器给出开发者最常用命令
8   --->
9   -
10 1 # 07-环境配置
11 2  
12 3 ## 一、依赖清单
13 4  
14   -<!-- 表格:| 层 | 依赖 | 版本 | 说明 |;覆盖 运行时 / 构建 / 容器 / CLI 工具。 -->
15   -
16 5 ## 二、端口约定
17 6  
18   -<!-- 表格:| 服务 | 端口 | 说明 |;至少列 后端 HTTP / 前端 dev / 数据库 / 缓存 / 反代。这里给默认约定值;项目实际采用的端口记在 config-vars.yaml。 -->
19   -
20 7 ## 三、配置与凭据规则
21 8  
22 9 项目配置分两处存放,**本文档只记规则、不记具体值**:
... ... @@ -30,5 +17,3 @@ skeleton-gen 基于 docs/04 § 零 技术栈表推导各节内容:
30 17 - 任何敏感值不得出现在 `config-vars.yaml`、docs、源码或日志中——只允许出现在 `.env.local`。
31 18  
32 19 ## 四、常用命令
33   -
34   -<!-- 表格:| 命令 | 说明 |;包含 启动后端 / 启动前端 / 打包 / 运行测试 / 重置测试数据。 -->
... ...
skills/plan/skeleton-gen/templates/docs-09-structure-template.md
1   -<!--
2   -本文件是 docs/09-项目目录结构.md 的大纲。
3   -skeleton-gen 基于 docs/04 § 零 技术栈推导目录树:
4   - § 二 后端目录 → 按后端框架的惯例(如 Spring Boot 的 src/main/java)
5   - § 三 前端目录 → 按前端框架的惯例(如 Vite + React 的 src/)
6   - § 四 docs 目录 → 沿用插件标准
7   - § 五 命名约定 → 按后端语言的包/命名空间习惯
8   -
9   -模块划分参考 docs/01-需求清单/index.md 的模块索引,将业务模块落到代码目录。
10   --->
11   -
12 1 # 09-项目目录结构
13 2  
14 3 ## 一、仓库顶层
15 4  
16   -<!-- 用代码块画出顶层目录树,含 CLAUDE.md / README.md / .env.local / scripts / docs / sql / backend / frontend 等。 -->
17   -
18 5 ## 二、后端目录
19 6  
20   -<!-- 基于后端框架的目录树;按 docs/01 index 的模块代码把业务模块列出(module/user/、module/order/ 等)。 -->
21   -
22 7 ## 三、前端目录
23 8  
24   -<!-- 基于前端框架的目录树;pages/ 下按业务模块建子目录。 -->
25   -
26 9 ## 四、docs/ 结构
27 10  
28 11 ```
... ... @@ -41,5 +24,3 @@ docs/
41 24 ```
42 25  
43 26 ## 五、命名与放置约定
44   -
45   -<!-- 根包 / 命名空间用【人工填写:】占位;Controller / Service / Mapper / DTO / VO / 前端组件 / 前端页面 的放置规则。 -->
... ...