feat(docker-agent): add Docker Agent integration - #4302
Conversation
Support both Docker Agent command forms and optional agent configuration through the integration environment variable. Register the skills-based integration and document its installation layout. Assisted-by: OpenAI ChatGPT (model: unknown, autonomous) Signed-off-by: Alexandr Zaytsev <alexandr.zaytsev@flant.com>
There was a problem hiding this comment.
Pull request overview
Adds Docker Agent as a skills-based integration with workflow dispatch support.
Changes:
- Registers Docker Agent and adds catalog/reference documentation.
- Implements CLI selection and execution arguments.
- Adds metadata and dispatch tests.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
src/specify_cli/integrations/docker_agent/__init__.py |
Implements the integration. |
src/specify_cli/integrations/__init__.py |
Registers Docker Agent. |
tests/integrations/test_integration_docker_agent.py |
Adds integration tests. |
integrations/catalog.json |
Adds the catalog entry. |
docs/reference/integrations.md |
Documents usage. |
AGENTS.md |
Updates the architecture example. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Add skills-based Docker Agent support using the shared `.agents/skills` layout, zero-config workflow dispatch, and automatic selection between `docker-agent` and `docker agent`. Keep co-installation opt-in because the shared skill manifests are not independently owned. Document Docker Agent setup and remove inert hook metadata; Docker Agent hooks remain configured in the agent-owned YAML file. Expand integration coverage with shared skills lifecycle tests and dispatch scenarios. Assisted-by: OpenAI ChatGPT (model: GPT-5.6 Luna, autonomous) Signed-off-by: Alexandr Zaytsev <alexandr.zaytsev@flant.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Suppressed comments (2)
src/specify_cli/integrations/docker_agent/init.py:104
- The custom dispatch path also bypasses
SPECKIT_INTEGRATION_DOCKER_AGENT_EXTRA_ARGS. Custom dispatchers must apply the shared hook themselves, as demonstrated byCopilotIntegration.dispatch_commandand its regression test (tests/integrations/test_extra_args.py:429-454); otherwise operator flags work in neither Docker Agent workflow path.
exec_args = [*self._agent_command(), "--exec"]
src/specify_cli/integrations/docker_agent/init.py:29
- Plugin-only Docker Desktop installations cannot pass normal initialization:
specify initcallscheck_tool("docker-agent"), while the shared check only looks up that executable (commands/init.py:575-579,_utils.py:133-141). Thus the supporteddocker agentform is rejected unless users bypass validation. Extend the preflight to accept and verify eitherdocker-agentor thedocker agentplugin instead of requiring--ignore-agent-tools.
# Docker Agent is exposed as either `docker-agent` or `docker agent`.
# The init command documents --ignore-agent-tools for the plugin form,
# because the generic preflight check looks up the integration key.
"requires_cli": True,
Require the agent source through the shared extra-arguments environment variable and append workflow prompts positionally instead of dispatching zero-config requests through stdin. Assisted-by: OpenAI ChatGPT (model: unknown, autonomous) Signed-off-by: Alexandr Zaytsev <alexandr.zaytsev@flant.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (1)
src/specify_cli/integrations/docker_agent/init.py:27
- Plugin-only Docker Agent installs cannot pass
specify init:requires_cli=Truemakes init callcheck_tool("docker-agent"), whilecheck_toolonly probes that exact executable (src/specify_cli/_utils.py:133-141). This rejects the documenteddocker agentform even whendockeris installed, despite_agent_command()supporting it at runtime. Please add Docker Agent detection that accepts eitherdocker-agentordocker(with a regression test) rather than requiring every Docker Desktop user to bypass preflight with--ignore-agent-tools.
# Docker Agent is exposed as either `docker-agent` or `docker agent`.
# The init command documents --ignore-agent-tools for the plugin form,
# because the generic preflight check looks up the integration key.
"requires_cli": True,
Description
This PR implements #4301
Testing
uv run specify --helpuv sync && uv run pytestAI Disclosure
Assisted-by: OpenAI ChatGPT (model: GPT-5.6 Luna)