Skip to content

Commit fb2d554

Browse files
committed
Merge upstream/main - add selftest extension, Qwen md format, agy deprecation
Merged upstream changes: - fix: clean up command templates (specify, analyze) (github#1810) - fix: migrate Qwen Code CLI from TOML to Markdown format (github#1730) - fix(cli): deprecate explicit command support for agy (github#1808) - Add /selftest.extension core extension to test other extensions (github#1758) - feat(extensions): Quality of life improvements for RFC-aligned catalog (github#1776) Conflict resolution: - README.md: Kept our categorized agent table, added Jules agent - extensions/catalog.json: Added selftest extension, kept our extensions - src/specify_cli/__init__.py: Kept our extension management, added agy deprecation - src/specify_cli/extensions.py: Merged improvements, kept our qwen toml format - tests/test_ai_skills.py: Added upstream's qwen markdown tests
2 parents 61934db + 017e1c4 commit fb2d554

File tree

14 files changed

+1627
-309
lines changed

14 files changed

+1627
-309
lines changed

.github/workflows/scripts/create-release-packages.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ function Build-Variant {
385385
}
386386
'qwen' {
387387
$cmdDir = Join-Path $baseDir ".qwen/commands"
388-
Generate-Commands -Agent 'qwen' -Extension 'toml' -ArgFormat '{{args}}' -OutputDir $cmdDir -ScriptVariant $Script
388+
Generate-Commands -Agent 'qwen' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
389389
if (Test-Path "agent_templates/qwen/QWEN.md") {
390390
Copy-Item -Path "agent_templates/qwen/QWEN.md" -Destination (Join-Path $baseDir "QWEN.md")
391391
}
@@ -445,7 +445,7 @@ function Build-Variant {
445445
if (Test-Path $tabnineTemplate) { Copy-Item $tabnineTemplate (Join-Path $baseDir 'TABNINE.md') }
446446
}
447447
'agy' {
448-
$cmdDir = Join-Path $baseDir ".agent/workflows"
448+
$cmdDir = Join-Path $baseDir ".agent/commands"
449449
Generate-Commands -Agent 'agy' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
450450
}
451451
'vibe' {

.github/workflows/scripts/create-release-packages.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ build_variant() {
242242
generate_commands cursor-agent md "\$ARGUMENTS" "$base_dir/.cursor/commands" "$script" ;;
243243
qwen)
244244
mkdir -p "$base_dir/.qwen/commands"
245-
generate_commands qwen toml "{{args}}" "$base_dir/.qwen/commands" "$script"
245+
generate_commands qwen md "\$ARGUMENTS" "$base_dir/.qwen/commands" "$script"
246246
[[ -f agent_templates/qwen/QWEN.md ]] && cp agent_templates/qwen/QWEN.md "$base_dir/QWEN.md" ;;
247247
opencode)
248248
mkdir -p "$base_dir/.opencode/command"
@@ -282,8 +282,8 @@ build_variant() {
282282
mkdir -p "$base_dir/.kiro/prompts"
283283
generate_commands kiro-cli md "\$ARGUMENTS" "$base_dir/.kiro/prompts" "$script" ;;
284284
agy)
285-
mkdir -p "$base_dir/.agent/workflows"
286-
generate_commands agy md "\$ARGUMENTS" "$base_dir/.agent/workflows" "$script" ;;
285+
mkdir -p "$base_dir/.agent/commands"
286+
generate_commands agy md "\$ARGUMENTS" "$base_dir/.agent/commands" "$script" ;;
287287
bob)
288288
mkdir -p "$base_dir/.bob/commands"
289289
generate_commands bob md "\$ARGUMENTS" "$base_dir/.bob/commands" "$script" ;;

AGENTS.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Specify supports multiple AI agents by generating agent-specific command files a
4343
| **Gemini CLI** | `.gemini/commands/` | TOML | `gemini` | Google's Gemini CLI |
4444
| **GitHub Copilot** | `.github/agents/` | Markdown | N/A (IDE-based) | GitHub Copilot in VS Code |
4545
| **Cursor** | `.cursor/commands/` | Markdown | `cursor-agent` | Cursor CLI |
46-
| **Qwen Code** | `.qwen/commands/` | TOML | `qwen` | Alibaba's Qwen Code CLI |
46+
| **Qwen Code** | `.qwen/commands/` | Markdown | `qwen` | Alibaba's Qwen Code CLI |
4747
| **opencode** | `.opencode/command/` | Markdown | `opencode` | opencode CLI |
4848
| **Codex CLI** | `.codex/commands/` | Markdown | `codex` | Codex CLI |
4949
| **Windsurf** | `.windsurf/workflows/` | Markdown | N/A (IDE-based) | Windsurf IDE workflows |
@@ -96,7 +96,7 @@ This eliminates the need for special-case mappings throughout the codebase.
9696
- `folder`: Directory where agent-specific files are stored (relative to project root)
9797
- `commands_subdir`: Subdirectory name within the agent folder where command/prompt files are stored (default: `"commands"`)
9898
- Most agents use `"commands"` (e.g., `.claude/commands/`)
99-
- Some agents use alternative names: `"agents"` (copilot), `"workflows"` (windsurf, kilocode, agy), `"prompts"` (codex, kiro-cli), `"command"` (opencode - singular)
99+
- Some agents use alternative names: `"agents"` (copilot), `"workflows"` (windsurf, kilocode), `"prompts"` (codex, kiro-cli), `"command"` (opencode - singular)
100100
- This field enables `--ai-skills` to locate command templates correctly for skill generation
101101
- `install_url`: Installation documentation URL (set to `None` for IDE-based agents)
102102
- `requires_cli`: Whether the agent requires a CLI tool check during initialization
@@ -347,7 +347,7 @@ Work within integrated development environments:
347347

348348
### Markdown Format
349349

350-
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code
350+
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code, Qwen
351351

352352
**Standard format:**
353353

@@ -372,7 +372,7 @@ Command content with {SCRIPT} and $ARGUMENTS placeholders.
372372

373373
### TOML Format
374374

375-
Used by: Gemini, Qwen, Tabnine
375+
Used by: Gemini, Tabnine
376376

377377
```toml
378378
description = "Command description"

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -560,8 +560,9 @@ Quick start templates for rapid project bootstrapping.
560560
| [Kimi Code](https://code.kimi.com/) || Kimi Code CLI (Moonshot AI) |
561561
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) || Mistral Vibe |
562562
| [Roo Code](https://roocode.com/) || Roo Code IDE |
563-
| [Antigravity (agy)](https://antigravity.google/) || Antigravity agent |
563+
| [Antigravity (agy)](https://antigravity.google/) || Antigravity agent (Requires `--ai-skills`) |
564564
| [IBM Bob](https://www.ibm.com/products/bob) || IBM Bob IDE |
565+
| [Jules](https://jules.google.com/) || Google's Jules agent |
565566
| **Custom** | | |
566567
| Generic || Bring your own agent — use `--ai generic --ai-commands-dir <path>` for unsupported agents |
567568

@@ -805,7 +806,7 @@ specify init my-project --ai bob
805806
806807
807808
# Initialize with Antigravity support
808-
specify init my-project --ai agy
809+
specify init my-project --ai agy --ai-skills
809810
810811
# Initialize with an unsupported agent (generic / bring your own agent)
811812
specify init my-project --ai generic --ai-commands-dir .myagent/commands/

0 commit comments

Comments
 (0)