文档
研发与贡献指南
整理自仓库根目录的 AGENTS.md。包管理器版本以 packageManager(pnpm 11.17.0)为准,命令均在仓库根目录执行。
开始任务
- 运行
git status --short,保留已有改动;读取 package.json、目标模块与测试。 - 确认目录职责,搜索真实定义、同类实现、调用方、类型与公开导出。
- 用简短说明明确目标、修改范围和验收场景。
- 按“实现 → 直接调用方 → 测试”展开。
修改边界
- 行为优先复用 headless 的公开 API,不在主题组件重复状态机、焦点或浮层能力。
- 复用已有 Token、CVA 变体和状态;样式限制在目标组件,不改全局样式,不引入旧的
--selrux-ui-变量。 - 不臆造包根聚合导出;公开子路径以 package.json 为准。
验证
bash
# 定向测试
pnpm exec vitest run --config vitest.config.ts src/components/button/button.test.tsx
# 行为变更
pnpm test
pnpm typecheck
# 导出、类型、CSS 或产物变化
pnpm build按影响验证受控/非受控、禁用、加载、空态、错误态、键盘、焦点和可访问名称。测试放在 src/**/*.test.ts(x),tests/fixtures 只放夹具。
编码约定
- 单一职责;入口编排、实现、类型与工具分离。
- 新增函数、组件、类型同步职责注释;公开 API 使用 JSDoc/TSDoc。
- 缺陷修复先复现,再补回归验证;重构保持公开行为不变。
- 不新增无关依赖,生成物通过已有脚本生成。
依赖与发布
- 本库独立维护版本与锁文件,消费已发布的产品包;不使用
workspace:、file:或永久link:。 - 调试发布使用唯一预发布版本和
dev标签,不覆盖版本、不更新latest。 - 正式发布和安装验收使用
https://registry.npmjs.org/。 - 提交、推送、正式发布按授权分别执行。
提交信息
历史提交采用 feat: / fix: / refactor: / chore(scope): / docs(scope): 前缀,早期提交在括号中标注工作区版本号。问题与建议请提交到 GitHub Issues。