mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 更新 Godot 项目元数据、GetNode 与 BindNodeSignal 专题页,按当前源码与测试收口最小接入路径、生成语义与诊断边界 - 补充 documentation-governance-and-refresh 的 RP-011 恢复点、验证结果与下一步建议
13 KiB
13 KiB
Documentation Governance And Refresh 跟踪
目标
继续以“文档必须可追溯到源码、测试与真实接入方式”为原则,收敛 GFramework 的仓库入口、模块入口与
docs/zh-CN 采用链路,避免未来再次出现 API、安装方式与目录结构失真。
当前恢复点
- 恢复点编号:
DOCUMENTATION-GOVERNANCE-REFRESH-RP-011 - 当前阶段:
Phase 3 - 当前焦点:
- 已建立统一公开 skill:
.agents/skills/gframework-doc-refresh/ - 文档重构入口已从“按 guide/tutorial/api 类型拆 skill”收口为“按源码模块驱动文档刷新”
- PR #268 的当前未解决 review 线程已进入收口:Scene/UI 标题层级修正、共享脚本 review 修复、
gframework-pr-review多 AI reviewer 支持补齐 Godot.SourceGenerators的 3 个高风险专题页已按当前实现重写,下一轮转入剩余生成器页与 PR thread 收口
- 已建立统一公开 skill:
当前状态摘要
- 文档治理规则已收口到仓库规范,README、站点入口与采用链路不再依赖旧文档自证
- 高优先级模块入口与
core关键专题页已回到可作为默认导航入口的状态,本轮计划中的core剩余高风险页面已完成收口 - 当前主题仍是 active topic,因为
source-generators栏目下的 Godot 相关页面仍可能包含与实现漂移的旧内容,且统一 skill 还需要在该场景上继续落地使用
当前活跃事实
- 旧
local-plan/的详细 todo 与 trace 已迁入主题内archive/ - 当前分支
docs/sdk-update-documentation已在ai-plan/public/README.md建立 topic 映射 - active 跟踪文件只保留当前恢复点、活跃事实、风险与下一步,不再重复保存已完成阶段的长篇历史
- active trace 已把 RP-001 到 RP-008 的闭环历史归档到
ai-plan/public/documentation-governance-and-refresh/archive/traces/documentation-governance-and-refresh-rp-001-through-rp-008.md core、game与source-generators三个栏目入口页现在都以模块 README 与当前包拆分为准docs站点构建已验证通过,修正了 VitePress 对docs/目录外相对链接的 dead-link 检查问题core关键专题页已移除Init()、属性式CommandBus/QueryBus、旧Input赋值式示例和已移除的RegisterMediatorBehavior等过时说明core/index.md已把Godot与Source Generators栏目入口改成可点击链接,补齐 landing page 导航一致性documentation-governance-and-refreshactive trace 已把重复的### 下一步标题改成带恢复点标识的唯一标题,消除MD024/no-duplicate-heading告警gframework-pr-review脚本已修复“空APPROVEDreview 覆盖非空 CodeRabbit review body”的解析路径,当前分支可重新提取 Nitpick commentsgframework-pr-review现在显式把coderabbitai[bot]与greptile-apps[bot]视为支持的 AI reviewer,并在输出中单独列出 reviewer 元数据与 latest-head open thread 计数,不再只把greptile-apps混在通用 thread 列表里.agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py已为全部函数补齐 docstring;本地 AST 统计为44/44,文件级 docstring coverage 为100%docs/zh-CN/core/events.md、property.md与logging.md已改成“当前角色、最常用入口、边界和迁移建议”的结构, 不再复刻旧版大而全 API 列表docs/zh-CN/core/property.md已明确记录BindableProperty<T>.Comparer的闭合泛型级共享语义,避免文档继续误导读者把WithComparer(...)当成实例级配置docs/zh-CN/core/state-management.md与coroutine.md已按当前 runtime / 测试重新核对,当前内容可继续保留docs/zh-CN/game/scene.md已改成“真实公开入口、场景栈语义、factory/root 装配、过渡处理器与守卫扩展点”的结构, 不再暗示框架自带统一场景注册与完整引擎装配;本轮已补充项目侧目录布局、文件命名、最小 wiring 与兼容说明,并把 “推荐目录与文件约定(项目侧)” 收口为 “最小接入路径” 下的子节docs/zh-CN/game/ui.md已改成“Page 栈、layer UI、输入动作仲裁、World 阻断与暂停语义”的结构,明确Show(...)不适用于UiLayer.Page;本轮已补充 router、factory、root、page behavior、params 与 views 的推荐放置约定,并修复 “最小接入路径” 空节与标题层级错位问题- 本轮重写后再次执行
cd docs && bun run build通过,当前game栏目入口与专题页改动没有破坏站点构建 docs/zh-CN/source-generators/context-aware-generator.md已改成“真实生成成员、provider/实例缓存语义、与ContextAwareBase的边界、测试接法”的结构, 不再用旧版简化生成代码替代当前实现docs/zh-CN/source-generators/priority-generator.md已改成“生成IPrioritized、priority-aware 检索 API、动态优先级边界与诊断”的结构, 不再把GetAllByPriority<T>()/system.Init()当作所有场景的默认示例- 本轮重写后再次执行
cd docs && bun run build通过,当前source-generators栏目改动没有破坏站点构建 docs/zh-CN/source-generators/godot-project-generator.md已改成“包关系、最小接入路径、AutoLoad / InputActions 生成语义、project.godot文件约束与诊断边界”的结构, 明确GFrameworkGodotProjectFile只能改相对路径、不能改文件名docs/zh-CN/source-generators/get-node-generator.md已改成“字段注入职责、路径推断、Required/Lookup语义、_Ready()自动补齐边界与冲突诊断”的结构, 明确只有缺少_Ready()时才会生成OnGetNodeReadyGenerated()docs/zh-CN/source-generators/bind-node-signal-generator.md已改成“CLR event 绑定职责、生命周期接线要求、与[GetNode]的调用顺序、签名约束与命名冲突”的结构, 明确当前不会自动生成_Ready()/_ExitTree().agents/skills/gframework-doc-refresh/SKILL.md已改成标准 YAML frontmatter skill,并明确支持模块输入、证据顺序、输出优先级与验证步骤.agents/skills/gframework-doc-refresh/SKILL.md的description已加引号,修复Recommended command:中冒号导致的 invalid YAML skill 加载警告.agents/skills/gframework-doc-refresh/scripts/validate-code-blocks.sh已改成基于IN_CODE_BLOCK跟踪 opening / closing fence,避免把 closing fence 误报成缺少语言标记.agents/skills/_shared/module-config.sh的get_readme_paths()已补齐Core.SourceGenerators.Abstractions、Godot.SourceGenerators.Abstractions、Ecs.Arch.Abstractions与SourceGenerators.Common,并在未映射模块时返回 非零退出码.agents/skills/_shared/module-map.json已收口为源码模块映射表,覆盖源码目录、测试项目、README、docs/zh-CN栏目与ai-libs/参考入口- 旧
vitepress-api-doc、vitepress-batch-api、vitepress-doc-generator、vitepress-guide、vitepress-tutorial、vitepress-validate已不再保留为可用公开 skill 定义文件 ai-libs/已纳入统一 skill 的标准证据链,只作为消费者接入参考,不再替代源码与测试契约
当前风险
- 旧专题页示例失真风险:
docs/zh-CN/game/*与source-generators/*中仍可能保留看似合理但与真实实现不一致的示例- 缓解措施:
game/scene.md、ui.md、source-generators/context-aware-generator.md与priority-generator.md已完成收口;godot-project-generator.md、get-node-generator.md与bind-node-signal-generator.md已完成收口; 继续按源码、测试、*.csproj与ai-libs/下已验证参考实现核对剩余 Godot 相关页面,不把旧文档当事实来源
- 缓解措施:
- 采用路径误导风险:根聚合包与模块边界若再次被写错,会继续误导消费者的包选择
- 缓解措施:保持“源码与包关系优先”的证据顺序,改动采用说明时同步核对包依赖与生成器 wiring
- 模块映射不全风险:统一 skill 若遗漏模块别名、测试项目或 docs 栏目映射,会让后续扫描阶段直接失焦
- 缓解措施:以当前
*.csproj族为 canonical module list,统一维护.agents/skills/_shared/module-map.json
- 缓解措施:以当前
ai-libs/漂移风险:参考项目若滞后于当前实现,可能把过时 wiring 重新带回文档- 缓解措施:在 skill 中固定“源码/测试优先,
ai-libs/只补 adoption path”的证据顺序
- 缓解措施:在 skill 中固定“源码/测试优先,
- 旧模板迁移失真风险:旧
vitepress-*skill 的模板和规范若原样沿用,可能继续输出过时结构- 缓解措施:只迁移可复用骨架,把输出优先级和证据规则重写进统一 skill
- 统一入口过宽风险:若
gframework-doc-refresh的触发描述过宽,可能在模块不明确时误进入文档生成- 缓解措施:要求先做模块归一化;遇到栏目别名歧义时只返回建议,不直接生成文档
- Active 入口回膨胀风险:后续若把栏目级重写过程直接追加到 active 文档,会再次拖慢恢复
- 缓解措施:阶段完成并验证后,继续把细节迁入本 topic 的
archive/
- 缓解措施:阶段完成并验证后,继续把细节迁入本 topic 的
- review 跟进遗漏风险:如果 PR review 抓取继续优先选中空 review body,会漏掉 CodeRabbit 的 Nitpick 和
linter 跟进项
- 缓解措施:保持当前“最新提交 + 最新非空 CodeRabbit review body”解析策略,并在有疑点时以 API 实抓结果复核
- reviewer 适配漂移风险:若后续新增 AI reviewer 但脚本仍只维护固定 bot 名单,可能再次出现“线程能看见、skill 却未声明覆盖”的偏差
- 缓解措施:当前已显式支持
coderabbitai[bot]与greptile-apps[bot];新增 reviewer 时同步更新.agents/skills/gframework-pr-review/SKILL.md、agents/openai.yaml与抓取脚本常量表
- 缓解措施:当前已显式支持
活跃文档
- 历史跟踪归档:documentation-governance-and-refresh-history-through-2026-04-18.md
- 历史 trace 归档:documentation-governance-and-refresh-history-through-2026-04-18.md
- RP-001 到 RP-008 trace 归档:documentation-governance-and-refresh-rp-001-through-rp-008.md
验证说明
- 旧
local-plan/的详细实施历史与文档站构建结果已迁入主题内归档 - active 跟踪文件已按
ai-plan治理规则精简为当前恢复入口 cd docs && bun run buildpython3 -B .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py --branch docs/sdk-update-documentation --format json --json-output /tmp/current-pr-review.jsonpython3 -B .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py --branch docs/sdk-update-documentation --section open-threadspython3 -B -c "import ast, pathlib; path=pathlib.Path('.agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py'); tree=ast.parse(path.read_text(encoding='utf-8')); funcs=[node for node in ast.walk(tree) if isinstance(node,(ast.FunctionDef, ast.AsyncFunctionDef))]; documented=sum(1 for node in funcs if ast.get_docstring(node)); print(f'functions={len(funcs)} documented={documented} coverage={documented/len(funcs):.2%}')"bash .agents/skills/gframework-doc-refresh/scripts/validate-code-blocks.sh docs/zh-CN/game/scene.mdbash .agents/skills/gframework-doc-refresh/scripts/validate-code-blocks.sh docs/zh-CN/game/ui.mdbash -lc 'source .agents/skills/_shared/module-config.sh && get_readme_paths Core.SourceGenerators.Abstractions && if get_readme_paths Not.Real.Module; then exit 1; else echo unmapped-ok; fi'python3 -c "import pathlib, yaml; text = pathlib.Path('.agents/skills/gframework-doc-refresh/SKILL.md').read_text(); yaml.safe_load(text.split('---', 2)[1]); print('yaml-ok')"python3 .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Corepython3 .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Godot.SourceGeneratorspython3 .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py Cqrsbash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh docs/zh-CN/source-generators/godot-project-generator.mdbash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh docs/zh-CN/source-generators/get-node-generator.mdbash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh docs/zh-CN/source-generators/bind-node-signal-generator.mdcd docs && bun run build
下一步
- 继续核对
auto-register-exported-collections-generator.md,确认其示例、诊断与Godot.SourceGenerators当前实现一致 - 下一次推送后先重新执行
$gframework-pr-review,确认 PR #268 的 CodeRabbit / Greptile open thread 是否按预期收敛 - 继续复核
docs/zh-CN/tutorials/godot-integration.md,避免旧教程重新把过时 Godot 说明带回专题页