6.3 KiB
6.3 KiB
name, description
| name | description |
|---|---|
| shz-full-development | 仅当用户在当前请求中明确授权完成 SHZ 全流程开发时使用。支持代码实现、本地验证、测试环境 SQL 执行、测试环境部署、Chrome DevTools/日志/只读数据库调试、功能验收、代码提交以及测试通过后的正式 SQL 生成和执行状态记录。没有当前请求中的明确全流程授权时,不得使用此 skill 执行提交、写入 SQL、远程部署或服务重启。 |
SHZ 全流程开发
授权门槛
只有当用户在当前请求中明确要求完成全流程开发,并明确允许相应远程操作时,才能使用此 skill。以下表述才算明确授权:允许提交代码、执行测试环境 SQL、部署测试环境、调试验证,或明确要求执行完整开发流程。
以下表述不构成全流程授权:修复问题、完成开发、测试一下、准备上线、给出部署命令、描述 SQL、验证修复或“继续处理”。没有明确授权时,使用 $shz-pc-debug、$query-shz-highgo 和 $inspect-shz-logs 完成只读诊断、本地修改和验证。
授权范围必须逐项确认:
- 代码修改:允许修改哪些仓库和模块;
- 测试 SQL:允许在测试环境写入哪些数据库和 SQL 文件;
- 测试部署:允许部署后端、PC 前端或两者;
- 测试调试:允许使用哪个测试角色和页面;
- 正式 SQL:是否只生成正式 SQL,还是额外允许执行正式环境 SQL。
正式环境 SQL 执行和生产部署不从“全流程开发”自动推断。它们必须有当前请求中的单独明确授权,并且必须提供目标和精确执行命令或批准的项目流程。
硬性安全规则
- 默认使用测试环境,生产环境保持只读。
- 不得读取、复制、打印、提交或报告密码、Token、cookies、授权请求头或无关个人数据。
- 远程写入操作必须使用项目已有的受保护流程,不得临时拼接绕过安全检查的 SSH、psql 或部署命令。
- 每个远程操作前确认目标环境、目标组件、SQL 文件、角色和授权范围。
- 任一 SQL、构建、部署或功能验证失败时立即停止后续晋级,不得生成“已通过”或“已执行”的状态标记。
- 不得把测试环境执行成功推断为正式环境执行成功。
- 不得把正式 SQL 已生成推断为正式 SQL 已执行。
全流程顺序
严格按以下顺序执行:
- 确认范围和授权:确认角色、环境、页面/接口、代码仓库、SQL 文件、目标组件和允许的远程操作。阅读 references/deployment.md 和 references/sql-workflow.md。
- 检查工作区:分别检查
shz-backend和涉及的shz-admin工作树、git status和 diff,保留用户已有改动。按 shz-pc-debug 的项目结构参考 选择最小范围。 - 调查和实现:使用 CodeGraph 定位代码;没有可用索引时使用
rg。按需调用$shz-pc-debug复现和定位、$query-shz-highgo查询只读数据、$inspect-shz-logs检查日志。实施最小代码修改。 - 本地验证:运行变更模块适用的测试、构建、类型检查、lint 或其他静态检查。未通过时先修复,不得执行远程写操作。
- 测试 SQL 执行:按照 references/sql-workflow.md 检查 SQL、记录执行目标,并且只在测试环境执行。成功后将 SQL 文件标记为测试已执行,但不得标记为正式已执行。
- 中文代码提交:本地代码和测试 SQL 验证通过后,检查 diff,使用中文提交信息创建聚焦 commit。提交规则见“代码提交规则”。除非用户明确要求 push,否则不得推送。
- 部署测试环境:只部署当前请求明确授权的组件。部署命令和授权条件见 references/deployment.md。
- 测试环境调试和验收:使用隔离 Chrome 会话复现目标流程,检查 DOM、控制台、网络、截图、日志和必要的只读数据库状态。测试失败时停止,不得生成正式 SQL。
- 生成正式 SQL:只有当所有约定功能和回归检查通过后,才从已测试 SQL 生成正式执行 SQL,并按 references/sql-workflow.md 更新内容和文件名。此时只能标记为
test-verified-production-ready,不能标记为正式已执行。 - 正式环境 SQL(可选):只有当前请求单独明确授权正式 SQL 执行时,才执行正式环境 SQL。执行成功后更新 SQL 状态注释和文件名为
test-and-production-executed。未获授权时保留正式 SQL 供人工审批,不得执行。 - 最终报告:报告测试环境、提交 hash、测试 SQL 执行结果、部署组件、浏览器验证结果、正式 SQL 文件状态以及未执行的正式环境操作。
代码提交规则
代码提交必须使用中文。提交前检查以下要求:
- commit subject 的实际说明必须是中文;
- commit body(如有)必须使用中文;
- 可以保留
feat:、fix:、refactor:、chore:等固定类型前缀,但冒号后的说明必须是中文; - 禁止使用纯英文提交信息;
- 每次提交只包含当前任务相关文件,不得提交密码、Token、日志、截图、临时构建产物或无关改动;
- 未经用户明确要求不得 push。
推荐格式:
feat: 新增户外招聘会小程序二维码接口
fix: 修复企业招聘会图片地址处理
chore: 更新测试环境迁移状态
失败和回滚处理
- 本地验证失败:不执行测试 SQL、不提交、不部署。
- 测试 SQL 失败:停止部署,保留失败证据;只有修复 SQL 并重新通过测试执行后,才更新 SQL 状态。
- 测试部署失败:检查有界测试日志,修复并重新本地验证;不得生成正式 SQL。
- 浏览器功能验证失败:保留控制台、网络、DOM、截图和日志证据;不得标记为
test-verified-production-ready。 - 正式 SQL 执行失败:立即停止,不得标记
test-and-production-executed;保留正式环境错误证据并等待用户决定回滚或修复。
任何回滚或反向 SQL 都属于写入操作,必须在当前请求中获得明确授权,并单独记录目标环境和执行结果。