Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 23 additions & 44 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,27 @@
},
"plugins": [
{
"name": "suggest-compacting",
"description": "Automatically suggests when to manually compact context during long sessions",
"source": "./plugins/suggest-compacting",
"name": "everything-agent",
"description": "AI coding assistant toolkit - development automation, LSP, memory, project management, and workflow tools",
"source": "./",
"category": "development",
"tags": [
"lsp",
"git",
"workflow",
"context-management",
"hooks"
"automation",
"tdd",
"debugging",
"memory",
"jira",
"databricks",
"mcp"
],
"version": "5.23.3"
"version": "5.23.1"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat .claude-plugin/marketplace.json | head -50

Repository: baleen37/everything-agent

Length of output: 1362


🏁 Script executed:

fd -t f 'plugin.json' --exec cat {} \;

Repository: baleen37/everything-agent

Length of output: 9837


🏁 Script executed:

fd -t f '.releaserc.js' --exec cat {} \;

Repository: baleen37/everything-agent

Length of output: 51


🏁 Script executed:

# Get version of everything-agent and other plugins from marketplace.json
rg '"version":\s*"[^"]+' .claude-plugin/marketplace.json -o

Repository: baleen37/everything-agent

Length of output: 296


🏁 Script executed:

cat .claude-plugin/plugin.json 2>/dev/null || echo "File not found"

Repository: baleen37/everything-agent

Length of output: 1714


🏁 Script executed:

cat package.json | head -30

Repository: baleen37/everything-agent

Length of output: 947


🏁 Script executed:

# Check git history to see if this version change was intentional
git log --oneline -n 20 -- .claude-plugin/marketplace.json

Repository: baleen37/everything-agent

Length of output: 133


🏁 Script executed:

fd -t f '\.releaserc' -o '.releaserc.json' -o 'release.config.js' -o 'release.config.mjs'

Repository: baleen37/everything-agent

Length of output: 218


🏁 Script executed:

# Check if there's a script that manages/syncs versions
rg 'marketplace|5\.23\.' --type json --type js -A 2 -B 2 | head -100

Repository: baleen37/everything-agent

Length of output: 2175


🏁 Script executed:

# Look for release or version-related scripts
fd -t f -e 'sh' -e 'js' -e 'mjs' | xargs rg 'marketplace|version.*sync' -l

Repository: baleen37/everything-agent

Length of output: 104


🏁 Script executed:

cat scripts/sync-marketplace-version.sh

Repository: baleen37/everything-agent

Length of output: 509


🏁 Script executed:

cat .releaserc.js

Repository: baleen37/everything-agent

Length of output: 5889


Synchronize everything-agent version to match all other plugins.

The root plugin is at version 5.23.1 while all other plugins in the marketplace are at 5.23.3. The semantic-release configuration explicitly detects and warns about these mismatches and synchronizes all plugin versions during releases. Update the version to 5.23.3.

Proposed fix
-      "version": "5.23.1"
+      "version": "5.23.3"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"version": "5.23.1"
"version": "5.23.3"
🤖 Prompt for AI Agents
In @.claude-plugin/marketplace.json at line 27, Update the plugin version string
for the everything-agent entry in .claude-plugin/marketplace.json from "5.23.1"
to "5.23.3" so it matches the rest of the marketplace plugins; locate the JSON
key "version" (currently "5.23.1") for the everything-agent and replace its
value with "5.23.3", then save and run any local validation (lint/JSON parse) to
ensure the file remains valid.

},
{
"name": "git-guard",
"description": "Git workflow protection hooks - prevents commit and PR bypasses, enforces pre-commit checks",
"description": "Git workflow protection hooks - prevents commit and PR bypasses",
"source": "./plugins/git-guard",
"category": "development",
"tags": [
Expand All @@ -35,7 +42,7 @@
},
{
"name": "lsp-bash",
"description": "Language Server Protocol support for Bash - bash-language-server",
"description": "Bash Language Server integration for Claude Code",
"source": "./plugins/lsp-bash",
"category": "development",
"tags": [
Expand All @@ -48,7 +55,7 @@
},
{
"name": "lsp-typescript",
"description": "Language Server Protocol support for TypeScript and JavaScript - typescript-language-server",
"description": "TypeScript/JavaScript Language Server integration for Claude Code",
"source": "./plugins/lsp-typescript",
"category": "development",
"tags": [
Expand All @@ -62,7 +69,7 @@
},
{
"name": "lsp-python",
"description": "Language Server Protocol support for Python - pyright",
"description": "Python Language Server integration using Pyright for Claude Code",
"source": "./plugins/lsp-python",
"category": "development",
"tags": [
Expand All @@ -75,7 +82,7 @@
},
{
"name": "lsp-go",
"description": "Language Server Protocol support for Go - gopls",
"description": "Language Server Protocol support for Go - provides gopls integration for Go code completion, diagnostics, and navigation",
"source": "./plugins/lsp-go",
"category": "development",
"tags": [
Expand All @@ -88,7 +95,7 @@
},
{
"name": "lsp-kotlin",
"description": "Language Server Protocol support for Kotlin - kotlin-language-server",
"description": "Language Server Protocol support for Kotlin - code completion, diagnostics, go-to-definition, and other IDE features",
"source": "./plugins/lsp-kotlin",
"category": "development",
"tags": [
Expand All @@ -101,7 +108,7 @@
},
{
"name": "lsp-lua",
"description": "Language Server Protocol support for Lua - lua-language-server",
"description": "Lua Language Server Protocol support - lua-language-server for .lua files",
"source": "./plugins/lsp-lua",
"category": "development",
"tags": [
Expand All @@ -114,7 +121,7 @@
},
{
"name": "lsp-nix",
"description": "Language Server Protocol support for Nix - nil",
"description": "Language Server Protocol support for Nix - provides autocomplete, diagnostics, and code navigation for Nix files",
"source": "./plugins/lsp-nix",
"category": "development",
"tags": [
Expand All @@ -125,34 +132,6 @@
],
"version": "5.23.3"
},
{
"name": "me",
"description": "Personal Claude Code configuration - TDD, systematic debugging, git workflow, code review, development automation",
"source": "./plugins/me",
"category": "development",
"tags": [
"workflow",
"automation",
"tdd",
"git",
"code-review",
"debugging"
],
"version": "5.23.3"
},
{
"name": "ralph-loop",
"description": "Continuous self-referential AI loops for interactive iterative development, implementing the Ralph Wiggum technique",
"source": "./plugins/ralph-loop",
"category": "development",
"tags": [
"automation",
"iteration",
"loop",
"ai"
],
"version": "5.23.3"
},
{
"name": "handoff",
"description": "Session handoff plugin for Claude Code - save and restore session context between sessions",
Expand All @@ -168,7 +147,7 @@
},
{
"name": "databricks-devtools",
"description": "Databricks CLI wrapper for workspace management and SQL execution",
"description": "Databricks SQL schema explorer for Unity Catalog discovery",
"source": "./plugins/databricks-devtools",
"category": "development",
"tags": [
Expand All @@ -182,7 +161,7 @@
},
{
"name": "jira",
"description": "Jira and Confluence integration via Atlassian MCP server - issue management, status reports, meeting notes, and backlog creation",
"description": "Jira integration for issue tracking and project management. Triage bugs, capture tasks from notes, generate status reports, and automate Jira workflows using Atlassian's MCP server.",
"source": "./plugins/jira",
"category": "productivity",
"tags": [
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ lib64/

# Exception: Include compiled/built output for specific plugins
!plugins/conversation-memory/dist/
!plugins/suggest-compacting/dist/

parts/
sdist/
Expand Down
56 changes: 40 additions & 16 deletions .releaserc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,60 @@ import { readFileSync, writeFileSync, readdirSync, existsSync } from 'fs';
import { resolve } from 'path';

/**
* Dynamically discover all plugins from the plugins directory.
* Dynamically discover all plugins from both root and plugins directory.
* A plugin is identified by the presence of .claude-plugin/plugin.json.
*
* Supports two types of plugins:
* - Root canonical plugin: ./.claude-plugin/plugin.json (source: "./")
* - Plugins directory: ./plugins/<name>/.claude-plugin/plugin.json (source: "./plugins/<name>")
*
* @returns {string[]} Array of plugin identifiers ('.' for root, name for plugins/*)
*/
function discoverPlugins() {
const pluginsDir = resolve(process.cwd(), 'plugins');
const plugins = [];

for (const entry of readdirSync(pluginsDir, { withFileTypes: true })) {
if (entry.isDirectory()) {
const pluginJsonPath = resolve(pluginsDir, entry.name, '.claude-plugin/plugin.json');
if (existsSync(pluginJsonPath)) {
plugins.push(entry.name);
// Check for root canonical plugin
const rootPluginJsonPath = resolve(process.cwd(), '.claude-plugin/plugin.json');
if (existsSync(rootPluginJsonPath)) {
plugins.push('.'); // Use '.' to indicate root plugin
}

// Check plugins directory
const pluginsDir = resolve(process.cwd(), 'plugins');
if (existsSync(pluginsDir)) {
for (const entry of readdirSync(pluginsDir, { withFileTypes: true })) {
if (entry.isDirectory()) {
const pluginJsonPath = resolve(pluginsDir, entry.name, '.claude-plugin/plugin.json');
if (existsSync(pluginJsonPath)) {
plugins.push(entry.name);
}
}
}
}

return plugins;
}

/**
* Get the plugin.json path for a given plugin identifier.
* @param {string} plugin - Plugin identifier ('.' for root, name for plugins/*)
* @returns {string} Absolute path to plugin.json
*/
function getPluginJsonPath(plugin) {
if (plugin === '.') {
return resolve(process.cwd(), '.claude-plugin/plugin.json');
}
return resolve(process.cwd(), `plugins/${plugin}/.claude-plugin/plugin.json`);
}

/**
* Custom plugin to update version in plugin.json files.
*
* Ensures all plugin.json versions are synchronized with marketplace.json
* during the release process. Each plugin has its own plugin.json that needs
* to be updated to the same version.
*
* Supports both root canonical plugin ('.') and plugins directory plugins.
*/
function updatePluginJsons() {
return {
Expand All @@ -43,15 +72,12 @@ function updatePluginJsons() {

// Check each plugin.json
for (const plugin of plugins) {
const pluginJsonPath = resolve(
process.cwd(),
`plugins/${plugin}/.claude-plugin/plugin.json`
);
const pluginJsonPath = getPluginJsonPath(plugin);
const pluginJson = JSON.parse(readFileSync(pluginJsonPath, 'utf8'));

if (pluginJson.version !== lastVersion) {
mismatches.push({
plugin,
plugin: plugin === '.' ? '(root)' : plugin,
current: pluginJson.version,
expected: lastVersion,
});
Expand Down Expand Up @@ -88,10 +114,7 @@ function updatePluginJsons() {
const plugins = discoverPlugins();

for (const plugin of plugins) {
const pluginJsonPath = resolve(
process.cwd(),
`plugins/${plugin}/.claude-plugin/plugin.json`
);
const pluginJsonPath = getPluginJsonPath(plugin);
const pluginJson = JSON.parse(readFileSync(pluginJsonPath, 'utf8'));
pluginJson.version = version;
writeFileSync(pluginJsonPath, JSON.stringify(pluginJson, null, 2) + '\n');
Expand Down Expand Up @@ -135,6 +158,7 @@ const plugins = [
'@semantic-release/git',
{
assets: [
'.claude-plugin/plugin.json',
'plugins/*/.claude-plugin/plugin.json',
'.claude-plugin/marketplace.json',
],
Expand Down
Loading
Loading