Add new data-platform plugin for data engineering workflows with: MCP Server (32 tools): - pandas operations (14 tools): read_csv, read_parquet, read_json, to_csv, to_parquet, describe, head, tail, filter, select, groupby, join, list_data, drop_data - PostgreSQL/PostGIS (10 tools): pg_connect, pg_query, pg_execute, pg_tables, pg_columns, pg_schemas, st_tables, st_geometry_type, st_srid, st_extent - dbt integration (8 tools): dbt_parse, dbt_run, dbt_test, dbt_build, dbt_compile, dbt_ls, dbt_docs_generate, dbt_lineage Plugin Features: - Arrow IPC data_ref system for DataFrame persistence across tool calls - Pre-execution validation for dbt with `dbt parse` - SessionStart hook for PostgreSQL connectivity check (non-blocking) - Hybrid configuration (system ~/.config/claude/postgres.env + project .env) - Memory management with 100k row limit and chunking support Commands: /initial-setup, /ingest, /profile, /schema, /explain, /lineage, /run Agents: data-ingestion, data-analysis Test suite: 71 tests covering config, data store, pandas, postgres, dbt tools Addresses data workflow issues from personal-portfolio project: - Lost data after multiple interactions (solved by Arrow IPC data_ref) - dbt 1.9+ syntax deprecation (solved by pre-execution validation) - Ungraceful PostgreSQL error handling (solved by SessionStart hook) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
45 lines
1.4 KiB
Bash
Executable File
45 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
||
# Verify all hooks are command type (not prompt)
|
||
# Run this after any plugin update
|
||
|
||
echo "=== HOOK VERIFICATION ==="
|
||
echo ""
|
||
|
||
FAILED=0
|
||
|
||
# Check ALL hooks.json files in .claude directory
|
||
for f in $(find ~/.claude -name "hooks.json" 2>/dev/null); do
|
||
if grep -q '"type": "prompt"' "$f" || grep -q '"type":"prompt"' "$f"; then
|
||
echo "❌ PROMPT HOOK FOUND: $f"
|
||
FAILED=1
|
||
fi
|
||
done
|
||
|
||
# Note about cache (informational only - do NOT clear mid-session)
|
||
if [ -d ~/.claude/plugins/cache/leo-claude-mktplace ]; then
|
||
echo "ℹ️ Cache exists: ~/.claude/plugins/cache/leo-claude-mktplace"
|
||
echo " (This is normal - do NOT clear mid-session or MCP tools will break)"
|
||
echo " To apply plugin changes: restart Claude Code session"
|
||
fi
|
||
|
||
# Verify installed hooks are command type
|
||
for plugin in doc-guardian code-sentinel projman pr-review project-hygiene data-platform; do
|
||
HOOK_FILE=~/.claude/plugins/marketplaces/leo-claude-mktplace/plugins/$plugin/hooks/hooks.json
|
||
if [ -f "$HOOK_FILE" ]; then
|
||
if grep -q '"type": "command"' "$HOOK_FILE" || grep -q '"type":"command"' "$HOOK_FILE"; then
|
||
echo "✓ $plugin: command type"
|
||
else
|
||
echo "❌ $plugin: NOT command type"
|
||
FAILED=1
|
||
fi
|
||
fi
|
||
done
|
||
|
||
echo ""
|
||
if [ $FAILED -eq 0 ]; then
|
||
echo "✓ All hooks verified OK"
|
||
else
|
||
echo "❌ ISSUES FOUND - fix before using"
|
||
exit 1
|
||
fi
|