diff --git a/CHANGELOG.md b/CHANGELOG.md index 80c80cd..853675a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added +- **marketplace:** Task-specific launcher script for token optimization + - New script: `scripts/claude-launch.sh` loads only needed plugins via `--plugin-dir` + - Profiles: sprint (default), review, data, infra, full + - Reduces token overhead from ~22K to ~4-6K tokens + - Enables `ENABLE_TOOL_SEARCH=true` for MCP lazy loading - **marketplace:** Lean/full profile switching to reduce token overhead - New script: `scripts/switch-profile.sh` to toggle between profiles - Lean profile: 6 plugins (projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian) diff --git a/README.md b/README.md index b6a55a0..11a4d9a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,31 @@ A collection of Claude Code plugins for project management, infrastructure automation, and development workflows. +## Quick Start + +Use the launcher script to load only the plugins you need, reducing token overhead from ~22K to ~4-6K tokens: + +```bash +./scripts/claude-launch.sh [profile] [extra-args...] +``` + +| Profile | Plugins Loaded | Use Case | +|---------|----------------|----------| +| `sprint` | projman, git-flow, pr-review, code-sentinel, doc-guardian, clarity-assist | Default. Sprint planning and development | +| `review` | pr-review, code-sentinel | Lightweight code review | +| `data` | data-platform, viz-platform | Data engineering and visualization | +| `infra` | cmdb-assistant | Infrastructure/CMDB management | +| `full` | All 12 plugins via marketplace.json | When you need everything | + +**Examples:** +```bash +./scripts/claude-launch.sh # Default sprint profile +./scripts/claude-launch.sh data --model opus # Data profile with Opus +./scripts/claude-launch.sh full # Load all plugins +``` + +The script enables `ENABLE_TOOL_SEARCH=true` for MCP lazy loading. + ## Plugins ### Development & Project Management diff --git a/docs/prompts/INDEX.md b/docs/prompts/INDEX.md new file mode 100644 index 0000000..e69de29 diff --git a/scripts/claude-launch.sh b/scripts/claude-launch.sh new file mode 100755 index 0000000..d295332 --- /dev/null +++ b/scripts/claude-launch.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash +# +# claude-launch.sh - Launch Claude Code with task-specific plugin profiles +# +# Usage: ./scripts/claude-launch.sh [profile] [extra-args...] +# +# Profiles: +# sprint - Project management, git, PR review, security, docs (default) +# infra - Infrastructure/CMDB management +# data - Data engineering and visualization +# review - Code review only (lightweight) +# full - All plugins via marketplace.json (~22K tokens) +# +# Examples: +# ./scripts/claude-launch.sh # Default sprint profile +# ./scripts/claude-launch.sh sprint # Explicit sprint profile +# ./scripts/claude-launch.sh data --model opus # Data profile with Opus +# ./scripts/claude-launch.sh full # Load all plugins +# + +set -euo pipefail + +# Colors for output +CYAN='\033[0;36m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Script directory (for relative plugin paths) +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(dirname "$SCRIPT_DIR")" +PLUGINS_DIR="$REPO_ROOT/plugins" + +# Default profile +PROFILE="${1:-sprint}" + +# Shift profile arg if provided (to pass remaining args to claude) +if [[ $# -gt 0 ]]; then + shift +fi + +# Define plugin lists for each profile +declare -A PROFILES +PROFILES[sprint]="projman git-flow pr-review code-sentinel doc-guardian clarity-assist" +PROFILES[infra]="cmdb-assistant" +PROFILES[data]="data-platform viz-platform" +PROFILES[review]="pr-review code-sentinel" +PROFILES[full]="" # Empty = use marketplace.json + +# Validate profile +if [[ ! ${PROFILES[$PROFILE]+_} ]]; then + echo -e "${YELLOW}Unknown profile: $PROFILE${NC}" + echo "Available profiles: sprint, infra, data, review, full" + exit 1 +fi + +# Build --plugin-dir arguments +PLUGIN_ARGS=() +PLUGIN_LIST="${PROFILES[$PROFILE]}" + +if [[ -n "$PLUGIN_LIST" ]]; then + echo -e "${CYAN}Profile: $PROFILE${NC}" + echo -e "${GREEN}Loading plugins:${NC}" + + for plugin in $PLUGIN_LIST; do + plugin_path="$PLUGINS_DIR/$plugin" + if [[ -d "$plugin_path" ]]; then + echo " • $plugin" + PLUGIN_ARGS+=("--plugin-dir" "$plugin_path") + else + echo -e "${YELLOW} ⚠ $plugin (not found at $plugin_path)${NC}" + fi + done + echo "" +else + echo -e "${CYAN}Profile: full${NC}" + echo -e "${GREEN}Loading all plugins via marketplace.json${NC}" + echo "" +fi + +# Enable MCP Tool Search for deferred tool loading +export ENABLE_TOOL_SEARCH=true +echo -e "${GREEN}MCP Tool Search: enabled${NC}" +echo "" + +# Launch claude with plugin args and any extra arguments +if [[ ${#PLUGIN_ARGS[@]} -gt 0 ]]; then + exec claude "${PLUGIN_ARGS[@]}" "$@" +else + exec claude "$@" +fi