Prune stale docs and update .hermes content

Delete a large set of outdated documentation (many files under docs/ and .hermes/plans/, including audits, design, prd, technical, planning, assets, and todos). Update and consolidate .hermes content: refresh shared-memory pages (decision-log, development-workflow, document-map, pitfalls, project-overview, team-conventions) and several skills/references under .hermes/skills. Also modify AGENTS.md, README.md, UI_CODING_STANDARD.md, docs/README.md and .encoding-check-ignore. Purpose: clean up stale planning/audit material and keep current hermes documentation and related top-level docs in sync.
This commit is contained in:
2026-05-15 06:24:07 +08:00
parent 2eded08bc7
commit 3cb3efb4d0
708 changed files with 4033 additions and 142328 deletions

View File

@@ -280,26 +280,26 @@ fn anonymous_user_cannot_publish_generated_draft() {
| 产物类型 | 推荐路径 | 适用场景 |
| --- | --- | --- |
| 实施前分析 / 临时计划 | `.hermes/plans/<task-name>-bdd-scenarios.md` | 某次 Hermes 开发任务前,用于澄清行为、拆测试、辅助实现;不一定作为长期产品依据。 |
| 正式产品验收 / PRD 场景 | `docs/prd/<FEATURE>_BDD_YYYY-MM-DD.md` | 产品、测试、开发都需要长期参考的验收标准、用户故事、功能边界。 |
| 技术/API/领域行为场景 | `docs/technical/<FEATURE>_BDD_YYYY-MM-DD.md` | 后端 API、领域规则、状态机、SpacetimeDB reducer/table、SSE/异步任务、埋点副作用。 |
| 实施前分析 / 临时计划 | 当前任务说明或 `.tmp/<task-name>-bdd-scenarios.md` | 某次 Hermes 开发任务前,用于澄清行为、拆测试、辅助实现;不作为长期产品依据。 |
| 正式产品验收 / PRD 场景 | 当前 `docs/` 融合文档,必要时新增 `docs/【产品验收】<功能名>BDD场景-YYYY-MM-DD.md` | 产品、测试、开发都需要长期参考的验收标准、用户故事、功能边界。 |
| 技术/API/领域行为场景 | 当前 `docs/` 融合文档,必要时新增 `docs/【技术验收】<功能名>BDD场景-YYYY-MM-DD.md` | 后端 API、领域规则、状态机、SpacetimeDB reducer/table、SSE/异步任务、埋点副作用。 |
| 自动化 Gherkin feature 文件 | `tests/features/*.feature``e2e/features/*.feature` | 项目已接入 Cucumber/Playwright BDD 等 Gherkin runner 时。未接入前不要随意新建测试 runner 目录。 |
| 稳定流程或团队经验 | `.hermes/shared-memory/``.hermes/skills/` | 不是某个功能验收,而是长期可复用的团队流程、坑点、执行规范。 |
默认规则:
1. 用户只说“先用 BDD 梳理一下/写场景/写 Gherkin”默认写到 `.hermes/plans/<task-name>-bdd-scenarios.md`
2. 用户说“正式验收标准/PRD/产品文档/给测试验收”,写到 `docs/prd/<FEATURE>_BDD_YYYY-MM-DD.md`
3. 用户说“API 行为/后端规则/状态机/埋点/异步任务/SpacetimeDB”写到 `docs/technical/<FEATURE>_BDD_YYYY-MM-DD.md`
1. 用户只说“先用 BDD 梳理一下/写场景/写 Gherkin”默认在当前任务上下文中输出;需要文件时写到 `.tmp/<task-name>-bdd-scenarios.md`
2. 用户说“正式验收标准/PRD/产品文档/给测试验收”,优先合并到当前 `docs/` 融合文档;无法容纳时新增带 `【产品验收】` 标签的 Markdown
3. 用户说“API 行为/后端规则/状态机/埋点/异步任务/SpacetimeDB”优先合并到当前后端架构或开发运维文档;无法容纳时新增带 `【技术验收】` 标签的 Markdown
4. 用户明确要求“可执行 feature 文件”且项目已有 runner再写 `.feature` 文件;否则先写 Markdown BDD 文档,并在测试映射中标注未来自动化落点。
5. 如果 BDD 场景会作为编码依据,文档中必须包含“测试映射”表,标注场景要落到哪些测试文件。
命名建议:
```text
.hermes/plans/profile-feedback-bdd-scenarios.md
docs/prd/PROFILE_FEEDBACK_BDD_2026-05-11.md
docs/technical/WORK_PLAY_TRACKING_BDD_2026-05-11.md
.tmp/profile-feedback-bdd-scenarios.md
docs/【产品验收】帮助与反馈BDD场景-2026-05-11.md
docs/【技术验收】作品游玩埋点BDD场景-2026-05-11.md
tests/features/profile-feedback.feature
e2e/features/invite-code.feature
```
@@ -308,9 +308,9 @@ e2e/features/invite-code.feature
除 BDD/Gherkin 场景外,相关配套内容可放在:
- 实施计划:`.hermes/plans/<task-name>.md`
- 产品/验收文档:`docs/prd/<FEATURE>_PRD_YYYY-MM-DD.md`
- 技术设计:`docs/technical/<FEATURE>_TECHNICAL_YYYY-MM-DD.md`
- 实施计划:当前任务上下文或 `.tmp/<task-name>.md`
- 产品/验收文档:当前 `docs/` 融合文档,必要时新增 `docs/【产品验收】中文标题-YYYY-MM-DD.md`
- 技术设计:当前 `docs/` 融合文档,必要时新增 `docs/【技术方案】中文标题-YYYY-MM-DD.md`
- 共享经验或稳定流程:`.hermes/shared-memory/``.hermes/skills/`
BDD 文档建议包含:

View File

@@ -42,7 +42,7 @@ metadata:
### 1. 先补技术方案文档
项目要求工程修改前先检查/补充落地文档。若没有明确文档,先写到 `docs/technical/`,至少说明:
项目要求工程修改前先检查/补充落地文档。优先更新当前融合文档;后台、接口、表查询、埋点和运营查询通常落到 `docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md``docs/【开发运维】本地开发验证与生产运维-2026-05-15.md`。只有现有文档无法容纳时,才新增 `docs/【标签名】中文标题-YYYY-MM-DD.md`,至少说明:
- 后台页面目标。
- 后端接口路径、鉴权、query/body、response。

View File

@@ -52,4 +52,4 @@ git diff --check
## 提交注意
- 不要提交 `.env.local``.env.secrets.local` 或任何 token/密码/连接串。
- 若工作区里有本地敏感文件,只提交明确改动的 Rust 文件和 `docs/technical/*` 文档。
- 若工作区里有本地敏感文件,只提交明确改动的 Rust 文件和当前 `docs/` 文档。

View File

@@ -15,9 +15,9 @@
## 关键文件
- `docs/technical/PROFILE_TASK_AND_TRACKING_SYSTEM_2026-05-03.md`
- 第 47 行左右写明:用户打开任务中心时后端幂等记录当日 `daily_login`;点击领取时校验进度和领奖记录
- 接口说明中写明 `GET /api/profile/tasks` 会读取任务中心并记录当日登录埋点
- `docs/【开发运维】本地开发验证与生产运维-2026-05-15.md`
- 当前任务、钱包、埋点和运营查询口径统一维护在该文档
- 历史阶段文档曾记录过:用户打开任务中心时后端幂等记录当日 `daily_login`;点击领取时校验进度和领奖记录。若当前代码已变更,以代码和当前融合文档为准
- `server-rs/crates/api-server/src/runtime_profile.rs`
- `get_profile_task_center` 调用 `state.spacetime_client().get_profile_task_center(user_id)`
- `claim_profile_task_reward` 调用 `state.spacetime_client().claim_profile_task_reward(user_id, task_id)`
@@ -36,11 +36,7 @@
git grep -n "daily_login\|tracking_event\|get_profile_task_center\|claim_profile_task_reward" -- server-rs apps docs
```
2. 对照设计文档中的事件口径
```bash
sed -n '35,58p' docs/technical/PROFILE_TASK_AND_TRACKING_SYSTEM_2026-05-03.md
```
2. 对照当前开发运维文档中的任务、钱包、埋点和运营查询口径
3. 追 API handler 到 SpacetimeDB reducer

View File

@@ -75,7 +75,7 @@ metadata:
- refresh session 是否在 rotate 与 access token 签发成功后调用 helper。
- 失败策略是否只 warning、不阻断响应。
4. 如涉及 SpacetimeDB procedure/table/binding按项目 SpacetimeDB skills 与文档同步检查绑定生成、`migration.rs`、private table 限制。
5. 修改前补齐 `docs/technical/` 中对应方案/根因;修改后同步更新。
5. 修改前补齐当前 `docs/` 中对应方案/根因;修改后同步更新当前融合文档和必要的共享记忆
## 关键经验:已登录打开网页也要主动 refresh 才能写登录埋点

View File

@@ -71,7 +71,7 @@ metadata:
- `scripts/dev-stack-port-utils.mjs`
- `scripts/dev-rust-stack.sh`
- `scripts/dev-web-rust.mjs`
- `docs/technical/RUST_LOCAL_AND_REMOTE_DEPLOYMENT_SCRIPTS_2026-04-22.md`
- `docs/【开发运维】本地开发验证与生产运维-2026-05-15.md`
- `.hermes/shared-memory/pitfalls.md`
2. 优先改公共端口工具,不要把端口探测逻辑复制到多个脚本。
3. 对 Bash 脚本只做局部补丁,避免整文件重写导致中文注释或换行大面积变化。
@@ -122,6 +122,6 @@ node scripts/dev-stack-port-utils.mjs resolve-dev-stack spacetime:127.0.0.1:0 ap
- [ ] `dev-rust-stack.sh` 通过 `bash -n`
- [ ] `npm run dev` / `npm run dev:rust` 的 SpacetimeDB、publish、api-server、主站 Vite、后台 Vite 都使用实际端口。
- [ ] `npm run dev:web` 在主站端口不可用时能切换到可用端口。
- [ ] 文档同步更新 `docs/technical/RUST_LOCAL_AND_REMOTE_DEPLOYMENT_SCRIPTS_2026-04-22.md`
- [ ] 文档同步更新 `docs/【开发运维】本地开发验证与生产运维-2026-05-15.md`
- [ ] 长期踩坑同步更新 `.hermes/shared-memory/pitfalls.md`
- [ ] 修改中文文件后运行 `npm run check:encoding`

View File

@@ -4,7 +4,7 @@
## 推荐顺序
1. 先读仓库 `README.md``AGENTS.md`、相关 `/docs/technical``.hermes/plans`,确认当前阶段范围。
1. 先读仓库 `README.md``AGENTS.md` 和当前 `docs/` 融合文档,确认当前阶段范围。
2. 遵循 TDD先在 `server-rs/crates/module-runtime/tests/` 写纯函数测试,验证缺失类型/函数导致 RED。
3.`module-runtime/src/domain.rs` 增加领域类型,例如:
- `AnalyticsGranularity``day | week | month | quarter | year`
@@ -28,7 +28,7 @@
11.`api-server`
- `src/runtime_profile.rs`Query params / parser / handler / response builder。
- `src/app.rs`:挂路由,例如 profile 或 admin analytics endpoint选择路径前确认产品定位。
12. 最后更新 docs/plan,并确认 diff 不只是生成物。
12. 最后更新当前 `docs/` 文档和必要的 `.hermes/shared-memory/` 摘要,并确认 diff 不只是生成物。
## 验证命令示例

View File

@@ -61,8 +61,8 @@ metadata:
## 推荐实施顺序
1. 读取 `.hermes/plans/...` 或产品文档,确认入口、路由、页面行为。
2. 若现有文档不足,先在 `docs/prd/` 增加可编码落地的 PRD
1. 读取当前融合文档,确认入口、路由、页面行为。
2. 若现有文档不足,优先更新 `docs/【项目基线】当前产品与工程约束-2026-05-15.md``docs/【玩法创作】平台入口与玩法链路-2026-05-15.md``docs/【开发运维】本地开发验证与生产运维-2026-05-15.md`;只有无法容纳时才新增 `docs/【标签名】中文标题-YYYY-MM-DD.md`
3. 增加 `SelectionStage``appPageRoutes` 映射,并先跑 `npm run typecheck`
4. 新建独立页面组件,尽量通过 props 暴露 `onBack`/`onSubmit`,避免直接耦合全局状态。
5.`RpgEntryHomeView.tsx` 增加入口 prop 与按钮。

View File

@@ -10,7 +10,8 @@
## 关键文件
- `docs/prd/PROFILE_FEEDBACK_ENTRY_PRD_2026-05-08.md`
- `docs/【项目基线】当前产品与工程约束-2026-05-15.md`
- `docs/【玩法创作】平台入口与玩法链路-2026-05-15.md`
- `src/components/platform-entry/platformEntryTypes.ts`
- `src/routing/appPageRoutes.ts`
- `src/components/platform-entry/PlatformFeedbackView.tsx`