Skip to content

feat: add AtomCode command adapter support#1211

Open
hu-qi wants to merge 1 commit into
Fission-AI:mainfrom
hu-qi:main
Open

feat: add AtomCode command adapter support#1211
hu-qi wants to merge 1 commit into
Fission-AI:mainfrom
hu-qi:main

Conversation

@hu-qi

@hu-qi hu-qi commented Jun 15, 2026

Copy link
Copy Markdown

Summary

Adds AtomCode as a supported tool in OpenSpec with its own command adapter.

AtomCode is an open-source terminal AI coding assistant (by AtomGit) that uses the same Agent Skills spec as Claude Code. It stores custom commands in .atomcode/commands/ with YAML frontmatter (description field).

Closes #1210

Changes

  • New adapter (src/core/command-generation/adapters/atomcode.ts):
    • File path: .atomcode/commands/opsx-<id>.md
    • Frontmatter: description only (AtomCode supports additional fields like name, argument-hint, allowed-tools but these are optional)
    • Command references transformed from colon (/opsx:apply) to hyphen format (/opsx-apply) via transformToHyphenCommands
  • Registration: Added to index.ts, registry.ts, and config.ts (with skillsDir: '.atomcode')
  • Documentation: Updated supported-tools.md and cli.md with AtomCode entry
  • Tests: 6 new test cases for atomcodeAdapter (toolId, file path, frontmatter, no extra fields, command reference transformation)
  • Changeset: Added .changeset/atomcode-support.md for minor version bump

Test Results

✓ 122 tests passed (including 6 new atomcodeAdapter tests)
✓ TypeScript compilation clean
✓ pnpm build successful

Summary by CodeRabbit

Release Notes

  • New Features

    • OpenSpec now supports AtomCode as a tool option. Users can initialize projects with AtomCode using openspec init --tools atomcode, enabling direct integration with AtomCode's Agent Skills and slash commands directory structure.
  • Documentation

    • Updated CLI reference and supported tools documentation to include AtomCode configuration details and usage guidance.

Add AtomCode as a supported tool with its own command adapter.
AtomCode is an open-source terminal AI coding assistant that uses
the same Agent Skills spec as Claude Code.

Changes:
- New adapter: src/core/command-generation/adapters/atomcode.ts
  - File path: .atomcode/commands/opsx-<id>.md
  - Frontmatter: description only
  - Command references transformed from colon to hyphen format
- Register adapter in index.ts, registry.ts, and config.ts
- Update docs (supported-tools.md, cli.md) with AtomCode entry
- Add 6 test cases for atomcodeAdapter
- Add changeset for version tracking

Closes Fission-AI#1210

Co-Authored-By: hu-qi, AtomCode (GLM-5.1) <huqi1024@gmail.com>
@hu-qi hu-qi requested a review from TabishB as a code owner June 15, 2026 05:19
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds AtomCode as a supported tool in OpenSpec. A new atomcodeAdapter is implemented, exported from the adapters index, and registered in CommandAdapterRegistry. The AI_TOOLS config gains an atomcode entry. Tests, documentation, and a changeset entry are added accordingly.

Changes

AtomCode Tool Integration

Layer / File(s) Summary
AtomCode adapter implementation and wiring
src/core/command-generation/adapters/atomcode.ts, src/core/command-generation/adapters/index.ts, src/core/command-generation/registry.ts, src/core/config.ts
New atomcodeAdapter generates .atomcode/commands/opsx-<commandId>.md files with description-only frontmatter and hyphenated command references. Re-exported from the adapters index, registered in CommandAdapterRegistry's static initializer, and the AI_TOOLS array gains an atomcode entry with skillsDir: '.atomcode'.
Adapter tests and documentation
test/core/command-generation/adapters.test.ts, docs/supported-tools.md, docs/cli.md, .changeset/atomcode-support.md
Tests validate toolId, file path output, description-only frontmatter (omitting name, category, tags), and /opsx:<name>/opsx-<name> body transformation. The adapter is added to the shared "all adapters" path test. Docs add AtomCode to the tool directory reference table and the available tool IDs list. A minor changeset entry is included.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Fission-AI/OpenSpec#707: Extends the same command-adapter plumbing (adapters index, registry, config) for a different tool (Kiro), following the identical pattern used here.
  • Fission-AI/OpenSpec#864: Wires another new tool (Lingma) into adapters/index.ts, registry.ts, and config.ts using the same integration structure.
  • Fission-AI/OpenSpec#1027: Updates docs/cli.md and docs/supported-tools.md to keep listed tool IDs in sync with AI_TOOLS, the same documentation surfaces modified here.

Suggested reviewers

  • TabishB

🐇 A new tool hops into the den,
AtomCode joins the OpenSpec pen!
Commands with hyphens, skills in .atomcode/,
Frontmatter trimmed to description alone.
The registry grows, the tests all pass —
Another adapter added at last! 🌟

🚥 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 AtomCode command adapter support, which matches the primary objective of the PR.
Linked Issues check ✅ Passed All objectives from issue #1210 are met: AtomCode added to AI_TOOLS config, dedicated adapter created, registered in the system, documented, and compatible with Agent Skills spec.
Out of Scope Changes check ✅ Passed All changes are directly related to adding AtomCode support as specified in issue #1210; no unrelated modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/cli.md`:
- Line 110: The supported tool IDs list in docs/cli.md is missing the tool ID
vibe, which causes documentation to be out of sync with the actual
implementation in src/core/config.ts that includes value vibe. Add vibe to the
comma-separated list of supported tool IDs (--tools) in alphabetical order with
the other tools to ensure documentation accurately reflects the supported
capabilities.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3d9b8cb7-08b9-46bb-b701-aa50b0129647

📥 Commits

Reviewing files that changed from the base of the PR and between 1b06fdd and dc504c0.

📒 Files selected for processing (8)
  • .changeset/atomcode-support.md
  • docs/cli.md
  • docs/supported-tools.md
  • src/core/command-generation/adapters/atomcode.ts
  • src/core/command-generation/adapters/index.ts
  • src/core/command-generation/registry.ts
  • src/core/config.ts
  • test/core/command-generation/adapters.test.ts

Comment thread docs/cli.md
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.

Add support for AtomCode (atomcode)

1 participant