Skip to content

feat: add Avian coding assistant support#772

Open
avianion wants to merge 4 commits into
Fission-AI:mainfrom
avianion:feat/add-avian-tool-support
Open

feat: add Avian coding assistant support#772
avianion wants to merge 4 commits into
Fission-AI:mainfrom
avianion:feat/add-avian-tool-support

Conversation

@avianion

@avianion avianion commented Feb 27, 2026

Copy link
Copy Markdown

Summary

  • Add Avian as a supported AI coding tool in OpenSpec
  • Avian uses .avian/ config directory with nested commands/opsx/<id>.md command paths and YAML frontmatter (name, description, category, tags)
  • Follows the same adapter pattern as Claude Code and Crush

Changes

  • src/core/config.ts — add Avian to AI_TOOLS array (skillsDir: .avian)
  • src/core/command-generation/adapters/avian.ts — new command adapter
  • src/core/command-generation/adapters/index.ts — export adapter
  • src/core/command-generation/registry.ts — register adapter
  • docs/supported-tools.md — add Avian to tool directory table and available tool IDs
  • test/core/command-generation/adapters.test.ts — 5 new tests for adapter (all passing)

Test plan

  • pnpm run build compiles successfully
  • pnpm test — all 87 adapter tests pass (5 new Avian tests included)
  • Registry test passes (Avian adapter registered)
  • available-tools.test.ts passes
  • Init test passes with Avian in tool list

cc @TabishB

Summary by CodeRabbit

  • New Features

    • Avian tool is now available in the product, enabling use of Avian alongside existing AI tools.
  • Documentation

    • Documented Avian in the Tool Directory Reference, including its installation/command path patterns and enabled tool ID.
  • Tests

    • Added coverage for Avian command adapter behavior, including file path generation and Markdown/YAML command formatting (including tag handling).

@avianion
avianion requested a review from TabishB as a code owner February 27, 2026 04:44
@coderabbitai

coderabbitai Bot commented Feb 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d16e35fe-c39e-4ddb-9233-766f12e229c8

📥 Commits

Reviewing files that changed from the base of the PR and between 98cdbed and 09c5e4c.

📒 Files selected for processing (4)
  • docs/supported-tools.md
  • src/core/command-generation/adapters/index.ts
  • src/core/command-generation/registry.ts
  • src/core/config.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • src/core/command-generation/adapters/index.ts
  • src/core/config.ts
  • src/core/command-generation/registry.ts

📝 Walkthrough

Walkthrough

Adds Avian command-adapter integration, registers Avian in configuration and documentation, and extends adapter tests for paths and formatted command files.

Changes

Avian adapter integration

Layer / File(s) Summary
Adapter exports and registry wiring
src/core/command-generation/adapters/index.ts, src/core/command-generation/registry.ts
Re-exports avianAdapter and registers it in CommandAdapterRegistry.
Tool configuration and documentation
src/core/config.ts, docs/supported-tools.md
Adds Avian to AI_TOOLS, the Tool Directory Reference, and the non-interactive --tools list.
Adapter validation
test/core/command-generation/adapters.test.ts
Tests Avian identity, .avian/commands/opsx paths, YAML frontmatter formatting, empty tags, and path handling.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • Fission-AI/OpenSpec#556: Introduces the multi-provider command-generation and adapter registry structure extended by this change.
  • Fission-AI/OpenSpec#864: Adds another tool adapter through the same barrel, registry, configuration, tests, and documentation paths.
  • Fission-AI/OpenSpec#886: Follows the same command-adapter integration pattern across core wiring and shared tests.

Suggested reviewers: tabishb

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Avian support as a coding assistant/tool.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Feb 27, 2026

Copy link
Copy Markdown

Greptile Summary

Adds Avian as a supported AI coding tool following OpenSpec's adapter pattern, consistent with other tools like Crush and Claude Code.

  • New command adapter formats files with YAML frontmatter (name, description, category, tags) and uses nested .avian/commands/opsx/<id>.md path structure
  • Adapter registered in CommandAdapterRegistry alongside 24 other tool adapters
  • Tool configuration added to AI_TOOLS array with .avian skillsDir
  • 5 comprehensive tests validate adapter behavior (toolId, file paths, frontmatter formatting, empty tags)
  • Documentation updated with Avian in tool reference table and available tool IDs list

Confidence Score: 5/5

  • This PR is safe to merge with no identified issues
  • Implementation perfectly follows established patterns (identical structure to crushAdapter), all changes are additive with no modifications to existing functionality, comprehensive test coverage validates behavior, and documentation is properly updated
  • No files require special attention

Important Files Changed

Filename Overview
src/core/command-generation/adapters/avian.ts New adapter implementation following established pattern, matches Crush adapter structure
src/core/command-generation/registry.ts Imported and registered avianAdapter correctly in alphabetical order
src/core/config.ts Added Avian tool configuration with correct metadata and skillsDir
test/core/command-generation/adapters.test.ts Added 5 comprehensive tests for Avian adapter following existing test patterns

Class Diagram

%%{init: {'theme': 'neutral'}}%%
classDiagram
    class ToolCommandAdapter {
        <<interface>>
        +string toolId
        +getFilePath(commandId: string) string
        +formatFile(content: CommandContent) string
    }
    
    class CommandAdapterRegistry {
        -Map~string, ToolCommandAdapter~ adapters
        +register(adapter: ToolCommandAdapter) void
        +get(toolId: string) ToolCommandAdapter
        +getAll() ToolCommandAdapter[]
        +has(toolId: string) boolean
    }
    
    class avianAdapter {
        +toolId: "avian"
        +getFilePath(commandId)
        +formatFile(content)
    }
    
    class claudeAdapter {
        +toolId: "claude"
        +getFilePath(commandId)
        +formatFile(content)
    }
    
    class crushAdapter {
        +toolId: "crush"
        +getFilePath(commandId)
        +formatFile(content)
    }
    
    ToolCommandAdapter <|.. avianAdapter : implements
    ToolCommandAdapter <|.. claudeAdapter : implements
    ToolCommandAdapter <|.. crushAdapter : implements
    CommandAdapterRegistry o-- ToolCommandAdapter : registers
    avianAdapter --> CommandAdapterRegistry : registered in static block
Loading

Last reviewed commit: 952533d

Add Avian as a supported AI coding tool with skill and command
generation. Follows the same adapter pattern as Claude Code and Crush
with nested opsx command directories and YAML frontmatter.
@avianion
avianion force-pushed the feat/add-avian-tool-support branch from 952533d to b899e0a Compare February 27, 2026 21:08
@avianion

avianion commented Mar 5, 2026

Copy link
Copy Markdown
Author

Friendly follow-up — this PR is still active and ready for review. Would appreciate a look when you get a chance! cc @TabishB

@avianion

avianion commented Mar 5, 2026

Copy link
Copy Markdown
Author

Friendly follow-up — this PR is still active and ready for review. All feedback has been addressed. Would appreciate a look when you get a chance! cc @TabishB

@avianion

avianion commented Mar 5, 2026

Copy link
Copy Markdown
Author

Hey @TabishB — friendly follow-up on this PR. Avian is an OpenAI-compatible inference provider that's already live and powering apps like ISEKAI ZERO. This is a lightweight integration (standard OpenAI-compatible endpoint) and we're happy to address any feedback or make adjustments. Would love to get this merged if you have a moment to review. Thanks!

@avianion

avianion commented May 7, 2026

Copy link
Copy Markdown
Author

Resolved merge conflicts with latest upstream main.

@avianion

Copy link
Copy Markdown
Author

Resolved merge conflicts with latest upstream main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant