Skip to content

chore(issues): structured GitHub Issue Forms (bug / install / feature) + config - #456

Merged
debpalash merged 1 commit into
mainfrom
chore/issue-forms
Jun 14, 2026
Merged

chore(issues): structured GitHub Issue Forms (bug / install / feature) + config#456
debpalash merged 1 commit into
mainfrom
chore/issue-forms

Conversation

@debpalash

@debpalash debpalash commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Replaces the two flat markdown templates with validated YAML Issue Forms + a chooser config.yml, so reports arrive with the diagnostic fields triage needs and "how do I…" traffic routes to chat.

  • bug_report.yml — dedup + latest-version checkboxes; required what/repro/expected; OS / install-method / version / compute-device (incl. ROCm + XPU) dropdowns; active-engine; render: text logs with the diagnostic-bundle + --diagnose tip pinned at the top.
  • install_problem.yml — NEW, for the first-run-that-works core value: failure-stage dropdown (launch / uv-bootstrap / model-download / engine-install / first-synth) + a network-conditions dropdown (proxy / restricted-region / offline), since restricted networks are a known bootstrap failure mode.
  • feature_request.yml — problem/solution/alternatives + Area dropdown + a local-first/cross-platform constraints note.
  • config.ymlblank_issues_enabled: false; contact links → Discord, Discussions, private security policy.

Removes the superseded .md templates. YAML validated; SECURITY.md backs the security link; CJK guard green. (Templates-only — no app code; renders on GitHub's new-issue chooser.)

🤖 Generated with Claude Code

Summary

This pull request replaces flat markdown issue templates with three validated YAML GitHub Issue Forms and a configuration file, standardizing issue reporting and routing different inquiry types appropriately.

Files Changed

Added:

  • .github/ISSUE_TEMPLATE/bug_report.yml (109 lines) — Form for reporting bugs with diagnostic tips, preflight checks, and structured fields for OS, installation method, version, compute device, TTS/ASR engine, and logs/diagnostic bundle
  • .github/ISSUE_TEMPLATE/install_problem.yml (86 lines) — New form specifically for installation and first-run failures, with a failure-stage dropdown (launch, Python/uv bootstrap, model download, engine install, first synthesis) and network-conditions field to address setup issues in restricted environments
  • .github/ISSUE_TEMPLATE/feature_request.yml (50 lines) — Form for feature requests with problem statement, proposed solution, alternatives, and area categorization
  • .github/ISSUE_TEMPLATE/config.yml (11 lines) — Configuration that disables blank issues and adds contact links for Discord (quick help), GitHub Discussions (Q&A/ideas), and security vulnerability reporting

Removed:

  • .github/ISSUE_TEMPLATE/bug_report.md (45 lines removed)
  • .github/ISSUE_TEMPLATE/feature_request.md (23 lines removed)

Key Features

Bug Report Form:

  • Diagnostic bundle guidance with --diagnose tip for headless environments
  • Deduplication and version-check preflight checkboxes
  • Required fields: "What happened?", "Steps to reproduce"
  • Optional fields: "What did you expect?" section
  • Dropdowns for OS, installation method, compute device (ROCm and XPU options), and version
  • Active TTS/ASR engine field
  • Logs section with diagnostic bundle support

Install Problem Form:

  • Specialized for first-run scenarios with failure-stage dropdown covering six failure points
  • Required error message field
  • OS, installation method, and version information
  • Network-conditions dropdown to address bootstrap failures in restricted regions (proxy, offline, restricted-region)

Feature Request Form:

  • Preflight search requirement (issues + discussions)
  • Required problem/solution textareas
  • Optional alternatives section
  • Area categorization dropdown
  • Note about local-first and cross-platform constraints

Config File:

  • Disables blank issue creation
  • Redirects users to appropriate channels: Discord for quick help, GitHub Discussions for broader Q&A

User Experience Impact

BEFORE (Flat Markdown):
┌─────────────────────────────┐
│ New Issue                   │
├─────────────────────────────┤
│ • Get started with:         │
│   - Bug report              │
│   - Feature request         │
│ • Blank issue               │
└─────────────────────────────┘

AFTER (Validated Forms with Routing):
┌─────────────────────────────┐
│ New Issue                   │
├─────────────────────────────┤
│ • 🐛 Bug report             │
│   (crashes/incorrect)       │
│ • 🧩 Install / first-run    │
│   (setup failures)          │
│ • ✨ Feature request        │
│   (new capability)          │
│                             │
│ Or get help:                │
│ • 💬 Discord — quick        │
│ • 🗣️ Discussions — Q&A      │
│ • 🔒 Security — private     │
└─────────────────────────────┘

The new issue chooser will guide users to the most appropriate template or support channel, reducing off-topic issues and routing installation problems to a dedicated form that addresses common bootstrap failure scenarios in restricted network environments.

…) + config

Replace the two flat markdown templates with validated YAML Issue Forms and a
chooser config, so reports arrive with the diagnostic fields triage actually
needs and "how do I…" traffic routes to chat instead.

- `bug_report.yml` — dup-search + latest-version checkboxes; required
  what/repro/expected; OS / install-method / version / compute-device dropdowns
  (incl. ROCm + XPU); active-engine; logs (render: text) with the diagnostic-
  bundle + `--diagnose` tip up top.
- `install_problem.yml` — NEW, for the "first-run that just works" core value:
  a failure-stage dropdown (launch / uv-bootstrap / model-download / engine-
  install / first-synth), required error + OS/install/version, and a
  network-conditions dropdown (proxy / restricted-region / offline) since
  restricted networks are a known bootstrap failure mode.
- `feature_request.yml` — problem/solution/alternatives + an Area dropdown, with
  a local-first/cross-platform constraints note so proposals fit.
- `config.yml` — `blank_issues_enabled: false`; contact links to Discord,
  Discussions, and the private security policy.

Removes bug_report.md / feature_request.md (superseded). Forms validated (yaml
parse); SECURITY.md backs the security link; CJK guard green.
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f17f4ebf-e306-43f3-85a8-8fdfc8ccdcb8

📥 Commits

Reviewing files that changed from the base of the PR and between 4a75d69 and 53d8269.

📒 Files selected for processing (6)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/feature_request.md
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/ISSUE_TEMPLATE/install_problem.yml
💤 Files with no reviewable changes (2)
  • .github/ISSUE_TEMPLATE/feature_request.md
  • .github/ISSUE_TEMPLATE/bug_report.md

📝 Walkthrough

Walkthrough

Removes the unstructured Markdown issue templates (bug_report.md, feature_request.md) and replaces them with structured YAML GitHub issue forms (bug_report.yml, feature_request.yml, install_problem.yml). Adds config.yml to disable blank issues and define Discord, Discussions, and security contact links.

Changes

GitHub Issue Template Overhaul

Layer / File(s) Summary
Template config and contact routing
.github/ISSUE_TEMPLATE/config.yml
Disables blank issue creation; registers Discord (quick help), GitHub Discussions (Q&A/ideas), and a security vulnerability link as the three contact outlets.
Structured YAML forms replacing MD templates
.github/ISSUE_TEMPLATE/bug_report.yml, .github/ISSUE_TEMPLATE/feature_request.yml, .github/ISSUE_TEMPLATE/install_problem.yml, .github/ISSUE_TEMPLATE/bug_report.md (deleted), .github/ISSUE_TEMPLATE/feature_request.md (deleted)
Replaces freeform Markdown templates with validated GitHub issue forms. bug_report.yml captures preflight checklist, reproduction steps, OS/install-method dropdowns, version, compute device, TTS/ASR engine, and logs. feature_request.yml enforces problem + solution description, area dropdown, and offline-first guidance. install_problem.yml adds a new failure-stage dropdown, network-conditions field, and "what have you tried" section for install triage.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 9
✅ Passed checks (9 passed)
Check name Status Explanation
Title check ✅ Passed Title follows conventional-commit style with scope (chore) and clearly describes the main change: introduction of structured YAML issue forms and configuration for bug, install, and feature request templates.
Description check ✅ Passed Description covers objectives, key changes, and rationale. Type checkbox (CI/Build) is logically applicable. Testing section absent but not critical for template-only changes with no runtime behavior.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cross-Platform Default Parity ✅ Passed PR contains only GitHub issue template metadata (.github/ISSUE_TEMPLATE/) with no modifications to application code, runtime configuration, environment defaults, or CLI flags. These templates don't...
I18n Completeness (21 Locales) ✅ Passed PR modifies only .github/ISSUE_TEMPLATE YAML files with no frontend code changes or t('...') i18n calls; check does not apply.
Local-First Guarantee ✅ Passed PR adds only GitHub issue template YAML files and config.yml—purely declarative, no executable code, no API keys, telemetry, or cloud requirement. Templates explicitly enforce local-first constrain...
Backward Compatibility ✅ Passed PR contains only GitHub issue template metadata files (.github/ISSUE_TEMPLATE/*.yml, config.yml). No application code, database schemas, alembic migrations, or data handling logic modified; backwar...

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/issue-forms

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps

greptile-apps Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Replaces two flat Markdown issue templates with three validated GitHub Issue Form YAMLs (bug_report.yml, install_problem.yml, feature_request.yml) plus a chooser config.yml that disables blank issues and routes "how do I…" traffic to Discord/Discussions. The new forms enforce required fields, structured dropdowns for OS/install-method/compute-device, and render: text log blocks.

  • bug_report.yml adds dedup + latest-version preflight checkboxes, required what/repro/expected textareas, and OS/install/version/compute-device dropdowns; the active-engine field is left optional, which risks it arriving blank on most reports.
  • install_problem.yml is a new first-run-focused template with failure-stage and network-conditions dropdowns; it omits the compute-device question that is critical for "Engine install" stage failures.
  • feature_request.yml and config.yml are clean replacements with no notable issues; the security contact link is backed by the existing SECURITY.md.

Confidence Score: 4/5

Templates-only change with no app code; safe to merge, but install_problem.yml will consistently produce incomplete engine-install reports.

The three new YAML forms are well-structured and a clear improvement over the flat Markdown templates. The two gaps — no compute-device dropdown in install_problem.yml for engine-install failures, and the optional engine field in bug_report.yml — will create predictable triage friction: every engine-install report and a large share of bug reports will require a follow-up question before debugging can start.

install_problem.yml needs a compute-device dropdown added alongside the failure-stage field; bug_report.yml engine field warrants a second look on whether it should be required.

Important Files Changed

Filename Overview
.github/ISSUE_TEMPLATE/bug_report.yml Replaces flat markdown template with a structured YAML form; adds dedup/version checkboxes, required what/repro/expected fields, OS/install/version/device dropdowns, and render:text log block. Active engine field is optional and will often arrive blank.
.github/ISSUE_TEMPLATE/install_problem.yml New template for first-run/install failures with failure-stage and network-conditions dropdowns; missing a compute-device dropdown that is critical for engine-install stage reports, and the tried field has no description hint.
.github/ISSUE_TEMPLATE/feature_request.yml Structured replacement for the old markdown feature request; adds problem/solution/alternatives textareas, Area dropdown, and a local-first constraints note. Well-formed.
.github/ISSUE_TEMPLATE/config.yml Adds chooser config: blank_issues_enabled false + contact links to Discord, Discussions, and the repo security policy (backed by SECURITY.md). Correct and well-formed.
.github/ISSUE_TEMPLATE/bug_report.md Deleted — superseded by bug_report.yml.
.github/ISSUE_TEMPLATE/feature_request.md Deleted — superseded by feature_request.yml.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User clicks New Issue] --> B{config.yml chooser}
    B --> C[🐛 Bug report\nbug_report.yml]
    B --> D[🧩 Install / first-run\ninstall_problem.yml]
    B --> E[✨ Feature request\nfeature_request.yml]
    B --> F[💬 Discord\nquick help]
    B --> G[🗣️ Discussions\nQ&A / ideas]
    B --> H[🔒 Security policy\nprivate report]
    C --> C1[preflight checkboxes\nwhat / repro / expected\nOS · install · version\ncompute device · engine ⚠️optional\nlogs render:text]
    D --> D1[failure stage\nerror render:text\nOS · install · version\nnetwork conditions\n⚠️ no compute device\ntried]
    E --> E1[preflight checkbox\nproblem / solution / alternatives\nArea dropdown\nlocal-first note]
Loading

Fix All in Claude Code

Reviews (1): Last reviewed commit: "chore(issues): structured GitHub Issue F..." | Re-trigger Greptile

Comment on lines +12 to +24
- type: dropdown
id: stage
attributes:
label: Where did it fail?
options:
- App won't launch / blank or broken window
- Python / uv environment bootstrap
- Model download (HuggingFace)
- Engine install (CosyVoice / IndexTTS / MLX / etc.)
- First synthesis / dub never completes
- Other
validations:
required: true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Missing compute-device field for engine-install failures

The stage dropdown includes "Engine install (CosyVoice / IndexTTS / MLX / etc.)", but the template never asks which compute device the reporter is on. Engine install failures are almost entirely stack-specific — a ROCm install failure on an AMD GPU looks completely different from a CUDA failure, and MLX is MPS-only. Without a device dropdown here, every engine-install report will require a manual follow-up before triage can even begin. The bug_report.yml template solves this at lines 80-92 with an identical dropdown; the same field belongs here.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

Comment on lines +93 to +98
- type: input
id: engine
attributes:
label: Active TTS/ASR engine
description: Settings → Engines (e.g. omnivoice, cosyvoice, indextts2, whisperx).
placeholder: "omnivoice"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Active engine is optional but nearly always required for triage

The engine field has no validations: required: true. For most ML inference and audio DSP bugs, the active engine is the single most important piece of context — behavior between omnivoice, cosyvoice, indextts2, and whisperx differs substantially. Without it being required, a large fraction of reports will arrive with that field blank, requiring a follow-up comment before any debugging can start. Consider marking it required or at minimum adding a note in description emphasising it's needed.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

@debpalash
debpalash merged commit 875f840 into main Jun 14, 2026
15 checks passed
@debpalash
debpalash deleted the chore/issue-forms branch June 14, 2026 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant