Review TDesign Flutter 组件的公开 Demo、API 收敛、Flutter 设计模式、主题、测试和 Golden 证据。以小程序公开 Demo 作为可见效果参考,但不机械映射其 props/events;适用于组件对齐和 PR Review。
日本語の概要は準備中です。原文の説明を表示しています。
TDesign Flutter 通用协作约定,适用于仓库开发和 PR 工作,涵盖 Spec、更新日志、公开契约、生成产物、双版本及 CI 登记。组件对齐由 Review skill 补充,CNB 平台限制见仓库协作说明。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
本文档面向所有在本仓库工作的 AI 助手(通用 Codex / Cursor,以及 CNB 平台 NPC),提供平台无关的协作约定提炼。通用规范的唯一事实来源是 CONTRIBUTING.md 与 specs/README.md,本文只做面向 AI 的落地提炼。
Skills 按职责补充规范:本 skill 管通用协作与 CI 登记;tdesign-component-align-review 管 Demo、API、Theme 与验收证据。CNB 静态约定见 .cnb/CONTRIBUTING.md,按该文档的适用范围读取,不作为通用 skill 加载。遇到冲突先核对规范本体与用户当前要求,不通过叠加规则扩大任务范围。
「是否需要 Spec」与「是否需要更新日志」是两件独立的事,由两套不同标准触发,不能互相推导:
两轴交叉即四种情况(完整细则见 CONTRIBUTING.md「PR 更新日志规范」):
| 用户是否可感知 ↓ | 可感知 | 无感 |
|---|---|---|
| 复杂需求 / 公共契约变更 / 组件重构 / 跨目录改动(需 Spec) | 两者都要 | 只要 Spec、不写日志 |
| 简单局部修复 / 文案 / 格式等(无需完整 Spec) | 只要日志 | 两者都不需要 |
最容易出错:把"勾选「本条 PR 不需要纳入 Changelog」"等同于"不需要 Spec"——这是错误的。行为不变的纯内部重构(用户无感、不写日志)仍属于组件修改,需要 Spec(Review 结合实际改动判定,属于重构)。
PR 标题遵循 Conventional Commits:type(scope): 描述;分支及平台约定按 AGENTS.md 的入口读取。
PR 正文完整保留 .github/PULL_REQUEST_TEMPLATE.md 原模板结构(所有勾选项含未选 [ ]、所有 HTML 注释原样保留),只打勾 / 填写,不删减。
生成组件 PR 的 Changelog 时,组件与 Demo 同改只保留组件行为条目;Demo 配套改动写在「需求背景和解决方案」并勾选对应 PR 性质。完整边界及独立交付例外见 CONTRIBUTING.md「PR 更新日志规范」。
更新日志条目遵循 Conventional Commits 的 commit type,与最终分组固定对应(完整见 CONTRIBUTING.md):
| commit type | 最终分组 | 示例 |
|---|---|---|
breaking | Breaking Changes | breaking(toast): 调整 xxx 默认行为 |
feat | Features | feat(TButton): 新增渐变背景能力 |
fix | Bug Fixes | fix(TInput): 修复密文模式下无法粘贴的问题 |
perf、refactor | Performance | refactor(toast): 优化 xxx |
docs | Documentation | docs: 更新主题生成器文档 |
其他(chore 等) | Others | chore: 升级依赖 |
Breaking change 一律用 breaking commit type(如 - breaking(toast): 调整 xxx 默认行为),自动归入 Breaking Changes 分组。
tdesign-component/CHANGELOG.md 由 CLI 自动生成,无需人工维护。
第一节判定需要 Spec 后,按 specs/README.md 创建或更新对应 specs/<编号>-<短名称>/(spec / plan / tasks / acceptance);提交代码须与 Spec 行为契约一致,方案变更先更新 Spec 再改代码,并在 PR 附对应目录链接。
同时兼容 flutter@3.32.0 与 flutter@latest(stable 最新版)。改动时确认所用 API 在两版本均可用且行为一致,避免 low 版不可用 / high 版已移除;结论中标注对两版本的兼容性影响。
| 文档载体 | 职责 | 何时维护 |
|---|---|---|
dartdoc 注释(///) | 组件公开 API 的用户文档 | 新增 / 修改公开 API 时必须同步 |
| Spec | 复杂需求 / 重构的设计文档 | 见「何时创建 Spec / 何时写更新日志」一节,先 Spec 后代码 |
| PR 更新日志 | 面向使用方用户的变更说明 | 见「何时创建 Spec / 何时写更新日志」一节,只写用户可感知的变更 |
| CHANGELOG.md | 由 CLI 自动生成 | 不手动编辑 |
| CONTRIBUTING.md / specs/README.md | 规范唯一事实来源 | 需引用时统一指向 |
公开字段 / 参数 / 回调 / 枚举 / 类的 /// 注释要写清"是什么、默认值、生效条件、三态语义、与相关字段关系",注释必须与实现一致。
本仓库的 API 文档、示例代码片段、README 副本 均由脚本从源码生成,.github/workflows/autofix.yml 会在 PR 时自动运行这些脚本并提交修正,因此贡献者(人类)无需手动关注 / 运行它们。但 AI 助手需要理解每个脚本具体做什么,以便在改动相关源文件时知道哪些产物是自动生成的、是否需要手动运行或校验:
sh ./demo_tool/all_build.sh(等价 node tool/generate_api.mjs,manifest 驱动),从组件 API 生成 example/assets/api/<component>_api.md;新增 / 迁移组件时先更新 tool/components.json。改动设计 / 组件 API 时该产物会随之变化。dart run tool/generate_example_code.dart,从带 @ExampleCode 注解的示例方法生成 example/assets/code/*.txt;CI 用 --check 校验片段与源码同步。改动示例方法时该产物会随之变化。node scripts/sync-readme.mjs,把根目录 README.md / README_zh_CN.md 同步到 tdesign-component/README*.md;站点 site/docs/migration-0.2.7-to-1.0.md 是迁移正文源,生成包内 MIGRATION.md。站点快速开始独立维护,不再由 README 生成;--check 只检查同步状态,不写文件。自动生成与本地验收不是同一件事:贡献者无需手工维护产物;组件对齐任务需要核对示例时,按 Review skill 校验生成片段,变化只能来自源文件,不能直接修改产物。
生成能力来自独立工具仓库时,工具改动与组件改动分别交付;消费仓库不得长期引用工具 PR 分支或临时提交。先让所需工具版本进入消费仓库声明的正式 ref,再在组件最终源码上重新解析依赖、生成并校验产物。工具合并前启动的 CI 仍可能解析到旧版本,不能用稍后发生的工具合并推定该次运行已经生效。
autofix 成功只表示自动修改流程执行成功,不表示提交前的生成产物正确或保持不变。每次 autofix 后读取最新 head 和自动提交 diff,确认没有删除公开 API、回退示例或引入范围外产物;若自动提交改变 head,后续 CI、Review 和合并结论均以新 head 为准。
仓库使用集中式回归调度器,新增组件或为既有组件新增测试时,须按 CONTRIBUTING.md「组件测试与 CI 回归门禁」登记:
tool/run_component_regression.dart 的 componentTestSuites;tool/check_component_coverage.dart 的 componentTargets,手写生产 Dart 行覆盖率 LH/LF >= 95%;tool/run_visual_regression.dart 的 visualTestSuites。执行环境与两类测试的分流要求见 Review skill 第 5 节;不得用视觉入口代替功能入口。测试文件存在、Golden 已提交或本地单独运行通过,不代表 CI 已执行;必须读取 CI 实际入口并确认测试已被调度。
提交前运行 flutter analyze --fatal-infos,要求无诊断问题。能用 const 必须 const、优先 final、避免 lambda 替代 tear-off,并遵循当前 analysis_options.yaml;CI 配置仅证明已设门禁,是否通过需读取实际运行结果。
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Review TDesign Flutter 组件的公开 Demo、API 收敛、Flutter 设计模式、主题、测试和 Golden 证据。以小程序公开 Demo 作为可见效果参考,但不机械映射其 props/events;适用于组件对齐和 PR Review。
日本語の概要は準備中です。原文の説明を表示しています。