openyida 2026.8.13 → 2026.8.14
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/docs/capabilities.md +21 -5
- package/package.json +1 -1
- package/yida-skills/SKILL.md +90 -184
- package/yida-skills/references/execution-rules.md +8 -0
- package/yida-skills/references/resource-context.md +81 -0
- package/yida-skills/references/routing-supplement.md +27 -0
- package/yida-skills/references/setup-and-env.md +31 -36
- package/yida-skills/skills/yida-app/SKILL.md +48 -294
- package/yida-skills/skills/yida-app/references/common-issues.md +49 -0
- package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +63 -0
- package/yida-skills/skills/yida-app/workflow/step-2-design.md +40 -0
- package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +34 -0
- package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +74 -0
- package/yida-skills/skills/yida-app/workflow/step-5-seed-records.md +44 -0
- package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +35 -0
- package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +50 -0
- package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +42 -0
- package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +82 -0
- package/yida-skills/skills/yida-create-form-page/SKILL.md +4 -3
- package/yida-skills/skills/yida-design/SKILL.md +9 -9
- package/yida-skills/skills/yida-design/references/page-quality-gates.md +1 -1
- package/yida-skills/skills/yida-design/references/style-design-selection.md +29 -29
- package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +3 -3
- package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +3 -3
- package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +3 -3
- package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +4 -4
- package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +4 -4
- package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +8 -8
- package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +5 -5
- package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +3 -3
- package/yida-skills/skills/yida-design/references/style-designs/registry.md +30 -30
- package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +4 -4
- package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +1 -1
- package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +4 -4
- package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +4 -4
- package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +5 -5
- package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +4 -4
- package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +8 -8
- package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +8 -8
- package/yida-skills/skills/yida-design/workflow/output-design.md +25 -19
- package/yida-skills/skills/yida-design/workflow/output-prd.md +11 -6
- package/yida-skills/skills/yida-design/workflow/step-1-positioning.md +1 -1
- package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +1 -1
- package/yida-skills/skills/yida-design/workflow/step-3-information-architecture.md +1 -1
- package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +10 -10
- package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +2 -2
- package/yida-skills/skills/yida-flash-note-to-prd/SKILL.md +31 -33
- package/yida-skills/skills/yida-flash-note-to-prd/references/flash-note-prd-template.md +1 -1
- package/yida-skills/skills/yida-form-detail/SKILL.md +7 -7
- package/yida-skills/skills/yida-login/SKILL.md +32 -31
- package/yida-skills/skills/yida-publish-page/SKILL.md +9 -6
- package/yida-skills/references/development-rules.md +0 -85
- package/yida-skills/skills/yida-app/references/app-build-contract.md +0 -141
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Step 1:解析资源上下文
|
|
2
|
+
|
|
3
|
+
先确认本轮要操作哪个 app/page/form/process,再决定复用、补齐还是创建。不要把 `create-app`、`create-page`、`create-form` 当成默认动作。
|
|
4
|
+
|
|
5
|
+
## 只读预检
|
|
6
|
+
|
|
7
|
+
若根入口已经完成只读预检,沿用结果,不要每个阶段重复跑 env/help/login。
|
|
8
|
+
|
|
9
|
+
若还没有预检,优先跑一次 `openyida agent-capabilities --summary-json`;旧版本没有该命令时,退回 `openyida env --json` 和 `openyida login --check-only --json`。只有登录态可用后,才执行会创建、修改或发布宜搭资源的命令。
|
|
10
|
+
|
|
11
|
+
## 资源解析顺序
|
|
12
|
+
|
|
13
|
+
按以下优先级选择目标,上游来源更明确时覆盖下游来源:
|
|
14
|
+
|
|
15
|
+
1. 本轮用户显式给出的 `appType`、`formUuid`、应用 URL、页面 URL、流程标识、页面/表单名称;
|
|
16
|
+
2. 外部工具注入或当前会话绑定的资源上下文;
|
|
17
|
+
3. workspace 中的 `project/config.json`、`.cache/<项目名>-schema.json`、`.cache/openyida/**`;
|
|
18
|
+
4. 当前会话历史中已创建或已确认的资源;
|
|
19
|
+
5. 用户明确说“从零创建 / 新建另一个 / 创建新应用或新页面”时,允许创建缺失资源;
|
|
20
|
+
6. 多个同级候选、显式资源互相冲突或目标不明时,才询问用户。
|
|
21
|
+
|
|
22
|
+
已绑定资源上下文只是默认候选,不是锁定目标。若当前会话绑定页面 A,但用户本轮明确给出页面 B 的 URL、`formUuid` 或名称,必须重新解析 B;B 能唯一解析就切换,不能唯一解析才询问。
|
|
23
|
+
|
|
24
|
+
## create-or-update 判定
|
|
25
|
+
|
|
26
|
+
| 已解析到 | 正确动作 |
|
|
27
|
+
| --- | --- |
|
|
28
|
+
| 目标 app | 在该 app 内补齐资源,不执行 `use_skill("yida-create-app")` |
|
|
29
|
+
| 目标自定义页面 URL / `formUuid` / bound page | 直接写源码并发布到该页面,不执行 `use_skill("yida-create-page")` |
|
|
30
|
+
| 目标表单 `formUuid` | 走 `yida-create-form-page` 的 update/patch/rule/bind-datasource,不创建同类表单 |
|
|
31
|
+
| 目标流程表单或 `processCode` | 走 `yida-process-rule` 配置或更新流程,不从零执行 `yida-create-process` |
|
|
32
|
+
| 缺少 app 且用户允许创建 | 记录 `allowCreate=true`,等 Step 2 PRD 完成后再创建应用 |
|
|
33
|
+
| 缺少页面且用户允许创建 | 在表单/流程和 seed records 完成后再创建 display 页面占位 |
|
|
34
|
+
|
|
35
|
+
若已有 app 来自外部工具预创建资源,OpenYida 技能侧只复用 `appType`,不自动修改应用名称;应用名修正由外部工具侧负责。
|
|
36
|
+
|
|
37
|
+
## 命令选择
|
|
38
|
+
|
|
39
|
+
- 已有显式 `appType`、应用 URL 或已绑定上下文中的 `appType` 且能唯一解析时,直接复用;不要调用 `app-list` 做存在性确认。
|
|
40
|
+
- 只有用户只给应用名称、存在多个候选、resource context 冲突,或需要诊断目标 app 访问失败时,才运行 `openyida app-list [--size N]`。
|
|
41
|
+
- 已知 `appType` 后,查询应用下表单/页面用 `openyida list-forms <appType> [--keyword <text>]`;选择页面发布目标时只用 `formType=display`。
|
|
42
|
+
- 查询表单/页面 Schema、字段 ID 或批量字段摘要用 `openyida get-schema <appType> <formUuid|--all> ...`。
|
|
43
|
+
- 页面、流程、公式或多表 dataBinding 确实需要多个 `fieldId` 时,对每个目标业务表单最多一次性执行 `openyida get-schema <appType> <formUuid> --field-map-json`,读取完整 JSON 并合并到 `.cache/<项目名>-schema.json`。
|
|
44
|
+
- 禁止编造 `list-apps` / `get-app`;不要把 `--app-type` / `--form-uuid` 当成 `list-forms` 或 `get-schema` 的参数。
|
|
45
|
+
|
|
46
|
+
## 路径口径
|
|
47
|
+
|
|
48
|
+
- 从仓库根执行页面命令时使用 `project/pages/src/...`。
|
|
49
|
+
- 如果 cwd 已是 `<workspace>/project`,使用 `pages/src/...`,不要传 `project/pages/src/...` 导致 `project/project`。
|
|
50
|
+
- 读取 PRD、字段 JSON、页面源码或 schema 文件时优先用当前工具的 Read / Glob / Grep;OpenYida CLI 成功输出已经是操作证据,不要再 Bash `cat`/`ls` 复核。
|
|
51
|
+
|
|
52
|
+
## 产出
|
|
53
|
+
|
|
54
|
+
进入 Step 2 前,必须得到以下结论:
|
|
55
|
+
|
|
56
|
+
- 本轮目标 app/page/form/process 的来源和 ID;
|
|
57
|
+
- 哪些资源复用,哪些资源缺失;
|
|
58
|
+
- 是否允许在 PRD 完成后创建缺失 app 或页面;
|
|
59
|
+
- 目标组织和 `corpId` 线索,供创建或发布页面前核对。
|
|
60
|
+
|
|
61
|
+
## 下一步
|
|
62
|
+
|
|
63
|
+
→ [Step 2:产品设计](step-2-design.md)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Step 2:产品设计
|
|
2
|
+
|
|
3
|
+
完整应用只走统一产品设计。`yida-app` 不直接凭感觉定义字段、页面结构或视觉风格;这些事实由 `yida-design` 产出。
|
|
4
|
+
|
|
5
|
+
## 设计技能
|
|
6
|
+
|
|
7
|
+
执行 `use_skill("yida-design", "完整应用产品设计")`,让它基于 Step 1 的资源上下文输出:
|
|
8
|
+
|
|
9
|
+
- `prd/<项目名>/prd.md`
|
|
10
|
+
- `prd/<项目名>/design.md`
|
|
11
|
+
|
|
12
|
+
已有 app/page/form/process 只作为上下文复用;缺失资源按 PRD 的资源创建顺序落地,页面视觉按 `design.md` 落地。
|
|
13
|
+
|
|
14
|
+
## 设计职责边界
|
|
15
|
+
|
|
16
|
+
| 文件 | 职责 |
|
|
17
|
+
| --- | --- |
|
|
18
|
+
| `prd.md` | 应用基本信息、用户角色、核心任务、业务对象、数据结构、页面与功能、业务逻辑、交互状态、资源蓝图、资源创建顺序、页面实现交付顺序、导航顺序和验收标准 |
|
|
19
|
+
| `design.md` | 主题 token、视觉 DNA、布局密度、圆角规则、背景与卡片层次、组件规则、状态规则、响应式规则和页面视觉验收 |
|
|
20
|
+
|
|
21
|
+
`prd.md` 和 `design.md` 是唯一设计事实源。`page-spec.json` 只是页面实现阶段从二者派生的 handoff / 生成器输入,不是第三份设计文件。
|
|
22
|
+
|
|
23
|
+
## 主题 key
|
|
24
|
+
|
|
25
|
+
主题 key 是否传给 `create-app/update-app --theme`,只消费 `yida-design` 产物中的明确结论。
|
|
26
|
+
|
|
27
|
+
只有 PRD 摘要和 `design.md` 都写明 `shouldPassCreateAppTheme=true`,且 `themePresetKey` 命中平台 key 时,才传主题。没有命中平台预置主题 key 时不传主题,只在页面实现中按 `design.md` 注入或消费视觉规则。
|
|
28
|
+
|
|
29
|
+
## 产出
|
|
30
|
+
|
|
31
|
+
进入 Step 3 前,必须确认:
|
|
32
|
+
|
|
33
|
+
- `prd.md` 和 `design.md` 路径存在;
|
|
34
|
+
- PRD 写明资源创建顺序、页面实现交付顺序、导航顺序或明确兜底策略;
|
|
35
|
+
- PRD 写明业务表单、流程表单、主页面和可选报表/大屏/权限等资源蓝图;
|
|
36
|
+
- `design.md` 能直接指导后续页面实现,不需要页面技能再反推视觉方向。
|
|
37
|
+
|
|
38
|
+
## 下一步
|
|
39
|
+
|
|
40
|
+
→ [Step 3:创建或复用应用](step-3-create-or-reuse-app.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Step 3:创建或复用应用
|
|
2
|
+
|
|
3
|
+
按 Step 1 的资源上下文和 Step 2 的 PRD 确认目标应用。已有 app 直接复用;缺少 app 且允许创建时才创建。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- Step 1 的 app resource context;
|
|
8
|
+
- `prd/<项目名>/prd.md`;
|
|
9
|
+
- `prd/<项目名>/design.md`。
|
|
10
|
+
|
|
11
|
+
## 操作
|
|
12
|
+
|
|
13
|
+
1. 已有 `appType`、应用 URL 或已绑定 app → 直接复用该 app。
|
|
14
|
+
2. 缺少 app 且 Step 1 判定 `allowCreate=true` → 执行 `use_skill("yida-create-app", "按 PRD 创建应用并获取 appType")`,再按 PRD 创建应用。
|
|
15
|
+
3. 创建或复用后提取真实 `appType`,写入 `.cache/<项目名>-schema.json` 或当前任务资源上下文。
|
|
16
|
+
4. 若 PRD 和 `design.md` 都写明 `shouldPassCreateAppTheme=true`,且 `themePresetKey` 命中平台 key,创建应用时传主题;否则不传自定义主题色。
|
|
17
|
+
5. 已有 app 不自动改名。外部工具预创建 app 时,OpenYida 侧只复用 `appType`。
|
|
18
|
+
|
|
19
|
+
## 产出
|
|
20
|
+
|
|
21
|
+
- 真实目标 `appType`;
|
|
22
|
+
- app 来源:显式资源、绑定上下文、workspace cache、会话历史或本轮新建;
|
|
23
|
+
- 主题 key 是否已传入的结论。
|
|
24
|
+
|
|
25
|
+
## Checklist
|
|
26
|
+
|
|
27
|
+
- [ ] 已确认不会重复创建同类 app;
|
|
28
|
+
- [ ] 已拿到真实 `appType`;
|
|
29
|
+
- [ ] 已有 app 未被自动改名;
|
|
30
|
+
- [ ] 主题 key 只在 PRD 和 `design.md` 同时允许时传入。
|
|
31
|
+
|
|
32
|
+
## 下一步
|
|
33
|
+
|
|
34
|
+
→ [Step 4:创建或更新表单/流程](step-4-forms-processes.md)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Step 4:创建或更新表单/流程
|
|
2
|
+
|
|
3
|
+
按 PRD 的资源创建顺序创建或复用表单和流程。表单、流程先于自定义页面。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- 真实 `appType`;
|
|
8
|
+
- `prd/<项目名>/prd.md`;
|
|
9
|
+
- `prd/<项目名>/design.md`;
|
|
10
|
+
- Step 1 解析出的 form/process context。
|
|
11
|
+
|
|
12
|
+
## 操作
|
|
13
|
+
|
|
14
|
+
1. 表单开发先执行 `use_skill("yida-form-detail", "表单视觉引导与详情页样式默认注入")`,明确填写路径、字段密度和 Divider 分组。
|
|
15
|
+
2. 执行 `use_skill("yida-create-form-page", "创建或更新核心表单字段结构")`,创建或更新普通表单字段结构。
|
|
16
|
+
3. 已有目标表单时,使用 update/patch/rule/bind-datasource。
|
|
17
|
+
4. 缺少支撑 MVP 的核心普通表单且允许创建时,创建普通表单。
|
|
18
|
+
5. 字段配置文件写入 `.cache/openyida/<项目名>/`。
|
|
19
|
+
6. 拿到或确认真实 `formUuid` 后,必须执行表单主题和 formDetail CSS 注入校验:先 `openyida form-detail-style check`,缺失时 `apply`,再 `check`;最终需确认 `globalThemeActionFound: true` 与 `formDetailStyleActionFound: true`,重复执行保持幂等。
|
|
20
|
+
7. 页面、数据、流程或公式确需多字段映射时,对每个目标表单最多一次性执行 `openyida get-schema <appType> <formUuid> --field-map-json`,合并写回 `.cache/<项目名>-schema.json`。
|
|
21
|
+
8. PRD 包含审批、流程、申请、审核、工单等流程对象时,执行 `use_skill("yida-create-process", "创建带审批流程表单")`。
|
|
22
|
+
9. 已有流程表单或 `processCode` 时,执行 `use_skill("yida-process-rule", "更新已有流程规则")`。
|
|
23
|
+
|
|
24
|
+
## 字段配置文件示例
|
|
25
|
+
|
|
26
|
+
字段配置文件写到 `.cache/openyida/<项目名>/xxx-fields.json`;从 workspace 根执行时传 `project/.cache/openyida/<项目名>/xxx-fields.json`。
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
[
|
|
30
|
+
{ "type": "TextField", "label": "访客姓名", "required": true },
|
|
31
|
+
{ "type": "PhoneField", "label": "联系电话" },
|
|
32
|
+
{ "type": "DateField", "label": "到访时间" },
|
|
33
|
+
{ "type": "SelectField", "label": "访问状态", "options": ["预约中", "已到访", "已离开"] }
|
|
34
|
+
]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
创建后把返回 ID 汇总到 `.cache/<项目名>-schema.json`:
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"appType": "APP_XXXXXX",
|
|
42
|
+
"pages": {
|
|
43
|
+
"访客登记表": {
|
|
44
|
+
"formUuid": "FORM-XXXXXX",
|
|
45
|
+
"fields": {
|
|
46
|
+
"访客姓名": "textField_xxxxxxxx"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"访客工作台": {
|
|
50
|
+
"formUuid": "FORM-YYYYYY"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 产出
|
|
57
|
+
|
|
58
|
+
- 普通表单真实 `formUuid`;
|
|
59
|
+
- 流程表单真实 `formUuid` / `processCode`;
|
|
60
|
+
- 必要 `fieldId`;
|
|
61
|
+
- 表单全局主题和详情页 CSS 注入结果,或明确阻塞原因。
|
|
62
|
+
|
|
63
|
+
## Checklist
|
|
64
|
+
|
|
65
|
+
- [ ] 字段结构有 Divider 分组;
|
|
66
|
+
- [ ] 表单/流程资源在自定义页面之前创建或确认;
|
|
67
|
+
- [ ] 必要 `fieldId` 已写入 `.cache/<项目名>-schema.json`;
|
|
68
|
+
- [ ] 表单全局主题已注入:`globalThemeActionFound: true`;
|
|
69
|
+
- [ ] formDetail CSS 已注入:`formDetailStyleActionFound: true`;
|
|
70
|
+
- [ ] 若无法注入,已给出明确阻塞原因。
|
|
71
|
+
|
|
72
|
+
## 下一步
|
|
73
|
+
|
|
74
|
+
→ [Step 5:写入初始表单数据](step-5-seed-records.md)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Step 5:写入初始表单数据
|
|
2
|
+
|
|
3
|
+
完整应用默认给本轮新建或页面数据源依赖的核心普通表单写入 1-3 条业务化 seed records。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- 真实 `appType`;
|
|
8
|
+
- 核心普通表单 `formUuid`;
|
|
9
|
+
- `.cache/<项目名>-schema.json` 或字段 schema;
|
|
10
|
+
- PRD 中的业务对象和示例数据语义。
|
|
11
|
+
|
|
12
|
+
## 操作
|
|
13
|
+
|
|
14
|
+
1. 执行 `use_skill("yida-data-management", "为核心业务表单写入 1-3 条示例记录")`。
|
|
15
|
+
2. 先执行 `openyida get-schema <appType> <formUuid> --field-map-json` 获取真实字段 ID。
|
|
16
|
+
3. 生成当前业务语义的字段值,不写“测试1 / demo / mock”。
|
|
17
|
+
4. 每个核心普通表单 1-3 条即可;列表/工作台通常 2 条,看板/排行/状态分布通常 3 条。
|
|
18
|
+
5. `DateField` / `CascadeDateField` 使用 13 位毫秒时间戳。
|
|
19
|
+
6. 每条记录单独执行 `openyida data create form <appType> <formUuid> --data-file ...` 或 `--data-json ...`。
|
|
20
|
+
7. 最后执行 `openyida data query form` 抽查至少 1 条,确认 `formData` 非空。
|
|
21
|
+
|
|
22
|
+
以下情况可以跳过,并在 final 说明原因:
|
|
23
|
+
|
|
24
|
+
- 用户明确要求不要造数;
|
|
25
|
+
- 表单是配置字典、权限表、敏感个人数据表或纯附件表;
|
|
26
|
+
- 字段缺少可安全构造的有效值;
|
|
27
|
+
- 流程表单没有确认 `processCode`,且页面不需要流程实例。
|
|
28
|
+
|
|
29
|
+
## 产出
|
|
30
|
+
|
|
31
|
+
- 1-3 条真实普通表单记录;
|
|
32
|
+
- query 抽查结果;
|
|
33
|
+
- 或明确跳过原因和页面空态方案。
|
|
34
|
+
|
|
35
|
+
## Checklist
|
|
36
|
+
|
|
37
|
+
- [ ] seed records 使用真实 `fieldId`;
|
|
38
|
+
- [ ] 每条记录单独创建;
|
|
39
|
+
- [ ] query 抽查已确认 `formData` 非空;
|
|
40
|
+
- [ ] 跳过时已写明原因和页面空态方案。
|
|
41
|
+
|
|
42
|
+
## 下一步
|
|
43
|
+
|
|
44
|
+
→ [Step 6:创建或复用主页面](step-6-main-page.md)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Step 6:创建或复用主页面
|
|
2
|
+
|
|
3
|
+
确定完整应用的主入口 display 页面。已有主页面直接复用;缺少主页面且允许创建时才创建。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- 真实 `appType`;
|
|
8
|
+
- Step 1 解析出的 page context;
|
|
9
|
+
- PRD 中的主页面、首页、工作台或门户门面需求;
|
|
10
|
+
- 当前 auth snapshot 的 `corpId`。
|
|
11
|
+
|
|
12
|
+
## 操作
|
|
13
|
+
|
|
14
|
+
1. 已有页面 URL、`formUuid` 或已绑定 display 页面 → 直接作为主页面,不执行 `use_skill("yida-create-page")`。
|
|
15
|
+
2. 缺少首页、工作台、智能助手或门户门面,且 Step 1 允许创建 → 执行 `use_skill("yida-create-page", "创建主入口自定义页面")`。
|
|
16
|
+
3. 创建页面前核对 PRD/resource context 与 auth snapshot 的 `corpId`。
|
|
17
|
+
4. `corpId` 不一致 → 先确认重新登录到目标组织,或确认在当前组织继续。
|
|
18
|
+
5. 创建 display 页面后记录真实主页面 `formUuid`。
|
|
19
|
+
|
|
20
|
+
## 产出
|
|
21
|
+
|
|
22
|
+
- 主页面 display `formUuid`;
|
|
23
|
+
- 页面来源:显式页面、绑定页面、workspace cache、会话历史或本轮新建;
|
|
24
|
+
- `corpId` 核对结果。
|
|
25
|
+
|
|
26
|
+
## Checklist
|
|
27
|
+
|
|
28
|
+
- [ ] 已确认不会重复创建主页面;
|
|
29
|
+
- [ ] 已拿到真实 display `formUuid`;
|
|
30
|
+
- [ ] 创建或发布前已核对 `corpId`;
|
|
31
|
+
- [ ] `corpId` 不一致时已等待用户确认。
|
|
32
|
+
|
|
33
|
+
## 下一步
|
|
34
|
+
|
|
35
|
+
→ [Step 7:编写或更新页面](step-7-page-code.md)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Step 7:编写或更新页面
|
|
2
|
+
|
|
3
|
+
按 `prd.md` 和 `design.md` 实现页面。页面源码通过本地校验只表示“可发布”,不表示远端页面已更新。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- `prd/<项目名>/prd.md`;
|
|
8
|
+
- `prd/<项目名>/design.md`;
|
|
9
|
+
- 真实 `appType`、主页面 `formUuid`;
|
|
10
|
+
- `.cache/<项目名>-schema.json`;
|
|
11
|
+
- Step 5 写入的 seed records 或跳过原因。
|
|
12
|
+
|
|
13
|
+
## 操作
|
|
14
|
+
|
|
15
|
+
1. 默认执行 `use_skill("yida-canvas-custom-page", "生成 Code Canvas 主页面")`。
|
|
16
|
+
2. 用户明确要求普通自定义页面 JSX/Jsx 组件链路,或页面强依赖 `this.$`、`this.utils.yida.*`、`this.dataSourceMap` 时,执行 `use_skill("yida-custom-page", "实现普通自定义页面 JSX/Jsx 组件链路")`。
|
|
17
|
+
3. 需要系统化数据桥时,执行 `use_skill("yida-canvas-data-binding", "为 Code Canvas 页面接入真实表单数据")`。
|
|
18
|
+
4. 页面结构已明确且适合生成器时,从 PRD + `design.md` 派生当前业务自己的 `page-spec.json`。
|
|
19
|
+
5. `page-spec.json` 写 `sourceOfTruth`、`prdFile`、`designFile`、`designRefs` 和 `conflictPolicy: "prd-design-win"`。
|
|
20
|
+
6. 列表、看板、详情页优先读取真实表单数据,写 `dataBinding.mode=form`、真实 `appType/formUuid/fieldId` 和字段映射。
|
|
21
|
+
7. 没有真实数据时,页面展示空态、表单入口、刷新或登记按钮。
|
|
22
|
+
8. Code Canvas 用 `.canvas.jsx` / `.canvas.tsx`、`YidaComp`、页面生成器或 Canvas 本地快检。
|
|
23
|
+
9. 普通自定义页面用 `.oyd.jsx` / `.jsx`、`renderJsx()`、`openyida check-page` 和 `openyida compile`。
|
|
24
|
+
|
|
25
|
+
## 事实源修正
|
|
26
|
+
|
|
27
|
+
| 问题类型 | 修改位置 |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| 页面目标、业务对象、指标口径、主操作、表单入口、数据来源、空/载/错业务语义不足或错误 | 回写 `prd.md`,再重新派生 `page-spec.json` |
|
|
30
|
+
| 主题关系、token、视觉脚手架、背景、材质、圆角、密度、组件、状态或响应式规则不足或错误 | 回写 `design.md`,再重新派生 `page-spec.json` 或重读 `design.md` 实现 |
|
|
31
|
+
| `page-spec.json` 缺少 sourceOfTruth、design 指针、dataBinding,或与 PRD/design.md 不一致 | 丢弃并从最新 PRD + `design.md` 重生成 |
|
|
32
|
+
| PRD、design.md 和 spec 都完整,但源码有 className、布局比例、字段映射、响应式、loading/empty/error 或编译错误 | 小范围 patch 源码 |
|
|
33
|
+
|
|
34
|
+
## 产出
|
|
35
|
+
|
|
36
|
+
- 本轮修改过的页面源码路径;
|
|
37
|
+
- `page-spec.json` 或直接手写实现说明;
|
|
38
|
+
- 本地校验结果;
|
|
39
|
+
- dataBinding 状态。
|
|
40
|
+
|
|
41
|
+
## Checklist
|
|
42
|
+
|
|
43
|
+
- [ ] 页面实现已读取 PRD 和 `design.md`;
|
|
44
|
+
- [ ] 页面数据优先接真实表单;
|
|
45
|
+
- [ ] 页面源码没有 emoji 和裸中文 JSX 表达式;
|
|
46
|
+
- [ ] 本地校验通过,或已有明确错误和修复动作。
|
|
47
|
+
|
|
48
|
+
## 下一步
|
|
49
|
+
|
|
50
|
+
→ [Step 8:发布页面并排序导航](step-8-publish-navigation.md)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Step 8:发布页面并排序导航
|
|
2
|
+
|
|
3
|
+
发布本轮修改过的页面源码到真实 display 页面,并执行轻量导航排序。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- 本轮修改过的页面源码路径;
|
|
8
|
+
- 真实 `appType`;
|
|
9
|
+
- 主页面 display `formUuid`;
|
|
10
|
+
- PRD 中的导航顺序。
|
|
11
|
+
|
|
12
|
+
## 操作
|
|
13
|
+
|
|
14
|
+
1. 执行 `use_skill("yida-publish-page", "发布主页面")`。
|
|
15
|
+
2. 只要本轮 Write/Edit/Create 了 `project/pages/src/*.{canvas.jsx,canvas.tsx,oyd.jsx,jsx,tsx}`,final 前必须执行:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
openyida publish <source> <appType> <displayPageFormUuid> --auto-nav-order
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. `<source>` 使用本轮修改过的页面源码。
|
|
22
|
+
4. `<displayPageFormUuid>` 使用已解析的 display 自定义页面。
|
|
23
|
+
5. PRD 写明页面/表单清单顺序时,执行 `openyida nav-group order <appType> <页面/表单...>`。
|
|
24
|
+
6. PRD 缺少明确页面清单时,用 `--auto-nav-order` / `nav-group auto-order` 兜底。
|
|
25
|
+
7. 兜底顺序为:门户/首页/工作台入口、业务办理、数据管理、经营分析、系统配置。
|
|
26
|
+
|
|
27
|
+
## 产出
|
|
28
|
+
|
|
29
|
+
- 成功的 `openyida publish` 命令结果;
|
|
30
|
+
- 可访问主页面 URL;
|
|
31
|
+
- 导航排序结果或明确 warning。
|
|
32
|
+
|
|
33
|
+
## Checklist
|
|
34
|
+
|
|
35
|
+
- [ ] 发布 source 是本轮修改过的源码;
|
|
36
|
+
- [ ] 发布目标是已解析的 display 页面;
|
|
37
|
+
- [ ] 已获得可访问 URL;
|
|
38
|
+
- [ ] 导航排序已执行,或已有明确 warning。
|
|
39
|
+
|
|
40
|
+
## 下一步
|
|
41
|
+
|
|
42
|
+
→ [Step 9:输出与收尾](step-9-output-finish.md)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Step 9:输出与收尾
|
|
2
|
+
|
|
3
|
+
最终输出让用户先理解业务能力,再打开唯一主入口。内部 ID、构建产物和中间文件不作为交付结果。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
- 发布成功证据;
|
|
8
|
+
- 主入口 URL;
|
|
9
|
+
- 资源创建、复用、更新摘要;
|
|
10
|
+
- seed records 写入或跳过结果;
|
|
11
|
+
- 导航排序结果。
|
|
12
|
+
|
|
13
|
+
## 完成条件核对
|
|
14
|
+
|
|
15
|
+
完整应用默认完成需要同时满足:
|
|
16
|
+
|
|
17
|
+
1. 主页面发布成功;
|
|
18
|
+
2. 获得可访问 URL;
|
|
19
|
+
3. 轻量导航排序已执行,或给出明确 warning;
|
|
20
|
+
4. 新建或作为页面数据源的核心普通表单已写入 1-3 条真实示例记录并 query 抽查,或明确说明跳过原因;
|
|
21
|
+
5. 普通表单和流程表单已注入全局主题样式,详情页已注入 formDetail CSS,或明确说明无法注入的阻塞原因;
|
|
22
|
+
6. 未继续执行用户未要求的公开访问、截图验收、报表、大屏、数据源深接或精细导航分组。
|
|
23
|
+
|
|
24
|
+
若本轮修改过页面源码但没有成功执行 `openyida publish <source> <appType> <displayPageFormUuid>`,只能交付“源码已修改,尚未发布”的说明。
|
|
25
|
+
|
|
26
|
+
## 结果输出格式
|
|
27
|
+
|
|
28
|
+
- 先写 2-3 句业务交付总结,再给一个主入口链接。
|
|
29
|
+
- 新增、修改或发布单个具体页面时,主入口是当前页面 URL。
|
|
30
|
+
- 其他完整应用、建表单、建流程、权限、主题、导航或批量资源场景,主入口是应用首页 `{base_url}/{appType}/workbench`。
|
|
31
|
+
- 不默认输出资源 ID 表格、资源清单、长列表、appType、formUuid、pageId、reportId。
|
|
32
|
+
- 不默认输出 `/admin`、配置页、Schema 页、分享配置页等管理态链接。
|
|
33
|
+
- 不把 `g.alicdn.com` 的 `index.css`、`index.js`、`index.html`、`locales/*.json`、构建产物 URL、CDN 资源 URL 或中间文件链接当成最终结果展示。
|
|
34
|
+
|
|
35
|
+
推荐口径:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
已完成订单、客户和商品等核心业务表单,并发布首页、订单管理和库存看板等入口页面。当前应用已支持订单录入、库存预警、销售统计、表单提交入口和详情查看,示例记录、轻量导航排序、表单主题样式与表单详情样式也已就绪。
|
|
39
|
+
|
|
40
|
+
主入口:`{base_url}/{appType}/workbench`
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
只有用户明确要求排障、复盘资源 ID、迁移或复制配置时,才补充技术 ID。
|
|
44
|
+
|
|
45
|
+
## URL 规则
|
|
46
|
+
|
|
47
|
+
| 页面类型 | URL 格式 |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| 应用首页 | `{base_url}/{appType}/workbench` |
|
|
50
|
+
| 表单提交页(默认隐藏导航) | `{base_url}/{appType}/submission/{formUuid}?isRenderNav=false` |
|
|
51
|
+
| 自定义页面 | `{base_url}/{appType}/custom/{formUuid}` |
|
|
52
|
+
| 自定义页面(隐藏导航) | `{base_url}/{appType}/custom/{formUuid}?isRenderNav=false` |
|
|
53
|
+
| 表单详情页(抽屉/隐藏导航) | `{base_url}/{appType}/formDetail/{formUuid}?formInstId={formInstId}&navConfig.layout=1180&isRenderNav=false` |
|
|
54
|
+
| 表单详情页(编辑模式) | `{base_url}/{appType}/formDetail/{formUuid}?formInstId={formInstId}&mode=edit&navConfig.layout=1180&isRenderNav=false` |
|
|
55
|
+
|
|
56
|
+
## 可选后置
|
|
57
|
+
|
|
58
|
+
以下动作只在用户明确要求或 PRD 验收标准命中时追加:
|
|
59
|
+
|
|
60
|
+
| 可选项 | 子技能 | doneWhen |
|
|
61
|
+
| --- | --- | --- |
|
|
62
|
+
| 精细导航整理 | `use_skill("yida-nav-group", "整理应用导航分组")` | 主页面/核心表单顺序符合业务入口 |
|
|
63
|
+
| 数据桥深度接入 | `use_skill("yida-canvas-data-binding", "接入 Code Canvas 数据")` 或 `use_skill("yida-data-source-connectors", "绑定设计器数据源")` | 页面真实数据读写稳定,空态/错误态可恢复 |
|
|
64
|
+
| 报表/图表 | `use_skill("yida-report", "创建原生报表")`、`use_skill("yida-rechart", "创建 Recharts 页面")` 或 `use_skill("yida-chart", "创建 ECharts 页面")` | 报表或图表页面已创建/发布 |
|
|
65
|
+
| 公开访问 | `use_skill("yida-page-config", "配置页面公开访问")` | 分享配置保存成功 |
|
|
66
|
+
| 截图/人工验收 | 按当前工具能力 | 截图或用户确认通过 |
|
|
67
|
+
|
|
68
|
+
## 错误处理
|
|
69
|
+
|
|
70
|
+
- 不编造 `appType`、`formUuid`、`fieldId`、`reportId`。
|
|
71
|
+
- OpenYida CLI 失败时保留 stdout/stderr 诊断。
|
|
72
|
+
- 同一命令失败后,必须改变登录态、组织、参数、输入文件或字段 ID 后才能重试。
|
|
73
|
+
- corpId 与目标组织不一致时先停下,让用户选择重新登录或确认在当前组织继续。
|
|
74
|
+
- 输入 JSON/YAML/CSV/JSX 等业务文件必须用结构化文件写入工具创建。
|
|
75
|
+
- 用户要求删除应用时,必须展示应用名称、应用 ID、影响范围,并等待明确“确认删除”后才可执行。
|
|
76
|
+
|
|
77
|
+
## Checklist
|
|
78
|
+
|
|
79
|
+
- [ ] final 先写业务总结,再给唯一主入口;
|
|
80
|
+
- [ ] 未默认暴露资源 ID 或管理态链接;
|
|
81
|
+
- [ ] 未把 CDN 构建产物当作交付链接;
|
|
82
|
+
- [ ] 未执行用户未要求的可选后置动作。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yida-create-form-page
|
|
3
|
-
description: 表单页面创建与更新,默认加载 yida-form-detail 作为表单视觉引导,并合并 Divider 分割线语义分组;拿到 formUuid
|
|
3
|
+
description: 表单页面创建与更新,默认加载 yida-form-detail 作为表单视觉引导,并合并 Divider 分割线语义分组;拿到 formUuid 后必须注入表单全局主题和 formDetail CSS;支持 19 种业务字段和 Divider、ColumnContainer 等表单展示布局组件,PageSection/GroupContainer 仅少量特殊场景使用;支持联动规则和数据源绑定。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 表单页面创建与更新
|
|
@@ -30,6 +30,7 @@ description: 表单页面创建与更新,默认加载 yida-form-detail 作为
|
|
|
30
30
|
## 严格要求 (MUST DO)
|
|
31
31
|
|
|
32
32
|
- 表单页开发默认先加载 `yida-form-detail` 作为视觉引导和详情页样式默认注入策略,再由本技能落地字段 JSON;视觉引导必须和 `Divider` 分割线语义分组合并执行。
|
|
33
|
+
- 拿到或确认真实 `formUuid` 后,必须执行 `openyida form-detail-style check/apply/check`,最终确认 `globalThemeActionFound: true` 与 `formDetailStyleActionFound: true`;这是完整应用和表单更新的完成项,不是可选美化。
|
|
33
34
|
- create 成功后,将 formUuid 记录到 `.cache/<项目名>-schema.json`
|
|
34
35
|
- 完整应用生成场景中,create 成功并记录 formUuid 后,把核心普通表单交给 `yida-data-management` 默认写入 1-3 条业务化示例记录;不要在本技能里直接操作数据记录。
|
|
35
36
|
- update / add-option / bind-datasource / validation / rule 等字段级操作不要求先执行外部 `get-schema`;直接提交 compact JSON 或字段 label/fieldId,CLI 会内部读取 schema、定位字段,并在成功 JSON 中输出 compact `resolved`/`updatedProps` evidence。字段解析失败/歧义时按 `diagnostics[].candidates` 补 `tableLabel`、修正 label 或再执行一次 compact `get-schema`。
|
|
@@ -74,7 +75,7 @@ description: 表单页面创建与更新,默认加载 yida-form-detail 作为
|
|
|
74
75
|
- 全局 `--layout double`:只有用户明确要求“整个表单双列”时才使用;一般更推荐在字段 JSON 内用 `ColumnContainer` 做局部多列。
|
|
75
76
|
- 语义分组:按业务含义分段,不按字段数量平均分。常见分组包括“基本信息”“业务信息”“时间计划”“补充材料”“审批信息”。
|
|
76
77
|
- Divider 样式:默认 `bold-with-thin`;显式样式按 `bold-with-thin` → `double-color-trapezoid` → `left-dot-title` → `solid` / `dashed` / `thick` / `dotted` 优先级选择;门户/强分区场景可统一显式使用 `multi-parallelograms-end`。
|
|
77
|
-
- formDetail CSS
|
|
78
|
+
- 表单主题和 formDetail CSS 注入是表单保存后的必做动作,不是字段 JSON 本身的字段表达;新建表单在 Schema JS 中默认带上 `openyida:theme` 和 `openyidaThemeDidMount`,已有表单在 update/patch/rule/bind-datasource 保存前默认补齐,执行失败时必须说明阻塞原因。
|
|
78
79
|
|
|
79
80
|
推荐结构:
|
|
80
81
|
|
|
@@ -98,7 +99,7 @@ Divider > Field
|
|
|
98
99
|
|
|
99
100
|
## 表单全局主题规则
|
|
100
101
|
|
|
101
|
-
|
|
102
|
+
表单和流程表单必须和应用、自定义页面使用同一套主题 token。本技能只生成表单字段 JSON;OpenYida 在表单创建和保存时必须把 `style#yida-global-theme` 注入代码写入表单 JS。提交页必须在自身运行文档内注入该样式;详情页由同一个 `openyidaThemeDidMount` 判断 `formDetail` 后注入 `style#yida-form-detail-style`。自定义页面用抽屉 iframe 打开提交页或详情页时,还必须由 `FormOpenContainer` 在 iframe `onLoad` 后把父页面当前主题 tokens 同步到同源子文档,保证自定义页面、表单、详情页和应用主题色一致。
|
|
102
103
|
|
|
103
104
|
- 普通业务分组:`Divider` 标题跟随应用主题,下面直接接字段或 `ColumnContainer`
|
|
104
105
|
- 默认 `Divider` 不写颜色属性,或保持 `colorType: "theme"`
|
|
@@ -36,7 +36,7 @@ description: >
|
|
|
36
36
|
| 2 | [选择主题色和 token](workflow/step-2-theme-system.md) | 确定主色、辅助色、中性色、字体层级、组件基调和宜搭 token 作用域 | `themeProfile` |
|
|
37
37
|
| 3 | [规划页面和导航](workflow/step-3-information-architecture.md) | 规划首页/入口页、平台导航、页面清单、页面场景和表单/流程关系 | `appBlueprint` / 页面结构 |
|
|
38
38
|
| 4 | [页面结构和交互设计](workflow/step-4-wireframe-interaction.md) | 确定布局骨架、内容区块、主操作、联动、交互、PC/移动端差异 | 低保真结构 + 交互路径 |
|
|
39
|
-
| 5 | [UI 视觉和状态设计](workflow/step-5-visual-states.md) | 从业务任务、信息拓扑和视觉 DNA
|
|
39
|
+
| 5 | [UI 视觉和状态设计](workflow/step-5-visual-states.md) | 从业务任务、信息拓扑和视觉 DNA 选择设计风格,换主题色后生成应用级 `design.md` | `design.md` 内容草稿 |
|
|
40
40
|
| 6 | [写入 prd.md 和 design.md](workflow/step-6-handoff.md) | 汇总业务 PRD 与 `design.md` 视觉规则,分别写入 `prd.md` 和 `design.md` | `prd/<项目名>/prd.md` + `prd/<项目名>/design.md` |
|
|
41
41
|
|
|
42
42
|
> 进入标准流程后,从 Step 1 开始按顺序执行;每步开始前先读取对应步骤文件,每步形成产物后再进入下一步。Step 6 输出前核对 Step 1-5 的产物齐全,确保不跳步、不停在中间步骤。
|
|
@@ -60,15 +60,15 @@ description: >
|
|
|
60
60
|
默认浅底业务屏,只有用户明确说暗色/深色/夜间/高对比时才用深色沉浸。
|
|
61
61
|
11. **页面布局要到可实现粒度**:每个页面至少写清顶部/左侧/主体/右侧/底部区域、核心组件、信息密度、主操作位置、PC/移动端差异和空/载/错态。
|
|
62
62
|
12. **页面丰富度建议**:工作台、首页、门户、看板、展示页和业务入口页推荐规划 8-10 个有业务目的的区块以上,例如上下文标题、状态摘要、主操作、筛选、任务列表、最近记录、动态流、洞察、提醒、空态行动、右侧上下文和底部辅助信息。区块数量不是硬门槛,窄场景、单任务页面或用户明确要求精简时可以更少,但要写清每个区块的业务目的和取舍原因。计数按“区块组”算,不按子项算:`KPI 卡片: 学生总数, 课程总数, 出勤率, 平均分` 只能算 1 个状态摘要区块,`快捷入口: 录入学生/登记成绩/记录考勤/管理课程` 只能算 1 个动作区块;不能用重复 KPI 卡、重复快捷入口或大空白卡凑数量。
|
|
63
|
-
13.
|
|
63
|
+
13. **工作台禁低密大卡片套路**:工作台 / 业务首页不能用“标题 + 4 个等宽大 KPI 白卡 + 图标快捷卡 + 大空态白卡”撑首屏。默认改成紧凑状态摘要条、任务/动态列表、最近记录、右侧上下文面板和高频动作;没有真实数据时也展示薄空态行 + 登记入口,不铺大块空白卡片。
|
|
64
64
|
14. **默认圆润高密且有呼吸感**:业务工具页默认使用圆润形状、紧凑信息密度和清晰呼吸节奏。`design.md` 必须写清 `roundedRule`、`densityRule` 和 `breathingRule`:卡片 padding 必须大于 20px(默认 22-28px),卡片与卡片的 gap 必须小于 20px(默认 12-18px),卡片圆角范围 0-32px(业务卡片默认 20-24px),控件 10-14px,状态摘要 64-88px,动作条 40-56px,列表行 44-56px,空态 88-120px 内;页面边距、卡片 gap 和卡片 padding 要形成可扫读的分组节奏。呼吸感来自对齐、分组、层级和节奏,不来自额外 margin、超宽空 KPI 框或空白卡撑页面。
|
|
65
65
|
15. **背景与卡片必须有层次对比**:默认业务页背景保持浅色调、清爽但不能与卡片相近或相同。`design.md` 必须写清 `surfaceContrast`:白色/浅色背景配有边框卡片;浅灰背景(如 `#F3F4F6`)配白色无边框卡片;浅彩色背景(如浅蓝、浅暖灰)配白色无边框卡片;渐变背景配玻璃感卡片。禁止浅底白卡无边框、同色背景同色卡片或只有阴影没有色差/边框的层次。
|
|
66
|
-
16.
|
|
67
|
-
17. **应用主题先统领页面主色**:平台导航可见时,页面主按钮、链接、选中态、重点标签和图表主序列都跟随应用主题 `--color-brand1
|
|
68
|
-
18. **design.md 是全局设计契约**:完整应用只产出一份应用级 `design.md`,所有 display
|
|
66
|
+
16. **设计风格先选后定制**:Step 5 必须先从业务任务、信息拓扑和必需视觉 DNA 推演并选择唯一设计风格,再根据 Step 2 主题色换肤。主题色只换 token 和强调色,不改变风格 DNA、布局机制和组件机制;不得按行业或颜色直接套风格。
|
|
67
|
+
17. **应用主题先统领页面主色**:平台导航可见时,页面主按钮、链接、选中态、重点标签和图表主序列都跟随应用主题 `--color-brand1-*`;普通表单、流程表单、提交页、formDetail 详情页和自定义页面必须消费同一套主题 token。`design.md` 的色相只转成辅助色、浅背景、图表第二序列和装饰气质。页面级独立主色只用于隐藏平台导航、独立品牌/活动页或用户明确要求完全不同风格;独立主色必须通过 `style#yida-global-theme` 或 scoped CSS vars 注入。
|
|
68
|
+
18. **design.md 是全局设计契约**:完整应用只产出一份应用级 `design.md`,所有 display 页面、普通表单、流程表单、表单入口、formDetail 详情、列表、看板和工作台都必须遵守它;PRD 不再复制或二次抽象 `design.md`,只引用 `design.md` 的章节和规则。
|
|
69
69
|
19. **视觉设计规范只写 design.md**:`themeProfile`、tokens、`visualScaffold`、`backgroundLayer`、`surfaceMaterial`、`surfaceContrast`、`colorRoles`、`depthRule`、`roundedRule`、`densityRule`、`breathingRule`、组件形态、空态规则和响应式规则写入 `design.md`;PRD 只写业务目标、资源关系、区块目的、数据来源、主操作、应用主题色/风格摘要和 `designRefs`,摘要必须与 `design.md` 一致。
|
|
70
70
|
20. **实现交接必须结构化但保持薄**:每个 display 页面在 PRD 中输出 `pageSpecHandoff`,只写 `pageStructure`、`scene`、`contentBlocks`、`themeSummary`、`designFile=prd/<项目名>/design.md`、`designRefs`、数据来源和主操作;实现阶段必须读取 `prd.md` 与 `design.md` 后才能写页面。
|
|
71
|
-
21. **设计事实源唯一**:`prd.md` 写业务目标、资源、页面、数据来源、主操作和 `pageSpecHandoff`;`design.md` 写主题、布局、视觉脚手架、组件、图标、背景和状态规则。页面 `scene`
|
|
71
|
+
21. **设计事实源唯一**:`prd.md` 写业务目标、资源、页面、数据来源、主操作和 `pageSpecHandoff`;`design.md` 写主题、布局、视觉脚手架、组件、图标、背景和状态规则。页面 `scene` 只作为分类标签,不对应参考文件、固定样式文件或实现阶段读取入口。
|
|
72
72
|
22. **参考转成可执行选择**:参考 Dribbble / 优秀案例时,落到主色、背景素材、首屏构图、信息密度、动线、区块数量和反默认点。
|
|
73
73
|
23. **页面文案和图标使用专业表达**:渲染文案使用纯文本;图标只使用 `lucide-react` 或 `@ant-design/icons` 的具体组件,默认选择 `lucide-react`,并在 `design.md` 的 `iconSystem` 中写清业务动作、状态、导航和空态到图标组件的映射。emoji 不能改成 CSS 形状、字母占位、Unicode 符号或临时 SVG;如果需要图标,必须映射到上述两类库的具体组件。
|
|
74
74
|
24. **实现链路明确交接**:默认页面实现链路是 Code Canvas;常规业务图表使用 `yida-rechart`;ECharts 例外只用于用户明确要求复杂 ECharts option 或维护旧图表。
|
|
@@ -83,15 +83,15 @@ description: >
|
|
|
83
83
|
| [Step 2:选择主题色和 token](workflow/step-2-theme-system.md) | 主题 token、色彩、字体、组件基调 | 涉及主题或视觉 |
|
|
84
84
|
| [Step 3:规划页面和导航](workflow/step-3-information-architecture.md) | 首页/入口页、导航、页面清单、页面场景 | 应用级或单页设计 |
|
|
85
85
|
| [Step 4:页面结构和交互设计](workflow/step-4-wireframe-interaction.md) | 布局骨架、内容区块、主操作、抽屉、响应式 | 页面设计 |
|
|
86
|
-
| [Step 5:UI 视觉和状态设计](workflow/step-5-visual-states.md) |
|
|
86
|
+
| [Step 5:UI 视觉和状态设计](workflow/step-5-visual-states.md) | 设计风格选择、视觉 DNA、主题换肤、素材图标、空/载/错态、去 AI 味 | 输出前自检 |
|
|
87
87
|
| [Step 6:写入 prd.md 和 design.md](workflow/step-6-handoff.md) | `prd.md` + `design.md` 必填内容、三种顺序、实现交接 | 输出前 |
|
|
88
88
|
| [page-design 单页设计](sub_skill/page-design/SKILL.md) | 单页主题证据、页面级设计流程、输出补充字段 | 单个自定义页设计 |
|
|
89
89
|
| [PRD 输出格式](workflow/output-prd.md) | `prd.md` 字段示例 | Step 6 输出前 |
|
|
90
90
|
| [design.md 输出格式](workflow/output-design.md) | `design.md` 字段示例 | Step 6 输出前 |
|
|
91
|
-
| [design.md 生成规则](references/style-design-selection.md) | 从业务推演视觉 DNA
|
|
91
|
+
| [design.md 生成规则](references/style-design-selection.md) | 从业务推演视觉 DNA,选择设计风格并按主题色换肤,生成应用级 `design.md` | Step 5 |
|
|
92
92
|
| [视觉脚手架配方库](references/visual-scaffold-recipes.md) | 将高质量页面结构转成 `visualScaffold` 槽位,约束页面实现落地 | Step 5 |
|
|
93
93
|
| [页面质量门禁](references/page-quality-gates.md) | 区块数量、源码槽位、低密大卡片、主题一致性和 `pageSpecHandoff` 检查 | Step 4-6 输出前 |
|
|
94
|
-
| [style-design
|
|
94
|
+
| [style-design 风格注册表](references/style-designs/registry.md) | 内置视觉 DNA 风格、选择评分、风险扣分、风格消费规则 | Step 5 |
|
|
95
95
|
| [应用结构参考](references/app/blueprint.md) | 应用角色、导航、页面清单、页面/表单/流程资源蓝图 | 完整应用或主页面 |
|
|
96
96
|
| [应用主题与 token 参考](references/theme/theme-token-presets.md) | 平台主题 key、候选主题、token profile | 需要主题 key 或 token |
|
|
97
97
|
| [Canvas 样式实现指南](../yida-canvas-custom-page/references/canvas-style-implementation-guide.md) | 将 `design.md` 的 token、背景、圆角、密度和组件规则落到 Code Canvas、antd、CSS、图表和控件状态 | 实现阶段 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 页面质量门禁
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文件为完整应用的页面结构、视觉设计和最终交付提供自检门禁。页面设计必须先通过这些门禁,再交给实现阶段。PRD 负责业务结构、应用主题色和风格摘要,`design.md` 负责完整 UI 设计规则;不要把 `design.md` 内容复制进 PRD。
|
|
4
4
|
|
|
5
5
|
## 1. 区块丰富度建议
|
|
6
6
|
|