Files
crearte-monorepo/docs/ROADMAP.md
T

6.6 KiB
Raw Blame History

crearte 路线图 / Roadmap

跨三个仓库(crearte 前端 / crearte-server 后端 / crearte-deploy 编排)的子项目路线图与索引,维护在 monorepo wrapper(本仓库)。

  • 版本 v0:2026-09-29 与维护者确认的分解与顺序。
  • 现状基线:crearte 0.13.0 / crearte-server 0.11.0 / crearte-deploy 0.3.1。

分解原则

  • 按「依赖关系 + 是否阻塞上线」排序;每个子项目的规模控制在一份 spec 能装下。
  • 每个子项目独立走 spec → 实现计划 → 实现 → 验证 的循环。
  • 隐藏复杂度出现时升级路径(拆出新子项目),不硬塞进当前子项目。

第一波:上线底座(运维 / 可靠性,顺序敏感)

# 子项目 内容 涉及仓库 依赖 状态
P0 已知缺陷清理 ① CORS Access-Control-Allow-Headers 补 If-None-Match(解锁 e2e:stack Step5:revoke 410 + 降级)② 清理 compose 配置漂移(BUNDLE_KEY_STORE 环境变量、bundle-keys-* 卷——密钥自 server 0.6.0 起在 Postgres)③ crearte-deploy CHANGELOG 补账 server, deploy 无 完成(server a8ea755 / deploy 27044be,2026-09-29 合并推送)
P1 prod 写侧可用 prod 栈补对象存储(prod MinIO 或外部 S3)+ api-prod 配 STORAGE_S3_* / GAMES_BASE_DOMAIN / CORS_ALLOWED_ORIGINS;密码默认值、TLS 起步。现状:prod 无对象存储时写侧路由(上传/投稿/审核/预览)不注册,生产只读 deploy(少量 server) P0 完成(crearte 63bb96d / deploy 4d53d58,2026-09-29 合并推送;TLS 与真域名留清单,见 spec §6)
P2 CI + 测试基线 后端 / 部署仓建 CI(gofmt/vet/test + TEST_DATABASE_URL 集成层 + e2e:stack 全链路);与前端已有 validate.yml 对齐。现状:后端/部署仓无 CI,Postgres 集成测试无 TEST_DATABASE_URL 时静默 skip 三仓 P0(e2e 依赖其修复) 完成(server 7b97108 / crearte 711b6de / deploy 522545d,2026-09-30 合并推送;e2e-stack 宿主仓修订见 spec §2.2;首跑拓出 serve-runtime 子域缺陷已修(5e0fb2e);Actions 启用与分支保护为 owner 手动尾巴,见 spec §2.4)
P3 备份 + 可观测 pg_dump 定时备份 + MinIO 数据保护 + 恢复演练 runbook;结构化 / 请求日志 + /metrics;限流器单实例问题记录权衡 server, deploy P1(拓扑定型) 待启动

第二波:产品价值(可与第一波部分并行)

# 子项目 内容 涉及仓库 依赖 状态
P4 作者主页 /users/:user 聚合页(该作者全部已上架作品,前端按命名空间过滤,零后端改动),按最新上架排序;顺带 /games/:user/:slug 面包屑与作者名互链。spec:docs/specs/2026-09-29-author-page-design.md crearte(前端) 无强依赖,可提前并行 完成(crearte f12cbf1,2026-09-29 合并推送)
P5 收藏 / 评分 新数据表 + 用户态 API + 目录/详情页 UI;产品线里最大的一块 三仓 建议 P2 先落地 完成(server e3da246 / crearte eb5fbed,2026-09-30 合并推送;范围修订 deploy 零改动,见 spec)
P6 hosted 作品投稿 范围模糊,需先定义 hosted 托管语义(只存 URL 还是真托管文件),再定投稿/审核流 三仓 需先决策 待澄清

第三波:治理与长尾(随时可插队)

# 子项目 内容 状态
P7 管理后台增强 用户列表 / 角色管理 UI(替代 CLI user set-role)+ 审计日志 完成(server ca24805 0.12.0 / crearte 900f13a 0.18.0,2026-09-30 合并推送。audit_log 表 0010 + 组中间件统一记录(owner 定稿:admin 路由收敛为组,Full-Path 模板入史,GET 也记,失败尝试照记,未遂 401/403 不记);用户列表/PATCH 角色/审计查询三端点;唯一 admin 降级 409 护栏 CLI/API 双覆盖;前端 /admin/users + /admin/audit 两页,降级确认双要点文案;本机六腿验收全绿:容器四连+fresh-DB -count=1 10 ok 零 FAIL 零 skip、废 token 端到端 401、护栏矩阵(非唯一降 OK/唯一降 CLI 拒+API 409)、审计流水含 409 失败尝试、真栈 full-loop 分支后端 1 passed×2、vitest 488/typecheck/admin-flow 6/主套件 68)
P8 长尾打包 权限开关 UI 全量(inlineStyle/wasm/coop/fullscreen/gamepad)、后端 triage 小项(games.Detail 400 细分、admin 路由 slug 校验、approve 同名竞态测试)、账号注销、静态兜底目录、CHANGELOG 模板文案 待启动

排序理由

  • P0 最先:几十行的修复,却解锁整条 e2e 回归链路——后面每一波都靠它做验证保障。
  • P1 紧随:不做则生产环境投稿 / 审核根本不可用,产品功能再丰富也上不了线。
  • P4 可提前:无依赖且范围清晰,若想先看到用户可感知的产品变化,可与第一波并行。

文档与提交约定

  • 所有 spec / 实现计划 / 跨仓库协作文档统一放在本仓库 docs/(docs/specs/、docs/plans/、docs/ROADMAP.md),并在下表登记;内层仓库只保留各自的 docs/CHANGELOG.md 与 docs/README.md。此约定取代 crearte-deploy 0.3.0 确立的「crearte-deploy 为跨仓库文档 canonical home」。
  • monorepo(本仓库)可直接在 master 提交;内层三仓仍遵循各自 AGENTS.md 的分支与合并规范。

子项目文档索引

子项目 spec 实现计划
P4 作者主页 docs/specs/2026-09-29-author-page-design.md docs/plans/2026-09-29-author-page.md(已执行,2026-09-29)
P1 prod 写侧可用 docs/specs/2026-09-29-prod-write-side-design.md docs/plans/2026-09-29-prod-write-side.md(已执行,2026-09-29)
P5 收藏/评分 docs/specs/2026-09-30-favorites-ratings-design.md docs/plans/2026-09-30-favorites-ratings.md(已执行,2026-09-30)
创作者中心 /creator(维护者直接需求) docs/specs/2026-09-30-creator-center-design.md docs/plans/2026-09-30-creator-center.md(已执行,2026-09-30)
P2 CI+测试基线 docs/specs/2026-09-30-ci-test-baseline-design.md docs/plans/2026-09-30-ci-test-baseline.md(已执行,2026-09-30)
P3 备份+可观测 docs/specs/2026-09-30-backup-observability-design.md docs/plans/2026-09-30-backup-observability.md
P7 管理后台增强 docs/specs/2026-09-30-admin-console-design.md docs/plans/2026-09-30-admin-console.md(已执行,2026-09-30)