Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/supported-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ You can enable expanded workflows (`new`, `continue`, `ff`, `verify`, `sync`, `b
| Tool (ID) | Skills path pattern | Command path pattern |
|-----------|---------------------|----------------------|
| Amazon Q Developer (`amazon-q`) | `.amazonq/skills/openspec-*/SKILL.md` | `.amazonq/prompts/opsx-<id>.md` |
| Antigravity (`antigravity`) | `.agent/skills/openspec-*/SKILL.md` | `.agent/workflows/opsx-<id>.md` |
| Antigravity (`antigravity`) | `.agents/skills/openspec-*/SKILL.md` | `.agents/workflows/opsx-<id>.md` |
| Auggie (`auggie`) | `.augment/skills/openspec-*/SKILL.md` | `.augment/commands/opsx-<id>.md` |
| Claude Code (`claude`) | `.claude/skills/openspec-*/SKILL.md` | `.claude/commands/opsx/<id>.md` |
| Cline (`cline`) | `.cline/skills/openspec-*/SKILL.md` | `.clinerules/workflows/opsx-<id>.md` |
Expand Down
4 changes: 2 additions & 2 deletions src/core/command-generation/adapters/antigravity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ import type { CommandContent, ToolCommandAdapter } from '../types.js';

/**
* Antigravity adapter for command generation.
* File path: .agent/workflows/opsx-<id>.md
* File path: .agents/workflows/opsx-<id>.md
* Frontmatter: description
*/
export const antigravityAdapter: ToolCommandAdapter = {
toolId: 'antigravity',

getFilePath(commandId: string): string {
return path.join('.agent', 'workflows', `opsx-${commandId}.md`);
return path.join('.agents', 'workflows', `opsx-${commandId}.md`);
},

formatFile(content: CommandContent): string {
Expand Down
2 changes: 1 addition & 1 deletion src/core/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export interface AIToolOption {

export const AI_TOOLS: AIToolOption[] = [
{ name: 'Amazon Q Developer', value: 'amazon-q', available: true, successLabel: 'Amazon Q Developer', skillsDir: '.amazonq' },
{ name: 'Antigravity', value: 'antigravity', available: true, successLabel: 'Antigravity', skillsDir: '.agent' },
{ name: 'Antigravity', value: 'antigravity', available: true, successLabel: 'Antigravity', skillsDir: '.agents' },
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Don't drop reads from legacy .agent/skills.

src/core/available-tools.ts, src/core/shared/tool-detection.ts, src/core/profile-sync-drift.ts, and src/core/migration.ts all treat tool.skillsDir as the only Antigravity skills location. After this change, repos that still only have .agent/skills/... will look unavailable/unconfigured until users manually migrate, even though Antigravity still supports that path. Keep .agents as the write target, but add a legacy read alias or migrate the old skills tree during update.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/core/config.ts` at line 22, The change replaced the Antigravity skillsDir
value with ".agents" but other modules (available-tools.ts,
shared/tool-detection.ts, profile-sync-drift.ts, migration.ts) assume
tool.skillsDir is the only path, so legacy repos under ".agent/skills" will
appear missing; update those code paths to treat ".agent/skills" as a legacy
read-only alias (or perform an automatic one-time migrate) when resolving skills
for the Antigravity tool: modify resolution logic that reads tool.skillsDir to
also check ".agent/skills" when tool.name === 'Antigravity' (or when tool.value
=== 'antigravity'), and add a migration path in migration.ts to move files from
".agent/skills" into ".agents" (or record that migration was performed) while
keeping writes targeted at ".agents".

{ name: 'Auggie (Augment CLI)', value: 'auggie', available: true, successLabel: 'Auggie', skillsDir: '.augment' },
{ name: 'Claude Code', value: 'claude', available: true, successLabel: 'Claude Code', skillsDir: '.claude' },
{ name: 'Cline', value: 'cline', available: true, successLabel: 'Cline', skillsDir: '.cline' },
Expand Down
2 changes: 1 addition & 1 deletion src/core/legacy-cleanup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export const LEGACY_SLASH_COMMAND_PATHS: Record<string, LegacySlashCommandPatter
'factory': { type: 'files', pattern: '.factory/commands/openspec-*.md' },
'opencode': { type: 'files', pattern: ['.opencode/command/opsx-*.md', '.opencode/command/openspec-*.md'] },
'continue': { type: 'files', pattern: '.continue/prompts/openspec-*.prompt' },
'antigravity': { type: 'files', pattern: '.agent/workflows/openspec-*.md' },
'antigravity': { type: 'files', pattern: ['.agents/workflows/openspec-*.md', '.agent/workflows/openspec-*.md', '.agent/workflows/opsx-*.md'] },
'iflow': { type: 'files', pattern: '.iflow/commands/openspec-*.md' },
'qwen': { type: 'files', pattern: '.qwen/commands/openspec-*.toml' },
'codex': { type: 'files', pattern: '.codex/prompts/openspec-*.md' },
Expand Down
2 changes: 1 addition & 1 deletion test/core/command-generation/adapters.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ describe('command-generation/adapters', () => {

it('should generate correct file path', () => {
const filePath = antigravityAdapter.getFilePath('explore');
expect(filePath).toBe(path.join('.agent', 'workflows', 'opsx-explore.md'));
expect(filePath).toBe(path.join('.agents', 'workflows', 'opsx-explore.md'));
});

it('should format file with description frontmatter', () => {
Expand Down
Loading