GFramework/ai-plan/public/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.md
gewuyou 1239fb4651 refactor(skills): 统一文档刷新技能入口
- 新增 gframework-doc-refresh 统一技能入口,并补齐模块扫描、证据顺序、模板与校验脚本

- 更新共享文档规范与模块映射,收口源码模块到 README、docs 和 ai-libs 的固定关联

- 删除旧 vitepress-* 公开技能定义,避免继续以文档类型拆分入口

- 同步 documentation-governance-and-refresh 的恢复点、风险和下一步
2026-04-22 09:13:22 +08:00

238 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Documentation Governance And Refresh 追踪
## 2026-04-19
### 阶段local-plan 迁移收口RP-001
- 复核当前工作树后确认worktree 根目录仅剩一个 legacy `local-plan/`,其内容属于文档治理与重写主题的
durable recovery state不应继续作为独立根目录入口存在
-`ai-plan` 治理规则建立 `ai-plan/public/documentation-governance-and-refresh/` 主题目录,并补齐:
- `todos/`
- `traces/`
- `archive/todos/`
- `archive/traces/`
- 将原 `local-plan` 中的详细 tracking / trace 迁入主题内历史归档,并为 active 入口只保留当前恢复点、
活跃事实、风险与下一步
-`ai-plan/public/README.md` 中建立
`docs/sdk-update-documentation` -> `documentation-governance-and-refresh` 的 worktree 映射
- 同步更新 `ai-plan-governance` 的 tracking / trace记录本次迁移已验证当前工作树不再依赖 worktree-root
`local-plan/`
### Archive Context
- 历史跟踪归档:
- `ai-plan/public/documentation-governance-and-refresh/archive/todos/documentation-governance-and-refresh-history-through-2026-04-18.md`
- 历史 trace 归档:
- `ai-plan/public/documentation-governance-and-refresh/archive/traces/documentation-governance-and-refresh-history-through-2026-04-18.md`
### 下一步RP-001
1. 后续继续该主题时,只从 `ai-plan/public/documentation-governance-and-refresh/` 进入,不再恢复 `local-plan/`
2. 若 active 入口再次积累多轮已完成且已验证阶段,继续按同一模式迁入该主题自己的 `archive/`
## 2026-04-21
### 阶段:栏目 landing page 收口RP-002
- 依据 `ai-plan/public/README.md` 的 worktree 映射恢复 `documentation-governance-and-refresh` 主题,并确认该分支下一步应优先处理 `docs/zh-CN/core/*``game/*``source-generators/*`
- 复核 `docs/zh-CN/core/index.md``docs/zh-CN/game/index.md``docs/zh-CN/source-generators/index.md` 后确认:这三页仍保留旧版“大而全教程”结构,与当前模块 README、包拆分关系和推荐接入路径明显漂移
- 对照 `GFramework.Core/README.md``GFramework.Game/README.md``GFramework.Core.SourceGenerators/README.md`
`GFramework.Game.SourceGenerators/README.md``GFramework.Cqrs.SourceGenerators/README.md`
`GFramework.Godot.SourceGenerators/README.md`,重写三个栏目 landing page使其回到“模块定位、包关系、最小接入路径、继续阅读”的可信入口形态
- 首次执行 `cd docs && bun run build` 时发现 VitePress 会把跳到 `docs/` 目录外的相对链接判定为 dead link因此将 landing page 末尾的模块 README 入口改为纯文本路径提示而非站内链接
- 第二次执行 `cd docs && bun run build` 通过,说明当前 landing page 重写没有破坏站点构建
### 当前结论
- 当前默认导航入口已显著收敛,但专题页仍需逐页按源码与测试继续核对
- 后续优先级应从 `core` 专题页开始,再向 `game``source-generators` 扩展
### 下一步RP-002
1. 审核 `docs/zh-CN/core/architecture.md``context.md``lifecycle.md``command.md``query.md``cqrs.md`
2. 记录每页的失真点、真实 API 名称与应保留的最小示例
3. 完成一轮专题页重写后再次执行 `cd docs && bun run build`
### 补充2026-04-21 内容引用迁移
- 按当前文档治理主题,继续清理活跃规范与面向读者的内容入口中的旧参考仓库命名
- `AGENTS.md` 已把“secondary evidence source”从特定项目名收口为 `ai-libs/` 下的已验证只读参考实现
- `GFramework.Game/README.md``GFramework.Game.Abstractions/README.md`
`docs/zh-CN/game/index.md` 已同步改为 `ai-libs/` 参考表述,并去掉特定参考项目名称与项目内类型名线索
- `documentation-governance-and-refresh` active tracking 已同步把风险缓解中的参考来源更新为
`ai-libs/` 下已验证参考实现
- 下一次专题页重写时,继续沿用同一表述,不再把特定参考项目名写入新的活跃文档入口
### 补充2026-04-21 Core 专题页收口RP-003
- 复核 `docs/zh-CN/core/architecture.md``context.md``lifecycle.md``command.md``query.md``cqrs.md`
后确认:这些页面仍大量保留旧 API 叙述,例如 `Init()`、属性式 `CommandBus` / `QueryBus`、旧 `Input`
赋值式命令/查询示例,以及已移除的 `RegisterMediatorBehavior`
- 对照 `Architecture``ArchitectureContext``IArchitectureContext``ContextAwareBase`、旧
`AbstractCommand` / `AbstractQuery` 基类和 `GFramework.Cqrs/README.md` 后,重写上述六个页面
- 新版专题页将结构统一为“当前角色、真实公开入口、最小示例、兼容边界、迁移方向”,避免继续复刻旧版大而全教程
- `core/context.md` 已明确把 `GameContext` 收束为兼容回退路径,而不是新代码的推荐接法
- `core/command.md``core/query.md` 已明确旧体系仍可用,但新功能应优先走 `GFramework.Cqrs`
- `core/cqrs.md` 已与当前 runtime / generator / handler 注册语义对齐,并明确 `RegisterCqrsPipelineBehavior<TBehavior>()`
是公开入口
- 执行 `cd docs && bun run build` 通过,说明本轮 `core` 专题页重写没有破坏文档站构建
### 下一步RP-003
### 补充2026-04-21 PR review 跟进收口RP-004
- 通过 `gframework-pr-review` 复查当前分支 PR 时发现:脚本把同一 head commit 上空 body 的 `APPROVED`
review 误当成“最新 review body”导致 `Nitpick comments` 未被结构化提取
- 对照 GitHub API 的 review 列表后,确认真正包含 `Nitpick comments (2)` 的是更早 3 秒提交的
`COMMENTED` review因此调整脚本为“保持最新 review 元数据输出不变,但解析时优先选择同一提交上的最新非空
CodeRabbit review body”
- 根据重新提取的 Nitpick 内容,补齐 `docs/zh-CN/core/index.md``Godot``Source Generators`
栏目的可点击链接
- 顺手修正 active trace 中重复的 `### 下一步` 标题,消除 `MD024/no-duplicate-heading` 告警,避免后续 PR
review 再次把文档治理入口本身标成噪音
### 验证RP-004
- `python3 .codex/skills/gframework-pr-review/scripts/fetch_current_pr_review.py --format json`
- `cd docs && bun run build`
### 下一步RP-004
1. 继续处理 `docs/zh-CN/core/events.md``property.md``state-management.md``coroutine.md``logging.md`
2. 若 active trace 继续累计多个已完成恢复点,按 `archive/traces/` 粒度归档旧阶段细节
3. 保持 PR review 跟进时优先验证最新未解决线程、非空 CodeRabbit review body 与 MegaLinter 明确告警
### 阶段Core 剩余高风险专题页核对RP-005
- 依据 `documentation-governance-and-refresh` active tracking 的恢复点,继续核对
`docs/zh-CN/core/events.md``property.md``state-management.md``coroutine.md``logging.md`
- 对照 `GFramework.Core/Events/*``Property/*``Logging/*``StateManagement/*``Coroutine/*` 以及对应测试后确认:
- `events.md``property.md``logging.md` 仍带有旧版“大而全 API 列表”写法,与当前公开入口和推荐边界不匹配
- `state-management.md``coroutine.md` 已和当前 runtime / 测试语义基本对齐,本轮无需为了统一文风做额外重写
- 重写 `events.md`,使其回到“上下文入口、`EventBus` / `EnhancedEventBus`、优先级传播、局部事件对象、与 Store / CQRS
的边界”的当前结构
- 重写 `property.md`,使其回到“字段级响应式值、何时继续使用 `BindableProperty<T>`、何时切到 `Store<TState>`”的当前结构,
并补充 `BindableProperty<T>.Comparer` 按闭合泛型共享的兼容注意点
- 重写 `logging.md`,使其回到“`LoggerFactoryResolver` 默认行为、`ArchitectureConfiguration` 日志 provider 配置、
`IStructuredLogger` / `LogContext`、provider 替换边界”的当前结构
- 执行 `cd docs && bun run build` 通过,说明本轮 `core` 专题页收口没有破坏文档站构建
### 当前结论RP-005
- 本轮计划中的 `core` 剩余高风险页面已完成核对;`state-management``coroutine` 经复核后可继续保留
- `core` 栏目下一步不再需要围绕这五页反复停留,后续重心应转到 `docs/zh-CN/game/*``docs/zh-CN/source-generators/*`
### 下一步RP-005
1. 继续核对 `docs/zh-CN/game/*`,优先处理仍引用旧安装方式、旧状态系统或旧 UI / Scene 接法的页面
2. 再推进 `docs/zh-CN/source-generators/*`,重点核对生成器 wiring、包关系与最小接入示例
3. 若 active trace 继续累计多个已完成恢复点,按 `archive/traces/` 粒度归档旧阶段细节
### 阶段Game Scene / UI 专题页收口RP-006
- 依据 `documentation-governance-and-refresh` active tracking 的下一步,优先复核 `docs/zh-CN/game/scene.md`
`docs/zh-CN/game/ui.md`
- 对照 `GFramework.Game.Abstractions/Scene/*``GFramework.Game.Abstractions/UI/*``GFramework.Game/Scene/SceneRouterBase.cs`
`GFramework.Game/UI/UiRouterBase.cs``GFramework.Game/README.md``ai-libs/CoreGrid` 参考接法后确认:
- `scene.md` 仍把场景系统写成框架自带完整注册/装配的一体化方案,没有突出 `ISceneFactory``ISceneRoot` 和项目侧
router 派生类的责任边界
- `ui.md` 仍按旧教程式结构展开,没有清楚区分 `Page` 栈与 `Overlay/Modal/Toast/Topmost` 层级 UI也缺少当前
`UiInteractionProfile``TryDispatchUiAction(...)` 与 World 输入阻断语义
- 重写 `scene.md`,使其回到“当前公开入口、场景栈语义、最小接入路径、守卫/过渡处理器扩展点、与旧写法的边界”的结构
- 重写 `ui.md`,使其回到“页面栈与层级 UI 分流、输入仲裁、暂停/阻断语义、最小接入路径、扩展点”的结构
- 新版两页都明确了factory、root、引擎节点与注册表仍由项目或适配层提供框架当前提供的是 router 基类与通用编排
### 验证RP-006
- `cd docs && bun run build`
### 下一步RP-006
1. 继续核对 `docs/zh-CN/source-generators/*`,优先处理仍引用旧初始化方式、旧聚合包名或过时 generator wiring 的页面
2. 重点复核 `priority-generator.md``context-aware-generator.md` 与 Godot 相关生成器页面,确认示例仍与当前 runtime /
generator 入口一致
3.`source-generators` 出现多页连续收口结果,再按恢复点粒度整理 active trace避免默认入口继续膨胀
### 阶段Core Source Generator 关键专题页收口RP-007
- 依据 `documentation-governance-and-refresh` active tracking 的下一步,优先复核
`docs/zh-CN/source-generators/context-aware-generator.md``priority-generator.md`
- 对照 `GFramework.Core.SourceGenerators/Rule/ContextAwareGenerator.cs``GFramework.Core/Rule/ContextAwareBase.cs`
`GFramework.Core/Extensions/ContextAwareServiceExtensions.cs``GFramework.Core.SourceGenerators/Bases/PriorityGenerator.cs`
`GFramework.Core.Abstractions/Architectures/IArchitectureContext.cs` 与相关诊断定义后确认:
- `context-aware-generator.md` 仍在展示旧版简化生成代码,没有说明当前实例缓存、类型级共享 provider、同步锁以及
`ContextAwareBase` 的不同默认回退路径
- `priority-generator.md` 仍把 `[Priority]` 写成“标了就自动改变顺序”的教程式功能说明,并大量使用
`GetAllByPriority<T>()``system.Init()` 这类不适合作为当前 `IContextAware` 路径默认示例的旧写法
- 重写 `context-aware-generator.md`使其回到“最小用法、当前生成成员、provider 与实例缓存语义、与 `ContextAwareBase`
和 Context Get 注入的关系、测试边界”的结构
- 重写 `priority-generator.md`,使其回到“只生成 `IPrioritized`、priority-aware API 在不同层上的入口、动态优先级边界、
诊断与约束”的结构
- 新版两页都明确了:排序效果取决于调用方是否走 priority-aware API`[ContextAware]` 生成路径与
`ContextAwareBase` 不是同一套默认行为
### 验证RP-007
- `cd docs && bun run build`
### 下一步RP-007
1. 继续核对 Godot 相关生成器页面,优先处理 `godot-project-generator.md``get-node-generator.md`
`bind-node-signal-generator.md`
2. 重点确认 `project.godot``AutoLoad` / `InputActions``GetNode` / `BindNodeSignal` 示例仍与当前包关系和生成器入口一致
3. 若 Godot 页面也出现连续收口结果,再按恢复点粒度整理 active trace避免默认入口继续膨胀
## 2026-04-22
### 阶段:统一文档编排 skill 收口RP-008
- 依据当前主题“文档治理 + 持续刷新”的目标,复核 `.agents/skills/` 后确认:现有 `vitepress-api-doc`
`vitepress-batch-api``vitepress-doc-generator``vitepress-guide``vitepress-tutorial`
`vitepress-validate` 仍保留旧的并列入口模型,其中多数 `SKILL.md` 没有标准 YAML frontmatter已经不适合作为当前
Codex skill 继续公开暴露
- 结合当前 `*.csproj``docs/zh-CN` 栏目、模块 README 与 `ai-libs/CoreGrid` 参考入口,建立
`.agents/skills/_shared/module-map.json`,把文档刷新主输入固定为真实源码模块,而不是 `guide/tutorial/api`
之类的文档类型
- 重写 `.agents/skills/_shared/DOCUMENTATION_STANDARDS.md`,去掉已经失真的固定页面清单,明确固定证据顺序:
1. 源码 / XML docs / `*.csproj`
2. 测试与 snapshot
3. README
4. 当前 `docs/zh-CN`
5. `ai-libs/`
6. 归档文档
- 新增 `.agents/skills/gframework-doc-refresh/`,补齐:
- 标准 frontmatter 的 `SKILL.md`
- `agents/openai.yaml`
- `references/` 下的模块选择、证据顺序与输出策略说明
- `templates/` 下的 landing/topic/API/tutorial 骨架
- `scripts/scan_module_evidence.py`
- 迁移后的文档校验脚本 `validate-*.sh`
- `scan_module_evidence.py` 已支持:
- 模块名与别名归一化
- docs 栏目别名歧义检测
- 输出源码、测试、README、docs、`ai-libs/` 的存在性扫描结果
- 对 landing/topic/fallback 状态做基础判断,作为后续页面收口入口
- `.agents/skills/README.md` 已改成“统一公开入口 + 共享资源”说明,不再把旧 `vitepress-*` skill 当成推荐工作流
-`vitepress-*` skill 文件已删除;目录本身在当前 Windows-backed worktree 上因只读元数据仍可能残留为空目录,但由于
`SKILL.md` 已删除,它们不再构成可发现的 skill 入口
### 验证RP-008
- `python3 -B .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Core`
- `python3 -B .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Godot.SourceGenerators`
- `python3 -B .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Cqrs`
- `python3 -B .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py source-generators --json`
### 当前结论RP-008
- 当前文档刷新入口已经从“按文档类型拆 skill”转为“按源码模块驱动文档评估与更新”
- `ai-libs/` 已正式纳入标准证据链,但仅用于 adoption path 和真实 wiring 参考,不覆盖源码契约
- 旧 skill 中仍有价值的模板与校验逻辑已经迁入统一入口或 `_shared/`,后续不需要再维护多套并列说明
### 下一步RP-008
1. 使用 `gframework-doc-refresh``Godot.SourceGenerators` 做一次真实模块扫描,并据此继续刷新
`godot-project-generator.md``get-node-generator.md``bind-node-signal-generator.md`
2. 若发现 `module-map.json` 在 Godot 场景下仍缺少别名或 docs 映射,再回补共享映射,而不是在单页文档里硬编码
3. 若后续 skill 收口过程继续积累细节,再把迁移细节归档到本 topic 的 `archive/`,保持 active trace 可快速恢复