Skip to content

feat: add Firebender integration (Android Studio / IntelliJ)#3077

Open
jawwad-ali wants to merge 1 commit into
github:mainfrom
jawwad-ali:feat/1548-firebender-integration
Open

feat: add Firebender integration (Android Studio / IntelliJ)#3077
jawwad-ali wants to merge 1 commit into
github:mainfrom
jawwad-ali:feat/1548-firebender-integration

Conversation

@jawwad-ali

Copy link
Copy Markdown
Contributor

Description

Closes #1548 — adds Firebender (AI coding agent for Android Studio / IntelliJ) as a built-in integration. A maintainer invited this on the issue ("Open for your or anyone else contribution for this!").

Firebender reads project-local customization from a .firebender/ directory, verified against Firebender's docs:

  • Custom slash commands live in .firebender/commands/*.mdc (Markdown with optional YAML frontmatter) — "Command files use the .mdc extension".
  • Rules live in .firebender/rules/*.mdc.

So FirebenderIntegration is a standard MarkdownIntegration that:

  • installs the spec-kit command templates as .firebender/commands/speckit.*.mdc,
  • writes the managed context section into .firebender/rules/specify-rules.mdc (the existing generic .mdc handling adds the alwaysApply: true frontmatter, same as the Cursor .mdc path),
  • overrides command_filename() so the init-time commands also use .mdc (the extension Firebender requires — .md files are not recognized), keeping it consistent with registrar_config["extension"].

Follows the 6-step integrations/CONTRIBUTING.md checklist and mirrors recent agent additions (Hermes #2547, Kimi, Trae). Purely additive — no existing integration, CLI flag, output, or file format changes; AGENT_CONFIGS is auto-derived from the registry.

Files: new integrations/firebender/__init__.py + test; registry import/register; integrations/catalog.json entry; docs/reference/integrations.md row.

Heads-up: open agent-addition PRs #3063 (ZCode) and #2734 (Alquimia) also touch the alphabetical block in integrations/__init__.py and catalog.json; happy to rebase whichever lands first.

Testing

  • Tested locally with uv run specify --help (exit 0)
  • Ran existing tests with uv sync && uv run pytest
  • Tested with a sample project — specify init --here --integration firebender --script sh (and ps) scaffolds .firebender/commands/speckit.*.mdc + .firebender/rules/specify-rules.mdc (covered by the integration test's CLI inventory cases)

Details (Windows 11, Python 3.12.12):

  • uvx ruff check src/ — All checks passed
  • uv run pytest tests/integrations/test_integration_firebender.py20 passed (registration, config, setup/teardown roundtrip, context upsert/remove, .mdc command output, and full specify init file inventory for both sh and ps)
  • uv run pytest tests/integrations/test_registry.py tests/test_agent_config_consistency.py1136 passed (registry completeness + the multi-install-safe distinct-root/commands/context contracts for the new .firebender/ namespace)
  • npx markdownlint-cli2 docs/reference/integrations.md — 0 errors
  • Full suite uv run pytest — the only failures are the 14 pre-existing Windows os.symlink WinError 1314 privilege failures (unrelated, identical to clean main).

AI Disclosure

  • I did not use AI assistance for this contribution
  • I did use AI assistance (describe below)

Developed with Claude Code (Claude Opus 4.8) under my direction. AI helped research Firebender's documented file conventions (.firebender/commands/*.mdc, .firebender/rules/*.mdc), implement the integration mirroring the existing pattern, and run the verification above. I confirmed the .mdc command requirement against Firebender's official docs, verified the change is purely additive, and reviewed the full diff before submitting. I'll disclose if any review responses are AI-assisted as well.

Firebender (https://firebender.com/) is an AI coding agent for Android
Studio and IntelliJ. It reads project-local custom slash commands from
.firebender/commands/*.mdc and project rules from .firebender/rules/*.mdc.

Add a FirebenderIntegration (MarkdownIntegration) that installs the
speckit command templates as .mdc command files and writes the managed
context section into .firebender/rules/specify-rules.mdc. command_filename
is overridden so init-time commands also use the .mdc extension Firebender
requires. Register it in the integration registry, add the catalog entry
and docs row, and add an integration test covering the .mdc command output.

Closes github#1548

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new built-in integration for Firebender (Android Studio / IntelliJ) to Spec Kit’s integration registry, catalog, tests, and public documentation.

Changes:

  • Introduces FirebenderIntegration as a MarkdownIntegration that emits .mdc command files and manages rules in .firebender/rules/specify-rules.mdc.
  • Registers the new integration and adds coverage via a dedicated integration test.
  • Updates the built-in integrations catalog and the reference documentation to list Firebender.
Show a summary per file
File Description
src/specify_cli/integrations/firebender/__init__.py New Firebender integration using .firebender/ with .mdc command outputs.
src/specify_cli/integrations/__init__.py Registers FirebenderIntegration in the built-in integration registry.
tests/integrations/test_integration_firebender.py Adds integration tests tailored to Firebender’s .mdc command extension.
tests/integrations/test_registry.py Includes firebender in the expected registry keys list.
integrations/catalog.json Adds Firebender entry to the built-in integrations catalog.
docs/reference/integrations.md Documents Firebender in the supported integrations table.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 6/6 changed files
  • Comments generated: 2

Comment thread integrations/catalog.json
Comment on lines +105 to +113
"firebender": {
"id": "firebender",
"name": "Firebender",
"version": "1.0.0",
"description": "Firebender IDE integration for Android Studio / IntelliJ",
"author": "spec-kit-core",
"repository": "https://github.com/github/spec-kit",
"tags": ["ide"]
},
| [Codex CLI](https://github.com/openai/codex) | `codex` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `$speckit-<command>` |
| [Cursor](https://cursor.sh/) | `cursor-agent` | |
| [Devin for Terminal](https://cli.devin.ai/docs) | `devin` | Skills-based integration; installs skills into `.devin/skills/` and invokes them as `/speckit-<command>` |
| [Firebender](https://firebender.com/) | `firebender` | IDE-based agent for Android Studio / IntelliJ |
@mnriem

mnriem commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Please address Copilot feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Firebender (AI coding agent for Android Studio)

3 participants