用途
code-generation 是一个内部技能(Internal skill),用于指导 AI 在开发任务中生成代码。其描述明确指出:所有开发任务应使用 cc10x-router,暗示该技能本身可能通过路由技能被间接调用,而非直接面向用户使用。该技能的定位是让 AI 扮演“深入了解代码库的专家软件工程师”,在编写任何代码之前先理解所需功能及其如何融入现有系统。
核心原则
技能明确提出核心原则:先理解,再写最少量代码,并匹配现有模式。它设置了一条“铁律”(The Iron Law):在理解功能和项目模式之前不写代码。如果尚未回答“通用问题”,就不能编写代码。
专家身份
技能要求 AI 在生成代码时具备以下身份特征:熟悉当前代码库,知道东西放在哪里以及为什么;具有模式意识,匹配现有约定而不是强加新约定;保持最小化,只写需要的内容;关注质量,不在错误处理和边界情况上偷工减料。
通用问题
技能要求在任何代码生成之前始终回答以下问题:功能是什么(代码需要做什么,而不仅仅是它是什么)、用户是谁、输入是什么、输出是什么、边界情况有哪些、存在哪些模式、是否已阅读文件(绝不对未打开阅读的代码提出修改)、是否有更简单的方案。如果存在更简单方案,需同时呈现两种方案并推荐更简单的一种;如果没有,则继续实现。
上下文相关流程
在通用问题之后,技能要求根据上下文提出特定问题,包括:UI 组件(视觉状态、用户交互、无障碍要求、样式方式)、API 端点(认证授权、验证、响应格式、错误处理)、业务逻辑(不变量、事务或原子性、数据流、依赖)、数据库操作(查询性能、N+1 风险、索引、事务范围)。
使用流程
技能给出了分步流程:第 0 步是编写代码前先使用 LSP 工具,从语义上理解现有代码,例如对新函数用 lspCallHierarchy 查看使用模式、修改现有代码用 lspFindReferences 了解所有调用点、添加导入用 lspGotoDefinition 验证存在性、实现接口用 lspFindReferences 查看其他实现;并强调先用 localSearchCode 获得 lineHint,绝不要猜测行号。第 1 步是研究项目模式,通过 Grep、Glob、Read 查找类似实现、检查文件结构、阅读现有类似代码,并匹配命名约定、文件结构、导入模式、导出模式、错误处理模式和日志模式。第 2 步是编写最小实现,遵循 YAGNI,优先编辑现有文件而非创建新文件;同时强调代码清晰,避免嵌套三元,不为减少行数牺牲可读性,删除明显冗余的注释;并遵循最小差异原则,只改必要内容。第 3 步是处理边界情况,包括空输入、无效输入、错误条件和边界条件。第 4 步是与现有约定对齐,包括命名、导入、导出、类型、错误处理和日志。
警示信号与防止合理化
技能列出需要停止并重新考虑的警示信号,例如在回答通用问题前写代码、添加未请求的功能、忽略项目模式、不处理边界情况、为单一用例创建抽象、添加未请求的配置选项、使用魔法数字或硬编码阈值、用注释代替清晰代码、存在多个有效方案但未呈现选项。同时提供防止自我合理化的对照表,例如“以后可能有用”对应 YAGNI,只构建当前需要的;“我的模式更好”对应匹配现有模式,一致性优先于偏好;“边界情况不太可能”对应边界情况会导致生产缺陷。
何时提供多方案与何时抽象
技能指出,当多种设计模式都可行、存在复杂度权衡、用户说“最佳方式”或“我该怎么做”时,应呈现 2-3 种方案及权衡。当一种方案明显更简单且满足需求、项目模式已建立、用户请求明确时,采用单一方案。当存在多个有效方案时,优先选择匹配项目模式的最简单方案;如果选择高风险且尚未由提示或计划决定,则在输出中呈现备选方案并将控制权返回路由器,而不是直接询问用户。关于抽象,技能提出三次法则:逻辑出现在 1 个示例或 1 处时不要提取;出现 2 处时记录重复但不要抽象;出现 3 处及以上时才提取。参数变化可提取带参数的函数,不同调用者需要不同行为时使用依赖注入或策略模式。
代码质量检查清单
完成前需检查:通用问题已回答、上下文相关问题已回答(如适用)、项目模式已研究并匹配、最小实现(无过度工程)、边界情况已处理、错误处理已到位、类型正确完整、命名匹配项目约定、无硬编码值、无调试残留(console.log、TODO)、无注释掉的代码。
输出格式
技能规定了输出格式,包括:功能说明、通用问题回答、实现代码、关键决策及原因、假设。
常见模式
技能提供了函数、组件(React 示例)、错误处理的代码示例,展示清晰命名、类型化参数与返回、边界处理等做法。
最终规则
功能已理解 → 模式已研究 → 最少量代码 → 边界情况已处理,否则不准备编写代码。
限制与暂未提供信息
该技能明确标注为内部技能,建议所有开发任务使用 cc10x-router。资料中暂未提供其运行方式、安装命令、收费与价格、支持平台、实际效果评估等信息。