Skip to content

feat(atomcode): add project skills and commands - #1211

Open
hu-qi wants to merge 3 commits into
Fission-AI:mainfrom
hu-qi:main
Open

feat(atomcode): add project skills and commands#1211
hu-qi wants to merge 3 commits into
Fission-AI:mainfrom
hu-qi:main

Conversation

@hu-qi

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

Copy link
Copy Markdown

Status

LGTM after implementation and independent review. Runtime implementation eabd20d4d passed GitHub CI on Linux, macOS, and Windows, plus security checks. Follow-up 8506dd063 only corrects two parser comments; executable output is identical. Fresh CI passes on Linux, macOS, and Windows, and security checks pass. Ready for final human review. Not merged.

Motivation

AtomCode users need OpenSpec's existing workflows installed in the directories their assistant reads. This adds a tool adapter and registration without introducing a new workflow system or dependency.

Closes #1210.

What it does

  • Adds openspec init --tools atomcode, with project skills in .atomcode/skills/ and /opsx-<id> commands in .atomcode/commands/.
  • Emits explicit, unquoted command names and args: optional, matching AtomCode's literal custom-command parser. Passes invocation arguments through $ARGUMENTS.
  • Keeps shipped descriptions plain for the command parser while keeping special values valid YAML for frontmatter consumers.
  • Uses OpenSpec's shared command-reference rewriting and existing profile/delivery lifecycle, including detection, updates, pruning, and preservation of custom files.
  • Updates the tool reference and adds a minor changeset.

Proof it works

  • Build, lint, changeset validation, and 1,543 focused tests pass, including verification on Node 20.19.0.
  • Full local suite: 4,290 passed, 2 failed. Both failures reproduce on unchanged main because the test fixtures detect this machine's existing global MiniMax setup. All 119 tests in the affected environment-sensitive files pass with isolated settings; no unrelated code or tests were changed to suppress failures.
  • New coverage exercises all delivery modes, noninteractive detection, command metadata, arguments, invocation spelling, profile pruning, custom-file preservation, commands-only repair, and repeat-update idempotence.
  • A temporary harness using the exact AtomCode v5.0.9 custom-command module reproduces rejection of the original description-only files and argument loss from a name-only correction. The hardened output passes for all 6 real CLI-generated core commands and all 12 available workflows, including names, descriptions, optional arguments, argument substitution, and empty invocation.
  • A second independent architecture/parser audit found no additional runtime issues. All 39 pre-existing tools produce identical output relative to the PR base: 348 command files and 1,404 skill renderings across 117 delivery modes.
  • The second pass reran 1,584 tests successfully and exercised 384 additional real-parser argument cases, including literal placeholders, multiline Markdown, punctuation, and Unicode.
  • The PR-only diff passes whitespace checks. The only second-pass correction is accurate parser wording in two comments; TypeScript emits identical executable code.

Notes

Merged main at a0ddb60d0 without rewriting the contributor's history. The parser harness stubs global configuration and plugin discovery; it is not a full interactive AtomCode/model session. The feature adds no runtime dependencies, workflow-file changes, website changes, or hosting configuration. The existing website is unchanged from upstream main.

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: aca86cff-7882-4e4c-bc06-be89c060fc12

📥 Commits

Reviewing files that changed from the base of the PR and between a0ddb60 and 8506dd0.

📒 Files selected for processing (10)
  • .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
  • test/core/init.test.ts
  • test/core/update.test.ts
🚧 Files skipped from review as they are similar to previous changes (7)
  • src/core/command-generation/adapters/index.ts
  • src/core/command-generation/adapters/atomcode.ts
  • docs/supported-tools.md
  • src/core/command-generation/registry.ts
  • src/core/config.ts
  • .changeset/atomcode-support.md
  • docs/cli.md

Included review availability: Your plan provides up to 10 included reviews per hour; 5 remain after this review.


📝 Walkthrough

Walkthrough

Adds AtomCode as a supported OpenSpec tool. The change adds command generation, configuration, initialization and update coverage, documentation, and a minor Changesets entry.

Changes

AtomCode Tool Integration

Layer / File(s) Summary
AtomCode adapter and registration
src/core/command-generation/adapters/atomcode.ts, src/core/command-generation/adapters/index.ts, src/core/command-generation/registry.ts, src/core/config.ts
Adds AtomCode command generation at .atomcode/commands/opsx-<commandId>.md, registers the adapter, and adds the atomcode tool configuration.
Workflow generation and update validation
test/core/init.test.ts, test/core/update.test.ts
Tests AtomCode initialization across delivery modes, tool detection, profile-aware updates, stale command replacement, and custom file preservation.
Adapter behavior validation
test/core/command-generation/adapters.test.ts
Tests command paths, YAML frontmatter, optional arguments, $ARGUMENTS, command reference rewriting, and shared adapter coverage.
Documentation and release metadata
docs/supported-tools.md, docs/cli.md, .changeset/atomcode-support.md
Documents AtomCode paths and tool identifiers and adds a minor release entry.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🔵 Low · up to 8506d

The change adds AtomCode project commands and skills using the existing initialization and update flows. It is mergeable with owner awareness that an interrupted or concurrent update could temporarily leave a mixed set of generated files until the command is run again.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant OpenSpec
  participant Registry as CommandAdapterRegistry
  participant AtomCode as atomcodeAdapter
  participant Project as .atomcode files

  User->>OpenSpec: run init or update with atomcode
  OpenSpec->>Registry: resolve atomcode adapter
  Registry->>AtomCode: generate commands and skills
  AtomCode->>Project: write .atomcode/commands and .atomcode/skills
  Project-->>User: AtomCode workflow artifacts
Loading

Suggested reviewers: tabishb, clay-good

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes satisfy issue #1210. They add AtomCode to the supported tools, configure .atomcode/skills/, generate AtomCode-compatible .atomcode/commands/opsx-<id>.md files, register a dedicated ada…
Out of Scope Changes check ✅ Passed The changes are within the scope of issue #1210. The implementation, tests, documentation, and changeset directly support AtomCode integration. No unrelated code changes are identified.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 7…
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding AtomCode project skills and commands support.
Full details: Linked Issues check

Explanation

The changes satisfy issue #1210. They add AtomCode to the supported tools, configure .atomcode/skills/, generate AtomCode-compatible .atomcode/commands/opsx-&lt;id&gt;.md files, register a dedicated adapter, preserve lifecycle behavior, and update documentation.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 7 files. (3 skipped: 3 unsupported.)

✨ 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.

@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 Outdated
@clay-good
clay-good requested a review from a team as a code owner August 28, 2026 12:37
@clay-good clay-good changed the title feat: add AtomCode command adapter support feat(atomcode): add project skills and commands Aug 28, 2026
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@alfred-openspec alfred-openspec left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The AtomCode project command and skill paths, literal frontmatter behavior, optional arguments, invocation rewriting, and update preservation match the current upstream loader. Approved pending CI.

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)

3 participants