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。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.