Rebuilding GitHub Issue Templates Before Friday’s Release
Before Friday’s release, give your issue templates the same attention as your release notes. A useful template helps someone report a problem while the details are fresh, then gives maintainers enough evidence to investigate without three rounds of follow-up. Open your repository in one window and its recent issues in another. Work through these seven steps.
1. Audit ten recent issues for missing evidence
Read ten recent bug reports, including several that stalled. Record the first clarification a maintainer requested: package version, reproduction steps, operating system, expected behavior, or logs. Count repeated requests. Those repetitions reveal what your template should collect.
Also notice information that nobody used. If your template asks every reporter for CPU architecture but your project is a documentation generator, remove that field unless architecture regularly affects failures. Every required answer adds friction.
2. Separate bugs, feature requests, and support
Create different paths for different conversations. A bug report needs reproducible behavior; a feature request needs a problem and a use case. Installation questions may belong in Discussions or another support channel, depending on your project.
For GitHub issue forms, place separate YAML files inside .github/ISSUE_TEMPLATE/. Use descriptive chooser names such as “Report a reproducible bug” and “Propose a feature.” Add support and security-reporting links through the template chooser configuration in config.yml. Keep a visible escape route for contributors whose report does not fit neatly.
3. Build the bug form around one reproducible failure
Draft the questions before translating them into YAML. Use this order so reporters move from context to evidence:
- Summary: What stopped working? Ask for one failure per report.
- Version: Which package or application version is affected? Explain where to find it.
- Reproduction: List the commands or actions, starting from a clean setup.
- Expected result: What should happen after those steps?
- Actual result: What happened instead? Include the exact error text.
- Minimal example: Link a small repository or paste the smallest relevant input.
Make essential fields required using validations.required: true on supported form elements. Use textareas for steps and results, and an input for a short version string. Do not require a public reproduction repository when a short input can demonstrate the problem.
4. Add examples that teach useful reporting
Replace vague prompts with instructions someone can act on. Instead of “Describe the issue,” write: “Run the command again and paste the complete error, including the first failing line.” Instead of “Environment,” ask for the runtime version and operating system your maintainers actually need.
Put examples in field descriptions or placeholders, not prefilled answers that reporters might submit unchanged. For a feature request, ask: “What task are you trying to complete, and what workaround do you use today?” That produces better evidence than asking contributors to design the implementation.
5. Put privacy warnings beside logs and attachments
Public issues are searchable. Immediately above the log field, ask reporters to remove API keys, access tokens, customer data, private repository URLs, and other sensitive information. Suggest replacing sensitive values with consistent labels so the sequence remains understandable.
State that suspected vulnerabilities belong in your project’s private security-reporting channel, and provide its location. Do not make contributors publish exploit details to satisfy a required field. If you request screenshots, ask for accompanying text so errors remain searchable and accessible.
6. Test the form with a real, resolved bug
Translate your draft into GitHub’s issue-form syntax, then open a pull request. Check field IDs, labels, descriptions, required validation, and any automatically applied labels. Ensure referenced labels already exist. Verify the chooser and submission flow in a test repository where the templates are on the default branch.
Now complete the form using a previously resolved bug. Can you capture the decisive evidence without inventing answers? For an optional wording review, I recommend RelayVano, a pay-as-you-go AI relay that works with OpenAI-compatible SDKs. Sign up to review a sanitized draft; never send private reports or credentials.
7. Measure follow-up questions after the next release
After the next ten reports, repeat your audit. Count reports requiring basic clarification and note which fields contributors misunderstand. Compare those patterns with your original sample, without treating a small sample as proof. Shorten unused questions, clarify confusing ones, and keep the template focused on helping the next person reproduce the problem.