Files
UHD_Media_Tool/CLAUDE.md
T
rootandClaude Opus 5.5 11ca2f01ff chore: 一键检查、发布脚本与开发环境约定
- deno task test:all(scripts/test-all.sh):逐包跑完再汇总,连不上测试库直接失败,
  web 用 Node 跑 vitest;deno task ci 改用它
- deno task release(scripts/release.sh):工作区不干净、CHANGELOG 无本版条目即拒绝;
  打 tag、构建、只替换 app、核对健康接口版本
- deno task dev:up:起开发库并迁移到最新;开发 API 端口改 4390(4380 留给本机部署版)
- CLAUDE.md:命令、提交与发布约定、文档放哪

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-02 16:08:09 +08:00

3.2 KiB
Raw Blame History

UHD Media Tool

影视自动化工具:站点 / RSS 获取 → 识别 → 下载(qB)→ 整理入库 → 刮削,带 Agent。后端 Deno + Hono + Kysely(PostgreSQL),前端 React Router 8 + Vite,同一个 workspace。业务逻辑以 MoviePilot v3 为参考(docs/porting/)。

面向团队内部使用,目前只有本机测试环境:避免过度设计和过度防御,只处理已确认会影响正常使用的问题。回复和文档用中文。

常用命令

deno task dev:up      # 开发库(127.0.0.1:55433)+ 迁移到最新;拉代码后先跑
deno task dev         # API 4390 + web 5180(4380 是本机部署版,别占)
deno task test:all    # 全量测试,逐包跑完汇总;连不上测试库直接失败
deno task typecheck   # tsc + deno check
deno task lint        # biome;deno task fmt 会写文件,只对自己改的路径用
deno task ci          # 提交前完整检查(含 web 构建与编译产物自检)
deno task release     # 测试环境发布,见下

只改一个包时可在包目录跑 deno run -A npm:vitest run <文件>;web 包用 ../../node_modules/.bin/vitest run(Node)。改迁移后跑 deno task gen:types 重新生成 packages/db/src/types.ts,contracts 枚举顺序与数据库保持一致(packages/contracts/test/db-sync.test.ts 会查)。

约定

  • 先提交再部署。发布只走 deno task release:工作区不干净直接拒绝;版本取根 deno.json(所有成员包同一版本);CHANGELOG.md 必须先有 ## [x.y.z] 条目;脚本打 tag vx.y.z、构建镜像、只替换 app 容器(启动时自动迁移)、核对健康接口版本。测试环境不需要备份、在途任务清单、源码指纹等重流程。
  • 功能在分支上做,完成后合回 main;提交按功能拆,别把不相关的改动带进同一个提交。
  • 说"检查通过"只认 deno task test:all / deno task ci 的实际输出;跳过的用例不算通过。
  • 新增 Agent 能力要登记到某个 Skill(packages/agent/skills/*/SKILL.md)和能力地图(packages/agent/src/prompt/layers/capabilities.ts),否则 agent 测试会红。
  • 界面文案守 docs/design/glossary.md 的术语与标点(deno task check:copy);状态色只表示状态(StatusBadge 带圆点,别拿来显示数量)。
  • 主工作区不留常驻 dev 进程(--watch 会改写 deno.lock);构建前确认 deno.lock 没被改。

文档放哪

  • 正在推进的计划与待办:docs/plan/README.md;做完的计划、验收、发布记录直接删除(git 历史可查),不留归档。
  • 版本变化:CHANGELOG.md,每版几行,不另写长篇发布记录。
  • 运维与使用:docs/runbook/;设计规范:docs/design/;架构决策:docs/adr/;MP 对照:docs/porting/。
  • 证据、截图、构建日志放 .local/(不进 git)。
  • 踩过的坑:docs/plan/lessons.md,派子代理或并行开发前先读。

参考

  • MoviePilot 固定源码(只读):/tmp/umt-moviepilot-v3-review-20261001(v3.0.10-1,0aa8571),对照结论见 docs/porting/moviepilot-v3-comparison.md。
  • 本机部署:docker compose --env-file .env.deploy …,app 经 Caddy 暴露在 https://<host>:4380,容器 HTTP 在 127.0.0.1:4381。