Skip to content

feat: bundled plugin marketplace β€” coda-essentials#17

Open
dgokeeffe wants to merge 1 commit intomainfrom
feat/coda-essentials-plugin
Open

feat: bundled plugin marketplace β€” coda-essentials#17
dgokeeffe wants to merge 1 commit intomainfrom
feat/coda-essentials-plugin

Conversation

@dgokeeffe
Copy link
Copy Markdown
Collaborator

@dgokeeffe dgokeeffe commented May 6, 2026

Priority

P2 (foundation) β€” plugin loader for CODA. Functionally inert until users install plugins from the marketplace, but #16 (databricks-skills) depends on this landing first.


Summary

Migrates datasciencemonkey PR #140 to the new repo home, rebased onto databrickslabs/main.

Introduces a plugin system for CODA. setup_claude.py now stages plugins into ~/.claude/plugins/cache/ and writes the state files Claude Code's plugin loader expects. coda-essentials is the first bundled plugin.

Plugin loader changes (setup_claude.py):

  • Stage plugins into ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/ and write known_marketplaces.json + installed_plugins.json (Claude Code refuses to load plugins without these state files).
  • Inject fork-wide directives (uv version floor, library floors, UC catalog name) into ~/.claude/CLAUDE.md.
  • Editor detection (micro, nano, vim) for Bash deny-rule population so the user's preferred editor isn't blocked.

coda-essentials provides:

  • Agents: build-feature, implementer, prd-writer, test-generator.
  • Commands: /cache-stats, /til.
  • Hooks: session-context-loader, session-crystallize-nudge, push-brain-to-workspace, check-memory-staleness, mlflow-trace-stop.

Rebase note

The branch's original commit overwrote settings.json wholesale; main's PR #153 introduced a read-merge-write pattern to fix a race where setup_mlflow.py env vars got dropped. The conflict was resolved by keeping main's read-merge-write and layering the plugin/permissions/hooks keys on top via settings[key] = ... assignments. No env keys are touched β€” main's per-key assignments handle that. Safe with respect to PR #153.

Test plan

  • Deploy a fresh CODA instance, open Claude Code, verify coda-essentials appears in /plugins
  • Run /cache-stats and confirm it returns token cache statistics
  • Confirm push-brain-to-workspace hook fires on git commit and brain files appear in workspace
  • Confirm fork directives (uv, catalog name) appear in ~/.claude/CLAUDE.md after setup
  • Confirm ~/.claude/settings.json still contains MLflow env vars after setup_mlflow.py runs (regression check for PR #153)

Closes #12

This pull request and its description were written by Isaac.

Introduces a plugin system for CODA instances, with coda-essentials as
the first bundled plugin. setup_claude.py now loads plugins at startup by
staging them into ~/.claude/plugins/cache/ and writing the plugin state
files that Claude Code's plugin loader expects.

coda-essentials provides:
- Agents: build-feature, implementer, prd-writer, test-generator
- Commands: /cache-stats (token cache hit rate), /til (capture learning)
- Hooks: session-context-loader, session-crystallize-nudge,
         push-brain-to-workspace (brain sync to Databricks Workspace),
         check-memory-staleness, mlflow-trace-stop

setup_claude.py additions:
- Plugin staging into ~/.claude/plugins/cache/
- Plugin state file generation so Claude Code recognises installed plugins
- Fork-wide directive injection (uv, library floors, catalog name)
- Editor detection (micro, nano, vim) for Bash deny-rule population

claude_brain_sync.py: syncs ~/.claude/ brain files to Databricks Workspace
on git commit for cross-session persistence.

Co-authored-by: Isaac
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.

Bundled plugin marketplace β€” coda-essentials

1 participant