feat: add native Cline integration#2508
Open
pedropalb wants to merge 2 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds first-class support for the Cline IDE agent integration, while generalizing command name formatting so integrations can control on-disk command naming (notably for hyphenated slash-command agents). Also updates hook invocation rendering and adjusts tests/docs accordingly.
Changes:
- Introduce
ClineIntegrationtargeting.clinerules/with hyphenated command filenames and invocations. - Update
CommandRegistrarto respect an integration-providedformat_namecallback for non-skill command file output names. - Render hyphenated invocations for Cline in hook execution and update tests/docs/catalog to include the new integration.
Show a summary per file
| File | Description |
|---|---|
| tests/test_extensions.py | Adds coverage for Cline-specific hook invocation rendering (/speckit-*). |
| tests/integrations/test_integration_subcommand.py | Normalizes CLI output assertions by stripping ANSI codes. |
| tests/integrations/test_integration_forge.py | Updates Forge expectations for hyphenated extension command filenames. |
| tests/integrations/test_integration_cline.py | Adds new test suite for Cline integration behavior and naming. |
| tests/integrations/test_cli.py | Strips ANSI codes before asserting on Rich CLI output. |
| src/specify_cli/integrations/cline/init.py | Implements the new Cline integration + command name formatter. |
| src/specify_cli/integrations/init.py | Registers Cline as a builtin integration. |
| src/specify_cli/extensions.py | Updates hook invocation rendering to emit /speckit-* for Cline projects. |
| src/specify_cli/agents.py | Applies format_name when computing non-skill on-disk command filenames. |
| integrations/catalog.json | Adds Cline metadata to the integrations catalog. |
| docs/reference/integrations.md | Documents Cline as a supported integration. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 11/11 changed files
- Comments generated: 3
2d0db2c to
03ba965
Compare
Comment on lines
402
to
+406
| """Compute the on-disk command or skill name for an agent.""" | ||
| if agent_config["extension"] != "/SKILL.md": | ||
| format_name = agent_config.get("format_name") | ||
| if format_name: | ||
| return format_name(cmd_name) |
|
|
||
| import os | ||
| import pytest | ||
| from pathlib import Path |
Comment on lines
+15
to
+23
| "cline": { | ||
| "id": "cline", | ||
| "name": "Cline", | ||
| "version": "1.0.0", | ||
| "description": "Cline IDE integration", | ||
| "author": "spec-kit-core", | ||
| "repository": "https://github.com/github/spec-kit", | ||
| "tags": ["ide"] | ||
| }, |
Collaborator
|
Please address Copilot feedback |
Standardize on using strip_ansi to clean CLI output before string assertions in test_cli.py and test_integration_subcommand.py. This prevents test failures caused by rich console formatting codes interfering with substring matching and parsing.
03ba965 to
d098c2d
Compare
Comment on lines
401
to
407
| ) -> str: | ||
| """Compute the on-disk command or skill name for an agent.""" | ||
| if agent_config["extension"] != "/SKILL.md": | ||
| format_name = agent_config.get("format_name") | ||
| if format_name: | ||
| return format_name(cmd_name) | ||
| return cmd_name |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a new integration for Cline (IDE-based agent).
Testing
uv run specify --helpuv sync && uv run pytestAI Disclosure
Code generated with Gemini CLI with little manual tunings.