# 风格对齐(Style Alignment / 风格嗅探协议)
二次开发(二开)、插件开发、在已有代码库中新增或修改模板/功能文件时强制启用。 仅当目标项目确为空白、无任何可参照文件时跳过(回退到兜底约定并标注)。
生成的代码风格必须与目标项目已有的实际代码一致,而不是 Agent 自身的默认风格,也不是本技能内嵌的示例风格。
按目标类型各取 1-2 个已存在的文件,优先取与目标目录/模块相同的文件(风格最贴近):
.php / .html 混编模板fhtml / 表单 / 列表片段config.php / 类定义(看类、函数命名与注释风格).editorconfig / phpcs.xml / .prettierrc / eslintrc,优先读之作为权威基线(高于人工嗅探)| 标记 | 取值示例 |
| - | - |
| 缩进 | tab / 2 空格 / 4 空格 |
| 开标签 | <?php / <? |
| 括号位置 | K&R(同行列 {)/ Allman(换行 {) |
| 数组键引号 | 加引号 $a['x'] / 不加 $a[x] |
| 引号习惯 | 单引号优先 / 双引号优先 |
| 注释头 | 有无文件头注释块、格式样式 |
| 模板变量命名 | $navinfor / $empire / $public_r 等项目约定 |
| PHP/HTML 混编 | 缩进如何对齐、块间空行如何留 |
| 函数/类命名 | camelCase / PascalCase / 下划线 |
| 全等 | === 统一 / 混用 == |
| 空行/折行 | 块间空行、链式调用折行习惯 |
## 风格基线(取自 <文件1>, <文件2>)
- 缩进: 4 空格
- 开标签: <?php
- 括号: K&R
- 数组键: 加引号
- 引号: 单引号优先
- 模板变量: 沿用 $navinfor/$empire 约定
- 全等: 统一 ===
- 混编: PHP 块与 HTML 同级缩进对齐
生成的每一行都必须对齐该基线。若基线的某项与安全红线 / PHP8 兼容冲突(如数组键不加引号违反 PHP8 兼容),以安全红线为准,并标注偏差原因。
仅当目标项目确为空白、无任何可参照文件时,才回退到 cms-development 第七步内置命名约定,并明确标注「无原项目风格可参照,已用技能默认约定」。
code-generation.md 第三步「需求分析 → 加载项目规范」处强制调用本协议。cms-development.md 第七步「代码风格与质量」改为「先嗅探原项目代表文件 → 再套用」,内置命名表降为兜底。karpathy-coding-guidelines.md 原则3「匹配现有风格,即使你自己会不同做法」由本协议提供具体提取手段。| 场景 | 动作 | | - | - | | 取样文件读取失败 / 不存在 | 标注,回退兜底约定,不阻塞生成 | | 多个样本风格冲突 | 取与目标目录同模块者优先;仍冲突取多数派,标注少数派差异 | | 项目为空白无参照 | 用兜底约定并标注「无原项目风格可参照」 |