Skip to content

Conversation

@B2F
Copy link
Contributor

@B2F B2F commented Nov 5, 2025

The Cline implementation is incorrect, it should be using workflows, just as Kilo Code (Cline is the master project !).

For the record: https://cline.bot/blog/stop-adding-rules-when-you-need-workflows

Changes:

  • Update ClineSlashCommandConfigurator to use .clinerules/workflows/ paths
  • Update tests to expect correct workflow file locations
  • Update README.md to reflect workflows instead of rules
  • Fixes Cline integration to match Cline's architecture per their blog post

Summary by CodeRabbit

  • Breaking Changes

    • Cline workflow files moved into a workflows subdirectory; re-run initialization to regenerate Cline workflow files with the updated layout.
  • Documentation

    • README and CLI init docs updated to describe the new .clinerules/workflows organization and the three generated Cline workflow files (proposal, apply, archive).
  • Tests

    • Test cases updated to reference and validate the new workflows paths and templates.

- Update ClineSlashCommandConfigurator to use .clinerules/workflows/ paths
- Update tests to expect correct workflow file locations
- Update README.md to reflect workflows instead of rules
- Fixes Cline integration to match Cline's architecture per their blog post
@B2F B2F requested a review from TabishB as a code owner November 5, 2025 16:46
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 5, 2025

Walkthrough

Relocates Cline OpenSpec workflow files from .clinerules/ to .clinerules/workflows/. Updates the ClineSlashCommandConfigurator file paths, adjusts tests and CLI-init spec, and updates README; notes a breaking change requiring users to re-run openspec init.

Changes

Cohort / File(s) Summary
Documentation & Specs
README.md, openspec/changes/fix-cline-workflows-implementation/proposal.md, openspec/changes/fix-cline-workflows-implementation/tasks.md, openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
Updated wording and specs to document Cline workflows now located in .clinerules/workflows/ and to describe generated workflow files (openspec-proposal.md, openspec-apply.md, openspec-archive.md) and the breaking change.
Configurator Implementation
src/core/configurators/slash/cline.ts
Changed FILE_PATHS mapping to reference .clinerules/workflows/openspec-*.md instead of .clinerules/openspec-*.md for Cline slash commands.
Tests
test/core/init.test.ts, test/core/update.test.ts
Updated test expectations and paths to assert files exist under .clinerules/workflows/ and adjusted test descriptions/log messages to reference "workflow" files.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI as openspec CLI
    participant Config as ClineSlashCommandConfigurator
    participant FS as Filesystem (.clinerules)

    Note over CLI,Config: Init flow (updated)
    User->>CLI: run `openspec init` (select Cline)
    CLI->>Config: generate Cline workflow files
    Config->>FS: create `.clinerules/workflows/openspec-proposal.md`
    Config->>FS: create `.clinerules/workflows/openspec-apply.md`
    Config->>FS: create `.clinerules/workflows/openspec-archive.md`
    FS-->>CLI: files created
    CLI-->>User: init complete (instructions to re-run if migrating)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Files are few and changes are homogeneous (path constant + docs + tests).
  • Review focus:
    • src/core/configurators/slash/cline.ts — ensure FILE_PATHS updated correctly for all SlashCommandId entries.
    • test/core/init.test.ts and test/core/update.test.ts — validate assertions and log expectations reference the new paths.
    • README and CLI-init spec — confirm wording and breaking-change guidance are accurate.

Possibly related PRs

Poem

🐰 I hopped through folders, tidy and spry,
Moved workflows where clear pathways lie,
Three markdown sprouts now softly bloom,
Cline's commands find a cozier room,
Re-run init — and watch them fly.

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 title directly and accurately describes the main change: migrating Cline from using rules to workflows for slash commands, which is the core objective of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent 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 d7c5ae8 and 7e7d238.

📒 Files selected for processing (3)
  • README.md (1 hunks)
  • test/core/init.test.ts (1 hunks)
  • test/core/update.test.ts (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-22T06:05:06.615Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-22T06:05:06.615Z
Learning: Applies to openspec/changes/*/{proposal.md,tasks.md,design.md,specs/**/spec.md} : Scaffold each change with proposal.md, tasks.md, optional design.md, and delta spec files under openspec/changes/<change-id>/specs/<capability>/spec.md

Applied to files:

  • test/core/init.test.ts
🔇 Additional comments (2)
test/core/update.test.ts (1)

301-338: LGTM! Test correctly updated for workflow-based Cline files.

The test name, file paths, and log message expectations have been properly updated to reflect the migration from .clinerules/ to .clinerules/workflows/. The test logic remains sound and continues to validate file refresh behavior, content preservation, and proper logging.

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

484-521: LGTM! Test properly updated for workflow-based Cline integration.

The test has been correctly updated to reflect the architectural change:

  • Test name accurately describes workflow file creation
  • All three file paths consistently include the /workflows subdirectory
  • Content assertions verify the correct Cline workflow format with markdown headers (# OpenSpec: {action})
  • Test coverage remains comprehensive for proposal, apply, and archive workflows

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.

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: 0

🧹 Nitpick comments (1)
openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md (1)

4-11: Add normative wording (SHALL/MUST) to requirement body.

Per guidelines, requirements should use SHALL/MUST for normative wording. Currently the requirement section jumps directly to the scenario without a requirement statement. Consider adding a normative preamble such as:

### Requirement: Slash Command Configuration

The system SHALL create three OpenSpec workflow files at `.clinerules/workflows/` when the user selects Cline during initialization, populated from shared templates with Cline-specific Markdown heading frontmatter.

#### Scenario: Generating slash commands for Cline
- **WHEN** the user selects Cline during initialization
...
📜 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 b66dc43 and d7c5ae8.

📒 Files selected for processing (2)
  • openspec/changes/fix-cline-workflows-implementation/proposal.md (1 hunks)
  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
openspec/changes/*/{proposal.md,tasks.md,design.md,specs/**/spec.md}

📄 CodeRabbit inference engine (openspec/AGENTS.md)

Scaffold each change with proposal.md, tasks.md, optional design.md, and delta spec files under openspec/changes//specs//spec.md

Files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
  • openspec/changes/fix-cline-workflows-implementation/proposal.md
openspec/changes/*/**

📄 CodeRabbit inference engine (openspec/AGENTS.md)

Choose a unique kebab-case, verb-led change-id (add-, update-, remove-, refactor-) for openspec/changes//

Files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
  • openspec/changes/fix-cline-workflows-implementation/proposal.md
openspec/{specs/**/spec.md,changes/*/specs/**/spec.md}

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/{specs/**/spec.md,changes/*/specs/**/spec.md}: Write requirements using SHALL/MUST for normative wording
Every requirement must include at least one scenario, formatted exactly with a '#### Scenario: ' header (no bullets or bold)
Under ADDED, introduce new capabilities as standalone requirements rather than altering existing ones

Files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
openspec/changes/*/specs/**/spec.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/changes/*/specs/**/spec.md: Use ADDED, MODIFIED, REMOVED, or RENAMED sections when authoring deltas; place changed requirements under the correct operation header
For MODIFIED requirements, paste the full existing requirement block (header through scenarios) and ensure the header text matches exactly (whitespace-insensitive)
Use RENAMED when only the requirement name changes; if behavior changes too, use RENAMED plus MODIFIED referencing the new name

Files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
🧠 Learnings (6)
📚 Learning: 2025-10-22T06:05:06.615Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-22T06:05:06.615Z
Learning: Applies to openspec/changes/*/{proposal.md,tasks.md,design.md,specs/**/spec.md} : Scaffold each change with proposal.md, tasks.md, optional design.md, and delta spec files under openspec/changes/<change-id>/specs/<capability>/spec.md

Applied to files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
  • openspec/changes/fix-cline-workflows-implementation/proposal.md
📚 Learning: 2025-10-22T06:05:06.615Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-22T06:05:06.615Z
Learning: Applies to openspec/changes/*/specs/**/spec.md : Use ADDED, MODIFIED, REMOVED, or RENAMED sections when authoring deltas; place changed requirements under the correct operation header

Applied to files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
  • openspec/changes/fix-cline-workflows-implementation/proposal.md
📚 Learning: 2025-10-22T06:05:06.615Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-22T06:05:06.615Z
Learning: Prefer modifying existing specs over creating duplicates; if multiple capabilities are affected, create one delta spec.md per capability

Applied to files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
📚 Learning: 2025-10-22T06:05:06.615Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-22T06:05:06.615Z
Learning: Applies to openspec/{specs/**/spec.md,changes/*/specs/**/spec.md} : Under ADDED, introduce new capabilities as standalone requirements rather than altering existing ones

Applied to files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
  • openspec/changes/fix-cline-workflows-implementation/proposal.md
📚 Learning: 2025-10-21T03:05:07.856Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-21T03:05:07.856Z
Learning: Use @/openspec/AGENTS.md to learn how to create and apply change proposals

Applied to files:

  • openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md
📚 Learning: 2025-10-22T06:05:06.615Z
Learnt from: CR
Repo: Fission-AI/OpenSpec PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-10-22T06:05:06.615Z
Learning: Applies to openspec/specs/**/spec.md : Keep current, deployed specs in openspec/specs/<capability>/spec.md (one focused capability per directory)

Applied to files:

  • openspec/changes/fix-cline-workflows-implementation/proposal.md
🔇 Additional comments (3)
openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md (1)

3-11: Include the original requirement block in MODIFIED section per guidelines.

Per coding guidelines, MODIFIED requirements must include the full existing requirement block (header through scenarios) with exact header text matching to enable comparison. Please include the original "Slash Command Configuration" requirement from the base spec so reviewers can see what changed.

Can you confirm the original requirement text from openspec/specs/cli-init/spec.md and include it above the new scenario?

openspec/changes/fix-cline-workflows-implementation/proposal.md (2)

1-13: Excellent proposal structure and architectural rationale.

The proposal clearly articulates the architectural issue (workflows vs. rules per Cline's guidance), lists concrete changes, and appropriately flags the BREAKING change. The rationale is sound and well-referenced.


1-2: Verify complete change scaffolding.

Per guidelines, each change should be scaffolded with proposal.md, tasks.md, optional design.md, and delta specs. The provided files include proposal.md and specs/cli-init/spec.md, but tasks.md is not in the review context. Please confirm tasks.md exists in the change directory.

Copy link
Contributor

@TabishB TabishB left a comment

Choose a reason for hiding this comment

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

@B2F Yep, this makes sense. I didn't check the workflow for cline when it got merged, my bad. I've check for this and you're right.

@TabishB TabishB merged commit 537e607 into Fission-AI:main Nov 13, 2025
7 checks passed
Balancor pushed a commit to Balancor/OpenSpec that referenced this pull request Nov 29, 2025
…-AI#283)

* fix(cline): use workflows instead of rules for slash commands

- Update ClineSlashCommandConfigurator to use .clinerules/workflows/ paths
- Update tests to expect correct workflow file locations
- Update README.md to reflect workflows instead of rules
- Fixes Cline integration to match Cline's architecture per their blog post

* Adds spec for fix-cline-workflows-implementation

---------

Co-authored-by: didier <didier.boff@axess.fr>
Co-authored-by: Tabish Bidiwale <30385142+TabishB@users.noreply.github.com>
fenghaitao pushed a commit to fenghaitao/OpenSpec that referenced this pull request Dec 10, 2025
…-AI#283)

* fix(cline): use workflows instead of rules for slash commands

- Update ClineSlashCommandConfigurator to use .clinerules/workflows/ paths
- Update tests to expect correct workflow file locations
- Update README.md to reflect workflows instead of rules
- Fixes Cline integration to match Cline's architecture per their blog post

* Adds spec for fix-cline-workflows-implementation

---------

Co-authored-by: didier <didier.boff@axess.fr>
Co-authored-by: Tabish Bidiwale <30385142+TabishB@users.noreply.github.com>
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