CLAUDE.md 2.7 KB

fmode-app-mirror · 项目宪法

时尚魔镜(Fashion Magic Mirror)虚拟试衣独立仓。Angular 18 + Ionic 8 + Capacitor 6。

身份

  • 提取自 git.fmode.cn/2205106/FashionMagicMirror(源仓致谢,业务代码保留)
  • 归档仓:https://git.fmode.cn/fmode-18691770343/fmode-app-mirror(公开)
  • 线上:https://app.fmode.cn/dev/zC4W4aVTCo/index.html(独立 Product ID zC4W4aVTCo,Nova Admin 已登记;勿发 fmode.cn/aipm-lesson/)

构建纪律

  • Node 20.x;依赖安装优先 npm ci(package-lock 已入库),peer deps 冲突才用 --legacy-peer-deps
  • 产物目录 www/(angular.json outputPath),不入库(.gitignore 已忽略)。
  • 每次修复启动/构建阻塞问题,单独一个 fix: commit,说明根因。
  • Capacitor 只用 Web 层;不安装原生平台、不跑 npx cap add

部署纪律

  • ng build --configuration production --base-href /dev/zC4W4aVTCo/cp www/index.html www/404.html(SPA fallback;构建后先核对 www/index.html 里 base href 正确再上传)。
  • OBS 上传目标 obs://nova-cloud/dev/zC4W4aVTCo/(逐文件指定目标键,禁目录递归 cp;html/css/js/图片带正确 content-type;-acl=public-read)。
  • CDN 刷新只用 app.fmode.cn 域名组脚本:node /opt/data/git-repos/fmode-app/scripts/refresh-cdn.js(目录 https://app.fmode.cn/dev/zC4W4aVTCo/);禁用 refresh-fmode-cn.js(刷的是 fmode.cn 域名组,与本产品无关)。
  • 发布后逐 URL curl 验收 200 + 内容正确,才算上线成功。
  • Git 归档与前端上线是两个独立状态门禁,分别报告,禁止互相冒充。

凭据零暴露

  • sessionToken 只从 ~/.fmode/config/user.json(0600)读取,用完即弃,不落盘。
  • Gogs 个人 token 仅进程内存使用,不进 remote URL / 文件 / 日志 / 报告。
  • OBS AK/SK 只通过 OBSUTIL_CONFIG 指向的配置文件间接使用,绝不写入本仓。
  • 任何密钥不得出现在 commit、截图、终端输出、最终交付报告。

Git 纪律

  • Conventional Commits(feat/fix/docs/chore/refactor/style)。
  • 不强推 main;不修改他人历史;git add <文件> 不用 git add .
  • push 后必须 git ls-remote 验证远端 SHA。
  • 平台接口 401/209 时走「对话式验证码登录」自愈流程(07-git.md 标准节),不向用户索要密码。

已上线 vs 规划中(04-API设计.md 对齐)

  • ✅ 已接入:Git 幂等开户/建仓/push;OBS 静态发布 + CDN;Parse 主端点(server.fmode.cn/parse, appId ncloudmaster)。
  • ❌ 跳过:storage/credentials、计费 API(status:规划中,勿照抄端点);deploy STS 对本 session 返回 403,未接入。