Skip to content
Draft
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@ plans/

# Local agent-generated config and skills
.agents/

# Test results
test-results/
32 changes: 32 additions & 0 deletions docs/editor-research/claude-code/2.1.193.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "claude-code"
editor_version: "2.1.193"
sources:
- "https://code.claude.com/docs/en/changelog"
---

## Changes affecting aix

- Claude Code 2.1.186 added a "Skills" section to the `/plugin` Installed tab and improved malformed `SKILL.md` YAML frontmatter handling.
- aix status: aix already manages skills via symlinks in `.claude/skills/`. The improved error handling in Claude Code improves the reliability of aix-installed skills.
- Claude Code 2.1.186 improved skill frontmatter: `display-name`, `default-enabled`, `fallback`, and `metadata.*` keys now accept kebab-case, snake_case, and camelCase.
- aix status: aix should update its skill metadata generation to prefer these standard naming conventions if it generates them.
- Claude Code 2.1.186: `!` bash commands now trigger Claude to respond to the output automatically; set `"respondToBashCommands": false` in `settings.json` to keep the previous context-only behavior.
- aix status: aix may want to expose this setting in its own configuration schema if it wants to provide cross-editor bash response control.
- Claude Code 2.1.183 added `attribution.sessionUrl` setting to omit the `claude.ai` session link from commits and PRs.
- aix status: aix could add this to its editor-specific settings mapping for Claude Code.
- Claude Code 2.1.178: Skills in nested `.claude/skills` directories now load when working on files there; on a name clash, the nested skill appears as `<dir>:<name>`.
- aix status: aix's discovery logic for project-level skills already uses `.claude/skills/`. This change allows for deeper nesting which aix might want to support or document.
- Claude Code 2.1.163: `Stop` and `SubagentStop` hooks can now return `hookSpecificOutput.additionalContext`.
- aix status: aix supports hooks but doesn't model the return types of hook scripts. No change needed to config generation.
- Claude Code 2.1.157: Plugins in `.claude/skills` directories are now automatically loaded, no marketplace required.
- aix status: This simplifies aix's skill/plugin installation strategy for Claude Code, as aix can just write to `.claude/skills/`.
- Claude Code 2.1.152: Added `MessageDisplay` hook event.
- aix status: implemented in `packages/schema/src/hooks.ts` and Claude Code strategy.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Claude Code support for hooks and skills.
- `packages/schema/src/hooks.ts` defines the current supported hook events.
- `packages/core/src/editors/strategies/claude-code/hooks.ts` handles the mapping of events.
19 changes: 19 additions & 0 deletions docs/editor-research/claude-code/2.1.195.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
research_performed_at: "2026-06-27T17:50:43-04:00"
editor_id: "claude-code"
editor_version: "2.1.195"
sources:
- "https://code.claude.com/docs/en/changelog"
---

## Changes affecting aix

- Claude Code 2.1.195: Maintenance release with performance improvements and minor bug fixes.
- aix status: No implementation changes needed. Existing support for hooks and skills remains functional.
- Claude Code 2.1.194: Fixed an issue where the /commands directory was not correctly prioritized over user-scope commands.
- aix status: aix handles command discovery via the OpenCode/Claude convention; no change needed as aix uses project-scoped paths.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Claude Code support.
- `packages/core/src/editors/strategies/claude-code/` implements the adapter.
25 changes: 25 additions & 0 deletions docs/editor-research/codex/0.142.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "codex"
editor_version: "0.142.2"
sources:
- "https://developers.openai.com/codex/changelog"
---

## Changes affecting aix

- Codex 0.142.2: MCP tools now use tool search by default when supported.
- aix status: This is an upstream change that improves the performance of aix-configured MCP servers.
- Codex 0.142.2: macOS authentication clients can honor system proxy, PAC, and WPAD settings.
- aix status: aix could add an option to enable `respect_system_proxy` in its Codex configuration.
- Codex 0.141.0: Added selected-plugin precedence and attribution to the MCP catalog.
- aix status: aix may need to update its plugin/MCP configuration logic if it wants to control precedence.
- Codex 0.141.0: Discover stdio MCP servers from selected executor plugins.
- aix status: This aligns with how aix manages plugins and MCP servers, providing more integration points.
- Codex 0.140.0 added permanent session deletion and `/import` for importing setup from Claude Code.
- aix status: The `/import` command specifically targets Claude Code, which is a key editor aix supports. This reinforces the need for aix to maintain cross-editor compatibility.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Codex support for rules, prompts, MCP, skills, and hooks.
- `packages/core/src/editors/strategies/codex/` implements Codex configuration.
17 changes: 17 additions & 0 deletions docs/editor-research/codex/0.142.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
research_performed_at: "2026-06-27T17:50:43-04:00"
editor_id: "codex"
editor_version: "0.142.3"
sources:
- "https://github.com/openai/codex/releases"
---

## Changes affecting aix

- Codex 0.142.3: Maintenance-only patch release with no user-facing changes since 0.142.2.
- aix status: No implementation changes needed.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Codex support.
- `packages/core/src/editors/strategies/codex/` implements the adapter.
27 changes: 27 additions & 0 deletions docs/editor-research/copilot/1.0.65.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "copilot"
editor_version: "1.0.65"
sources:
- "https://raw.githubusercontent.com/github/copilot-cli/main/changelog.md"
---

## Changes affecting aix

- Copilot 1.0.65 added a `copilot skill` subcommand to list, add, and remove skills from a file, URL, or directory.
- aix status: aix manages skills via files in `.github/skills/`. This new CLI command might be a target for aix to use or could provide a new way to discover skills.
- Copilot 1.0.64 added `/branch` as an alias for `/fork`, matching Claude Code's command naming.
- aix status: no change needed as aix uses its own naming.
- Copilot 1.0.64 introduced an experimental `--worktree` flag.
- aix status: aix could add support for worktree-based operations if it wants to provide a unified worktree management interface.
- Copilot 1.0.62: Plugins can now ship extensions.
- aix status: aix may need to update its plugin modeling if it wants to support this new capability.
- Copilot 1.0.51: status line can now be customized via shell scripts.
- aix status: aix could provide a way to configure the status line across editors that support it.
- Copilot 1.0.41: Added support for `~/.agents/skills/` as a personal skill discovery directory.
- aix status: `packages/schema/src/editor-support.ts` already reflects this for user-scope skills in some contexts, but should be verified for Copilot.

## Baseline evidence

- `packages/schema/src/editor-support.ts` defines Copilot support and paths.
- `packages/core/src/editors/strategies/copilot/` implements Copilot configuration.
23 changes: 23 additions & 0 deletions docs/editor-research/cursor/3.9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "cursor"
editor_version: "3.9"
sources:
- "https://cursor.com/changelog"
---

## Changes affecting aix

- Cursor 3.9 added a new Customize page for managing plugins, skills, MCPs, subagents, rules, commands, and hooks.
- aix status: aix's goal is to be the unified interface for these configurations. The fact that Cursor now has a central place for them reinforces the value of aix. aix should verify that its generated config files are correctly picked up by this new Customize page.
- Cursor 3.9: plugins, skills, and MCPs can now be managed at user, team, or workspace level.
- aix status: aix already supports project and user scopes. It might need to add support for a "team" scope if Cursor defines a specific file-based convention for it.
- Cursor 3.7 introduced Cloud subagents with `/in-cloud` and cloud environment setup.
- aix status: aix may want to add support for configuring cloud-specific agents or environments if they are backed by local files like `.cursor/environment.json`.
- Cursor 3.7 added `/automate` skill.
- aix status: similar to Claude Code's workflows, aix doesn't currently model editor-specific automation files, but could if they become standard.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Cursor support for rules, prompts, agents, MCP, skills, and hooks.
- `packages/core/src/editors/strategies/cursor/` contains the implementation for Cursor configuration.
26 changes: 26 additions & 0 deletions docs/editor-research/devin-desktop/3.3.18.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
research_performed_at: "2026-06-27T17:50:43-04:00"
editor_id: "devin-desktop"
editor_version: "3.3.18"
sources:
- "https://windsurf.com/changelog"
---

## Changes affecting aix

- Windsurf was rebranded to Devin Desktop starting with version 3.0.12.
- aix status: implemented. aix now supports `devin-desktop` as a first-class editor ID with its own adapter and icons.
- Devin Desktop 3.3.18: Subagents can now be configured with a default model.
- aix status: aix supports agent/subagent definitions and can map model fields if needed.
- Devin Desktop 3.3.18: Added an attribution option to the Devin Local config file.
- aix status: aix maps attribution settings to the relevant editor config files.
- Support for plural directory names (`agents/`, `skills/`, `commands/`).
- aix status: implemented. The OpenCode and Devin Desktop adapters now prioritize plural directory names during discovery and installation.
- Support for `.devinignore` file.
- aix status: aix could add support for generating or respecting `.devinignore` in its project management logic.

## Baseline evidence

- `packages/schema/src/editor-support.ts` includes the `devin-desktop` ID.
- `packages/core/src/editors/strategies/devin-desktop/` (DevinDesktopAdapter) implements the logic.
- `packages/site/src/lib/editor-support.ts` includes the Devin Desktop icon mapping.
25 changes: 25 additions & 0 deletions docs/editor-research/gemini/0.45.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "gemini"
editor_version: "0.45.0"
sources:
- "https://github.com/google-gemini/gemini-cli/blob/main/docs/changelogs/index.md"
---

## Changes affecting aix

- Gemini CLI 0.44.0: Added native support for Sublime Text and Emacs Client.
- aix status: needs follow-up to add `sublime` and `emacs` to the supported editor names if aix wants to provide unified config for these new Gemini CLI targets.
- Gemini CLI 0.43.0: Added the ability to export sessions to files and import them.
- aix status: no direct impact on config generation, but useful for session management.
- Gemini CLI 0.40.0: Transitions to a prompt-driven, four-tier memory management system.
- aix status: aix may need to update its memory configuration logic for Gemini CLI to align with this new system.
- Gemini CLI 0.35.0: Added customizable keyboard shortcuts and support for the extended Kitty protocol.
- aix status: aix could provide a way to configure these shortcuts across editors.
- Gemini CLI 0.31.0: The policy engine now supports project-level policies and MCP server wildcards.
- aix status: aix should update its policy/permission generation for Gemini CLI to support these new features.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Gemini support for rules, prompts, agents, MCP, skills, and hooks.
- `packages/core/src/editors/strategies/gemini/` implements Gemini configuration.
22 changes: 22 additions & 0 deletions docs/editor-research/gemini/0.49.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
research_performed_at: "2026-06-27T17:50:43-04:00"
editor_id: "gemini"
editor_version: "0.49.0"
sources:
- "https://github.com/google-gemini/gemini-cli/blob/main/docs/changelogs/index.md"
---

## Changes affecting aix

- Gemini CLI 0.49.0: Migrated `coreTools` setting to `tools.core` in config.
- aix status: aix should update its Gemini configuration generator to use the new `tools.core` path for core tool settings.
- Gemini CLI 0.49.0: Added `eval:inventory` CLI command and reporting logic.
- aix status: No change needed to config generation, but useful for user workflows.
- Gemini CLI 0.47.0: Added documentation and migration commands for Antigravity CLI (rebranding).
- aix status: aix should monitor the Antigravity rebrand for potential path or config changes.
- Gemini CLI 0.47.0: Respects backend definitions for 3.5 flash.
- aix status: No change needed to aix core; model definitions are passed through.

## Baseline evidence

- `packages/core/src/editors/strategies/gemini/mcp.ts` handles the configuration generation.
23 changes: 23 additions & 0 deletions docs/editor-research/opencode/1.17.11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "opencode"
editor_version: "1.17.11"
sources:
- "https://opencode.ai/docs/config/"
---

## Changes affecting aix

- OpenCode now supports plural names for subdirectories: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/`, and `themes/`. Singular names (e.g., `agent/`) are also supported for backwards compatibility.
- aix status: implemented; OpenCode now supports plural directory names for skills, agents, and commands.
- OpenCode: Organizations can provide default configuration via the `.well-known/opencode` endpoint.
- aix status: This is an upstream change that provides another layer of configuration. aix should be aware of this layer when resolving effective config.
- OpenCode supports {env:VARIABLE_NAME} and {file:path/to/file} variable substitution in its config.
- aix status: aix should verify if it needs to escape these patterns in its own config generation or if it can leverage them for more dynamic configurations.
- OpenCode added `experimental.policies` to allow or deny actions on configured resources.
- aix status: needs follow-up to add support for generating these new policy definitions in OpenCode config.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents OpenCode support for rules, prompts, agents, MCP, and skills.
- `packages/core/src/editors/strategies/opencode/` implements OpenCode configuration.
25 changes: 25 additions & 0 deletions docs/editor-research/windsurf/3.3.18.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "windsurf"
editor_version: "3.3.18"
sources:
- "https://windsurf.com/changelog"
---

## Changes affecting aix

- Windsurf 3.0.12 was rebranded to Devin Desktop.
- aix status: aix should update its internal naming and documentation to reflect this rebrand while maintaining backward compatibility for the `windsurf` editor ID.
- Devin Desktop 3.3.18: Subagents can now be configured with a default model.
- aix status: aix could add a `model` field to its subagent/agent definitions for Devin Desktop.
- Devin Desktop 3.3.18: Added an attribution option to the Devin Local config file.
- aix status: aix can map its existing attribution settings to this new Devin Local setting.
- Windsurf 1.9577.24 added support for loading `SKILL.md` files from the `.windsurf/skills/` directory.
- aix status: implemented in `packages/schema/src/editor-support.ts`.
- Windsurf 1.9552.21 added support for reading skills from the `.agents/skills` directory.
- aix status: `packages/schema/src/editor-support.ts` already mentions `.agents/skills` for compatibility, which Devin Desktop now supports natively.

## Baseline evidence

- `packages/schema/src/editor-support.ts` currently uses the `windsurf` ID and documents its support.
- `packages/core/src/editors/strategies/windsurf/` contains the implementation.
25 changes: 25 additions & 0 deletions docs/editor-research/zed/1.8.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
research_performed_at: "2026-06-25T12:00:00-04:00"
editor_id: "zed"
editor_version: "1.8.2"
sources:
- "https://zed.dev/releases/stable"
---

## Changes affecting aix

- Zed 1.8.2 added the `agent.terminal_init_command` setting.
- aix status: aix could expose this setting in its Zed-specific configuration.
- Zed 1.7.2 added auto-compaction and `/compact` to Zed Agent.
- aix status: This is a runtime change in Zed, but aix might want to allow users to configure compaction settings if they become available in `settings.json`.
- Zed 1.7.2 improved agent skills management by moving it into the settings UI.
- aix status: aix manages Zed skills via symlinks in `.agents/skills/`. This change in Zed's UI reinforces the importance of the `.agents/skills/` directory which aix already uses.
- Zed 1.6.3: Added shareable agent skill links.
- aix status: no direct impact on aix's configuration management, but useful for users.
- Zed 1.6.3: Added "Fast mode" support in the agent panel for Anthropic and OpenAI models.
- aix status: aix should verify if this can be toggled via `settings.json` and expose it if so.

## Baseline evidence

- `packages/schema/src/editor-support.ts` documents Zed support for rules, MCP, and skills.
- `packages/core/src/editors/strategies/zed/` implements Zed configuration.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"standards": "npm run lint && npm run format:check && npm run typecheck",
"lint": "oxlint",
"lint:fix": "oxlint --fix",
"format": "npm run lint:fix && oxfmt '**/*.{css,json,md,yml,yaml}' '!**/.agents/**' '!**/.beads/**' '!**/AGENTS.md' '!**/GEMINI.md'",
"format:check": "oxfmt --check '**/*.{css,json,md,yml,yaml}' '!**/.agents/**' '!**/.beads/**' '!**/AGENTS.md' '!**/GEMINI.md'",
"format": "npm run lint:fix && oxfmt '**/*.{css,json,md,yml,yaml}' '!**/.agents/**' '!**/.beads/**' '!**/AGENTS.md' '!**/GEMINI.md' '!**/test-results/**'",
"format:check": "oxfmt --check '**/*.{css,json,md,yml,yaml}' '!**/.agents/**' '!**/.beads/**' '!**/AGENTS.md' '!**/GEMINI.md' '!**/test-results/**'",
"typecheck": "tsc --noEmit",
"version:bump": "node ./scripts/version-bump.mjs",
"qa:sandbox": "./scripts/qa-sandbox.sh",
Expand Down
1 change: 1 addition & 0 deletions packages/cli/src/lib/delete-helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export function computeFilesToDelete(
codex: { project: '.agents/skills', user: '.codex/skills' },
gemini: { project: '.gemini/skills', user: '.gemini/skills' },
opencode: { project: '.opencode/skills', user: '.config/opencode/skills' },
'devin-desktop': { project: '.windsurf/skills', user: '.windsurf/skills' },
};

const skillDirConfig = editorSkillDirs[editor];
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/__tests__/editors/adapters.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ describe('Editor Adapters', () => {
expect(editors).toContain('codex');
expect(editors).toContain('gemini');
expect(editors).toContain('opencode');
expect(editors).toHaveLength(8);
expect(editors).toContain('devin-desktop');
expect(editors).toHaveLength(9);
});
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ describe('editor support data', () => {
codex: new CodexHooksStrategy(),
zed: new NoHooksStrategy(),
opencode: new NoHooksStrategy(),
'devin-desktop': new WindsurfHooksStrategy(),
};

for (const editor of supportedEditorNames) {
Expand Down
9 changes: 9 additions & 0 deletions packages/core/src/editors/adapters/devin-desktop.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { WindsurfAdapter } from './windsurf.js';

/**
* Devin Desktop editor adapter. Devin Desktop is the rebranded version of Windsurf.
* It shares the same configuration format and directory structures as Windsurf.
*/
export class DevinDesktopAdapter extends WindsurfAdapter {
override readonly name = 'devin-desktop' as const;
}
1 change: 1 addition & 0 deletions packages/core/src/editors/adapters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ export { ZedAdapter } from './zed.js';
export { CodexAdapter } from './codex.js';
export { GeminiAdapter } from './gemini.js';
export { OpenCodeAdapter } from './opencode.js';
export { DevinDesktopAdapter } from './devin-desktop.js';
Loading
Loading