docs: add DEVELOPMENT_GUIDELINES for agent behavior constraints
定义 ShopXO 核心文件修改边界、铁律和 pre-commit 自检要求: 铁律: - 禁止修改 ShopXO 核心文件(shopxo/app/、shopxo/config/ 等), 除非用户明确书面同意 - 禁止直接操作数据库,必须以 migration 文件形式提交 - 禁止直接操作 Docker 容器内环境 实践: - 调试代码(var_dump/bak文件/log注入)必须立即清理 - pre-commit 自检清单 - Council/subagent commit 必须约束在 feat/ 分支内 - 配置文件隔离原则 并记录已知 ShopXO 核心文件状态:common.php/event.php 已回退干净, Goods.php/AdminPowerService.php 有业务必需改动。 关联历史教训:2026-04-23 antigravity 失控导致调试代码污染核心文件feat/phase4-ticket-wallet
parent
d05a9aef2d
commit
068c673dd0
|
|
@ -0,0 +1,125 @@
|
|||
# 开发准则 — vr-shopxo-plugin
|
||||
|
||||
> 所有在此仓库工作的 agent(CClaude Code、Council agents、subagent 等)必须严格遵守。
|
||||
> 违反即为 P0 安全/质量事件。
|
||||
|
||||
---
|
||||
|
||||
## 一、铁律(绝对禁止违反)
|
||||
|
||||
### 1. 插件边界约束 🔴
|
||||
|
||||
**禁止修改 ShopXO 核心文件**,任何改动必须严格限定在插件目录内:
|
||||
|
||||
```
|
||||
✅ 允许修改的范围
|
||||
shopxo/app/plugins/vr_ticket/ ← 插件自身代码
|
||||
docs/ ← 项目文档
|
||||
tests/ ← 测试文件
|
||||
.gitignore ← 版本控制配置
|
||||
|
||||
❌ 禁止修改(绝对禁区)
|
||||
shopxo/app/ ← 核心控制器、模型、服务(除 vr_ticket 插件)
|
||||
shopxo/config/ ← ShopXO 配置文件
|
||||
shopxo/public/ ← 静态资源、入口文件
|
||||
shopxo/app/common.php ← 核心公共函数(⚠️ 曾被误改,历史教训)
|
||||
shopxo/app/event.php ← 核心事件钩子文件(⚠️ 曾被误改,历史教训)
|
||||
shopxo/app/index/controller/ ← 前台控制器
|
||||
shopxo/app/admin/controller/ ← 后台控制器
|
||||
shopxo/app/service/ ← 核心服务层
|
||||
shopxo/app/model/ ← 核心模型层
|
||||
shopxo/app/install/ ← 安装程序
|
||||
shopxo/config/database.php ← 数据库配置
|
||||
shopxo/config/shopxo.php ← ShopXO 主配置
|
||||
```
|
||||
|
||||
**最小化原则**:即使在允许范围内,也应优先考虑 Hook/扩展点/插件配置,而不是直接修改文件。
|
||||
|
||||
**例外**:如确实需要修改 ShopXO 核心文件,必须:
|
||||
1. 在 commit 前向用户(`@bigemon`)明确说明改动内容和风险
|
||||
2. 获得用户书面同意(chat message)
|
||||
3. 改动后立即 commit,commit message 标注 `[CORE-MODIFICATION]`
|
||||
|
||||
### 2. 数据库操作 🔴
|
||||
|
||||
**禁止直接修改数据库**。任何数据库 schema 变更(创建表、增删字段、索引、DROP 等)必须:
|
||||
|
||||
1. 提出申请,说明:操作内容、原因、rollback 方案
|
||||
2. 用户二次审阅并明确同意
|
||||
3. 以 migration 文件形式提交(`docs/migrations/` 或 `database/migrations/`),禁止直接执行 SQL
|
||||
|
||||
**已规划的数据库操作(如有)须全部列在此文档末尾。**
|
||||
|
||||
### 3. Docker 容器操作 ⚠️
|
||||
|
||||
**禁止直接操作 Docker 容器内环境**(`docker exec`、修改容器内文件、挂载层覆盖等)。
|
||||
|
||||
- 如需测试容器内行为:通过挂载目录的文件修改 + 容器重启实现
|
||||
- 如需紧急修复:先告知用户,获得同意后再执行
|
||||
- 所有 docker 操作应在 commit message 中记录
|
||||
|
||||
---
|
||||
|
||||
## 二、重要实践建议
|
||||
|
||||
### 4. 调试代码及时清理
|
||||
|
||||
- 任何为了调试目的注入的临时代码(`var_dump`、`@file_put_contents('/tmp/debug.log')`、临时 sed 注入、`.bak` 备份文件)调试完毕后**必须立即删除**
|
||||
- `.bak`、`.bak2` 等备份文件禁止 commit
|
||||
- 调试用的临时文件(`/tmp/*.log`、`/tmp/co.php` 等)不在 git 管理范围内,注意不要误 commit
|
||||
|
||||
### 5. Pre-commit 自检(必须执行)
|
||||
|
||||
每次 commit 前必须确认:
|
||||
- [ ] `git status` 确认改动范围,是否意外修改了 ShopXO 核心文件
|
||||
- [ ] 无 `.bak`、`.bak2` 等备份文件在暂存区
|
||||
- [ ] 无调试用的临时文件在暂存区
|
||||
- [ ] 改动与用户原始请求相关,无无关的"优化"或"格式调整"
|
||||
|
||||
### 6. Council / Subagent 行为约束
|
||||
|
||||
Council agents 和 Claude Code subagents 的 commit 行为**必须约束在 feat/ 分支内**,禁止自动 merge 或 push 到 main。输出文件(`reviews/`、`plan.md`)不应作为最终交付 commit,应由主 agent 审阅后手动处理。
|
||||
|
||||
### 7. 配置文件隔离
|
||||
|
||||
- 所有敏感配置(数据库密码、API Key、frp token 等)必须写入 `docs/PRIVATE_CONFIG.md`(不 commit)或 `.env`(已 gitignore)
|
||||
- 禁止将真实密码写入代码或 commit message
|
||||
|
||||
---
|
||||
|
||||
## 三、已知特殊情况记录
|
||||
|
||||
### 已修改的 ShopXO 核心文件(需注意)
|
||||
|
||||
以下文件在历史中被修改过,当前仓库状态如下:
|
||||
|
||||
| 文件 | 状态 | 备注 |
|
||||
|------|------|------|
|
||||
| `shopxo/app/common.php` | ✅ 与官方源码一致 | 2026-04-23 调试注入已回退 |
|
||||
| `shopxo/app/event.php` | ✅ 与官方源码一致 | 2026-04-23 调试注入已回退 |
|
||||
| `shopxo/app/index/controller/Goods.php` | ⚠️ 有业务修改 | `item_type='ticket'` 路由到 `ticket_detail.html`(Phase 1 必需改动) |
|
||||
| `shopxo/app/service/AdminPowerService.php` | ⚠️ 有权限修改 | ShopXO 后台权限服务(改动内容待确认) |
|
||||
|
||||
> 注意:`Goods.php` 的 `item_type` 路由是 Phase 1 必需的业务改动,已知例外,无需重复审阅。其他 ShopXO 核心文件应保持原样。
|
||||
|
||||
### Docker 容器配置(勿直接修改容器内文件)
|
||||
|
||||
```
|
||||
shopxo-php → /Users/bigemon/WorkSpace/vr-shopxo-plugin/shopxo (挂载目录)
|
||||
shopxo-mysql → 容器内 MySQL
|
||||
shopxo-web → Nginx
|
||||
```
|
||||
|
||||
调试时应修改宿主机挂载目录文件,然后重启容器。不要在容器内直接改。
|
||||
|
||||
---
|
||||
|
||||
## 四、违规处理
|
||||
|
||||
违反铁律(1、2、3)的行为:
|
||||
- 主 agent 有权立即 rollback 并拒绝 merge
|
||||
- 视为 P0 安全事件,记录至 MEMORY.md 并通知用户
|
||||
|
||||
---
|
||||
|
||||
*最后更新:2026-04-24 by 西莉雅*
|
||||
Loading…
Reference in New Issue