diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..60a11e294 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -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 diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..0daa52c93 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..8dba7d43d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -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 diff --git a/.github/ISSUE_TEMPLATE/setup_help.yml b/.github/ISSUE_TEMPLATE/setup_help.yml new file mode 100644 index 000000000..f13eea4a3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/setup_help.yml @@ -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 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..e4e263c58 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,63 @@ +## What does this PR do? + + + + + +## Related Issue + + + +Fixes # + +## Type of Change + + + +- [ ] 🐛 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 + + + +- + +## How to Test + + + +1. +2. +3. + +## Checklist + + + +- [ ] 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: + +## For New Skills + + + +- [ ] 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 + + +