diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..5324f51 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,107 @@ +name: Bug Report +description: Report a reproducible problem with XcodeBazelMCP. +title: "[Bug] - " +labels: + - bug +body: + - type: markdown + attributes: + value: | + Thanks for reporting a bug. Include enough detail for someone to reproduce it in a Bazel Apple workspace. + + - type: dropdown + id: workflow + attributes: + label: Affected workflow + description: Pick the closest workflow area. + options: + - MCP server/tools + - CLI commands or parsers + - Bazel build/test/discovery + - Simulator workflows + - Physical device workflows + - UI automation, screenshots, video, logs, or deep links + - LLDB debugging + - macOS, tvOS, watchOS, or visionOS workflows + - Swift Package Manager + - Daemon, session defaults, config, doctor, or setup + - Project scaffolding + - CI, release, packaging, or dependencies + - Other + validations: + required: true + + - type: textarea + id: command + attributes: + label: Command or MCP tool + description: Paste the exact CLI command, MCP tool call, or client action that fails. + render: sh + placeholder: xcodebazelmcp build //app:app --simulator + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Reproduction steps + description: List the smallest set of steps needed to trigger the problem. + placeholder: | + 1. Configure workspace with ... + 2. Run ... + 3. Observe ... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What should have happened? + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual behavior + description: What happened instead? Include error output, stack traces, or logs. + render: text + validations: + required: true + + - type: textarea + id: environment + attributes: + label: Environment + description: Include the versions and setup details relevant to the failure. + value: | + - XcodeBazelMCP version: + - Install method: npm / npx / source + - macOS version: + - Xcode version: + - Node.js version: + - Bazel or Bazelisk version: + - MCP client: + - Workspace config: env var / config file / CLI flag / runtime tool + validations: + required: true + + - type: textarea + id: target + attributes: + label: Target, platform, and device details + description: Fill in whatever applies to this issue. + value: | + - Bazel target: + - Platform: simulator / device / macOS / tvOS / watchOS / visionOS / SwiftPM + - Simulator name and runtime: + - Physical device model and iOS version: + - Bundle identifier: + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add links, screenshots, recordings, sample targets, or related issues. + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..166b444 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,9 @@ +blank_issues_enabled: true +contact_links: + - name: Documentation + url: https://github.com/XcodeBazelMCP/XcodeBazelMCP/tree/main/docs + about: Check workflow-specific docs before opening an issue. + - name: README + url: https://github.com/XcodeBazelMCP/XcodeBazelMCP#readme + about: Review installation, MCP setup, workspace configuration, and CLI examples. + diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..5f32cf9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,90 @@ +name: Feature Request +description: Propose a new workflow, command, MCP tool, or behavior change. +title: "[Feature] - " +labels: + - enhancement +body: + - type: markdown + attributes: + value: | + Use this for new capabilities or changes to existing behavior. For broken behavior, open a bug report instead. + + - type: dropdown + id: workflow + attributes: + label: Workflow area + description: Pick the closest workflow area. + options: + - MCP server/tools + - CLI commands or parsers + - Bazel build/test/discovery + - Simulator workflows + - Physical device workflows + - UI automation, screenshots, video, logs, or deep links + - LLDB debugging + - macOS, tvOS, watchOS, or visionOS workflows + - Swift Package Manager + - Daemon, session defaults, config, doctor, or setup + - Project scaffolding + - CI, release, packaging, or dependencies + - Docs, examples, or agent skills + - Other + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Problem + description: What are you trying to do that XcodeBazelMCP does not support well today? + placeholder: I want to ... + validations: + required: true + + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: Describe the command, MCP tool, workflow, output, or API shape you want. + placeholder: Add a tool/command that ... + validations: + required: true + + - type: textarea + id: examples + attributes: + label: Example usage + description: Show what the UX should look like when possible. + render: sh + placeholder: xcodebazelmcp ... + + - type: checkboxes + id: impact + attributes: + label: Compatibility impact + description: Check anything this proposal would likely affect. + options: + - label: Adds, removes, or renames MCP tools + - label: Changes CLI flags, command output, exit codes, or streaming behavior + - label: Changes config files, environment variables, defaults, or profiles + - label: Changes generated project scaffolding + - label: Changes package contents, dependencies, Node support, or release behavior + - label: Requires updates to docs, README, manifests, schemas, or skills + + - type: textarea + id: environment + attributes: + label: Environment or target context + description: Include details that make the request easier to evaluate. + value: | + - Platform: simulator / device / macOS / tvOS / watchOS / visionOS / SwiftPM + - Bazel target shape: + - Xcode or Apple platform version: + - MCP client: + + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: What workaround or design have you considered? + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..8baaa86 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,55 @@ +## Summary + + + +- + +## Scope + + + +- [ ] MCP server/tools +- [ ] CLI commands or parsers +- [ ] Bazel build/test/discovery +- [ ] Simulator workflows +- [ ] Physical device workflows +- [ ] UI automation, screenshots, video, logs, or deep links +- [ ] LLDB debugging +- [ ] macOS, tvOS, watchOS, or visionOS workflows +- [ ] Swift Package Manager +- [ ] Daemon, session defaults, config, doctor, or setup +- [ ] Project scaffolding +- [ ] Docs, examples, or agent skills +- [ ] CI, release, packaging, or dependencies + +## Validation + + + +- [ ] `npm run lint` +- [ ] `npm run typecheck` +- [ ] `npm test` +- [ ] `npm run build` +- [ ] `npx vitest --run --coverage` +- [ ] Manual MCP validation with Cursor or another MCP client +- [ ] Manual CLI validation with `xcodebazelmcp ...` +- [ ] Bazel workspace validation against a real Apple target +- [ ] Simulator validation +- [ ] Physical device validation + +## Compatibility + + + +- [ ] Adds, removes, or renames MCP tools +- [ ] Changes CLI flags, command output, exit codes, or streaming behavior +- [ ] Changes config files, environment variables, defaults, or profiles +- [ ] Changes generated project scaffolding +- [ ] Changes package contents, dependencies, Node support, or release behavior +- [ ] Requires updates to docs, README, manifests, schemas, or skills +- [ ] No compatibility impact + +## Notes For Reviewers + + +