docs: codify marketing product baseline
This commit is contained in:
@@ -17,6 +17,14 @@
|
||||
- `.memory/worklog.json` 是辅助日志,不代替人工语义 commit 和 Gitea 远端记录
|
||||
- 不能推送时,必须说明当前分支、本地领先/落后数量、最新未推送 commit 和失败原因
|
||||
|
||||
## Product Baseline Contract
|
||||
|
||||
- 最终产品基线是 `https://marketing.skg.com` 登录后的个人生成画布;本地开发和验收必须尽量复刻这套线上运行形态。
|
||||
- 根域名生产入口由 `web/canvas-app/` 的 Vue / Vite 画布产物承载;旧 React 首页、旧 TK 复刻工作台、Agent Cut 和详情页能力只能作为高级/兼容/回滚参考,不能当默认产品基线。
|
||||
- 之后所有升级、修复和产品判断,优先围绕根域名画布、当前 `/api`、Postgres 持久化、飞书登录和 owner 隔离展开。
|
||||
- 本地同构环境优先使用 Docker:`docker-compose.local.yml` + `deploy/.env.local` + `data-local/`;不要用本地 dev server 的偶然行为代替生产形态判断。
|
||||
- 遇到线上用户 bug,先只读确认生产事实:用户身份、owner、job、canvas project、generated asset、日志时间线;必要时把最小可复现数据拉到本地 Docker 环境复现和修复,不能直接在生产库里试错。
|
||||
|
||||
## Deployment Metadata Contract
|
||||
|
||||
- 任何任务只要新增、删除或修改公网地址,必须在同一次任务里更新 `.project.json`
|
||||
|
||||
7
RULES.md
7
RULES.md
@@ -12,6 +12,13 @@
|
||||
- 注意:后端不要带 `--reload` 跑长下载 / 抽帧 / 音频任务;reload 会等待后台任务结束,导致 4291 端口占用但新请求卡住。
|
||||
- 发布流程新规则(2026-05-26):所有修改默认先在本地 Docker 跑通并验证,确认可用后只保留本地 commit;只有用户明确说“可以推送 / 上推 / 部署”时,才允许 `git push` 或执行生产部署。
|
||||
|
||||
## 最终产品和排查基线
|
||||
- 最终产品入口固定为 `https://marketing.skg.com`;登录后根路径进入个人生成画布,之后所有升级和修复都以这套线上画布为主线。
|
||||
- 当前本地基线必须尽量和线上一致:优先用 `./scripts/start-local-docker.sh` 启动 Web/API/Postgres,用 `./scripts/verify-local-docker.sh` 验证;只在需要快速定位前端细节时才临时使用 `npm run dev` 或 `npm run dev:canvas`。
|
||||
- 旧 React 单对话框首页、旧 TK 复刻工作台、Agent Cut 和详情页功能保留为高级能力、兼容入口或代码参考;除非明确要求恢复,否则不要把它们当作新需求默认落点。
|
||||
- 用户线上 bug 的默认处理顺序:确认用户和时间线 → 只读查询生产 API 容器内 `DATABASE_URL` / Postgres 与相关 job state → 必要时复制最小可复现数据到本地 Docker → 本地修复和验证 → 本地 commit → 等用户确认后再推送或部署。
|
||||
- 排查线上数据时不要手动写生产库,不要覆盖服务器 `deploy/.env.production`、`data/`、`secrets/` 或 `/data/jobs`;需要恢复用户数据时先备份并给出影响范围。
|
||||
|
||||
## 立项决策快索引
|
||||
- 详见 `CLAUDE.md` 立项决策段 + `.memory/plan.md` 七步管线拆解
|
||||
- 风格:`04-Dark-Gallery-Ambient`(路径:`~/Projects/research/20260305-网页风格库/04-Dark-Gallery-Ambient.md`)
|
||||
|
||||
@@ -461,6 +461,7 @@
|
||||
<nav aria-label="页面目录">
|
||||
<a href="#purpose">为什么有这页</a>
|
||||
<a href="#how-to-use">怎么用它描述需求</a>
|
||||
<a href="#product-baseline">最终产品基线</a>
|
||||
<a href="#runtime">运行与入口</a>
|
||||
<a href="#pipeline">业务管线</a>
|
||||
<a href="#source-map">源码结构地图</a>
|
||||
@@ -486,10 +487,12 @@
|
||||
<p>
|
||||
它把“你看到的界面、你想改的功能、实际要动的源码、可能影响的数据和接口”放在同一个地方。
|
||||
后续描述需求时,可以直接说“改素材输入列 / 音频解析结果 / 分镜工作台 / 候选视频预览下载 / 某个接口行为”,这样改动范围会更准,也更容易追踪每次变更带来的影响。
|
||||
当前最终产品基线是 <code>https://marketing.skg.com</code> 登录后的个人生成画布;旧版本能力只作为高级入口、兼容入口或源码参考。
|
||||
</p>
|
||||
<div class="meta-grid">
|
||||
<div class="meta"><b>项目路径</b><span>/Users/kangwan/Projects/business/20260512-20260512-skg-tk-二创验证</span></div>
|
||||
<div class="meta"><b>前端</b><span>Next.js 16 · 端口 4290 · web/app/page.tsx</span></div>
|
||||
<div class="meta"><b>最终产品</b><span>https://marketing.skg.com · 登录后根路径个人生成画布</span></div>
|
||||
<div class="meta"><b>前端</b><span>Vue / Vite 画布为生产首屏 · Next.js 16 保留登录/详情/旧能力</span></div>
|
||||
<div class="meta"><b>后端</b><span>FastAPI · 端口 4291 · api/main.py</span></div>
|
||||
<div class="meta"><b>本文档位置</b><span>docs/source-analysis.html · 独立文件,不接入应用</span></div>
|
||||
</div>
|
||||
@@ -516,6 +519,31 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="product-baseline" data-search>
|
||||
<h2>最终产品基线</h2>
|
||||
<div class="callout good" style="margin-bottom:14px">
|
||||
<p><strong>以后所有升级默认指向:</strong><code>https://marketing.skg.com</code> 登录后的个人生成画布。这个画布是员工真实使用的最终产品,不是旧 React 首页,也不是早期 TK 复刻工作台。</p>
|
||||
</div>
|
||||
<div class="grid-3">
|
||||
<div class="card">
|
||||
<h3>线上基线</h3>
|
||||
<p>生产入口是根域名 <code>/</code>,由 <code>web/canvas-app/</code> 构建产物承载;<code>/canvas/</code> 只做旧链接兼容跳转。飞书登录、owner 隔离、Postgres 画布项目、个人工作流和当前 <code>/api</code> 是默认产品上下文。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>本地同构</h3>
|
||||
<p>本地排查和验收优先用 <code>./scripts/start-local-docker.sh</code> 启动 Web / API / Postgres,用 <code>./scripts/verify-local-docker.sh</code> 验证。临时 dev server 只能帮助定位细节,不能替代生产形态判断。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>旧版定位</h3>
|
||||
<p>旧 React 单对话框首页、旧 TK 复刻工作台、Agent Cut 和详情页仍可作为高级能力、兼容入口、回滚点或代码参考;除非明确说恢复,否则新需求不要默认落到这些旧版本。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card" style="margin-top:14px">
|
||||
<h3>用户 bug 拉取和修复口径</h3>
|
||||
<p>遇到线上用户问题时,先按只读方式确认用户、时间、URL、job、canvas project、generated asset 和日志时间线;生产数据库优先从 <code>skg-marketing-api</code> 容器读取现有 <code>DATABASE_URL</code> 查询,避免猜测连接方式。需要复现时,只复制最小必要状态到本地 Docker 环境,不在生产库里试错。修复完成后先本地 Docker 验证和本地 commit,只有用户明确确认后才推送或部署生产。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="runtime" data-search>
|
||||
<h2>运行与入口</h2>
|
||||
<table>
|
||||
@@ -1277,6 +1305,18 @@ ProductRefStateItem {
|
||||
<h2>变更记录</h2>
|
||||
<p>这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。</p>
|
||||
<div class="changelog">
|
||||
<article class="change">
|
||||
<header>
|
||||
<h3>2026-05-27 · 固化最终产品和本地同构排查基线</h3>
|
||||
<span class="tag violet">Product</span>
|
||||
<span class="tag green">Ops</span>
|
||||
</header>
|
||||
<div class="body">
|
||||
<p><strong>问题:</strong>项目经历过 React 单对话框、TK 复刻工作台、根域名画布、Postgres 持久化等多个版本,后续修复如果不先锁定主线,容易把旧入口或旧工作流误当成当前最终产品。</p>
|
||||
<p><strong>改动:</strong>本页新增“最终产品基线”,明确后续升级默认针对 <code>https://marketing.skg.com</code> 登录后的个人生成画布;<code>AGENTS.md</code> 与 <code>RULES.md</code> 同步增加产品基线、本地 Docker 同构环境和线上用户 bug 只读排查 / 本地复现流程。</p>
|
||||
<p><strong>影响:</strong>以后处理用户 bug 时,先确认线上用户、时间线、job、画布项目和资产状态;必要时把最小可复现数据拉到本地 Docker 修复。旧 React 首页、TK 复刻工作台、Agent Cut 和详情页只作为高级能力、兼容入口或源码参考。</p>
|
||||
</div>
|
||||
</article>
|
||||
<article class="change">
|
||||
<header>
|
||||
<h3>2026-05-27 · 视频完成后自动回填画布节点</h3>
|
||||
|
||||
Reference in New Issue
Block a user