多语言与前后端工程规范
优先执行仓库中可自动验证的规范,再按任务加载语言、数据格式和工程职责规则。将修改限制在任务范围内,同时验证行为正确性与代码风格。
加载适用规则
始终阅读 references/core-engineering.md。然后仅加载与当前文件和行为相关的规则。
编程语言
- Java:读取 references/java.md
- C++:读取 references/cpp.md
- C#:读取 references/csharp.md
- Go:读取 references/go.md
- Objective-C:读取 references/objective-c.md
- Swift:读取 references/swift.md
- Kotlin:读取 references/kotlin.md
- Dart:读取 references/dart.md
- Python:读取 references/python.md
- Shell/Bash:读取 references/shell.md
- R:读取 references/r.md
- Common Lisp:读取 references/common-lisp.md
- Vim script:读取 references/vim-script.md
- JavaScript:读取 references/javascript.md
- TypeScript:读取 references/typescript.md
标记、样式与数据格式
- HTML/CSS/Sass:读取 references/html-css.md
- JSON/JSONC:读取 references/json.md
- XML:读取 references/xml.md
- Markdown:读取 references/markdown.md
框架与工程职责
- AngularJS 1.x:同时读取 references/angularjs.md、references/javascript.md 和 references/frontend-engineering.md。
- 浏览器 UI、组件、路由、前端状态、数据获取、资源构建、可访问性或 Web 性能:读取 references/frontend-engineering.md。
- 服务端 API、认证授权、持久化、事务、缓存、消息、后台任务、外部集成或可观测性:读取 references/backend-engineering.md。
- 全栈任务:同时读取前端和后端工程规则,但各自只应用于所属边界。
- 需要核对来源、处理未支持语言或确认规范是否更新:读取 references/sources.md。
根据代码职责而不是语言判断前后端。TypeScript 可用于服务端,Java、Kotlin 或 Dart 也不必然是后端。涉及多种语言或格式时,加载所有相关规则,不加载无关内容。
执行流程
- 编辑前检查仓库指令、格式化器、静态检查器、编译配置、构建文件、相邻代码和测试。
- 确认语言版本、运行时约束、公共兼容边界、生成代码边界和风险区域。
- 按以下优先级解决规则冲突:
- 用户明确要求和仓库指令;
- 格式化器、静态检查器、编译器和 CI 配置;
- 不影响正确性或安全性的现有局部约定;
- 本 Skill 中对应的语言和工程规则。
- 实现最小且完整的改动,不要顺带格式化或现代化无关文件。
- 除非任务明确要求改变,否则保持行为和兼容性;为改变的行为新增或更新测试。
- 依次运行范围最小且相关的格式化、静态检查、测试和构建命令,并根据风险扩大验证范围。
- 报告已运行的检查、未能运行的检查,以及任何有意偏离规范之处。
一致运用判断
- 正确性、安全性、数据完整性、并发、兼容性和测试缺口优先于纯格式问题。
- 优先依赖自动格式化和静态检查规则,不做主观的手工风格调整。
- 审查代码时提供可执行的发现和文件、行号位置;不要为了满足清单而编造问题。
- 若代码库明确采用另一套成熟规范,遵循该规范,仅在兼容处应用本 Skill。
- 对未支持语言,遵循仓库工具和该语言维护方发布的现行官方规范,并使用公共工程规则约束跨语言问题。