feat: add issue and PR templates
Add structured GitHub templates based on analysis of 200+ closed PRs and 50+ closed issues to improve submission quality: Issue templates (YAML form-based): - Bug Report: requires reproduction steps, expected/actual behavior, OS/Python/Hermes version. Optional root cause analysis field. - Feature Request: requires problem/use case, links to skill-vs-tool guidance in CONTRIBUTING.md to reduce misguided tool PRs. - Setup/Installation Help: requires install method, hermes doctor output, error logs, steps already tried. - Template chooser config with links to Discord, docs, contributing guide. PR template: - Type of change selector (bug/feature/security/docs/tests/refactor/skill) - Mandatory issue reference, changes list, testing steps - Checklist: conventional commits, no duplicates, focused changes, tests pass, tests added, platform tested - Dedicated 'New Skills' section asking if skill is broadly useful and properly formatted/tested Key problems these templates address: - Bug reports with no reproduction steps or environment info - Duplicate/racing PRs (multiple people fixing same issue) - Stale branches with 85+ unrelated file changes - Junk skill PRs that should go to Skills Hub instead of bundled - Missing tests on bug fix PRs - No issue references on PRs
This commit is contained in:
144
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
144
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
name: "🐛 Bug Report"
|
||||||
|
description: Report a bug — something that's broken, crashes, or behaves incorrectly.
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["bug"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for reporting a bug! Please fill out the sections below so we can reproduce and fix it quickly.
|
||||||
|
|
||||||
|
**Before submitting**, please:
|
||||||
|
- [ ] Search [existing issues](https://github.com/NousResearch/hermes-agent/issues) to avoid duplicates
|
||||||
|
- [ ] Update to the latest version (`hermes update`) and confirm the bug still exists
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Bug Description
|
||||||
|
description: A clear description of what's broken. Include error messages, tracebacks, or screenshots if relevant.
|
||||||
|
placeholder: |
|
||||||
|
What happened? What did you expect to happen instead?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: reproduction
|
||||||
|
attributes:
|
||||||
|
label: Steps to Reproduce
|
||||||
|
description: Minimal steps to trigger the bug. The more specific, the faster we can fix it.
|
||||||
|
placeholder: |
|
||||||
|
1. Run `hermes chat`
|
||||||
|
2. Send the message "..."
|
||||||
|
3. Agent calls tool X
|
||||||
|
4. Error appears: ...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: expected
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: What should have happened instead?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: actual
|
||||||
|
attributes:
|
||||||
|
label: Actual Behavior
|
||||||
|
description: What actually happened? Include full error output if available.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: component
|
||||||
|
attributes:
|
||||||
|
label: Affected Component
|
||||||
|
description: Which part of Hermes is affected?
|
||||||
|
multiple: true
|
||||||
|
options:
|
||||||
|
- CLI (interactive chat)
|
||||||
|
- Gateway (Telegram/Discord/Slack/WhatsApp)
|
||||||
|
- Setup / Installation
|
||||||
|
- Tools (terminal, file ops, web, code execution, etc.)
|
||||||
|
- Skills (skill loading, skill hub, skill guard)
|
||||||
|
- Agent Core (conversation loop, context compression, memory)
|
||||||
|
- Configuration (config.yaml, .env, hermes setup)
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: platform
|
||||||
|
attributes:
|
||||||
|
label: Messaging Platform (if gateway-related)
|
||||||
|
description: Which platform adapter is affected?
|
||||||
|
multiple: true
|
||||||
|
options:
|
||||||
|
- N/A (CLI only)
|
||||||
|
- Telegram
|
||||||
|
- Discord
|
||||||
|
- Slack
|
||||||
|
- WhatsApp
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: Operating System
|
||||||
|
description: e.g. Ubuntu 24.04, macOS 15.2, Windows 11
|
||||||
|
placeholder: Ubuntu 24.04
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: python-version
|
||||||
|
attributes:
|
||||||
|
label: Python Version
|
||||||
|
description: Output of `python --version`
|
||||||
|
placeholder: "3.11.9"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: hermes-version
|
||||||
|
attributes:
|
||||||
|
label: Hermes Version
|
||||||
|
description: Output of `hermes version`
|
||||||
|
placeholder: "2.1.0"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant Logs / Traceback
|
||||||
|
description: Paste any error output, traceback, or log messages. This will be auto-formatted as code.
|
||||||
|
render: shell
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: root-cause
|
||||||
|
attributes:
|
||||||
|
label: Root Cause Analysis (optional)
|
||||||
|
description: |
|
||||||
|
If you've dug into the code and identified the root cause, share it here.
|
||||||
|
Include file paths, line numbers, and code snippets if possible. This massively speeds up fixes.
|
||||||
|
placeholder: |
|
||||||
|
The bug is in `gateway/run.py` line 949. `len(history)` counts session_meta entries
|
||||||
|
but `agent_messages` was built from filtered history...
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: proposed-fix
|
||||||
|
attributes:
|
||||||
|
label: Proposed Fix (optional)
|
||||||
|
description: If you have a fix in mind (or a PR ready), describe it here.
|
||||||
|
placeholder: |
|
||||||
|
Replace `.get()` with `.pop()` on line 289 of `gateway/platforms/base.py`
|
||||||
|
to actually clear the pending message after retrieval.
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: pr-ready
|
||||||
|
attributes:
|
||||||
|
label: Are you willing to submit a PR for this?
|
||||||
|
options:
|
||||||
|
- label: I'd like to fix this myself and submit a PR
|
||||||
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
blank_issues_enabled: true
|
||||||
|
contact_links:
|
||||||
|
- name: 💬 Nous Research Discord
|
||||||
|
url: https://discord.gg/NousResearch
|
||||||
|
about: For quick questions, showcasing projects, sharing skills, and community chat.
|
||||||
|
- name: 📖 Documentation
|
||||||
|
url: https://github.com/NousResearch/hermes-agent/blob/main/README.md
|
||||||
|
about: Check the README and docs before opening an issue.
|
||||||
|
- name: 🤝 Contributing Guide
|
||||||
|
url: https://github.com/NousResearch/hermes-agent/blob/main/CONTRIBUTING.md
|
||||||
|
about: Read this before submitting a PR.
|
||||||
73
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
73
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
name: "✨ Feature Request"
|
||||||
|
description: Suggest a new feature or improvement.
|
||||||
|
title: "[Feature]: "
|
||||||
|
labels: ["enhancement"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for the suggestion! Before submitting, please consider:
|
||||||
|
|
||||||
|
- **Is this a new skill?** Most capabilities should be [skills, not tools](https://github.com/NousResearch/hermes-agent/blob/main/CONTRIBUTING.md#should-it-be-a-skill-or-a-tool). If it's a specialized integration (crypto, NFT, niche SaaS), it belongs on the Skills Hub, not bundled.
|
||||||
|
- **Search [existing issues](https://github.com/NousResearch/hermes-agent/issues)** — someone may have already proposed this.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: Problem or Use Case
|
||||||
|
description: What problem does this solve? What are you trying to do that you can't today?
|
||||||
|
placeholder: |
|
||||||
|
I'm trying to use Hermes with [provider/platform/workflow] but currently
|
||||||
|
there's no way to...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: solution
|
||||||
|
attributes:
|
||||||
|
label: Proposed Solution
|
||||||
|
description: How do you think this should work? Be as specific as you can — CLI flags, config options, UI behavior.
|
||||||
|
placeholder: |
|
||||||
|
Add a `--foo` flag to `hermes chat` that enables...
|
||||||
|
Or: Add a config key `bar.baz` that controls...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Alternatives Considered
|
||||||
|
description: What other approaches did you consider? Why is the proposed solution better?
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: type
|
||||||
|
attributes:
|
||||||
|
label: Feature Type
|
||||||
|
options:
|
||||||
|
- New tool
|
||||||
|
- New bundled skill
|
||||||
|
- CLI improvement
|
||||||
|
- Gateway / messaging improvement
|
||||||
|
- Configuration option
|
||||||
|
- Performance / reliability
|
||||||
|
- Developer experience (tests, docs, CI)
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: scope
|
||||||
|
attributes:
|
||||||
|
label: Scope
|
||||||
|
description: How big is this change?
|
||||||
|
options:
|
||||||
|
- Small (single file, < 50 lines)
|
||||||
|
- Medium (few files, < 300 lines)
|
||||||
|
- Large (new module or significant refactor)
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: pr-ready
|
||||||
|
attributes:
|
||||||
|
label: Contribution
|
||||||
|
options:
|
||||||
|
- label: I'd like to implement this myself and submit a PR
|
||||||
100
.github/ISSUE_TEMPLATE/setup_help.yml
vendored
Normal file
100
.github/ISSUE_TEMPLATE/setup_help.yml
vendored
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
name: "🔧 Setup / Installation Help"
|
||||||
|
description: Having trouble installing or configuring Hermes? Ask here.
|
||||||
|
title: "[Setup]: "
|
||||||
|
labels: ["setup"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Sorry you're having trouble! Please fill out the details below so we can help.
|
||||||
|
|
||||||
|
**Quick checks first:**
|
||||||
|
- Run `hermes doctor` and include the output below
|
||||||
|
- Try `hermes update` to get the latest version
|
||||||
|
- Check the [README troubleshooting section](https://github.com/NousResearch/hermes-agent#troubleshooting)
|
||||||
|
- For general questions, consider the [Nous Research Discord](https://discord.gg/NousResearch) for faster help
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: What's Going Wrong?
|
||||||
|
description: Describe what you're trying to do and where it fails.
|
||||||
|
placeholder: |
|
||||||
|
I ran `hermes setup` and selected Nous Portal, but when I try to
|
||||||
|
start the gateway I get...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: Steps Taken
|
||||||
|
description: What did you do? Include the exact commands you ran.
|
||||||
|
placeholder: |
|
||||||
|
1. Ran the install script: `curl -fsSL ... | bash`
|
||||||
|
2. Ran `hermes setup` and chose "Quick setup"
|
||||||
|
3. Selected OpenRouter, entered API key
|
||||||
|
4. Ran `hermes chat` and got error...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: install-method
|
||||||
|
attributes:
|
||||||
|
label: Installation Method
|
||||||
|
options:
|
||||||
|
- Install script (curl | bash)
|
||||||
|
- Manual clone + pip/uv install
|
||||||
|
- PowerShell installer (Windows)
|
||||||
|
- Docker
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: Operating System
|
||||||
|
placeholder: Ubuntu 24.04 / macOS 15.2 / Windows 11
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: python-version
|
||||||
|
attributes:
|
||||||
|
label: Python Version
|
||||||
|
description: Output of `python --version` (or `python3 --version`)
|
||||||
|
placeholder: "3.11.9"
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: hermes-version
|
||||||
|
attributes:
|
||||||
|
label: Hermes Version
|
||||||
|
description: Output of `hermes version` (if install got that far)
|
||||||
|
placeholder: "2.1.0"
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: doctor-output
|
||||||
|
attributes:
|
||||||
|
label: Output of `hermes doctor`
|
||||||
|
description: Run `hermes doctor` and paste the full output. This will be auto-formatted.
|
||||||
|
render: shell
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: error-output
|
||||||
|
attributes:
|
||||||
|
label: Full Error Output
|
||||||
|
description: Paste the complete error message or traceback. This will be auto-formatted.
|
||||||
|
render: shell
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: tried
|
||||||
|
attributes:
|
||||||
|
label: What I've Already Tried
|
||||||
|
description: List any fixes or workarounds you've already attempted.
|
||||||
|
placeholder: |
|
||||||
|
- Ran `hermes update`
|
||||||
|
- Tried reinstalling with `pip install -e ".[all]"`
|
||||||
|
- Checked that OPENROUTER_API_KEY is set in ~/.hermes/.env
|
||||||
63
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
63
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
## What does this PR do?
|
||||||
|
|
||||||
|
<!-- Describe the change clearly. What problem does it solve? Why is this approach the right one? -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Related Issue
|
||||||
|
|
||||||
|
<!-- Link the issue this PR addresses. If no issue exists, consider creating one first. -->
|
||||||
|
|
||||||
|
Fixes #
|
||||||
|
|
||||||
|
## Type of Change
|
||||||
|
|
||||||
|
<!-- Check the one that applies. -->
|
||||||
|
|
||||||
|
- [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
|
||||||
|
- [ ] ✨ New feature (non-breaking change that adds functionality)
|
||||||
|
- [ ] 🔒 Security fix
|
||||||
|
- [ ] 📝 Documentation update
|
||||||
|
- [ ] ✅ Tests (adding or improving test coverage)
|
||||||
|
- [ ] ♻️ Refactor (no behavior change)
|
||||||
|
- [ ] 🎯 New skill (bundled or hub)
|
||||||
|
|
||||||
|
## Changes Made
|
||||||
|
|
||||||
|
<!-- List the specific changes. Include file paths for code changes. -->
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
## How to Test
|
||||||
|
|
||||||
|
<!-- Steps to verify this change works. For bugs: reproduction steps + proof that the fix works. -->
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
<!-- Complete these before requesting review. -->
|
||||||
|
|
||||||
|
- [ ] I've read the [Contributing Guide](https://github.com/NousResearch/hermes-agent/blob/main/CONTRIBUTING.md)
|
||||||
|
- [ ] My commit messages follow [Conventional Commits](https://www.conventionalcommits.org/) (`fix(scope):`, `feat(scope):`, etc.)
|
||||||
|
- [ ] I searched for [existing PRs](https://github.com/NousResearch/hermes-agent/pulls) to make sure this isn't a duplicate
|
||||||
|
- [ ] My PR contains **only** changes related to this fix/feature (no unrelated commits)
|
||||||
|
- [ ] I've run `pytest tests/ -q` and all tests pass
|
||||||
|
- [ ] I've added tests for my changes (required for bug fixes, strongly encouraged for features)
|
||||||
|
- [ ] I've tested on my platform: <!-- e.g. Ubuntu 24.04, macOS 15.2, Windows 11 -->
|
||||||
|
|
||||||
|
## For New Skills
|
||||||
|
|
||||||
|
<!-- Only fill this out if you're adding a skill. Delete this section otherwise. -->
|
||||||
|
|
||||||
|
- [ ] This skill is **broadly useful** to most users (if bundled) — see [Contributing Guide](https://github.com/NousResearch/hermes-agent/blob/main/CONTRIBUTING.md#should-the-skill-be-bundled)
|
||||||
|
- [ ] SKILL.md follows the [standard format](https://github.com/NousResearch/hermes-agent/blob/main/CONTRIBUTING.md#skillmd-format) (frontmatter, trigger conditions, steps, pitfalls)
|
||||||
|
- [ ] No external dependencies that aren't already available (prefer stdlib, curl, existing Hermes tools)
|
||||||
|
- [ ] I've tested the skill end-to-end: `hermes --toolsets skills -q "Use the X skill to do Y"`
|
||||||
|
|
||||||
|
## Screenshots / Logs
|
||||||
|
|
||||||
|
<!-- If applicable, add screenshots or log output showing the fix/feature in action. -->
|
||||||
|
|
||||||
Reference in New Issue
Block a user