From 8209d7a29f35d969fca6258b9817da9b33a203a3 Mon Sep 17 00:00:00 2001 From: gewuyou <95328647+GeWuYou@users.noreply.github.com> Date: Sat, 25 Apr 2026 09:27:06 +0800 Subject: [PATCH] =?UTF-8?q?docs(documentation):=20=E6=94=B6=E5=8F=A3?= =?UTF-8?q?=E5=85=AC=E5=BC=80=E6=96=87=E6=A1=A3=E5=8F=A3=E5=90=BB=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复公开 README 与 docs 页面中的反问式标题、维护者口吻和裸文件名链接标签 - 补充 AGENTS.md 与 gframework-doc-refresh 的 reader-facing 文档输出约束 - 更新 documentation-full-coverage-governance 的恢复点与验证记录 --- .../skills/gframework-doc-refresh/SKILL.md | 9 ++ .../templates/module-landing.md | 2 +- AGENTS.md | 15 ++++ GFramework.Core.Abstractions/README.md | 8 +- GFramework.Core/README.md | 2 +- GFramework.Cqrs.Abstractions/README.md | 2 +- GFramework.Cqrs/README.md | 2 +- GFramework.Ecs.Arch.Abstractions/README.md | 12 +-- GFramework.Game/README.md | 2 +- GFramework.Godot.SourceGenerators/README.md | 2 +- GFramework.Godot/README.md | 2 +- README.md | 30 +++---- ...ation-full-coverage-governance-tracking.md | 21 +++-- ...entation-full-coverage-governance-trace.md | 49 +++++------ docs/zh-CN/abstractions/core-abstractions.md | 8 +- .../abstractions/ecs-arch-abstractions.md | 6 +- docs/zh-CN/abstractions/game-abstractions.md | 10 +-- docs/zh-CN/api-reference/index.md | 12 +-- docs/zh-CN/core/architecture.md | 12 +-- docs/zh-CN/core/cqrs.md | 6 +- docs/zh-CN/core/index.md | 82 +++++++++---------- docs/zh-CN/ecs/arch.md | 8 +- docs/zh-CN/ecs/index.md | 18 ++-- docs/zh-CN/game/config-system.md | 31 +++---- docs/zh-CN/game/index.md | 50 +++++------ docs/zh-CN/game/scene.md | 8 +- docs/zh-CN/game/ui.md | 10 +-- docs/zh-CN/getting-started/index.md | 24 +++--- docs/zh-CN/getting-started/quick-start.md | 8 +- docs/zh-CN/godot/signal.md | 2 +- ...register-exported-collections-generator.md | 8 +- .../bind-node-signal-generator.md | 8 +- .../context-aware-generator.md | 8 +- .../cqrs-handler-registry-generator.md | 4 +- .../source-generators/get-node-generator.md | 8 +- .../godot-project-generator.md | 8 +- docs/zh-CN/source-generators/index.md | 38 ++++----- .../source-generators/priority-generator.md | 8 +- 38 files changed, 281 insertions(+), 262 deletions(-) diff --git a/.agents/skills/gframework-doc-refresh/SKILL.md b/.agents/skills/gframework-doc-refresh/SKILL.md index e033d8ec..2e01f56e 100644 --- a/.agents/skills/gframework-doc-refresh/SKILL.md +++ b/.agents/skills/gframework-doc-refresh/SKILL.md @@ -175,6 +175,15 @@ Use this exact priority: - Do not copy wording from outdated docs just to keep page volume. - Public docs must stay reader-facing. Do not write inventory, coverage baseline, recovery-point, batch-metric, review backlog, or audit-wave wording into `README.md` or `docs/**`. +- Use neutral, destination-first section names and link labels. Do not expose raw filenames or paths such as + `game/index.md`, `README.md`, or `../core/cqrs.md` as visible reader-facing labels when a semantic label is + available. +- Do not use rhetorical or conversational headings in public docs, such as “你真正会用到的公开入口”、 + “先理解包关系” or “想看……转到……”. Prefer direct labels such as “公开入口”、 + “模块与包关系” and “相关主题”. +- Keep public docs out of internal product-decision tone. Do not publish repository-governance wording such as + “当前阶段的结论”、“不建议立即启动” or audience-maintainer tradeoff discussions unless the page itself is a public + adoption guide and the wording has been rewritten as reader-facing suitability guidance. - If XML or audit evidence is relevant, translate it into reader guidance such as “which types to inspect first” or “which entry points define the contract”, instead of exposing counts, dates, or governance status. - Escape generics outside code blocks. diff --git a/.agents/skills/gframework-doc-refresh/templates/module-landing.md b/.agents/skills/gframework-doc-refresh/templates/module-landing.md index 5b28aefe..e986ca4c 100644 --- a/.agents/skills/gframework-doc-refresh/templates/module-landing.md +++ b/.agents/skills/gframework-doc-refresh/templates/module-landing.md @@ -21,7 +21,7 @@ description: {{MODULE_DESCRIPTION}} {{KEY_ENTRY_POINTS}} -## 当前边界 +## 适用范围与边界 {{CURRENT_BOUNDARIES}} diff --git a/AGENTS.md b/AGENTS.md index 8ecbd160..570d1da8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -323,6 +323,21 @@ bash scripts/validate-csharp-naming.sh - Public documentation under `README.md` and `docs/**` MUST stay reader-facing. Do not publish governance-only content such as inventory tables, coverage baselines, review queues, batch metrics, recovery points, trace summaries, or “this still needs a later audit wave” notes in those user-facing pages. +- Public documentation MUST use semantic section titles and link labels. Do not surface raw filenames or paths such as + `README.md`、`game/index.md`、`../core/cqrs.md` as reader-facing navigation text when a meaningful destination label is + available. +- Public documentation MUST avoid rhetorical, self-referential, or AI-sounding headings and prompts such as + “你真正会用到的公开入口”、 + “先理解包关系”、 + “这个栏目应该回答什么” or “想看……转到……”. Prefer neutral labels such as + “公开入口”、 + “模块与包关系”、 + “栏目覆盖范围” and “相关主题”. +- Public documentation MUST present limitations, suitability, and migration boundaries as adoption guidance for readers. + Do not publish internal-governance or product-roadmap wording such as “当前阶段的结论”、 + “不建议立即启动”、 + “仓库当前的主要使用者” or similar maintainer-facing decision records in `README.md` or `docs/**`; that material + belongs in `ai-plan/**` if it must be tracked. - Governance-only material such as XML audit snapshots, documentation remediation baselines, backlog status, and recovery metadata belongs in `ai-plan/**` or other contributor-only artifacts, not in public docs. - Treat `ai-libs/` as a read-only third-party source reference area. diff --git a/GFramework.Core.Abstractions/README.md b/GFramework.Core.Abstractions/README.md index 556ce47c..58c67061 100644 --- a/GFramework.Core.Abstractions/README.md +++ b/GFramework.Core.Abstractions/README.md @@ -68,7 +68,7 @@ XML 注释。这里记录的是类型族级基线,成员级契约细节仍需 ## 对应文档 -- 抽象接口栏目:[`../docs/zh-CN/abstractions/index.md`](../docs/zh-CN/abstractions/index.md) -- Core 抽象页:[`../docs/zh-CN/abstractions/core-abstractions.md`](../docs/zh-CN/abstractions/core-abstractions.md) -- Core 运行时入口:[`../GFramework.Core/README.md`](../GFramework.Core/README.md) -- API 参考入口:[`../docs/zh-CN/api-reference/index.md`](../docs/zh-CN/api-reference/index.md) +- 抽象接口栏目:[抽象接口总览](../docs/zh-CN/abstractions/index.md) +- Core 抽象页:[Core 抽象层说明](../docs/zh-CN/abstractions/core-abstractions.md) +- Core 运行时入口:[Core 运行时说明](../GFramework.Core/README.md) +- API 参考入口:[API 参考](../docs/zh-CN/api-reference/index.md) diff --git a/GFramework.Core/README.md b/GFramework.Core/README.md index e80448bb..b62ff0f1 100644 --- a/GFramework.Core/README.md +++ b/GFramework.Core/README.md @@ -31,7 +31,7 @@ - `GFramework.Game` - `GFramework.Godot` -如果你只需要契约,不需要实现层,改为依赖 [`../GFramework.Core.Abstractions/README.md`](../GFramework.Core.Abstractions/README.md)。 +如果你只需要契约,不需要实现层,改为依赖 [Core 抽象层说明](../GFramework.Core.Abstractions/README.md)。 ## 子系统地图 diff --git a/GFramework.Cqrs.Abstractions/README.md b/GFramework.Cqrs.Abstractions/README.md index 4bb1d8ff..94ed14a8 100644 --- a/GFramework.Cqrs.Abstractions/README.md +++ b/GFramework.Cqrs.Abstractions/README.md @@ -98,4 +98,4 @@ public sealed class GetPlayerProfileHandler ## 文档入口 - 运行时与整体接入说明:[CQRS 栏目](../docs/zh-CN/core/cqrs.md) -- 如果你需要默认实现而不是契约层,请看 [GFramework.Cqrs README](../GFramework.Cqrs/README.md) +- 如果你需要默认实现而不是契约层,请看 [CQRS 运行时说明](../GFramework.Cqrs/README.md) diff --git a/GFramework.Cqrs/README.md b/GFramework.Cqrs/README.md index 86e3f782..65c3cd99 100644 --- a/GFramework.Cqrs/README.md +++ b/GFramework.Cqrs/README.md @@ -151,4 +151,4 @@ var playerId = await this.SendAsync(new CreatePlayerCommand(new CreatePlayerInpu ## 文档入口 - 总体文档:[CQRS 栏目](../docs/zh-CN/core/cqrs.md) -- 契约层说明:[GFramework.Cqrs.Abstractions README](../GFramework.Cqrs.Abstractions/README.md) +- 契约层说明:[CQRS 抽象层说明](../GFramework.Cqrs.Abstractions/README.md) diff --git a/GFramework.Ecs.Arch.Abstractions/README.md b/GFramework.Ecs.Arch.Abstractions/README.md index 758868b9..3b01d248 100644 --- a/GFramework.Ecs.Arch.Abstractions/README.md +++ b/GFramework.Ecs.Arch.Abstractions/README.md @@ -88,7 +88,7 @@ var options = new ArchOptions - Arch `World` 的创建、注册和查询能力 - 与 `GFramework` 架构生命周期绑定的默认模块实现 -## 边界说明 +## 适用边界 - 本包不提供 Arch `World` 的默认构造与注册逻辑。 - 本包不提供系统基类、扩展方法或默认服务实现。 @@ -96,8 +96,8 @@ var options = new ArchOptions ## 对应文档入口 -- 抽象接口总览:[`../docs/zh-CN/abstractions/index.md`](../docs/zh-CN/abstractions/index.md) -- Ecs.Arch 抽象层说明:[`../docs/zh-CN/abstractions/ecs-arch-abstractions.md`](../docs/zh-CN/abstractions/ecs-arch-abstractions.md) -- ECS 模块入口:[`../docs/zh-CN/ecs/index.md`](../docs/zh-CN/ecs/index.md) -- Arch ECS 集成:[`../docs/zh-CN/ecs/arch.md`](../docs/zh-CN/ecs/arch.md) -- 运行时实现入口:[`../GFramework.Ecs.Arch/README.md`](../GFramework.Ecs.Arch/README.md) +- 抽象接口总览:[抽象接口总览](../docs/zh-CN/abstractions/index.md) +- Ecs.Arch 抽象层说明:[ECS 抽象层说明](../docs/zh-CN/abstractions/ecs-arch-abstractions.md) +- ECS 模块入口:[ECS 模块总览](../docs/zh-CN/ecs/index.md) +- Arch ECS 集成:[Arch ECS 集成](../docs/zh-CN/ecs/arch.md) +- 运行时实现入口:[Ecs.Arch 运行时说明](../GFramework.Ecs.Arch/README.md) diff --git a/GFramework.Game/README.md b/GFramework.Game/README.md index b5d026ec..586b0b81 100644 --- a/GFramework.Game/README.md +++ b/GFramework.Game/README.md @@ -122,7 +122,7 @@ 对应文档: - [存储系统](../docs/zh-CN/game/storage.md) -- [GFramework.Game/Storage/ReadMe.md](./Storage/ReadMe.md) +- [Storage 子模块说明](./Storage/ReadMe.md) ### `Serializer/` diff --git a/GFramework.Godot.SourceGenerators/README.md b/GFramework.Godot.SourceGenerators/README.md index c358118e..fbf961ac 100644 --- a/GFramework.Godot.SourceGenerators/README.md +++ b/GFramework.Godot.SourceGenerators/README.md @@ -190,7 +190,7 @@ public partial class MainMenu : Control - `AutoScene`:[AutoScene 生成器](../docs/zh-CN/source-generators/auto-scene-generator.md) - `AutoUiPage`:[AutoUiPage 生成器](../docs/zh-CN/source-generators/auto-ui-page-generator.md) - `AutoRegisterExportedCollections`:[AutoRegisterExportedCollections 生成器](../docs/zh-CN/source-generators/auto-register-exported-collections-generator.md) -- Godot 运行时入口:[../GFramework.Godot/README.md](../GFramework.Godot/README.md) +- Godot 运行时入口:[Godot 运行时说明](../GFramework.Godot/README.md) - 集成教程:[Godot 集成教程](../docs/zh-CN/tutorials/godot-integration.md) ## 什么时候不该先看这个包 diff --git a/GFramework.Godot/README.md b/GFramework.Godot/README.md index 169b6a44..5c7dee03 100644 --- a/GFramework.Godot/README.md +++ b/GFramework.Godot/README.md @@ -147,7 +147,7 @@ Godot 上。 - 信号系统:[Godot 信号系统](../docs/zh-CN/godot/signal.md) - 日志系统:[Godot 日志系统](../docs/zh-CN/godot/logging.md) - 集成教程:[Godot 集成教程](../docs/zh-CN/tutorials/godot-integration.md) -- 生成器入口:[../GFramework.Godot.SourceGenerators/README.md](../GFramework.Godot.SourceGenerators/README.md) +- 生成器入口:[Godot 源码生成器说明](../GFramework.Godot.SourceGenerators/README.md) ## 什么时候不该把它当成主入口 diff --git a/README.md b/README.md index 0f7c0bab..294a91b0 100644 --- a/README.md +++ b/README.md @@ -13,25 +13,25 @@ - 第一次接触框架:[入门指南](docs/zh-CN/getting-started/index.md) - 想先跑一个最小例子:[快速开始](docs/zh-CN/getting-started/quick-start.md) -- 已经知道要用哪个模块:直接进入对应模块目录下的 `README.md` +- 已经知道要用哪个模块:直接进入对应模块的说明页 ## 模块地图 | 模块 | 作用 | 入口 | | --- | --- | --- | -| `GFramework.Core` | 架构、命令、查询、事件、状态、日志、资源、协程等基础运行时 | [README](GFramework.Core/README.md) | -| `GFramework.Core.Abstractions` | `Core` 对应的契约层,适合面向接口开发或做模块拆分 | [README](GFramework.Core.Abstractions/README.md) | -| `GFramework.Cqrs` | 新版 CQRS runtime,提供 request dispatcher、notification publish 与 handler 注册 | [README](GFramework.Cqrs/README.md) | -| `GFramework.Cqrs.Abstractions` | CQRS 消息、处理器、pipeline 行为等契约 | [README](GFramework.Cqrs.Abstractions/README.md) | -| `GFramework.Game` | 面向游戏项目的配置、数据、路由、场景、UI、设置和存储运行时 | [README](GFramework.Game/README.md) | -| `GFramework.Game.Abstractions` | `Game` 对应的契约层 | [README](GFramework.Game.Abstractions/README.md) | -| `GFramework.Godot` | Godot 集成层,负责把框架能力接入节点、场景、UI、设置与存储 | [README](GFramework.Godot/README.md) | -| `GFramework.Ecs.Arch` | Arch ECS 集成 | [README](GFramework.Ecs.Arch/README.md) | -| `GFramework.Ecs.Arch.Abstractions` | Arch ECS 集成对应的契约层,适合共享宿主循环与 ECS 模块边界 | [README](GFramework.Ecs.Arch.Abstractions/README.md) | -| `GFramework.Core.SourceGenerators` | Core 侧通用源码生成器与分析器 | [README](GFramework.Core.SourceGenerators/README.md) | -| `GFramework.Game.SourceGenerators` | 游戏内容配置 schema 生成器 | [README](GFramework.Game.SourceGenerators/README.md) | -| `GFramework.Cqrs.SourceGenerators` | CQRS handler registry 生成器 | [README](GFramework.Cqrs.SourceGenerators/README.md) | -| `GFramework.Godot.SourceGenerators` | Godot 项目元数据、节点注入、信号绑定与 Scene/UI 辅助生成器 | [README](GFramework.Godot.SourceGenerators/README.md) | +| `GFramework.Core` | 架构、命令、查询、事件、状态、日志、资源、协程等基础运行时 | [模块说明](GFramework.Core/README.md) | +| `GFramework.Core.Abstractions` | `Core` 对应的契约层,适合面向接口开发或做模块拆分 | [模块说明](GFramework.Core.Abstractions/README.md) | +| `GFramework.Cqrs` | 新版 CQRS runtime,提供 request dispatcher、notification publish 与 handler 注册 | [模块说明](GFramework.Cqrs/README.md) | +| `GFramework.Cqrs.Abstractions` | CQRS 消息、处理器、pipeline 行为等契约 | [模块说明](GFramework.Cqrs.Abstractions/README.md) | +| `GFramework.Game` | 面向游戏项目的配置、数据、路由、场景、UI、设置和存储运行时 | [模块说明](GFramework.Game/README.md) | +| `GFramework.Game.Abstractions` | `Game` 对应的契约层 | [模块说明](GFramework.Game.Abstractions/README.md) | +| `GFramework.Godot` | Godot 集成层,负责把框架能力接入节点、场景、UI、设置与存储 | [模块说明](GFramework.Godot/README.md) | +| `GFramework.Ecs.Arch` | Arch ECS 集成 | [模块说明](GFramework.Ecs.Arch/README.md) | +| `GFramework.Ecs.Arch.Abstractions` | Arch ECS 集成对应的契约层,适合共享宿主循环与 ECS 模块边界 | [模块说明](GFramework.Ecs.Arch.Abstractions/README.md) | +| `GFramework.Core.SourceGenerators` | Core 侧通用源码生成器与分析器 | [模块说明](GFramework.Core.SourceGenerators/README.md) | +| `GFramework.Game.SourceGenerators` | 游戏内容配置 schema 生成器 | [模块说明](GFramework.Game.SourceGenerators/README.md) | +| `GFramework.Cqrs.SourceGenerators` | CQRS handler registry 生成器 | [模块说明](GFramework.Cqrs.SourceGenerators/README.md) | +| `GFramework.Godot.SourceGenerators` | Godot 项目元数据、节点注入、信号绑定与 Scene/UI 辅助生成器 | [模块说明](GFramework.Godot.SourceGenerators/README.md) | ## 内部支撑模块 @@ -145,7 +145,7 @@ GFramework.sln 提交功能或行为变更时,请把代码、测试和文档一起更新: -1. 先阅读对应模块目录下的 `README.md` +1. 先阅读对应模块的说明页 2. 如果改动影响采用路径、安装方式、公共 API 或目录结构,同时更新受影响的中文文档页面,必要时同步调整 [中文文档入口](docs/zh-CN/index.md) 3. 对跨模块或多阶段任务,维护 `ai-plan/public/README.md` 与对应主题目录下的 tracking / trace diff --git a/ai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.md b/ai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.md index 5241c0c4..90f97409 100644 --- a/ai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.md +++ b/ai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.md @@ -12,20 +12,21 @@ ## 当前恢复点 -- 恢复点编号:`DOCUMENTATION-FULL-COVERAGE-GOV-RP-031` +- 恢复点编号:`DOCUMENTATION-FULL-COVERAGE-GOV-RP-032` - 当前阶段:`Phase 5 - Governance Maintenance` - 当前焦点: - 继续按 `$gframework-batch-boot 75` 的 `origin/main` 分支 diff 阈值做小批量文档治理;当前 baseline 已回到 `origin/main`,本批只继续处理新的低风险 reader-facing 缺口 - - 保持 `README.md` 与 `docs/**` 公开页面只承载读者需要的采用信息,不再混入 XML inventory、覆盖基线、恢复点或治理批次说明 - - 继续优先处理低风险 metadata 缺口、坏链、README 文档入口对齐、Reader-friendly 链接标签与 Markdown 结构问题,避免跨模块语义改写 + - 保持 `README.md` 与 `docs/**` 公开页面只承载读者需要的采用信息,不再混入 XML inventory、覆盖基线、恢复点或治理批次说明,也不再使用反问式或维护者口吻标题 + - 继续优先处理低风险 metadata 缺口、坏链、README 文档入口对齐、reader-friendly 链接标签与 Markdown 结构问题,避免跨模块语义改写 - 保持 `Game` persistence docs surface 与当前 `README`、源码、`PersistenceTests` 使用同一套 owner / adoption path 叙述 - 保持 `GFramework.Godot.SourceGenerators/README.md` 与 `docs/zh-CN/tutorials/godot-integration.md` 在生命周期接法上的一致性 + - 将新的 reader-facing 文档约束同步收口到 `AGENTS.md` 与 `.agents/skills/gframework-doc-refresh/` - 保持 active tracking / trace 只承载当前恢复入口,把阶段细节留在 `archive/` ## 当前状态摘要 - `Core`、`Ecs.Arch`、`Cqrs`、`Game`、`Godot` 五个模块族当前都已有 README / landing / topic / API 参考层级的已验证入口。 -- `2026-04-24` 当前本地 `docs/sdk-update-documentation` 与 `origin/main` 同步到 `4c2994e`,相对 `$gframework-batch-boot 75` 的 baseline 当前为 `0 / 75` 个 changed files;后续批次可以继续,但仍应保持小 write set。 +- `2026-04-25` 当前本地 `docs/sdk-update-documentation` 与 `origin/main` 的 committed branch diff 仍为 `0 / 75` 个 changed files;本轮待提交批次已触及 `38` 个文件,落地后仍处于 `$gframework-batch-boot 75` 的安全区间。 - `2026-04-24` 使用 `$gframework-pr-review` 抓取当前 PR `#284` 后,确认 latest head commit `77540c07f0890cc05b10a849722c87b8bed8f561` 仍有 `3` 条 CodeRabbit 与 `1` 条 Greptile open thread;本轮仅继续收口本地复核后仍成立的 reader-facing 文档入口与 active tracking 精简问题。 - 本轮 PR follow-up 仅收口仍然成立的 review 项: @@ -39,6 +40,7 @@ - 本批次补齐了 `docs/zh-CN/index.md` 的 `description`,以及 `docs/zh-CN/tutorials/basic/01-07.md` 的 `title` / `description`,让首页和基础教程章节页拥有完整 frontmatter metadata。 - 本批次统一将教程、最佳实践、Core、Godot 页面里缺显式扩展名的站内 Markdown 链接补齐为 `.md` 或 `index.md`,避免目录链接、绝对路径旧写法与 VitePress 构建解析分叉。 - 本批次把模块 README、仓库根 README、`docs/index.md` 及多组中文落地页里直接暴露文件路径的入口调整为读者友好的可点击标签,同时补齐语言落地页 metadata 与 README 指向。 +- 本批次进一步清理 `Core`、`Game`、`Ecs`、`Getting Started`、`API Reference`、`Source Generators` 与相关模块 README 中的反问式标题、维护者视角边界说明、产品评审口吻和裸文件名链接标签,并把同类约束补入 `AGENTS.md` 与 `gframework-doc-refresh`。 - `Game` persistence docs surface 当前以 `docs/zh-CN/game/data.md`、`storage.md`、`serialization.md`、`setting.md` 作为最小巡检集合;若后续 README、runtime public API 或 `PersistenceTests` 变动,应优先复核这一组页面。 - `Godot` runtime 与 generator 入口当前以 `GFramework.Godot/README.md`、 @@ -54,6 +56,7 @@ `MSB4276` / `MSB4018`;这是已知环境阻塞,不属于本轮文档回归。 - 当前 WSL 会话里 `git.exe` 可解析但不能执行,应继续使用显式 `--git-dir` / `--work-tree` 绑定作为默认 Git 策略。 - PR `#282` 的 `Title check` 仍可能提示标题过泛;这是 GitHub PR 元数据问题,不属于本地文件缺陷。 +- `bash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh docs/zh-CN` 当前会报告若干既有“代码块缺少语言标记”警告;本轮未改这些页面,只记录为现存文档质量尾项。 ## 归档指针 @@ -90,11 +93,17 @@ - 结果:通过;经过三轮标题本地化后,仅剩 `CQRS` 与 `GFramework` 两个品牌/缩写型标题。 - `2026-04-24` `bun run build`(工作目录:`docs/`) - 结果:通过;根 `README.md` reader-friendly 链接标签修正与 `docs/zh-CN` 多页标题本地化落地后站点仍可正常构建,仅保留既有大 chunk warning。 +- `2026-04-25` `python3 .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Core` + - 结果:通过;技能仍能正常解析 `Core` 模块证据面,说明新增的 reader-facing 输出约束未破坏模块扫描主流程。 +- `2026-04-25` `bash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh docs/zh-CN` + - 结果:通过;本轮触达页面的 frontmatter、链接与代码块校验均通过,脚本仅继续报告仓库中既有页面的“代码块缺少语言标记”警告。 +- `2026-04-25` `bun run build`(工作目录:`docs/`) + - 结果:通过;公开文档口吻治理、链接标签收口和规则更新后站点仍可正常构建,仅保留既有大 chunk warning。 ## 下一步 -1. 当前基线已回到 `origin/main`,本轮变更仍是小 write set;后续若继续执行 `$gframework-batch-boot 75`,仍优先选择 `5` 到 `10` 个文件以内的小批次。 -2. 若继续处理 reader-facing 文档问题,优先筛查剩余 README / landing page 中是否还有路径式链接标签或不必要的内部治理措辞;纯英文标题方面仅剩品牌名与缩写,不再是当前高优先级切片。 +1. 当前基线已回到 `origin/main`,本轮待提交批次落地后仍会处于 `$gframework-batch-boot 75` 的安全区间;后续若继续治理,优先保持 `5` 到 `10` 个文件以内的小批次。 +2. 若继续处理 reader-facing 文档问题,优先筛查剩余页面里的维护者视角限制说明、模块 README 中仍可能存在的裸路径标签,以及验证脚本提示的代码块语言标记缺口。 3. 若后续分支继续调整 `Game` persistence runtime、README 或公共 API,优先复核 `docs/zh-CN/game/data.md`、 `storage.md`、`serialization.md`、`setting.md` 与 landing page 是否仍保持同一套职责边界。 4. 若后续分支继续调整 `Godot` generator 接法,优先复核 `GFramework.Godot.SourceGenerators/README.md`、 diff --git a/ai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.md b/ai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.md index 05f69de0..82a39d27 100644 --- a/ai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.md +++ b/ai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.md @@ -1,40 +1,33 @@ # Documentation Full Coverage Governance Trace -## 2026-04-24 +## 2026-04-25 -### 当前恢复点:RP-031 +### 当前恢复点:RP-032 -- 当前批次聚焦新的低风险 reader-facing README 缺口,只处理根 `README.md` 的路径式链接标签和对应的 active tracking / trace 基线更新。 -- 以 `origin/main`(`4c2994e`,`2026-04-24 17:57:23 +0800`)为 `$gframework-batch-boot 75` baseline;当前本地 `docs/sdk-update-documentation` 与该基线同步,branch cumulative diff 起始值为 `0 / 75`。 -- 本批次随后扩展到 `6` 个中文 landing / abstraction 页面标题本地化,总 write set 仍保持在 reader-facing 文案层。 +- 当前批次聚焦 reader-facing 文档口吻治理,目标是清理公开页面中的反问式标题、维护者视角边界说明、产品评审式表述和裸文件名链接标签。 +- 以 `origin/main`(`9964962`,`2026-04-24 23:05:53 +0800`)为 `$gframework-batch-boot 75` baseline;当前 committed branch diff 仍为 `0 / 75`,本轮待提交 write set 在写回 active tracking / trace 前为 `36` 个文件。 +- 本批次同时把同类约束补进 `AGENTS.md`、`gframework-doc-refresh/SKILL.md` 和 `module-landing` 模板,避免后续刷新再次写回 AI 式公开文案。 -### 当前决策(RP-031) +### 当前决策(RP-032) -- 当当前分支重新与 `origin/main` 对齐后,`$gframework-batch-boot 75` 可以继续推进,但仍只接受低风险、读者可见、易验证的小批次。 -- 公开 README 的表格入口不应继续把文件路径本身暴露成链接标签;入口名称应直接告诉读者要进入哪个模块 README。 -- active tracking / trace 里的 stop-condition 指标必须反映当前真实基线,不再沿用已经过时的 `58 / 75` 历史值。 +- 公开文档允许说明采用边界、限制和迁移关系,但必须改写成读者采用 guidance,不能继续使用“当前阶段结论”“不建议立即启动”这类维护者记录口吻。 +- 公开文档中的链接标签必须直接说明目的地语义,不再使用 `README.md`、`game/index.md`、`../core/cqrs.md` 这类文件名或路径作为可见导航文字。 +- 文档治理规则不能只靠本轮改文案;必须同步更新 `AGENTS.md` 与 `gframework-doc-refresh` 的输出约束,让后续批次默认遵守同一套 reader-facing 标准。 -### 当前验证(RP-031) +### 当前验证(RP-032) -- 基线确认: - - `git --git-dir=/mnt/f/gewuyou/System/Documents/WorkSpace/GameDev/GFramework/.git/worktrees/GFramework-update-documentation --work-tree=/mnt/f/gewuyou/System/Documents/WorkSpace/GameDev/GFramework-WorkTree/GFramework-update-documentation for-each-ref --format='%(refname:short) %(objectname:short) %(committerdate:iso8601)' refs/heads/main refs/remotes/origin/main refs/heads/docs/sdk-update-documentation HEAD` - - 结果:通过;`docs/sdk-update-documentation` 与 `origin/main` 当前同为 `4c2994e`,本地 `main` 仍停留在 `84b40a2`,因此本轮按 skill 规则选择更新的 `origin/main` 作为 baseline。 -- 当前 stop-condition metric: - - `git ... diff --name-only origin/main...HEAD | wc -l` - - 结果:通过;当前 branch cumulative diff 为 `0 / 75`。 - 热点扫描: - - `rg -n '\\[[^]]*(?:README\\.md|docs/[^]]+|GFramework\\.[^]]+/README\\.md|/zh-CN/[^]]+)\\]\\((?:README\\.md|docs/[^)]+|GFramework\\.[^)]+/README\\.md|/zh-CN/[^)]+)\\)' README.md docs GFramework.*/README.md` - - 结果:通过;当前仅在根 `README.md` 的内部支撑模块表格中命中 `2` 处路径式链接标签,适合作为本批次 reader-facing 修正切片。 -- 英文标题扫描: - - `python3 - <<'PY' ...`(扫描 `docs/zh-CN/**/*.md` 中纯英文 `title` / H1) - - 结果:通过;当前 landing / abstraction 页仍有一组纯英文入口标题,其中 `core/index.md`、`game/index.md`、`source-generators/index.md` 与 `abstractions/*.md` 的 `title` / H1 适合作为同批次标题本地化切片。 -- 第二轮标题本地化: - - 同一轮扫描显示 `docs/zh-CN/core/architecture.md`、`command.md`、`events.md`、`logging.md`、`property.md`、`query.md` 仍保留纯英文 `title` / H1;这些页面只需做中英对照标题调整,不涉及正文结构或链接变更,适合作为后续同批次切片。 -- 停批判断: - - 再次扫描后,剩余纯英文 `title` 只剩 `docs/zh-CN/core/cqrs.md` 的 `CQRS` 与 `docs/zh-CN/index.md` 的 `GFramework`;它们属于缩写或品牌名,不再作为当前 reader-facing 本地化批次的优先对象。 + - `rg -n '你真正会用到的公开入口|先理解包关系|这个栏目应该回答什么|什么时候看别的页面|当前阶段的结论|当前不单独启动桌面版的原因|## 边界说明|\\[[^\\]]+\\.md\\]\\([^)]*\\.md\\)|GFramework\\.[A-Za-z.]+ README|对应模块目录下的 \`README\\.md\`' docs/zh-CN README.md GFramework.*/README.md` + - 结果:通过;当前公开文档已无上述目标模式命中。 +- 技能自检: + - `python3 .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Core` + - 结果:通过;`Core` 模块扫描链路正常,新增输出约束未破坏 skill 主流程。 +- 规则校验: + - `bash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh docs/zh-CN` + - 结果:通过;本轮触达页面的 frontmatter、链接与代码块校验均通过,脚本仅继续报告仓库中既有页面的“代码块缺少语言标记”警告。 - 构建验证: - `bun run build`(工作目录:`docs/`) - - 结果:通过;根 `README.md` 链接标签修正与 `docs/zh-CN` 标题本地化后站点仍可构建,仅保留既有大 chunk warning。 + - 结果:通过;公开文档口吻治理、规则更新和链接标签收口后站点仍可构建,仅保留既有大 chunk warning。 ### 归档指针 @@ -46,5 +39,5 @@ ### 下一步 -1. 提交当前批次,保留根 `README.md` 入口标签修正、`docs/zh-CN` 标题本地化和 `ai-plan` 恢复点同步更新。 -2. 若继续下一轮 `$gframework-batch-boot 75`,优先重新扫描剩余 README / landing page 的路径式链接标签和内部治理措辞,而不是继续本地化品牌名或缩写标题。 +1. 提交当前批次,保留公开文档 reader-facing 口吻治理、规则补强和 `ai-plan` 恢复点同步更新。 +2. 若继续下一轮 `$gframework-batch-boot 75`,优先清理验证脚本持续提示的代码块语言标记缺口,或继续扫描剩余公开页中的维护者口吻尾项。 diff --git a/docs/zh-CN/abstractions/core-abstractions.md b/docs/zh-CN/abstractions/core-abstractions.md index df109bd6..3d3ec390 100644 --- a/docs/zh-CN/abstractions/core-abstractions.md +++ b/docs/zh-CN/abstractions/core-abstractions.md @@ -96,8 +96,8 @@ public sealed class DiagnosticsFeature ## 阅读顺序 1. 先读本页,确认你是否真的只需要契约层 -2. 再看 [`../core/index.md`](../core/index.md) 了解默认运行时怎么组织这些契约 +2. 再看 [Core 模块总览](../core/index.md) 了解默认运行时怎么组织这些契约 3. 回到模块 README: - - [`GFramework.Core.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.Abstractions/README.md) - - [`GFramework.Core README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md) -4. 需要统一导航时,再看 [`../api-reference/index.md`](../api-reference/index.md) + - [Core 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.Abstractions/README.md) + - [Core 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md) +4. 需要统一导航时,再看 [API 参考](../api-reference/index.md) diff --git a/docs/zh-CN/abstractions/ecs-arch-abstractions.md b/docs/zh-CN/abstractions/ecs-arch-abstractions.md index 06c3d4a6..2c23b8d4 100644 --- a/docs/zh-CN/abstractions/ecs-arch-abstractions.md +++ b/docs/zh-CN/abstractions/ecs-arch-abstractions.md @@ -88,7 +88,7 @@ var options = new ArchOptions ## 阅读顺序 1. 先读本页,确认你是否真的只需要契约层 -2. 如果需要默认实现,再看 [`../ecs/arch.md`](../ecs/arch.md) +2. 如果需要默认实现,再看 [Arch ECS 集成](../ecs/arch.md) 3. 回到对应模块 README: - - [`GFramework.Ecs.Arch.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch.Abstractions/README.md) - - [`GFramework.Ecs.Arch README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch/README.md) + - [ECS 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch.Abstractions/README.md) + - [Ecs.Arch 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch/README.md) diff --git a/docs/zh-CN/abstractions/game-abstractions.md b/docs/zh-CN/abstractions/game-abstractions.md index d112e91b..00e55e6d 100644 --- a/docs/zh-CN/abstractions/game-abstractions.md +++ b/docs/zh-CN/abstractions/game-abstractions.md @@ -113,9 +113,9 @@ public sealed class ContinueGameCommandHandler 3. 继续读具体专题页: - [`../game/config-system.md`](../game/config-system.md) - [`../game/data.md`](../game/data.md) - - [`../game/setting.md`](../game/setting.md) - - [`../game/scene.md`](../game/scene.md) - - [`../game/ui.md`](../game/ui.md) + - [设置系统](../game/setting.md) + - [场景系统](../game/scene.md) + - [UI 系统](../game/ui.md) 4. 需要仓库侧入口时,回到: - - [`GFramework.Game.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) - - [`GFramework.Game README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) + - [Game 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) + - [Game 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) diff --git a/docs/zh-CN/api-reference/index.md b/docs/zh-CN/api-reference/index.md index 2e442ca1..392cb44a 100644 --- a/docs/zh-CN/api-reference/index.md +++ b/docs/zh-CN/api-reference/index.md @@ -21,7 +21,7 @@ description: GFramework 的 API 阅读入口,按模块映射 README、专题 先读模块 README,再读对应栏目入口页: - 入门入口:[`../getting-started/index.md`](../getting-started/index.md) -- 根模块地图:仓库根 [`README.md`](https://github.com/GeWuYou/GFramework/blob/main/README.md) +- 根模块地图:[仓库总览](https://github.com/GeWuYou/GFramework/blob/main/README.md) ### 想确认“这个功能属于哪个模块” @@ -29,11 +29,11 @@ description: GFramework 的 API 阅读入口,按模块映射 README、专题 | 模块族 | 模块 README | 站内入口 | XML 文档关注点 | | --- | --- | --- | --- | -| `Core` / `Core.Abstractions` | [`GFramework.Core README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md)、[`GFramework.Core.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.Abstractions/README.md) | [`Core 栏目`](../core/index.md)、[`Core 抽象层说明`](../abstractions/core-abstractions.md) | 架构入口、生命周期、命令 / 查询 / 事件 / 状态 / 资源 / 日志 / 配置 / 并发契约 | -| `Cqrs` / `Cqrs.Abstractions` / `Cqrs.SourceGenerators` | [`GFramework.Cqrs README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs/README.md)、[`GFramework.Cqrs.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs.Abstractions/README.md)、[`GFramework.Cqrs.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs.SourceGenerators/README.md) | [`CQRS 栏目`](../core/cqrs.md)、[`CQRS Handler Registry 生成器`](../source-generators/cqrs-handler-registry-generator.md) | request / notification / handler / pipeline / registry / fallback contract | -| `Game` / `Game.Abstractions` / `Game.SourceGenerators` | [`GFramework.Game README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md)、[`GFramework.Game.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md)、[`GFramework.Game.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.SourceGenerators/README.md) | [`Game 模块总览`](../game/index.md)、[`Game 抽象层说明`](../abstractions/game-abstractions.md) | 配置、数据、设置、场景、UI、存储、序列化契约 | -| `Godot` / `Godot.SourceGenerators` | [`GFramework.Godot README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot/README.md)、[`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) | [`Godot 模块总览`](../godot/index.md)、[`Godot 项目生成器`](../source-generators/godot-project-generator.md)、[`GetNode 生成器`](../source-generators/get-node-generator.md)、[`BindNodeSignal 生成器`](../source-generators/bind-node-signal-generator.md) | 节点扩展、场景 / UI 适配、配置 / 存储 / 设置接线、Godot 生成器入口 | -| `Ecs.Arch` / `Ecs.Arch.Abstractions` | [`GFramework.Ecs.Arch README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch/README.md)、[`GFramework.Ecs.Arch.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch.Abstractions/README.md) | [`ECS 模块总览`](../ecs/index.md)、[`Arch ECS 集成`](../ecs/arch.md)、[`Ecs.Arch 抽象层说明`](../abstractions/ecs-arch-abstractions.md) | ECS 模块契约、系统适配、配置对象和运行时装配边界 | +| `Core` / `Core.Abstractions` | [Core 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md)、[Core 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.Abstractions/README.md) | [`Core 栏目`](../core/index.md)、[`Core 抽象层说明`](../abstractions/core-abstractions.md) | 架构入口、生命周期、命令 / 查询 / 事件 / 状态 / 资源 / 日志 / 配置 / 并发契约 | +| `Cqrs` / `Cqrs.Abstractions` / `Cqrs.SourceGenerators` | [CQRS 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs/README.md)、[CQRS 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs.Abstractions/README.md)、[CQRS 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs.SourceGenerators/README.md) | [`CQRS 栏目`](../core/cqrs.md)、[`CQRS Handler Registry 生成器`](../source-generators/cqrs-handler-registry-generator.md) | request / notification / handler / pipeline / registry / fallback contract | +| `Game` / `Game.Abstractions` / `Game.SourceGenerators` | [Game 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md)、[Game 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md)、[Game 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.SourceGenerators/README.md) | [`Game 模块总览`](../game/index.md)、[`Game 抽象层说明`](../abstractions/game-abstractions.md) | 配置、数据、设置、场景、UI、存储、序列化契约 | +| `Godot` / `Godot.SourceGenerators` | [Godot 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot/README.md)、[Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) | [`Godot 模块总览`](../godot/index.md)、[`Godot 项目生成器`](../source-generators/godot-project-generator.md)、[`GetNode 生成器`](../source-generators/get-node-generator.md)、[`BindNodeSignal 生成器`](../source-generators/bind-node-signal-generator.md) | 节点扩展、场景 / UI 适配、配置 / 存储 / 设置接线、Godot 生成器入口 | +| `Ecs.Arch` / `Ecs.Arch.Abstractions` | [Ecs.Arch 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch/README.md)、[ECS 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch.Abstractions/README.md) | [`ECS 模块总览`](../ecs/index.md)、[`Arch ECS 集成`](../ecs/arch.md)、[`Ecs.Arch 抽象层说明`](../abstractions/ecs-arch-abstractions.md) | ECS 模块契约、系统适配、配置对象和运行时装配边界 | ## 先看 XML,还是先看教程 diff --git a/docs/zh-CN/core/architecture.md b/docs/zh-CN/core/architecture.md index 3dd72942..51db2547 100644 --- a/docs/zh-CN/core/architecture.md +++ b/docs/zh-CN/core/architecture.md @@ -13,7 +13,7 @@ description: 说明 GFramework.Core 的 Architecture 入口、生命周期职责 当前版本的 `Architecture` 已经是协调器外观。对外仍保留稳定的注册与生命周期 API,但内部职责已经拆给专门协作者处理。 -## 你真正会用到的公开入口 +## 常用公开入口 最常见的成员只有这些: @@ -158,9 +158,9 @@ public sealed class MetricsHook : IArchitectureLifecycleHook } ``` -## 什么时候看别的页面 +## 相关主题 -- 想看上下文 API:转到 [context](./context.md) -- 想看阶段和销毁语义:转到 [lifecycle](./lifecycle.md) -- 想看旧命令 / 查询兼容层:转到 [command](./command.md) 和 [query](./query.md) -- 想看推荐的新请求模型:转到 [cqrs](./cqrs.md) +- 上下文访问与 `ArchitectureContext`:阅读[上下文](./context.md) +- 初始化阶段、事件与销毁流程:阅读[生命周期](./lifecycle.md) +- 旧版命令 / 查询执行器兼容入口:阅读[命令执行](./command.md)与[查询执行](./query.md) +- 新项目的请求 / 通知模型:阅读[CQRS 运行时](./cqrs.md) diff --git a/docs/zh-CN/core/cqrs.md b/docs/zh-CN/core/cqrs.md index de4dcfe1..05c3b608 100644 --- a/docs/zh-CN/core/cqrs.md +++ b/docs/zh-CN/core/cqrs.md @@ -132,7 +132,7 @@ protected override void OnInitialize() 4. 如果程序集带有 `CqrsReflectionFallbackAttribute`,只补扫剩余 handler 5. 同一程序集按稳定键去重,避免重复注册 -`Cqrs.SourceGenerators` 的专题入口见 [../source-generators/cqrs-handler-registry-generator.md](../source-generators/cqrs-handler-registry-generator.md)。 +`Cqrs.SourceGenerators` 的专题入口见[CQRS Handler Registry 生成器](../source-generators/cqrs-handler-registry-generator.md)。 ## Pipeline Behavior @@ -185,5 +185,5 @@ RegisterCqrsPipelineBehavior>(); - 架构入口:[architecture](./architecture.md) - 上下文入口:[context](./context.md) -- 生成器专题:[../source-generators/cqrs-handler-registry-generator.md](../source-generators/cqrs-handler-registry-generator.md) -- 模块 README:[`GFramework.Cqrs README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs/README.md) +- 生成器专题:[CQRS Handler Registry 生成器](../source-generators/cqrs-handler-registry-generator.md) +- 模块说明:[CQRS 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs/README.md) diff --git a/docs/zh-CN/core/index.md b/docs/zh-CN/core/index.md index d3a570f8..51413279 100644 --- a/docs/zh-CN/core/index.md +++ b/docs/zh-CN/core/index.md @@ -10,7 +10,7 @@ description: GFramework.Core 与 GFramework.Core.Abstractions 的运行时入口 如果你第一次接入框架,建议先把这里当作“运行时底座说明”,再按需进入 `Game`、`Godot` 或 Source Generators 栏目。 -## 先理解包关系 +## 模块与包关系 - `GeWuYou.GFramework.Core` - 基础运行时实现,包含 `Architecture`、上下文、生命周期、事件、属性、状态、资源、日志、协程、IoC 等能力。 @@ -30,48 +30,48 @@ dotnet add package GeWuYou.GFramework.Core dotnet add package GeWuYou.GFramework.Core.Abstractions ``` -## 这个栏目应该回答什么 +## 栏目覆盖范围 `Core` 栏目不是旧版“完整框架教程”的镜像,而是当前实现的入口导航。这里的页面按能力域组织: - 架构与生命周期 - - [architecture](./architecture.md) - - [context](./context.md) - - [lifecycle](./lifecycle.md) - - [async-initialization](./async-initialization.md) + - [架构](./architecture.md) + - [上下文](./context.md) + - [生命周期](./lifecycle.md) + - [异步初始化](./async-initialization.md) - 组件角色与运行时接入 - - [model](./model.md) - - [system](./system.md) - - [utility](./utility.md) - - [environment](./environment.md) - - [extensions](./extensions.md) + - [模型](./model.md) + - [系统](./system.md) + - [工具](./utility.md) + - [环境](./environment.md) + - [扩展方法](./extensions.md) - 旧版命令 / 查询执行器与迁移入口 - - [command](./command.md) - - [query](./query.md) - - [cqrs](./cqrs.md) + - [命令执行](./command.md) + - [查询执行](./query.md) + - [CQRS 运行时](./cqrs.md) - 状态、事件与规则 - - [events](./events.md) - - [property](./property.md) - - [rule](./rule.md) - - [logging](./logging.md) - - [state-machine](./state-machine.md) - - [state-management](./state-management.md) + - [事件系统](./events.md) + - [可绑定属性](./property.md) + - [规则系统](./rule.md) + - [日志系统](./logging.md) + - [状态机](./state-machine.md) + - [状态管理](./state-management.md) - 运行时支撑能力 - - [resource](./resource.md) - - [pool](./pool.md) - - [coroutine](./coroutine.md) - - [pause](./pause.md) - - [localization](./localization.md) - - [configuration](./configuration.md) - - [ioc](./ioc.md) + - [资源管理](./resource.md) + - [对象池](./pool.md) + - [协程系统](./coroutine.md) + - [暂停系统](./pause.md) + - [本地化](./localization.md) + - [配置管理](./configuration.md) + - [IoC 容器](./ioc.md) - 通用辅助能力 - - [functional](./functional.md) + - [函数式辅助](./functional.md) ## XML 与 API 阅读入口 如果你已经知道模块归属,但想确认公开类型的契约边界,建议按下面顺序阅读: -1. 先看模块 README [`GFramework.Core`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md),确认包关系和目录边界 +1. 先看[Core 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md),确认包关系和目录边界 2. 再看本栏目对应专题页,确认采用顺序、生命周期与推荐接线方式 3. 最后回到源码中的 XML 文档,重点核对这些类型族: - `Architecture` / `IArchitectureContext` @@ -80,7 +80,7 @@ dotnet add package GeWuYou.GFramework.Core.Abstractions - `IResourceManager` / `IConfigurationManager` - `IAsyncKeyLockManager` / `ITimeProvider` -统一入口见 [`../api-reference/index.md`](../api-reference/index.md)。 +统一入口见[API 参考](../api-reference/index.md)。 ## 源码阅读入口 @@ -130,25 +130,25 @@ public sealed class CounterArchitecture : Architecture - 只需要基础架构、事件、日志、资源、协程: - 先停留在 `Core` - 要写新的请求/通知处理流: - - 优先阅读 [cqrs](./cqrs.md) + - 优先阅读[CQRS 运行时](./cqrs.md) - 要接入游戏内容配置、设置、数据仓库、Scene 或 UI: - - 转到 [Game](../game/index.md) + - 转到[Game 模块](../game/index.md) - 要接入 Godot 节点、场景和项目元数据生成: - - 转到 [Godot](../godot/index.md) 与 [Source Generators](../source-generators/index.md) 栏目 + - 转到[Godot 模块](../godot/index.md)与[源码生成器](../source-generators/index.md)栏目 -## 推荐阅读顺序 +## 阅读顺序 1. [快速开始](../getting-started/quick-start.md) -2. [architecture](./architecture.md) -3. [context](./context.md) -4. [lifecycle](./lifecycle.md) -5. [cqrs](./cqrs.md) +2. [架构](./architecture.md) +3. [上下文](./context.md) +4. [生命周期](./lifecycle.md) +5. [CQRS 运行时](./cqrs.md) 之后再按实际需要进入具体专题页,而不是把 `Core` 当成一次性读完的大杂烩。 ## 对应模块入口 -- [`GFramework.Core README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md) -- [`GFramework.Core.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.Abstractions/README.md) +- [Core 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md) +- [Core 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.Abstractions/README.md) - [API 参考入口](../api-reference/index.md) -- 仓库根 [`README.md`](https://github.com/GeWuYou/GFramework/blob/main/README.md) +- [仓库总览](https://github.com/GeWuYou/GFramework/blob/main/README.md) diff --git a/docs/zh-CN/ecs/arch.md b/docs/zh-CN/ecs/arch.md index 096df73f..5e6cd878 100644 --- a/docs/zh-CN/ecs/arch.md +++ b/docs/zh-CN/ecs/arch.md @@ -138,7 +138,7 @@ ecsModule.Update(deltaTime); ## 相关入口 -- ECS 模块总览:[`index.md`](./index.md) -- 抽象契约页:[`../abstractions/ecs-arch-abstractions.md`](../abstractions/ecs-arch-abstractions.md) -- 仓库模块 README:[`GFramework.Ecs.Arch README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch/README.md) -- 统一 API / XML 导航:[`../api-reference/index.md`](../api-reference/index.md) +- ECS 模块总览:[ECS 模块总览](./index.md) +- 抽象契约页:[ECS 抽象层说明](../abstractions/ecs-arch-abstractions.md) +- 仓库模块说明:[Ecs.Arch 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Ecs.Arch/README.md) +- 统一 API / XML 导航:[API 参考](../api-reference/index.md) diff --git a/docs/zh-CN/ecs/index.md b/docs/zh-CN/ecs/index.md index 255226bc..77073a5e 100644 --- a/docs/zh-CN/ecs/index.md +++ b/docs/zh-CN/ecs/index.md @@ -12,8 +12,8 @@ GFramework 当前仓库内已经交付并持续维护的 ECS 模块族是 `Ecs.A | 包 | 适用场景 | 你会得到什么 | 继续阅读 | | --- | --- | --- | --- | -| `GFramework.Ecs.Arch` | 需要默认运行时、`UseArch(...)` 装配入口、`World` 注册和系统适配基类 | `ArchEcsModule`、`ArchSystemAdapter`、`ArchExtensions.UseArch(...)`、示例组件与系统 | [`arch.md`](./arch.md) | -| `GFramework.Ecs.Arch.Abstractions` | 只想让共享宿主循环、测试替身或扩展模块依赖最小契约,而不引入默认运行时 | `IArchEcsModule`、`IArchSystemAdapter`、`ArchOptions` 契约对象 | [`../abstractions/ecs-arch-abstractions.md`](../abstractions/ecs-arch-abstractions.md) | +| `GFramework.Ecs.Arch` | 需要默认运行时、`UseArch(...)` 装配入口、`World` 注册和系统适配基类 | `ArchEcsModule`、`ArchSystemAdapter`、`ArchExtensions.UseArch(...)`、示例组件与系统 | [Arch ECS 集成](./arch.md) | +| `GFramework.Ecs.Arch.Abstractions` | 只想让共享宿主循环、测试替身或扩展模块依赖最小契约,而不引入默认运行时 | `IArchEcsModule`、`IArchSystemAdapter`、`ArchOptions` 契约对象 | [ECS 抽象层说明](../abstractions/ecs-arch-abstractions.md) | ## 最小采用路径 @@ -114,9 +114,9 @@ public sealed class GameLoop ## 阅读顺序 1. 先看本页,确认自己要的是运行时包还是契约包 -2. 需要默认实现时继续读 [`arch.md`](./arch.md) -3. 只想保留共享边界时继续读 [`../abstractions/ecs-arch-abstractions.md`](../abstractions/ecs-arch-abstractions.md) -4. 统一查阅 README / docs / XML 入口时回到 [`../api-reference/index.md`](../api-reference/index.md) +2. 需要默认实现时继续读[Arch ECS 集成](./arch.md) +3. 只想保留共享边界时继续读[ECS 抽象层说明](../abstractions/ecs-arch-abstractions.md) +4. 统一查阅模块说明、专题页与 XML 入口时回到[API 参考](../api-reference/index.md) ## 源码阅读入口 @@ -129,8 +129,8 @@ public sealed class GameLoop | `GFramework.Ecs.Arch` | 示例组件与系统 | `Position`、`Velocity`、`MovementSystem` | 查询写法、组件布局和最小可运行示例 | | `GFramework.Ecs.Arch.Abstractions` | 契约与配置对象 | `IArchEcsModule`、`IArchSystemAdapter`、`ArchOptions` | 共享宿主循环、测试替身和跨程序集配置边界 | -## 边界说明 +## 模块边界 -- 当前仓库没有交付其他可直接消费的 ECS 运行时包;旧文档把“未来可能支持的其他 ECS 框架”写成现有能力,会误导采用路径。 -- `GFramework.Ecs.Arch.Abstractions` 负责“边界”,`GFramework.Ecs.Arch` 负责“默认实现”。 -- 站内页面只维护可构建的 docs 链路;仓库根 README 和模块 README 继续承担包目录入口职责。 +- 当前仓库面向读者提供的 ECS 采用路径就是 `Ecs.Arch` 模块族;如果你要接入 ECS,可以直接按本页列出的两个包选择。 +- `GFramework.Ecs.Arch.Abstractions` 适合共享宿主循环、测试替身或扩展模块,`GFramework.Ecs.Arch` 提供默认装配与运行时实现。 +- 需要进一步查看包目录、源码结构或安装说明时,可继续阅读[Arch ECS 集成](./arch.md)、[ECS 抽象层说明](../abstractions/ecs-arch-abstractions.md)和对应模块说明页。 diff --git a/docs/zh-CN/game/config-system.md b/docs/zh-CN/game/config-system.md index 5e454085..081f2f54 100644 --- a/docs/zh-CN/game/config-system.md +++ b/docs/zh-CN/game/config-system.md @@ -1005,30 +1005,23 @@ var hotReload = loader.EnableHotReload( 当前批量编辑入口仍刻意限制在“同域文件统一改动顶层标量字段和顶层标量数组”,避免复杂结构批量写回时破坏人工维护的 YAML 排版。 -## 当前限制 +## 适用范围 -以下能力尚未完全完成: +当前这套工具更适合已经定义好 schema、需要校验、轻量表单和批量改写能力的内容维护场景,尤其适合由开发者或技术策划主导的游戏项目配置工作流。 -- 更完整的 JSON Schema 支持 -- VS Code 中更深层对象数组嵌套的安全表单编辑器 -- 更强的复杂数组与更深 schema 关键字支持 +以下场景目前仍建议保留 raw YAML 编辑,或由项目补充专用工具: -因此,现阶段更适合作为你游戏项目的“受控试点配表系统”,而不是完全无约束的大规模内容生产平台。 +- 需要更完整的 JSON Schema 支持 +- 需要在 VS Code 中安全编辑更深层对象数组嵌套 +- 需要覆盖更复杂的数组结构和更深层 schema 关键字 -## 独立 Config Studio 评估 +## 工具形态建议 -当前阶段的结论是:`不建议立即启动独立 Config Studio`,继续以 `VS Code Extension` 作为主工具形态更合适。 +当前优先采用 `VS Code Extension` 形态即可覆盖仓库中已落地的主要工作流,包括 schema 校验、轻量表单、批量编辑和 raw YAML 回退。 -当前不单独启动桌面版的原因: +如果你的团队出现以下需求,再评估独立 `Config Studio` 会更合适: -- 当前已落地的能力主要仍围绕 schema 校验、轻量表单、批量编辑和 raw YAML 回退,这些都能在 VS Code 宿主里低成本迭代 -- runtime、generator、tooling 之间仍在持续收敛 schema 子集和元数据语义,过早拆出桌面工具会放大版本协同成本 -- 当前待补强点仍是更完整 schema 支持和复杂编辑体验,先在插件里验证真实工作流更稳妥 -- 仓库当前的主要使用者仍偏开发者和技术策划,独立桌面版带来的“免开发环境”收益还不足以抵消额外维护面 - -只有在以下条件明显成立时,再建议启动独立 `Config Studio`: - -- 主要使用者变成非开发人员,且 VS Code 安装与使用成本成为持续阻力 +- 主要使用者变成非开发人员,且 VS Code 的安装与使用成本持续阻碍日常维护 - 需要更重的表格视图、跨表可视化关系编辑、复杂审批流或离线发布流程 -- 插件形态已经频繁受限于 VS Code Webview/Extension API,而不是 schema 与工作流本身 -- 已经沉淀出稳定的 schema 元数据约定,能够支撑单独桌面产品的长期维护 +- 插件形态已经明显受限于 VS Code Webview / Extension API,而不是 schema 与工作流本身 +- 已经沉淀出稳定的 schema 元数据约定,足以支撑单独工具的长期维护 diff --git a/docs/zh-CN/game/index.md b/docs/zh-CN/game/index.md index b00396d5..8e9030e3 100644 --- a/docs/zh-CN/game/index.md +++ b/docs/zh-CN/game/index.md @@ -9,7 +9,7 @@ description: GFramework.Game family 的运行时入口、采用顺序与源码 它建立在 `Core` 之上,负责把“能运行的基础架构”继续扩展成“可落地的游戏项目基础设施”,重点覆盖静态内容配置、数据与存档、设置、场景与 UI 路由、序列化和文件存储。 -## 先理解包关系 +## 模块与包关系 - `GeWuYou.GFramework.Game` - 游戏层默认运行时实现。 @@ -23,22 +23,22 @@ description: GFramework.Game family 的运行时入口、采用顺序与源码 如果你的项目只想依赖契约,不想带入默认实现,请选择 `Game.Abstractions`。如果你需要可运行的默认基类与实现,请使用 `Game`。 -## 这个栏目应该回答什么 +## 栏目覆盖范围 `Game` 栏目聚焦“游戏项目该怎么接这些运行时能力”,不再保留与当前实现脱节的泛化模块示例。 当前栏目主要入口: - 配置与内容系统 - - [config-system](./config-system.md) + - [配置系统](./config-system.md) - 数据、设置、序列化与存储 - - [data](./data.md) - - [setting](./setting.md) - - [serialization](./serialization.md) - - [storage](./storage.md) + - [数据系统](./data.md) + - [设置系统](./setting.md) + - [序列化系统](./serialization.md) + - [存储系统](./storage.md) - 导航与界面 - - [scene](./scene.md) - - [ui](./ui.md) + - [场景系统](./scene.md) + - [UI 系统](./ui.md) ## 最小接入路径 @@ -70,9 +70,9 @@ IStorage storage = new FileStorage("GameData", serializer); 具体组合方式见: -- [setting](./setting.md) -- [data](./data.md) -- [storage](./storage.md) +- [设置系统](./setting.md) +- [数据系统](./data.md) +- [存储系统](./storage.md) ### 3. 接入静态 YAML 配置 @@ -84,7 +84,7 @@ IStorage storage = new FileStorage("GameData", serializer); 完整约定见: -- [config-system](./config-system.md) +- [配置系统](./config-system.md) ### 4. 接入 Scene / UI 路由 @@ -92,16 +92,16 @@ IStorage storage = new FileStorage("GameData", serializer); 入口见: -- [scene](./scene.md) -- [ui](./ui.md) +- [场景系统](./scene.md) +- [UI 系统](./ui.md) -## 推荐阅读顺序 +## 阅读顺序 1. [Core 入口](../core/index.md) -2. [config-system](./config-system.md) -3. [data](./data.md) -4. [setting](./setting.md) -5. [scene](./scene.md) 或 [ui](./ui.md) +2. [配置系统](./config-system.md) +3. [数据系统](./data.md) +4. [设置系统](./setting.md) +5. [场景系统](./scene.md)或[UI 系统](./ui.md) ## 源码与 API 阅读入口 @@ -115,7 +115,7 @@ IStorage storage = new FileStorage("GameData", serializer); ## 与真实接法的关系 -这个栏目以源码、`*.csproj`、模块 `README.md` 与 `ai-libs/` 下已验证的参考接法为准。 +本栏目内容以源码、`*.csproj`、模块说明页与 `ai-libs/` 下已验证的参考接法为准。 例如当前文档应优先和以下已验证事实保持一致: @@ -123,10 +123,10 @@ IStorage storage = new FileStorage("GameData", serializer); - 设置持久化通常通过 `UnifiedSettingsDataRepository` - 场景与 UI 路由依赖项目自己的 factory / root,而不是框架替你绑定引擎对象 -如果某个旧页面与这些事实冲突,应以源码和模块 README 为准,并在同一轮里修正文档。 +如果某个旧页面与这些事实冲突,应以源码和模块说明页为准,并在同一轮里修正文档。 ## 对应模块入口 -- [`GFramework.Game README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) -- [`GFramework.Game.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) -- 仓库根 [`README.md`](https://github.com/GeWuYou/GFramework/blob/main/README.md) +- [Game 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) +- [Game 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) +- [仓库总览](https://github.com/GeWuYou/GFramework/blob/main/README.md) diff --git a/docs/zh-CN/game/scene.md b/docs/zh-CN/game/scene.md index 9f069344..8a203175 100644 --- a/docs/zh-CN/game/scene.md +++ b/docs/zh-CN/game/scene.md @@ -256,7 +256,7 @@ await sceneRouter.PopAsync(); ## 推荐阅读 -1. [game/index.md](./index.md) -2. [ui.md](./ui.md) -3. [`GFramework.Game README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) -4. [`GFramework.Game.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) +1. [Game 模块总览](./index.md) +2. [UI 系统](./ui.md) +3. [Game 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) +4. [Game 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) diff --git a/docs/zh-CN/game/ui.md b/docs/zh-CN/game/ui.md index 34304f7f..a1d24e56 100644 --- a/docs/zh-CN/game/ui.md +++ b/docs/zh-CN/game/ui.md @@ -326,8 +326,8 @@ uiRouter.Hide(modalHandle, UiLayer.Modal); ## 推荐阅读 -1. [game/index.md](./index.md) -2. [scene.md](./scene.md) -3. [../source-generators/auto-ui-page-generator.md](../source-generators/auto-ui-page-generator.md) -4. [`GFramework.Game README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) -5. [`GFramework.Game.Abstractions README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) +1. [Game 模块总览](./index.md) +2. [场景系统](./scene.md) +3. [AutoUiPage 生成器](../source-generators/auto-ui-page-generator.md) +4. [Game 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) +5. [Game 抽象层说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.Abstractions/README.md) diff --git a/docs/zh-CN/getting-started/index.md b/docs/zh-CN/getting-started/index.md index be6ae543..f981c746 100644 --- a/docs/zh-CN/getting-started/index.md +++ b/docs/zh-CN/getting-started/index.md @@ -11,7 +11,7 @@ description: 概览 GFramework 的模块组成、最小接入路径与继续阅 2. 第一次接入应该从哪个包开始 3. 最小可运行路径是什么 -如果你还没决定具体用法,先阅读本栏目;如果你已经明确要用某个模块,直接进入对应模块目录下的 `README.md` 会更快。 +如果你还没决定具体用法,先阅读本栏目;如果你已经明确要用某个模块,直接进入对应模块的说明页会更快。 ## 推荐起步路径 @@ -31,8 +31,8 @@ description: 概览 GFramework 的模块组成、最小接入路径与继续阅 对应文档: -- [`../core/index.md`](../core/index.md) -- [`quick-start.md`](./quick-start.md) +- [Core 模块总览](../core/index.md) +- [快速开始](./quick-start.md) ### 想用新版 CQRS @@ -50,8 +50,8 @@ description: 概览 GFramework 的模块组成、最小接入路径与继续阅 对应文档: -- [`../core/cqrs.md`](../core/cqrs.md) -- 仓库内模块入口:[`GFramework.Cqrs README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs/README.md) +- [CQRS 运行时](../core/cqrs.md) +- 模块说明:[CQRS 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs/README.md) ### 想做游戏运行时 @@ -69,8 +69,8 @@ description: 概览 GFramework 的模块组成、最小接入路径与继续阅 对应文档: -- [`../game/index.md`](../game/index.md) -- 仓库内模块入口:[`GFramework.Game README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) +- [Game 模块总览](../game/index.md) +- 模块说明:[Game 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game/README.md) ### 想接入 Godot @@ -80,8 +80,8 @@ description: 概览 GFramework 的模块组成、最小接入路径与继续阅 对应文档: -- [`../godot/index.md`](../godot/index.md) -- 仓库内模块入口:[`GFramework.Godot README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot/README.md) +- [Godot 模块总览](../godot/index.md) +- 模块说明:[Godot 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot/README.md) ## Source Generators 什么时候装 @@ -101,9 +101,9 @@ description: 概览 GFramework 的模块组成、最小接入路径与继续阅 ## 建议阅读顺序 -1. [`quick-start.md`](./quick-start.md) -2. 你准备使用的模块 README -3. 对应栏目页,例如 `core/`、`game/`、`godot/` +1. [快速开始](./quick-start.md) +2. 你准备使用的模块说明页 +3. 对应栏目页,例如 `core`、`game`、`godot` 4. 需要更完整示例时,再进入 `tutorials/` ## 注意 diff --git a/docs/zh-CN/getting-started/quick-start.md b/docs/zh-CN/getting-started/quick-start.md index 6d37ea89..7041b78c 100644 --- a/docs/zh-CN/getting-started/quick-start.md +++ b/docs/zh-CN/getting-started/quick-start.md @@ -7,7 +7,7 @@ description: 通过只依赖 Core 的最小示例快速跑通 GFramework 基础 本页给出一个只依赖 `Core` 的最小路径,用来确认你已经成功接入 `Architecture`、`Model`、`System` 与旧版命令执行器。 -> 说明:当前仓库同时存在旧版 `Command` / `Query` 执行器与新版 `CQRS` runtime。本页故意先用最短路径说明基础架构如何跑起来;如果你要写新功能,随后应继续阅读 [`../core/cqrs.md`](../core/cqrs.md)。 +> 说明:当前仓库同时存在旧版 `Command` / `Query` 执行器与新版 `CQRS` runtime。本页先用最短路径说明基础架构如何跑起来;新功能优先采用 [CQRS 运行时](../core/cqrs.md)。 ## 1. 安装最小依赖 @@ -105,6 +105,6 @@ Console.WriteLine(count); // 1 ## 下一步 -- 想切到推荐的新请求模型:看 [`../core/cqrs.md`](../core/cqrs.md) -- 想进入游戏层能力:看 [`../game/index.md`](../game/index.md) -- 想看模块入口而不是栏目页:回到对应模块目录下的 `README.md` +- 新功能的请求 / 通知处理:看 [CQRS 运行时](../core/cqrs.md) +- 游戏层能力与接入顺序:看 [Game 模块总览](../game/index.md) +- 包目录与最小安装组合:看 [Core 运行时说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core/README.md) diff --git a/docs/zh-CN/godot/signal.md b/docs/zh-CN/godot/signal.md index b1e9a613..3561f883 100644 --- a/docs/zh-CN/godot/signal.md +++ b/docs/zh-CN/godot/signal.md @@ -104,7 +104,7 @@ slider.Signal(Range.SignalName.ValueChanged) ### 4. 静态场景绑定优先交给 `[BindNodeSignal]` -从 [`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) 和 `ai-libs/CoreGrid` 的当前接法看,静态场景按钮、滑条、菜单项这类固定 +从 [Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) 和 `ai-libs/CoreGrid` 的当前接法看,静态场景按钮、滑条、菜单项这类固定 节点,更常见的路径仍然是 `[BindNodeSignal]`: ```csharp diff --git a/docs/zh-CN/source-generators/auto-register-exported-collections-generator.md b/docs/zh-CN/source-generators/auto-register-exported-collections-generator.md index b1092654..1b72415e 100644 --- a/docs/zh-CN/source-generators/auto-register-exported-collections-generator.md +++ b/docs/zh-CN/source-generators/auto-register-exported-collections-generator.md @@ -217,7 +217,7 @@ public List? Values { get; } = new(); ## 推荐阅读 -1. [/zh-CN/source-generators/index](./index.md) -2. [/zh-CN/game/config-system](../game/config-system.md) -3. [/zh-CN/source-generators/godot-project-generator](./godot-project-generator.md) -4. [`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) +1. [源码生成器总览](./index.md) +2. [配置系统](../game/config-system.md) +3. [Godot 项目生成器](./godot-project-generator.md) +4. [Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) diff --git a/docs/zh-CN/source-generators/bind-node-signal-generator.md b/docs/zh-CN/source-generators/bind-node-signal-generator.md index 1c666b9d..56a077fc 100644 --- a/docs/zh-CN/source-generators/bind-node-signal-generator.md +++ b/docs/zh-CN/source-generators/bind-node-signal-generator.md @@ -186,7 +186,7 @@ private void OnAnyButtonPressed() ## 推荐阅读 -1. [/zh-CN/source-generators/get-node-generator](./get-node-generator.md) -2. [/zh-CN/source-generators/godot-project-generator](./godot-project-generator.md) -3. [/zh-CN/godot/ui](../godot/ui.md) -4. [`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) +1. [GetNode 生成器](./get-node-generator.md) +2. [Godot 项目生成器](./godot-project-generator.md) +3. [Godot UI 系统](../godot/ui.md) +4. [Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) diff --git a/docs/zh-CN/source-generators/context-aware-generator.md b/docs/zh-CN/source-generators/context-aware-generator.md index a6ccedc2..340a9ea3 100644 --- a/docs/zh-CN/source-generators/context-aware-generator.md +++ b/docs/zh-CN/source-generators/context-aware-generator.md @@ -192,7 +192,7 @@ finally ## 推荐阅读 -1. [context-get-generator.md](./context-get-generator.md) -2. [logging-generator.md](./logging-generator.md) -3. [../core/index.md](../core/index.md) -4. [`GFramework.Core.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.SourceGenerators/README.md) +1. [ContextGet 生成器](./context-get-generator.md) +2. [日志生成器](./logging-generator.md) +3. [Core 模块总览](../core/index.md) +4. [Core 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.SourceGenerators/README.md) diff --git a/docs/zh-CN/source-generators/cqrs-handler-registry-generator.md b/docs/zh-CN/source-generators/cqrs-handler-registry-generator.md index 82ddaf42..63b90ded 100644 --- a/docs/zh-CN/source-generators/cqrs-handler-registry-generator.md +++ b/docs/zh-CN/source-generators/cqrs-handler-registry-generator.md @@ -127,5 +127,5 @@ RegisterCqrsHandlersFromAssemblies( 模块族入口见: -- [../core/cqrs.md](../core/cqrs.md) -- [./index.md](./index.md) +- [CQRS 运行时](../core/cqrs.md) +- [源码生成器总览](./index.md) diff --git a/docs/zh-CN/source-generators/get-node-generator.md b/docs/zh-CN/source-generators/get-node-generator.md index be2dd7dd..50f007f3 100644 --- a/docs/zh-CN/source-generators/get-node-generator.md +++ b/docs/zh-CN/source-generators/get-node-generator.md @@ -192,7 +192,7 @@ public override void _Ready() ## 推荐阅读 -1. [/zh-CN/source-generators/bind-node-signal-generator](./bind-node-signal-generator.md) -2. [/zh-CN/source-generators/godot-project-generator](./godot-project-generator.md) -3. [/zh-CN/godot/ui](../godot/ui.md) -4. [`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) +1. [BindNodeSignal 生成器](./bind-node-signal-generator.md) +2. [Godot 项目生成器](./godot-project-generator.md) +3. [Godot UI 系统](../godot/ui.md) +4. [Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) diff --git a/docs/zh-CN/source-generators/godot-project-generator.md b/docs/zh-CN/source-generators/godot-project-generator.md index d1342379..09634d8e 100644 --- a/docs/zh-CN/source-generators/godot-project-generator.md +++ b/docs/zh-CN/source-generators/godot-project-generator.md @@ -214,7 +214,7 @@ AutoLoad 名称也遵循同样的冲突处理策略。 ## 推荐阅读 -1. [/zh-CN/source-generators/get-node-generator](./get-node-generator.md) -2. [/zh-CN/source-generators/bind-node-signal-generator](./bind-node-signal-generator.md) -3. [/zh-CN/tutorials/godot-integration](../tutorials/godot-integration.md) -4. [`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) +1. [GetNode 生成器](./get-node-generator.md) +2. [BindNodeSignal 生成器](./bind-node-signal-generator.md) +3. [Godot 集成教程](../tutorials/godot-integration.md) +4. [Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) diff --git a/docs/zh-CN/source-generators/index.md b/docs/zh-CN/source-generators/index.md index 2f0ba1c3..75952ced 100644 --- a/docs/zh-CN/source-generators/index.md +++ b/docs/zh-CN/source-generators/index.md @@ -59,30 +59,30 @@ GFramework 当前发布的生成器包是: ### Core 侧通用生成器 -- [logging-generator](./logging-generator.md) -- [context-aware-generator](./context-aware-generator.md) -- [context-get-generator](./context-get-generator.md) -- [enum-generator](./enum-generator.md) -- [priority-generator](./priority-generator.md) -- [auto-register-module-generator](./auto-register-module-generator.md) +- [日志生成器](./logging-generator.md) +- [ContextAware 生成器](./context-aware-generator.md) +- [ContextGet 生成器](./context-get-generator.md) +- [枚举生成器](./enum-generator.md) +- [Priority 生成器](./priority-generator.md) +- [模块自动注册生成器](./auto-register-module-generator.md) ### Game / CQRS 相关生成器 - 配置 schema 生成与运行时接法: - - [../game/config-system.md](../game/config-system.md) + - [配置系统](../game/config-system.md) - CQRS handler registry 生成器: - - [cqrs-handler-registry-generator](./cqrs-handler-registry-generator.md) + - [CQRS Handler Registry 生成器](./cqrs-handler-registry-generator.md) - CQRS 模块族采用入口: - - [../core/cqrs.md](../core/cqrs.md) + - [CQRS 运行时](../core/cqrs.md) ### Godot 专用生成器 -- [godot-project-generator](./godot-project-generator.md) -- [get-node-generator](./get-node-generator.md) -- [bind-node-signal-generator](./bind-node-signal-generator.md) -- [auto-ui-page-generator](./auto-ui-page-generator.md) -- [auto-scene-generator](./auto-scene-generator.md) -- [auto-register-exported-collections-generator](./auto-register-exported-collections-generator.md) +- [Godot 项目生成器](./godot-project-generator.md) +- [GetNode 生成器](./get-node-generator.md) +- [BindNodeSignal 生成器](./bind-node-signal-generator.md) +- [AutoUiPage 生成器](./auto-ui-page-generator.md) +- [AutoScene 生成器](./auto-scene-generator.md) +- [AutoRegisterExportedCollections 生成器](./auto-register-exported-collections-generator.md) ## 推荐接入顺序 @@ -101,7 +101,7 @@ GFramework 当前发布的生成器包是: ## 对应模块入口 -- [`GFramework.Core.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.SourceGenerators/README.md) -- [`GFramework.Game.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.SourceGenerators/README.md) -- [`GFramework.Cqrs.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs.SourceGenerators/README.md) -- [`GFramework.Godot.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) +- [Core 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.SourceGenerators/README.md) +- [Game 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Game.SourceGenerators/README.md) +- [CQRS 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Cqrs.SourceGenerators/README.md) +- [Godot 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Godot.SourceGenerators/README.md) diff --git a/docs/zh-CN/source-generators/priority-generator.md b/docs/zh-CN/source-generators/priority-generator.md index 31918c48..9317937f 100644 --- a/docs/zh-CN/source-generators/priority-generator.md +++ b/docs/zh-CN/source-generators/priority-generator.md @@ -210,7 +210,7 @@ public sealed class DynamicPrioritySystem : IPrioritized ## 推荐阅读 -1. [context-aware-generator.md](./context-aware-generator.md) -2. [context-get-generator.md](./context-get-generator.md) -3. [../core/index.md](../core/index.md) -4. [`GFramework.Core.SourceGenerators README`](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.SourceGenerators/README.md) +1. [ContextAware 生成器](./context-aware-generator.md) +2. [ContextGet 生成器](./context-get-generator.md) +3. [Core 模块总览](../core/index.md) +4. [Core 源码生成器说明](https://github.com/GeWuYou/GFramework/blob/main/GFramework.Core.SourceGenerators/README.md)