Skip to content

Add standard bug_report & feature_request issue templates + a pull_request template #1225

Description

@sundaram2021

Summary

The repo currently has a single, narrowly-scoped issue template — .github/ISSUE_TEMPLATE/desktop-crash.yml — and nothing else. There is no general bug report template, no feature request template, and no pull request template. As a result:

  • Every non-desktop-crash issue opens as a blank text box, so reporters routinely omit the details maintainers need to reproduce (version, OS, source type, steps). The existing desktop-crash template proves the team values structured intake — that structure just doesn't extend to the general case.
  • PRs arrive with no checklist, so it's easy for contributors to miss the things this repo specifically requires: bun run format / lint / typecheck, CI passing, and (for anything touching tool sources/auth) e2e consideration.

What exists today

File Present?
.github/ISSUE_TEMPLATE/desktop-crash.yml ✅ (desktop crash only)
.github/ISSUE_TEMPLATE/bug_report.yml
.github/ISSUE_TEMPLATE/feature_request.yml
.github/PULL_REQUEST_TEMPLATE.md

Proposal

Add three files, matching the conventions of the existing desktop-crash.yml (form-based YAML issue templates, version + OS fields, secret-handling warnings):

  1. bug_report.yml — general bug intake. Captures version, OS, the source/integration involved (OpenAPI / MCP / GraphQL / Google Discovery / plugin), reproduction steps, expected vs. actual, and logs. Reuses the same per-OS log-path guidance and the "don't paste secrets" warning as the desktop template.

  2. feature_request.yml — structured feature intake. Problem statement, proposed solution, alternatives considered, and an "is this tied to a specific source/tool type" field so requests can be triaged against the plugin system.

  3. PULL_REQUEST_TEMPLATE.md — a contributor checklist wired to this repo's actual commands: bun run format, bun run lint, bun run typecheck, bun run test, plus prompts for a changeset, e2e notes, and a self-review. This directly complements the separate "test suite is Linux-only" concern by giving contributors a place to note when they've verified behavior on more than one OS.

I've drafted all three below (ready to drop in). Happy to open a PR adding them if that's welcome.


1. .github/ISSUE_TEMPLATE/bug_report.yml

name: Bug report
description: Something in Executor isn't working as expected.
title: "[bug] "
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to file a bug! A few things first:
        - Update to the latest version if you can — the issue may already be fixed.
        - **Never paste API keys, tokens, or secrets.** Executor stores credentials
          locally; we don't need them to reproduce a bug.
        - For desktop app crashes specifically, use the
          **[Desktop app crash](?template=desktop-crash.yml)** template instead.
  - type: input
    id: version
    attributes:
      label: Executor version
      description: From `executor --version`, or the About/Settings page in the desktop app.
      placeholder: "1.5.19"
    validations:
      required: true
  - type: dropdown
    id: os
    attributes:
      label: Operating system
      options:
        - macOS (Apple Silicon)
        - macOS (Intel)
        - Windows
        - Linux
        - Other
    validations:
      required: true
  - type: dropdown
    id: surface
    attributes:
      label: How are you running Executor?
      options:
        - CLI (`executor ...`)
        - Desktop app
        - MCP server (`executor mcp`)
        - Self-host (Docker)
        - Embedded (the TypeScript runtime / library)
      multiple: true
    validations:
      required: true
  - type: dropdown
    id: source-type
    attributes:
      label: Source / integration involved (if any)
      description: The type of tool source you were using when the bug happened.
      options:
        - OpenAPI
        - MCP
        - GraphQL
        - Google Discovery
        - Custom / plugin
        - N/A
      multiple: true
    validations:
      required: false
  - type: textarea
    id: what-happened
    attributes:
      label: What happened?
      description: A clear description of the bug. What did you do, what did you expect, and what happened instead?
      value: |
        **Steps to reproduce:**
        1.
        2.
        3.

        **Expected:**

        **Actual:**
    validations:
      required: true
  - type: textarea
    id: repro
    attributes:
      label: Minimal reproduction
      description: |
        The smallest setup that triggers the bug — a source URL, the `executor` command(s) you ran, and any config.
        A repo or gist we can clone makes this much faster to track down.
      render: shell
  - type: textarea
    id: logs
    attributes:
      label: Logs / diagnostics
      description: |
        Relevant output and, if useful, the log file:
        - macOS: `~/Library/Logs/Executor/main.log`
        - Windows: `%APPDATA%\Executor\logs\main.log`
        - Linux: `~/.config/Executor/logs/main.log`
        - CLI: re-run with `executor --verbose <command>` and paste the output.

        Redact anything sensitive. **Don't attach files from `~/.executor` — that's where your data and secrets live.**
      render: shell
  - type: checkboxes
    id: checks
    attributes:
      label: Before submitting
      options:
        - label: I've reproduced this on the latest version of Executor.
          required: true
        - label: I've redacted any secrets, tokens, or credentials from the logs above.
          required: true

2. .github/ISSUE_TEMPLATE/feature_request.yml

name: Feature request
description: Suggest a new capability, source type, or improvement for Executor.
title: "[feature] "
labels: ["enhancement"]
body:
  - type: markdown
    attributes:
      value: |
        Got an idea? Great — tell us what you're trying to do and why the current
        Executor can't do it. Concrete use-cases beat abstract proposals.
  - type: textarea
    id: problem
    attributes:
      label: What problem are you trying to solve?
      description: The real-world task that's hard or impossible today. "I want to ___ but Executor currently ___."
    validations:
      required: true
  - type: textarea
    id: solution
    attributes:
      label: What would help?
      description: The change you'd like to see, as concretely as you can. CLI shape, config keys, UI flow — whatever applies.
    validations:
      required: true
  - type: textarea
    id: alternatives
    attributes:
      label: Alternatives you've considered
      description: Workarounds you tried, other tools you looked at, and why they fell short.
  - type: dropdown
    id: source-type
    attributes:
      label: Is this tied to a specific source type?
      description: If your request is about a particular integration flavor, pick it here so we can triage against the plugin system.
      options:
        - OpenAPI
        - MCP
        - GraphQL
        - Google Discovery
        - Custom / plugin (new source type)
        - No — it's cross-cutting
      multiple: true
    validations:
      required: false
  - type: dropdown
    id: surface
    attributes:
      label: Where should this land?
      options:
        - CLI
        - Desktop app / web UI
        - MCP server
        - Self-host
        - TypeScript runtime / library
        - Not sure
      multiple: true
    validations:
      required: false
  - type: checkboxes
    id: checks
    attributes:
      label: Before submitting
      options:
        - label: I've searched the existing issues and this isn't a duplicate.
          required: true

3. .github/PULL_REQUEST_TEMPLATE.md

## Summary

<!-- One or two sentences: what does this change do, and why? -->

## Related Issues

Fixes #(issue number)

## Type of Change

- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring (no functional changes)

## How it was tested

<!-- How did you verify this works? Be specific about commands and OS. -->
- [ ] `bun run format:check`
- [ ] `bun run lint`
- [ ] `bun run typecheck`
- [ ] `bun run test`
- [ ] e2e (describe which scenarios, if applicable)

> CI runs the test suite on **Linux only** today. If your change touches anything
> OS-specific (CLI sidecar builds, Electron, file paths, native bindings), note
> whether you checked it on macOS / Windows too.

## Checklist

- [ ] PR title is descriptive (it becomes the squash-commit message).
- [ ] Self-reviewed my own diff.
- [ ] Added or updated tests for the behavior.
- [ ] Updated docs / README / inline comments where relevant.
- [ ] No secrets, tokens, or credentials in the diff.

## Screenshots (if applicable)

Add screenshots if you can .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions