# FreeMoCap 源码解析 Agent Rules ## Must Read First - 全项目规则真源:`/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md` - 全项目元数据规范:`/Users/kangwan/Projects/code/20260317-rules-dashboard/SCHEMA.md` - `.project.json` 是机器真源:公网链接、快捷登录、凭证引用都以它为准 - `RULES.md` 是人工规则和部署事实:启动命令、平台、域名、注意事项都写这里 - 不允许编造不存在的域名、账号、密码;未知就保持空白并明确标记待补充 ## Environment Consistency Contract - 新建 Web / API / 后台服务 / 全栈 App 项目必须以 Docker 作为本地与线上共同运行基准 - 本地验证默认使用 `docker compose up --build`,不能只用宿主机 `npm run dev` / `pnpm dev` / `python main.py` 作为交付依据 - 线上部署必须复用同一套 `Dockerfile` / `docker-compose*.yml` 构建逻辑;`git push` 本身不等于线上容器更新 - 第一次形成可运行代码时,必须补齐 `Dockerfile`、`docker-compose.yml` 或等价 compose 文件、`.dockerignore`、`.env.example` - 静态研究页、纯文档、macOS / iOS 原生 App、GPU / GUI / 特殊硬件项目可以例外,但必须在本项目 `RULES.md` 写明原因和实际运行环境 ## Deployment Metadata Contract - 任何任务只要新增、删除或修改公网地址,必须在同一次任务里更新 `.project.json` - `urls[]` 推荐显式写 `type`:`app`、`backend`、`docs`、`admin`、`repo` - 项目专属的网页登录信息,如果允许放进仓库,就写 `.project.json.quick_login` - 不能直接入库的敏感登录,不要伪造 `quick_login`,改为写 `.project.json.credentials` 引用 - 数据库密码、API Key、服务器 root 密码,不属于 `quick_login` - 部署时默认可以携带本地测试运行数据和密钥;助手只需先提醒风险,除非用户明确说“不带密钥 / 不带数据” - 密钥只能作为运行时配置传输或写入服务器密钥管理,不得提交进 Git,不得在聊天 / 日志 / `.project.json.quick_login` 中明文展开 ## Completion Gate - 每次开发结束前必须汇报 `git status -sb` - 代码改动必须有人工语义 commit;`auto-save` 只算安全快照 - 能推送时必须推到 Gitea `origin`,不能推送时说明 ahead/behind 和原因 - 新 Web / API / 后台服务 / 全栈 App 项目,上推前必须汇报 Docker build / compose 启动 / health check 或 smoke test 结果 - 替换或发布 App 时必须更新版本号、发布记录和回退包路径 - 部署完成后,不允许在 `.project.json` 缺少最新公网链接的状态下结束任务 - 部署完成后,必须同步更新 `RULES.md` 的部署事实 - 如果只更新了代码但没回写部署元数据,这个任务不算完成