Skip to content

Conversation

@TabishB
Copy link
Contributor

@TabishB TabishB commented Oct 22, 2025

Summary

This changeset prepares a minor version release that includes support for multiple new AI coding assistants and several bug fixes.

Changes Being Released

New AI Assistant Support

New Features

Bug Fixes

Documentation

Version Bump

Minor - Multiple new features warrant a minor version bump per semantic versioning.

Commits Since Last Release (b30882b)

Summary by CodeRabbit

  • New Features

    • Added support for multiple AI coding assistants (CodeRabbit, Cline, Crush AI, Auggie) with enhanced validation.
    • Archive slash command now accepts arguments for more flexible workflows.
  • Bug Fixes

    • Delta spec validation now handles case-insensitive headers and detects empty sections.
    • Archive validation now respects the --no-validate flag and properly ignores metadata.
  • Documentation

    • Updated AI tool references and slash commands documentation with initialization guidance.
    • Added VS Code dev container configuration.
    • Clarified CodeBuddy naming to "CodeBuddy Code (CLI)".

Merged and archived four concurrent changes that modified the same specs:
- add-cline-support: Added Cline AI tool configuration
- add-crush-support: Added Crush AI tool configuration
- add-factory-slash-commands: Added Factory Droid slash commands
- add-archive-command-arguments: Added archive command argument support

Changes to cli-init/spec.md:
- Added Cline and CodeBuddy Code configuration scenarios
- Added slash command scenarios for CodeBuddy Code, Cline, Crush, Factory Droid

Changes to cli-update/spec.md:
- Added update scenarios for CodeBuddy Code, Cline, Crush, Factory Droid
- Added Archive Command Argument Support requirement
- Modified OpenCode scenario to support $ARGUMENTS placeholder

This required manual intervention to prevent data loss from OpenSpec's
requirement-level replacement during archiving. The archive operations
initially overwrote scenarios from earlier changes, requiring restoration
of all missing content to preserve complete spec state.

All four changes successfully archived to openspec/changes/archive/.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 22, 2025

Walkthrough

This PR extends AI coding assistant support by adding multiple tools (CodeBuddy Code, CodeRabbit, Cline, Crush AI, Auggie), renames CodeBuddy to "CodeBuddy Code (CLI)" across documentation and code, updates the config file from CodeBuddy.md to CODEBUDDY.md, archivesSpec sections for Cline and Crush, adds slash command generation for multiple AI tools, introduces archive command argument validation, and removes openspec diff command references from templates.

Changes

Cohort / File(s) Summary
CodeBuddy branding updates
README.md, src/core/config.ts, src/core/configurators/codebuddy.ts
Renamed CodeBuddy to "CodeBuddy Code (CLI)" in documentation and configuration; updated config file name from CodeBuddy.md to CODEBUDDY.md.
Changeset documentation
.changeset/ai-assistants-and-fixes.md
Documents AI assistant support additions, archive command enhancements, delta spec validation fixes, and documentation improvements.
Active AI tool specifications
openspec/specs/cli-init/spec.md, openspec/specs/cli-update/spec.md
Adds initialization and update specifications for multiple AI tools (CodeBuddy Code, Cline, Crush, Factory Droid, OpenCode, Windsurf, Kilo Code, Codex, GitHub Copilot) including slash command generation and archive command argument support.
Archived Cline/Crush specs
openspec/changes/add-cline-support/specs/cli-init/spec.md, openspec/changes/add-crush-support/specs/cli-init/spec.md
Removes archived Requirements sections for Cline and Crush tool support previously documented.
Archived archive command specs
openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-init/spec.md, openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md, openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md, openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md
Removes archive command header; removes validation/testing checklist; adds archived Requirements for Cline and Crush slash command configurations.
Template and agent documentation
src/core/templates/agents-template.ts, openspec/AGENTS.md
Removes openspec diff command references from Quick Start and CLI Essentials sections.
Testing updates
test/core/init.test.ts
Adds tests for CODEBUDDY.md creation and updating with OpenSpec markers.
Planning documentation
openspec-parallel-merge-plan.md
Removes "Improve diff tooling" bullet from Phase 1; renumbers subsequent bullets.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

The changes span multiple files with a mix of documentation, configuration updates, and specification additions. While individual changes are straightforward (renaming, file creation rules, test additions), the breadth of AI tool coverage and interrelated spec updates across both active and archived specs require careful verification to ensure consistency and correctness across all tools.

Possibly related PRs

Poem

🐰 Multiple assistants now hop in sync,
CodeBuddy Code hops with a CODEBUDDY link,
Cline, Crush, and friends find their place,
Archive commands leap through space,
OpenSpec specs now dance with grace! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "chore: add changeset for AI assistants support and validation fixes" accurately reflects significant portions of the changeset content. The title correctly identifies two major components: the addition of support for multiple AI coding assistants (CodeBuddy Code, CodeRabbit, Cline, Crush AI, and Auggie) and validation bug fixes (delta spec validation improvements and archive validation fixes). However, the title omits the archive slash command arguments feature, which is also listed as a new feature in the PR objectives alongside the AI assistants support. While the title is specific and not misleading, it does not comprehensively cover all primary changes in the changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch changeset-ai-assistants-and-fixes

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
src/core/configurators/codebuddy.ts (1)

9-9: Verify migration path for existing users.

The filename change from CodeBuddy.md to CODEBUDDY.md is a breaking change. Existing users with CodeBuddy.md files won't have them automatically migrated or detected.

Consider whether:

  1. Migration guidance should be added to release notes
  2. The configurator should check for and migrate existing CodeBuddy.md files
  3. Users are expected to manually rename their files or re-run openspec init

Would you like me to generate a migration helper that detects and renames existing CodeBuddy.md files to CODEBUDDY.md?

openspec/specs/cli-update/spec.md (1)

124-142: Archive Command Argument Support requirement needs Factory Droid scenario.

The new requirement in lines 124-142 is well-specified for OpenCode (lines 138-142), but it only provides an implementation scenario for OpenCode. Since the requirement states "tools that support $ARGUMENTS placeholder" (line 125), and Factory Droid is documented to support $ARGUMENTS (line 85), consider adding a Factory Droid-specific archive template scenario to clarify how the $ARGUMENTS placeholder should handle change ID arguments for that tool.

This ensures consistency across all tools that support optional archive command arguments.

openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md (1)

62-64: Minor capitalization: GitHub should be capitalized consistently.

Per static analysis, lines 63 reference .github/prompts/ which is correct, but ensure the official platform name is capitalized as "GitHub" (not "github") in any surrounding text or comments.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fef961f and 5955cec.

📒 Files selected for processing (16)
  • .changeset/ai-assistants-and-fixes.md (1 hunks)
  • README.md (1 hunks)
  • openspec-parallel-merge-plan.md (1 hunks)
  • openspec/AGENTS.md (0 hunks)
  • openspec/changes/add-cline-support/specs/cli-init/spec.md (0 hunks)
  • openspec/changes/add-crush-support/specs/cli-init/spec.md (0 hunks)
  • openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md (0 hunks)
  • openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md (0 hunks)
  • openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md (1 hunks)
  • openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md (1 hunks)
  • openspec/specs/cli-init/spec.md (2 hunks)
  • openspec/specs/cli-update/spec.md (2 hunks)
  • src/core/config.ts (1 hunks)
  • src/core/configurators/codebuddy.ts (1 hunks)
  • src/core/templates/agents-template.ts (0 hunks)
  • test/core/init.test.ts (1 hunks)
💤 Files with no reviewable changes (6)
  • src/core/templates/agents-template.ts
  • openspec/AGENTS.md
  • openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md
  • openspec/changes/add-cline-support/specs/cli-init/spec.md
  • openspec/changes/add-crush-support/specs/cli-init/spec.md
  • openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md
🧰 Additional context used
📓 Path-based instructions (2)
openspec/changes/archive/**

📄 CodeRabbit inference engine (openspec/AGENTS.md)

After deployment, archive changes by moving 'openspec/changes/[name]/' to 'openspec/changes/archive/YYYY-MM-DD-[name]/' and validate with '--strict'

Files:

  • openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md
  • openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md
openspec/specs/*/spec.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/specs/*/spec.md: Place current (truth) capability specs at openspec/specs//spec.md
Update specs/ to reflect capabilities after archiving if behavior changed

Files:

  • openspec/specs/cli-update/spec.md
  • openspec/specs/cli-init/spec.md
🧠 Learnings (1)
📚 Learning: 2025-10-21T03:05:58.972Z
Learnt from: CR
PR: Fission-AI/OpenSpec#0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-21T03:05:58.972Z
Learning: Applies to openspec/changes/*/specs/*/spec.md : When using MODIFIED, copy the full existing requirement (header through scenarios), edit to reflect new behavior, keep at least one scenario, and ensure the header text matches exactly (whitespace-insensitive)

Applied to files:

  • openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md
🧬 Code graph analysis (1)
test/core/init.test.ts (2)
src/utils/file-system.ts (1)
  • fileExists (76-86)
test/utils/marker-updates.test.ts (3)
  • filePath (252-285)
  • it (203-286)
  • it (59-143)
🪛 LanguageTool
openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md

[uncategorized] ~93-~93: The official name of this software platform is spelled with a capital “H”.
Context: ...during initialization - THEN create .github/prompts/openspec-proposal.prompt.md, `...

(GITHUB)


[uncategorized] ~93-~93: The official name of this software platform is spelled with a capital “H”.
Context: ...b/prompts/openspec-proposal.prompt.md, .github/prompts/openspec-apply.prompt.md`, and ...

(GITHUB)

openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md

[uncategorized] ~63-~63: The official name of this software platform is spelled with a capital “H”.
Context: ...during initialization - THEN create .github/prompts/openspec-proposal.prompt.md, `...

(GITHUB)


[uncategorized] ~63-~63: The official name of this software platform is spelled with a capital “H”.
Context: ...b/prompts/openspec-proposal.prompt.md, .github/prompts/openspec-apply.prompt.md`, and ...

(GITHUB)

🔇 Additional comments (10)
.changeset/ai-assistants-and-fixes.md (1)

1-24: LGTM! Well-structured changeset.

The changeset correctly documents the minor version release with comprehensive notes on new AI assistant support, feature enhancements, bug fixes, and documentation improvements.

openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md (1)

1-97: Archived spec structure follows guidelines.

The file is correctly placed in the archive directory following the openspec/changes/archive/YYYY-MM-DD-[name]/ pattern as specified in the coding guidelines.

Note: The static analysis warnings about .github capitalization are false positives—.github is the correct directory name convention for GitHub-specific files.

README.md (1)

94-94: LGTM! Documentation aligns with implementation changes.

The README update correctly reflects the renamed display name "CodeBuddy Code (CLI)" and adds a helpful documentation link, consistent with changes in src/core/config.ts and src/core/configurators/codebuddy.ts.

test/core/init.test.ts (1)

868-899: LGTM! Comprehensive test coverage for CODEBUDDY.md handling.

The two new tests properly validate both creation and update scenarios for CODEBUDDY.md, following the established patterns used for other AI tool configuration files (CLAUDE.md, CLINE.md). They correctly verify OpenSpec marker handling and content preservation.

openspec-parallel-merge-plan.md (1)

52-52: LGTM! Correct renumbering after bullet removal.

The bullet has been appropriately renumbered from 4 to 3 following the removal of a previous item, with no changes to its content.

src/core/config.ts (1)

23-23: LGTM! Consistent naming update with backward compatibility.

The display name and success label have been updated to "CodeBuddy Code (CLI)" and "CodeBuddy Code" respectively, improving clarity for users while preserving the internal value: 'codebuddy' for backward compatibility. This aligns with the README.md update and CODEBUDDY.md configuration file change.

openspec/specs/cli-init/spec.md (2)

67-77: LGTM! Configuration scenarios follow established patterns.

The new scenarios for CodeBuddy Code and Cline properly document the creation of CODEBUDDY.md and CLINE.md files, following the same structure as the existing Claude Code scenario. The scenarios correctly specify root-level file creation with AGENTS.md references.


169-200: LGTM! Comprehensive slash command documentation.

The new slash command generation scenarios for CodeBuddy Code, Cline, Crush, and Factory Droid are well-structured and consistent with existing tool scenarios. Each correctly specifies:

  • Tool-specific file paths and directory structures
  • Appropriate frontmatter requirements
  • Template handling with OpenSpec markers
  • Workflow stage instructions
openspec/specs/cli-update/spec.md (1)

60-75: Tool scenario additions look complete and well-structured.

The new scenarios for CodeBuddy Code (60-63), Cline (65-69), and Crush (71-75) are consistent with existing tool patterns, with appropriate tool-specific frontmatter requirements (e.g., Cline Markdown heading frontmatter, Crush category/tags). The scenarios properly specify all three workflow stages (proposal, apply, archive) and include instructions for relevant workflow stages.

openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md (1)

1-67: Archived spec correctly captures final state of Crush support addition.

The archived cli-init spec properly documents the MODIFIED Requirements after Crush support was integrated. The archive directory structure (openspec/changes/archive/2025-10-22-add-crush-support/) correctly follows the naming convention specified in coding guidelines. All tool scenarios—including the new Crush scenario (lines 24-29)—are properly documented with consistent structure and appropriate tool-specific requirements (frontmatter, placeholders, markers).

Comment on lines 82 to 93
#### Scenario: Updating slash commands for Factory Droid
- **WHEN** `.factory/commands/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
- **THEN** refresh each file using the shared Factory templates that include YAML frontmatter for the `description` and `argument-hint` fields
- **AND** ensure the template body retains the `$ARGUMENTS` placeholder so user input keeps flowing into droid
- **AND** update only the content inside the OpenSpec managed markers, leaving any unmanaged notes untouched
- **AND** skip creating missing files during update

#### Scenario: Updating slash commands for OpenCode
- **WHEN** `.opencode/command/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
- **THEN** refresh each file using shared templates
- **AND** ensure templates include instructions for the relevant workflow stage
- **AND** ensure the archive command includes `$ARGUMENTS` placeholder in frontmatter for accepting change ID arguments
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 | 🔴 Critical

🧩 Analysis chain

Verify archive argument support consistency across all tools supporting $ARGUMENTS.

The Archive Command Argument Support requirement (lines 124-142) states support is for "tools that support $ARGUMENTS placeholder." However, the Factory Droid scenario (lines 82-87) mentions $ARGUMENTS placeholder support but does not detail how the archive command should handle optional change ID arguments, unlike the OpenCode scenario (lines 89-93).

Either Factory Droid archive commands should support change ID arguments (similar to OpenCode), or the requirement scope should clarify which tools support this feature.


🏁 Script executed:

#!/bin/bash
# Search for Factory Droid archive command template or implementation
# to determine if it should support change ID arguments

rg -n "Factory Droid\|factory.*archive" --type md

Length of output: 0


The search produced no results. Let me verify the file structure and check the actual content at the specified lines.


🏁 Script executed:

#!/bin/bash
# Check if file exists and display content around lines 82-93
if [ -f "openspec/specs/cli-update/spec.md" ]; then
  echo "=== File exists ==="
  sed -n '75,120p' "openspec/specs/cli-update/spec.md"
else
  echo "File not found at openspec/specs/cli-update/spec.md"
  # Try to find the file
  find . -name "*cli-update*" -o -name "spec.md" | head -20
fi

Length of output: 3161


🏁 Script executed:

#!/bin/bash
# Also search for any content with "Factory Droid" more broadly
echo "=== Searching for Factory Droid ==="
rg -n "Factory Droid" 2>/dev/null | head -10

Length of output: 1129


🏁 Script executed:

#!/bin/bash
# Search for archive command scenarios
echo "=== Searching for archive scenarios ==="
rg -n "archive.*command\|Archive Command" -i 2>/dev/null | head -15

Length of output: 39


I can now see the actual content. Let me verify the Archive Command Argument Support requirement section mentioned in the review.


🏁 Script executed:

#!/bin/bash
# Display lines 120-150 to see the Archive Command Argument Support section
sed -n '120,150p' "openspec/specs/cli-update/spec.md"

Length of output: 1565


Factory Droid should include archive template argument support scenario, matching OpenCode.

The inconsistency is confirmed. The Archive Command Argument Support requirement (line 123) states support applies to "tools that support $ARGUMENTS placeholder." Factory Droid explicitly supports $ARGUMENTS (line 85), yet only OpenCode has a documented archive template generation scenario (lines 139-144) that handles change ID arguments.

Factory Droid needs either:

  • A dedicated "Factory Droid archive template generation" scenario under the Archive Command Argument Support requirement, OR
  • The requirement scope should clarify that archive argument support applies only to specific tools (e.g., OpenCode)

The current spec creates ambiguity about Factory Droid's archive command capabilities.

🤖 Prompt for AI Agents
In openspec/specs/cli-update/spec.md around lines 82–93, the spec is ambiguous
about whether Factory Droid must support an archive template with the $ARGUMENTS
placeholder; either add a dedicated "Factory Droid archive template generation"
scenario mirroring the OpenCode archive scenario (include YAML frontmatter
accepting change ID arguments, ensure $ARGUMENTS appears in frontmatter/body,
preserve managed marker-only edits, and do not create missing files), or update
the Archive Command Argument Support requirement to explicitly state which tools
are in-scope (e.g., only OpenCode) and call out that Factory Droid is excluded,
so the spec is unambiguous.

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.

2 participants