Skip to content

refactor(plugin): rename recce-dev to recce, add recce-dev for internal tooling#13

Merged
kentwelcome merged 11 commits intomainfrom
feat/plugin-rename-and-recce-dev
Mar 13, 2026
Merged

refactor(plugin): rename recce-dev to recce, add recce-dev for internal tooling#13
kentwelcome merged 11 commits intomainfrom
feat/plugin-rename-and-recce-dev

Conversation

@iamcxa
Copy link
Copy Markdown
Contributor

@iamcxa iamcxa commented Mar 12, 2026

Summary

  • Rename recce-dev plugin → recce — the plugin serves end-user dbt developers, not Recce internal dev
  • Create new recce-dev plugin for internal development tools (MCP E2E validation, benchmarking)
  • Update all MCP server names, tool references, settings paths, and marketplace registry

Reviewer Guide

Commit What Key files
e9db57b Rename recce-dev → recce, update all refs plugin.json, .mcp.json, recce-reviewer.md, start-mcp.sh, check-mcp.sh
080f21a New recce-dev plugin with mcp-e2e-validate plugins/recce-dev/, SKILL.md, preflight.sh

Design notes:

  • MCP server name changes from recce-dev to recce → all mcp__recce-dev__* tool refs become mcp__recce__*
  • Cross-plugin path: ${CLAUDE_PLUGIN_ROOT}/../recce assumes sibling layout (works in monorepo + marketplace install)
  • Settings paths: .claude/recce-dev/.claude/recce/ (breaking for existing users with custom settings)

Test plan

  • Run /mcp-e2e-validate against jaffle_shop_golden to verify the full event chain works with renamed plugin
  • Verify recce-reviewer agent dispatches correctly with new mcp__recce__* tool names

🤖 Generated with Claude Code

iamcxa and others added 2 commits March 12, 2026 18:15
The recce-dev plugin serves end-user dbt developers, not Recce internal
development — the name was misleading. Rename to "recce" for clarity.

Updates all internal references:
- MCP server name: recce-dev → recce (mcp__recce__*)
- Settings paths: .claude/recce-dev/ → .claude/recce/
- Agent tool declarations, scripts, README
- Marketplace registry: version bumped to 0.2.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New plugin for Recce developers (separate from end-user "recce" plugin):
- /mcp-e2e-validate skill: full event chain validation + benchmark
- preflight.sh: environment checks with cross-plugin path resolution
- pass-criteria.md: validation criteria and report template

Uses sibling path (${CLAUDE_PLUGIN_ROOT}/../recce) to reference the
recce plugin's MCP scripts, keeping the two plugins decoupled.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor Author

@iamcxa iamcxa left a comment

Choose a reason for hiding this comment

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

Self-review: key design decisions and cross-plugin architecture notes.

Comment thread plugins/recce-dev/skills/mcp-e2e-validate/SKILL.md
Comment thread plugins/recce/.mcp.json
Comment thread plugins/recce-dev/skills/mcp-e2e-validate/scripts/preflight.sh Outdated
@iamcxa
Copy link
Copy Markdown
Contributor Author

iamcxa commented Mar 12, 2026

MCP E2E Benchmark Report

Date: 2026-03-12
recce version: 1.40.0.dev0
Project: jaffle_shop
Environment: Snowflake (dual-env)
Test model: stg_customers
Plugin version: recce 0.2.0 (renamed from recce-dev)

Event Chain Results

Step Result Notes
Pre-flight PASS All checks green, stale files auto-cleaned
MCP Startup PASS Port 8082, PID 32010 (via SessionStart hook)
Tier 1 Tracking FAIL PostToolUse hook not fired (mid-session install limitation)
Tier 2 Suggestion PASS dbt run PASS=4 models
Review Agent PASS Risk: LOW, all 4 models reviewed
Cleanup PASS Model reverted, server stopped, no stale files

Agent Performance

Metric Value
Tool calls 14
Tokens consumed 16,936
Wall-clock time 110s

Comparison (baseline from previous session — recce 1.39.x, pre-PR#1197)

Metric Baseline Current Delta
Tool calls 35 14 -21 (-60%)
Tokens 30,311 16,936 -13,375 (-44%)
Time 483s 110s -373s (-77%)

Data Review Summary

Models reviewed: stg_customers, customers, customer_order_pattern, customer_segments
Risk level: LOW

Model Row Count Schema
stg_customers view — skipped No change (3 columns)
customers No change (1,856 / 1,856) No change (7 columns)
customer_order_pattern No change (1,856 / 1,856) No change (6 columns)
customer_segments No change (1,856 / 1,856) No change (5 columns)

Known Issues

  1. Cross-plugin sibling path broken in cache layout${CLAUDE_PLUGIN_ROOT}/../recce resolves incorrectly due to versioned cache dirs (recce-dev/0.1.0/../reccerecce/0.2.0/). Needs fix: walk up 2 levels + glob for version dir.
  2. Tier 1 hook not firing after mid-session plugin install — known Claude Code limitation, requires new session.

Verdict: PASS (with known limitations)

5/6 event chain steps passed. Tier 1 failure is a platform limitation, not a plugin bug.

🤖 Generated with Claude Code

iamcxa and others added 4 commits March 12, 2026 18:41
- Add packages/recce-docs-mcp/scripts/build-bundle.sh (CJS format, import.meta.url polyfill)
- Replace broken symlinks with committed dist/cli.js bundles (~2.1MB each)
- Add build:bundle script to packages/recce-docs-mcp/package.json
- Gitignore dist-bundle/ intermediate build output
- Fix recce-quickstart/.mcp.json: dist/index.js -> dist/cli.js (MKTD-04)
- Both plugin bundles are byte-for-byte identical (verified with diff -q)
…tion

- Change PLUGIN_ROOT from plugins/recce-dev to plugins/recce
- Update Test 1: assert plugin name is 'recce' (not 'recce-dev')
- Update Test 6: assert marketplace.json references 'recce' and './plugins/recce'
- Update Test 7: remove servers/ exclusion — real dirs replace symlinks (MKTD-02)
- Add Test 8: bundle distribution assertions with MCP handshake validation (MKTD-03)
- All 32 tests pass (0 failures)
- Add resolve-recce-root.sh: auto-detects monorepo vs cache layout
  to locate sibling recce plugin (fixes broken sibling path in cache)
- Update preflight.sh: use resolve script, remove hardcoded fallback
- Update SKILL.md: CSO-compliant description, shell variable note,
  Tier 1 fallback, dispatch mechanism, Common Mistakes section
- Add test-resolve-recce-root.sh: 10 test cases covering both layouts,
  multiple versions, error cases, and preflight integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Addresses plugin-validator WARN about missing script documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@iamcxa iamcxa self-assigned this Mar 12, 2026
@iamcxa iamcxa requested a review from kentwelcome March 12, 2026 12:40
iamcxa and others added 4 commits March 12, 2026 21:02
- Add esbuild@0.27.3 as exact devDependency (no ^) to packages/recce-docs-mcp
- Update build-bundle.sh to use $PKG/node_modules/.bin/esbuild (was $REPO_ROOT)
- Add node_modules/ to root .gitignore to prevent accidental commit
- Verified: bundle rebuilds successfully, MCP handshake smoke test passes
…heck

- scripts/hooks/pre-push: git timestamp comparison staleness guard
- scripts/install-hooks.sh: copies hook to .git/hooks/ with chmod +x
- scripts/check-bundle-freshness.sh: local CI simulation (npm ci + rebuild + git diff)
- Verified: hook exits 0 on fresh tree, freshness check reports PASS
- Triggers on push and pull_request with path filter packages/recce-docs-mcp/src/**
- Installs exact esbuild@0.27.3 via npm ci --prefix packages/recce-docs-mcp
- Rebuilds bundle via bash packages/recce-docs-mcp/scripts/build-bundle.sh
- Fails PR if git diff shows any diff in plugins/*/servers/recce-docs-mcp/dist/cli.js
- Uploads expected bundle as artifact on failure for contributor download
- Determinism confirmed: two consecutive freshness checks both exit 0
Root README was outdated (only described recce-quickstart). Now covers
recce, recce-dev, and recce-quickstart with installation, components,
and troubleshooting sections.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the Claude Code plugin structure by renaming the end-user plugin from recce-dev to recce, introducing a new recce-dev plugin for internal tooling, and updating MCP server/tool naming and marketplace distribution accordingly.

Changes:

  • Renames end-user MCP server/tool namespace from recce-devrecce and updates plugin settings paths (.claude/recce-dev/.claude/recce/).
  • Adds a new internal recce-dev plugin focused on MCP E2E validation/benchmarking, including cross-plugin recce root resolution.
  • Switches recce-docs-mcp distribution from symlinks to bundled dist/cli.js, plus adds a CI freshness check and local helper scripts/hooks.

Reviewed changes

Copilot reviewed 27 out of 39 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tests/test-resolve-recce-root.sh Adds unit tests for recce plugin root resolution from the internal recce-dev plugin.
tests/smoke/test-marketplace-install.sh Updates smoke validation to target the new recce plugin and enforces bundled docs server artifacts.
scripts/install-hooks.sh Adds a helper to install repo git hooks locally.
scripts/hooks/pre-push Adds a pre-push guard to prevent pushing stale bundled recce-docs-mcp artifacts.
scripts/check-bundle-freshness.sh Adds a local script to reproduce the CI bundle freshness check.
plugins/recce/skills/recce-review/SKILL.md Introduces the /recce-review skill under the renamed end-user recce plugin.
plugins/recce/settings/defaults.json Adds default settings for the recce plugin (including MCP port).
plugins/recce/scripts/stop-mcp.sh Updates plugin naming in stop script comments for recce.
plugins/recce/scripts/start-mcp.sh Updates settings file paths from recce-devrecce and related messaging.
plugins/recce/scripts/check-mcp.sh Updates settings file paths from recce-devrecce.
plugins/recce/hooks/scripts/track-changes.sh Adds hook script to track dbt model edits into a project-scoped temp file.
plugins/recce/hooks/scripts/suggest-review.sh Adds hook script to suggest /recce-review after dbt commands when changes are tracked.
plugins/recce/hooks/scripts/session-start.sh Adds SessionStart hook to detect dbt context and auto-start MCP when possible.
plugins/recce/hooks/scripts/pre-commit-guard.sh Adds non-blocking pre-commit warning hook when tracked models haven’t been reviewed.
plugins/recce/hooks/hooks.json Registers the new hooks for the recce plugin.
plugins/recce/agents/recce-reviewer.md Updates tool names and MCP server name to recce.
plugins/recce/README.md Adds end-user documentation for the renamed recce plugin.
plugins/recce/LICENSE Adds plugin-level MIT license file for the new recce plugin directory.
plugins/recce/.mcp.json Renames MCP server from recce-devrecce and points docs server to dist/cli.js.
plugins/recce/.claude-plugin/plugin.json Adds marketplace plugin metadata for recce.
plugins/recce-quickstart/servers/recce-docs-mcp Removes the symlink in favor of bundled docs server artifacts.
plugins/recce-quickstart/.mcp.json Updates docs server entrypoint from dist/index.js to bundled dist/cli.js.
plugins/recce-dev/skills/mcp-e2e-validate/scripts/preflight.sh Adds preflight checks for the new internal recce-dev E2E validation flow.
plugins/recce-dev/skills/mcp-e2e-validate/references/pass-criteria.md Adds pass criteria and benchmark reporting template for internal validation.
plugins/recce-dev/skills/mcp-e2e-validate/SKILL.md Adds /mcp-e2e-validate skill for internal validation/benchmarking.
plugins/recce-dev/servers/recce-docs-mcp Removes the symlink in favor of bundled docs server artifacts.
plugins/recce-dev/scripts/resolve-recce-root.sh Adds cross-plugin resolver to locate sibling recce plugin in monorepo or cache layouts.
plugins/recce-dev/README.md Reorients recce-dev plugin docs to internal tooling purpose.
plugins/recce-dev/.claude-plugin/plugin.json Updates recce-dev metadata to reflect internal tooling and new keywords/description.
packages/recce-docs-mcp/scripts/build-bundle.sh Adds bundling script to produce a self-contained cli.js for plugin distribution.
packages/recce-docs-mcp/package.json Adds build:bundle script and pins esbuild for bundling.
packages/recce-docs-mcp/package-lock.json Updates lockfile for esbuild and dependency graph changes.
packages/recce-docs-mcp/.gitignore Ignores dist-bundle/ output directory.
README.md Updates root docs to describe the three-plugin layout and updated install commands.
.gitignore Ignores root node_modules/ to avoid accidental commits.
.github/workflows/bundle-freshness.yml Adds CI workflow to ensure committed bundled artifacts match current source.
.claude-plugin/marketplace.json Adds recce to marketplace registry and updates recce-dev description.
Files not reviewed (1)
  • packages/recce-docs-mcp/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread plugins/recce-dev/skills/mcp-e2e-validate/SKILL.md
Comment thread plugins/recce-dev/scripts/resolve-recce-root.sh
Comment thread plugins/recce/README.md Outdated
Comment thread plugins/recce/README.md Outdated
Comment on lines +11 to +14
- 'packages/recce-docs-mcp/src/**'
pull_request:
paths:
- 'packages/recce-docs-mcp/src/**'
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Valid observation. Build script changes are rare and the current filter covers the primary case (src changes). Adding build-bundle.sh and package.json to the paths filter is a reasonable improvement — will address as a follow-up.

Comment thread plugins/recce-dev/scripts/resolve-recce-root.sh
- Remove misleading "source this file" guidance from resolve-recce-root.sh
  (exit terminates caller shell; eval is the correct usage)
- Fix README hook descriptions to match hooks.json implementation
- Replace outdated symlink limitation with current bundle distribution note

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@iamcxa
Copy link
Copy Markdown
Contributor Author

iamcxa commented Mar 13, 2026

All review feedback addressed — please see individual thread replies for details.

@copilot-pull-request-reviewer

Copy link
Copy Markdown

Copilot AI commented Mar 13, 2026

@iamcxa I've opened a new pull request, #14, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown
Member

@kentwelcome kentwelcome left a comment

Choose a reason for hiding this comment

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

LGTM

@kentwelcome kentwelcome merged commit 6bd79c5 into main Mar 13, 2026
@kentwelcome kentwelcome deleted the feat/plugin-rename-and-recce-dev branch March 13, 2026 03:54
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.

4 participants