create-yss-spec 2.2.7 → 2.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.agents/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.agents/skills/yss-design-system/SKILL.md +3 -1
- package/template/.agents/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.agents/skills/yss-router/references/boundaries.md +1 -1
- package/template/.agents/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.agents/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.claude/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.claude/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.claude/skills/yss-design-system/SKILL.md +3 -1
- package/template/.claude/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.claude/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.claude/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.claude/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.claude/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.claude/skills/yss-router/references/boundaries.md +1 -1
- package/template/.claude/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.claude/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.codex/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.codex/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.codex/skills/yss-design-system/SKILL.md +3 -1
- package/template/.codex/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.codex/skills/yss-router/references/boundaries.md +1 -1
- package/template/.codex/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.codex/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.cursor/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.cursor/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.cursor/skills/yss-design-system/SKILL.md +3 -1
- package/template/.cursor/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.cursor/skills/yss-router/references/boundaries.md +1 -1
- package/template/.cursor/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.cursor/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.cursor/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.cursor/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.hermes/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.hermes/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.hermes/skills/yss-design-system/SKILL.md +3 -1
- package/template/.hermes/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.hermes/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.hermes/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.hermes/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.hermes/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.hermes/skills/yss-router/references/boundaries.md +1 -1
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.hermes/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.pi/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.pi/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.pi/skills/yss-design-system/SKILL.md +3 -1
- package/template/.pi/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.pi/skills/yss-router/references/boundaries.md +1 -1
- package/template/.pi/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.pi/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.qoder/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.qoder/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.qoder/skills/yss-design-system/SKILL.md +3 -1
- package/template/.qoder/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.qoder/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.qoder/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.qoder/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.qoder/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.qoder/skills/yss-router/references/boundaries.md +1 -1
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.qoder/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.trae/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.trae/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.trae/skills/yss-design-system/SKILL.md +3 -1
- package/template/.trae/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +3 -1
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +2 -2
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +46 -1
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +6 -0
- package/template/.trae/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.trae/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.trae/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.trae/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.trae/skills/yss-router/references/boundaries.md +1 -1
- package/template/.trae/skills/yss-router/references/router-contract.yaml +30 -3
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +14 -0
- package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +5 -0
- package/template/.trae/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/AGENTS.md +5 -4
- package/template/CONTEXT.md +2 -2
- package/template/DESIGN.md +203 -0
- package/template/README.md +10 -11
- package/template/__yss_dotfile__.gitignore +1 -0
- package/template/docs/agents/digital-human-roles.md +1 -1
- package/template/docs/agents/digital-human-roles.yaml +17 -21
- package/template/docs/agents/skills-maintenance.md +2 -2
- package/template/docs/agents/yss-plugin-dependency-contract.md +45 -0
- package/template/docs/agents/yss-skill-registry.yaml +30 -1
- package/template/docs/api/templates/openapi-draft-review-checklist.md +2 -2
- package/template/docs/architecture/templates/engineering-baseline-review-template.md +19 -0
- package/template/docs/design/README.md +14 -3
- package/template/docs/design/design-system-sync.yaml +12 -0
- package/template/docs/design/design.md +69 -10
- package/template/docs/design/preview-dark.html +15 -0
- package/template/docs/design/preview.html +20 -0
- package/template/docs/design/templates/interaction-spec-template.md +2 -2
- package/template/docs/design/templates/prototype-confirmation-template.md +1 -1
- package/template/docs/design/templates/prototype-evidence-template.yaml +52 -10
- package/template/docs/design/tokens/.design-md-projection.json +13 -0
- package/template/docs/discovery/reports/agent-governance-options.md +71 -0
- package/template/docs/process/harness-process-tailoring.md +12 -5
- package/template/docs/process/lifecycle-registry-baseline.json +1 -1
- package/template/docs/process/lifecycle-registry.yaml +1 -1
- package/template/docs/process/template-engineering-overview.md +2 -2
- package/template/docs/process/template-verification-profiles.yaml +15 -1
- package/template/docs/process/templates/maintenance-checkpoint-template.yaml +3 -12
- package/template/docs/templates/build-architecture-checklist-template.md +2 -0
- package/template/docs/templates/implementation-routing-template.md +23 -0
- package/template/docs/templates/requirement-freeze-template.md +1 -1
- package/template/docs/user-guide//346/210/230/346/234/257/350/256/276/350/256/241/345/255/220/351/241/271/347/233/256/347/224/250/346/210/267/346/211/213/345/206/214.md +218 -0
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +1014 -0
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +15 -25
- package/template/scripts/lib/digital-human-roles.mjs +0 -1
- package/template/scripts/lib/maintenance-intensity.mjs +24 -10
- package/template/scripts/lib/skill-governance.mjs +19 -0
- package/template/scripts/lib/skill-registry.mjs +70 -0
- package/template/scripts/node-verify-lifecycle-registry.mjs +1 -1
- package/template/scripts/verify-digital-human-roles-scenarios +1 -1
- package/template/scripts/verify-template-verification-scenarios +5 -0
- package/template/scripts/verify-yss-prototype-contract-scenarios +2 -0
- package/template/skills-lock.json +8 -8
- package/template.manifest.json +1 -0
- package/template.snapshot.json +5 -5
- package/template/docs/user-guide/templates//347/224/250/346/210/267/346/211/213/345/206/214/346/250/241/346/235/277.md +0 -53
- package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +0 -223
- package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +0 -1115
- package/template/docs/user-guide//345/244/226/351/203/250/345/221/275/344/273/244/350/241/214/345/267/245/345/205/267/345/256/236/350/267/265/346/214/207/345/215/227.md +0 -117
- package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +0 -584
- package/template/docs/user-guide//350/247/204/346/240/274/344/270/216/344/273/273/345/212/241/350/277/201/347/247/273/346/214/207/345/215/227.md +0 -44
- package/template/docs/user-guide//351/234/200/346/261/202/346/276/204/346/270/205/346/214/207/345/215/227.md +0 -230
- package/template/docs/user-guide//351/234/200/346/261/202/346/276/204/346/270/205/346/234/200/344/275/263/345/256/236/350/267/265.md +0 -275
|
@@ -1,8 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 设计系统治理与生命周期适配
|
|
2
|
+
|
|
3
|
+
> 规范源:仓库根目录 [`DESIGN.md`](../../DESIGN.md)。其中的 YAML frontmatter 和组件变体是视觉令牌的唯一事实来源;本文件只记录 YSS 的中文治理说明、运行时双轨、产品生命周期衔接和验证要求。
|
|
4
|
+
|
|
5
|
+
## 与 DESIGN.md 的职责边界
|
|
6
|
+
|
|
7
|
+
- `DESIGN.md`:机器可读的颜色、排版、圆角、间距和组件视觉变体规范;使用 Google `design.md` alpha 格式。
|
|
8
|
+
- `docs/design/tokens/*`:由规范源投影的运行时快照,禁止直接修改后作为规范依据;使用 `scripts/design-md` 执行漂移检查。
|
|
9
|
+
- 本文件:解释 YSS UI / Ant Design 双轨、页面设计约束、原型证据和生命周期门禁,不重新定义规范 token 的具体值。
|
|
10
|
+
- Spec、交互说明和状态矩阵:继续承载业务状态、API、权限、并发、失败恢复和页面验收,不写入 `DESIGN.md`。
|
|
11
|
+
|
|
12
|
+
## 规范校验
|
|
13
|
+
|
|
14
|
+
模板源维护者在修改设计令牌后执行(项目实例不包含 `.template-source` 工具目录):
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node .template-source/tooling/node/scripts/design-md.mjs lint DESIGN.md
|
|
18
|
+
node .template-source/tooling/node/scripts/design-md.mjs drift
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`lint` 固定调用 `@google/design.md@0.4.0`,同时执行本地 frontmatter、章节、组件属性和引用校验;`drift` 检查规范源与全部 token/CSS 派生产物的哈希。任何漂移都必须回写规范源并重新生成投影。
|
|
2
22
|
|
|
3
23
|
## 来源与定位
|
|
4
24
|
|
|
5
|
-
|
|
25
|
+
本文件基于本地设计系统包首次分析整理,并在后续用项目 Ant Design 5 Less / `:root` CSS 变量覆盖默认亮色主题。紧凑密度、间距和容器规格同时参考既有 YSS 实现。视觉 token 的规范源改为根目录 `DESIGN.md`;本文件和 `docs/design/tokens/*` 是治理说明与派生视图。外部目录只作为历史输入或实现样本,不作为后续工程依赖,也不作为实现语言。
|
|
6
26
|
|
|
7
27
|
关键来源:
|
|
8
28
|
|
|
@@ -10,6 +30,7 @@
|
|
|
10
30
|
| --- | --- | --- |
|
|
11
31
|
| 历史 `Product-Design-System` 包 | 首次引入 Ant Design 企业级语义、状态矩阵和验收习惯 | 保留原则、组件规则和审查清单 |
|
|
12
32
|
| 项目 Ant Design 5 Less / `:root` 变量 | 默认亮色主题、运行时切换别名、色板与布局 token | **默认主题权威**;冲突时以 `:root` 为准 |
|
|
33
|
+
| `yss-meta` 的 `packages/src/styles` | 已落地的紧凑间距、Card 圆角、CSS 变量桥接和客户主题案例 | 只提取稳定语义;utility class、客户覆盖和兼容补丁不进入默认规范 |
|
|
13
34
|
| `docs/design/tokens/tokens.default.json` | 默认亮色主题派生 token | 作为实现 token 基线 |
|
|
14
35
|
| `docs/design/tokens/tokens.dark.json` | 暗色主题派生 token | 暗色仍走 `darkAlgorithm`;本轮未按新 seed 重派生完整暗色色板 |
|
|
15
36
|
| `docs/design/tokens/tokens.compact.json` | 紧凑密度主题派生 token | 共享亮色 seed,紧凑高度算法保持现状 |
|
|
@@ -42,6 +63,8 @@
|
|
|
42
63
|
|
|
43
64
|
Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文件和 `docs/design/tokens/*` 为 source visual truth,而不是官方默认或历史 `#1677ff` / `Inter` / `8px` 品牌圆角。执行清单见 `.agents/skills/yss-design-system/references/design-qa-theme.md`。
|
|
44
65
|
|
|
66
|
+
版本边界固定为双轨:高保真原型以 React Ant Design v6 的 `design.md`、semantic token 和标准组件事实作为主题样式基线;生产实现使用 Vue 3、YSS UI 与目标实现仓 lockfile 中的 Ant Design Vue 4.x API。两者版本号不同不是冲突。原型到生产只迁移视觉角色、项目 Token、状态和验收行为,禁止迁移 React hook、props、JSX、静态 API 或事件模型。
|
|
67
|
+
|
|
45
68
|
## 设计原则
|
|
46
69
|
|
|
47
70
|
本项目采用该设计系统时,优先遵循四个原则:
|
|
@@ -156,6 +179,23 @@ Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文
|
|
|
156
179
|
- 表单、筛选区、工具栏、表格和详情页应优先使用密集但有节奏的布局。
|
|
157
180
|
- 不使用任意 magic number;如确需新增尺寸,应先判断是否要扩展 token。
|
|
158
181
|
|
|
182
|
+
### 紧凑密度(默认原型规格)
|
|
183
|
+
|
|
184
|
+
高保真原型和中后台数据密集页面默认使用紧凑密度。紧凑密度不是把所有间距机械缩小,而是使用 `docs/design/tokens/tokens.compact.json` 和下表控制页面节奏;没有明确的展示型或触屏场景时,不切回宽松密度。
|
|
185
|
+
|
|
186
|
+
| 场景 | Padding | Margin / Gap | 说明 |
|
|
187
|
+
| --- | --- | --- | --- |
|
|
188
|
+
| 页面内容区 | 桌面端 `16px`;窄屏 `12px` | 一级区域 `16px` | 页面外缘由布局容器统一提供,子模块不得重复增加外边距 |
|
|
189
|
+
| Card | 默认 `16px`;表格 / 筛选密集 Card 可用 `12px` | Card 之间 `12px` | Card header 与 body 使用同一水平 padding;禁止 Card 套 Card 制造层级 |
|
|
190
|
+
| 筛选区 / 工具栏 | 垂直 `8px`、水平 `12px` | 控件间 `8px`;与主体 `12px` | 优先单行排列,空间不足时按字段组换行,不压缩到不可读 |
|
|
191
|
+
| 表单 | 区块 `16px` | 表单项纵向 `12px`;同行字段 `12px` | label 与控件的局部间距由组件 token 负责,不在页面重复覆盖 |
|
|
192
|
+
| 表格 / 列表 | 容器 `0` 或 `12px`,由是否独立成 Card 决定 | 工具栏与表格 `8px` | 表格内部 cell padding 使用组件紧凑规格,不用页面 CSS 逐列覆盖 |
|
|
193
|
+
| Modal / Drawer | `16px` | 内容区块 `12px`;操作区 `8px` | 复杂多步流程不塞入 Modal,改用独立页面或 Drawer 分区 |
|
|
194
|
+
|
|
195
|
+
紧凑模式的基础 token 为:`sizeXXS=4`、`sizeXS=8`、`sizeSM=8`、`size=12`、`sizeMD=16`、`sizeLG=16`、`sizeXL=24`、`sizeXXL=32`;默认控件高度 `28px`,小号 `21px`,大号 `35px`。业务页面只消费这些语义层级,不复制外部样例中的 `.m-*` / `.p-*` utility class。
|
|
196
|
+
|
|
197
|
+
Margin 使用规则:组件自身默认不声明外部 margin,兄弟元素之间优先由父级 `gap` 管理;只有文档流语义或无法使用布局容器时才使用 margin,并仍限定在 `4/8/12/16/24/32px` 阶梯内。禁止用负 margin 修补布局。
|
|
198
|
+
|
|
159
199
|
### 布局 token
|
|
160
200
|
|
|
161
201
|
| Token | 值 | 用途 |
|
|
@@ -179,9 +219,9 @@ Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文
|
|
|
179
219
|
| `borderRadiusXS` | 2 | 极小元素 |
|
|
180
220
|
| `borderRadiusSM` | 4 | 小标签、小控件 |
|
|
181
221
|
| `borderRadius` | 6 | 默认控件圆角 |
|
|
182
|
-
| `borderRadiusLG` | 8 |
|
|
222
|
+
| `borderRadiusLG` | 8 | Card、大容器 / 浮层 |
|
|
183
223
|
|
|
184
|
-
保持“控件圆角小于或等于容器圆角”:默认控件 `6px`,小控件 `4px
|
|
224
|
+
保持“控件圆角小于或等于容器圆角”:默认控件 `6px`,小控件 `4px`,Card 与普通容器统一 `8px`。外部实现中的 `12px` panel 圆角属于局部产品扩展,不作为紧凑型默认值;确需使用时必须有明确层级语义,不能让同一页面的 Card 在 `8px`、`12px` 间任意混用。实现时以 `docs/design/tokens/tokens.compact.json` 为紧凑密度基线。
|
|
185
225
|
|
|
186
226
|
### 动效
|
|
187
227
|
|
|
@@ -204,8 +244,8 @@ Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文
|
|
|
204
244
|
| --- | --- |
|
|
205
245
|
| Button Primary | 每个决策区域只保留一个主按钮,表达最重要动作 |
|
|
206
246
|
| Button Default | 次级动作默认使用描边 / 默认按钮,不与主操作争夺注意力 |
|
|
207
|
-
| Input / Select |
|
|
208
|
-
| Card |
|
|
247
|
+
| Input / Select | 紧凑模式默认高度 28px,focus 使用主色边框和可见焦点反馈 |
|
|
248
|
+
| Card | 用作真实内容容器,默认白底、`8px` 圆角、`16px` 内边距和 `12px` 外部 gap;避免卡片套卡片 |
|
|
209
249
|
| Modal | 用于阻断式决策或关键表单,不承载复杂多页流程 |
|
|
210
250
|
| Menu | 选中态使用淡蓝背景 + 主色文本,保证导航位置明确 |
|
|
211
251
|
| Tabs | 激活态使用主色文本 + 2px 下划线,不使用背景填充 |
|
|
@@ -226,6 +266,25 @@ Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文
|
|
|
226
266
|
- 避免大面积渐变、装饰插画、夸张 hero、过多卡片化包装和单色系视觉堆叠。
|
|
227
267
|
- 权限不足、只读、空数据、加载中、校验失败、冲突、提交成功等状态必须在设计阶段明确。
|
|
228
268
|
|
|
269
|
+
## 高保真原型交付规格
|
|
270
|
+
|
|
271
|
+
高保真原型的主产物是可在浏览器运行和复验的 HTML,而不是截图、设计说明或生产前端代码。默认入口固定为 `docs/.scratch/<feature>/design/prototypes/index.html`;关联 CSS、JavaScript、字体和本地资源应与入口一起存放在该目录内,保持相对路径可移植。
|
|
272
|
+
|
|
273
|
+
- HTML 必须呈现真实页面密度、Card、表单、筛选、表格、弹层和状态反馈;不得只输出静态画布或图片热区。
|
|
274
|
+
- 默认启用本文件定义的紧凑密度:页面 padding、区域 gap、Card `8px` 圆角、Card padding 和 `28px` 控件高度必须可在浏览器计算样式中复核。
|
|
275
|
+
- 至少覆盖主流程、一个 loading / empty 状态,以及一个 error / no-permission / conflict 状态;主操作必须产生可见反馈。
|
|
276
|
+
- HTML 是评审与确认主载体;截图只作为指定视口和指定状态的验证证据,不能替代 HTML。
|
|
277
|
+
- 原型可以使用构建工具生成,但交付目录必须提供稳定的 `index.html` 入口。依赖开发服务器时,证据中必须记录启动命令、实际端口和版本;不得只交付无法独立定位入口的源码目录。
|
|
278
|
+
- 标准组件存在 Ant Design 实现时,React 原型必须精确锁定与 CLI 查询一致的 `antd@6.x`,使用 pnpm lockfile,并通过 `ConfigProvider` 消费由 `docs/design/tokens/theme.json` 转换出的可执行 ThemeConfig。生产映射仍以 YSS UI / Ant Design Vue 4.x lockfile 为准。
|
|
279
|
+
- Design QA、浏览器验证和视觉目标必须使用同一视口与同一状态;默认 desktop `1440×900`、mobile `390×844`,按实际影响追加其他视口。
|
|
280
|
+
- 原型仍须通过 `prototype-review`、AntD CLI 事实核对和浏览器验证;HTML 存在不代表 `gate.prototype-reviewed`、`gate.prototype-verified` 或 `gate.user-confirmation` 已通过。
|
|
281
|
+
|
|
282
|
+
### 无障碍覆盖
|
|
283
|
+
|
|
284
|
+
品牌 Seed `#3371ff` 保持项目身份,不等于每个组件状态都必须直接使用该填充。普通文本或控件状态不满足 WCAG 2.2 AA 时,优先通过组件 Token 调整实际填充色或文字色,并同时验证 default、hover、active、disabled 与 focus;不得用单页特例色绕过主题层。
|
|
285
|
+
|
|
286
|
+
原型证据至少覆盖对比度、键盘导航、焦点顺序与可见焦点、语义标签和 Dialog 焦点管理、200% zoom、`prefers-reduced-motion`、目标尺寸及自动化扫描。组件库默认能力不能替代对真实页面 DOM 与交互的验证。
|
|
287
|
+
|
|
229
288
|
## 响应式验收矩阵
|
|
230
289
|
|
|
231
290
|
来源包要求实现时覆盖以下视口。后续 UI 原型、前端实现和截图验收应至少抽取这些尺寸中的核心断点:
|
|
@@ -259,7 +318,7 @@ Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文
|
|
|
259
318
|
- 组件样式优先通过 Ant Design token、component token、CSS variables 或主题算法表达。
|
|
260
319
|
- 消息、通知、Modal 静态方法应使用 `App`、hook API 或 context holder,避免主题上下文丢失。
|
|
261
320
|
- 暗色模式使用 `darkAlgorithm` 或 `docs/design/tokens/variables.dark.css`,不要手工反转颜色。本轮只同步了暗色的字体栈和圆角 seed;完整暗色色板仍是历史算法结果,启用暗色前应再派生一次。
|
|
262
|
-
-
|
|
321
|
+
- 紧凑模式默认使用 `compactAlgorithm` 或 `docs/design/tokens/tokens.compact.json`,不要逐组件压缩高度;高保真 HTML 必须按紧凑 token 验收实际 padding、gap、Card 圆角和控件高度。
|
|
263
322
|
|
|
264
323
|
如果前端不是 Ant Design:
|
|
265
324
|
|
|
@@ -286,13 +345,13 @@ Codex `$design-qa` 的 Colors/tokens 与 Fonts/typography 对照必须以本文
|
|
|
286
345
|
- 将 `docs/design/tokens/theme.json` 接入前端工程主题配置。
|
|
287
346
|
- 将 `docs/design/tokens/variables.css` 中的 `--brand-*` 与运行时别名纳入项目 token 管理。
|
|
288
347
|
- 如果项目启用暗色模式,用 `darkAlgorithm` 按新 seed 重派生 `docs/design/tokens/tokens.dark.json`,并补充截图验收。
|
|
289
|
-
-
|
|
348
|
+
- 将高保真 HTML 原型模板默认接入 `docs/design/tokens/tokens.compact.json`,并在浏览器证据中记录实际计算后的 padding、gap、Card 圆角和控件高度。
|
|
290
349
|
|
|
291
350
|
## Ant Design v6 原型补充基线
|
|
292
351
|
|
|
293
|
-
|
|
352
|
+
本节根据官方 `https://ant.design/design.md` 与本轮固定目标版本的 `antd design.md --format json` 提炼,用于高保真原型和后续前端实现,不替代项目 token,也不提供 Ant Design Vue API。
|
|
294
353
|
|
|
295
354
|
- 先按 `bg-layout`、`bg-container`、`bg-elevated`、文本、边框、状态、圆角和阴影等 semantic token 角色设计,再映射到 `ConfigProvider`、组件 token 或 CSS variables;不得用页面局部色值替代主题层。
|
|
296
|
-
- 默认亮色使用 `theme.defaultAlgorithm
|
|
355
|
+
- 默认亮色使用 `theme.defaultAlgorithm`;高保真原型默认叠加紧凑密度 algorithm,暗色和紧凑密度均通过 theme algorithm 切换,禁止手工反色或逐控件压缩。
|
|
297
356
|
- 每个决策区域只保留一个 single primary action。保存、提交、审批、发布、导出和重试等动作必须提供 interaction feedback;不可逆或高风险动作使用确认弹窗。
|
|
298
357
|
- 对实际字号、图标和背景复核 accessibility contrast。默认 token 不足时,通过种子 token 或组件 token 调整,不引入单页特例色。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>YSS Design System Dark Preview</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root { color-scheme:dark; --primary:#6f9bff; --primary-active:#91b2ff; --text:rgba(255,255,255,.88); --secondary:rgba(255,255,255,.65); --layout:#141414; --surface:#1f1f1f; --subtle:#262626; --border:#434343; --selected:#112a45; --success:#73d13d; --warning:#ffc53d; --error:#ff7875; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; }
|
|
9
|
+
* { box-sizing:border-box } body { margin:0; color:var(--text); background:var(--layout); font-size:14px; } .shell { max-width:1440px; margin:auto; padding:16px; } .toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:12px; } h1,h2 { margin:0 0 12px; } h1 { font-size:24px; } h2 { font-size:18px; } .card { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:16px; margin-bottom:12px; } button,input,select { height:32px; border-radius:6px; border:1px solid var(--border); padding:0 12px; font:inherit; background:var(--surface); color:var(--text); } button.primary { border-color:var(--primary); background:var(--primary); color:#000; font-weight:600; } button.primary:hover,button.primary:focus-visible { background:var(--primary-active); } button:disabled { background:var(--subtle); color:var(--secondary); } input:focus-visible,select:focus-visible,button:focus-visible { outline:2px solid var(--primary); outline-offset:2px; } table { width:100%; border-collapse:collapse; } th,td { padding:8px 12px; border-bottom:1px solid var(--border); text-align:left; } th { background:var(--subtle); font-weight:600; } tr.selected { background:var(--selected); } .status { padding:8px 12px; border-radius:4px; margin:8px 0; } .success { background:var(--success); color:#000; } .warning { background:var(--warning); color:#000; } .error { background:var(--error); color:#000; } .muted { color:var(--secondary); } @media (max-width:768px) { .shell { padding:12px; } table { min-width:620px; } .table-wrap { overflow-x:auto; } }
|
|
10
|
+
</style>
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<main class="shell"><div class="toolbar"><h1>YSS 设计系统预览</h1><span class="muted">暗色 / 紧凑密度</span><button class="primary">发布</button><button disabled>禁用</button></div><section class="card"><h2>暗色表面与状态</h2><div class="toolbar"><input aria-label="关键词" placeholder="关键词"><select aria-label="状态"><option>全部状态</option></select><button class="primary">查询</button></div><div class="status success" role="status">操作成功</div><div class="status warning" role="status">需要确认</div><div class="status error" role="alert">操作失败,请重试</div></section><section class="card"><h2>选中行与空状态</h2><div class="table-wrap"><table><thead><tr><th>名称</th><th>状态</th><th>操作</th></tr></thead><tbody><tr class="selected"><td>当前记录</td><td>已选中</td><td><button>查看</button></td></tr></tbody></table></div><p class="muted">无数据时使用可读文案,不使用空白占位。</p></section></main>
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>YSS Design System Preview</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root { --primary:#3371ff; --primary-active:#245bdb; --text:rgba(0,0,0,.88); --secondary:rgba(0,0,0,.65); --layout:#f0f2f5; --surface:#fff; --subtle:#fafafa; --border:#d9d9d9; --selected:#e6f4ff; --success:#52c41a; --warning:#faad14; --error:#f5222d; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; }
|
|
9
|
+
* { box-sizing:border-box } body { margin:0; color:var(--text); background:var(--layout); font-size:14px; } .shell { max-width:1440px; margin:auto; padding:16px; } .toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:12px; } h1,h2 { margin:0 0 12px; } h1 { font-size:24px; } h2 { font-size:18px; } .card { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:16px; margin-bottom:12px; } button,input,select { height:32px; border-radius:6px; border:1px solid var(--border); padding:0 12px; font:inherit; background:var(--surface); } button.primary { border-color:var(--primary); background:var(--primary); color:#000; font-weight:600; } button.primary:hover,button.primary:focus-visible { background:var(--primary-active); color:#fff; } button:disabled { background:#f0f0f0; color:rgba(0,0,0,.45); } input:focus-visible,select:focus-visible,button:focus-visible { outline:2px solid var(--primary); outline-offset:2px; } table { width:100%; border-collapse:collapse; } th,td { padding:8px 12px; border-bottom:1px solid var(--border); text-align:left; } th { background:var(--subtle); font-weight:600; } tr.selected { background:var(--selected); } .grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; } .status { padding:8px 12px; border-radius:4px; margin:8px 0; } .success { background:var(--success); color:#000; } .warning { background:var(--warning); color:#000; } .error { background:var(--error); color:#000; } .muted { color:var(--secondary); } @media (max-width:768px) { .shell { padding:12px; } .grid { grid-template-columns:1fr; } .toolbar > * { flex:1 1 140px; } table { min-width:620px; } .table-wrap { overflow-x:auto; } }
|
|
10
|
+
</style>
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<main class="shell">
|
|
14
|
+
<div class="toolbar"><h1>YSS 设计系统预览</h1><span class="muted">默认 / 紧凑密度</span><button class="primary" onclick="this.textContent='已保存'; this.disabled=true">保存</button><button disabled>禁用</button></div>
|
|
15
|
+
<section class="card"><h2>筛选与表单</h2><div class="toolbar"><input aria-label="关键词" placeholder="关键词"><select aria-label="状态"><option>全部状态</option><option>已启用</option></select><button class="primary">查询</button><button>重置</button></div><div class="status warning" role="status">请补充必填筛选条件。</div></section>
|
|
16
|
+
<section class="card"><h2>数据表格</h2><div class="table-wrap"><table><thead><tr><th>名称</th><th>状态</th><th>更新时间</th><th>操作</th></tr></thead><tbody><tr class="selected"><td>示例任务</td><td><span class="status success">成功</span></td><td>2026-09-02 09:30</td><td><button>查看</button></td></tr><tr><td>加载中的任务</td><td>加载中…</td><td>—</td><td><button disabled>编辑</button></td></tr><tr><td>失败任务</td><td><span class="status error">失败:权限不足</span></td><td>—</td><td><button>重试</button></td></tr></tbody></table></div></section>
|
|
17
|
+
<div class="grid"><section class="card"><h2>空状态</h2><p class="muted">暂无数据,请调整筛选条件。</p><button class="primary">创建记录</button></section><section class="card"><h2>弹层触发</h2><button onclick="alert('Modal / Drawer 应提供可见反馈和焦点管理')">打开 Modal</button></section><section class="card"><h2>无障碍</h2><p class="muted">使用 Tab 检查焦点顺序;缩放到 200% 检查布局。</p></section></div>
|
|
18
|
+
</main>
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
| Discovery | `docs/.scratch/<feature>/discovery/<feature>-discovery.md` | 可选 |
|
|
13
13
|
| 原型阶段合同 / Product Design 路由 | `yss-prototype-stage -> product-design:index -> <focused skill>` | 必需;记录 `$get-context`、`$ideate`、`$prototype`、`$image-to-code` 或 `$url-to-code` |
|
|
14
14
|
| 原型 / 线框图 | `<链接或导出图片路径>` | Excalidraw / Figma / Penpot / tldraw / Axure / Markdown |
|
|
15
|
-
| 高保真 HTML 原型 | `docs/.scratch/<feature>/design/prototypes/index.html` |
|
|
15
|
+
| 高保真 HTML 原型 | `docs/.scratch/<feature>/design/prototypes/index.html` | 低保真原型评审通过后补齐;主题/视觉标准必须为 Ant Design v6,标准 React 组件锁定 antd@6,生产映射为 YSS UI + Ant Design Vue 4.x;产出后必须获得用户确认 |
|
|
16
16
|
| 原型验证清单 | `docs/.scratch/<feature>/verification/prototype-evidence.yaml` | 记录实际 CLI / AntD 版本、CLI JSON 输出、浏览器验证和阻塞项 |
|
|
17
17
|
| 现有 API 草案 | `docs/.scratch/<feature>/api/<feature>.yaml` | 可选;通常应先完成产品设计和 Spec 校准 |
|
|
18
18
|
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
- loading、empty、error、no-permission、readonly、conflict、dirty-form 状态已展示,或明确不适用。
|
|
106
106
|
- 每个表格列、筛选条件、表单字段、抽屉、弹窗和按钮都有数据来源或契约反推说明。
|
|
107
107
|
- 设计可以拆成独立可演示的垂直切片。
|
|
108
|
-
- 低保真原型评审通过后,高保真 HTML 原型使用 Ant Design v6
|
|
108
|
+
- 低保真原型评审通过后,高保真 HTML 原型使用 Ant Design v6 主题/视觉标准覆盖主流程、关键状态和响应式断点,并记录到生产 YSS UI/Ant Design Vue 4.x 的语义映射。
|
|
109
109
|
- 原型产出前已使用 `antd` CLI 查询设计语言、组件 API、demo、token 和 semantic 信息;原型产出后已在 `prototype-evidence.yaml` 记录实际版本、CLI 与浏览器验证证据。
|
|
110
110
|
|
|
111
111
|
## 9. 决策与未决问题
|
|
@@ -1,27 +1,53 @@
|
|
|
1
1
|
# 复制到 docs/.scratch/<feature>/verification/prototype-evidence.yaml。
|
|
2
|
-
#
|
|
3
|
-
schema_version:
|
|
2
|
+
# schema v1 只读兼容;关闭 gate.prototype-verified 前必须迁移到本 schema v2。
|
|
3
|
+
schema_version: 2
|
|
4
4
|
feature: <feature>
|
|
5
5
|
prototype_ref: docs/.scratch/<feature>/design/prototypes/index.html
|
|
6
|
+
prototype_stack:
|
|
7
|
+
framework: react
|
|
8
|
+
package_manager: pnpm
|
|
9
|
+
package_manifest_ref: docs/.scratch/<feature>/design/prototypes/package.json
|
|
10
|
+
lockfile_ref: docs/.scratch/<feature>/design/prototypes/pnpm-lock.yaml
|
|
11
|
+
source_entry_ref: docs/.scratch/<feature>/design/prototypes/src/App.jsx
|
|
12
|
+
build_entry_ref: docs/.scratch/<feature>/design/prototypes/dist/index.html
|
|
13
|
+
build_command: pnpm build
|
|
14
|
+
build_result: pending
|
|
15
|
+
actual_antd_version: <exact-6.x-version-from-lockfile>
|
|
6
16
|
design_baseline:
|
|
17
|
+
design_standard: ant-design-v6
|
|
7
18
|
project_design_ref: docs/design/design.md
|
|
8
|
-
project_token_refs:
|
|
19
|
+
project_token_refs:
|
|
20
|
+
- docs/design/tokens/theme.json
|
|
21
|
+
- docs/design/tokens/tokens.compact.json
|
|
9
22
|
upstream_design_md_source: https://ant.design/design.md
|
|
10
23
|
upstream_design_md_record_ref: <path-to-json-output-or-summary>
|
|
24
|
+
theme_adapter_ref: docs/.scratch/<feature>/design/prototypes/src/yss-theme.js
|
|
11
25
|
project_override_reviewed: false
|
|
12
26
|
theme_override:
|
|
13
27
|
color_primary: "#3371ff"
|
|
14
28
|
color_error: "#f5222d"
|
|
15
29
|
color_bg_layout: "#f0f2f5"
|
|
30
|
+
compact_control_height: 28
|
|
16
31
|
border_radius: 6
|
|
17
32
|
font_family: system-stack
|
|
18
33
|
recorded: false
|
|
19
|
-
note:
|
|
34
|
+
note: 官方当前同样使用系统字体和 6px 默认控件圆角;真实项目差异主要是品牌/状态色、页面背景和默认紧凑密度,不得误写为 Inter/8px 差异。
|
|
35
|
+
visual_semantic_mapping:
|
|
36
|
+
runtime_component_library: ant-design-vue-4.x
|
|
37
|
+
runtime_version_source: implementation-lockfile
|
|
38
|
+
components:
|
|
39
|
+
- semantic_role: <primary-action-or-other-role>
|
|
40
|
+
antd_v6_component: <React-AntD-component-used-by-prototype>
|
|
41
|
+
project_token_refs: [<token-name>]
|
|
42
|
+
yss_or_antdv_target: <YSS-or-AntDV-production-component>
|
|
43
|
+
state_mapping: [default, hover, active, disabled, loading]
|
|
44
|
+
react_only_api_not_copied: false
|
|
45
|
+
verification_ref: <same-state-screenshot-or-test-ref>
|
|
20
46
|
antd:
|
|
21
47
|
fact_skill: yss-antd-design
|
|
22
48
|
cli_command: antd
|
|
23
49
|
cli_version: <actual-cli-version>
|
|
24
|
-
target_antd_version: <
|
|
50
|
+
target_antd_version: <same-exact-6.x-version>
|
|
25
51
|
queries:
|
|
26
52
|
design_md: <path-to-json-output>
|
|
27
53
|
components:
|
|
@@ -30,9 +56,9 @@ antd:
|
|
|
30
56
|
demo_ref: <path-to-json-output>
|
|
31
57
|
token_ref: <path-to-json-output>
|
|
32
58
|
semantic_ref: <path-to-json-output>
|
|
33
|
-
lint_applicable:
|
|
34
|
-
lint_reason:
|
|
35
|
-
lint_ref: <path-to-json-output
|
|
59
|
+
lint_applicable: true
|
|
60
|
+
lint_reason: react-source
|
|
61
|
+
lint_ref: <path-to-json-output>
|
|
36
62
|
lint_passed: false
|
|
37
63
|
browser_verification:
|
|
38
64
|
executor: <browser-or-automation-name>
|
|
@@ -40,14 +66,30 @@ browser_verification:
|
|
|
40
66
|
prototype_digest: <sha256-or-version-ref>
|
|
41
67
|
viewports:
|
|
42
68
|
- name: desktop
|
|
43
|
-
size:
|
|
69
|
+
size: 1440x900
|
|
44
70
|
result: pending
|
|
45
71
|
- name: narrow-mobile
|
|
46
|
-
size:
|
|
72
|
+
size: 390x844
|
|
47
73
|
result: pending
|
|
48
74
|
main_flow_result: pending
|
|
49
75
|
failure_permission_or_conflict_result: pending
|
|
50
76
|
console_error_ref: <path-to-console-output-or-none>
|
|
77
|
+
design_qa:
|
|
78
|
+
report_ref: docs/.scratch/<feature>/verification/design-qa.md
|
|
79
|
+
result: pending
|
|
80
|
+
accessibility_verification:
|
|
81
|
+
contrast_results_ref: <path-to-default-hover-active-disabled-focus-results>
|
|
82
|
+
keyboard_navigation_result: pending
|
|
83
|
+
focus_visible_and_order_result: pending
|
|
84
|
+
semantic_label_dialog_result: pending
|
|
85
|
+
zoom_200_result: pending
|
|
86
|
+
reduced_motion_result: pending
|
|
87
|
+
target_size_result: pending
|
|
88
|
+
automated_scan:
|
|
89
|
+
tool: <tool-or-manual>
|
|
90
|
+
version: <actual-version-or-not-applicable>
|
|
91
|
+
result: pending
|
|
92
|
+
ref: <path-to-result-or-manual-check>
|
|
51
93
|
review:
|
|
52
94
|
prototype_review_ref: docs/.scratch/<feature>/design/<feature>-prototype-review.md
|
|
53
95
|
result: pending
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"source": "DESIGN.md",
|
|
4
|
+
"source_sha256": "976d74b4af85b5062f9c5a365591809ff240159f0f4445ce05e7a4dcb76d0185",
|
|
5
|
+
"files": {
|
|
6
|
+
"docs/design/tokens/theme.json": "94010a32320bfe7135f75d87357609162e0358061fe8577d820dcb62f43ac4e4",
|
|
7
|
+
"docs/design/tokens/tokens.default.json": "bf89486a8730a68673473fa7d5afe40b158e833b10df7da75d505bc53f8f6167",
|
|
8
|
+
"docs/design/tokens/tokens.dark.json": "79b93203f305d26f2f230a8af1f4b7e77c9bdb7997efa0746eed1508c928f85b",
|
|
9
|
+
"docs/design/tokens/tokens.compact.json": "afa4ae457a3db81d4b8a4b103ed9d6baa897daa1bbc23c96ee7d9182d2b4b992",
|
|
10
|
+
"docs/design/tokens/variables.css": "d5bb7bdfe13d71214c44d1a0fdf9648cb5fa35cb6511fb2a35202f8a96fb39dd",
|
|
11
|
+
"docs/design/tokens/variables.dark.css": "b8ebb18f304831ee5c86cf6e5563702b2cc0ce2f51b055036e437a385226cd99"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Agent Skill 治理升级决策分析
|
|
2
|
+
|
|
3
|
+
## 结论摘要
|
|
4
|
+
|
|
5
|
+
1. 逐技能结构 / 路由 / 行为 eval 不作为 YSS 模板首个升级方向。结构和路由已有确定性校验;行为 eval 成本高、易重复生命周期门禁,应降为后续按变更和风险触发的试验性能力。
|
|
6
|
+
2. invocation metadata 进入 `yss-skill-registry.yaml`;Router 合同只定义字段 schema、解析和阻断规则,不复制每个 skill 的示例。trigger examples 进入注册表,但保持少量、结构化、只为消歧服务。
|
|
7
|
+
3. freshness audit 作为生命周期完成条件的 core 能力,不新建一个常驻通用 skill;Doubt-Driven 作为高风险条件触发的 core 路由策略;Wayfinder 保持 maintainer-only / 兼容入口的可选模式,不进入默认 core 路由。
|
|
8
|
+
|
|
9
|
+
## Q1:eval 是否为首个升级方向
|
|
10
|
+
|
|
11
|
+
### 现状事实
|
|
12
|
+
|
|
13
|
+
- 技能身份、层级、成熟度、别名、默认可发现性和来源投影已经由 [`yss-skill-registry.yaml`](../../agents/yss-skill-registry.yaml)、[`skill-registry.mjs`](../../../scripts/lib/skill-registry.mjs)、`sync-skills` 和 `skills-lock.json` 共同校验。
|
|
14
|
+
- 生命周期路由和 Router 已经对未登记技能、依赖闭包、原型独立评审、代码审查唯一入口等关键路由做确定性检查。
|
|
15
|
+
- 生命周期完成已经要求 fresh verification、证据可读、阻断信号清空和 stale / drift 重路由。
|
|
16
|
+
|
|
17
|
+
### 决策
|
|
18
|
+
|
|
19
|
+
不把“每个 skill 三层 eval”作为 P0。采用以下顺序:
|
|
20
|
+
|
|
21
|
+
| 层次 | 初始策略 | 原因 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| 结构 | 继续使用现有静态 / schema 校验 | 成本最低,收益已覆盖大部分缺陷 |
|
|
24
|
+
| 路由 | 只对注册表、Router、生命周期变更做确定性增量校验 | 与现有门禁直接对齐,避免重复运行 |
|
|
25
|
+
| 行为 | P2 试验;只覆盖变更中的 core / 高风险 skill | 避免全量运行导致 token 和维护成本失控 |
|
|
26
|
+
|
|
27
|
+
行为 eval 的进入条件应是:skill 内容或路由发生变化、命中高风险影响、或出现真实 finding;退出条件是连续真实任务证明它能发现现有静态校验抓不到的问题,且没有形成第二套生命周期门禁。
|
|
28
|
+
|
|
29
|
+
## Q2:invocation metadata 与 trigger examples 的归属
|
|
30
|
+
|
|
31
|
+
### 决策
|
|
32
|
+
|
|
33
|
+
- **注册表**是技能级调用元数据的唯一事实源:调用模式、触发条件、排除条件、主要输出、依赖和少量 trigger examples 均放在这里。
|
|
34
|
+
- **Router 合同**定义 schema、解析顺序、依赖闭包和阻断规则;不复制每个技能的完整示例,避免注册表与 Router 漂移。
|
|
35
|
+
- **生命周期编排合同**继续保留工作单元级 `workflow_reference.invocation_mode`(例如 `model-invoked` / `reference`)。它描述一次工作单元如何被执行,不与注册表的 `user` / `model` / `both` 技能级模式混用。
|
|
36
|
+
|
|
37
|
+
### trigger examples 约束
|
|
38
|
+
|
|
39
|
+
- 仅为消歧提供 1–3 个正向示例,必要时提供反向排除示例。
|
|
40
|
+
- 示例优先使用 `impact:<name>`、显式用户入口或工作单元 ID 等稳定标识;长篇自然语言放入 skill reference,不放在注册表核心字段。
|
|
41
|
+
- specialist 技能可继承 `impacts` 触发条件;只有存在歧义时才增加显式 examples。
|
|
42
|
+
- examples 只影响发现和路由提示,不直接批准门禁、Ticket 状态或 `ready-for-agent`。
|
|
43
|
+
|
|
44
|
+
当前已落地的低成本基础见 [`yss-skill-registry.yaml`](../../agents/yss-skill-registry.yaml) 的 `invocation_contract`,以及 [`router-contract.yaml`](../../.agents/skills/yss-router/references/router-contract.yaml) 的合同字段。
|
|
45
|
+
|
|
46
|
+
## Q3:三项能力的路由层级
|
|
47
|
+
|
|
48
|
+
| 能力 | 推荐层级 | 具体落点 | 不应做什么 |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| freshness audit | core 能力 | 生命周期完成条件、候选快照、fresh verification、stale / drift 检查 | 不再新增一个对所有任务常驻的通用审计 skill |
|
|
51
|
+
| Doubt-Driven | core 条件路由 | Router / 工程基线 / 架构与契约审查中的高风险分支 | 不升级为所有低风险任务的默认步骤,不新建生命周期阶段 |
|
|
52
|
+
| Wayfinder | maintainer-only / 兼容入口的可选模式 | 超长、多 Agent、多会话或 frontier 不清晰时,完成后回 `handoff → to-spec` | 不改变阶段、门禁、Ticket 角色或 `ready-for-agent` |
|
|
53
|
+
|
|
54
|
+
### Doubt-Driven 的高风险触发器
|
|
55
|
+
|
|
56
|
+
API schema、数据库 schema / 迁移、跨仓库契约、发布 / 回滚、实际改变的认证授权 / 租户 / 敏感数据行为,以及生命周期或生成语义。反证记录进入既有决策、架构、契约或发布审查记录;缺反证、证据不足或残余风险未处理时阻断。
|
|
57
|
+
|
|
58
|
+
### freshness audit 的边界
|
|
59
|
+
|
|
60
|
+
freshness 是“完成结论可信度”的 core 约束,而不是新的工作单元。模板维护继续使用 L1/L2/L3 checkpoint;产品切片继续使用 Slice Contract 和候选快照。这样可以复用同一条 finding 闭环,不增加每次调用的上下文负担。
|
|
61
|
+
|
|
62
|
+
## 证据来源
|
|
63
|
+
|
|
64
|
+
- [YSS skill registry](../../agents/yss-skill-registry.yaml)
|
|
65
|
+
- [Skill registry validator](../../../scripts/lib/skill-registry.mjs)
|
|
66
|
+
- [YSS Router contract](../../.agents/skills/yss-router/references/router-contract.yaml)
|
|
67
|
+
- [Slice Implementation Contract](../../.agents/skills/yss-router/references/slice-implementation-contract.md)
|
|
68
|
+
- [Lifecycle orchestration contract](../../.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml)
|
|
69
|
+
- [Harness process tailoring](../../process/harness-process-tailoring.md)
|
|
70
|
+
- [Addy Osmani agent-skills](https://github.com/addyosmani/agent-skills)
|
|
71
|
+
- [Matt Pocock skills](https://github.com/mattpocock/skills)
|
|
@@ -35,17 +35,24 @@
|
|
|
35
35
|
|---|---|---|---|
|
|
36
36
|
| L1 | `maintenance-intensity.yaml` 的 `levels.L1.triggers` | 至少一项与变更直接相关的实际检查 | `self-check` 或显式 `human-checkpoint` |
|
|
37
37
|
| L2 | `maintenance-intensity.yaml` 的 `levels.L2.triggers`,或该策略的 `default_level` | 修改前可失败的最小反例,以及本轮 fresh verification | 一名非实施者执行 `focused-independent` 聚焦审查;结论可内联 checkpoint |
|
|
38
|
-
| L3 | `maintenance-intensity.yaml` 的 `levels.L3.triggers` |
|
|
38
|
+
| L3 | `maintenance-intensity.yaml` 的 `levels.L3.triggers` | 维护者自检与本轮 fresh verification;正式发布另执行一次完整 `scripts/verify-template` | 日常不要求独立审查;发布证据由维护者提供 |
|
|
39
39
|
|
|
40
40
|
判定规则:
|
|
41
41
|
|
|
42
42
|
1. 等级只由 `maintenance-intensity.yaml` 计算;未给出 trigger 时使用该策略的 `default_level`,未知 trigger 必须更新策略后才可验证。
|
|
43
43
|
2. 实施者可先分级,不要求 L1/L2 预批准;发现新影响时立即更新 `escalation`、重新分级并补齐证据。
|
|
44
44
|
3. 发布、合并或阶段完成时按整体候选重新判定;不得把共同改变整体语义的修改拆成多个 L1/L2 规避 L3。
|
|
45
|
-
4. RED 用于证明行为差异。L1 不人为构造失败;L2 可使用已有失败、最小 fixture
|
|
46
|
-
5.
|
|
45
|
+
4. RED 用于证明行为差异。L1 不人为构造失败;L2 可使用已有失败、最小 fixture 或现有测试修改前失败;L3 不再强制构造完整 RED/GREEN/REFACTOR/压力场景,记录维护者自检和 fresh verification 即可。
|
|
46
|
+
5. 模板正式发布仍执行一次完整 `scripts/verify-template`,但不因 L3 额外冻结候选或派发正式独立审查。
|
|
47
47
|
6. 模板维护与产品切片使用同一 finding 闭环:`violation` / 机器检查失败 / 适用行空白由实施者修复后重新验证并按本表强度复审;`drift` / `new_impacts` 升级影响面并重新分级,禁止在旧合同或旧 checkpoint 上继续编码。审查者不得写实现。未命中的条件项才 `not-applicable`;命中后不得豁免。
|
|
48
48
|
|
|
49
|
+
## 5. 上下文、反证与质量基线裁剪
|
|
50
|
+
|
|
51
|
+
- Slice Contract 的 `common.context_plan` 是实现上下文的唯一轻量计划:先读 `CONTEXT.md`、已批准 Spec、当前合同和适用 ADR / 工程基线,再按影响面按需加载 references;达到最小充分证据后停止扩展。缺失权威上下文只能 `blocked` 或 `reroute`。
|
|
52
|
+
- 质量标准在 `engineering-baseline` 中定义一次,以 `baseline_id` / `baseline_version` 被 Slice Contract、YSS Skill Execution Result、`code-review` 和发布检查复用;切片不得重定义同一标准。约束结果统一写入 `constraint_results`。
|
|
53
|
+
- 只有命中高风险影响时才要求 Doubt-Driven 在途反证:API / 数据迁移、跨仓契约、发布回滚、实际改变的安全行为、生命周期或生成语义。反证写入现有决策 / 架构 / 契约 / 发布审查记录,不新增生命周期阶段;缺少反证、证据不足或残余风险未处理即阻断。
|
|
54
|
+
- Wayfinder 是超长工作的可选规划模式,不改变阶段、门禁或 Ticket 状态;地图收敛后按 `wayfinder → handoff → to-spec` 返回主链。
|
|
55
|
+
|
|
49
56
|
模板维护默认停在 `implementation-ready`,不自动冻结候选或派发审查。需要独立审查时显式提升到 `review-ready`;完成独立审查和最终完整门禁后才能成为 `release-ready`。三个核验入口由 `docs/process/template-verification-profiles.yaml` 统一定义:
|
|
50
57
|
|
|
51
58
|
- `scripts/verify-template-fast`:按 Git 影响面运行快速检查;未映射路径或核心核验资产变化时 fail-safe 升级为完整门禁。
|
|
@@ -64,7 +71,7 @@ verification_evidence:
|
|
|
64
71
|
- kind: relevant-check | counterexample | red | green | refactor | pressure-scenario | fresh-verification | focused-independent-review | formal-independent-review
|
|
65
72
|
command: <本轮实际命令或可读取证据引用>
|
|
66
73
|
result: pass
|
|
67
|
-
review_mode: self-check | human-checkpoint | focused-independent | formal-independent # L2
|
|
74
|
+
review_mode: self-check | human-checkpoint | focused-independent | formal-independent # L2 需聚焦审查证据;L3 使用 self-check,历史 formal 记录只读兼容
|
|
68
75
|
escalation: none | <升级原因和原等级>
|
|
69
76
|
target_state: implementation-ready | review-ready | release-ready
|
|
70
77
|
current_state: implementation-ready | review-ready | release-ready | needs-human
|
|
@@ -81,4 +88,4 @@ Worktree 候选使用 `scripts/capture-maintenance-candidate --output <目录>`
|
|
|
81
88
|
|
|
82
89
|
固定远程模板输入可使用 `scripts/cache-template-commit --repository <remote-url> --commit <40位commit>`。缓存键仅由 URL 与 commit 构成,每次命中仍复核 metadata 和 Git object hash;缓存目录不进入 Git 或正式证据。
|
|
83
90
|
|
|
84
|
-
`focused-independent-review` 与 `formal-independent-review` 的 `command` 必须引用可读取的审查结论。L3
|
|
91
|
+
`focused-independent-review` 与 `formal-independent-review` 的 `command` 必须引用可读取的审查结论。L3 日常新记录使用 checkpoint 的 `self-check` 证据,不创建独立审查记录;历史 L3 正式记录继续使用 `docs/process/schemas/maintenance-review-record.schema.json` 并只读兼容,仍须带 `legacy_formal_review: true`、审查身份和明确通过结论。审查请求、实施者自述、否定裁决、伪造或非规范候选流、无效任务包、未关闭 findings 或 symlink 越界证据都会被拒绝。可用 `scripts/verify-maintenance-review-record` 单独校验历史记录。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"registry_id": "yss.lifecycle",
|
|
4
|
-
"semantic_sha256": "
|
|
4
|
+
"semantic_sha256": "15375e8d7da599e2117e19399cb5e14b9c53aa4e4ce7c94c4e9c135a499e55e6",
|
|
5
5
|
"published_ids": [
|
|
6
6
|
"artifact.architecture-review",
|
|
7
7
|
"artifact.data-architecture",
|
|
@@ -360,7 +360,7 @@ work_units:
|
|
|
360
360
|
- id: work-unit.stage-decision
|
|
361
361
|
name: 阶段决策包综合
|
|
362
362
|
scope: project-instance
|
|
363
|
-
input: Discovery、DDD
|
|
363
|
+
input: Discovery、DDD 战略设计以及产品经理负责的商业约束输入。
|
|
364
364
|
output: 带版本、digest、证据和下游映射的阶段决策包。
|
|
365
365
|
completion: 必填字段、引用、影响面和下游消费验证通过;批准门禁完成。
|
|
366
366
|
- id: work-unit.spec-synthesis
|
|
@@ -70,10 +70,10 @@ YSS 模板工程是一套可版本化的研发治理系统。它用仓库身份
|
|
|
70
70
|
2. **更新权威资产**:修改对应的单一事实来源,避免在说明文档中复制规则。
|
|
71
71
|
3. **生成投影**:涉及 skills 时同步 Agent roots 和 `skills-lock.json`;涉及生命周期结构时同步派生视图;涉及实例分发时构建固定 commit 的 CLI 快照。
|
|
72
72
|
4. **Fresh verification**:实现内循环执行 `scripts/verify-template-fast` 并默认停在 `implementation-ready`;准备审查时执行 candidate 核验和首次完整 `scripts/verify-template`,跨仓 CLI 还要执行固定 commit 的集成测试和打包校验。
|
|
73
|
-
5.
|
|
73
|
+
5. **审查与发布**:L2 按需使用聚焦独立审查;L3 日常记录维护者自检,不冻结候选、不派发正式独立审查。正式发布前仍执行一次完整 `scripts/verify-template`。
|
|
74
74
|
6. **发布与回滚**:先发布或提交子仓,再更新父仓 gitlink;跨仓版本、验证命令、发布顺序和回滚点必须可以重建。
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
完成标准:当前强度要求的自检 / 审查证据通过,跨仓固定引用闭合,正式发布前完整 `scripts/verify-template` 通过,并且不存在未处理的 `violation`、`drift` 或 `new_impacts`。
|
|
77
77
|
|
|
78
78
|
## 8. 常用入口
|
|
79
79
|
|
|
@@ -32,6 +32,7 @@ core_escalation_patterns:
|
|
|
32
32
|
- scripts/cache-template-commit
|
|
33
33
|
- scripts/capture-maintenance-candidate
|
|
34
34
|
- scripts/inspect-maintenance-candidate
|
|
35
|
+
- .template-source/tooling/node/scripts/design-md.mjs
|
|
35
36
|
required_files:
|
|
36
37
|
- yss-project.yaml
|
|
37
38
|
- AGENTS.md
|
|
@@ -61,6 +62,10 @@ required_files:
|
|
|
61
62
|
- .agents/skills/yss-tactical-design/references/output-template.md
|
|
62
63
|
- .agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs
|
|
63
64
|
- .agents/skills/yss-tactical-design/tests/run-scenarios.mjs
|
|
65
|
+
- .agents/skills/yss-prototype-stage/references/product-design-adapter.md
|
|
66
|
+
- .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs
|
|
67
|
+
- .agents/skills/yss-prototype-stage/tests/run-scenarios.mjs
|
|
68
|
+
- docs/design/templates/prototype-evidence-template.yaml
|
|
64
69
|
- scripts/lib/template-verification.mjs
|
|
65
70
|
- scripts/lib/maintenance-intensity.mjs
|
|
66
71
|
- scripts/lib/maintenance-candidate.mjs
|
|
@@ -104,6 +109,7 @@ syntax_files:
|
|
|
104
109
|
- scripts/verify-matt-yss-integration-scenarios
|
|
105
110
|
- scripts/verify-prototype-backend-scaffold-scenarios
|
|
106
111
|
- scripts/verify-yss-router-scenarios
|
|
112
|
+
- scripts/verify-yss-prototype-contract-scenarios
|
|
107
113
|
- scripts/verify-openapi-yaml-first-scenarios
|
|
108
114
|
- scripts/verify-openapi-json-handoff-scenarios
|
|
109
115
|
- scripts/verify-repository-scope-scenarios
|
|
@@ -124,6 +130,8 @@ syntax_files:
|
|
|
124
130
|
- scripts/verify-maintenance-review-workflow-scenarios
|
|
125
131
|
- scripts/verify-template-cache-scenarios
|
|
126
132
|
routing:
|
|
133
|
+
- patterns: [DESIGN.md, "docs/design/**", ".template-source/tooling/node/scripts/design-md.mjs"]
|
|
134
|
+
groups: [design-system]
|
|
127
135
|
- patterns: [AGENTS.md, CONTEXT.md, yss-project.yaml, package.json, .gitignore, README.md, "docs/**"]
|
|
128
136
|
groups: [hygiene]
|
|
129
137
|
- patterns: [AGENTS.md, yss-project.yaml, "docs/process/template-engineering-overview.md"]
|
|
@@ -140,7 +148,7 @@ routing:
|
|
|
140
148
|
groups: [maintenance, collaboration]
|
|
141
149
|
- patterns: ["docs/templates/openapi-*", ".agents/skills/yss-openapi-*/**", ".agents/skills/yss-dto/**", "scripts/*openapi*", "scripts/*dto*"]
|
|
142
150
|
groups: [contracts]
|
|
143
|
-
- patterns: ["docs/process/implementation-*", "scripts/*repository*", "scripts/*implementation*", "scripts/*scaffold*"]
|
|
151
|
+
- patterns: ["docs/process/implementation-*", "scripts/*repository*", "scripts/*implementation*", "scripts/*scaffold*", "scripts/*prototype*"]
|
|
144
152
|
groups: [implementation]
|
|
145
153
|
- patterns: [".template-source/**", "scripts/vendor/**"]
|
|
146
154
|
groups: [tooling]
|
|
@@ -151,6 +159,10 @@ routing:
|
|
|
151
159
|
- patterns: ["scripts/**"]
|
|
152
160
|
groups: [hygiene]
|
|
153
161
|
groups:
|
|
162
|
+
design-system:
|
|
163
|
+
commands:
|
|
164
|
+
- { run: "node .template-source/tooling/node/scripts/design-md.mjs lint DESIGN.md", when: template-source }
|
|
165
|
+
- { run: "node .template-source/tooling/node/scripts/design-md.mjs drift", when: template-source }
|
|
154
166
|
hygiene:
|
|
155
167
|
commands: []
|
|
156
168
|
tooling:
|
|
@@ -206,6 +218,8 @@ groups:
|
|
|
206
218
|
- { run: "scripts/verify-matt-yss-integration-scenarios" }
|
|
207
219
|
- { run: "scripts/verify-yss-router-scenarios" }
|
|
208
220
|
- { run: "scripts/verify-yss-ui-scenarios" }
|
|
221
|
+
- { run: "scripts/verify-yss-prototype-contract-scenarios" }
|
|
222
|
+
- { run: "node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs validate-evidence docs/design/templates/prototype-evidence-template.yaml --allow-template" }
|
|
209
223
|
governance-release:
|
|
210
224
|
commands:
|
|
211
225
|
- { run: "scripts/verify-governance-release" }
|
|
@@ -4,22 +4,13 @@ classification_reason: <分级理由>
|
|
|
4
4
|
triggers: [core-validator]
|
|
5
5
|
changed_assets: [<路径或资产引用>]
|
|
6
6
|
verification_evidence:
|
|
7
|
-
- kind:
|
|
8
|
-
command:
|
|
9
|
-
result: pass
|
|
10
|
-
- kind: green
|
|
11
|
-
command: <修改后通过命令或证据>
|
|
12
|
-
result: pass
|
|
13
|
-
- kind: refactor
|
|
14
|
-
command: <重构后验证命令或证据>
|
|
15
|
-
result: pass
|
|
16
|
-
- kind: pressure-scenario
|
|
17
|
-
command: <压力场景命令或证据>
|
|
7
|
+
- kind: self-check
|
|
8
|
+
command: <维护者自检命令或证据>
|
|
18
9
|
result: pass
|
|
19
10
|
- kind: fresh-verification
|
|
20
11
|
command: scripts/verify-template-fast
|
|
21
12
|
result: pass
|
|
22
|
-
review_mode:
|
|
13
|
+
review_mode: self-check
|
|
23
14
|
escalation: none
|
|
24
15
|
target_state: implementation-ready
|
|
25
16
|
current_state: implementation-ready
|
|
@@ -46,6 +46,8 @@ owner: ai
|
|
|
46
46
|
| 工程项目路径:每个 Harness 内项目必须有具体项目段,禁止直接写入容器根或单数 `app/...` | `docs/process/implementation-repo-integration.md` / implementation path validator | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 路径违规时停止 build,并回到实现路由 |
|
|
47
47
|
| 文档语言:持久化生命周期文档、实施记录、审查报告、发布说明和 Git checkpoint 正文必须使用中文,英文 skill / 模板不得原样落地 | `AGENTS.md` / `yss-product-lifecycle` | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 仅保留必要英文技术标识、命令和 metadata |
|
|
48
48
|
| 高风险变更:按已批准的普通影响面结论记录验证证据、责任人和回滚约束 | `AGENTS.md` / Spec / 架构记录 | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 缺验证证据或责任人时不得发布或合并 |
|
|
49
|
+
| 质量基线:`baseline_id` / `baseline_version` 只从 `engineering-baseline` 引用,Slice、Execution Result、审查和发布不得重复定义 | `engineering-baseline` / `orchestration-contract.yaml` | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 缺少基线引用或出现重复标准时阻断并回到工程基线 |
|
|
50
|
+
| Doubt-Driven:命中 API、数据、跨仓、发布回滚、实际安全行为或生命周期 / 生成语义时具备主张、反证、证据、残余风险和审查引用 | Router Contract / `orchestration-contract.yaml` | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 缺反证、证据不足或残余风险未处理时阻断 |
|
|
49
51
|
| | | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | |
|
|
50
52
|
|
|
51
53
|
状态说明:
|