Skip to content

Commit a01ac58

Browse files
committed
chore: merge upstream v0.8.4.dev0 and bump to v0.8.4+adlc1
Upstream commits: - da1bf02 feat: add Squad Bridge extension to community catalog (github#2417) - 7cedd85 chore: release 0.8.3, begin 0.8.4.dev0 development (github#2418) - 2cb848f Add Work IQ extension to community catalog (github#2415) - 237e918 feat(integrations): add Devin for Terminal skills-based integration (github#2364) Conflicts resolved: - pyproject.toml: kept fork name/version/description - src/specify_cli/__init__.py: accepted upstream copilot/devin skill modes - README.md: accepted upstream community catalog additions
2 parents 7d458a7 + da1bf02 commit a01ac58

11 files changed

Lines changed: 279 additions & 16 deletions

File tree

.github/ISSUE_TEMPLATE/agent_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ body:
88
value: |
99
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
1010
11-
**Currently supported agents**: Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, opencode, Codex CLI, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy, Qoder CLI, Kiro CLI, Amp, SHAI, Tabnine CLI, Antigravity, IBM Bob, Mistral Vibe, Kimi Code, Trae, Pi Coding Agent, iFlow CLI
11+
**Currently supported agents**: Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, opencode, Codex CLI, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy, Qoder CLI, Kiro CLI, Amp, SHAI, Tabnine CLI, Antigravity, IBM Bob, Mistral Vibe, Kimi Code, Trae, Pi Coding Agent, iFlow CLI, Devin for Terminal
1212
1313
- type: input
1414
id: agent-name

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@ All notable changes to the Specify CLI and templates are documented here.
44

55
# [Unreleased]
66

7+
# [0.8.4+adlc1] - 2026-04-30
8+
9+
### Changed
10+
11+
- **Upstream merge**: Synced with github/spec-kit v0.8.3 → v0.8.4.dev0 (4 commits)
12+
- `da1bf02` feat: add Squad Bridge extension to community catalog (#2417)
13+
- `7cedd85` chore: release 0.8.3, begin 0.8.4.dev0 development (#2418)
14+
- `2cb848f` Add Work IQ extension to community catalog (#2415)
15+
- `237e918` feat(integrations): add Devin for Terminal skills-based integration (#2364)
16+
17+
### Added
18+
19+
- **Devin for Terminal**: New skills-based integration from upstream (`.devin/skills/`)
20+
721
# [0.8.3+adlc3] - 2026-04-30
822

923
### Fixed
@@ -1412,6 +1426,21 @@ This release migrates fork-specific customizations to a preset system to reduce
14121426

14131427
The following entries are from the upstream spec-kit project and are included for reference.
14141428

1429+
## [0.8.3] - 2026-04-29
1430+
1431+
### Changed
1432+
1433+
- Add Work IQ extension to community catalog (#2415)
1434+
- feat(integrations): add Devin for Terminal skills-based integration (#2364)
1435+
- fix: include --from git+... in upgrade hint to avoid PyPI squat package (#2411)
1436+
- fix: dispatch opencode commands via run (#2410)
1437+
- feat: add catalog discovery CLI commands (#2360)
1438+
- update security review extension catalog to v1.3.0 (#2374)
1439+
- chore(catalog): bump v-model extension to v0.6.0 (#2399)
1440+
- feat: add threatmodel extension to community catalog (#2369)
1441+
- Add isaqb-architecture-governance to community catalog (#2385)
1442+
- chore: release 0.8.2, begin 0.8.3.dev0 development (#2397)
1443+
14151444
## [0.8.2] - 2026-04-28
14161445

14171446
### Changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ The following community-contributed extensions are available in [`catalog.commun
281281
| Spec Refine | Update specs in-place, propagate changes to plan and tasks, and diff impact across artifacts | `process` | Read+Write | [spec-kit-refine](https://github.com/Quratulain-bilal/spec-kit-refine) |
282282
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | `docs` | Read+Write | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
283283
| SpecTest | Auto-generate test scaffolds from spec criteria, map coverage, and find untested requirements | `code` | Read+Write | [spec-kit-spectest](https://github.com/Quratulain-bilal/spec-kit-spectest) |
284+
| Squad Bridge | Bootstrap and synchronize a Squad agent team from your Speckit spec and tasks | `process` | Read+Write | [spec-kit-squad](https://github.com/jwill824/spec-kit-squad) |
284285
| Staff Review Extension | Staff-engineer-level code review that validates implementation against spec, checks security, performance, and test coverage | `code` | Read-only | [spec-kit-staff-review](https://github.com/arunt14/spec-kit-staff-review) |
285286
| Status Report | Project status, feature progress, and next-action recommendations for spec-driven workflows | `visibility` | Read-only | [Open-Agent-Tools/spec-kit-status](https://github.com/Open-Agent-Tools/spec-kit-status) |
286287
| Superpowers Bridge | Orchestrates obra/superpowers skills within the spec-kit SDD workflow across the full lifecycle (clarification, TDD, review, verification, critique, debugging, branch completion) | `process` | Read+Write | [superpowers-bridge](https://github.com/RbBtSn0w/spec-kit-extensions/tree/main/superpowers-bridge) |
@@ -289,6 +290,8 @@ The following community-contributed extensions are available in [`catalog.commun
289290
| Verify Extension | Post-implementation quality gate that validates implemented code against specification artifacts | `code` | Read-only | [spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify) |
290291
| Verify Tasks Extension | Detect phantom completions: tasks marked [X] in tasks.md with no real implementation | `code` | Read-only | [spec-kit-verify-tasks](https://github.com/datastone-inc/spec-kit-verify-tasks) |
291292
| What-if Analysis | Preview the downstream impact (complexity, effort, tasks, risks) of requirement changes before committing to them | `visibility` | Read-only | [spec-kit-whatif](https://github.com/DevAbdullah90/spec-kit-whatif) |
293+
| Wireframe Visual Feedback Loop | SVG wireframe generation, review, and sign-off for spec-driven development. Approved wireframes become spec constraints honored by /speckit.plan, /speckit.tasks, and /speckit.implement | `visibility` | Read+Write | [spec-kit-extension-wireframe](https://github.com/TortoiseWolfe/spec-kit-extension-wireframe) |
294+
| Work IQ | Integrate Microsoft 365 organizational knowledge into spec-driven development workflows | `integration` | Read-only | [spec-kit-workiq](https://github.com/sakitA/spec-kit-workiq) |
292295
| Worktree Isolation | Spawn isolated git worktrees for parallel feature development without checkout switching | `process` | Read+Write | [spec-kit-worktree](https://github.com/Quratulain-bilal/spec-kit-worktree) |
293296
| Worktrees | Default-on worktree isolation for parallel agents — sibling or nested layout | `process` | Read+Write | [spec-kit-worktree-parallel](https://github.com/dango85/spec-kit-worktree-parallel) |
294297

docs/reference/integrations.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
1313
| [CodeBuddy CLI](https://www.codebuddy.ai/cli) | `codebuddy` | |
1414
| [Codex CLI](https://github.com/openai/codex) | `codex` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `$speckit-<command>` |
1515
| [Cursor](https://cursor.sh/) | `cursor-agent` | |
16+
| [Devin for Terminal](https://cli.devin.ai/docs) | `devin` | Skills-based integration; installs skills into `.devin/skills/` and invokes them as `/speckit-<command>` |
1617
| [Forge](https://forgecode.dev/) | `forge` | |
1718
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | |
1819
| [GitHub Copilot](https://code.visualstudio.com/) | `copilot` | |

extensions/catalog.community.json

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2160,6 +2160,45 @@
21602160
"created_at": "2026-04-10T16:00:00Z",
21612161
"updated_at": "2026-04-10T16:00:00Z"
21622162
},
2163+
"squad": {
2164+
"name": "Squad Bridge",
2165+
"id": "squad",
2166+
"description": "Bootstrap and synchronize a Squad agent team from your Spec Kit spec and tasks.",
2167+
"author": "jwill824",
2168+
"version": "1.1.0",
2169+
"download_url": "https://github.com/jwill824/spec-kit-squad/archive/refs/tags/v1.1.0.zip",
2170+
"repository": "https://github.com/jwill824/spec-kit-squad",
2171+
"homepage": "https://github.com/jwill824/spec-kit-squad",
2172+
"documentation": "https://github.com/jwill824/spec-kit-squad/blob/main/README.md",
2173+
"changelog": "https://github.com/jwill824/spec-kit-squad/blob/main/docs/CHANGELOG.md",
2174+
"license": "MIT",
2175+
"requires": {
2176+
"speckit_version": ">=0.1.0",
2177+
"tools": [
2178+
{
2179+
"name": "@bradygaster/squad-cli",
2180+
"version": ">=0.1.0",
2181+
"required": true
2182+
}
2183+
]
2184+
},
2185+
"provides": {
2186+
"commands": 4,
2187+
"hooks": 2
2188+
},
2189+
"tags": [
2190+
"multi-agent",
2191+
"agents",
2192+
"orchestration",
2193+
"process",
2194+
"integration"
2195+
],
2196+
"verified": false,
2197+
"downloads": 0,
2198+
"stars": 0,
2199+
"created_at": "2026-04-29T00:00:00Z",
2200+
"updated_at": "2026-04-29T00:00:00Z"
2201+
},
21632202
"staff-review": {
21642203
"name": "Staff Review Extension",
21652204
"id": "staff-review",
@@ -2613,6 +2652,50 @@
26132652
"created_at": "2026-04-22T00:00:00Z",
26142653
"updated_at": "2026-04-22T00:00:00Z"
26152654
},
2655+
"workiq": {
2656+
"name": "Work IQ",
2657+
"id": "workiq",
2658+
"description": "Integrate Microsoft 365 organizational knowledge into spec-driven development workflows",
2659+
"author": "sakitA",
2660+
"version": "1.0.0",
2661+
"download_url": "https://github.com/sakitA/spec-kit-workiq/archive/refs/tags/v1.0.0.zip",
2662+
"repository": "https://github.com/sakitA/spec-kit-workiq",
2663+
"homepage": "https://github.com/sakitA/spec-kit-workiq",
2664+
"documentation": "https://github.com/sakitA/spec-kit-workiq/blob/main/README.md",
2665+
"changelog": "https://github.com/sakitA/spec-kit-workiq/blob/main/CHANGELOG.md",
2666+
"license": "MIT",
2667+
"requires": {
2668+
"speckit_version": ">=0.1.0",
2669+
"tools": [
2670+
{
2671+
"name": "workiq",
2672+
"version": ">=1.0.0",
2673+
"required": true
2674+
},
2675+
{
2676+
"name": "node",
2677+
"version": ">=18.0.0",
2678+
"required": true
2679+
}
2680+
]
2681+
},
2682+
"provides": {
2683+
"commands": 4,
2684+
"hooks": 2
2685+
},
2686+
"tags": [
2687+
"microsoft-365",
2688+
"work-iq",
2689+
"context",
2690+
"integration",
2691+
"productivity"
2692+
],
2693+
"verified": false,
2694+
"downloads": 0,
2695+
"stars": 0,
2696+
"created_at": "2026-04-29T00:00:00Z",
2697+
"updated_at": "2026-04-29T00:00:00Z"
2698+
},
26162699
"worktree": {
26172700
"name": "Worktree Isolation",
26182701
"id": "worktree",

integrations/catalog.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema_version": "1.0",
3-
"updated_at": "2026-04-08T00:00:00Z",
3+
"updated_at": "2026-04-28T00:00:00Z",
44
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/integrations/catalog.json",
55
"integrations": {
66
"claude": {
@@ -66,6 +66,15 @@
6666
"repository": "https://github.com/github/spec-kit",
6767
"tags": ["cli", "skills"]
6868
},
69+
"devin": {
70+
"id": "devin",
71+
"name": "Devin for Terminal",
72+
"version": "1.0.0",
73+
"description": "Devin for Terminal CLI skills-based integration",
74+
"author": "spec-kit-core",
75+
"repository": "https://github.com/github/spec-kit",
76+
"tags": ["cli", "skills"]
77+
},
6978
"qwen": {
7079
"id": "qwen",
7180
"name": "Qwen Code",

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "agentic-sdlc-specify-cli"
3-
version = "0.8.3+adlc3"
3+
version = "0.8.4+adlc1"
44
description = "Specify CLI (tikalk fork). Agentic SDLC toolkit for Spec-Driven Development with pre-installed extensions and AI integrations."
55
requires-python = ">=3.11"
66
dependencies = [

src/specify_cli/__init__.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2118,7 +2118,7 @@ def init(
21182118
step_num = 2
21192119

21202120
# Determine skill display mode for the next-steps panel.
2121-
# Skills integrations (codex, kimi, agy, trae, cursor-agent) should show skill invocation syntax.
2121+
# Skills integrations (codex, claude, kimi, agy, trae, cursor-agent, copilot, devin) should show skill invocation syntax.
21222122
from .integrations.base import SkillsIntegration as _SkillsInt
21232123

21242124
_is_skills_integration = isinstance(resolved_integration, _SkillsInt)
@@ -2130,17 +2130,10 @@ def init(
21302130
kimi_skill_mode = selected_ai == "kimi"
21312131
agy_skill_mode = selected_ai == "agy" and _is_skills_integration
21322132
trae_skill_mode = selected_ai == "trae"
2133-
cursor_agent_skill_mode = selected_ai == "cursor-agent" and (
2134-
ai_skills or _is_skills_integration
2135-
)
2136-
native_skill_mode = (
2137-
codex_skill_mode
2138-
or claude_skill_mode
2139-
or kimi_skill_mode
2140-
or agy_skill_mode
2141-
or trae_skill_mode
2142-
or cursor_agent_skill_mode
2143-
)
2133+
cursor_agent_skill_mode = selected_ai == "cursor-agent" and (ai_skills or _is_skills_integration)
2134+
copilot_skill_mode = selected_ai == "copilot" and _is_skills_integration
2135+
devin_skill_mode = selected_ai == "devin"
2136+
native_skill_mode = codex_skill_mode or claude_skill_mode or kimi_skill_mode or agy_skill_mode or trae_skill_mode or cursor_agent_skill_mode or copilot_skill_mode or devin_skill_mode
21442137

21452138
if codex_skill_mode and not ai_skills:
21462139
# Integration path installed skills; show the helpful notice
@@ -2158,6 +2151,9 @@ def init(
21582151
f"{step_num}. Start Cursor Agent in this project directory; spec-kit skills were installed to [cyan].cursor/skills[/cyan]"
21592152
)
21602153
step_num += 1
2154+
if devin_skill_mode:
2155+
steps_lines.append(f"{step_num}. Start Devin in this project directory; spec-kit skills were installed to [cyan].devin/skills[/cyan]")
2156+
step_num += 1
21612157
usage_label = "skills" if native_skill_mode else "slash commands"
21622158

21632159
def _display_cmd(name: str) -> str:
@@ -2167,7 +2163,7 @@ def _display_cmd(name: str) -> str:
21672163
return f"/speckit-{name}"
21682164
if kimi_skill_mode:
21692165
return f"/skill:speckit-{name}"
2170-
if cursor_agent_skill_mode:
2166+
if cursor_agent_skill_mode or copilot_skill_mode or devin_skill_mode:
21712167
return f"/speckit-{name}"
21722168
# Fork default: use "spec." prefix instead of "speckit."
21732169
return f"/spec.{name}"

src/specify_cli/integrations/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ def _register_builtins() -> None:
5656
from .codex import CodexIntegration
5757
from .copilot import CopilotIntegration
5858
from .cursor_agent import CursorAgentIntegration
59+
from .devin import DevinIntegration
5960
from .forge import ForgeIntegration
6061
from .gemini import GeminiIntegration
6162
from .generic import GenericIntegration
@@ -86,6 +87,7 @@ def _register_builtins() -> None:
8687
_register(CodexIntegration())
8788
_register(CopilotIntegration())
8889
_register(CursorAgentIntegration())
90+
_register(DevinIntegration())
8991
_register(ForgeIntegration())
9092
_register(GeminiIntegration())
9193
_register(GenericIntegration())
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
"""Devin for Terminal integration — skills-based agent.
2+
3+
Devin uses the ``.devin/skills/speckit-<name>/SKILL.md`` layout and
4+
reads project context from ``AGENTS.md`` at the repo root. The CLI
5+
binary is ``devin`` and skills are invoked via ``/<name>`` inside an
6+
interactive ``devin`` session.
7+
8+
See: https://cli.devin.ai/docs/extensibility/skills/overview
9+
"""
10+
11+
from __future__ import annotations
12+
13+
from ..base import IntegrationOption, SkillsIntegration
14+
15+
16+
class DevinIntegration(SkillsIntegration):
17+
"""Integration for Cognition AI's Devin for Terminal."""
18+
19+
key = "devin"
20+
config = {
21+
"name": "Devin for Terminal",
22+
"folder": ".devin/",
23+
"commands_subdir": "skills",
24+
"install_url": "https://cli.devin.ai/docs",
25+
"requires_cli": True,
26+
}
27+
registrar_config = {
28+
"dir": ".devin/skills",
29+
"format": "markdown",
30+
"args": "$ARGUMENTS",
31+
"extension": "/SKILL.md",
32+
}
33+
context_file = "AGENTS.md"
34+
35+
def build_exec_args(
36+
self,
37+
prompt: str,
38+
*,
39+
model: str | None = None,
40+
output_json: bool = True,
41+
) -> list[str] | None:
42+
"""Build non-interactive CLI args for Devin for Terminal.
43+
44+
Devin supports ``devin -p <prompt>`` for single-turn execution
45+
and ``--model`` for model selection, but its CLI has no flag
46+
for structured JSON output. When ``output_json`` is requested,
47+
Devin is still dispatched normally and returns plain-text
48+
stdout instead of structured JSON. ``requires_cli=True`` is
49+
kept on the integration for tool detection.
50+
"""
51+
args = [self.key, "-p", prompt]
52+
if model:
53+
args.extend(["--model", model])
54+
return args
55+
56+
@classmethod
57+
def options(cls) -> list[IntegrationOption]:
58+
return [
59+
IntegrationOption(
60+
"--skills",
61+
is_flag=True,
62+
default=True,
63+
help="Install as agent skills (default for Devin)",
64+
),
65+
]

0 commit comments

Comments
 (0)