Skip to content

feat(continue): add Continue.dev integration for VS Code + JetBrains#221

Open
prooshani wants to merge 2 commits intoJuliusBrussee:mainfrom
prooshani:feat/continue-dev-integration
Open

feat(continue): add Continue.dev integration for VS Code + JetBrains#221
prooshani wants to merge 2 commits intoJuliusBrussee:mainfrom
prooshani:feat/continue-dev-integration

Conversation

@prooshani
Copy link
Copy Markdown

@prooshani prooshani commented Apr 18, 2026

Summary

Adds Continue (the open-source AI assistant for VS Code + JetBrains) as a first-class caveman target, alongside the existing Cursor/Windsurf/Cline/Copilot integrations. While verifying the new integration end-to-end I discovered a latent tool-calling bug that affects every existing agent-mode integration too, and bundled the fix here so the Continue integration ships working from the first merged commit.

Two commits on this branch:

  1. feat(continue) β€” new .continue/rules/caveman.md, CI sync, README/CLAUDE updates
  2. fix(rules) β€” fence tool calls from caveman compression (edits sources only, CI regenerates agent copies post-merge)

Commit 1 β€” Continue.dev integration

  • New .continue/rules/caveman.md with alwaysApply: true frontmatter β€” auto-loaded by Continue in any workspace containing the file (format per the Continue rules docs)
  • CI sync: sync-skill.yml now rebuilds the Continue rule from rules/caveman-activate.md on every change, same pattern already used for Cursor/Windsurf
  • README: new install-table row, What You Get column, and a detail block that explains the distinction between .continue/skills/ (on-demand, what npx skills add -a continue installs) and .continue/rules/ (always-on, what this PR adds). Per-project + global install snippets and reload instructions for both VS Code and JetBrains included.
  • CLAUDE.md + CLAUDE.original.md: synced-files table, CI frontmatter note, and Agent distribution table updated for reviewers/future contributors

Commit 2 β€” tool-call fence (bug fix)

The bug

When caveman is active in an agent mode (Continue, Cursor, Windsurf, Cline, Codex, Claude Code β€” any agent that does function/tool calling), tool calls fail with Tool not found. The compression directive in the rule (short synonyms, abbreviate, drop articles) bleeds into the tool_use JSON, so the model emits read instead of read_file, grep instead of grep_search, {"fp": ...} instead of {"filepath": ...}, and the tool registry rejects the call.

The fix

Added an explicit "tool calls stay exact" fence to both source files:

  • rules/caveman-activate.md β€” short form (mirrors the terse style of that file)
  • skills/caveman/SKILL.md β€” long form with examples, under its own ## Tool Calls section

Per CONTRIBUTING.md, I edited sources only. Post-merge CI will regenerate the agent-specific copies (.cursor/rules/*.mdc, .windsurf/rules/*.md, .continue/rules/*.md, .clinerules/*.md, .github/copilot-instructions.md, all SKILL.md copies) on its next run.

Reproduction

  1. Enable caveman rule in Continue.dev (VS Code, agent mode) against a model that does tool calling
  2. Ask the agent to read any file
  3. Model emits read β†’ Continue resolver: Tool not found

Verification

I ran an 11-step tool-call test (file reads, codebase grep, glob, terminal, edits, multi-tool chain, intentional-error path) in a separate project (haevn admin-panel) under three configurations:

Config Result
Caveman disabled 10/10 pass (step 10 errors exactly as designed) β€” baseline
Caveman enabled, no fence Multiple Tool not found failures on abbreviated tool names
Caveman enabled, with fence (this PR) 10/10 pass, exact tool names: read_file, grep_search, file_glob_search, run_terminal_command, edit_existing_file. Explanation prose still caveman-style (fragments, dropped articles). Tool_use JSON untouched.

Files changed

.continue/rules/caveman.md         | new (22 lines)
.github/workflows/sync-skill.yml   | +8 / -1
CLAUDE.md                          | +3 / -1
CLAUDE.original.md                 | +3 / -1
README.md                          | +29 / -13
rules/caveman-activate.md          | +2 / -0
skills/caveman/SKILL.md            | +12 / -1

No existing agent behavior changed (the fence makes tool calls work where they were silently failing). No secrets, no destructive edits.

Test plan

  • Rule file frontmatter validated against Continue docs (name, description, alwaysApply: true)
  • CI-simulated file generation byte-matches the committed .continue/rules/caveman.md
  • Workflow YAML parses clean
  • Rule loads in Continue (VS Code) inside the caveman repo
  • Rule loads in Continue (VS Code) inside an external project β€” always-on confirmed across arbitrary workspaces
  • stop caveman / normal mode reverts to normal prose (auto-clarity preserved)
  • Code blocks in responses remain unmodified (boundary rule preserved)
  • Agent-mode tool calling works with caveman active after fence β€” 11-step diagnostic passes
  • Reviewer: verify in JetBrains Continue extension (I only tested VS Code; rule format is workspace-agnostic and documented as cross-IDE by Continue)
  • Reviewer: verify fence helps on other agents with tool calling (Cursor agent, Cline, etc.) β€” repro is agent-mode-general, not Continue-specific

Notes for reviewer

  • The Continue detail block was intentionally placed in the existing shared <details> for Cursor/Windsurf/Cline/Copilot rather than creating a new top-level section, since the mechanism (workspace rule file with always-on frontmatter) is identical to Cursor/Windsurf.
  • npx skills add -a continue is already supported upstream by vercel-labs/skills β€” no coordination needed there. That command installs into .continue/skills/ (on-demand). This PR complements it with the always-on rule path.
  • I kept the commits separate so the bug fix can be cherry-picked independently if you'd prefer to ship the Continue integration and the tool-call fence as two PRs. Happy to split if that's cleaner for review.

Adds always-on caveman rule for the Continue extension, alongside the
existing Cursor/Windsurf/Cline/Copilot integrations.

- New .continue/rules/caveman.md with `alwaysApply: true` frontmatter
  (format per docs.continue.dev/customize/deep-dives/rules)
- CI sync: sync-skill.yml now rebuilds the Continue rule file from
  rules/caveman-activate.md, same pattern used for Cursor/Windsurf
- README: install table row (linked to continue.dev), What-You-Get
  column, and detail block explaining the difference between
  `.continue/skills/` (on-demand via `npx skills`) and `.continue/rules/`
  (always-on), with per-project + global install snippets and reload
  instructions for VS Code and JetBrains
- CLAUDE.md + CLAUDE.original.md: synced-files table, CI frontmatter
  note, and Agent distribution table

Tested locally: rule loads in Continue (VS Code) from both the caveman
repo and an external project; `alwaysApply: true` confirmed active from
first message of a fresh chat. `stop caveman` reverts to normal prose.
No changes to existing agents.
Agent-mode tool calls fail with "Tool not found" when caveman is active,
because the compression directive (short synonyms, abbreviate, drop
articles) bleeds into tool_use JSON β€” model emits `read` instead of
`read_file`, `grep` instead of `grep_search`, `{"fp": ...}` instead of
`{"filepath": ...}`.

Fence added to both source files per CONTRIBUTING.md guidance:
- rules/caveman-activate.md (auto-activation body used by all agent
  rule files)
- skills/caveman/SKILL.md (skill body used by Claude Code, Gemini CLI,
  etc.)

Agent-specific copies (.cursor/rules, .windsurf/rules, .continue/rules,
.clinerules, copilot-instructions, SKILL.md copies) are left alone;
sync-skill.yml will regenerate them from the updated sources on the
post-merge CI run.

## Repro

1. Enable caveman rule in Continue.dev (VS Code, agent mode)
2. Ask the agent to read a file
3. Model emits `read` β†’ Continue resolver: "Tool not found"

## Verification

Ran the same 11-step tool-call test in the haevn admin-panel workspace,
before and after the fence:

- Before: tool names compressed (`read`, `grep`), multiple "Tool not
  found" failures
- After: all tool names exact (`read_file`, `grep_search`,
  `file_glob_search`, `run_terminal_command`, `edit_existing_file`).
  Step 10 correctly returns file-not-found error from the tool.
  Explanation prose remains caveman-style (fragments, dropped articles);
  tool_use JSON unaffected.

## Scope

Affects every agent mode with tool calling β€” Claude Code, Cursor agent,
Windsurf agent, Cline, Continue, Codex. Discovered while testing the
Continue.dev integration in the preceding commit on this PR, but the
bug is upstream-general, not Continue-specific. Bundled here so the
Continue integration ships working from the first merged commit.
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