openyida 2026.7.7 → 2026.7.8
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 +4 -2
- package/bin/yida.js +4 -4
- package/lib/app/canvas-compile.js +303 -0
- package/lib/app/publish.js +190 -39
- package/lib/auth/auth.js +11 -3
- package/lib/auth/login.js +34 -15
- package/lib/core/command-manifest.js +1 -1
- package/lib/core/env.js +19 -4
- package/lib/core/locales/ar.js +6 -2
- package/lib/core/locales/de.js +6 -2
- package/lib/core/locales/en.js +7 -3
- package/lib/core/locales/es.js +6 -2
- package/lib/core/locales/fr.js +6 -2
- package/lib/core/locales/hi.js +6 -2
- package/lib/core/locales/ja.js +7 -3
- package/lib/core/locales/ko.js +6 -2
- package/lib/core/locales/pt.js +6 -2
- package/lib/core/locales/vi.js +6 -2
- package/lib/core/locales/zh-HK.js +7 -3
- package/lib/core/locales/zh.js +7 -3
- package/lib/core/utils.js +195 -15
- package/lib/samples/yida-custom-page/custom-page-template.js +6 -6
- package/lib/samples/yida-custom-page/design-tokens.js +14 -12
- package/package.json +1 -1
- package/scripts/e2e-real/skill-coverage.js +4 -0
- package/scripts/validate-ci.sh +6 -0
- package/scripts/validate-package-size.js +12 -1
- package/yida-skills/SKILL.md +19 -5
- package/yida-skills/references/development-rules.md +2 -2
- package/yida-skills/references/field-and-url-reference.md +14 -1
- package/yida-skills/skills/yida-app/SKILL.md +3 -2
- package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +113 -0
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-authoring-examples.md +163 -0
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-design-system.md +148 -0
- package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +115 -0
- package/yida-skills/skills/yida-canvas-custom-page/references/dependencies-and-cdn.md +45 -0
- package/yida-skills/skills/yida-canvas-custom-page/references/employeefield-verification.md +68 -0
- package/yida-skills/skills/yida-canvas-upgrade/SKILL.md +99 -0
- package/yida-skills/skills/yida-canvas-upgrade/references/migration-examples.md +69 -0
- package/yida-skills/skills/yida-custom-page/SKILL.md +7 -2
- package/yida-skills/skills/yida-custom-page/examples/attachment-upload.js +1 -1
- package/yida-skills/skills/yida-custom-page/references/coding-guide.md +3 -3
- package/yida-skills/skills/yida-custom-page/references/component-jsx-guide.md +3 -2
- package/yida-skills/skills/yida-custom-page/references/design-system.md +30 -13
- package/yida-skills/skills/yida-nav-shell/SKILL.md +119 -0
- package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +302 -0
- package/yida-skills/skills/yida-page-config/SKILL.md +1 -0
- package/yida-skills/skills/yida-page-uiux/SKILL.md +68 -0
- package/yida-skills/skills/yida-page-uiux/references/scenes/dashboard.md +128 -0
- package/yida-skills/skills/yida-page-uiux/references/scenes/detail.md +79 -0
- package/yida-skills/skills/yida-page-uiux/references/scenes/landing.md +101 -0
- package/yida-skills/skills/yida-page-uiux/references/scenes/list.md +78 -0
- package/yida-skills/skills/yida-page-uiux/references/scenes/workbench.md +74 -0
- package/yida-skills/skills/yida-page-uiux/references/visual-decision-engine.md +151 -0
- package/yida-skills/skills/yida-page-uiux/workflow/output-decision-block.md +36 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-0-nav-shape.md +39 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-1-page-type.md +25 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-2-intent-decode.md +25 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-3-scene-routing.md +29 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-4-visual-decision.md +32 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-5-icon-and-assets.md +36 -0
- package/yida-skills/skills/yida-page-uiux/workflow/step-6-deai-selfcheck.md +37 -0
- package/yida-skills/skills/yida-publish-page/SKILL.md +7 -3
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Step 6:去 AI 味自检
|
|
2
|
+
|
|
3
|
+
> 逐条扫「去 AI 味黑名单」+「8 问自检」,任一命中即回对应 Step 修正,**不要走过场式打勾**。
|
|
4
|
+
|
|
5
|
+
## 去 AI 味黑名单(宜搭版,逐条核对)
|
|
6
|
+
|
|
7
|
+
> 蒸馏自 `ai-app-detail` 的 anti-pattern 清单,剔除与宜搭 FATAL 编码规则重复的部分,只留视觉方向红线。命中任何一条即修正。
|
|
8
|
+
|
|
9
|
+
> 🚫 **第一红线 · 严禁 emoji(FATAL)**:页面渲染出来的**任何位置**——标题、按钮、标签、状态、空态文案、图表标题、KPI 说明、tab、菜单——**一律禁止出现 emoji**(😀🚀✅⚠️📦📊🎯💡🔥 等一切彩色符号字符),JS 注释里也不要留装饰性符号(←→✓ 等)。需要图标 → 功能性内联 SVG;需要状态标记 → 文字 + 语义色标签。emoji 是最容易被一眼识别的 AI 味来源,且跨端渲染不一致。生成后**必须扫一遍**确认零 emoji 再交付。
|
|
10
|
+
|
|
11
|
+
- ❌ **AI 万能配色**:禁蓝紫科技渐变、禁白底紫色渐变当默认底色(除非业务本身是科技/AI 产品)。主色已由平台品牌变量固定,别再叠一层通用渐变。
|
|
12
|
+
- ❌ **彩色发光 / 光晕阴影**:禁彩色 `box-shadow`、大范围模糊发光、多层叠加光晕、半透明彩色 blob 背景。阴影只用于建立层级,颜色从背景偏暗推导。
|
|
13
|
+
- ❌ **渐变文字**:禁 `background-clip: text` 式彩色渐变标题。
|
|
14
|
+
- ❌ **无差别圆角堆叠**:禁全页所有元素统一一个圆角、无锐角/层级对比的卡片网格平铺。圆角要有性格且分层级(见 `design-system.md` 圆角系统)。
|
|
15
|
+
- ❌ **装饰性图标**:禁每个 section/卡片标题前配线性图标(见 [Step 5 图标纪律](step-5-icon-and-assets.md))。
|
|
16
|
+
- ❌ **对称平铺**:禁信息块等宽等高、完美网格对称。排版要有主次轻重,KPI/入口/内容都要有焦点,不平均分配。
|
|
17
|
+
- ❌ **Section 复制粘贴**:landing/官网类禁连续多个 section 使用同一种构图(左文右图、三卡片、四宫格一路排到底)。每个 section 要有自己的构图任务和视觉锚点。
|
|
18
|
+
- ❌ **裸数字看板**:dashboard 中 KPI、坐标轴、tooltip、表格数值、洞察文案不得直接输出 `12345678` 这类裸数字,必须有单位、量级、正负号/百分比和业务含义。
|
|
19
|
+
- ❌ **AI 万能文案**:禁「精心打造 / 匠心独运 / 极致体验 / 赋能 / 一站式」等放到任何产品上都成立的空话。标题/文案要具体到这个业务对象。
|
|
20
|
+
- ❌ **emoji(严禁 · 见上方第一红线)**:页面任何位置都不得出现 emoji,不当图标、不当装饰、不当状态标记;JS 注释也不留装饰符号。
|
|
21
|
+
- ❌ **无情境通用设计**:禁做「放到任何应用上都成立、追溯不到具体业务」的设计。每个视觉决策都要能追溯到 Step 2 的气质关键词和业务原则。
|
|
22
|
+
|
|
23
|
+
## 8 问自检(内部质量关卡,诚实回答,任一为「否」即回对应 Step)
|
|
24
|
+
|
|
25
|
+
1. **替换测试**:把业务名换成完全不同的行业(进销存→医院排班),这套方向还成立吗?成立说明没有情境特征 → 回 Step 2 重定原则。
|
|
26
|
+
2. **截图盲测**:把这页扔进一堆 AI 生成的宜搭页里,能一眼挑出来吗?说得出是哪个具体元素让它不同吗?说不出 → 回 Step 4 重选装饰母题。
|
|
27
|
+
3. **黑名单逐条扫**:回到上面 9 条黑名单逐条对照,重点扫配色/发光阴影/装饰图标/万能文案。命中即改。
|
|
28
|
+
4. **反默认维度数**:Step 4 的 5 个维度里,与「默认泛滥组合」不同的是否 ≥ 3 个?不足 → 回引擎替换差异最少的那一维。
|
|
29
|
+
5. **焦点唯一性**:这页的视觉焦点是否唯一且符合场景(workbench=指标+入口 / dashboard=关键 KPI / list=数据表 / detail=主对象 / landing=品牌或产品主张)?是否所有元素抢一样的注意力?
|
|
30
|
+
6. **配色可溯源**:辅助/强调色、中性冷暖偏色能说清是从哪个气质关键词推导的吗?说不清 = 在套通用配色 → 回 Step 4。
|
|
31
|
+
7. **移动端通读**:按手机竖屏从上到下读一遍,节奏是否连贯?是否有连续三块以上相同布局的单调段?(宜搭必须用 `isMobile` 做响应式)
|
|
32
|
+
8. **未越界**:决策块是否只讲方向、没写 JSX 代码?是否没有手写表单控件(表单归原生)?是否不与 `yida-custom-page` 的 FATAL 规则冲突?
|
|
33
|
+
9. **场景专项**:landing 是否有 section 构图差异和素材锚点?dashboard 是否有 Shell/Archetype、数值格式化和数据洞察落点?缺任一项则回 Step 3/4 修正。
|
|
34
|
+
|
|
35
|
+
## 下一步
|
|
36
|
+
|
|
37
|
+
自检全过 → [输出视觉方向决策块](output-decision-block.md)
|
|
@@ -15,7 +15,7 @@ description: 将 JSX 源码编译发布到宜搭自定义页面。Babel 转 ES5
|
|
|
15
15
|
## 严格要求 (MUST DO)
|
|
16
16
|
|
|
17
17
|
- 发布前确认 JSX 源码已通过 `yida-custom-page` 规范编写
|
|
18
|
-
- 发布前优先执行 `openyida check-page <源文件路径>` 和 `openyida compile <源文件路径>`;`.oyd.jsx` 会先自动构建为宜搭兼容源码,再执行 lint/Babel/UglifyJS
|
|
18
|
+
- native `.oyd.jsx` / `.jsx` 发布前优先执行 `openyida check-page <源文件路径>` 和 `openyida compile <源文件路径>`;`.oyd.jsx` 会先自动构建为宜搭兼容源码,再执行 lint/Babel/UglifyJS。Code Canvas `.canvas.jsx` 不走这两个 native 检查命令,发布时由 `openyida publish <源文件> ...` 的 Canvas 编译阶段校验 `runtimeCode + importedModules`。
|
|
19
19
|
- 推荐源码放在 `project/pages/src/<页面名>.oyd.jsx`;编译器会把兼容产物写到 `project/pages/build/<页面名>.yida.jsx`,最终发布产物写到 `project/pages/dist/<页面名>.yida.js`
|
|
20
20
|
- 发布前注意 CLI 会检查 `<workspace>/project/pages/src/` 与 `<workspace>/projects/<id>/artifacts/` 中同名源码是否内容不一致;出现警告时必须确认实际要发布哪一份
|
|
21
21
|
- 发布前确认 `openyida env` 检测通过,登录态有效
|
|
@@ -43,15 +43,19 @@ description: 将 JSX 源码编译发布到宜搭自定义页面。Babel 转 ES5
|
|
|
43
43
|
## 命令
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
openyida publish <源文件路径> <appType> <formUuid> [--compat] [--health-check] [--force]
|
|
46
|
+
openyida publish <源文件路径> <appType> <formUuid> [--compat] [--canvas] [--health-check] [--force]
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
> 本技能覆盖 **native `.oyd.jsx`/`.jsx`** 链路(Babel + UglifyJS + `Jsx` 组件 Schema)。**Code Canvas 页面**走另一条链路:源码写成 `.canvas.jsx` 时 `openyida publish` 会自动**本地用 Babel 编译**、生成 `YidaCodeCanvas` Schema;从零写或迁移 Canvas 页见 `yida-canvas-custom-page` / `yida-canvas-upgrade`。
|
|
50
|
+
> 注意:`openyida check-page` / `openyida compile` 当前是 native 页面检查器,不适合作为 `.canvas.jsx` 的预检;Canvas 预检以 `publish` 的「编译 Code Canvas 源码」阶段为准。
|
|
51
|
+
|
|
49
52
|
| 参数 | 必填 | 说明 |
|
|
50
53
|
|------|------|------|
|
|
51
|
-
| `源文件路径` | 是 | JSX 源码路径,推荐 `project/pages/src/my-page.oyd.jsx` |
|
|
54
|
+
| `源文件路径` | 是 | JSX 源码路径,推荐 `project/pages/src/my-page.oyd.jsx`;`.canvas.jsx` 会自动走 Code Canvas 链路 |
|
|
52
55
|
| `appType` | 是 | 应用 ID |
|
|
53
56
|
| `formUuid` | 是 | 自定义页面 ID,必须是 `openyida list-forms <appType>` 返回的 `formType=display` 目标,不要使用数据底表或流程表单 ID |
|
|
54
57
|
| `--compat` / `--modern` | 否 | 对普通 `.jsx` 也强制启用 OpenYida 兼容构建;`.oyd.jsx` 默认自动启用 |
|
|
58
|
+
| `--canvas` | 否 | 显式走 Code Canvas 链路(本地 Babel 编译 + `YidaCodeCanvas` Schema);`.canvas.jsx` 扩展名已自动启用,仅当扩展名不规范但确为 Canvas 源码时需要 |
|
|
55
59
|
| `--health-check` | 否 | 发布成功后请求页面 URL,回显 HTTP 健康检查结果,避免只看到 200 接口返回但首屏坏掉 |
|
|
56
60
|
| `--force` | 否 | 显式绕过发布目标类型保护;只有确认目标是自定义页面但导航接口暂时无法识别时才使用 |
|
|
57
61
|
|