Skip to content

feat: add support for rovodev#2539

Open
abeds0 wants to merge 3 commits into
github:mainfrom
abeds0:rovodev-acli-integration
Open

feat: add support for rovodev#2539
abeds0 wants to merge 3 commits into
github:mainfrom
abeds0:rovodev-acli-integration

Conversation

@abeds0
Copy link
Copy Markdown

@abeds0 abeds0 commented May 13, 2026

Description

This adds support for the rovodev LLM agent

Testing

  • Tested locally with uv run specify --help
  • Ran existing tests with uv sync && uv run pytest
  • Tested with a sample project (if applicable)

AI Disclosure

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

To plumb and write the boilerplate code and review the changes. The approach is mine and the testing was done manually. I reviewed the code.

Test selection reasoning

Changed file Affects Test Why
src/specify_cli/__init__.py specify init, specify check T1 check_tool() gains rovodev→acli resolution branch
src/specify_cli/integrations/__init__.py specify init --integration rovodev T1 Registers RovodevIntegration in the global registry
src/specify_cli/integrations/rovodev/__init__.py specify init --integration rovodev T1,T3 New integration — scaffolds skills, prompts, manifest
src/specify_cli/workflows/steps/command/__init__.py workflow dispatch CLI detection change; covered by automated tests
src/specify_cli/workflows/steps/prompt/__init__.py workflow dispatch CLI detection change; covered by automated tests
integrations/catalog.json none (metadata) Catalog entry only
docs/reference/integrations.md none (docs) Documentation table row
pyproject.toml packaging T1 Bundling change — verify specify init includes rovodev assets
CHANGELOG.md none Release notes
tests/integrations/test_integration_rovodev.py none (test-only) New dedicated integration tests (16 tests)
tests/integrations/test_registry.py none (test-only) Adds "rovodev" to ALL_INTEGRATION_KEYS
tests/test_agent_config_consistency.py none (test-only) Adds 3 rovodev consistency checks
tests/test_check_tool.py none (test-only) Adds test_rovodev_uses_acli_executable
tests/test_workflows.py none (test-only) Adds rovodev dispatch tests for CommandStep and PromptStep

Required tests

  • T1: specify init <temp-dir>/speckit-test --integration rovodev — verify scaffolding creates .rovodev/skills/speckit-*/SKILL.md, .rovodev/prompts/*.prompt.md, .rovodev/prompts.yml, and AGENTS.md context section
  • T2: /speckit.specify — minimum required test per CONTRIBUTING.md for init/scaffolding changes; run in the T1 scaffolded project (prerequisite: T1)
  • T3: speckit.analyze, speckit.checklist, speckit.clarify, speckit.constitution, speckit.implement, speckit.plan, speckit.specify, speckit.tasks - check the prompts and skills are installed correctly.

Manual test results

Agent: [rovodev cli] | OS/Shell: [ macOS/fish]

Command tested Notes
speckit.analyze Would you like me to suggest concrete remediation edits for the top issues ...
speckit.checklist File: specs/002-agent-integration-test/checklists/api-security.md
speckit.clarify Questions answered: 3 Updated spec: specs/002-agent-integration-test/spec.md Sections touched: Clarifications, User Story 2, Functional Requirements, Success Criteria
speckit.constitution ran and created the file memory/constitution.md
speckit.implement started implementation
speckit.plan Plan phase complete for the new feature. Branch: 002-agent-integration-test (git not initialized) Plan: specs/002-agent-integration-test/plan.md Artifacts: specs/002-agent-integration-test/research.md specs/002-agent-integration-test/data-model.md specs/002-agent-integration-test/quickstart.md specs/002-agent-integration-test/contracts/test-harness-contract.md
speckit.specify Feature directory: specs/002-agent-integration-test Spec file: specs/002-agent-integration-test/spec.md Quality checklist: specs/002-agent-integration-test/checklists/requirements.md (all checks passed)
speckit.tasks Tasks file: specs/002-agent-integration-test/tasks.md
speckit.taskstoissues don’t have a GitHub issue‑creation tool available in this environment.

Comment thread src/specify_cli/__init__.py
@abeds0 abeds0 marked this pull request as ready for review May 13, 2026 09:52
@abeds0 abeds0 requested a review from mnriem as a code owner May 13, 2026 09:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 Atlassian Rovo Dev (invoked via acli rovodev), including scaffolding and workflow dispatch support so specify init --integration rovodev and workflow steps can run commands/prompts through the agent.

Changes:

  • Introduces RovodevIntegration that scaffolds .rovodev/skills/, generates .rovodev/prompts/*.prompt.md wrappers, and merges/creates .rovodev/prompts.yml.
  • Updates workflow command and prompt steps to detect CLIs whose executable differs from the integration key (e.g., rovodevacli).
  • Adds documentation, catalog metadata, and comprehensive tests for rovodev setup + dispatch + consistency checks.
Show a summary per file
File Description
src/specify_cli/integrations/rovodev/__init__.py Adds the new RovoDev integration implementation (skills + prompt wrappers + prompts manifest + CLI args).
src/specify_cli/integrations/__init__.py Registers RovodevIntegration in the built-in integration registry.
src/specify_cli/__init__.py Updates tool detection so check_tool("rovodev") resolves via acli.
src/specify_cli/workflows/steps/command/__init__.py Updates CLI presence checks to fall back to the executable from build_exec_args().
src/specify_cli/workflows/steps/prompt/__init__.py Same CLI presence check update for prompt dispatch.
integrations/catalog.json Adds rovodev catalog entry and updates updated_at.
docs/reference/integrations.md Documents the new rovodev integration behavior.
tests/integrations/test_integration_rovodev.py New dedicated tests for rovodev scaffolding, prompts.yml merge behavior, and init integration output.
tests/integrations/test_registry.py Adds rovodev to the global integration key list used by registry tests.
tests/test_agent_config_consistency.py Adds consistency assertions ensuring rovodev appears across runtime config surfaces.
tests/test_check_tool.py Adds test verifying rovodev detection uses acli.
tests/test_workflows.py Adds workflow dispatch tests validating rovodev is dispatchable via acli.

Copilot's findings

Tip

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

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

Comment on lines +134 to 138
# Check if the CLI tool is actually installed.
# Try the integration key first (covers most agents), then fall back
# to exec_args[0] for agents whose executable differs (e.g. rovodev → acli).
if not (shutil.which(impl.key) or shutil.which(exec_args[0])):
return None
Comment on lines +121 to 125
# Check if the CLI tool is actually installed.
# Try the integration key first (covers most agents), then fall back
# to exec_args[0] for agents whose executable differs (e.g. rovodev → acli).
if not (shutil.which(impl.key) or shutil.which(exec_args[0])):
return None
Copy link
Copy Markdown
Collaborator

@mnriem mnriem left a comment

Choose a reason for hiding this comment

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

Please limit the changes to the integration and please do not include unrelated changes. Thanks!

@abeds0
Copy link
Copy Markdown
Author

abeds0 commented May 14, 2026

Please limit the changes to the integration and please do not include unrelated changes. Thanks!

Is the ask to remove the changes to src/specify_cli/workflows/steps/prompt/init.py and Comment thread
src/specify_cli/workflows/steps/command/init.py ?

This integration uses a command that is different from the name, ie. its invoked as acli rovodev . are you happy with that ? for me the basic plumbing is what I'm after. I could also follow-up with a PR to handle the situation where the binary name is different from the integration name / key, let me know what works for you

@mnriem
Copy link
Copy Markdown
Collaborator

mnriem commented May 14, 2026

Fair point. We'll follow it up with another issue/PR to untangle this properly, but we'll proceed with the process for your PR. Please address the 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.

3 participants