From 34918d9921c1bcb6cdaa53dc589c23f293bc6971 Mon Sep 17 00:00:00 2001 From: Povilas Kirna Date: Tue, 2 Jun 2026 19:09:01 +0200 Subject: [PATCH] chore: add PR template, issue templates (#1211) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: add PR template, issue templates, and triage action Adds a complete contribution quality layer to reduce maintainer triage burden: - .github/pull_request_template.md — structured PR description with checklist enforcing target branch, one-concern rule, CI green, no print(), schema regeneration, and ADR/CONTEXT.md update requirements - .github/ISSUE_TEMPLATE/bug_report.yml — required-field YAML form; GitHub blocks submission until reproduction steps and environment are filled in - .github/ISSUE_TEMPLATE/feature_request.yml — required problem/proposal fields with duplicate-check prompt - .github/ISSUE_TEMPLATE/config.yml — disables blank issues; funnels questions to Discussions - .github/workflows/triage.yml — auto-closes issues and PRs from accounts younger than 7 days, and closes anything with an empty or unfilled body Co-Authored-By: Claude Sonnet 4.6 * chore: simplify to templates only — drop triage workflow - PR template: target main (not dev), strip TS/pnpm/ADR checklist items that aren't enforced in the current codebase yet - Remove .github/workflows/triage.yml — account-age and auto-close policy needs explicit maintainer sign-off before automation Issue templates and config.yml are unchanged. Co-Authored-By: Claude Sonnet 4.6 * chore: drop CI-green item — no active CI workflow yet Co-Authored-By: Claude Sonnet 4.6 * chore: upgrade templates with feedback from #1222 and #1211 thread Bug report: - Add install method dropdown (Docker / pip / Windows / macOS) - Split into separate Expected Behaviour and Actual Behaviour fields - Add Model / Backend field for LLM-related bugs - Add prerequisites checkboxes: duplicate search, security vuln redirect, running latest main - Add Additional Information free-text field Feature request: - Add prerequisites checkboxes (searched issues, searched discussions, concrete proposal) - Add area dropdown (Chat/Email/Calendar/Cookbook/etc.) for triage - Rename and tighten Problem and Solution fields - Add Prior Art / Related Issues field - Add Alternatives Considered field config.yml: - Replace two generic links with three specific ones: Q&A discussions, Ideas discussions, and GitHub Security Advisories for vulnerabilities PR template: - Rename Summary section with clearer placeholder text - Add Linked Issue section (Fixes #NNN) - Add How to Test section with numbered placeholder steps - Add Screenshots section for UI changes - Add duplicate-search checklist item - Remove No print() item (style note, not a structural requirement) Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: Claude Sonnet 4.6 --- .github/ISSUE_TEMPLATE/bug_report.yml | 103 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 13 +++ .github/ISSUE_TEMPLATE/feature_request.yml | 90 ++++++++++++++++++ .github/pull_request_template.md | 38 ++++++++ 4 files changed, 244 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..ae95229 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,103 @@ +name: Bug Report +description: Report a reproducible bug in Odysseus. +labels: ["bug"] + +body: + - type: markdown + attributes: + value: | + **Before submitting:** search [open issues](https://github.com/pewdiepie-archdaemon/odysseus/issues) + and [discussions](https://github.com/pewdiepie-archdaemon/odysseus/discussions) first. + Duplicate reports slow things down. + + For security vulnerabilities, **do not open a public issue** — + use [GitHub Security Advisories](https://github.com/pewdiepie-archdaemon/odysseus/security/advisories/new) + and read [SECURITY.md](https://github.com/pewdiepie-archdaemon/odysseus/blob/main/SECURITY.md) first. + + - type: checkboxes + id: prerequisites + attributes: + label: Prerequisites + options: + - label: I searched [open issues](https://github.com/pewdiepie-archdaemon/odysseus/issues?q=is%3Aissue+is%3Aopen) and [discussions](https://github.com/pewdiepie-archdaemon/odysseus/discussions) and did not find an existing report of this bug. + required: true + - label: This is **not** a security vulnerability. (Vulnerabilities go to [GitHub Security Advisories](https://github.com/pewdiepie-archdaemon/odysseus/security/advisories/new) — see [SECURITY.md](https://github.com/pewdiepie-archdaemon/odysseus/blob/main/SECURITY.md).) + required: true + - label: I am running the latest code from `main`. + required: true + + - type: dropdown + id: install-method + attributes: + label: Install Method + options: + - Docker (docker compose up) + - Manual Python install (pip / venv) + - Windows native (launch-windows.ps1) + - macOS app (build-macos-app.sh / start-macos.sh) + - Other (describe in the reproduction steps below) + validations: + required: true + + - type: dropdown + id: os + attributes: + label: Operating System + options: + - Linux + - macOS + - Windows + - Other + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to Reproduce + description: Exact steps that reliably trigger the bug. The more specific, the faster this gets fixed. + placeholder: | + 1. Go to ... + 2. Click / type ... + 3. Observe ... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected Behaviour + description: What should have happened? + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual Behaviour + description: What actually happened? Include the full error message if there is one. + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Logs / Screenshots + description: Paste relevant terminal output or attach screenshots. Remove API keys, passwords, and personal data before pasting. + render: text + + - type: input + id: model-backend + attributes: + label: Model / Backend (if relevant) + description: "e.g. Ollama + llama3.2:latest, vLLM + mistral-7b, OpenAI API, Anthropic API" + placeholder: "Ollama + llama3.2:latest" + + - type: textarea + id: additional-info + attributes: + label: Additional Information + description: Anything else that might help — browser console errors, related issues, things you already tried, or environment quirks. + placeholder: | + - Any other context goes here. + - If you are willing to submit a PR that fixes this, mention it here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..da16395 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,13 @@ +blank_issues_enabled: false +contact_links: + - name: Question / Need Help + url: https://github.com/pewdiepie-archdaemon/odysseus/discussions/categories/q-a + about: Ask how-to questions, setup help, and model configuration questions here. Issues are for confirmed bugs and concrete proposals only. + + - name: Idea or Suggestion + url: https://github.com/pewdiepie-archdaemon/odysseus/discussions/categories/ideas + about: Discuss ideas and gauge interest before opening a formal feature request. If there is already a discussion, link it in your feature request. + + - name: Security Vulnerability + url: https://github.com/pewdiepie-archdaemon/odysseus/security/advisories/new + about: Report vulnerabilities privately via GitHub Security Advisories — never as a public issue. Read SECURITY.md before reporting. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..733114b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,90 @@ +name: Feature Request +description: Propose a new feature or a concrete improvement to Odysseus. +labels: ["enhancement"] + +body: + - type: markdown + attributes: + value: | + **Before submitting:** search [open issues](https://github.com/pewdiepie-archdaemon/odysseus/issues) + and [discussions](https://github.com/pewdiepie-archdaemon/odysseus/discussions) first. + Feature requests that duplicate [ROADMAP.md](https://github.com/pewdiepie-archdaemon/odysseus/blob/main/ROADMAP.md) + or an existing open issue will be closed as duplicates. + + If your idea needs community input before it becomes a concrete proposal, + start a [discussion](https://github.com/pewdiepie-archdaemon/odysseus/discussions/categories/ideas) instead. + + - type: checkboxes + id: prerequisites + attributes: + label: Prerequisites + options: + - label: I searched [open issues](https://github.com/pewdiepie-archdaemon/odysseus/issues?q=is%3Aissue+is%3Aopen) and this has not already been proposed. + required: true + - label: I searched [discussions](https://github.com/pewdiepie-archdaemon/odysseus/discussions) and this is not already being debated there. + required: true + - label: This is a concrete, actionable proposal — not a vague "it would be nice if..." request. + required: true + + - type: dropdown + id: area + attributes: + label: Area + description: Which part of the application does this affect? + options: + - Chat / Agent + - Email + - Calendar + - Documents / RAG + - Memory + - Cookbook / Local Models / GPU + - Search + - Notes / Editor + - Auth / Security + - Docker / Deployment + - UI / Frontend + - API / Backend + - MCP + - Testing / CI + - Other + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Problem or Motivation + description: What problem does this solve, or what use case does it enable? Be specific — "it would be better" is not enough. + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: Describe the behaviour or change you want to see. Include API shape, UI sketch, or code snippets if that helps make it concrete. + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: What other approaches did you consider and why did you rule them out? If there is an existing workaround, describe it. + + - type: textarea + id: prior-art + attributes: + label: Prior Art / Related Issues + description: Link any related issues, discussions, or external references that informed this proposal. + + - type: dropdown + id: willing_to_implement + attributes: + label: Are you willing to implement this? + options: + - "Yes — I can open a PR" + - "Partially — I can help but need guidance" + - "No — I am only filing the request" + validations: + required: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..bb9c32b --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,38 @@ +## Summary + + + +## Linked Issue + + + +Fixes # + +## Type of Change + +- [ ] Bug fix (non-breaking — fixes a confirmed issue) +- [ ] New feature (non-breaking — adds new behaviour) +- [ ] Breaking change (changes or removes existing behaviour) +- [ ] Refactor / cleanup (behaviour unchanged) +- [ ] Documentation only +- [ ] CI / tooling / configuration + +## Checklist + +- [ ] I searched [open issues](https://github.com/pewdiepie-archdaemon/odysseus/issues) and [open PRs](https://github.com/pewdiepie-archdaemon/odysseus/pulls) — this is not a duplicate. +- [ ] This PR targets `main` +- [ ] My changes are limited to the scope described above — no unrelated refactors or whitespace changes mixed in. + +## How to Test + + + +1. +2. +3. + +## Screenshots (UI changes only) + +