技能库同步:另一台机的 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:
admin committed 2026-10-16 23:13:33 +08:00
1 parent 749c0e3d5d
commit 8160f91559
336 files changed
+12821 -6621

No files matched your search

+10
View File
@@ -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
View File
@@ -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` 指针时**返回空**(⛔ 不猜、不随手拿第一个,让模型停下来问用户)。认错产品根会把产物写进别的产品目录,事后极难拆干净,所以这条单独立测。
为什么必须有它:实测当天漏过两次,当时没有任何门禁会报错。
Loaded 100 of 336 files, more files were not shown because too many files have changed in this diff. Show more