- 本文件是当前项目的高优先级协作约束。
- 若用户明确指令与本文件冲突,以用户最新明确指令为准。
- 不要在未获明确要求时自动提交、推送、创建 PR 或修改 Git 历史。
- 每次编码完成后不要自动执行
git commit。 - 只有当用户明确要求“提交代码”时,才允许提交。
- 提交必须使用当前项目的 commitlint 约束:
- 优先使用
pnpm commit。 - 提交前先用
printf '<commit message>\n' | pnpm exec commitlint校验提交信息。 - 提交信息使用 Conventional Commits,例如
feat: ...、fix: ...、chore: ...。
- 优先使用
- 不要提交
node_modules、本地缓存、临时文件或未确认的生成物。 - 不要执行
git reset --hard、git checkout --、强制推送等破坏性操作,除非用户明确要求并确认。
- 每个需求都必须基于项目本地
spec-kit流程推进:先判断是正式 spec、轻量 spec,还是更新既有 spec,再进入实现或回答。 - 正式 spec 默认写入
docs/spec-kit/YYYY-MM-DD-<short-topic>.md;跟进需求优先更新同一份 spec,不为同一功能重复创建文档。 - 低风险说明、状态检查、提交信息建议、单文件文档措辞等可使用轻量 spec,在回复或进度说明中明确目标和验证方式即可。
- 开始任务前先使用 Superpowers 工作流进行拆解、规划和验证。
- 开始任务前先检查并使用适用 skill,尤其是:
using-superpowersspec-kitbrainstormingwriting-planstest-driven-developmentsystematic-debuggingverification-before-completionrequesting-code-review
- 对 Vue、Vite、Vitest、pnpm、Electron Forge、Tailwind、可访问性等任务,优先使用项目内
.codex/skills/中对应 skills。 - 复杂需求应拆成可验证任务;存在 2 个以上可并行的独立任务时,优先使用子智能体执行和复核。
- 如果当前环境没有可用子智能体能力,则以内联方式执行,但保留任务拆解、验证和复核步骤。
- 编码前先理解现有结构,遵循当前项目模式,不做无关重构。
- 新功能或 bugfix 应优先采用 TDD:先写能失败的测试或检查,再实现。
- 编码后的自动化验证必须使用当前项目工具:
- ESLint:
pnpm -r --if-present run lint - Prettier:
pnpm exec prettier --check . - 测试:优先运行相关包的
test:run,必要时运行pnpm -r --if-present run test:run - Commitlint:提交前校验提交信息
- ESLint:
- 不要用
pnpm -r --if-present run format作为纯验证命令,因为它会改写文件;只有在明确需要格式化时才运行。 - 如果验证失败,先定位根因,不要盲目修复。
- 当前项目是
pnpmmonorepo。 - 桌面端位于
apps/desktop,使用 Electron Forge + Vite + Vue 3。 - 服务端位于
apps/server,保留 Next.js 结构。 - 包管理使用
pnpm,不要混用npm install、yarn或其他包管理器。 - 依赖变更必须更新并提交
pnpm-lock.yaml。 - 需要联网安装依赖或访问外部资源时,先说明原因并按权限流程请求授权。
- 修改前检查
git status --short,识别用户已有改动。 - 不要覆盖、回滚或删除非本次任务产生的用户改动。
- 只编辑当前需求相关文件。
- 对生成目录、缓存和临时文件保持谨慎,提交前确认暂存区内容。