Docs/sdk update documentation#271
Conversation
- 归档 documentation-governance-and-refresh 截至 2026-04-22 的跟踪与 trace 历史 - 更新 active tracking 与 trace,只保留恢复点、风险、验证结果和下一步 - 补充 Godot 栏目稳定性复核后的归档决策与 PR #268 follow-up 入口
- 迁移 documentation-governance-and-refresh 主题到 public archive 目录 - 更新 public README 的 active topic 与 worktree 映射 - 收口归档内 tracking 和 trace 的完成状态与恢复说明
- 新增 documentation-full-coverage-governance active topic 与首轮 inventory、trace 入口 - 补充 GFramework.Ecs.Arch.Abstractions README、抽象接口页面与导航映射 - 更新 API 参考页与根 README,明确内部支撑模块 owner 和阅读链路
- 更新 Core 与 Core.Abstractions README 的目录映射和 XML 阅读入口 - 重写 Core Abstractions 页面,改为契约边界与最小接入路径说明 - 补充 Core landing page、API 参考入口和 ai-plan 跟踪记录
- 补充 Core 与 Core.Abstractions README 的类型族级 XML 覆盖基线入口 - 更新 Core 与 Core.Abstractions landing page 的 XML inventory、代表类型和阅读重点 - 同步刷新 documentation-full-coverage-governance 的 tracking 与 trace 恢复点
- 重写 Ecs.Arch README 与 ecs 栏目页面,使采用路径对齐当前源码和集成测试 - 补充 Ecs.Arch.Abstractions 的 XML inventory 与抽象页阅读链路 - 更新 documentation-full-coverage-governance 的恢复点、验证结果和下一波次计划
- 更新 Cqrs family landing、API 参考与 source-generators 导航 - 新增 CQRS handler registry 专题页并补充 XML inventory - 补充 runtime 与 generator 内部类型 XML 注释 - 记录 RP-004 验证结果与后续恢复点
- 更新 Game family README、landing 与 abstractions 页面,补齐声明级 XML inventory 入口 - 修复 Game.Abstractions 页面与当前源码不一致的旧接口摘录,改写为真实契约边界与最小接入路径 - 补充 ai-plan 跟踪与 trace,推进恢复点到 RP-005 并记录验证结果
- 更新 AGENTS.md,优先使用显式 --git-dir 与 --work-tree 绑定操作 worktree Git - 补充 git.exe 在当前会话不可执行时的 fallback 规则,避免重复命中 Exec format error - 更新 documentation-full-coverage-governance 的 tracking 与 trace,记录已验证的 Git 使用方式
- 更新 documentation-full-coverage-governance 恢复点到 RP-007 - 记录 Game family 巡检通过且未发现回漂 - 补充 docs build 验证结果与后续恢复建议
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 3 minutes and 35 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (9)
📝 WalkthroughWalkthrough此PR更新了多个GFramework模块的文档、README和源代码XML注释。包括AGENTS.md的Git工作流指导、多个模块README的文档重组、源代码注释补充、VitePress导航配置调整、以及ai-plan治理主题的迁移和跟踪文档。不涉及代码逻辑或API行为变更。 Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Test ResultsDetails
Insights
build-and-test: Run #933
🎉 All tests passed!Slowest Tests
± Comparison with run #928 at 987bf68 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 12 runs. Github Test Reporter by CTRF 💚 |
|
| Filename | Overview |
|---|---|
| GFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs | Adds XML documentation comments to private enum, private sealed record, and factory methods — no logic changes. |
| GFramework.Cqrs/Internal/CqrsHandlerRegistrar.cs | Adds XML documentation to three private nested types and their properties — no logic changes. |
| .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py | Adds explicit WSL worktree git-dir resolution via new resolve_git_invocation(), find_repository_root(), and resolve_worktree_git_dir() helpers; one style issue with partial env-var config being silently discarded. |
| AGENTS.md | Revises WSL git strategy to prefer explicit Linux git --git-dir/--work-tree binding over git.exe, with clear priority order and fallback rules. |
| docs/.vitepress/config.mts | Adds two navigation entries — CQRS Handler Registry and Ecs.Arch Abstractions — both pointing to files that exist in this PR. |
| docs/zh-CN/source-generators/cqrs-handler-registry-generator.md | New page documenting the CQRS Handler Registry generator with install path, runtime consumption flow, fallback boundary, and diagnostic GF_Cqrs_001 explanation. |
| docs/zh-CN/abstractions/ecs-arch-abstractions.md | New page documenting Ecs.Arch Abstractions contract boundary, package relationships, and minimum adoption path; misplaced source-generator boundary section from previous review iteration is no longer present. |
| GFramework.Ecs.Arch.Abstractions/README.md | New module README covering contract map, XML baseline, and minimal usage examples for the abstractions layer. |
| docs/zh-CN/ecs/arch.md | Major rewrite: removes extensive concept/Q&A content, replaces with focused runtime responsibility table, XML inventory, and concise step-by-step adoption path. |
| .agents/skills/gframework-pr-review/SKILL.md | Fixes stale .codex/ → .agents/ script paths and updates WSL git strategy guidance to match revised AGENTS.md policy. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[resolve_git_invocation] --> B{GFRAMEWORK_GIT_DIR\n+ GFRAMEWORK_WORK_TREE\n+ linux git?}
B -- Yes --> C["[linux_git, --git-dir=..., --work-tree=...]"]
B -- No --> D[find_repository_root\nfrom cwd]
D --> E{Root found\n+ linux git?}
E -- Yes --> F[resolve_worktree_git_dir\ncheck parent == GFramework-WorkTree]
F --> G{worktree gitdir\nexists?}
G -- Yes --> H["[linux_git, --git-dir=worktrees/name, --work-tree=root]"]
G -- No --> I[resolve_git_command\ngit.exe or env override]
E -- No --> I
I --> J{git.exe\nresolvable?}
J -- Yes --> K[git.exe]
J -- No --> L[RuntimeError]
Prompt To Fix All With AI
This is a comment left during a code review.
Path: .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py
Line: 109-125
Comment:
**Partial env-var config silently falls through to auto-detection**
When only one of `GFRAMEWORK_GIT_DIR` / `GFRAMEWORK_WORK_TREE` is set, the `if configured_git_dir and configured_work_tree and linux_git` guard evaluates to `False` and the function silently ignores the partially-configured binding, falling through to the heuristic auto-detection path. A developer who sets only one variable will get no warning that their explicit config was discarded.
Consider emitting a warning (or raising) when exactly one of the two variables is set:
```python
if bool(configured_git_dir) != bool(configured_work_tree):
import warnings
warnings.warn(
f"Both {GIT_DIR_ENVIRONMENT_KEY} and {WORK_TREE_ENVIRONMENT_KEY} must be set together; "
"ignoring the partial configuration and falling back to auto-detection.",
stacklevel=2,
)
```
How can I resolve this? If you propose a fix, please make it concise.Reviews (2): Last reviewed commit: "fix(docs): 修复 PR 评审遗留与 Git 抓取" | Re-trigger Greptile
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|
| dotnet-format | yes | 1 | no | 5.06s | ||
| ✅ REPOSITORY | gitleaks | yes | no | no | 7.06s | |
| ✅ REPOSITORY | trufflehog | yes | no | no | 6.2s |
Detailed Issues
⚠️ CSHARP / dotnet-format - 1 error
Welcome to .NET 9.0!
---------------------
SDK Version: 9.0.114
----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate, run 'dotnet dev-certs https --trust'
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
Unhandled exception: System.Exception: Restore operation failed.
at Microsoft.CodeAnalysis.Tools.CodeFormatter.OpenMSBuildWorkspaceAsync(String solutionOrProjectPath, WorkspaceType workspaceType, Boolean noRestore, Boolean requiresSemantics, String binaryLogPath, Boolean logWorkspaceWarnings, ILogger logger, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Tools.CodeFormatter.FormatWorkspaceAsync(FormatOptions formatOptions, ILogger logger, CancellationToken cancellationToken, String binaryLogPath)
at Microsoft.CodeAnalysis.Tools.FormatCommandCommon.FormatAsync(FormatOptions formatOptions, ILogger`1 logger, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Tools.Commands.RootFormatCommand.FormatCommandDefaultHandler.InvokeAsync(ParseResult parseResult, CancellationToken cancellationToken)
at System.CommandLine.Invocation.InvocationPipeline.InvokeAsync(ParseResult parseResult, CancellationToken cancellationToken)
See detailed reports in MegaLinter artifacts
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

Show us your support by starring ⭐ the repository
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/zh-CN/source-generators/cqrs-handler-registry-generator.md (1)
60-68: 建议补充“marker 类型放置与命名约定”。多程序集示例已使用 marker,但建议再补一句约定(例如放在每个业务程序集的
Application/Markers或等价目录、命名规范与唯一性),方便团队统一实践。As per coding guidelines "For integration-oriented features... documentation MUST cover project directory layout and file conventions, required project or package wiring, minimal working usage example..."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/zh-CN/source-generators/cqrs-handler-registry-generator.md` around lines 60 - 68, 在多程序集示例中缺少对 marker 类型放置与命名约定的说明;请在使用 RegisterCqrsHandlersFromAssemblies 的示例附近补充一条约定性说明,指出像 InventoryCqrsMarker 和 BattleCqrsMarker 这类 marker 应放在各自业务程序集的统一位置(例如 Application/Markers 或等价目录)、采用一致的命名模式(如 *CqrsMarker)并保证每程序集仅有唯一 marker 类型,以便团队能统一查找与注册 handler。
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.md`:
- Around line 19-22: The validation section currently only lists the command `cd
docs && bun run build`; update the "验证" section to include an explicit result
state (e.g., "通过" or "失败"), a one-line summary of key output (e.g., "通过;无构建错误,
生成 X 页, 警告: Y"), and paste or reference the relevant snippet of the build output
or top-line error messages so readers can quickly assess the validation status;
ensure you modify the "验证" block that contains the `cd docs && bun run build`
entry and include the timestamp and who ran the check for traceability.
In
`@ai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.md`:
- Around line 97-168: The "验证说明" section contains excessive repeated validation
history; compress it by archiving detailed repetitive entries and leaving only a
concise active summary: the latest successful validation result, any current
blocking failure (e.g., the GFramework.Cqrs multi-target build failure causing
MSB4276/MSB4018), and the immediate next recovery action; move the long list of
individual command runs and dated rebuild notes into a trace/archive (e.g., a
linked "validation-archive" section) and update the "验证说明" header content to
reference that archive while presenting only "最新验证结论、当前阻塞、下一步恢复动作" so readers
can locate the current recovery point quickly.
In `@docs/zh-CN/ecs/index.md`:
- Line 134: Adjust the sentence at the noted location to improve readability by
reordering the phrase: replace the existing clause that reads like “把‘可能支持的其他
ECS 框架’写成现有能力会误导采用路径” (or similar) with the suggested clearer wording
“把‘未来可能支持的其他 ECS 框架’写成现有能力会误导采用路径”, ensuring the new wording exactly matches the
suggested phrase and preserves surrounding context and punctuation in the
markdown.
---
Nitpick comments:
In `@docs/zh-CN/source-generators/cqrs-handler-registry-generator.md`:
- Around line 60-68: 在多程序集示例中缺少对 marker 类型放置与命名约定的说明;请在使用
RegisterCqrsHandlersFromAssemblies 的示例附近补充一条约定性说明,指出像 InventoryCqrsMarker 和
BattleCqrsMarker 这类 marker 应放在各自业务程序集的统一位置(例如 Application/Markers
或等价目录)、采用一致的命名模式(如 *CqrsMarker)并保证每程序集仅有唯一 marker 类型,以便团队能统一查找与注册 handler。
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5ff6c8f2-20d4-4947-8fb4-49c4d2768848
📒 Files selected for processing (34)
AGENTS.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mdGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.csGFramework.Cqrs/Internal/CqrsHandlerRegistrar.csGFramework.Ecs.Arch.Abstractions/README.mdGFramework.Ecs.Arch/README.mdGFramework.Game.Abstractions/README.mdGFramework.Game.SourceGenerators/README.mdGFramework.Game/README.mdREADME.mdai-plan/public/README.mdai-plan/public/archive/documentation-governance-and-refresh/archive/todos/documentation-governance-and-refresh-history-through-2026-04-18.mdai-plan/public/archive/documentation-governance-and-refresh/archive/todos/documentation-governance-and-refresh-history-through-2026-04-22.mdai-plan/public/archive/documentation-governance-and-refresh/archive/traces/documentation-governance-and-refresh-history-through-2026-04-18.mdai-plan/public/archive/documentation-governance-and-refresh/archive/traces/documentation-governance-and-refresh-history-through-2026-04-22.mdai-plan/public/archive/documentation-governance-and-refresh/archive/traces/documentation-governance-and-refresh-rp-001-through-rp-008.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mddocs/.vitepress/config.mtsdocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mddocs/zh-CN/abstractions/game-abstractions.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/api-reference/index.mddocs/zh-CN/core/cqrs.mddocs/zh-CN/core/index.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.mddocs/zh-CN/game/index.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.mddocs/zh-CN/source-generators/index.md
📜 Review details
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Build and Test
- GitHub Check: Code Quality & Security
- GitHub Check: Analyze (C#)
🧰 Additional context used
📓 Path-based instructions (11)
**/README.md
📄 CodeRabbit inference engine (AGENTS.md)
A module README MUST describe the module's purpose, the relationship to adjacent runtime/abstractions/generator packages, the major subdirectories/subsystems, the minimum adoption path, and the corresponding
docs/zh-CN/entry pointsUse the canonical filename
README.mdin module directories; do not introduce newReadMe.mdor other filename variantsIf a module's responsibilities, setup, public API surface, generator inputs, or adoption path change, update that module's
README.mdin the same change
Files:
GFramework.Game.SourceGenerators/README.mdGFramework.Game.Abstractions/README.mdGFramework.Ecs.Arch.Abstractions/README.mdGFramework.Game/README.mdai-plan/public/README.mdREADME.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mdGFramework.Ecs.Arch/README.md
**/{README.md,docs/**/*.md}
📄 CodeRabbit inference engine (AGENTS.md)
Update the relevant
README.mdordocs/page when behavior, setup steps, architecture guidance, or user-facing examples changeKeep code samples, package names, and command examples in documentation aligned with the current repository state
Prefer documenting behavior and design intent in documentation, not only API surface
Do not rely on "the code is self-explanatory" for framework features that consumers need to adopt; write the adoption path down so future users do not need to rediscover it from source
When examples are rewritten in documentation, preserve only the parts that remain true; delete or replace speculative examples instead of lightly editing them into another inaccurate form
Files:
GFramework.Game.SourceGenerators/README.mddocs/zh-CN/game/index.mddocs/zh-CN/source-generators/index.mdGFramework.Game.Abstractions/README.mdGFramework.Ecs.Arch.Abstractions/README.mdGFramework.Game/README.mddocs/zh-CN/api-reference/index.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mdai-plan/public/README.mdREADME.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/core/index.mddocs/zh-CN/abstractions/game-abstractions.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.mdGFramework.Ecs.Arch/README.mddocs/zh-CN/core/cqrs.md
docs/**/*.md
📄 CodeRabbit inference engine (CLAUDE.md)
Documentation should be organized with Chinese content in docs/zh-CN/ and structured to include getting started, module-specific capabilities (Core, Game, Godot, ECS), source generator usage, tutorials, best practices, and troubleshooting
If a docs category appears in VitePress navigation or sidebar, it MUST have a real landing page or be removed from navigation in the same change
Files:
docs/zh-CN/game/index.mddocs/zh-CN/source-generators/index.mddocs/zh-CN/api-reference/index.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/core/index.mddocs/zh-CN/abstractions/game-abstractions.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.mddocs/zh-CN/core/cqrs.md
docs/zh-CN/**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
For integration-oriented features such as the AI-First config system, documentation MUST cover project directory layout/file conventions, required project/package wiring, minimal working usage example, and migration/compatibility notes when behavior changes
Files:
docs/zh-CN/game/index.mddocs/zh-CN/source-generators/index.mddocs/zh-CN/api-reference/index.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/core/index.mddocs/zh-CN/abstractions/game-abstractions.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.mddocs/zh-CN/core/cqrs.md
ai-plan/public/**
📄 CodeRabbit inference engine (AGENTS.md)
Contributors MUST keep committed
ai-plan/public/**content safe to publish in Git history; never write secrets, tokens, credentials, private keys, machine usernames, home-directory paths, hostnames, IP addresses, proprietary URLs, or other sensitive environment detailsWhen working from a tracked implementation plan, contributors MUST update the corresponding tracking document under
ai-plan/public/<topic>/todos/in the same changeTracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point; active tracking and trace files are recovery entrypoints, not append-only changelogs, and MUST stay concise enough for
bootto locate the current recovery point quicklyFor any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under
ai-plan/public/<topic>/todos/before making substantive code changesRecovery documents MUST record the current phase, the active recovery point identifier, known risks, and the next recommended resume step so another contributor or subagent can continue the work safely
Contributors MUST maintain a matching execution trace under
ai-plan/public/<topic>/traces/for complex work, recording the current date, key decisions, validation milestones, and the immediate next stepWhen completed and validated stages begin to accumulate, contributors MUST archive their detailed history out of the active
todos/andtraces/entry files in the same change, keeping only the current recovery point, active facts, active risks, immediate next step, and pointers to relevant archive filesWhen a topic is fully complete, move the entire topic directory under
ai-plan/public/archive/<topic>/and remove it fromai-plan/public/README.mdin the same changeWhen a task spans multiple commits or is likely to exceed a single agent context window, update both the recovery document and the trace at each meaningful milesto...
Files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.md
ai-plan/**
📄 CodeRabbit inference engine (AGENTS.md)
Never record absolute file-system paths in
ai-plan/**; use repository-relative paths, branch names, PR numbers, or stable document identifiers instead
Files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.md
**/*.cs
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.cs: Apply [Log] attribute for automatic logging field and logging helper method generation
Apply [Priority] attribute for automatic priority comparison implementation generation
Apply [GenerateEnumExtensions] attribute to generate enumeration extension capabilities
Apply [ContextAware] attribute to automatically implement IContextAware boilerplate logicAll public, protected, and internal types and members MUST include XML documentation comments (
///) with<summary>,<param>,<returns>,<exception>, and<remarks>where applicableAdd inline comments for non-trivial logic, concurrency/threading behavior, performance-sensitive paths, workarounds/compatibility constraints/edge cases, and registration/lifecycle/generated code assumptions in C# code
Methods with non-trivial logic MUST document the core idea, key decisions, and edge case handling in C# code
Do not rely on implicit imports; declare every required
usingexplicitly in C# codeWrite null-safe code that respects nullable annotations instead of suppressing warnings by default in C#
Use the namespace pattern
GFramework.{Module}.{Feature}with PascalCase segments in C# codeFollow standard C# naming: Types, methods, properties, events, and constants use PascalCase; interfaces use
Iprefix; parameters and locals use camelCase; private fields use_camelCaseUse 4 spaces for indentation; do not use tabs in C# code
Use Allman braces in C# code
Keep
usingdirectives at the top of C# files and sort them consistentlySeparate logical blocks with blank lines in C# code when it improves readability
Prefer one primary type per file in C# unless the surrounding project already uses a different local pattern
Keep a single C# source file under roughly 800-1000 lines; if a file grows beyond that range, contributors MUST stop and check whether responsibilities should be split before continuing
Keep line length readable; around 120 characters is the preferred upper bound in C# code
Pre...
Files:
GFramework.Cqrs/Internal/CqrsHandlerRegistrar.csGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
ai-plan/public/README.md
📄 CodeRabbit inference engine (AGENTS.md)
ai-plan/public/README.mdMUST list only active topics; do not addai-plan/public/archive/**content to the default boot indexWhen a worktree-to-topic mapping changes, or when a topic becomes active/inactive, contributors MUST update
ai-plan/public/README.mdin the same change
Files:
ai-plan/public/README.md
README.md
📄 CodeRabbit inference engine (AGENTS.md)
The repository root
README.mdMUST mirror the current top-level documentation taxonomy used by the docs site; do not maintain a second, differently named navigation system in the root READMEPrefer linking the root
README.mdto section landing pages such asindex.mdinstead of deep-linking to a single article when the target is intended to be a documentation category
Files:
README.md
**/Cqrs/**/*.cs
📄 CodeRabbit inference engine (CLAUDE.md)
Use CQRS (Command Query Responsibility Segregation) pattern with the Cqrs naming entry point instead of the historical Mediator alias
Files:
GFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
**/*Generators*/**/*.cs
📄 CodeRabbit inference engine (AGENTS.md)
Generated logic and generator pipelines MUST explain what is generated, why it is generated, the semantic assumptions the generator relies on, and any diagnostics or fallback behavior
Source generator changes MUST be covered by generator tests; preserve snapshot-based verification patterns already used in the repository
When generator behavior changes intentionally, update snapshots together with the implementation
Keep source generators deterministic and free of hidden environment or network dependencies
Files:
GFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
🧠 Learnings (35)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to docs/zh-CN/**/*.md : When a feature is added, removed, renamed, or substantially refactored, contributors MUST update or create the corresponding user-facing integration documentation in `docs/zh-CN/` in the same change. For integration-oriented features, documentation MUST cover project directory layout and file conventions, required project or package wiring, minimal working usage example, and migration or compatibility notes when behavior changes.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Read `@.ai/environment/tools.ai.yaml` before choosing runtimes or CLI tools; prefer project-relevant tools listed there instead of assuming every installed system tool is fair game
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: When working in WSL against this repository's Windows-backed worktree, prefer Linux `git` with explicit `--git-dir=<repo>/.git/worktrees/<worktree-name>` and `--work-tree=<worktree-root>` binding for every repository command
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Every completed task MUST pass at least one build validation before it is considered done
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Commit messages MUST use Conventional Commits format: `<type>(<scope>): <summary>`, with summary in simplified Chinese and body using unordered list items with verbs like `新增`、`修复`、`优化`、`更新`、`补充`、`重构`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Keep technical terms in English in commit messages when they are established project terms, such as `API`、`Model`、`System`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Use multiple `-m` flags or ANSI-C `$'...'` quoting for multi-line commit bodies instead of relying on Bash `$"..."` quoting, so the commit body contains real line breaks
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: When a new task starts while the current branch is `main`, contributors MUST first try to update local `main` from the remote, then create and switch to a dedicated branch before making substantive changes
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Use branch naming rule `<type>/<topic-or-scope>` for new task branches, where `<type>` should match the intended Conventional Commit category
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Prefer invoking `$gframework-boot` skill when the user uses short startup prompts such as `boot`、`continue`、`next step`、`按 boot 开始`、`先看 AGENTS`、`继续当前任务`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Use subagents only when the task is complex, the context is likely to grow too large, or the work can be split into independent parallel subtasks; identify the critical path first and do not delegate the immediate blocking task
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Core framework components such as Architecture, Module, System, Context, Registry, Service Module, and Lifecycle types MUST include high-level explanations of responsibilities, lifecycle, interaction with other components, why the abstraction exists, and when to use it instead of alternatives
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Comments MUST NOT be trivial, redundant, or misleading; prefer explaining `why` and `when`, not just `what`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Missing required documentation is a coding standards violation; code that does not meet the documentation rules is considered incomplete
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Keep abstractions projects free of implementation details and engine-specific dependencies in C#
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Preserve existing module boundaries; do not introduce new cross-module dependencies without clear architectural need in C#
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Treat `Meziantou.Analyzer` feedback as part of the coding standard and SonarQube maintainability rules as part of the coding standard, especially cognitive complexity and oversized parameter list findings
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Every non-trivial feature, bug fix, or behavior change MUST include tests or an explicit justification for why a test is not practical
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Public API changes must be covered by unit or integration tests
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Every user-facing package or module directory that contains a `*.csproj` intended for direct consumption MUST have a sibling `README.md`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Adding a new top-level module directory without a `README.md` is considered incomplete work
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Treat `ai-libs/` as a read-only third-party source reference area; do not modify it unless the user explicitly asks to sync or update that third-party snapshot
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: When a feature is added, removed, renamed, or substantially refactored, contributors MUST update or create the corresponding user-facing integration documentation in `docs/zh-CN/` in the same change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: If an existing documentation page no longer reflects the current implementation, fixing the code without fixing the documentation is considered incomplete work
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Use `ai-plan/public/**` only for durable, handoff-safe task state; put temporary notes, local experiments, or worktree-specific scratch recovery data under `ai-plan/private/`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: Completing code changes without updating the active tracking document is considered incomplete work
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-23T00:17:39.326Z
Learning: When a stage inside an active topic is fully complete, move the finished artifacts into that topic's `archive/` directory instead of leaving every completed step in the default boot path
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/SourceGenerators/**/*.cs : Source generator changes MUST be covered by generator tests. Preserve snapshot-based verification patterns already used in the repository. When generator behavior changes intentionally, update snapshots together with the implementation.
Applied to files:
GFramework.Game.SourceGenerators/README.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.mdGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : Generated logic and generator pipelines MUST explain what is generated, why it is generated, the semantic assumptions the generator relies on, and any diagnostics or fallback behavior.
Applied to files:
GFramework.Game.SourceGenerators/README.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to docs/zh-CN/**/*.md : When a feature is added, removed, renamed, or substantially refactored, contributors MUST update or create the corresponding user-facing integration documentation in `docs/zh-CN/` in the same change. For integration-oriented features, documentation MUST cover project directory layout and file conventions, required project or package wiring, minimal working usage example, and migration or compatibility notes when behavior changes.
Applied to files:
GFramework.Game.SourceGenerators/README.mddocs/zh-CN/game/index.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdGFramework.Game/README.mddocs/zh-CN/api-reference/index.mddocs/.vitepress/config.mtsai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mddocs/zh-CN/source-generators/cqrs-handler-registry-generator.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/core/index.mddocs/zh-CN/abstractions/game-abstractions.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.mdGFramework.Ecs.Arch/README.mddocs/zh-CN/core/cqrs.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: Applies to docs/**/*.md : Documentation should be organized with Chinese content in docs/zh-CN/ and structured to include getting started, module-specific capabilities (Core, Game, Godot, ECS), source generator usage, tutorials, best practices, and troubleshooting
Applied to files:
GFramework.Game.SourceGenerators/README.mddocs/zh-CN/game/index.mddocs/zh-CN/source-generators/index.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mddocs/zh-CN/api-reference/index.mddocs/.vitepress/config.mtsdocs/zh-CN/abstractions/index.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.mdREADME.mdGFramework.Core/README.mddocs/zh-CN/core/index.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/README.md : Every user-facing package or module directory that contains a `*.csproj` intended for direct consumption MUST have a sibling `README.md`. Use the canonical filename `README.md`, not `ReadMe.md` or other variants. A module README MUST describe the module's purpose, relationship to adjacent runtime/abstractions/generator packages, major subdirectories or subsystems, the minimum adoption path, and corresponding `docs/zh-CN/` entry points.
Applied to files:
docs/zh-CN/game/index.mdGFramework.Ecs.Arch.Abstractions/README.mddocs/zh-CN/api-reference/index.mdREADME.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mddocs/zh-CN/core/index.mdGFramework.Ecs.Arch/README.mddocs/zh-CN/core/cqrs.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: Applies to **/*{Startup,Init,Register,Setup,Configure}*.cs : CQRS handler registration should use generated products from CqrsHandlerRegistryGenerator at runtime, falling back to reflection scanning when generation cannot cover cases; explicitly register handlers from non-default assemblies using RegisterCqrsHandlersFromAssembly(...) or RegisterCqrsHandlersFromAssemblies(...)
Applied to files:
docs/zh-CN/source-generators/index.mdGFramework.Cqrs/Internal/CqrsHandlerRegistrar.csdocs/zh-CN/source-generators/cqrs-handler-registry-generator.mdGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.csdocs/zh-CN/core/cqrs.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : All public, protected, and internal types and members MUST include XML documentation comments (`///`) with `<summary>`, `<param>`, `<returns>`, `<exception>`, and `<remarks>` tags where applicable. Comments must explain intent, contract, and usage constraints instead of restating syntax.
Applied to files:
GFramework.Game.Abstractions/README.mdGFramework.Game/README.mdGFramework.Cqrs/Internal/CqrsHandlerRegistrar.csGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : Core framework components such as Architecture, Module, System, Context, Registry, Service Module, and Lifecycle types MUST include high-level explanations of responsibilities, lifecycle, interaction with other components, why the abstraction exists, and when to use it instead of alternatives.
Applied to files:
GFramework.Ecs.Arch.Abstractions/README.mdGFramework.Cqrs/Internal/CqrsHandlerRegistrar.csdocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mdREADME.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/core/index.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.mdGFramework.Ecs.Arch/README.mddocs/zh-CN/core/cqrs.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: Applies to **/*Abstractions/**/*.cs : Abstractions projects should only contain interfaces and contract definitions without any runtime implementation logic
Applied to files:
GFramework.Ecs.Arch.Abstractions/README.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mdREADME.mdGFramework.Core.Abstractions/README.mddocs/zh-CN/abstractions/core-abstractions.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : Keep abstractions projects free of implementation details and engine-specific dependencies. Preserve existing module boundaries. Do not introduce new cross-module dependencies without clear architectural need.
Applied to files:
GFramework.Ecs.Arch.Abstractions/README.mddocs/zh-CN/abstractions/index.mddocs/zh-CN/abstractions/ecs-arch-abstractions.mdREADME.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to ai-plan/public/*/traces/*.md : Maintain a matching execution trace under `ai-plan/public/<topic>/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. Update both the recovery document and the trace at each meaningful milestone before pausing or handing work off.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to ai-plan/public/*/todos/*.md : Contributors MUST keep `ai-plan/public/<topic>/todos/` recovery documents up-to-date with completed work, newly discovered issues, validation results, and the next recommended recovery point. For any multi-step refactor, migration, or cross-module task, create or adopt a dedicated recovery document before making substantive code changes. Recovery documents MUST record the current phase, the active recovery point identifier, known risks, and the next recommended resume step.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to ai-plan/public/README.md : `ai-plan/public/README.md` is the shared startup index that binds worktrees or branches to active topics and resume entry points. It MUST list only active topics. Do not add `ai-plan/public/archive/**` content to the default boot index. When a worktree-to-topic mapping changes, or when a topic becomes active/inactive, contributors MUST update `ai-plan/public/README.md` in the same change.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Treat existing `README.md` files and `docs/zh-CN/` pages as editable outputs, not authoritative truth. If existing documentation conflicts with code or tests, update the documentation to match the implementation instead of preserving outdated wording. Do not publish example code, setup steps, or package guidance that cannot be traced back to code, tests, or a verified consumer project.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mdai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mddocs/zh-CN/api-reference/index.mddocs/.vitepress/config.mtsai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.mdGFramework.Core.Abstractions/README.mdGFramework.Core/README.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/core/index.mddocs/zh-CN/ecs/index.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat verified reference implementations under `ai-libs/` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/traces/documentation-governance-and-refresh-trace.mddocs/zh-CN/api-reference/index.mdai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.mdGFramework.Core.Abstractions/README.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/ecs/index.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to docs/**/*.md : Update the relevant `README.md` or `docs/` page when behavior, setup steps, architecture guidance, or user-facing examples change. Keep code samples, package names, and command examples aligned with the current repository state. Prefer documenting behavior and design intent, not only API surface. If an existing documentation page no longer reflects the current implementation, fixing the code without fixing the documentation is considered incomplete work.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mddocs/zh-CN/api-reference/index.mdai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.mdai-plan/public/README.mdGFramework.Core.Abstractions/README.mddocs/zh-CN/abstractions/core-abstractions.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/ecs/index.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: The main documentation site lives under `docs/`, with Chinese content under `docs/zh-CN/`. When examples are rewritten, preserve only the parts that remain true. Delete or replace speculative examples instead of lightly editing them into another inaccurate form.
Applied to files:
ai-plan/public/archive/documentation-governance-and-refresh/todos/documentation-governance-and-refresh-tracking.mddocs/zh-CN/api-reference/index.mddocs/.vitepress/config.mtsai-plan/public/README.mddocs/zh-CN/core/index.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : Add inline comments for non-trivial logic, concurrency or threading behavior, performance-sensitive paths, workarounds/compatibility constraints/edge cases, and registration order/lifecycle sequencing/generated code assumptions. Avoid obvious comments such as `// increment i`.
Applied to files:
GFramework.Cqrs/Internal/CqrsHandlerRegistrar.cs
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : Preserve deterministic behavior in registries, lifecycle orchestration, and generated outputs. When adding analyzers or suppressions, keep them minimal and justify them in code comments if the reason is not obvious.
Applied to files:
GFramework.Cqrs/Internal/CqrsHandlerRegistrar.csGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
📚 Learning: 2026-04-06T12:45:43.921Z
Learnt from: GeWuYou
Repo: GeWuYou/GFramework PR: 190
File: GFramework.Game/Config/GameConfigBootstrap.cs:1-3
Timestamp: 2026-04-06T12:45:43.921Z
Learning: In the GeWuYou/GFramework repository, C# files may omit explicit `using System*` imports because the project-wide `GlobalUsings.cs` (referenced via manual global `using` directives) supplies common namespaces (e.g., `System`, `System.Threading`, `System.Threading.Tasks`). During code review, do not flag missing `using System...` directives in `.cs` files as long as `GlobalUsings.cs` is present/used to provide those namespaces.
Applied to files:
GFramework.Cqrs/Internal/CqrsHandlerRegistrar.csGFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegistryGenerator.cs
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to README.md : The repository root `README.md` MUST mirror the current top-level documentation taxonomy used by the docs site. Do not maintain a second, differently named navigation system in the root README. Prefer linking the root `README.md` to section landing pages such as `index.md` instead of deep-linking to a single article when the target is intended to be a documentation category. If a docs category appears in VitePress navigation or sidebar, it MUST have a real landing page or be removed from navigation in the same change.
Applied to files:
docs/.vitepress/config.mts
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to **/*.cs : Use the namespace pattern `GFramework.{Module}.{Feature}` with PascalCase segments.
Applied to files:
README.mdGFramework.Core/README.md
📚 Learning: 2026-04-16T13:26:01.780Z
Learnt from: GeWuYou
Repo: GeWuYou/GFramework PR: 235
File: GFramework.SourceGenerators.Tests/Rule/ContextAwareGeneratorSnapshotTests.cs:1-3
Timestamp: 2026-04-16T13:26:01.780Z
Learning: In the GeWuYou/GFramework repository, the test project `GFramework.SourceGenerators.Tests` provides `global using NUnit.Framework;` via its `GlobalUsings.cs`. Do not flag missing `using NUnit.Framework;` directives in test files within this project, as the global using already covers it. The project-wide GlobalUsings.cs pattern is used broadly to supply common namespaces (including NUnit, System.IO, etc.) without per-file imports.
Applied to files:
README.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Commit messages MUST use Conventional Commits format: `<type>(<scope>): <summary>`. The commit `summary` MUST use simplified Chinese and briefly describe the main change. The commit `body` MUST use unordered list items, and each item MUST start with a verb such as `新增`、`修复`、`优化`、`更新`、`补充`、`重构`. Each commit body bullet MUST describe one independent change point; avoid repeated or redundant descriptions. Keep technical terms in English when they are established project terms, such as `API`、`Model`、`System`.
Applied to files:
GFramework.Core/README.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: Architecture implementations should follow the four-layer structure: IArchitecture (lifecycle management), IContextAware (unified context access), IModel (data/state layer), ISystem (business logic layer), and IUtility (stateless utility layer)
Applied to files:
GFramework.Core/README.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: Use IArchitectureContext and Provider classes to propagate context capabilities between components rather than direct coupling to implementation details
Applied to files:
GFramework.Core/README.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: If the real environment differs from the inventory, use the project-relevant installed tool and report the mismatch. When working in WSL against this repository's Windows-backed worktree, prefer Windows Git from WSL (e.g., `git.exe`) instead of the Linux `git` binary. If a Git command in WSL fails with a worktree-style path translation error, rerun it with the Windows Git executable and treat that as the repository-default Git path. If the shell does not currently resolve `git.exe` to the host Windows Git installation, prepend that installation's command directory to `PATH` and reset shell command hashing for the current session before continuing. After resolving the host Windows Git path, prefer an explicit session-local binding for subsequent commands.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: All coding rules must be followed strictly as defined in AGENTS.md
Applied to files:
AGENTS.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: The boot skill MUST read `AGENTS.md`、`.ai/environment/tools.ai.yaml`、`ai-plan/public/README.md` and the relevant active-topic `ai-plan/` artifacts before substantive execution.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Before choosing runtimes or CLI tools, read `@.ai/environment/tools.ai.yaml`. Use `@.ai/environment/tools.raw.yaml` only when you need the full collected facts behind the AI-facing hints. Prefer the project-relevant tools listed there instead of assuming every installed system tool is fair game.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to .gitignore : Use `ai-plan/private/` for worktree-private recovery artifacts; keep these untracked and scoped to the current worktree. Ensure `.gitignore` is configured to exclude `ai-plan/private/**` from version control.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: Applies to ai-plan/public/** : Keep committed `ai-plan/public/**` content safe to publish in Git history. Never write secrets, tokens, credentials, private keys, machine usernames, home-directory paths, hostnames, IP addresses, proprietary URLs, or other sensitive environment details into any `ai-plan/**` file. Never record absolute file-system paths; use repository-relative paths, branch names, PR numbers, or stable document identifiers instead.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-22T03:16:51.907Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-22T03:16:51.907Z
Learning: When composing a multi-line commit body from shell commands, contributors MUST NOT rely on Bash `$"..."` quoting for newline escapes, because it passes literal `\n` sequences to Git. Use multiple `-m` flags or ANSI-C `$'...'` quoting so the commit body contains real line breaks.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-17T11:35:08.762Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.762Z
Learning: Applies to **/Cqrs/**/*.cs : Use CQRS (Command Query Responsibility Segregation) pattern with the Cqrs naming entry point instead of the historical Mediator alias
Applied to files:
docs/zh-CN/core/cqrs.md
🪛 LanguageTool
ai-plan/public/documentation-full-coverage-governance/traces/documentation-full-coverage-governance-trace.md
[grammar] ~112-~112: Ensure spelling is correct
Context: ...qrs/Internal/CqrsHandlerRegistrar.cs与 GFramework.Cqrs.SourceGenerators/Cqrs/CqrsHandlerRegist...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~142-~142: Ensure spelling is correct
Context: .../ Ecs / Cqrs 已验证模板继续补 XML inventory 与教程链路 2. 把 GFramework.Cqrs 的本地构建阻塞留给后续环境治理或...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~162-~162: Ensure spelling is correct
Context: ... docs/zh-CN/source-generators/index.md组成入口,不额外新增只为凑数量的专题页 -docs/zh-CN/game/index.md补 frontmatter,并承担Game` family 的 XML 基线入...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
docs/zh-CN/source-generators/cqrs-handler-registry-generator.md
[uncategorized] ~89-~89: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...数量较多 - 想把 handler 注册路径前移到编译期 - 希望冷启动阶段减少整程序集反射扫描 - 需要更明确地观察“哪些 handler 走静态注册,哪些只能走 ...
(wa5)
ai-plan/public/documentation-full-coverage-governance/todos/documentation-full-coverage-governance-tracking.md
[uncategorized] ~32-~32: 您的意思是“"不"齐”?
Context: ...ractions/README.md - 在根README.md中补齐GFramework.Ecs.Arch.Abstractions` 入口,...
(BU)
[uncategorized] ~33-~33: 您的意思是“"不"齐”?
Context: ...ractions入口,并声明内部支撑模块 owner - 为抽象接口栏目补齐Ecs.Arch.Abstractions` 页面与 sidebar 入口...
(BU)
[uncategorized] ~35-~35: 您的意思是“"不"齐”?
Context: ...读链路入口 - 为 GFramework.Core/README.md 补齐 Services、Configuration、`Environmen...
(BU)
[uncategorized] ~36-~36: 您的意思是“"不"齐”?
Context: ...GFramework.Core.Abstractions/README.md补齐契约族地图与 XML 阅读重点 - 将docs/zh-CN/abstr...
(BU)
[uncategorized] ~38-~38: 您的意思是“"不"齐”?
Context: ...接入路径页面 - 为 docs/zh-CN/core/index.md 补齐 frontmatter、能力域导航和 API / XML 阅读入口 - ...
(BU)
[uncategorized] ~39-~39: 您的意思是“"不"齐”?
Context: ...GFramework.Core.Abstractions/README.md补齐类型族级 XML 覆盖基线入口 - 为docs/zh-CN/core/...
(BU)
[uncategorized] ~45-~45: 您的意思是“"不"齐”?
Context: .../abstractions/ecs-arch-abstractions.md补齐类型族级 XML inventory - 重写docs/zh-CN/c...
(BU)
[uncategorized] ~46-~46: 您的意思是“"不"齐”?
Context: ...e/cqrs.md,将其收敛为 Cqrsfamily landing,并补齐运行时 / 契约层 / 生成器的 XML inventory - 新建...
(BU)
[uncategorized] ~49-~49: 您的意思是“"不"齐”?
Context: ...qrsHandlerRegistryGenerator.cs中缺失的内部类型补齐 XML 注释,使本轮轻量 inventory 达到声明级闭环 - 为...
(BU)
[uncategorized] ~50-~50: 您的意思是“"不"齐”?
Context: ...mework.Game.SourceGenerators/README.md补齐Game` family 的类型族级 XML inventory - ...
(BU)
[uncategorized] ~51-~51: 您的意思是“"不"齐”?
Context: ...entory - 为 docs/zh-CN/game/index.md 补齐 frontmatter,并增加 Game / `Game.Abstrac...
(BU)
[uncategorized] ~62-~62: 您的意思是“"不"齐”?
Context: ... --- | | Core / Core.Abstractions | README / landing / 类型族级 XML inventory 已收口,成员级审计待补齐 | 根 README、模块 README、`docs/zh-CN/core...
(BU)
[uncategorized] ~63-~63: 您的意思是“"不"齐”?
Context: ...stractions/Cqrs.SourceGenerators|README / landing / generator topic / 类型族级 XML inventory 已收口,成员级审计待补齐|GFramework.Cqrs/README.md、GFrame...
(BU)
[uncategorized] ~64-~64: 您的意思是“"不"齐”?
Context: ...stractions/Game.SourceGenerators|README / landing / abstractions / 类型族级 XML inventory 已收口,成员级审计待补齐|GFramework.Game/README.md、GFrame...
(BU)
[uncategorized] ~66-~66: 您的意思是“"不"齐”?
Context: ... Ecs.Arch / Ecs.Arch.Abstractions | README / landing / abstractions / 类型族级 XML inventory 已收口,成员级审计待补齐 | GFramework.Ecs.Arch/README.md、`GF...
(BU)
[uncategorized] ~66-~66: 您的意思是“"不"成员”?
Context: ....md已对齐当前源码与测试 | 转入巡检;后续仅在运行时公共 API 变动时补成员级 XML 细审 | |SourceGenerators.Common`...
(BU)
[uncategorized] ~77-~77: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:过时"地"默认
Context: ...- README / docs 示例与源码实现不一致 - 教程仍引用已经过时的默认接线方式 - P2 - 结构重复、交叉链接不足、API 参考链路过薄...
(wb4)
[uncategorized] ~85-~85: 您的意思是“"不"成员”?
Context: ...员级契约全审计 - 缓解措施:后续只在共享抽象或高风险生命周期接口发生改动时补成员级细审,不在本轮扩张范围 - Godot family 的治理结论主要留...
(BU)
README.md
[grammar] ~33-~33: Ensure spelling is correct
Context: ...rk.Game.SourceGenerators/README.md) | | GFramework.Cqrs.SourceGenerators | CQRS handler regist...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~33-~33: Ensure spelling is correct
Context: ...s| CQRS handler registry 生成器 | [README](GFramework.Cqrs.SourceGenerators/README.md) | |GFrame...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
docs/zh-CN/abstractions/game-abstractions.md
[grammar] ~106-~106: Ensure spelling is correct
Context: ...ingsSystem、SaveRepository等默认实现 - 使用YamlConfigLoader、GameConfigBoot...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
docs/zh-CN/ecs/index.md
[uncategorized] ~134-~134: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"可能把……“"。
Context: ...# 边界说明 - 当前仓库没有交付其他可直接消费的 ECS 运行时包;旧文档里把“可能支持的其他 ECS 框架”写成现有能力会误导采用路径。 - `GFramewor...
(wa3)
docs/zh-CN/core/cqrs.md
[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:稳定"地"共享
Context: ...ler、pipeline、runtime seam | 需要把消息契约放到更稳定的共享层,或只依赖接口做解耦 | | `GeWuYou.GFramework.Cq...
(wb4)
- 修复 gframework-pr-review 在 WSL worktree 中优先使用显式 Linux Git 绑定 - 更新 CQRS 与 ECS 文档以及 skill 文案,消化 PR #271 中仍成立的 review 意见 - 归档 documentation-full-coverage-governance 历史验证记录,并补写 trace 验证结果态
Summary
Test ResultsDetails
Insights
build-and-test: Run #935
🎉 All tests passed!Slowest Tests
± Comparison with run #933 at 13e0b1e | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 13 runs. Github Test Reporter by CTRF 💚 |
Summary by CodeRabbit
文档
新文档页面
GFramework.Ecs.Arch.Abstractions契约层文档和 CQRS 处理程序注册生成器专项文档文档重组与导航优化
文档治理