--- name: gframework-doc-refresh description: "Refresh or reassess GFramework documentation for a source module such as Core, Game, Godot, Cqrs, Ecs.Arch, or their generator/abstraction packages. Use this when the user asks to update module docs, re-evaluate landing pages, fix outdated topic pages, refresh API reference coverage, verify adoption paths against source/tests/README, or compare current docs with ai-libs consumer wiring. Recommended command: /gframework-doc-refresh ." --- # Purpose Use this skill to refresh GFramework documentation from source-first evidence. The public entry is module-driven, not doc-type-driven: - Input: a source module or a resolvable docs section alias - Output: the minimal documentation update set needed for that module - Evidence: code, tests, README, current docs, then `ai-libs/` Do not start by deciding “this is an API doc task” or “this is a tutorial task”. Decide that only after the module scan. # Triggers Use this skill when the user asks things like: - `refresh docs for Core` - `update Game module docs` - `根据 Godot 模块源码刷新文档` - `重新评估 Cqrs 模块文档并更新` - `核对 Godot.SourceGenerators 的文档状态` - `看看 source-generators 栏目哪些页面已经失真` Recommended command form: ```bash /gframework-doc-refresh ``` # Supported Modules Canonical module names: - `Core` - `Core.Abstractions` - `Core.SourceGenerators` - `Core.SourceGenerators.Abstractions` - `Game` - `Game.Abstractions` - `Game.SourceGenerators` - `Godot` - `Godot.SourceGenerators` - `Godot.SourceGenerators.Abstractions` - `Cqrs` - `Cqrs.Abstractions` - `Cqrs.SourceGenerators` - `Ecs.Arch` - `Ecs.Arch.Abstractions` - `SourceGenerators.Common` The canonical mapping lives in `.agents/skills/_shared/module-map.json`. If the user supplies a docs section name: - resolve it back to a source module first - if it maps to multiple modules, stop at normalization guidance and do not draft docs yet # Workflow ## 1. Normalize the input Run: ```bash python3 .agents/skills/gframework-doc-refresh/scripts/scan_module_evidence.py ``` The script normalizes aliases, reports ambiguity, and prints the module's evidence surface. If the result is ambiguous: - return the candidate modules - ask the user to pick the intended source module - do not continue into document generation ## 2. Scan the evidence surface For the resolved module, inspect: - source directories - `*.csproj` - relevant test projects - sibling `README.md` - mapped `docs/zh-CN` landing pages and topic pages - optional `ai-libs/` consumer evidence when needed Always confirm the actual files in the repository. Do not assume the mapping is enough on its own. ## 3. Decide whether `ai-libs/` is needed Use `ai-libs/` when: - adoption path is unclear from source and README alone - extension points need a real consumer wiring example - current docs have concepts but lack an end-to-end integration path Do not rely on `ai-libs/` for: - public API contract definitions - generator diagnostics or semantic guarantees - claims about what the current version officially supports If `ai-libs/` conflicts with current source or tests, keep source/tests as the contract and document the migration boundary. ## 4. Judge the documentation state Classify the module into one or more of these states: - missing landing page - stale landing page - stale topic page - missing or stale API reference coverage - stale tutorial/example - validation-only Base this on evidence, not on the previous docs shape. ## 5. Choose the output set Always prioritize: 1. README / landing page / adoption path 2. topic pages 3. API reference 4. tutorials If the module only needs validation or relinking, do not generate extra pages. ## 6. Draft or update docs Load only the template that matches the output you selected: - `templates/module-landing.md` - `templates/topic-refresh.md` - `templates/api-reference.md` - `templates/tutorial.md` Keep examples minimal, current, and traceable to source or tests. ## 7. Validate Run the internal validators as needed: ```bash bash .agents/skills/gframework-doc-refresh/scripts/validate-all.sh ``` For site-level confirmation after doc edits: ```bash cd docs && bun run build ``` # Evidence Order Use this exact priority: 1. source code, XML docs, `*.csproj` 2. tests and snapshots 3. module `README.md` 4. current `docs/zh-CN` pages 5. verified `ai-libs/` consumers 6. archived docs only as fallback context # Output Rules - Prefer correcting the adoption path over expanding page count. - Do not copy wording from outdated docs just to keep page volume. - Public docs must stay reader-facing. Do not write inventory, coverage baseline, recovery-point, batch-metric, review backlog, or audit-wave wording into `README.md` or `docs/**`. - Use neutral, destination-first section names and link labels. Do not expose raw filenames or paths such as `game/index.md`, `README.md`, or `../core/cqrs.md` as visible reader-facing labels when a semantic label is available. - Do not use rhetorical or conversational headings in public docs, such as “你真正会用到的公开入口”、 “先理解包关系” or “想看……转到……”. Prefer direct labels such as “公开入口”、 “模块与包关系” and “相关主题”. - Keep public docs out of internal product-decision tone. Do not publish repository-governance wording such as “当前阶段的结论”、“不建议立即启动” or audience-maintainer tradeoff discussions unless the page itself is a public adoption guide and the wording has been rewritten as reader-facing suitability guidance. - If XML or audit evidence is relevant, translate it into reader guidance such as “which types to inspect first” or “which entry points define the contract”, instead of exposing counts, dates, or governance status. - Escape generics outside code blocks. - Keep internal links real and current. - Mark code blocks with explicit languages. - Use the smallest example that demonstrates the current contract. - Consumer examples may align with `ai-libs/`, but must not exceed the current module contract. # Validation Use the shared standards in `.agents/skills/_shared/DOCUMENTATION_STANDARDS.md`. When this skill changes public docs, prefer: 1. focused validator on touched pages 2. `cd docs && bun run build` When this skill changes the skill system itself: 1. validate `SKILL.md` frontmatter exists 2. run the module scan script for representative modules 3. confirm obsolete `vitepress-*` public entries are gone # References Read these only when needed: - `.agents/skills/_shared/DOCUMENTATION_STANDARDS.md` - `.agents/skills/_shared/module-map.json` - `references/module-selection.md` - `references/evidence-and-ai-libs.md` - `references/output-strategy.md`