docs(contributing): 更新贡献指南并添加标准 Issue 模板#218
Conversation
- 更新问题报告指引,整合 Bug、功能、文档、咨询四类模板 - 优化 Issue 分诊建议,明确 bug、enhancement、documentation、question 分类 - 修订 PR 提交流程说明,统一模板使用要求 - 新增 README 项目介绍文档,包含模块说明、安装指导等内容 - 添加标准化 Issue 模板配置,支持 Bug 报告、功能建议、文档改进、使用咨询 - 完善 GitHub Issue 配置,提供模板搜索与文档链接指引
There was a problem hiding this comment.
GeWuYou has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
📝 WalkthroughWalkthrough为项目建立了结构化的Issue管理系统,包括四个专用GitHub Issue模板(缺陷报告、功能建议、文档改进、使用咨询)及其配置文件,并更新贡献指南以推行Issue优先的工作流程。 Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
.github/ISSUE_TEMPLATE/04-question.yml (1)
60-64: 建议将环境信息字段设为必填。当前
environment字段未设置required: true,但描述文本提示"如果版本或项目上下文会影响答案,请补充"。对于技术咨询类 Issue,环境信息(如框架版本、.NET 版本、Godot 版本等)通常是定位问题的关键。建议将此字段改为必填,或在描述中明确说明可以填写 "N/A" 或 "不适用"。🔧 建议的改进
- type: textarea id: environment attributes: label: "Relevant Environment / 相关环境" description: "Include versions or project context if that changes the answer. / 如果版本或项目上下文会影响答案,请补充。" + validations: + required: true🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/ISSUE_TEMPLATE/04-question.yml around lines 60 - 64, The environment textarea field (id: environment) should be made required or its description clarified; update the field definition to include required: true so the environment input is mandatory for technical questions, or alternatively update the description to instruct users to enter "N/A" when not applicable—modify the block starting with type: textarea and id: environment to add the required: true property or adjust the description text accordingly to enforce or clarify required information collection..github/ISSUE_TEMPLATE/01-bug-report.yml (1)
82-87: 最小复现字段为可选可能导致难以复现的 Bug 报告。当前
repro字段未设置为必填,虽然描述中提到"或说明暂时无法提供的原因",但这可能导致部分用户直接跳过。建议考虑:
- 将此字段改为必填,允许用户填写"暂无最小复现,原因:..."
- 或在
render: shell下方添加占位符文本,明确提示"如暂无复现代码,请说明原因"对于可稳定复现的缺陷,最小复现是定位问题的关键,当前设计可能降低 Bug 报告质量。
💡 建议的改进
方案 1:改为必填
- type: textarea id: repro attributes: label: "Minimal Repro / 最小复现" description: "Share a repository, gist, code snippet, or explain why a minimal repro is not yet available. / 提供仓库、gist、代码片段,或说明暂时无法提供的原因。" + placeholder: "请提供复现链接或代码片段。如暂无,请说明原因(如:环境特定、偶发性问题等)。" render: shell + validations: + required: true方案 2:强化占位符引导
- type: textarea id: repro attributes: label: "Minimal Repro / 最小复现" description: "Share a repository, gist, code snippet, or explain why a minimal repro is not yet available. / 提供仓库、gist、代码片段,或说明暂时无法提供的原因。" + placeholder: | + 请提供: + - GitHub 仓库链接 + - Gist 或代码片段 + - 或说明为何暂无最小复现(例如:环境特定、偶发性问题等) render: shell🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/ISSUE_TEMPLATE/01-bug-report.yml around lines 82 - 87, The repro textarea field (id: repro, type: textarea, attributes: render: shell) should be strengthened to ensure reproducibility: either mark the field as required so users must enter something (allowing entries like "暂无最小复现,原因:...") or add a clear placeholder/description under attributes (e.g., guidance text) that prompts users to provide a minimal repro or explicitly explain why none is available; update the field definition for id: repro accordingly and keep the existing label/description but add the required flag or a new placeholder attribute to guide submitters.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.github/ISSUE_TEMPLATE/01-bug-report.yml:
- Around line 82-87: The repro textarea field (id: repro, type: textarea,
attributes: render: shell) should be strengthened to ensure reproducibility:
either mark the field as required so users must enter something (allowing
entries like "暂无最小复现,原因:...") or add a clear placeholder/description under
attributes (e.g., guidance text) that prompts users to provide a minimal repro
or explicitly explain why none is available; update the field definition for id:
repro accordingly and keep the existing label/description but add the required
flag or a new placeholder attribute to guide submitters.
In @.github/ISSUE_TEMPLATE/04-question.yml:
- Around line 60-64: The environment textarea field (id: environment) should be
made required or its description clarified; update the field definition to
include required: true so the environment input is mandatory for technical
questions, or alternatively update the description to instruct users to enter
"N/A" when not applicable—modify the block starting with type: textarea and id:
environment to add the required: true property or adjust the description text
accordingly to enforce or clarify required information collection.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 951ca0b2-6d49-425c-b4f0-dfa76115ace6
📒 Files selected for processing (7)
.github/ISSUE_TEMPLATE/01-bug-report.yml.github/ISSUE_TEMPLATE/02-feature-request.yml.github/ISSUE_TEMPLATE/03-documentation.yml.github/ISSUE_TEMPLATE/04-question.yml.github/ISSUE_TEMPLATE/config.ymlREADME.mddocs/zh-CN/contributing.md
📜 Review details
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Build and Test
- GitHub Check: Code Quality & Security
- GitHub Check: Analyze (C#)
🧰 Additional context used
📓 Path-based instructions (3)
docs/**/*
📄 CodeRabbit inference engine (CLAUDE.md)
Documentation must be located in docs/ directory with Chinese content in docs/zh-CN/
Files:
docs/zh-CN/contributing.md
docs/**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
docs/**/*.md: Update relevantREADME.mdordocs/page when behavior, setup steps, architecture guidance, or user-facing examples change
Keep code samples, package names, and command examples in documentation aligned with the current repository state
For integration-oriented features such as the AI-First config system, documentation MUST cover project directory layout, file conventions, required project/package wiring, minimal working usage example, and migration/compatibility notes
Files:
docs/zh-CN/contributing.md
docs/zh-CN/**/*.md
📄 CodeRabbit inference engine (AGENTS.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
Files:
docs/zh-CN/contributing.md
🧠 Learnings (5)
📓 Common learnings
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-14T01:59:40.041Z
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
📚 Learning: 2026-04-14T01:59:40.041Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-14T01:59:40.041Z
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
Applied to files:
.github/ISSUE_TEMPLATE/config.ymlREADME.md.github/ISSUE_TEMPLATE/02-feature-request.yml.github/ISSUE_TEMPLATE/03-documentation.ymldocs/zh-CN/contributing.md
📚 Learning: 2026-04-14T01:59:40.041Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-14T01:59:40.041Z
Learning: Applies to docs/**/*.md : Update relevant `README.md` or `docs/` page when behavior, setup steps, architecture guidance, or user-facing examples change
Applied to files:
README.md
📚 Learning: 2026-04-14T01:59:40.041Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-14T01:59:40.041Z
Learning: Applies to docs/**/*.md : For integration-oriented features such as the AI-First config system, documentation MUST cover project directory layout, file conventions, required project/package wiring, minimal working usage example, and migration/compatibility notes
Applied to files:
README.md
📚 Learning: 2026-04-05T15:30:46.211Z
Learnt from: CR
Repo: GeWuYou/GFramework PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-05T15:30:46.211Z
Learning: Applies to docs/**/* : Documentation must be located in docs/ directory with Chinese content in docs/zh-CN/
Applied to files:
.github/ISSUE_TEMPLATE/03-documentation.yml
🔇 Additional comments (13)
.github/ISSUE_TEMPLATE/04-question.yml (1)
11-36: 前置检查与主题分类设计合理。提交前检查确保用户先搜索现有 Issue 并阅读文档,主题领域覆盖了项目的主要模块和关注点,有助于快速分诊。
README.md (1)
121-129: 贡献流程更新合理,Issue-first 策略有助于提升协作质量。新增的 5 步流程将 Issue 模板选择和前置检查作为第一步,符合最佳实践。模板名称与
.github/ISSUE_TEMPLATE/下的实际文件保持一致,并与docs/zh-CN/contributing.md中的详细说明相呼应。.github/ISSUE_TEMPLATE/config.yml (1)
1-11: Issue 模板配置设计合理,引导流程清晰。禁用空白 Issue 确保用户使用结构化模板,三个联系链接按优先级引导用户先搜索、再阅读指南、最后查看文档,符合社区最佳实践。URL 路径与仓库结构一致。
docs/zh-CN/contributing.md (3)
35-54: Issue 提交指南详细且与模板字段对应良好。更新后的报告问题章节清晰列出了 4 种 Issue 类型及其使用场景,提交前检查原则完善,每种类型所需的最小必要信息与对应的 GitHub Issue Forms 字段保持一致,有助于用户提交高质量 Issue。
55-65: Issue 分诊建议为维护者提供清晰的处理指引。新增的分诊建议章节定义了 6 种标签类型及其使用场景,有助于维护者快速分类和处理 Issue。特别是
needs-repro和needs-info标签的说明,以及关于标签集合演进的备注,体现了良好的流程设计思维。
824-831: 获取帮助章节更新与新的 Issue 工作流保持一致。Line 828 的措辞调整强调了使用对应模板的重要性,与文档前面的 Issue 提交指南形成呼应。
.github/ISSUE_TEMPLATE/02-feature-request.yml (2)
11-41: 前置检查与模块选择设计优秀,特别强调问题陈述。第三个必填检查项"我可以说明该建议要解决的用户问题或工作流缺口"确保提交者先思考问题本质而非直接提方案,这对功能建议类 Issue 尤为重要。模块下拉列表覆盖全面且提供"不确定"选项,用户体验良好。
42-80: 功能建议字段设计完善,引导用户提供关键信息。必填字段(问题背景、建议方案、使用场景)确保每个功能建议都有清晰的动机和应用价值。可选字段(API 草图、替代方案、兼容性影响)提供了深化讨论的空间,且描述文本明确说明了填写这些字段的价值。
.github/ISSUE_TEMPLATE/01-bug-report.yml (3)
11-48: Bug 报告前置检查完善,版本信息字段设计合理。必填的版本字段(Line 41-48)支持 NuGet 版本号和提交 SHA 两种格式,并提供清晰的占位符示例,有助于快速定位问题。前置检查确保用户能够提供可复现场景,这对 Bug 报告至关重要。
49-81: Bug 描述字段结构清晰,遵循标准的缺陷报告最佳实践。将问题描述拆分为概述、复现步骤、预期行为、实际行为四个必填字段,确保报告者提供完整信息。复现步骤字段的占位符示例(1, 2, 3...)直观引导用户以结构化方式描述问题。
94-105: 环境信息字段设计合理,占位符清晰。必填的环境信息字段提供了结构化的占位符(OS、.NET SDK、Godot 版本、IDE/构建工具),引导用户提供与复现相关的关键信息,有助于快速定位环境相关问题。
.github/ISSUE_TEMPLATE/03-documentation.yml (2)
5-28: 文档问题识别字段设计合理,强调文档与产品同等重要。开篇声明"文档问题同样是产品问题"体现了良好的文档文化。必填的文档路径字段配合清晰的占位符示例,确保维护者能够快速定位问题页面。前置检查避免了重复提交和基于过期文档的报告。
29-61: 文档问题类型分类全面,描述字段确保可操作性。问题类型下拉列表覆盖了文档常见的 6 种问题(缺失、过期、错误、不清晰、缺示例、翻译问题),分类清晰。必填的"当前问题"和"期望改进"字段确保报告者提供可操作的反馈,而非泛泛的抱怨。可选的参考资料字段为深度讨论提供了空间。
Summary by CodeRabbit
文档
工程化