diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..5d95084 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,102 @@ +name: Bug report +description: Report reproducible incorrect behavior in Splice Shell. +title: "fix: " +labels: + - "status:needs-review" + - "type:bug" +body: + - type: checkboxes + id: preflight + attributes: + label: Preflight checks + options: + - label: I searched open and closed issues and found no duplicate. + required: true + - label: I understand a maintainer must add `status:approved` before work begins or a pull request is opened. + required: true + - type: textarea + id: description + attributes: + label: Bug description + description: Clearly describe the incorrect behavior and its impact. + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + placeholder: | + 1. Start Splice Shell with ... + 2. Run ... + 3. Observe ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + validations: + required: true + - type: textarea + id: actual + attributes: + label: Actual behavior + description: Include the exact error or visible result. + validations: + required: true + - type: dropdown + id: operating-system + attributes: + label: Operating system + options: + - Windows + - Linux + - WSL + - Other + validations: + required: true + - type: input + id: os-version + attributes: + label: Operating system version + placeholder: Windows 11 24H2, Ubuntu 24.04, WSL2, or equivalent + validations: + required: true + - type: dropdown + id: ai-cli + attributes: + label: AI CLI + description: Select the client involved, or Not applicable. + options: + - Claude Code + - Codex CLI + - Gemini CLI + - OpenCode + - Other + - Not applicable + validations: + required: true + - type: input + id: shell + attributes: + label: Shell + placeholder: PowerShell, bash, zsh, fish, or other + validations: + required: true + - type: input + id: version + attributes: + label: Splice Shell version or commit + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs + description: Remove secrets and personal information before submitting. + render: shell + - type: textarea + id: context + attributes: + label: Additional context + description: Add screenshots, frequency, regressions, or known workarounds. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..8005e32 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false +contact_links: [] diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..a840f0e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,60 @@ +name: Feature request +description: Propose an improvement to Splice Shell. +title: "feat: " +labels: + - "status:needs-review" + - "type:feature" +body: + - type: checkboxes + id: preflight + attributes: + label: Preflight checks + options: + - label: I searched open and closed issues and found no duplicate. + required: true + - label: I understand a maintainer must add `status:approved` before work begins or a pull request is opened. + required: true + - type: textarea + id: problem + attributes: + label: Problem + description: What user problem or limitation should Splice Shell address? + placeholder: Describe who is affected, what they are trying to do, and why the current behavior is insufficient. + validations: + required: true + - type: textarea + id: solution + attributes: + label: Proposed solution + description: Describe the desired behavior from the user's perspective. + validations: + required: true + - type: dropdown + id: area + attributes: + label: Affected area + options: + - Terminal and PTY + - AI CLI compatibility + - Desktop UI (TypeScript) + - Desktop backend (Rust) + - Windows + - Linux + - WSL + - Build, packaging, or release + - Documentation + - Other + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Describe workarounds or other approaches you evaluated. + validations: + required: true + - type: textarea + id: context + attributes: + label: Additional context + description: Add examples, screenshots, compatibility constraints, or related links. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..5471f38 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,52 @@ +## Linked issue + +Closes # + +- [ ] The linked issue has the `status:approved` label. + +## Pull request type + +Select exactly one option and apply the matching `type:*` label. + +- [ ] Bug fix (`type:bug`) +- [ ] New feature (`type:feature`) +- [ ] Documentation (`type:docs`) +- [ ] Refactor (`type:refactor`) +- [ ] Maintenance or tooling (`type:chore`) +- [ ] Breaking change (`type:breaking-change`) + +## Summary + +- +- + +## Changes + +| Area or file | Change | +| -------------- | ----------------------------- | +| `path/to/file` | Describe the relevant change. | + +## Test plan + +- [ ] Ran the focused automated checks: `command and result` +- [ ] Exercised the affected terminal, AI CLI, or desktop workflow: `scenario and result` +- [ ] Verified relevant Windows, Linux, or WSL behavior, or documented why it is not applicable. + +## Chained pull request context + +Complete this section when the change is part of a chain; otherwise write `Not applicable`. + +- Previous PR: +- Next PR: +- Review this PR first: +- Intentionally out of scope: + +## Contributor checklist + +- [ ] I searched for duplicate issues and pull requests before starting. +- [ ] I linked an approved issue using `Closes`, `Fixes`, or `Resolves`. +- [ ] I selected exactly one pull request type and applied exactly one matching `type:*` label. +- [ ] I completed every relevant template field and included reproducible test evidence. +- [ ] I updated documentation when behavior or compatibility changed. +- [ ] My commits follow Conventional Commits. +- [ ] My commits contain no AI attribution, including `Co-Authored-By` trailers.