技能库同步:另一台机的 2026-10-16 包 + element-picker 入包 + 工具归拢到技能级 assets/
product-planning(同步 26 改 65 新)
- 目录约定:docs/pm/<项目>/ ⇒ <工作区>/项目/<产品slug>/ 为产品根,下分 产品规划/ 与 产品原型/{designs,pages}
- ④段骨架六节 ⇒ 七节(新增「原型地址」;后两节改「页面导航」「原型状态取值」)
- ③段新增真机组件库;结案「源站只有暗色主题」,tokens.css(亮色)标为不可用于生产
- ③段改版规则反转为「一个产品只用一套原型、只留当前态」;②段新增 产品规划模板.md(表头唯一定义处)
- scripts:产品根定位重写(含 .registry/current-project 指针),新增 check_terms.py 与 selftest_product_root.py
session-mechanism(同步 3 改 2 新)
- references/06-技能优化规程.md 新增 §5「要求落在生成时看得见的面上」,总表 16 ⇒ 17 条;SKILL.md 同步
- scripts/collabctl.py 取回 _find_board() 候选定位(旧版写死 scripts/board.py,而看板已搬进 boards/会话看板/ ⇒ 旧版本就是坏的)
element-picker(新装)
- 按用户口径作「独立功能加入 product-planning」,非独立全局技能
- 修掉它自身三处路径漂移(技能根写法 ⇒ 同目录;README 两处旧落点;剪贴板示例文案与代码对齐)
工具归拢到技能级 assets/
- diagram-design / design-capture / element-picker / video-capture 从各段 assets/ 移到技能包 assets/
- 新增红线:本包有两处 assets/(技能级工具箱 vs 段内资产),引工具一律写「技能级 assets/<工具名>/」
- 路径口径由两类改三类(技能级工具箱 / 本段自带资产 / 同根技能)
不入库(磁盘保留)
- design-system-tiaoyue 整个目录(用户 2026-10-16 令):git rm -r --cached + .gitignore,理由=14 MB 且可 CDP 重采;
已在 ③段 SKILL.md 注明「取仓后这一层是空的属正常,用自带套需另取或重采」
- element-picker 的运行期存档 marks/(服务自己会建目录)
This commit is contained in:
1 parent
749c0e3d5d
commit
8160f91559
336 files changed
+12821
-6621
No files matched your search
+10
@@ -95,3 +95,13 @@ uv.lock
|
||||
node_modules/
|
||||
# 本机部署副本与状态(`.workbuddy/` 是**工作区**的东西,⛔ 不该出现在技能库)
|
||||
.workbuddy/
|
||||
|
||||
# 🔴 2026-10-16 用户令:「design-system-tiaoyue」**整个目录不入库**(磁盘保留、照常用)。
|
||||
# 判据=体积(14 MB:真机组件库 13 MB + 整站样式合并 1.1 MB)+ 可再采(CDP 直连真机重采即可)。
|
||||
# 已入库的 9 个文件用 `git rm -r --cached` 移出(⛔ 磁盘保留)。
|
||||
# ⚠️ 取仓后③段 D1 定调拿不到自带套 ⇒ 按 `product-planning/references/stage-delivery/SKILL.md` §供给 另取或重采。
|
||||
# 🔴 本行必须留在文件末尾:白名单是「先 /* 全挡、再逐个放行」,否则 `!/product-planning/` 会把它放回来。
|
||||
/product-planning/references/stage-delivery/assets/design-systems/design-system-tiaoyue/
|
||||
|
||||
# 运行期存档(`element-picker` 拾取器每次点「确认」都会往这里追加;服务自己会建目录,不入库)
|
||||
/product-planning/assets/element-picker/marks/
|
||||
+54
-35
@@ -17,10 +17,10 @@ description: 产品规划总入口(唯一入口),四段式调度:① 产
|
||||
|
||||
| 段 | 回答的问题 | 子步 | 调用 | 产出物 |
|
||||
|---|---|---|---|---|
|
||||
| **① 产品需求** | 要做的东西凭什么成立:什么问题、为谁、为什么值得做 | 1a 需求文档(grill 压测)/ 1b 竞品分析 / 1c 用户画像 / 1d 产品策略 / 1e 使用场景 | `stage-discovery` | `docs/pm/<项目>/research/*`。其中 1b 交两种体例:`research/1b-竞品分析.md`(汇总对比)+ `research/1b-独立分析/<竞品名>.md`(独立分析) |
|
||||
| **② 产品功能** | 要做哪些功能、什么不做、长成什么骨架 | 2a 产品功能 / 2b 界面布局 | `stage-requirements` | `docs/pm/<项目>/prd/2a-产品功能.md` 与 `prd/2b-界面布局.md`(两份) |
|
||||
| **③ 界面交互** | 长什么样、怎么操作 | 3a 视觉规范 / 3b 原型 / 3c GPT参考版 / 3d 审查打磨 | `stage-delivery` | `docs/pm/<项目>/DESIGN.md`、`docs/pm/<项目>/ui/*.html`、`docs/pm/<项目>/ui/3c-GPT参考版.md` |
|
||||
| **④ 原型说明文档** | 现有原型怎么用、每条功能落在哪个页面、坏了怎样、怎么核对(文档按六节铺:页面结构 → 功能清单 → 使用场景 → 操作流程 → 跨页与界面状态 → 待确认与偏离) | 4a 场景盘点 / 4b 说明区 / 4c 演示引导(可选) | `stage-proto-doc` | 原型内嵌说明区 + 独立产品文档 `docs/pm/<项目>/ui/产品文档.html`(两份共用同一套 P 页面/S 场景/F 功能/J 二级功能编号) |
|
||||
| **① 产品需求** | 要做的东西凭什么成立:什么问题、为谁、为什么值得做 | 1a 需求文档(grill 压测)/ 1b 竞品分析 / 1c 用户画像 / 1d 产品策略 / 1e 使用场景 | `stage-discovery` | `产品规划/research/*`。其中 1b 交两种体例:`research/1b-竞品分析.md`(汇总对比)+ `research/1b-独立分析/<竞品名>.md`(独立分析) |
|
||||
| **② 产品功能** | 要做哪些功能、什么不做、长成什么骨架 | 2a 产品功能 / 2b 界面布局 | `stage-requirements` | `产品规划/prd/2a-产品功能.md` 与 `产品规划/prd/2b-界面布局.md`(两份) |
|
||||
| **③ 界面交互** | 长什么样、怎么操作 | 3a 视觉规范 / 3b 原型 / 3c GPT参考版 / 3d 审查打磨 | `stage-delivery` | `产品原型/designs/DESIGN.md`、`产品原型/pages/*.html`、`产品原型/designs/3c-GPT参考版.md` |
|
||||
| **④ 原型说明文档** | 现有原型怎么用、每条功能落在哪个页面、坏了怎样、怎么核对(文档按七节铺:原型地址 → 页面结构 → 功能清单 → 使用场景 → 操作流程 → 页面导航 → 原型状态取值) | 4a 场景盘点 / 4b 说明区 / 4c 演示引导(可选) | `stage-proto-doc` | 原型内嵌说明区 + 独立产品文档 `产品原型/pages/<产品项目名>.html`(两份共用同一套 P 页面/S 场景/F 功能/J 二级功能编号) |
|
||||
|
||||
四段只通过落盘文件耦合。段间交接口如下,这是唯一的契约,越界即失效:
|
||||
|
||||
@@ -35,13 +35,13 @@ description: 产品规划总入口(唯一入口),四段式调度:① 产
|
||||
> ②→③ 最容易搞坏。旧病灶:②段说「必须能读到」,③段读成「必须常驻主屏」,五类信息就全铺一屏成了信息墙。分档表把「读到」明确成「一次点击内可达」,防的就是这句歧义。骨架是灰块(有哪些块、什么顺序),③段给的是视觉与交互实现(排版、点哪有什么反馈、空态、响应式)。两件事各管一维,③段不会退化成照抄。
|
||||
|
||||
> 四段各占一个词,互不共用(2026-10-02 定):产品 / 功能 / 界面 / 说明。改段名前先对照这张表;两个段名里出现同一个词,边界一定在漂。旧名「调研与方案 / 需求与结构」都含「需求」,③段旧名里的「交付」是三段共有的属性,都属名实不符,已改。
|
||||
> 🔴 **④段的沿革(2026-10-14 → 10-15)**:10-14 按用户令删掉**旧版**④段 —— 旧做法是往原型 HTML 注入说明区注解层(状态 → 场景 → 从左到右流程图 → 功能作用/输入边界/异常情况 三段 → 逐步骤演示引导),实测没法用,整段连方法论一并撤掉。10-15 用备份里的**新版**④段装上:改成「解释与记录现有原型」,交**两份产物**(原型内嵌说明区 + 独立产品文档 `docs/pm/<项目>/ui/产品文档.html`),内容先按四块+附录铺,随后整套同步成**六节**(页面结构/功能清单/使用场景/操作流程/跨页与界面状态/待确认与偏离),编号改用 P 页面/S 场景/F 功能/J 二级功能,并带一份现成模板 `references/stage-proto-doc/assets/产品文档模板.html`。判据正文在 `references/stage-proto-doc/`,⛔ 旧版那套(状态轴、三段必填、逐步骤演示)不再使用。
|
||||
> 🔴 **④段的沿革(2026-10-14 → 10-15)**:10-14 按用户令删掉**旧版**④段 —— 旧做法是往原型 HTML 注入说明区注解层(状态 → 场景 → 从左到右流程图 → 功能作用/输入边界/异常情况 三段 → 逐步骤演示引导),实测没法用,整段连方法论一并撤掉。10-15 用备份里的**新版**④段装上:改成「解释与记录现有原型」,交**两份产物**(原型内嵌说明区 + 独立产品文档 `产品原型/pages/<产品项目名>.html`),内容先按四块+附录铺,随后整套同步成**七节**(原型地址/页面结构/功能清单/使用场景/操作流程/页面导航/原型状态取值),编号改用 P 页面/S 场景/F 功能/J 二级功能,并带一份现成模板 `references/stage-proto-doc/assets/产品文档模板.html`。判据正文在 `references/stage-proto-doc/`,⛔ 旧版那套(状态轴、三段必填、逐步骤演示)不再使用。
|
||||
> ①叫「产品需求」不叫「需求调研」:该段产出 `research/1a-需求文档.md`、`1b-竞品分析.md`、`1c-用户画像.md`,也产出 `1d-产品策略.md`、`1e-使用场景.md`,「调研」二字盖不住后半截。
|
||||
> ⭐ 1b 是①段唯一交两种体例的子步:独立分析体 `research/1b-独立分析/<竞品名>.md`(竞品池每一个一份),汇总对比体 `research/1b-竞品分析.md`(恒一份)。职责边界与定案原话见 `references/stage-discovery/references/competitor-analysis.md` §0.4。
|
||||
|
||||
⭐ `grill-me` 全场只有①段一份(2026-10-06 用户定案):①段那份按 A / B 两节提问,火力点划分、节次归属与定案原话见 `references/stage-discovery/references/grill-me.md` —— ⛔ 本入口不复述。B 节结论落进 `research/1a-需求文档.md`。
|
||||
|
||||
⭐ ②段产出两份(2026-10-06 收窄,2026-10-07 定为两份):`prd/2a-产品功能.md`(功能清单:做哪些 / 不做哪些 / 每条带优先级 + 状态流转)与 `prd/2b-界面布局.md`(页面关系 + 页面内板块布局)。定案原话与理由见 `references/stage-requirements/SKILL.md` 开头。
|
||||
⭐ ②段产出两份(2026-10-06 收窄,2026-10-07 定为两份):`产品规划/prd/2a-产品功能.md`(功能清单:做哪些 / 不做哪些 / 每条带优先级 + 状态流转)与 `产品规划/prd/2b-界面布局.md`(页面关系 + 页面内板块布局)。定案原话与理由见 `references/stage-requirements/SKILL.md` 开头。
|
||||
|
||||
(交接口反转前的口径、②段收窄前的产出清单与去向 → `references/_留痕/③段与总入口-旧口径.md`)
|
||||
|
||||
@@ -49,15 +49,26 @@ description: 产品规划总入口(唯一入口),四段式调度:① 产
|
||||
|
||||
段内的子步顺序、方法论文档、硬约束、完成标准,都在各段自己的 `SKILL.md` 与 `references/` 里。
|
||||
|
||||
①段 1a 需求文档:全程最先做,且只做一次。用 grill-me 与用户互动,产出 `docs/pm/<项目>/research/1a-需求文档.md`(开头写清做什么 / 为谁 / 不做什么,往下是决策表)。
|
||||
①段 1a 需求文档:全程最先做,且只做一次。用 grill-me 与用户互动,产出 `产品规划/research/1a-需求文档.md`(开头写清做什么 / 为谁 / 不做什么,往下是决策表)。
|
||||
|
||||
## 项目与路径约定(单一真源)
|
||||
|
||||
> 四段全部遵守本节。各段 `SKILL.md` 与 `references/` 里出现 `docs/pm/...` 时,`<项目>` 一律指本节定义的 slug。
|
||||
> 四段全部遵守本节。**产品根** = 同时含 `产品规划/` 与 `产品原型/` 的那一层目录(例 `<工作区>/项目/script-shortvideo/`)。各段 `SKILL.md` 与 `references/` 里的 `产品规划/...`、`产品原型/...` 一律**相对产品根**读。
|
||||
|
||||
### `<项目>` 是什么
|
||||
### 目录长什么样
|
||||
|
||||
项目 slug 用小写字母、数字、连字符(例 `my-tool`、`video-canvas`)。它就是 `docs/pm/<项目>/` 这一层的目录名,一个字都不能差;各段产物都挂在它下面 —— ①段 `research/`、②段 `prd/`、③段与④段 `ui/`、跨段 `专题/`。
|
||||
工作区顶层只放 `项目/`|`调研/`|`复盘/`(外加机制自己的 `tmp/`、`交付物/`、`执行会话/`、`.workbuddy/`、`.registry/`)。
|
||||
|
||||
`项目/` 下是**产品文件夹**,一个产品一层,目录名就是产品 slug(小写字母、数字、连字符,例 `my-tool`、`script-shortvideo`)—— 这个目录就是**产品根**。产品根下三个落点:
|
||||
|
||||
| 根 | 路径 | 装什么 |
|
||||
|---|---|---|
|
||||
| 🔴 **文档根** | `产品规划/` | ①段 `research/`(`1a`~`1e`)、②段 `prd/`(`2a-产品功能.md` / `2b-界面布局.md`)、跨段 `专题/` |
|
||||
| 🔴 **设计根** | `产品原型/designs/` | ③段 `DESIGN.md` + `3c-GPT参考版.md` + 3d 审查留痕件 + 截图 `_gate_shots/` |
|
||||
| 🔴 **页面根** | `产品原型/pages/` | ③段原型 `*.html` + ④段独立产品文档 `<产品项目名>.html` + 页面用静态资源 |
|
||||
|
||||
⚠️ **②段 prd 归文档根**,⛔ 不跟③段一起搬 —— 它与①段 `research/` 同根,③段的机检脚本也按 `产品规划/prd/2b-*.md` 去定位它(`find_doc`)。⛔ 已废的那层 `ui/` 子目录不要再写进任何判据。
|
||||
⚠️ **原型页面不放在设计根**(放在页面根 `产品原型/pages/`):③段的机检脚本按 `产品原型/pages/*.html` 找原型(`find_proto`)。⛔ 原型 HTML 一律落页面根,设计根只留规范与参考件。
|
||||
|
||||
### slug 怎么定(按序取第一个成立的)
|
||||
|
||||
@@ -65,26 +76,28 @@ description: 产品规划总入口(唯一入口),四段式调度:① 产
|
||||
|---|---|---|
|
||||
| 1 | 用户在当前会话里明确说了项目名 | 该名字 slug 化 |
|
||||
| 2 | `.registry/current-project` 存在且非空 | 其内容 |
|
||||
| 3 | `docs/pm/` 下恰有一个非 `_` 开头的目录 | 该目录名 |
|
||||
| 3 | `项目/` 下恰有一个非 `_` 开头的目录 | 该目录名(=产品根名) |
|
||||
| 4 | 以上都不成立 | 停下问用户 |
|
||||
|
||||
写任何文件之前先核对:目标路径里的 `<项目>` 段与按上表得出的 slug 是否一致。不一致就停下说明,不要「先写了再说」——猜错会把产物写进别的项目,事后极难拆干净。
|
||||
写任何文件之前先核对:目标路径里产品根那一段的目录名与按上表得出的 slug 是否一致。不一致就停下说明,不要「先写了再说」——猜错会把产物写进别的项目,事后极难拆干净。
|
||||
|
||||
### 产物落哪
|
||||
|
||||
| 段 | 路径 |
|
||||
|---|---|
|
||||
| ① 产品需求 | `docs/pm/<项目>/research/` |
|
||||
| ② | `docs/pm/<项目>/prd/` |
|
||||
| ③ | `docs/pm/<项目>/DESIGN.md`、`docs/pm/<项目>/ui/*.html`、`docs/pm/<项目>/ui/3c-GPT参考版.md` |
|
||||
| ④ | 原型内嵌说明区(写进 `docs/pm/<项目>/ui/*.html` 自身)+ 独立产品文档 `docs/pm/<项目>/ui/产品文档.html` |
|
||||
| ① 产品需求 | `产品规划/research/` |
|
||||
| ② | `产品规划/prd/` |
|
||||
| ③ | `产品原型/designs/DESIGN.md`、`产品原型/pages/*.html`、`产品原型/designs/3c-GPT参考版.md` |
|
||||
| ④ | 原型内嵌说明区(写进 `产品原型/pages/*.html` 自身)+ 独立产品文档 `产品原型/pages/<产品项目名>.html` |
|
||||
|
||||
### 文档的两态:当前版与过期版
|
||||
|
||||
用户令(2026-10-11 逐字):「**应该有文件夹 专门归档过期文档, 当前文档 统一放在方案文件夹中**」。
|
||||
|
||||
🔴 **方案文件夹** = `docs/pm/<项目>/` 这一层 —— 它下面放的全是**当前权威版**:①段 `research/`、②段 `prd/`、③段 `ui/`、跨段 `专题/`,另加一份 `索引-当前权威版.md` 当入口。
|
||||
🔴 **归档文件夹** = `docs/pm/<项目>/归档-过期版/` —— 被顶替下来的旧版全放这里,命名 `<原名>__<来源目标短哈希>.<扩展名>`(例 `2b-界面布局-新版__fc471a.md`)。
|
||||
🔴 **方案文件夹** = `产品规划/` 这一层 —— 它下面放的全是**当前权威版**:①段 `research/`、②段 `prd/`、跨段 `专题/`,另加一份 `索引-当前权威版.md` 当入口。
|
||||
⚠️ ③段与④段的产物**不在**文档根 —— 规范类在设计根 `产品原型/designs/`、页面类在页面根 `产品原型/pages/`(见上「产物落哪」)。⛔ 别按老口径去文档根下的 `ui/` 子目录找原型(那层已废)。
|
||||
🔴 **归档文件夹** = `产品规划/归档-过期版/` —— 被顶替下来的旧版全放这里,命名 `<原名>__<来源目标短哈希>.<扩展名>`(例 `2b-界面布局-新版__fc471a.md`)。
|
||||
🔴 **设计根与页面根也各有归档文件夹** = `产品原型/designs/归档-过期版/` 与 `产品原型/pages/归档-过期版/` —— 前者收被替换下来的设计规范与参考件,后者收被替换下来的原型页面与历史产品文档;命名带版本号或日期以便分辨。
|
||||
|
||||
**每个目标收口时做四步**:
|
||||
1、本目标的权威文档**覆盖**方案文件夹里对应的那一份。
|
||||
@@ -92,13 +105,13 @@ description: 产品规划总入口(唯一入口),四段式调度:① 产
|
||||
3、更新 `索引-当前权威版.md` 里对应行的大小与日期。
|
||||
4、执行区(`执行会话/目标-*/` 这类过程目录)里的原件**保留** —— 它既是过程留痕,也是台账 `artifact` 指向的地方,搬空会让回查断链。
|
||||
|
||||
**为什么要有这条**(避坑依据 · 2026-10-11 实测):同一个 `2a-产品功能` 在 6 个目标目录里各有版本、`2b` 有 7 个,光看文件名与字节数分不出谁新;而 `docs/pm/` 下早先那次归档又停在旧版(`2b` 只 52 256 B,最新已是 52 643 B)⇒ 用户问「很多新老方案都在文件夹中,后续根据方案细化产品界面,如何找得到对应的方案」。判断某份文档的当前版,**只看方案文件夹**;问「当时为什么这么定」才去归档文件夹翻。
|
||||
**为什么要有这条**(避坑依据 · 2026-10-11 实测):同一个 `2a-产品功能` 在 6 个目标目录里各有版本、`2b` 有 7 个,光看文件名与字节数分不出谁新;而 `产品规划/` 下早先那次归档又停在旧版(`2b` 只 52 256 B,最新已是 52 643 B)⇒ 用户问「很多新老方案都在文件夹中,后续根据方案细化产品界面,如何找得到对应的方案」。判断某份文档的当前版,**只看方案文件夹**;问「当时为什么这么定」才去归档文件夹翻。
|
||||
|
||||
### DESIGN.md 为什么在项目目录、不在仓库根
|
||||
### DESIGN.md 为什么在产品根、不在工作区根
|
||||
|
||||
`DESIGN.md` 是③段的绑定视觉规范,一个项目一份,③段按当前项目的 slug 去读它。仓库根只能放一份,多项目会互相覆盖,所以一律放 `docs/pm/<项目>/DESIGN.md`。
|
||||
`DESIGN.md` 是③段的绑定视觉规范,一个产品一份,③段按产品 slug 去读它。工作区根只能放一份,多产品会互相覆盖,所以一律放 `产品原型/designs/DESIGN.md`。
|
||||
|
||||
推论(硬规则):读 `DESIGN.md` 时,路径必须由本节定义的 `<项目>` slug 拼出,不许用「当前工作目录碰巧有 DESIGN.md」这类推断。仓库根不放任何项目的 `DESIGN.md`。
|
||||
推论(硬规则):读 `DESIGN.md` 时,路径必须由本节定义的**产品根**拼出,不许用「当前工作目录碰巧有 DESIGN.md」这类推断。工作区根不放任何产品的 `DESIGN.md`。
|
||||
|
||||
## 工具选择规则(防止选错,最重要的一节)
|
||||
|
||||
@@ -128,18 +141,21 @@ DESIGN.md 说明:`@google/design.md` 提供 `lint` / `diff` / `export` / `spec
|
||||
|
||||
## 可调用工具(自然语言触发)
|
||||
|
||||
> 两个独立工具,按用户说法直接触发,产物落项目目录。`design-capture` 随③段携带(装在③段 `references/stage-delivery/assets/` 下);`video-capture` 2026-10-11 已独立成全局技能(装在**技能根**下的 `video-capture/`),跨段复用。两者都不单独成段。
|
||||
> 三个独立工具,按用户说法直接触发,产物落项目目录。它们都装在**技能级工具箱** `assets/` 下(相对本技能包根,各段共用):`assets/design-capture/`、`assets/element-picker/`;工具箱里另有 `assets/diagram-design/`(②④段画图用)与 `assets/video-capture/`(只剩交接说明)。三个触发式工具都不单独成段;只有 `video-capture` 的**实体**在 2026-10-11 独立成了全局技能(装在**技能根**下),跨段跨项目复用。
|
||||
|
||||
> 🔴 本技能包里有**两处**都叫 `assets/`,别混:**技能级工具箱** `assets/<工具名>/`(相对本技能包根,各段共用)与**段内资产** `references/stage-*/assets/`(只归那一段)。凡引**工具**,一律写「技能级 `assets/<工具名>/`」;引**本段自己的资产**时可直接写 `assets/...`。
|
||||
|
||||
| 用户说 | 触发工具 | 做什么 | 产物 |
|
||||
|---|---|---|---|
|
||||
| 「分析 XXX 视频」「把这个视频抽帧」「拆一下这条视频的画面」 | 全局技能 `video-capture` | 取视频(本地文件 / 直链 URL / 平台页经浏览器下到本地)+ 抽帧(双因素 + 首尾 + 补帧) | 关键帧 `c_<序号>_<真实秒数>s.jpg` + `frame_times.json`(供①竞品分析、③视觉参考) |
|
||||
| 「获取 XXX 网站的设计风格」「抓这个网站的风格/组件/配色」 | `stage-delivery/assets/design-capture/` | 抓网页设计系统(色彩 / 排版 / 组件),生成样式模板 | 一套 `design-system-<名>/`(与 `design-system-tiaoyue` 同构,可直接被③段 D1 选用) |
|
||||
| 「获取 XXX 网站的设计风格」「抓这个网站的风格/组件/配色」 | 技能级 `assets/design-capture/` | 抓网页设计系统(色彩 / 排版 / 组件),生成样式模板 | 一套 `design-system-<名>/`(与 `design-system-tiaoyue` 同构,可直接被③段 D1 选用) |
|
||||
| 「选中这个组件」「把这个元素的位置给你」「改这个页面的样式」「这个按钮在哪」 | 技能级 `assets/element-picker/` | 在浏览器里点选任意组件,取出它的 CSS 选择器与所属网页,交给 AI 定位源码改样式 | 剪贴板两行(`选择器:…` / `网页:…`)+ 存档 `marks/_ui-marks.json`(含文本 / class / 属性 / 尺寸 / 关键样式 / HTML 片段) |
|
||||
|
||||
两者都独立可单跑:`video-capture` 只依赖 `ffmpeg`(权威件=全局技能 `video-capture`;原 `stage-delivery/assets/video-capture/` 只留交接说明,脚本迁至 `references/_留痕/video-capture-已独立-20261011/` 留档);`design-capture` 只依赖本机 Chrome(CDP)+ `vendor/` 里搬运的抽取脚本,不需要任何外部服务在场。用法与边界见各自 `SKILL.md`,来源与署名见各自 `ATTRIBUTION.md`。
|
||||
三者都独立可单跑:`video-capture` 只依赖 `ffmpeg`(权威件=全局技能 `video-capture`;原 `assets/video-capture/` 只留交接说明,脚本迁至 `references/_留痕/video-capture-已独立-20261011/` 留档);`design-capture` 只依赖本机 Chrome(CDP)+ `vendor/` 里搬运的抽取脚本,不需要任何外部服务在场;`element-picker` 只依赖 Node 标准库起一个本地服务(默认 8890,扩展那一路装一次即对所有网页可用)。用法与边界见各自 `SKILL.md`(第三方来源与署名见各自的 `ATTRIBUTION.md`)。
|
||||
|
||||
触发时机:①②段拆竞品视频用全局技能 `video-capture`;③段要新建样式或拆参考站用 `design-capture`。
|
||||
触发时机:①②段拆竞品视频用全局技能 `video-capture`;③段要新建样式或拆参考站用 `design-capture`;③段以及任何"用户指着一个组件说改这里"的场合用 `element-picker`。
|
||||
|
||||
两个工具都只做合规最小集:不抓平台页内视频,不调付费接口;抽取结果须先目视比对再采用。
|
||||
两个抓取类工具(`video-capture`、`design-capture`)都只做合规最小集:不抓平台页内视频,不调付费接口;抽取结果须先目视比对再采用。`element-picker` 不抓取任何数据,只读当前页面自身的 DOM、把结果落在本地文件。
|
||||
|
||||
## 进入方式
|
||||
|
||||
@@ -154,9 +170,9 @@ DESIGN.md 说明:`@google/design.md` 提供 `lint` / `diff` / `export` / `spec
|
||||
|
||||
「只调一段」成立的原因:四段之间只通过落盘文件耦合,没有隐式状态。
|
||||
|
||||
- ②只读 `docs/pm/<项目>/research/*`;缺失时标注 `【假设】`继续,不催促回补①
|
||||
- ③只读 `docs/pm/<项目>/prd/*`;缺失时同样标 `【假设】`继续
|
||||
- ④只读 `docs/pm/<项目>/ui/*.html`(界面事实的唯一依据),另按需读 `docs/pm/<项目>/prd/*` 与 `research/1a-需求文档.md` 定业务意图;缺失时标 `【假设】`继续,并在段末偏离单里写明
|
||||
- ②只读 `产品规划/research/*`;缺失时标注 `【假设】`继续,不催促回补①
|
||||
- ③只读 `产品规划/prd/*`;缺失时同样标 `【假设】`继续
|
||||
- ④只读 `产品原型/pages/*.html`(界面事实的唯一依据),另按需读 `产品规划/prd/*` 与 `research/1a-需求文档.md` 定业务意图;缺失时标 `【假设】`继续,并在段末偏离单里写明
|
||||
|
||||
## 执行规则
|
||||
|
||||
@@ -186,13 +202,13 @@ DESIGN.md 说明:`@google/design.md` 提供 `lint` / `diff` / `export` / `spec
|
||||
- 声明制(全段适用,不止③段):开工前、每进一个子段或子步、每处偏离,都要声明三件事——当前在哪、依据哪个文件的哪一节、产出落哪;偏离当场写明原因与影响,段末附偏离单。不许静默偏离。实测踩过的坑:③段 3b 交付了原型却没走当时声明的主流程、没读依据文件,也没当场说,用户追问「基于哪个 skill」才知道。
|
||||
- 不做八股:不介绍方法论来源,不列人名,不复述框架历史,直接给结论。
|
||||
- ⭐ 内容准则:一切落盘文字都要先过「说人话」这一关(2026-10-07 用户定案,同日扩大到规则文件)。用户原话:「当作第一步 和 第二步 生成文档时 必须遵循的内容准则」「不管是写规则 还是 写文档 都要严格按照说人话的技能去执行」。
|
||||
- 适用面两类都算,只改产出不改规则等于半改。一是产出文档:`research/1a-需求文档.md` 到 `1e-使用场景.md`(5 份)、`research/1b-独立分析/`(独立分析体)、`prd/2a-产品功能.md` 与 `prd/2b-界面布局.md`(2 份)。二是规则本身:本技能包内的一切落盘文字,`SKILL.md`、`references/**`、模板与清单。
|
||||
- 适用面两类都算,只改产出不改规则等于半改。一是产出文档:`research/1a-需求文档.md` 到 `1e-使用场景.md`(5 份)、`research/1b-独立分析/`(独立分析体)、`产品规划/prd/2a-产品功能.md` 与 `产品规划/prd/2b-界面布局.md`(2 份)。二是规则本身:本技能包内的一切落盘文字,`SKILL.md`、`references/**`、模板与清单。
|
||||
- 判据来源(单一可信源,本文件不复述模式清单):**只有 `humanizer` 一份,且只用它的英文正式目录** —— `<技能根>/humanizer/references/patterns.md` 的 **P1–P55**(内容 8/语言与风格 10/沟通 3/填充与模糊 9/新兴 13/工艺与取证 12)。另有 5 种口吻档(casual / professional / technical / warm / blunt)。
|
||||
- 🔴 **判据一律用英文目录(2026-10-15 用户令)**:中文附录 `patterns.zh.md`(ZH1–ZH15)**只作参考线索,⛔ 不作判据** —— 作者自标「实验性、未经中文母语写手校验、不应被当作已验证的规则」。原中文版 `humanizer-zh` 的 24 条与五维 50 分表随该技能删除一并停用作废。
|
||||
- 门槛(2026-10-15 改):
|
||||
· **英文产出**:可读 `--score` 的 0–100 AI 痕迹密度分(越低越像人;上游 pre-commit 的拦截线是 40),本包不设硬阈值,分数写进段末报告。
|
||||
· **中文产出**:⛔ 不采信自动分数 —— 该打分器按 `[.!?]` 切句、按 `[a-z0-9]` 切词,中文 `。!?` 不切句、汉字零词,分数实际在测「文件里有多少拉丁字符」(实测:同一段中文把 `。` 换成 `. ` 分数不变;零拉丁字符的中文直接判 `No text`)。改按 **P1–P55 逐条人工对照**,再跑 `--check-facts` 保真(它只抽数字/日期/版本/URL/路径/标识符,中文同形可用)。对照结果与事实存活数写进段末报告,命中项不对完不许落盘。
|
||||
- ⛔ 取不到判据来源时(2026-10-08 补):两份技能都不在位或读不到 ⇒ **不许凭感觉判「这条够人话」**。在段末报告与 `3d-审查报告.md` 里明写「无判据来源,本项未判」,按与 §供给·工艺数值判据 的「证据缺口」同一口径处理。
|
||||
- ⛔ 取不到判据来源时(2026-10-08 补):两份技能都不在位或读不到 ⇒ **不许凭感觉判「这条够人话」**。在段末报告与 3d 审查留痕件(`3d-审查报告.md` 或 `DESIGN.md` 审查节)里明写「无判据来源,本项未判」,按与 §供给·工艺数值判据 的「证据缺口」同一口径处理。
|
||||
- 五条核心原则(2026-10-15 起**就地固化在本包**;原引自已删除的 `humanizer-zh`《核心规则速查》,英文版 `humanizer` 的 Quick reference 没有等价条目,故不再指向外部):删填充短语(开场白、强调性拐杖词);打破公式结构(二元对比、戏剧性分段、修辞性设置);变化节奏(长短交错,两项优于三项,段尾多样);信任读者(直接陈述事实,跳过软化、辩解、手把手引导);删金句(读起来像可引用的话,就重写它)。
|
||||
- 🔴 **适用面要划清(2026-10-15 排查后立)**:本包只取这份技能里**「去 AI 味」那一半**,⛔ 不取**「注入个性」那一半**。
|
||||
取这些:英文模式目录 `references/patterns.md` 的 P1–P55、就地固化的五条核心原则、禁用清单。
|
||||
@@ -231,7 +247,7 @@ DESIGN.md 说明:`@google/design.md` 提供 `lint` / `diff` / `export` / `spec
|
||||
- 图要**表达结构或流程**(二选一或兼具)—— 一张图看完就知道「由哪几块组成、怎么连起来」或「一件事分几步走」;⛔ 不做纯装饰性配图。
|
||||
- 图表达这份文档**覆盖的东西之间的关系**,按段定画什么:
|
||||
· ①段(`research/` 五份)—— 画对象与流向:为谁解决什么、信息从哪来到哪去。
|
||||
· ②段(`prd/` 两份)—— 画页面骨架:有哪几页、每页几个板块、跨页关系怎么走。
|
||||
· ②段(文档根 `产品规划/prd/` 两份)—— 画页面骨架:有哪几页、每页几个板块、跨页关系怎么走。
|
||||
· ③段(`ui/` 下的产物与 `DESIGN.md`)—— 画页面结构与操作动线:用户办成一件事实际经过哪几页、每页做什么、哪里要来回跳。
|
||||
· ④段(产品文档)—— 画页面结构图(各页面与其下的功能编号)+ 用户路径:各场景怎么串起来。
|
||||
- 画图用 `diagram-design`,⛔ 不手写 Mermaid(判据见「工具选择规则」那张表)。
|
||||
@@ -283,10 +299,13 @@ DESIGN.md 说明:`@google/design.md` 提供 `lint` / `diff` / `export` / `spec
|
||||
## 改名 / 改供给后的自检
|
||||
|
||||
```bash
|
||||
python scripts/check_naming.py --ws <工作区>
|
||||
python scripts/check_naming.py --ws <工作区或产品根>
|
||||
python scripts/selftest_product_root.py
|
||||
```
|
||||
|
||||
它查四段段名与子步名在「总入口 ↔ 各段 `SKILL.md` ↔ 各段 `references/`」之间有没有漂,包括 H1 与子步表是否一致、总入口子步列有没有漏项、runbook 必读表有没有引用已移除的资产、两份副本是否一致。纯静态比对,不需要渲染,不需要外部依赖。
|
||||
`check_naming.py` 查四段段名与子步名在「总入口 ↔ 各段 `SKILL.md` ↔ 各段 `references/`」之间有没有漂,包括 H1 与子步表是否一致、总入口子步列有没有漏项、runbook 必读表有没有引用已移除的资产、两份副本是否一致;顺带按 `--ws` 认出的**产品根**扫 ①②段产出白名单。纯静态比对,不需要渲染,不需要外部依赖。
|
||||
|
||||
`selftest_product_root.py` 只验一件事:**产品根认得对不对**(造临时夹具,⛔ 不碰真实工作区)。三条路都要成立:单产品时给工作区根 / 给产品根本身 / 从子目录向上都认得出同一层;多产品又没有 `.registry/current-project` 指针时**返回空**(⛔ 不猜、不随手拿第一个,让模型停下来问用户)。认错产品根会把产物写进别的产品目录,事后极难拆干净,所以这条单独立测。
|
||||
|
||||
为什么必须有它:实测当天漏过两次,当时没有任何门禁会报错。
|
||||
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 336 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user