feat: CQRS cache hardening、ai-plan governance#253
Conversation
- 新增 ai-libs 目录作为第三方源码只读参考区的仓库约束 - 更新第三方参考说明并要求在计划与 trace 中记录本地参考路径 - 排除 ai-libs 目录
- 新增项目级 .codex/skills/gframework-boot 启动 skill,统一读取 AGENTS.md、环境清单与 local-plan 恢复信息 - 补充任务复杂度分级与 subagent/model 选择规则,约束 boot 阶段的委派流程 - 更新 AGENTS.md 中的 boot 入口约定,明确 skill 与仓库规则的优先级关系
- 配置包的基本信息包括ID、作者、描述和许可证 - 设置多目标框架支持net8.0、net9.0和net10.0 - 定义包发布相关属性如仓库URL和自动生成包 - 排除多个子目录和测试项目避免参与编译打包 - 聚合核心模块GFramework.Core和GFramework.Game作为项目引用 - 配置README.md文件包含到包中并设置符号包含选项
- 更新 docs/zh-CN 中 source generator 示例的命名空间到当前公开 API - 修正文档叙述与 API 参考中的旧聚合模块表述 - 对齐 source generator 家族文档与教程示例的当前模块划分
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthrough此拉取请求引入了AI计划治理和PR审查工作流的基础设施,涉及新的Codex技能定义、目录结构约定和恢复工件管理。同时,大量更新文档和模板中源生成器的命名空间,从 Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant GFrameworkBoot as gframework-boot Skill
participant LocalRepo as Local Repository
participant AIPlans as ai-plan Artifacts
User->>GFrameworkBoot: 启动或恢复工作
GFrameworkBoot->>LocalRepo: 读取 AGENTS.md
GFrameworkBoot->>LocalRepo: 读取 .ai/environment/tools.ai.yaml
GFrameworkBoot->>AIPlans: 读取 ai-plan/public/README.md
GFrameworkBoot->>AIPlans: 根据分支/工作树映射到主题
alt 找到主题映射
GFrameworkBoot->>AIPlans: 按优先级读取 todos/ 和 traces/
else 未找到映射
GFrameworkBoot->>AIPlans: 扫描所有活跃主题(忽略 archive/)
end
GFrameworkBoot->>AIPlans: 访问 ai-plan/private/<branch>/ 作为私有恢复上下文
GFrameworkBoot->>User: 报告任务状态、复杂度分类和第一步计划
sequenceDiagram
participant User
participant PRReviewSkill as gframework-pr-review Skill
participant LocalGit as Local Git
participant GitHubAPI as GitHub API
participant CodeRabbit as CodeRabbit Bot
User->>PRReviewSkill: 检查当前 PR 审查
PRReviewSkill->>LocalGit: 确定当前分支
PRReviewSkill->>GitHubAPI: 根据分支查询 PR 号
PRReviewSkill->>GitHubAPI: 获取 PR 元数据和评论
GitHubAPI-->>CodeRabbit: CodeRabbit 评审数据
PRReviewSkill->>GitHubAPI: 获取最新提交的审查线程
PRReviewSkill->>CodeRabbit: 解析失败检查、可操作注释和测试报告
PRReviewSkill->>User: 返回汇总结果(文本或 JSON)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
Test ResultsDetails
Insights
build-and-test: Run #878
🎉 All tests passed!Slowest Tests
🎉 No failed tests in this run. | 🍂 No flaky tests in this run. Github Test Reporter by CTRF 💚 |
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|
| dotnet-format | yes | 1 | no | 0.75s | ||
| ✅ REPOSITORY | gitleaks | yes | no | no | 3.61s | |
| ✅ REPOSITORY | trufflehog | yes | no | no | 3.99s |
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.IO.FileNotFoundException: Both a MSBuild project file and solution file found in ''. Specify which to use with the <workspace> argument.
at Microsoft.CodeAnalysis.Tools.Workspaces.MSBuildWorkspaceFinder.FindWorkspace(String searchDirectory, String workspacePath)
at Microsoft.CodeAnalysis.Tools.Workspaces.MSBuildWorkspaceFinder.FindWorkspace(String searchDirectory, String workspacePath)
at Microsoft.CodeAnalysis.Tools.FormatCommandCommon.ParseWorkspaceOptions(ParseResult parseResult, FormatOptions formatOptions)
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: 1
🧹 Nitpick comments (2)
.codex/skills/gframework-boot/SKILL.md (1)
48-48: 建议统一resume与recovery的判定语义。Line 48 把
next step/continue直接映射为 recovery,和 Line 20 的resume定义有重叠。建议改成“先检索local-plan/,再判定为 resume 或 recovery”。✏️ 建议文案调整
-- If the user says `next step`, `continue`, `继续`, or similar resume language, assume recovery mode and search `local-plan/` first. +- If the user says `next step`, `continue`, `继续`, or similar resume language, search `local-plan/` first, then classify the task as `resume` or `recovery` based on artifact clarity and continuity.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.codex/skills/gframework-boot/SKILL.md at line 48, Unify the semantics for resume vs recovery: change the Line 48 wording that currently maps phrases like "next step", "continue", "继续" directly to recovery so that it instead states to first search local-plan/ and then determine whether the interaction should be treated as resume or recovery; update the document text to reference both "resume" and "recovery" semantics consistently (keeping the original examples "next step"/"continue"/"继续" and the keyword "resume") and ensure the guidance reads "search local-plan/ first, then decide resume or recovery" rather than unconditionally assuming recovery.AGENTS.md (1)
304-305: 建议收窄active plan/trace记录条件,避免执行歧义。Line 304-305 当前表述容易被理解为所有任务都必须有 active plan/trace。建议补充“针对多步/复杂任务或已存在 active 文档时”再强制记录,避免和轻量任务流程冲突。
Based on learnings: “For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under
local-plan/todos/before making substantive code changes.”🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@AGENTS.md` around lines 304 - 305, Narrow the guideline about recording observations from `ai-libs/**` by making it conditional: only require recording the referenced path and conclusion in the active plan/trace when the change is a multi-step or complex task (e.g., refactor, migration, cross-module work) or when an active plan/trace document already exists; also add the explicit mandate that for any multi-step refactor/migration/cross-module task contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` before making substantive code changes, and update the sentence containing `ai-libs/**` and `active plan/trace` to reflect these conditions.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/zh-CN/best-practices/performance.md`:
- Line 281: Update the outdated namespace references: search for occurrences of
the old namespace "GFramework.SourceGenerators.Abstractions.Rule" used in the
ControllerTemplate, PageControllerTemplate and the IController documentation
comment, and replace them with the new namespace
"GFramework.Core.SourceGenerators.Abstractions.Rule"; ensure the using/import
statements and any XML/doc comments referencing the old namespace are changed so
the templates (ControllerTemplate, PageControllerTemplate) and the IController
interface docs all consistently reference the new namespace.
---
Nitpick comments:
In @.codex/skills/gframework-boot/SKILL.md:
- Line 48: Unify the semantics for resume vs recovery: change the Line 48
wording that currently maps phrases like "next step", "continue", "继续" directly
to recovery so that it instead states to first search local-plan/ and then
determine whether the interaction should be treated as resume or recovery;
update the document text to reference both "resume" and "recovery" semantics
consistently (keeping the original examples "next step"/"continue"/"继续" and the
keyword "resume") and ensure the guidance reads "search local-plan/ first, then
decide resume or recovery" rather than unconditionally assuming recovery.
In `@AGENTS.md`:
- Around line 304-305: Narrow the guideline about recording observations from
`ai-libs/**` by making it conditional: only require recording the referenced
path and conclusion in the active plan/trace when the change is a multi-step or
complex task (e.g., refactor, migration, cross-module work) or when an active
plan/trace document already exists; also add the explicit mandate that for any
multi-step refactor/migration/cross-module task contributors MUST create or
adopt a dedicated recovery document under `local-plan/todos/` before making
substantive code changes, and update the sentence containing `ai-libs/**` and
`active plan/trace` to reflect these conditions.
🪄 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: 22248c22-d3ba-488b-9afb-73f86a15b15c
📒 Files selected for processing (40)
.codex.codex/skills/gframework-boot/SKILL.md.codex/skills/gframework-boot/agents/openai.yaml.codex/skills/gframework-boot/references/startup-artifacts.md.gitignoreAGENTS.mdGFramework.csprojdocs/zh-CN/api-reference/index.mddocs/zh-CN/best-practices/architecture-patterns.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/best-practices/performance.mddocs/zh-CN/core/command.mddocs/zh-CN/core/configuration.mddocs/zh-CN/core/events.mddocs/zh-CN/core/pause.mddocs/zh-CN/core/property.mddocs/zh-CN/core/query.mddocs/zh-CN/core/state-machine.mddocs/zh-CN/core/state-management.mddocs/zh-CN/core/system.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/game/data.mddocs/zh-CN/game/scene.mddocs/zh-CN/game/serialization.mddocs/zh-CN/game/ui.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/source-generators/bind-node-signal-generator.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/tutorials/basic/04-model-refactor.mddocs/zh-CN/tutorials/basic/05-command-system.mddocs/zh-CN/tutorials/godot-complete-project.mddocs/zh-CN/tutorials/pause-system.mddocs/zh-CN/tutorials/state-machine-tutorial.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). (2)
- GitHub Check: Code Quality & Security
- GitHub Check: Analyze (C#)
🧰 Additional context used
📓 Path-based instructions (2)
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
Files:
docs/zh-CN/tutorials/godot-complete-project.mddocs/zh-CN/tutorials/basic/04-model-refactor.mddocs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/core/configuration.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/game/scene.mddocs/zh-CN/best-practices/performance.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/core/command.mddocs/zh-CN/tutorials/basic/05-command-system.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/tutorials/state-machine-tutorial.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/api-reference/index.mddocs/zh-CN/game/data.mddocs/zh-CN/core/property.mddocs/zh-CN/best-practices/architecture-patterns.mddocs/zh-CN/core/query.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/source-generators/bind-node-signal-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/game/ui.mddocs/zh-CN/game/serialization.mddocs/zh-CN/core/state-machine.mddocs/zh-CN/core/state-management.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/tutorials/pause-system.mddocs/zh-CN/core/pause.mddocs/zh-CN/core/system.md
**/*.csproj
📄 CodeRabbit inference engine (AGENTS.md)
Follow repository defaults:
ImplicitUsingsdisabled,Nullableenabled,GenerateDocumentationFileenabled for shipped libraries,LangVersiongenerallypreviewin main libraries
Files:
GFramework.csproj
🧠 Learnings (32)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Before choosing runtimes or CLI tools, read `@.ai/environment/tools.ai.yaml` for project-relevant tool inventory
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: When working in WSL against Windows-backed worktree, prefer Windows Git from WSL (`git.exe`) instead of Linux `git` binary
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
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-18T16:37:51.391Z
Learning: Commit messages MUST use Conventional Commits format: `<type>(<scope>): <summary>` with summary in simplified Chinese
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Commit body MUST use unordered list items starting with verbs such as `新增`、`修复`、`优化`、`更新`、`补充`、`重构`; keep technical terms in English
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: When starting new task on `main` branch, update local `main` from remote first, then create dedicated branch before making substantive changes
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Branch naming rule for new task branch is `<type>/<topic-or-scope>`, where `<type>` matches Conventional Commit category
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Prefer invoking `$gframework-boot` when user uses short startup prompts such as `boot`, `continue`, `next step`, `按 boot 开始`, `先看 AGENTS`, `继续当前任务`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Use `explorer` subagents for read-only discovery, comparison, tracing, and narrow codebase questions; use `worker` subagents only for bounded implementation tasks
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Every delegation MUST specify concrete objective, expected output format, files/subsystem ownership, and constraints about tests, diagnostics, or compatibility
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Core framework components (Architecture, Module, System, Context, Registry, Service Module, Lifecycle types) MUST include high-level explanations of responsibilities, lifecycle, interactions, and when to use instead of alternatives
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Generated logic and source generator pipelines MUST explain what is generated, why it is generated, semantic assumptions, and diagnostics/fallback behavior
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Keep abstractions projects free of implementation details and engine-specific dependencies
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Preserve existing module boundaries; do not introduce new cross-module dependencies without clear architectural need
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
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-18T16:37:51.391Z
Learning: Public API changes must be covered by unit or integration tests
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Minimize new package dependencies; add them only when necessary and keep scope narrow
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Treat source code, *.csproj, tests, generated snapshots, and packaging metadata as primary evidence for documentation updates
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: If existing documentation conflicts with code or tests, update the documentation to match the implementation instead of preserving outdated wording
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Do not publish example code, setup steps, or package guidance that cannot be traced back to code, tests, or a verified consumer project
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Every user-facing package or module directory containing a *.csproj intended for direct consumption MUST have a sibling `README.md`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Use canonical filename `README.md` for module documentation; do not introduce variants like `ReadMe.md`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Module README MUST describe: the module's purpose, relationship to adjacent packages, major subdirectories/subsystems, minimum adoption path, and corresponding `docs/zh-CN/` entry points
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
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-18T16:37:51.391Z
Learning: If a module's responsibilities, setup, public API surface, generator inputs, or adoption path change, update that module's `README.md` in the same change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Update the relevant `README.md` or `docs/` page when behavior, setup steps, architecture guidance, or user-facing examples change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Treat `ai-libs/` as a read-only third-party source reference area; do not modify it unless user explicitly asks to sync or update
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: When implementation plans, traces, reviews, or design notes reference a third-party project, prefer the repository-local path under `ai-libs/` instead of unspecified upstream
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Keep code samples, package names, and command examples in documentation aligned with the current repository state
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Prefer documenting behavior and design intent, not only API surface
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
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-18T16:37:51.391Z
Learning: For integration-oriented features such as AI-First config system, documentation MUST cover: project directory layout, file conventions, required wiring, minimal working usage example, and migration notes
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
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-18T16:37:51.391Z
Learning: 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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: 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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: 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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: 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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: 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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Completing code changes without updating the active tracking document is considered incomplete work
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` before making substantive code changes
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Recovery 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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work, recording current date, key decisions, validation milestones, and immediate next step
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: When 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 milestone before pausing or handing work off
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T16:37:51.391Z
Learning: Before considering work complete, confirm: required comments and XML docs are present, code follows repository style and naming rules, relevant tests added/updated, no security issues introduced, documentation updated
📚 Learning: 2026-04-16T13:25:59.124Z
Learnt from: GeWuYou
Repo: GeWuYou/GFramework PR: 235
File: GFramework.SourceGenerators.Tests/Rule/ContextAwareGeneratorSnapshotTests.cs:1-3
Timestamp: 2026-04-16T13:25:59.124Z
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:
docs/zh-CN/tutorials/godot-complete-project.mddocs/zh-CN/tutorials/basic/04-model-refactor.mddocs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/core/configuration.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/core/command.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/game/ui.mdGFramework.csprojdocs/zh-CN/ecs/arch.mddocs/zh-CN/tutorials/pause-system.mddocs/zh-CN/core/pause.mddocs/zh-CN/core/system.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Use the namespace pattern `GFramework.{Module}.{Feature}` with PascalCase segments.
Applied to files:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/source-generators/context-get-generator.mdGFramework.csproj
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.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:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/core/configuration.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/best-practices/performance.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/api-reference/index.mddocs/zh-CN/game/data.mddocs/zh-CN/best-practices/architecture-patterns.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/source-generators/bind-node-signal-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/game/serialization.mddocs/zh-CN/core/state-machine.mdGFramework.csprojdocs/zh-CN/ecs/arch.mddocs/zh-CN/tutorials/pause-system.mddocs/zh-CN/core/pause.mddocs/zh-CN/core/system.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/game/scene.mddocs/zh-CN/best-practices/performance.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/core/command.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/api-reference/index.mdAGENTS.mddocs/zh-CN/game/data.mddocs/zh-CN/core/property.mddocs/zh-CN/best-practices/architecture-patterns.mddocs/zh-CN/core/query.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/source-generators/bind-node-signal-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/game/ui.mddocs/zh-CN/game/serialization.mddocs/zh-CN/core/state-machine.mdGFramework.csprojdocs/zh-CN/core/state-management.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/tutorials/pause-system.mddocs/zh-CN/core/pause.mddocs/zh-CN/core/system.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.csproj : Any change to public API, lifecycle semantics, module behavior, or extension points MUST update the related XML docs.
Applied to files:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/core/command.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/godot/architecture.mdAGENTS.mddocs/zh-CN/game/data.mddocs/zh-CN/core/property.mddocs/zh-CN/best-practices/architecture-patterns.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/core/state-machine.mdGFramework.csprojdocs/zh-CN/ecs/arch.md
📚 Learning: 2026-04-06T12:45:47.739Z
Learnt from: GeWuYou
Repo: GeWuYou/GFramework PR: 190
File: GFramework.Game/Config/GameConfigBootstrap.cs:1-3
Timestamp: 2026-04-06T12:45:47.739Z
Learning: In the GFramework repository (GeWuYou/GFramework), even though `ImplicitUsings` is disabled in the `.csproj` files, the project uses a manual `GlobalUsings.cs` file with `global using` directives to provide common System namespaces (e.g., System, System.Threading, System.Threading.Tasks) project-wide. Do not flag missing System-level `using` imports in C# files within this repository, as they are covered by GlobalUsings.cs.
Applied to files:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/core/configuration.mddocs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/core/command.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/source-generators/priority-generator.mdGFramework.csprojdocs/zh-CN/ecs/arch.mddocs/zh-CN/tutorials/pause-system.mddocs/zh-CN/core/system.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/ecs/arch.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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:
docs/zh-CN/source-generators/auto-register-module-generator.mddocs/zh-CN/game/scene.mddocs/zh-CN/best-practices/performance.mddocs/zh-CN/source-generators/enum-generator.mddocs/zh-CN/core/command.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/godot/architecture.mdAGENTS.mddocs/zh-CN/game/data.mddocs/zh-CN/core/property.mddocs/zh-CN/best-practices/architecture-patterns.mddocs/zh-CN/core/query.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/core/system.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Do not rely on implicit imports. Declare every required `using` statement explicitly. Implicit usings are disabled in the project.
Applied to files:
docs/zh-CN/core/configuration.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
Learning: Applies to **/*.cs : Apply [ContextAware] attribute to automatically implement IContextAware boilerplate logic
Applied to files:
docs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/game/scene.mddocs/zh-CN/best-practices/performance.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/game/data.mddocs/zh-CN/core/query.mddocs/zh-CN/core/events.mddocs/zh-CN/best-practices/index.mddocs/zh-CN/source-generators/context-aware-generator.mddocs/zh-CN/source-generators/bind-node-signal-generator.mddocs/zh-CN/source-generators/context-get-generator.mddocs/zh-CN/game/ui.mddocs/zh-CN/core/state-machine.mddocs/zh-CN/ecs/arch.mddocs/zh-CN/core/pause.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Keep source generators deterministic and free of hidden environment or network dependencies.
Applied to files:
docs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/source-generators/auto-ui-page-generator.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/source-generators/context-get-generator.mdGFramework.csproj
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
Learning: Applies to **/*.cs : Apply [Priority] attribute for automatic priority comparison implementation generation
Applied to files:
docs/zh-CN/source-generators/get-node-generator.mddocs/zh-CN/source-generators/priority-generator.mddocs/zh-CN/ecs/arch.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
docs/zh-CN/core/command.mddocs/zh-CN/godot/architecture.mddocs/zh-CN/api-reference/index.mdAGENTS.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
Learning: Applies to **/*.cs : Apply [Log] attribute for automatic logging field and logging helper method generation
Applied to files:
docs/zh-CN/source-generators/logging-generator.mddocs/zh-CN/source-generators/priority-generator.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
Learning: All coding rules must be followed strictly as defined in AGENTS.md
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Every delegation MUST specify the concrete objective, the expected output format, the files or subsystem the subagent owns, and any constraints about tests, diagnostics, or compatibility. Subagents are not allowed to revert or overwrite unrelated changes from the user or other agents. They must adapt to concurrent work instead of assuming exclusive ownership of the repository.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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. The main agent MUST identify the critical path first and not delegate the immediate blocking task. Use `explorer` subagents for read-only discovery, comparison, tracing, and narrow codebase questions. Use `worker` subagents only for bounded implementation tasks with an explicit file or module ownership boundary.
Applied to files:
AGENTS.md.codex/skills/gframework-boot/references/startup-artifacts.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: If 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. The branch naming rule for a new task branch is `<type>/<topic-or-scope>`, where `<type>` should match the intended Conventional Commit category.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.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.
Applied to files:
AGENTS.mddocs/zh-CN/best-practices/index.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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`. Do not introduce new `ReadMe.md` or other filename variants. A module README MUST describe the module's purpose, the relationship to adjacent runtime/abstractions/generator packages, the major subdirectories or subsystems, the minimum adoption path, and the corresponding `docs/zh-CN/` entry points.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.901Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.901Z
Learning: 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:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to README.md : If a module's responsibilities, setup, public API surface, generator inputs, or adoption path change, update that module's `README.md` in the same change. Adding a new top-level module directory without a `README.md` is considered incomplete work.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` 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:
AGENTS.md.codex/skills/gframework-boot/references/startup-artifacts.md.codex/skills/gframework-boot/SKILL.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point. Completing code changes without updating the active tracking document is considered incomplete work.
Applied to files:
AGENTS.md.codex/skills/gframework-boot/references/startup-artifacts.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.
Applied to files:
.codex/skills/gframework-boot/references/startup-artifacts.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation.
Applied to files:
.codex/skills/gframework-boot/references/startup-artifacts.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.csproj : Follow the repository defaults: `ImplicitUsings` disabled, `Nullable` enabled, `GenerateDocumentationFile` enabled for shipped libraries, `LangVersion` is generally `preview` in the main libraries and abstractions.
Applied to files:
GFramework.csproj
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Preserve deterministic behavior in registries, lifecycle orchestration, and generated outputs.
Applied to files:
GFramework.csproj
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Minimize new package dependencies. Add them only when necessary and keep scope narrow.
Applied to files:
GFramework.csproj
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : When adding analyzers or suppressions, keep them minimal and justify them in code comments if the reason is not obvious. The repository uses `Meziantou.Analyzer`; treat analyzer feedback as part of the coding standard.
Applied to files:
GFramework.csproj
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Avoid logging secrets, tokens, credentials, or machine-specific sensitive data.
Applied to files:
GFramework.csproj
🪛 LanguageTool
.codex/skills/gframework-boot/SKILL.md
[style] ~28-~28: Specify a number, remove phrase, use “a few”, or use “some”
Context: ...allel discovery required - medium: a small number of modules, some read-only exploration hel...
(SMALL_NUMBER_OF)
[style] ~50-~50: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...re area, prefer resuming that thread. - If the repository state suggests in-flight...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~61-~61: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...s/startup-artifacts.md` when you need a quick reminder of the repository entrypoints,...
(QUICK_BRIEF)
🔇 Additional comments (33)
.gitignore (1)
18-18:ai-libs/的忽略规则添加合理。这能降低第三方参考快照被误提交的风险,与仓库里“只读参考区”的约束一致。
.codex/skills/gframework-boot/agents/openai.yaml (1)
1-4: Boot 接口配置清晰且与目标一致。
display_name、描述和默认提示词都聚焦到$gframework-boot,落地路径明确。GFramework.csproj (1)
73-73:ai-libs\**在打包/编译/资源维度的排除是正确的。这三处同步排除能避免参考目录被误打包或参与构建,行为一致性很好。
Also applies to: 122-122, 157-157
AGENTS.md (1)
40-48: Boot 规则补充完整,优先级定义明确。“便捷层不替代
AGENTS.md”以及启动前必读项写得很清楚,可执行性强。.codex/skills/gframework-boot/references/startup-artifacts.md (1)
1-31: 启动参考文档结构清晰,可直接执行。必读项、复杂度分级、模型默认值和开场模板闭环完整,便于快速一致化启动流程。
.codex/skills/gframework-boot/SKILL.md (1)
15-37: 启动流程与任务跟踪约束设计完整。从启动读取顺序到委派边界,再到恢复文档维护规则,流程衔接自然且可操作。
Also applies to: 40-45
docs/zh-CN/tutorials/basic/05-command-system.md (1)
177-177: 命名空间更新一致,示例可读性良好。该处将
Rule引用切到GFramework.Core.SourceGenerators.Abstractions.Rule,与当前文档上下文保持一致。docs/zh-CN/tutorials/state-machine-tutorial.md (1)
401-401: 导入路径调整正确,和教程代码段保持统一。docs/zh-CN/best-practices/architecture-patterns.md (1)
660-660: 示例 import 更新合理,未引入额外风险。docs/zh-CN/source-generators/get-node-generator.md (1)
175-175:Rule命名空间指向更新正确。docs/zh-CN/tutorials/basic/04-model-refactor.md (1)
190-190: 两处 import 同步更新到 Core 命名空间,处理一致。Also applies to: 222-222
docs/zh-CN/tutorials/godot-complete-project.md (1)
477-477: 三个场景脚本示例的命名空间已统一,改动清晰且正确。Also applies to: 633-633, 676-676
docs/zh-CN/source-generators/bind-node-signal-generator.md (1)
643-643: 导入路径更新准确,和生成器文档示例保持一致。docs/zh-CN/core/state-management.md (1)
393-393: 变更简洁且正确,示例引用路径已对齐。docs/zh-CN/ecs/arch.md (1)
511-511: 命名空间大小写无误此行中的命名空间
GFramework.Core.SourceGenerators.Abstractions.Bases与实际源代码一致,使用正确的 PascalCase 约定。无需进一步更正。docs/zh-CN/core/property.md (1)
243-243: 命名空间迁移一致,示例可读性良好。这两处
using更新与当前文档上下文一致,未引入示例语义偏差。Also applies to: 387-387
docs/zh-CN/core/events.md (1)
357-357: 示例中的 Rule 引用更新正确且统一。该文件内多处控制器示例的命名空间已保持一致,迁移质量良好。
Also applies to: 455-455, 505-505
docs/zh-CN/core/system.md (1)
189-189: 控制器示例的命名空间替换正确。单点变更清晰、风险低,与文档其余示例风格一致。
docs/zh-CN/tutorials/pause-system.md (1)
327-327: 教程示例中的命名空间已对齐,修改合理。两处更新不影响教程步骤语义,且保持了示例一致性。
Also applies to: 667-667
docs/zh-CN/game/scene.md (1)
168-168: 场景文档中的三处命名空间更新一致且准确。迁移后示例保持统一,阅读和复制体验更稳定。
Also applies to: 356-356, 440-440
docs/zh-CN/core/command.md (1)
60-60: Command 文档中的引用迁移处理到位。两处变更都准确落在示例入口位置,符合预期。
Also applies to: 224-224
docs/zh-CN/source-generators/auto-register-module-generator.md (1)
32-32: Source Generator 示例导入路径更新正确。变更粒度精确,且与该页上下文完全一致。
docs/zh-CN/core/pause.md (1)
112-112: Pause 文档内多处命名空间替换完成度高。批量更新保持了统一性,未破坏示例结构与说明对应关系。
Also applies to: 130-130, 166-166, 218-218, 257-257, 365-365, 407-407, 444-444, 685-685, 787-787, 832-832
docs/zh-CN/game/serialization.md (1)
97-97: 命名空间迁移一致且正确。示例中的
Rule引用已统一到GFramework.Core.SourceGenerators.Abstractions.Rule,与当前文档迁移方向一致。Also applies to: 178-178
docs/zh-CN/source-generators/context-aware-generator.md (1)
24-24: ContextAware 示例引用更新无误。两处代码片段都已对齐
GFramework.Core.SourceGenerators.Abstractions.Rule,文档示例一致性良好。Also applies to: 236-236
docs/zh-CN/game/data.md (1)
134-134: 数据与存档文档中的 Rule 引用迁移完整。三处示例均已切换到
GFramework.Core.SourceGenerators.Abstractions.Rule,与当前模块命名保持一致。Also applies to: 241-241, 370-370
docs/zh-CN/source-generators/auto-ui-page-generator.md (1)
129-129: 组合示例的 Rule 依赖指向正确。
AutoUiPage与[ContextAware]混合示例已正确使用 Core 命名空间。docs/zh-CN/godot/architecture.md (1)
344-344: Godot 架构文档的 ContextAware 引用已对齐。两处示例都切换到
GFramework.Core.SourceGenerators.Abstractions.Rule,迁移方向正确。Also applies to: 522-522
docs/zh-CN/source-generators/logging-generator.md (1)
3-3: 日志生成器文档迁移清晰且一致。标题说明与示例
using都已切换到GFramework.Core.SourceGenerators.Abstractions.*,可读性和一致性都更好。Also applies to: 14-14, 168-170
docs/zh-CN/source-generators/priority-generator.md (1)
30-30: Priority 文档中的命名空间替换覆盖充分。相关示例已统一至
GFramework.Core.SourceGenerators.Abstractions.*,与 Source Generator 家族拆分后的包结构一致。Also applies to: 94-94, 136-136, 553-556, 666-666
docs/zh-CN/api-reference/index.md (1)
437-441: API 参考对 Source Generators 家族的描述更新到位。模块拆分与 Attribute 来源说明更准确,能更好反映当前生态结构。
docs/zh-CN/source-generators/context-get-generator.md (2)
48-48: 命名空间示例已完成一致性对齐,方向正确。这些示例
using统一到GFramework.Core.SourceGenerators.Abstractions.Rule后,与当前文档其余内容保持一致,能减少用户按示例接入时的命名空间偏差。Based on learnings: “Treat source code,
*.csproj, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates.”Also applies to: 83-83, 111-111, 283-283, 331-331
626-626: 注册可见性分析归属更新清晰且必要。将分析能力归属更新为
GFramework.Core.SourceGenerators与本次文档其余命名空间迁移一致,语义更准确。Based on learnings: “If existing documentation conflicts with code or tests, update the documentation to match the implementation instead of preserving outdated wording.”
- 新增项目级 `-pr-review` 技能与 PR 页面抓取脚本,提取 CodeRabbit 评论、检查结果和测试状态 - 修复 gframework-boot 与 AGENTS 规则文案,使 resume/recovery 与 tracking 条件保持一致 - 更新 Godot 模板与 IController 文档注释中的旧 SourceGenerators Rule 命名空间引用 - 补充 CQRS 迁移 tracking 与 trace 的 RP-042 恢复点、验证结果和后续动作
- 重命名 local-plan 为 ai-plan,并收口 public 与 private 的目录语义 - 更新 AGENTS、README 与 boot skill 的恢复文档路径和安全约束 - 迁移共享 tracking 与 trace 文件到 ai-plan/public,并补充治理说明文档
- 在 third-party-licenses/Mediator 目录下创建 LICENSE 文件 - 包含完整的 MIT 许可证文本内容 - 添加版权持有者 Martin Othamar 的声明 - 确保许可证条款符合开源项目合规性要求
- 补充 `fix pr review` 与 `Use FPR` 作为 `gframework-pr-review` 的快捷触发示例 - 更新 skill 示例列表,降低 PR 审查场景下的调用门槛
Summary
Test ResultsDetails
Insights
build-and-test: Run #879
🎉 All tests passed!Slowest Tests
± Comparison with run #878 at 5cff710 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 2 runs. Github Test Reporter by CTRF 💚 |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.codex/skills/gframework-pr-review/scripts/fetch_current_pr_review.py:
- Around line 328-333: The current main() always calls get_current_branch() when
computing branch, even if args.pr was provided; change main() so that if args.pr
is present you skip any call to get_current_branch() and use args.pr directly
for pr_number, otherwise compute branch = args.branch or get_current_branch()
and call resolve_pr_number(branch); update the control flow in main()
(referencing main, parse_args, args.pr, args.branch, get_current_branch,
resolve_pr_number) so get_current_branch() is only invoked when resolving a PR
from a branch.
- Around line 19-33: The script hardcodes WINDOWS_GIT which breaks across
machines/CI; update initialization of WINDOWS_GIT to prefer an environment
override (e.g., os.environ["WINDOWS_GIT"] if set), then fall back to resolving
the system git binary (use 'git' or 'git.exe' via shutil.which and platform
detection) so run_command and get_current_branch use a configurable/portable git
path; ensure run_command still raises on non-zero exit and get_current_branch
calls the resolved WINDOWS_GIT.
In `@ai-plan/public/todos/cqrs-rewrite-migration-tracking.md`:
- Around line 402-405: The doc contains machine-local absolute paths (the NuGet
fallback path shown near the GFramework.csproj mention) which must not be
committed to ai-plan/public; replace the explicit path value with a redaction or
neutral phrasing such as "machine-local path omitted" or "local NuGet fallback
path (redacted)" and keep only the issue type and impact. Update the two
occurrences that reference the absolute path near the GFramework.csproj/NuGet
fallback package folder and ensure the rest of the sentence still explains the
build impact without any filesystem-specific strings.
- Around line 469-473: The document references conflicting recovery point IDs:
update the confirmation step that currently mentions CQRS-REWRITE-RP-015 to use
the current valid recovery point CQRS-REWRITE-RP-042 so the next-recovery-point
is consistent; specifically, in the section that says "确认当前恢复点
`CQRS-REWRITE-RP-015` 已对应到最新提交" change that identifier to `CQRS-REWRITE-RP-042`,
and verify any other occurrences in the same file and the linked trace file
(cqrs-rewrite-migration-trace.md) match CQRS-REWRITE-RP-042 so
ai-plan/public/todos/** accurately reflects the next recommended recovery point
referenced by CQRS_MODULE_SPLIT_PLAN.md Phase 7.
🪄 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: 7740c339-21e9-47a2-8cd6-11b9a3fe7fca
📒 Files selected for processing (19)
.codex/skills/gframework-boot/SKILL.md.codex/skills/gframework-boot/references/startup-artifacts.md.codex/skills/gframework-pr-review/SKILL.md.codex/skills/gframework-pr-review/agents/openai.yaml.codex/skills/gframework-pr-review/scripts/fetch_current_pr_review.py.gitignoreAGENTS.mdGFramework.Core.Abstractions/Controller/IController.csGodot/script_templates/Node/ControllerTemplate.csGodot/script_templates/Node/PageControllerTemplate.csREADME.mdai-plan/README.mdai-plan/public/todos/ai-plan-governance-tracking.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/todos/cqrs-rewrite-migration-tracking.mdai-plan/public/traces/ai-plan-governance-trace.mdai-plan/public/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/traces/cqrs-rewrite-migration-trace.mdthird-party-licenses/Mediator/LICENSE
✅ Files skipped from review due to trivial changes (10)
- third-party-licenses/Mediator/LICENSE
- Godot/script_templates/Node/ControllerTemplate.cs
- Godot/script_templates/Node/PageControllerTemplate.cs
- .gitignore
- GFramework.Core.Abstractions/Controller/IController.cs
- .codex/skills/gframework-pr-review/agents/openai.yaml
- README.md
- ai-plan/public/todos/ai-plan-governance-tracking.md
- ai-plan/README.md
- .codex/skills/gframework-boot/references/startup-artifacts.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). (2)
- GitHub Check: Code Quality & Security
- GitHub Check: Analyze (C#)
🧰 Additional context used
📓 Path-based instructions (2)
ai-plan/public/**
📄 CodeRabbit inference engine (AGENTS.md)
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 anyai-plan/**file. Never record absolute file-system paths; use repository-relative paths, branch names, PR numbers, or stable document identifiers instead.
Files:
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/todos/cqrs-rewrite-migration-tracking.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/traces/ai-plan-governance-trace.md
ai-plan/public/todos/**
📄 CodeRabbit inference engine (AGENTS.md)
When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under
ai-plan/public/todos/in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point.
Files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.md
🧠 Learnings (20)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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.
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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-18T19:29:39.168Z
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.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: When working in WSL against the repository's Windows-backed worktree, prefer Windows Git from WSL (for example `git.exe`) instead of the Linux `git` binary. If a Git command in WSL fails with a worktree-style 'not a git repository' path translation error, rerun it with the Windows Git executable and treat that as the repository-default Git path for the rest of the task.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Every completed task MUST pass at least one build validation before it is considered done. If the task changes multiple projects or shared abstractions, prefer a solution-level or affected-project `dotnet build ... -c Release`; otherwise use the smallest build command that still proves the result compiles.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: If the required build passes and there are task-related staged or unstaged changes, contributors MUST create a Git commit automatically instead of leaving the task uncommitted, unless the user explicitly says not to commit.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
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`.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: If 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. The branch naming rule for a new task branch is `<type>/<topic-or-scope>`, where `<type>` should match the intended Conventional Commit category as closely as practical.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: The repository-maintained Codex boot skill lives at `.codex/skills/gframework-boot/`. Prefer invoking `$gframework-boot` when the user uses short startup prompts such as `boot`、`continue`、`next step`、`按 boot 开始`、`先看 AGENTS`、`继续当前任务`. The boot skill is a startup convenience layer, not a replacement for AGENTS.md. If the skill and AGENTS.md diverge, follow AGENTS.md first and update the skill in the same change. The boot skill MUST read AGENTS.md、`.ai/environment/tools.ai.yaml` and the relevant `ai-plan/` artifacts before substantive execution.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
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. The main agent MUST identify the critical path first. Do not delegate the immediate blocking task if the next local step depends on that result.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Use `explorer` subagents for read-only discovery, comparison, tracing, and narrow codebase questions. Use `worker` subagents only for bounded implementation tasks with an explicit file or module ownership boundary.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Every delegation MUST specify: the concrete objective, the expected output format, the files or subsystem the subagent owns, and any constraints about tests, diagnostics, or compatibility. Subagents are not allowed to revert or overwrite unrelated changes from the user or other agents. They must adapt to concurrent work instead of assuming exclusive ownership of the repository.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Prefer lightweight models such as `gpt-5.1-codex-mini` for narrow exploration, indexing, and comparison tasks. Prefer stronger models such as `gpt-5.4` for cross-module design work, non-trivial refactors, and tasks that require higher confidence reasoning.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: The main agent remains responsible for reviewing and integrating subagent output. Unreviewed subagent conclusions do not count as final results.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: 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.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Run targeted tests for the code you changed whenever possible. Run broader solution-level validation for changes that touch shared abstractions, lifecycle behavior, source generators, or dependency wiring. Do not claim completion if required tests were skipped; state what was not run and why.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Treat source code, *.csproj, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Treat `ai-libs/` as a read-only third-party source reference area. Code under `ai-libs/**` exists for comparison, tracing, design study, and behavior verification; do not modify it unless the user explicitly asks to sync or update that third-party snapshot. When implementation plans, traces, reviews, or design notes say 'reference a third-party project', prefer the repository-local path under `ai-libs/` instead of an unspecified upstream repository.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: If a task depends on observations from `ai-libs/**`, record the referenced path and conclusion in the active plan or trace when the work is multi-step or complex, or when an active tracking document already exists, rather than editing the third-party reference copy.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: 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.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Use `ai-plan/public/todos/` for repository-safe recovery documents that may be committed and shared across worktrees. Use `ai-plan/public/traces/` for repository-safe execution traces that may be committed and shared across worktrees. Use `ai-plan/private/` for worktree-private recovery artifacts that should be kept untracked and scoped to the current worktree.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `ai-plan/public/todos/` 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 so another contributor or subagent can continue the work safely.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Contributors MUST maintain a matching execution trace under `ai-plan/public/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: When documentation changes need local preview, use `cd docs && bun install && bun run dev`.
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-18T19:29:39.168Z
Learning: Before considering work complete, confirm that required comments and XML docs are present, code follows repository style and naming rules, relevant tests were added or updated, sensitive or unsafe behavior was not introduced, user-facing documentation is updated when needed, and feature adoption docs under `docs/zh-CN/` were added or updated when functionality was added, removed, or refactored.
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/todos/cqrs-rewrite-migration-tracking.mdAGENTS.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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:
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/todos/cqrs-rewrite-migration-tracking.mdAGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.
Applied to files:
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.mdAGENTS.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/traces/ai-plan-governance-trace.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : When adding caching, pooling, or shared mutable state, document thread-safety assumptions and failure modes.
Applied to files:
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` 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/todos/cqrs-rewrite-migration-tracking.mdAGENTS.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/traces/ai-plan-governance-trace.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point. Completing code changes without updating the active tracking document is considered incomplete work.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.mdAGENTS.mdai-plan/public/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/traces/ai-plan-governance-trace.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
Learning: All coding rules must be followed strictly as defined in AGENTS.md
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Every delegation MUST specify the concrete objective, the expected output format, the files or subsystem the subagent owns, and any constraints about tests, diagnostics, or compatibility. Subagents are not allowed to revert or overwrite unrelated changes from the user or other agents. They must adapt to concurrent work instead of assuming exclusive ownership of the repository.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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. The main agent MUST identify the critical path first and not delegate the immediate blocking task. Use `explorer` subagents for read-only discovery, comparison, tracing, and narrow codebase questions. Use `worker` subagents only for bounded implementation tasks with an explicit file or module ownership boundary.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: If 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. The branch naming rule for a new task branch is `<type>/<topic-or-scope>`, where `<type>` should match the intended Conventional Commit category.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.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.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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`. Do not introduce new `ReadMe.md` or other filename variants. A module README MUST describe the module's purpose, the relationship to adjacent runtime/abstractions/generator packages, the major subdirectories or subsystems, the minimum adoption path, and the corresponding `docs/zh-CN/` entry points.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.901Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.901Z
Learning: 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:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to README.md : If a module's responsibilities, setup, public API surface, generator inputs, or adoption path change, update that module's `README.md` in the same change. Adding a new top-level module directory without a `README.md` is considered incomplete work.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.csproj : Any change to public API, lifecycle semantics, module behavior, or extension points MUST update the related XML docs.
Applied to files:
AGENTS.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation.
Applied to files:
AGENTS.md
🪛 LanguageTool
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.md
[grammar] ~8-~8: Ensure spelling is correct
Context: ...nce omits GeWuYou.GFramework.Cqrs and GeWuYou.GFramework.Cqrs.Abstractions even though the module ov...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~12-~12: Ensure spelling is correct
Context: ...ge, or compatibility notes. - Confirmed `GFramework.Cqrs.Tests/Cqrs/CqrsHandlerRegistrarTests.cs...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~37-~37: Ensure spelling is correct
Context: ...mework.Cqrs.) and handler base types (GFramework.Cqrs.Cqrs.). - Updated docs/zh-CN/source-...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~47-~47: Ensure spelling is correct
Context: ...nal/CqrsHandlerRegistrar.cs- ExpandedGFramework.Cqrs.Tests/Cqrs/CqrsHandlerRegistrarTests.cs...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~49-~49: Ensure spelling is correct
Context: ...rs after the cache is reused. - Updated GFramework.Cqrs.Tests/Cqrs/CqrsDispatcherCacheTests.cs...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~51-~51: Ensure spelling is correct
Context: ...ion to change handler doc examples from using GFramework.Cqrs.Cqrs.Command; to `using GFramework.C...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~51-~51: Ensure spelling is correct
Context: ...using GFramework.Cqrs.Cqrs.Command;to using GFramework.Cqrs.Command;`. The repository's actual hand...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~52-~52: Ensure spelling is correct
Context: ...ual handler base types still live under GFramework.Cqrs.Cqrs.*, so the implementation kept the...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
[uncategorized] ~20-~20: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...沉到 GFramework.Cqrs - 已将 generator 从“整程序集回退”推进到“可见 handlers 走 typeof(...) 直注册,...
(wa5)
[uncategorized] ~22-~22: 您的意思是“"不"齐”?
Context: ...runtime fallback marker” - 已为手写/第三方程序集补齐正式的精确 fallback 入口:`CqrsReflectionFallba...
(BU)
[uncategorized] ~26-~26: 您的意思是“"不"齐”?
Context: ...只做常量时间绑定”的模式 - 已在 CqrsDispatcher 热路径补齐 service-type 缓存,减少 PublishAsync / `S...
(BU)
[uncategorized] ~27-~27: 您的意思是“"不"齐”?
Context: ... invoker method-definition 查找收敛为静态一次解析,并补齐 request/no-pipeline、request/with-pipel...
(BU)
[uncategorized] ~41-~41: 您的意思是“"不"反射”?
Context: ...Attribute` 对具体 handler implementation 定向补反射”; 若 runtime 合同不提供该 marker,则生成器保守地...
(BU)
[uncategorized] ~43-~43: 您的意思是“"不"齐”?
Context: ...y,避免静默漏注册 - 已完成一轮 review follow-up 小修:补齐 dispatcher string pipeline cache 清理,...
(BU)
[uncategorized] ~44-~44: 您的意思是“"不"齐”?
Context: ...用缓存与编译错误诊断输出 - 已完成三轮 review follow-up:补齐 ICqrsRuntime 异常/上下文约束文档,明确 `DefaultC...
(BU)
[uncategorized] ~47-~47: 您的意思是“"不"洞”?
Context: ...mainingReflectedHandlerInterfaces(...) 补洞推进到“按程序集名 + metadata name 定向 lookup”;I...
(BU)
[uncategorized] ~55-~55: 您的意思是“"不"齐”?
Context: ...-libs/**观察写入 active plan/trace 的触发条件,并补齐模板/接口注释中的旧Rule` 命名空间残留 ## 本轮计划 ### ...
(BU)
[uncategorized] ~93-~93: 您的意思是“"不"齐”?
Context: ...口 - [x] 提升 CqrsTestRuntime 反射绑定的签名鲁棒性并补齐 XML 文档 - [x] 将剩余 Mediator 兼容入口推进到正式弃...
(BU)
[uncategorized] ~141-~141: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...构 - [x] 将 partial reflection fallback 从“整程序集 GetTypes() 扫描”推进到“generator 输出精确 han...
(wa5)
[uncategorized] ~142-~142: 您的意思是“"不"齐”?
Context: ...embly.GetType(...)` 补扫” - [x] 为手写/第三方程序集补齐精确 fallback metadata 入口,避免这类场景只能依赖旧版空 m...
(BU)
[uncategorized] ~143-~143: 您的意思是“"不"齐”?
Context: ...rker 或脆弱的字符串约定 - [x] 为 CqrsDispatcher 补齐 notification/request/stream service-ty...
(BU)
[uncategorized] ~144-~144: 您的意思是“"不"齐”?
Context: ...ericType重复开销 - [x] 为CqrsDispatcher` 补齐 invoker method-definition 静态缓存,并把 requ...
(BU)
[uncategorized] ~159-~159: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...载精确 fallback handler 类型名清单;当清单为空时,仍保持旧版“整程序集补扫”的兼容语义。 - `GFramework.Cqrs/CqrsReflec...
(wa5)
[uncategorized] ~171-~171: 您的意思是“"不"位”?
Context: ...出现新的未覆盖类型形态,则改由程序集级 targeted fallback 合同补位 - `GFramework.SourceGenerators/Cqrs/Cq...
(BU)
[uncategorized] ~182-~182: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"能把……“"。
Context: ...Cqrs/CqrsHandlerRegistryGenerator.cs现已把“生成注册器顶层上下文是否能合法书写某个类型”改为通过Compilation.IsSymbolAcces...
(wa3)
[uncategorized] ~186-~186: 您的意思是“"不"洞”?
Context: ... 内部的 implementation 级 GetInterfaces() 补洞辅助逻辑: - 不再生成 `RegisterRemainingReflec...
(BU)
[uncategorized] ~189-~189: 您的意思是“"不"反射”?
Context: ...Attribute对具体 handler implementation 定向补反射 -GFramework.SourceGenerators.Tests/...
(BU)
[uncategorized] ~196-~196: 您的意思是“"不"齐”?
Context: ...s与MetadataReferenceTestBuilder.cs` 已补齐多程序集测试基础设施,允许 CQRS generator 回归显式追加内存元数...
(BU)
[uncategorized] ~197-~197: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...Assembly.GetType(...)补扫;只有缺少精确元数据时才继续走整程序集GetTypes()扫描。 -GFramework.Cqrs.Te...
(wa5)
[uncategorized] ~218-~218: 您的意思是“"不"入”?
Context: ...d已完成最小同步: - 根 README 的模块表、仓库结构与安装指引已补入GFramework.Cqrs` 以及拆分后的 SourceGenerat...
(BU)
[uncategorized] ~229-~229: 您的意思是“"不"齐”?
Context: ...ork.Cqrs.Abstractions/GlobalUsings.cs已补齐基础 system 命名空间,避免新项目在关闭ImplicitUsings...
(BU)
[uncategorized] ~236-~236: 您的意思是“"不"齐”?
Context: ...alUsings.cs与Logging/TestLogger.cs已补齐,确保新测试项目不再隐式依赖GFramework.Core.Tests` ...
(BU)
[uncategorized] ~242-~242: 您的意思是“"不"反射”?
Context: ...写/第三方程序集或 generator 仍未直接覆盖的场景需要 runtime 补反射”的程序集级兼容入口。 - `GFramework.SourceGenera...
(BU)
[uncategorized] ~297-~297: 您的意思是“"不"回”?
Context: ...handler”回归已适配 seam 方案:在裸容器 Clear() 后显式补回测试基础设施,再验证程序集去重状态重置。 - `ai-plan/migrati...
(BU)
[uncategorized] ~325-~325: 您的意思是“"不"齐”?
Context: ...r以及MessageHandlerDelegate` 的 XML 文档已补齐迁移后的契约边界,明确旧 Command/Query 总线与新 CQRS ...
(BU)
[uncategorized] ~333-~333: 您的意思是“"不"齐”?
Context: ...behavior 链式执行 - CqrsHandlerRegistrar 已补齐三项运行时硬化: - 按程序集名、处理器类型名与处理器接口名稳定排序,...
(BU)
[uncategorized] ~343-~343: 您的意思是“"不"齐”?
Context: ...注册 + warning 已记录”。 - CqrsTestRuntime 已补齐 XML 文档,并改为按 `IIocContainer + IEnumerab...
(BU)
[uncategorized] ~362-~362: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...处理器(例如私有嵌套 handler),生成注册器会改走定向反射注册,而不是退回整程序集补扫 - CqrsHandlerRegistrar 已改为优先查找 `Cq...
(wa5)
[uncategorized] ~366-~366: 您的意思是“"不"齐”?
Context: ...sts/Cqrs/CqrsHandlerRegistrarTests.cs` 已补齐: - 生成器输出快照测试 - 私有嵌套 handler 走 gene...
(BU)
[uncategorized] ~379-~379: 您的意思是“"不"齐”?
Context: ...ions.DependencyInjection的using, 已补齐以恢复 IServiceCollection` 编译通过。 - 当前验证状态...
(BU)
[uncategorized] ~495-~495: 您的意思是“"不"齐”?
Context: ...径恢复验证链路: - scripts/GlobalUsings.cs 已补齐新的 GFramework.Cqrs.Abstractions.Cqrs*...
(BU)
[uncategorized] ~517-~517: 您的意思是“"不"齐”?
Context: ...首次访问时只执行一次容器解析 - ArchitectureContext 已补齐公开构造函数 XML 文档,以及 CqrsRuntime 惰性初始化的并发...
(BU)
[uncategorized] ~522-~522: 您的意思是“"不"齐”?
Context: ... GFramework.Cqrs.Tests 已通过链接编译同一份共享源码并补齐 global using, 避免两个测试项目继续维护分叉的反射绑定逻...
(BU)
[uncategorized] ~597-~597: 您的意思是“"不"齐”?
Context: ...qrs.Abstractions/Cqrs/ICqrsRuntime.cs已补齐三个公开方法的 XML 契约: -null参数对应Argume...
(BU)
[uncategorized] ~620-~620: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:细"地"回归
Context: ...lias + duplicate registration 组合场景再补一条更细的回归测试 ## 2026-04-16 补充记录(RP-033) ### 阶段...
(wb4)
[uncategorized] ~627-~627: 您的意思是“"不"齐”?
Context: ...eTests.cs的ClearDispatcherCaches()已补齐 RequestPipelineInvokerCache...
(BU)
.codex/skills/gframework-boot/SKILL.md
[style] ~29-~29: Specify a number, remove phrase, use “a few”, or use “some”
Context: ...allel discovery required - medium: a small number of modules, some read-only exploration hel...
(SMALL_NUMBER_OF)
[style] ~53-~53: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...re area, prefer resuming that thread. - If the repository state suggests in-flight...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~64-~64: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...s/startup-artifacts.md` when you need a quick reminder of the repository entrypoints,...
(QUICK_BRIEF)
.codex/skills/gframework-pr-review/SKILL.md
[style] ~50-~50: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e fetch with proxy variables removed. - If the PR page contains multiple CodeRabbi...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
ai-plan/public/todos/cqrs-cache-docs-hardening-tracking.md
[grammar] ~45-~45: Ensure spelling is correct
Context: ...ly did not rename handler examples from GFramework.Cqrs.Cqrs.* to GFramework.Cqrs.*, becau...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
ai-plan/public/traces/ai-plan-governance-trace.md
[uncategorized] ~16-~16: 您的意思是“"不"齐”?
Context: ...md作为目录语义与内容规范的单点说明 - 在AGENTS.md` 中补齐 public/private 职责边界,以及敏感信息与绝对路径禁写规则 ...
(BU)
🪛 markdownlint-cli2 (0.22.0)
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.md
[warning] 73-73: Multiple headings with the same content
(MD024, no-duplicate-heading)
🔇 Additional comments (1)
ai-plan/public/traces/cqrs-cache-docs-hardening-trace.md (1)
24-24:⚠️ Potential issue | 🟡 Minor重复标题会触发 Markdown lint(MD024)
Line 24 与 Line 73 使用了相同的三级标题
Immediate Next Step。建议将后者改成更具体的标题(例如Immediate Next Step (Post-validation))以避免 lint 警告。🔧 建议修复
-### Immediate Next Step +### Immediate Next Step @@ -### Immediate Next Step +### Immediate Next Step (Post-validation)Also applies to: 73-73
⛔ Skipped due to learnings
Learnt from: CR Repo: GeWuYou/GFramework PR: 0 File: AGENTS.md:0-0 Timestamp: 2026-04-18T14:00:12.900Z Learning: Applies to local-plan/traces/** : Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.Learnt from: CR Repo: GeWuYou/GFramework PR: 0 File: AGENTS.md:0-0 Timestamp: 2026-04-18T14:00:12.900Z Learning: Applies to local-plan/todos/**/*.md : For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` 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.Learnt from: CR Repo: GeWuYou/GFramework PR: 0 File: AGENTS.md:0-0 Timestamp: 2026-04-18T14:00:12.900Z Learning: Applies to local-plan/todos/**/*.md : When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point. Completing code changes without updating the active tracking document is considered incomplete work.
- 修复 FPR 脚本的 Git 解析、--pr 控制流与 branch 到 PR 的 API 解析路径 - 优化 CodeRabbit summary、CTRF 测试结果与 latest head review threads 的 API-first 提取逻辑 - 更新 skill 文档、agent prompt 与 ai-plan 记录,明确最新提交后 review threads 的优先级
Summary
Test ResultsDetails
Insights
build-and-test: Run #880
🎉 All tests passed!Slowest Tests
± Comparison with run #879 at 83c8b87 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 3 runs. Github Test Reporter by CTRF 💚 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/todos/cqrs-rewrite-migration-tracking.md`:
- Line 689: The inline code in the rg command contains nested backticks (the
segment `` `GFramework\.SourceGenerators` ``) which breaks Markdown; edit the
command string (`rg -n "using GFramework\.SourceGenerators\.Abstractions\.|###
GFramework\.SourceGenerators|GFramework\.SourceGenerators
自动生成|`GFramework\.SourceGenerators` 现在还会分析" docs/zh-CN`) to remove or escape the
inner backticks—e.g. replace the inner `` `GFramework\.SourceGenerators` `` with
plain GFramework\.SourceGenerators or escape it (use
\`GFramework\.SourceGenerators\`), or switch the outer delimiters to single
quotes and leave the pattern unquoted—so the final line contains no nested
backticks and renders correctly.
🪄 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: 63c0c219-5e01-4eeb-8120-1cbd290bc4d2
📒 Files selected for processing (5)
.codex/skills/gframework-pr-review/SKILL.md.codex/skills/gframework-pr-review/agents/openai.yaml.codex/skills/gframework-pr-review/scripts/fetch_current_pr_review.pyai-plan/public/todos/cqrs-rewrite-migration-tracking.mdai-plan/public/traces/cqrs-rewrite-migration-trace.md
✅ Files skipped from review due to trivial changes (2)
- .codex/skills/gframework-pr-review/agents/openai.yaml
- .codex/skills/gframework-pr-review/scripts/fetch_current_pr_review.py
🚧 Files skipped from review as they are similar to previous changes (1)
- .codex/skills/gframework-pr-review/SKILL.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). (2)
- GitHub Check: Code Quality & Security
- GitHub Check: Analyze (C#)
🧰 Additional context used
📓 Path-based instructions (4)
ai-plan/public/**
📄 CodeRabbit inference engine (AGENTS.md)
Contributors MUST keep committed
ai-plan/public/**content safe to publish in Git history
Files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
ai-plan/**
📄 CodeRabbit inference engine (AGENTS.md)
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/**fileNever 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/todos/cqrs-rewrite-migration-tracking.md
ai-plan/public/todos/**
📄 CodeRabbit inference engine (AGENTS.md)
When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under
ai-plan/public/todos/in the same changeTracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point
For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under
ai-plan/public/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
Files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
ai-plan/public/{todos,traces}/**
📄 CodeRabbit inference engine (AGENTS.md)
When 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 milestone before pausing or handing work off
If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation
Files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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.
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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-19T02:03:57.989Z
Learning: Core framework components (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-19T02:03:57.989Z
Learning: Keep abstractions projects free of implementation details and engine-specific dependencies
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Preserve existing module boundaries and do not introduce new cross-module dependencies without clear architectural need
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
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-19T02:03:57.989Z
Learning: Public API changes must be covered by unit or integration tests
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: When a public API defines multiple contract branches, tests MUST cover meaningful variants including null, empty, default, and filtered inputs when those branches change behavior
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Regression fixes should include a test that fails before the fix and passes after it
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
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-19T02:03:57.989Z
Learning: When implementation plans, traces, reviews, or design notes say 'reference a third-party project', prefer the repository-local path under `ai-libs/` instead of an unspecified upstream repository
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
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-19T02:03:57.989Z
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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Prefer the project-relevant tools listed in the environment inventory instead of assuming every installed system tool is fair game
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: When working in WSL against this repository's Windows-backed worktree, prefer Windows Git from WSL (for example `git.exe`) instead of the Linux `git` binary
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: If a Git command in WSL fails with a worktree-style 'not a git repository' path translation error, rerun it with the Windows Git executable and treat that as the repository-default Git path for the rest of the task
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: 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 before continuing
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: After resolving the host Windows Git path, prefer an explicit session-local binding for subsequent commands so the shell does not fall back to Linux `/usr/bin/git` later in the same WSL session
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
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-19T02:03:57.989Z
Learning: If the task changes multiple projects or shared abstractions, prefer a solution-level or affected-project `dotnet build ... -c Release`; otherwise use the smallest build command that still proves the result compiles
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: If the required build passes and there are task-related staged or unstaged changes, contributors MUST create a Git commit automatically instead of leaving the task uncommitted, unless the user explicitly says not to commit
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Commit messages MUST use Conventional Commits format: `<type>(<scope>): <summary>`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The commit `summary` MUST use simplified Chinese and briefly describe the main change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The commit `body` MUST use unordered list items, and each item MUST start with a verb such as `新增`、`修复`、`优化`、`更新`、`补充`、`重构`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Each commit body bullet MUST describe one independent change point; avoid repeated or redundant descriptions
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Keep technical terms in English when they are established project terms, such as `API`、`Model`、`System`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: If 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-19T02:03:57.989Z
Learning: The branch naming rule for a new task branch is `<type>/<topic-or-scope>`, where `<type>` should match the intended Conventional Commit category as closely as practical
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The repository-maintained Codex boot skill lives at `.codex/skills/gframework-boot/`; prefer invoking `$gframework-boot` when the user uses short startup prompts such as `boot`、`continue`、`next step`、`按 boot 开始`、`先看 AGENTS`、`继续当前任务`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The boot skill is a startup convenience layer, not a replacement for AGENTS.md; if the skill and AGENTS.md diverge, follow AGENTS.md first and update the skill in the same change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The boot skill MUST read AGENTS.md、`.ai/environment/tools.ai.yaml` and the relevant `ai-plan/` artifacts before substantive execution
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
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
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The main agent MUST identify the critical path first; do not delegate the immediate blocking task if the next local step depends on that result
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Use `explorer` subagents for read-only discovery, comparison, tracing, and narrow codebase questions
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Use `worker` subagents only for bounded implementation tasks with an explicit file or module ownership boundary
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Every delegation MUST specify the concrete objective, the expected output format, the files or subsystem the subagent owns, and any constraints about tests, diagnostics, or compatibility
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Subagents are not allowed to revert or overwrite unrelated changes from the user or other agents; they must adapt to concurrent work instead of assuming exclusive ownership of the repository
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Prefer lightweight models such as `gpt-5.1-codex-mini` for narrow exploration, indexing, and comparison tasks
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: Prefer stronger models such as `gpt-5.4` for cross-module design work, non-trivial refactors, and tasks that require higher confidence reasoning
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: The main agent remains responsible for reviewing and integrating subagent output; unreviewed subagent conclusions do not count as final results
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
Learning: `ai-plan/` is split by intent: `ai-plan/public/todos/` contains repository-safe recovery documents that may be committed and shared across worktrees; `ai-plan/public/traces/` contains repository-safe execution traces; `ai-plan/private/` contains worktree-private recovery artifacts
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:03:57.989Z
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-19T02:03:57.989Z
Learning: Completing code changes without updating the active tracking document is considered incomplete work
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` 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/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point. Completing code changes without updating the active tracking document is considered incomplete work.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Avoid logging secrets, tokens, credentials, or machine-specific sensitive data.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
🪛 LanguageTool
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
[uncategorized] ~20-~20: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...沉到 GFramework.Cqrs - 已将 generator 从“整程序集回退”推进到“可见 handlers 走 typeof(...) 直注册,...
(wa5)
[uncategorized] ~22-~22: 您的意思是“"不"齐”?
Context: ...runtime fallback marker” - 已为手写/第三方程序集补齐正式的精确 fallback 入口:`CqrsReflectionFallba...
(BU)
[uncategorized] ~26-~26: 您的意思是“"不"齐”?
Context: ...只做常量时间绑定”的模式 - 已在 CqrsDispatcher 热路径补齐 service-type 缓存,减少 PublishAsync / `S...
(BU)
[uncategorized] ~27-~27: 您的意思是“"不"齐”?
Context: ... invoker method-definition 查找收敛为静态一次解析,并补齐 request/no-pipeline、request/with-pipel...
(BU)
[uncategorized] ~41-~41: 您的意思是“"不"反射”?
Context: ...Attribute` 对具体 handler implementation 定向补反射”; 若 runtime 合同不提供该 marker,则生成器保守地...
(BU)
[uncategorized] ~43-~43: 您的意思是“"不"齐”?
Context: ...y,避免静默漏注册 - 已完成一轮 review follow-up 小修:补齐 dispatcher string pipeline cache 清理,...
(BU)
[uncategorized] ~44-~44: 您的意思是“"不"齐”?
Context: ...用缓存与编译错误诊断输出 - 已完成三轮 review follow-up:补齐 ICqrsRuntime 异常/上下文约束文档,明确 `DefaultC...
(BU)
[uncategorized] ~47-~47: 您的意思是“"不"洞”?
Context: ...mainingReflectedHandlerInterfaces(...) 补洞推进到“按程序集名 + metadata name 定向 lookup”;I...
(BU)
[uncategorized] ~55-~55: 您的意思是“"不"齐”?
Context: ...-libs/**观察写入 active plan/trace 的触发条件,并补齐模板/接口注释中的旧Rule` 命名空间残留 ## 本轮计划 ### ...
(BU)
[uncategorized] ~93-~93: 您的意思是“"不"齐”?
Context: ...口 - [x] 提升 CqrsTestRuntime 反射绑定的签名鲁棒性并补齐 XML 文档 - [x] 将剩余 Mediator 兼容入口推进到正式弃...
(BU)
[uncategorized] ~141-~141: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...构 - [x] 将 partial reflection fallback 从“整程序集 GetTypes() 扫描”推进到“generator 输出精确 han...
(wa5)
[uncategorized] ~142-~142: 您的意思是“"不"齐”?
Context: ...embly.GetType(...)` 补扫” - [x] 为手写/第三方程序集补齐精确 fallback metadata 入口,避免这类场景只能依赖旧版空 m...
(BU)
[uncategorized] ~143-~143: 您的意思是“"不"齐”?
Context: ...rker 或脆弱的字符串约定 - [x] 为 CqrsDispatcher 补齐 notification/request/stream service-ty...
(BU)
[uncategorized] ~144-~144: 您的意思是“"不"齐”?
Context: ...ericType重复开销 - [x] 为CqrsDispatcher` 补齐 invoker method-definition 静态缓存,并把 requ...
(BU)
[uncategorized] ~159-~159: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...载精确 fallback handler 类型名清单;当清单为空时,仍保持旧版“整程序集补扫”的兼容语义。 - `GFramework.Cqrs/CqrsReflec...
(wa5)
[uncategorized] ~171-~171: 您的意思是“"不"位”?
Context: ...出现新的未覆盖类型形态,则改由程序集级 targeted fallback 合同补位 - `GFramework.SourceGenerators/Cqrs/Cq...
(BU)
[uncategorized] ~182-~182: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"能把……“"。
Context: ...Cqrs/CqrsHandlerRegistryGenerator.cs现已把“生成注册器顶层上下文是否能合法书写某个类型”改为通过Compilation.IsSymbolAcces...
(wa3)
[uncategorized] ~186-~186: 您的意思是“"不"洞”?
Context: ... 内部的 implementation 级 GetInterfaces() 补洞辅助逻辑: - 不再生成 `RegisterRemainingReflec...
(BU)
[uncategorized] ~189-~189: 您的意思是“"不"反射”?
Context: ...Attribute对具体 handler implementation 定向补反射 -GFramework.SourceGenerators.Tests/...
(BU)
[uncategorized] ~196-~196: 您的意思是“"不"齐”?
Context: ...s与MetadataReferenceTestBuilder.cs` 已补齐多程序集测试基础设施,允许 CQRS generator 回归显式追加内存元数...
(BU)
[uncategorized] ~197-~197: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...Assembly.GetType(...)补扫;只有缺少精确元数据时才继续走整程序集GetTypes()扫描。 -GFramework.Cqrs.Te...
(wa5)
[uncategorized] ~218-~218: 您的意思是“"不"入”?
Context: ...d已完成最小同步: - 根 README 的模块表、仓库结构与安装指引已补入GFramework.Cqrs` 以及拆分后的 SourceGenerat...
(BU)
[uncategorized] ~229-~229: 您的意思是“"不"齐”?
Context: ...ork.Cqrs.Abstractions/GlobalUsings.cs已补齐基础 system 命名空间,避免新项目在关闭ImplicitUsings...
(BU)
[uncategorized] ~236-~236: 您的意思是“"不"齐”?
Context: ...alUsings.cs与Logging/TestLogger.cs已补齐,确保新测试项目不再隐式依赖GFramework.Core.Tests` ...
(BU)
[uncategorized] ~242-~242: 您的意思是“"不"反射”?
Context: ...写/第三方程序集或 generator 仍未直接覆盖的场景需要 runtime 补反射”的程序集级兼容入口。 - `GFramework.SourceGenera...
(BU)
[uncategorized] ~297-~297: 您的意思是“"不"回”?
Context: ...handler”回归已适配 seam 方案:在裸容器 Clear() 后显式补回测试基础设施,再验证程序集去重状态重置。 - `ai-plan/migrati...
(BU)
[uncategorized] ~325-~325: 您的意思是“"不"齐”?
Context: ...r以及MessageHandlerDelegate` 的 XML 文档已补齐迁移后的契约边界,明确旧 Command/Query 总线与新 CQRS ...
(BU)
[uncategorized] ~333-~333: 您的意思是“"不"齐”?
Context: ...behavior 链式执行 - CqrsHandlerRegistrar 已补齐三项运行时硬化: - 按程序集名、处理器类型名与处理器接口名稳定排序,...
(BU)
[uncategorized] ~343-~343: 您的意思是“"不"齐”?
Context: ...注册 + warning 已记录”。 - CqrsTestRuntime 已补齐 XML 文档,并改为按 `IIocContainer + IEnumerab...
(BU)
[uncategorized] ~362-~362: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...处理器(例如私有嵌套 handler),生成注册器会改走定向反射注册,而不是退回整程序集补扫 - CqrsHandlerRegistrar 已改为优先查找 `Cq...
(wa5)
[uncategorized] ~366-~366: 您的意思是“"不"齐”?
Context: ...sts/Cqrs/CqrsHandlerRegistrarTests.cs` 已补齐: - 生成器输出快照测试 - 私有嵌套 handler 走 gene...
(BU)
[uncategorized] ~379-~379: 您的意思是“"不"齐”?
Context: ...ions.DependencyInjection的using, 已补齐以恢复 IServiceCollection` 编译通过。 - 当前验证状态...
(BU)
[uncategorized] ~495-~495: 您的意思是“"不"齐”?
Context: ...径恢复验证链路: - scripts/GlobalUsings.cs 已补齐新的 GFramework.Cqrs.Abstractions.Cqrs*...
(BU)
[uncategorized] ~517-~517: 您的意思是“"不"齐”?
Context: ...首次访问时只执行一次容器解析 - ArchitectureContext 已补齐公开构造函数 XML 文档,以及 CqrsRuntime 惰性初始化的并发...
(BU)
[uncategorized] ~522-~522: 您的意思是“"不"齐”?
Context: ... GFramework.Cqrs.Tests 已通过链接编译同一份共享源码并补齐 global using, 避免两个测试项目继续维护分叉的反射绑定逻...
(BU)
[uncategorized] ~597-~597: 您的意思是“"不"齐”?
Context: ...qrs.Abstractions/Cqrs/ICqrsRuntime.cs已补齐三个公开方法的 XML 契约: -null参数对应Argume...
(BU)
[uncategorized] ~620-~620: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:细"地"回归
Context: ...lias + duplicate registration 组合场景再补一条更细的回归测试 ## 2026-04-16 补充记录(RP-033) ### 阶段...
(wb4)
[uncategorized] ~627-~627: 您的意思是“"不"齐”?
Context: ...eTests.cs的ClearDispatcherCaches()已补齐 RequestPipelineInvokerCache...
(BU)
🪛 markdownlint-cli2 (0.22.0)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
[warning] 385-385: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
[warning] 689-689: Spaces inside code span elements
(MD038, no-space-in-code)
🔇 Additional comments (1)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md (1)
13-477: 跟踪文档主结构完整,符合恢复治理预期当前文档已覆盖“当前阶段/恢复点、完成结果、已知事实、风险、验证结果、下次恢复建议”等关键字段,且与
ai-plan/public/todos/**的持续追踪用途一致。As per coding guidelines:
ai-plan/public/todos/**要求跟踪更新反映 completed work、newly discovered issues、validation results 和 next recommended recovery point。
- 修复 ai-plan 跟踪文档中命令示例的嵌套反引号问题 - 优化 rg 匹配串的 Markdown 渲染稳定性,避免 markdownlint 告警 - 保持原有验证语义不变,仅调整展示层面的文档写法
Summary
Test ResultsDetails
Insights
build-and-test: Run #881
🎉 All tests passed!Slowest Tests
± Comparison with run #880 at 138c799 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 4 runs. Github Test Reporter by CTRF 💚 |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md (1)
479-697: 建议将历史 RP 长段落拆分归档,降低后续追踪漂移风险当前文档已非常长,且包含大量历史阶段细节。建议把
RP-015 ~ RP-041历史记录迁移到ai-plan/public/traces/或单独 archive 文档,主 tracking 仅保留“当前恢复点 + 最近两次变更 + 下一步”。这样可减少后续维护时出现阶段/编号不一致的概率。🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@ai-plan/public/todos/cqrs-rewrite-migration-tracking.md` around lines 479 - 697, The document contains a long historical block (sections RP-015 through RP-041) that should be split out to reduce tracking drift: extract the detailed per-RP content currently in ai-plan/public/todos/cqrs-rewrite-migration-tracking.md (the headings "RP-015" .. "RP-041" and their phase entries) into a separate archive under ai-plan/public/traces/ (or a dedicated archive doc), leaving the main tracking file to contain only the current recovery point, the last two RP summaries, and the "下一步" list; update any internal references in this file to point to the new archive and add a short pointer line (e.g., "历史记录见 ai-plan/public/traces/...") where the removed sections were.
🤖 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/todos/cqrs-rewrite-migration-tracking.md`:
- Around line 469-474: The document's recovery step contradicts the current
phase: update the step that now prioritizes "Phase 7" so it matches the active
Phase 8 workflow (or add a clear precondition explaining why recovery should
revert to Phase 7); specifically edit the recovery list that references
CQRS-REWRITE-RP-042 and ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md so it either
points to Phase 8 actions or includes an explicit condition for returning to
Phase 7, and ensure the trace pointer
ai-plan/public/traces/cqrs-rewrite-migration-trace.md and the phrase "next
recommended recovery point" reflect that change.
---
Nitpick comments:
In `@ai-plan/public/todos/cqrs-rewrite-migration-tracking.md`:
- Around line 479-697: The document contains a long historical block (sections
RP-015 through RP-041) that should be split out to reduce tracking drift:
extract the detailed per-RP content currently in
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md (the headings "RP-015"
.. "RP-041" and their phase entries) into a separate archive under
ai-plan/public/traces/ (or a dedicated archive doc), leaving the main tracking
file to contain only the current recovery point, the last two RP summaries, and
the "下一步" list; update any internal references in this file to point to the new
archive and add a short pointer line (e.g., "历史记录见 ai-plan/public/traces/...")
where the removed sections were.
🪄 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: 4fbc1735-3d96-4ce9-bfd6-3dd955bd8183
📒 Files selected for processing (1)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.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: Analyze (C#)
- GitHub Check: Code Quality & Security
- GitHub Check: Build and Test
🧰 Additional context used
📓 Path-based instructions (2)
ai-plan/public/**
📄 CodeRabbit inference engine (AGENTS.md)
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 anyai-plan/**fileNever 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/todos/cqrs-rewrite-migration-tracking.md
ai-plan/public/todos/**
📄 CodeRabbit inference engine (AGENTS.md)
When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under
ai-plan/public/todos/in the same changeFor any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under
ai-plan/public/todos/before making substantive code changes
Files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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.
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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-19T02:15:09.488Z
Learning: Before choosing runtimes or CLI tools, read `@.ai/environment/tools.ai.yaml` for project-relevant tool preferences
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:15:09.488Z
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-19T02:15:09.488Z
Learning: Commit messages MUST use Conventional Commits format: `<type>(<scope>): <summary>`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:15:09.488Z
Learning: The commit `summary` MUST use simplified Chinese and briefly describe the main change
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:15:09.488Z
Learning: The commit `body` MUST use unordered list items, and each item MUST start with a verb such as `新增`、`修复`、`优化`、`更新`、`补充`、`重构`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:15:09.488Z
Learning: Branch naming rule for a new task branch is `<type>/<topic-or-scope>`, where `<type>` should match the intended Conventional Commit category
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:15:09.488Z
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-19T02:15:09.488Z
Learning: Prefer using the repository-maintained Codex boot skill at `.codex/skills/gframework-boot/` when the user uses short startup prompts
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` 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/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point. Completing code changes without updating the active tracking document is considered incomplete work.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : Avoid logging secrets, tokens, credentials, or machine-specific sensitive data.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.
Applied to files:
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
🪛 LanguageTool
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
[uncategorized] ~20-~20: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...沉到 GFramework.Cqrs - 已将 generator 从“整程序集回退”推进到“可见 handlers 走 typeof(...) 直注册,...
(wa5)
[uncategorized] ~22-~22: 您的意思是“"不"齐”?
Context: ...runtime fallback marker” - 已为手写/第三方程序集补齐正式的精确 fallback 入口:`CqrsReflectionFallba...
(BU)
[uncategorized] ~26-~26: 您的意思是“"不"齐”?
Context: ...只做常量时间绑定”的模式 - 已在 CqrsDispatcher 热路径补齐 service-type 缓存,减少 PublishAsync / `S...
(BU)
[uncategorized] ~27-~27: 您的意思是“"不"齐”?
Context: ... invoker method-definition 查找收敛为静态一次解析,并补齐 request/no-pipeline、request/with-pipel...
(BU)
[uncategorized] ~41-~41: 您的意思是“"不"反射”?
Context: ...Attribute` 对具体 handler implementation 定向补反射”; 若 runtime 合同不提供该 marker,则生成器保守地...
(BU)
[uncategorized] ~43-~43: 您的意思是“"不"齐”?
Context: ...y,避免静默漏注册 - 已完成一轮 review follow-up 小修:补齐 dispatcher string pipeline cache 清理,...
(BU)
[uncategorized] ~44-~44: 您的意思是“"不"齐”?
Context: ...用缓存与编译错误诊断输出 - 已完成三轮 review follow-up:补齐 ICqrsRuntime 异常/上下文约束文档,明确 `DefaultC...
(BU)
[uncategorized] ~47-~47: 您的意思是“"不"洞”?
Context: ...mainingReflectedHandlerInterfaces(...) 补洞推进到“按程序集名 + metadata name 定向 lookup”;I...
(BU)
[uncategorized] ~55-~55: 您的意思是“"不"齐”?
Context: ...-libs/**观察写入 active plan/trace 的触发条件,并补齐模板/接口注释中的旧Rule` 命名空间残留 ## 本轮计划 ### ...
(BU)
[uncategorized] ~93-~93: 您的意思是“"不"齐”?
Context: ...口 - [x] 提升 CqrsTestRuntime 反射绑定的签名鲁棒性并补齐 XML 文档 - [x] 将剩余 Mediator 兼容入口推进到正式弃...
(BU)
[uncategorized] ~141-~141: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...构 - [x] 将 partial reflection fallback 从“整程序集 GetTypes() 扫描”推进到“generator 输出精确 han...
(wa5)
[uncategorized] ~142-~142: 您的意思是“"不"齐”?
Context: ...embly.GetType(...)` 补扫” - [x] 为手写/第三方程序集补齐精确 fallback metadata 入口,避免这类场景只能依赖旧版空 m...
(BU)
[uncategorized] ~143-~143: 您的意思是“"不"齐”?
Context: ...rker 或脆弱的字符串约定 - [x] 为 CqrsDispatcher 补齐 notification/request/stream service-ty...
(BU)
[uncategorized] ~144-~144: 您的意思是“"不"齐”?
Context: ...ericType重复开销 - [x] 为CqrsDispatcher` 补齐 invoker method-definition 静态缓存,并把 requ...
(BU)
[uncategorized] ~159-~159: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...载精确 fallback handler 类型名清单;当清单为空时,仍保持旧版“整程序集补扫”的兼容语义。 - `GFramework.Cqrs/CqrsReflec...
(wa5)
[uncategorized] ~171-~171: 您的意思是“"不"位”?
Context: ...出现新的未覆盖类型形态,则改由程序集级 targeted fallback 合同补位 - `GFramework.SourceGenerators/Cqrs/Cq...
(BU)
[uncategorized] ~182-~182: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"能把……“"。
Context: ...Cqrs/CqrsHandlerRegistryGenerator.cs现已把“生成注册器顶层上下文是否能合法书写某个类型”改为通过Compilation.IsSymbolAcces...
(wa3)
[uncategorized] ~186-~186: 您的意思是“"不"洞”?
Context: ... 内部的 implementation 级 GetInterfaces() 补洞辅助逻辑: - 不再生成 `RegisterRemainingReflec...
(BU)
[uncategorized] ~189-~189: 您的意思是“"不"反射”?
Context: ...Attribute对具体 handler implementation 定向补反射 -GFramework.SourceGenerators.Tests/...
(BU)
[uncategorized] ~196-~196: 您的意思是“"不"齐”?
Context: ...s与MetadataReferenceTestBuilder.cs` 已补齐多程序集测试基础设施,允许 CQRS generator 回归显式追加内存元数...
(BU)
[uncategorized] ~197-~197: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...Assembly.GetType(...)补扫;只有缺少精确元数据时才继续走整程序集GetTypes()扫描。 -GFramework.Cqrs.Te...
(wa5)
[uncategorized] ~218-~218: 您的意思是“"不"入”?
Context: ...d已完成最小同步: - 根 README 的模块表、仓库结构与安装指引已补入GFramework.Cqrs` 以及拆分后的 SourceGenerat...
(BU)
[uncategorized] ~229-~229: 您的意思是“"不"齐”?
Context: ...ork.Cqrs.Abstractions/GlobalUsings.cs已补齐基础 system 命名空间,避免新项目在关闭ImplicitUsings...
(BU)
[uncategorized] ~236-~236: 您的意思是“"不"齐”?
Context: ...alUsings.cs与Logging/TestLogger.cs已补齐,确保新测试项目不再隐式依赖GFramework.Core.Tests` ...
(BU)
[uncategorized] ~242-~242: 您的意思是“"不"反射”?
Context: ...写/第三方程序集或 generator 仍未直接覆盖的场景需要 runtime 补反射”的程序集级兼容入口。 - `GFramework.SourceGenera...
(BU)
[uncategorized] ~297-~297: 您的意思是“"不"回”?
Context: ...handler”回归已适配 seam 方案:在裸容器 Clear() 后显式补回测试基础设施,再验证程序集去重状态重置。 - `ai-plan/migrati...
(BU)
[uncategorized] ~325-~325: 您的意思是“"不"齐”?
Context: ...r以及MessageHandlerDelegate` 的 XML 文档已补齐迁移后的契约边界,明确旧 Command/Query 总线与新 CQRS ...
(BU)
[uncategorized] ~333-~333: 您的意思是“"不"齐”?
Context: ...behavior 链式执行 - CqrsHandlerRegistrar 已补齐三项运行时硬化: - 按程序集名、处理器类型名与处理器接口名稳定排序,...
(BU)
[uncategorized] ~343-~343: 您的意思是“"不"齐”?
Context: ...注册 + warning 已记录”。 - CqrsTestRuntime 已补齐 XML 文档,并改为按 `IIocContainer + IEnumerab...
(BU)
[uncategorized] ~362-~362: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...处理器(例如私有嵌套 handler),生成注册器会改走定向反射注册,而不是退回整程序集补扫 - CqrsHandlerRegistrar 已改为优先查找 `Cq...
(wa5)
[uncategorized] ~366-~366: 您的意思是“"不"齐”?
Context: ...sts/Cqrs/CqrsHandlerRegistrarTests.cs` 已补齐: - 生成器输出快照测试 - 私有嵌套 handler 走 gene...
(BU)
[uncategorized] ~379-~379: 您的意思是“"不"齐”?
Context: ...ions.DependencyInjection的using, 已补齐以恢复 IServiceCollection` 编译通过。 - 当前验证状态...
(BU)
[uncategorized] ~495-~495: 您的意思是“"不"齐”?
Context: ...径恢复验证链路: - scripts/GlobalUsings.cs 已补齐新的 GFramework.Cqrs.Abstractions.Cqrs*...
(BU)
[uncategorized] ~517-~517: 您的意思是“"不"齐”?
Context: ...首次访问时只执行一次容器解析 - ArchitectureContext 已补齐公开构造函数 XML 文档,以及 CqrsRuntime 惰性初始化的并发...
(BU)
[uncategorized] ~522-~522: 您的意思是“"不"齐”?
Context: ... GFramework.Cqrs.Tests 已通过链接编译同一份共享源码并补齐 global using, 避免两个测试项目继续维护分叉的反射绑定逻...
(BU)
[uncategorized] ~597-~597: 您的意思是“"不"齐”?
Context: ...qrs.Abstractions/Cqrs/ICqrsRuntime.cs已补齐三个公开方法的 XML 契约: -null参数对应Argume...
(BU)
[uncategorized] ~620-~620: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:细"地"回归
Context: ...lias + duplicate registration 组合场景再补一条更细的回归测试 ## 2026-04-16 补充记录(RP-033) ### 阶段...
(wb4)
[uncategorized] ~627-~627: 您的意思是“"不"齐”?
Context: ...eTests.cs的ClearDispatcherCaches()已补齐 RequestPipelineInvokerCache...
(BU)
🪛 markdownlint-cli2 (0.22.0)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md
[warning] 385-385: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
🔇 Additional comments (1)
ai-plan/public/todos/cqrs-rewrite-migration-tracking.md (1)
402-405: 公开追踪文档的路径脱敏与恢复点统一处理到位这里已经避免写入机器本地绝对路径,并且明确记录了恢复点编号统一动作,符合
ai-plan/public/**的公开安全约束,处理很好。Also applies to: 720-722
- 重构 ai-plan public 结构为按主题分组并引入归档层级 - 新增 public README worktree 映射并同步 boot 启动入口 - 更新治理 tracking trace 与仓库文档中的 ai-plan 路径约定
Summary
Test ResultsDetails
Insights
build-and-test: Run #882
🎉 All tests passed!Slowest Tests
± Comparison with run #881 at d39cf23 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 5 runs. Github Test Reporter by CTRF 💚 |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md (1)
473-474:⚠️ Potential issue | 🟡 Minor恢复主线阶段与当前阶段不一致
Line 16 已明确当前阶段是
Phase 8,但 Line 473 仍要求优先继续Phase 7,恢复时会造成执行顺序歧义。建议统一为当前主线,或补充“回退到 Phase 7 的前置条件”。✏️ 建议修改
-3. 优先继续执行 `ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md` 中的 Phase 7: +3. 优先继续执行 `ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md` 中的 Phase 8(当前主线):As per coding guidelines:
ai-plan/public/*/todos/**的恢复文档必须准确记录当前阶段与 next recommended resume step。🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md` around lines 473 - 474, The document inconsistently references Phase 7 at the resume step while the current stage is declared as Phase 8; update the resume instruction in ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md so it either (a) aligns with the current Phase 8 mainline by changing the "优先继续执行 `ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md` 中的 Phase 7" text to recommend resuming Phase 8, or (b) explicitly adds a clear precondition that explains when to fall back to Phase 7 (e.g., "only revert to Phase 7 if <specific condition>"), and reference the related plan file `ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md` and the phases `Phase 7` / `Phase 8` in the updated sentence.
🤖 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/ai-plan-governance/traces/ai-plan-governance-trace.md`:
- Around line 46-55: Two identical section headings ("### 验证" and "### 下一步")
appear twice causing MD024 anchor conflicts; update the duplicate headings in
this file (the second occurrences) to include a unique recovery/checkpoint
suffix (e.g., "### 验证 — 恢复点 X" or "### 下一步 — 恢复点 X") so anchors are unique and
navigation works; locate the duplicated headings by searching for the exact
strings "### 验证" and "### 下一步" in ai-plan-governance-trace.md and rename the
later occurrences consistently.
---
Duplicate comments:
In `@ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md`:
- Around line 473-474: The document inconsistently references Phase 7 at the
resume step while the current stage is declared as Phase 8; update the resume
instruction in
ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md so it
either (a) aligns with the current Phase 8 mainline by changing the "优先继续执行
`ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md` 中的 Phase 7" text to recommend
resuming Phase 8, or (b) explicitly adds a clear precondition that explains when
to fall back to Phase 7 (e.g., "only revert to Phase 7 if <specific
condition>"), and reference the related plan file
`ai-plan/migration/CQRS_MODULE_SPLIT_PLAN.md` and the phases `Phase 7` / `Phase
8` in the updated sentence.
🪄 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: fdc37faa-2046-4d8a-9816-5a25f11fc7c1
📒 Files selected for processing (13)
.codex/skills/gframework-boot/SKILL.md.codex/skills/gframework-boot/references/startup-artifacts.md.gitignoreAGENTS.mdREADME.mdai-plan/README.mdai-plan/public/README.mdai-plan/public/ai-plan-governance/todos/ai-plan-governance-tracking.mdai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.mdai-plan/public/cqrs-rewrite/traces/cqrs-rewrite-migration-trace.md
✅ Files skipped from review due to trivial changes (6)
- README.md
- .gitignore
- ai-plan/public/README.md
- ai-plan/public/ai-plan-governance/todos/ai-plan-governance-tracking.md
- AGENTS.md
- .codex/skills/gframework-boot/references/startup-artifacts.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). (2)
- GitHub Check: Analyze (C#)
- GitHub Check: Code Quality & Security
🧰 Additional context used
📓 Path-based instructions (3)
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, usernames, paths, hostnames, IPs, or other sensitive data
Files:
ai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.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/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.mdai-plan/README.mdai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
ai-plan/public/*/todos/**
📄 CodeRabbit inference engine (AGENTS.md)
When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under
ai-plan/public/<topic>/todos/in the same changeRecovery documents in
ai-plan/public/<topic>/todos/MUST record the current phase, active recovery point identifier, known risks, and next recommended resume step
Files:
ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
🧠 Learnings (10)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Read `@.ai/environment/tools.ai.yaml` before choosing runtimes or CLI tools
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Use `@.ai/environment/tools.raw.yaml` only when you need the full collected facts behind the AI-facing hints
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Prefer Windows Git from WSL (`git.exe`) instead of the Linux `git` binary when working in WSL against the repository's Windows-backed worktree
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
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-19T02:49:16.364Z
Learning: Commit messages MUST use Conventional Commits format: `<type>(<scope>): <summary>` with summary in simplified Chinese and body using unordered list with action verbs
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: When a new task starts on `main` branch, first update local `main` from remote, then create and switch to a dedicated branch with naming rule `<type>/<topic-or-scope>`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Prefer invoking `$gframework-boot` when the user uses short startup prompts such as `boot`, `continue`, `next step`
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Use subagents only when the task is complex, context is likely to grow too large, or work can be split into independent parallel subtasks
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Keep abstractions projects free of implementation details and engine-specific dependencies
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Preserve existing module boundaries; do not introduce new cross-module dependencies without clear architectural need
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
Learning: Preserve deterministic behavior in registries, lifecycle orchestration, and generated outputs
Learnt from: CR
Repo: GeWuYou/GFramework
Timestamp: 2026-04-19T02:49:16.364Z
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-19T02:49:16.364Z
Learning: Keep code under `ai-libs/**` as read-only third-party source reference; do not modify it unless the user explicitly asks to sync or update
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : Contributors MUST maintain a matching execution trace under `local-plan/traces/` for complex work. The trace should record the current date, key decisions, validation milestones, and the immediate next step. When 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 milestone before pausing or handing work off.
Applied to files:
ai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.mdai-plan/README.mdai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Treat source code, `*.csproj`, tests, generated snapshots, and packaging metadata as the primary evidence for documentation updates. Treat `CoreGrid` as a secondary evidence source for real project adoption patterns, directory layouts, and end-to-end usage examples. 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/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to **/*.cs : When adding caching, pooling, or shared mutable state, document thread-safety assumptions and failure modes.
Applied to files:
ai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.md
📚 Learning: 2026-04-17T11:35:08.735Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-17T11:35:08.735Z
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:
ai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : For any multi-step refactor, migration, or cross-module task, contributors MUST create or adopt a dedicated recovery document under `local-plan/todos/` 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/README.mdai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/todos/**/*.md : When working from a tracked implementation plan, contributors MUST update the corresponding tracking document under `local-plan/todos/` in the same change. Tracking updates MUST reflect completed work, newly discovered issues, validation results, and the next recommended recovery point. Completing code changes without updating the active tracking document is considered incomplete work.
Applied to files:
ai-plan/README.mdai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.mdai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.mdai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to README.md : If a module's responsibilities, setup, public API surface, generator inputs, or adoption path change, update that module's `README.md` in the same change. Adding a new top-level module directory without a `README.md` is considered incomplete work.
Applied to files:
ai-plan/README.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
Learning: Applies to local-plan/traces/** : If subagents are used on a complex task, the main agent MUST capture the delegated scope and any accepted findings in the active recovery document or trace before continuing implementation.
Applied to files:
ai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.md
📚 Learning: 2026-04-18T14:00:12.900Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-18T14:00:12.900Z
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:
ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
🪛 LanguageTool
ai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.md
[grammar] ~8-~8: Ensure spelling is correct
Context: ...nce omits GeWuYou.GFramework.Cqrs and GeWuYou.GFramework.Cqrs.Abstractions even though the module ov...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~12-~12: Ensure spelling is correct
Context: ...ge, or compatibility notes. - Confirmed `GFramework.Cqrs.Tests/Cqrs/CqrsHandlerRegistrarTests.cs...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~37-~37: Ensure spelling is correct
Context: ...mework.Cqrs.) and handler base types (GFramework.Cqrs.Cqrs.). - Updated docs/zh-CN/source-...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~47-~47: Ensure spelling is correct
Context: ...nal/CqrsHandlerRegistrar.cs- ExpandedGFramework.Cqrs.Tests/Cqrs/CqrsHandlerRegistrarTests.cs...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~49-~49: Ensure spelling is correct
Context: ...rs after the cache is reused. - Updated GFramework.Cqrs.Tests/Cqrs/CqrsDispatcherCacheTests.cs...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~51-~51: Ensure spelling is correct
Context: ...ion to change handler doc examples from using GFramework.Cqrs.Cqrs.Command; to `using GFramework.C...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~51-~51: Ensure spelling is correct
Context: ...using GFramework.Cqrs.Cqrs.Command;to using GFramework.Cqrs.Command;`. The repository's actual hand...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~52-~52: Ensure spelling is correct
Context: ...ual handler base types still live under GFramework.Cqrs.Cqrs.*, so the implementation kept the...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
.codex/skills/gframework-boot/SKILL.md
[style] ~17-~17: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...nfirm the preferred local toolchain. 3. Read ai-plan/public/README.md before askin...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~35-~35: Specify a number, remove phrase, use “a few”, or use “some”
Context: ...allel discovery required - medium: a small number of modules, some read-only exploration hel...
(SMALL_NUMBER_OF)
[style] ~66-~66: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ..., prefer resuming those topics first. - If the repository state suggests in-flight...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~77-~77: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...s/startup-artifacts.md` when you need a quick reminder of the repository entrypoints,...
(QUICK_BRIEF)
ai-plan/README.md
[style] ~37-~37: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...facts into public/<topic>/archive/. - When a topic is complete, move the whole top...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
ai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.md
[uncategorized] ~16-~16: 您的意思是“"不"齐”?
Context: ...md作为目录语义与内容规范的单点说明 - 在AGENTS.md` 中补齐 public/private 职责边界,以及敏感信息与绝对路径禁写规则 ...
(BU)
ai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.md
[grammar] ~45-~45: Ensure spelling is correct
Context: ...ly did not rename handler examples from GFramework.Cqrs.Cqrs.* to GFramework.Cqrs.*, becau...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
[uncategorized] ~20-~20: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...沉到 GFramework.Cqrs - 已将 generator 从“整程序集回退”推进到“可见 handlers 走 typeof(...) 直注册,...
(wa5)
[uncategorized] ~22-~22: 您的意思是“"不"齐”?
Context: ...runtime fallback marker” - 已为手写/第三方程序集补齐正式的精确 fallback 入口:`CqrsReflectionFallba...
(BU)
[uncategorized] ~26-~26: 您的意思是“"不"齐”?
Context: ...只做常量时间绑定”的模式 - 已在 CqrsDispatcher 热路径补齐 service-type 缓存,减少 PublishAsync / `S...
(BU)
[uncategorized] ~27-~27: 您的意思是“"不"齐”?
Context: ... invoker method-definition 查找收敛为静态一次解析,并补齐 request/no-pipeline、request/with-pipel...
(BU)
[uncategorized] ~41-~41: 您的意思是“"不"反射”?
Context: ...Attribute` 对具体 handler implementation 定向补反射”; 若 runtime 合同不提供该 marker,则生成器保守地...
(BU)
[uncategorized] ~43-~43: 您的意思是“"不"齐”?
Context: ...y,避免静默漏注册 - 已完成一轮 review follow-up 小修:补齐 dispatcher string pipeline cache 清理,...
(BU)
[uncategorized] ~44-~44: 您的意思是“"不"齐”?
Context: ...用缓存与编译错误诊断输出 - 已完成三轮 review follow-up:补齐 ICqrsRuntime 异常/上下文约束文档,明确 `DefaultC...
(BU)
[uncategorized] ~47-~47: 您的意思是“"不"洞”?
Context: ...mainingReflectedHandlerInterfaces(...) 补洞推进到“按程序集名 + metadata name 定向 lookup”;I...
(BU)
[uncategorized] ~55-~55: 您的意思是“"不"齐”?
Context: ...-libs/**观察写入 active plan/trace 的触发条件,并补齐模板/接口注释中的旧Rule` 命名空间残留 ## 本轮计划 ### ...
(BU)
[uncategorized] ~93-~93: 您的意思是“"不"齐”?
Context: ...口 - [x] 提升 CqrsTestRuntime 反射绑定的签名鲁棒性并补齐 XML 文档 - [x] 将剩余 Mediator 兼容入口推进到正式弃...
(BU)
[uncategorized] ~141-~141: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...构 - [x] 将 partial reflection fallback 从“整程序集 GetTypes() 扫描”推进到“generator 输出精确 han...
(wa5)
[uncategorized] ~142-~142: 您的意思是“"不"齐”?
Context: ...embly.GetType(...)` 补扫” - [x] 为手写/第三方程序集补齐精确 fallback metadata 入口,避免这类场景只能依赖旧版空 m...
(BU)
[uncategorized] ~143-~143: 您的意思是“"不"齐”?
Context: ...rker 或脆弱的字符串约定 - [x] 为 CqrsDispatcher 补齐 notification/request/stream service-ty...
(BU)
[uncategorized] ~144-~144: 您的意思是“"不"齐”?
Context: ...ericType重复开销 - [x] 为CqrsDispatcher` 补齐 invoker method-definition 静态缓存,并把 requ...
(BU)
[uncategorized] ~159-~159: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...载精确 fallback handler 类型名清单;当清单为空时,仍保持旧版“整程序集补扫”的兼容语义。 - `GFramework.Cqrs/CqrsReflec...
(wa5)
[uncategorized] ~171-~171: 您的意思是“"不"位”?
Context: ...出现新的未覆盖类型形态,则改由程序集级 targeted fallback 合同补位 - `GFramework.SourceGenerators/Cqrs/Cq...
(BU)
[uncategorized] ~182-~182: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"能把……“"。
Context: ...Cqrs/CqrsHandlerRegistryGenerator.cs现已把“生成注册器顶层上下文是否能合法书写某个类型”改为通过Compilation.IsSymbolAcces...
(wa3)
[uncategorized] ~186-~186: 您的意思是“"不"洞”?
Context: ... 内部的 implementation 级 GetInterfaces() 补洞辅助逻辑: - 不再生成 `RegisterRemainingReflec...
(BU)
[uncategorized] ~189-~189: 您的意思是“"不"反射”?
Context: ...Attribute对具体 handler implementation 定向补反射 -GFramework.SourceGenerators.Tests/...
(BU)
[uncategorized] ~196-~196: 您的意思是“"不"齐”?
Context: ...s与MetadataReferenceTestBuilder.cs` 已补齐多程序集测试基础设施,允许 CQRS generator 回归显式追加内存元数...
(BU)
[uncategorized] ~197-~197: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...Assembly.GetType(...)补扫;只有缺少精确元数据时才继续走整程序集GetTypes()扫描。 -GFramework.Cqrs.Te...
(wa5)
[uncategorized] ~218-~218: 您的意思是“"不"入”?
Context: ...d已完成最小同步: - 根 README 的模块表、仓库结构与安装指引已补入GFramework.Cqrs` 以及拆分后的 SourceGenerat...
(BU)
[uncategorized] ~229-~229: 您的意思是“"不"齐”?
Context: ...ork.Cqrs.Abstractions/GlobalUsings.cs已补齐基础 system 命名空间,避免新项目在关闭ImplicitUsings...
(BU)
[uncategorized] ~236-~236: 您的意思是“"不"齐”?
Context: ...alUsings.cs与Logging/TestLogger.cs已补齐,确保新测试项目不再隐式依赖GFramework.Core.Tests` ...
(BU)
[uncategorized] ~242-~242: 您的意思是“"不"反射”?
Context: ...写/第三方程序集或 generator 仍未直接覆盖的场景需要 runtime 补反射”的程序集级兼容入口。 - `GFramework.SourceGenera...
(BU)
[uncategorized] ~297-~297: 您的意思是“"不"回”?
Context: ...handler”回归已适配 seam 方案:在裸容器 Clear() 后显式补回测试基础设施,再验证程序集去重状态重置。 - `ai-plan/migrati...
(BU)
[uncategorized] ~325-~325: 您的意思是“"不"齐”?
Context: ...r以及MessageHandlerDelegate` 的 XML 文档已补齐迁移后的契约边界,明确旧 Command/Query 总线与新 CQRS ...
(BU)
[uncategorized] ~333-~333: 您的意思是“"不"齐”?
Context: ...behavior 链式执行 - CqrsHandlerRegistrar 已补齐三项运行时硬化: - 按程序集名、处理器类型名与处理器接口名稳定排序,...
(BU)
[uncategorized] ~343-~343: 您的意思是“"不"齐”?
Context: ...注册 + warning 已记录”。 - CqrsTestRuntime 已补齐 XML 文档,并改为按 `IIocContainer + IEnumerab...
(BU)
[uncategorized] ~362-~362: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...处理器(例如私有嵌套 handler),生成注册器会改走定向反射注册,而不是退回整程序集补扫 - CqrsHandlerRegistrar 已改为优先查找 `Cq...
(wa5)
[uncategorized] ~366-~366: 您的意思是“"不"齐”?
Context: ...sts/Cqrs/CqrsHandlerRegistrarTests.cs` 已补齐: - 生成器输出快照测试 - 私有嵌套 handler 走 gene...
(BU)
[uncategorized] ~379-~379: 您的意思是“"不"齐”?
Context: ...ions.DependencyInjection的using, 已补齐以恢复 IServiceCollection` 编译通过。 - 当前验证状态...
(BU)
[uncategorized] ~495-~495: 您的意思是“"不"齐”?
Context: ...径恢复验证链路: - scripts/GlobalUsings.cs 已补齐新的 GFramework.Cqrs.Abstractions.Cqrs*...
(BU)
[uncategorized] ~517-~517: 您的意思是“"不"齐”?
Context: ...首次访问时只执行一次容器解析 - ArchitectureContext 已补齐公开构造函数 XML 文档,以及 CqrsRuntime 惰性初始化的并发...
(BU)
[uncategorized] ~522-~522: 您的意思是“"不"齐”?
Context: ... GFramework.Cqrs.Tests 已通过链接编译同一份共享源码并补齐 global using, 避免两个测试项目继续维护分叉的反射绑定逻...
(BU)
[uncategorized] ~597-~597: 您的意思是“"不"齐”?
Context: ...qrs.Abstractions/Cqrs/ICqrsRuntime.cs已补齐三个公开方法的 XML 契约: -null参数对应Argume...
(BU)
[uncategorized] ~620-~620: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:细"地"回归
Context: ...lias + duplicate registration 组合场景再补一条更细的回归测试 ## 2026-04-16 补充记录(RP-033) ### 阶段...
(wb4)
[uncategorized] ~627-~627: 您的意思是“"不"齐”?
Context: ...eTests.cs的ClearDispatcherCaches()已补齐 RequestPipelineInvokerCache...
(BU)
🪛 markdownlint-cli2 (0.22.0)
ai-plan/public/ai-plan-governance/traces/ai-plan-governance-trace.md
[warning] 46-46: Multiple headings with the same content
(MD024, no-duplicate-heading)
[warning] 55-55: Multiple headings with the same content
(MD024, no-duplicate-heading)
ai-plan/public/cqrs-rewrite/todos/cqrs-rewrite-migration-tracking.md
[warning] 385-385: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
🔇 Additional comments (4)
ai-plan/public/archive/cqrs-cache-docs-hardening/todos/cqrs-cache-docs-hardening-tracking.md (1)
1-67: 文档结构完整,治理约束符合预期该跟踪文档已包含恢复点、阶段、风险、验证与恢复建议,且内容可公开、无本地敏感信息泄露风险。
ai-plan/README.md (1)
1-56: 目录语义与安全规则定义清晰
ai-plan的 public/private 边界、归档策略和内容约束表述完整,和当前治理目标一致。ai-plan/public/archive/cqrs-cache-docs-hardening/traces/cqrs-cache-docs-hardening-trace.md (1)
1-90: 追踪记录完整且可恢复性良好阶段决策、验证过程与后续动作记录齐全,符合复杂任务 trace 的可恢复要求。
.codex/skills/gframework-boot/SKILL.md (1)
1-77: 启动工作流规则一致且可执行启动顺序、恢复启发式、任务复杂度分级和委派策略定义完整,能直接支撑
boot/resume场景。
- 修复 ai-plan 治理 trace 中重复的 Markdown 标题并追加恢复点后缀,消除 MD024 锚点冲突 - 更新 ai-plan 治理 tracking,记录本次 PR review 修正和文本校验结果
- 修复 cqrs-rewrite 跟踪文档的下次恢复建议,使当前主线阶段与 Phase 8 保持一致 - 补充 cqrs-rewrite trace,记录本次 PR review 复核结论与恢复点更新 - 优化 gframework-pr-review 输出,明确 open thread 中的 Addressed in commit 文案仍需本地验证
Summary
Test ResultsDetails
Insights
build-and-test: Run #883
🎉 All tests passed!Slowest Tests
± Comparison with run #882 at 35b89f8 | 🎉 No failed tests detected across all runs. | 🍂 No flaky tests detected across all runs. | ⏱️ Measured over 6 runs. Github Test Reporter by CTRF 💚 |
- 更新 CQRS 重写跟踪中的恢复点与活跃事实,记录 PR #253 已关闭且剩余 thread 为 stale review\n- 调整 CQRS 重写 trace 的下一步,恢复 Phase 8 主线优先级
- 更新 CQRS 重写跟踪中的恢复点与活跃事实,记录 PR #253 已关闭且剩余 thread 为 stale review\n- 调整 CQRS 重写 trace 的下一步,恢复 Phase 8 主线优先级
Summary by CodeRabbit
发布说明
新功能
ai-plan/目录结构与工作流规范,用于管理任务恢复和追踪文档文档更新
AGENTS.md和仓库根目录文档以支持新工作流配置调整
.gitignore规则以支持新的ai-plan/目录结构