GFramework/ai-plan/public/archive/runtime-generator-boundary/traces/runtime-generator-boundary-trace.md
gewuyou ee41206965 chore(ai-plan): 归档已完成专题
- 更新 ai-plan 公共索引,移除 semantic-release-versioning、runtime-generator-boundary 和 github-issue-review-skill 的活跃入口与分支映射
- 归档 三个已完成 topic 的 tracking 与 trace 文档到 ai-plan/public/archive/ 下
2026-05-06 16:59:35 +08:00

2.1 KiB

Runtime / Generator Boundary Trace

2026-05-05

RGB-RP-001 Runtime package boundary repair

  • Trigger:
    • external consumers restoring GeWuYou.GFramework.Game failed because NuGet looked for GFramework.Core.SourceGenerators.Abstractions
    • repository inspection showed GFramework.Game had a direct project reference to a non-packable generator abstractions project and used [GenerateEnumExtensions]
  • Decisions:
    • treat the issue as a runtime/generator boundary violation, not as a missing publish target
    • remove the runtime-side attribute usage instead of turning generator abstractions into public runtime packages
    • add repository guardrails at both source-validation time and packed-package validation time
  • Expected implementation:
    • GFramework.Game removes the generator abstractions project reference
    • GFramework.Game removes the two unused enum generator attributes
    • CI and publish workflows run a dedicated boundary validator script
  • PR review follow-up:
    • verified CodeRabbit and Greptile findings against local source before acting on them
    • accepted the validator regex finding because the original pattern missed standalone [GenerateEnumExtensions] declarations in runtime code
    • added comment-line filtering after the first regex repair surfaced false positives from XML documentation examples such as /// [ContextAware]
    • rejected the documentation reposition suggestion as stated and removed the 代码生成器边界 block from docs/zh-CN/contributing.md because it documents internal governance rather than reader-facing contributor guidance
    • added a Python regression test covering standalone, parameterized, fully qualified, and multi-attribute matches
  • Validation milestone:
    • python3 scripts/test_validate_runtime_generator_boundaries.py passed
    • python3 scripts/validate-runtime-generator-boundaries.py passed
    • python3 scripts/license-header.py --check passed
    • dotnet build GFramework.Game/GFramework.Game.csproj -c Release passed with 0 warnings and 0 errors
  • Immediate next step:
    • push the PR follow-up commit and resolve the remaining review threads