diff --git a/CHANGELOG.md b/CHANGELOG.md index 03c26d3..d74c28d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,12 +15,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Static JSON registry approach for fast, deterministic validation - **Chart Tools** (2 tools): `chart_create`, `chart_configure_interaction` - Plotly-based visualization with theme token support - - **Layout Tools** (3 tools): `layout_create`, `layout_add_filter`, `layout_set_grid` + - **Layout Tools** (5 tools): `layout_create`, `layout_add_filter`, `layout_set_grid`, `layout_get`, `layout_add_section` - Dashboard composition with responsive grid system - - **Theme Tools** (4 tools): `theme_create`, `theme_extend`, `theme_validate`, `theme_export_css` + - **Theme Tools** (6 tools): `theme_create`, `theme_extend`, `theme_validate`, `theme_export_css`, `theme_list`, `theme_activate` - Design token-based theming system - Dual storage: user-level (`~/.config/claude/themes/`) and project-level - - **Page Tools** (3 tools): `page_create`, `page_add_navbar`, `page_set_auth` + - **Page Tools** (5 tools): `page_create`, `page_add_navbar`, `page_set_auth`, `page_list`, `page_get_app_config` - Multi-page Dash app structure generation - **Commands**: `/chart`, `/dashboard`, `/theme`, `/theme-new`, `/theme-css`, `/component`, `/initial-setup` - **Agents**: `theme-setup`, `layout-builder`, `component-check` diff --git a/CLAUDE.md b/CLAUDE.md index 651a11e..1154fbf 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -50,14 +50,14 @@ See `docs/DEBUGGING-CHECKLIST.md` for details on cache timing. ## Project Overview **Repository:** leo-claude-mktplace -**Version:** 4.0.0 +**Version:** 4.1.0 **Status:** Production Ready A plugin marketplace for Claude Code containing: | Plugin | Description | Version | |--------|-------------|---------| -| `projman` | Sprint planning and project management with Gitea integration | 3.1.0 | +| `projman` | Sprint planning and project management with Gitea integration | 3.2.0 | | `git-flow` | Git workflow automation with smart commits and branch management | 1.0.0 | | `pr-review` | Multi-agent PR review with confidence scoring | 1.0.0 | | `clarity-assist` | Prompt optimization with ND-friendly accommodations | 1.0.0 | @@ -104,6 +104,7 @@ leo-claude-mktplace/ ├── mcp-servers/ # SHARED MCP servers (v3.0.0+) │ ├── gitea/ # Gitea MCP (issues, PRs, wiki) │ ├── netbox/ # NetBox MCP (CMDB) +│ ├── data-platform/ # pandas, PostgreSQL, dbt │ └── viz-platform/ # DMC validation, charts, themes ├── plugins/ │ ├── projman/ # Sprint management diff --git a/README.md b/README.md index 3ce62a9..75c4a6a 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,22 @@ Comprehensive data engineering toolkit with persistent DataFrame storage. **Commands:** `/ingest`, `/profile`, `/schema`, `/explain`, `/lineage`, `/run` +### Visualization + +#### [viz-platform](./plugins/viz-platform/README.md) *NEW* +**Dash Mantine Components Validation and Theming** + +Visualization toolkit with version-locked component validation and design token theming. + +- 3 DMC tools with static JSON registry (prevents prop hallucination) +- 2 Chart tools with Plotly and theme integration +- 5 Layout tools for dashboard composition +- 6 Theme tools with design token system +- 5 Page tools for multi-page app structure +- Dual theme storage: user-level and project-level + +**Commands:** `/chart`, `/dashboard`, `/theme`, `/theme-new`, `/theme-css`, `/component`, `/initial-setup` + ## MCP Servers MCP servers are **shared at repository root** with **symlinks** from plugins that use them. @@ -152,6 +168,18 @@ pandas, PostgreSQL/PostGIS, and dbt integration for data engineering. | PostGIS | `st_tables`, `st_geometry_type`, `st_srid`, `st_extent` | | dbt | `dbt_parse`, `dbt_run`, `dbt_test`, `dbt_build`, `dbt_compile`, `dbt_ls`, `dbt_docs_generate`, `dbt_lineage` | +### Viz Platform MCP Server (shared) *NEW* + +Dash Mantine Components validation and visualization tools. + +| Category | Tools | +|----------|-------| +| DMC | `list_components`, `get_component_props`, `validate_component` | +| Chart | `chart_create`, `chart_configure_interaction` | +| Layout | `layout_create`, `layout_add_filter`, `layout_set_grid`, `layout_get`, `layout_add_section` | +| Theme | `theme_create`, `theme_extend`, `theme_validate`, `theme_export_css`, `theme_list`, `theme_activate` | +| Page | `page_create`, `page_add_navbar`, `page_set_auth`, `page_list`, `page_get_app_config` | + ## Installation ### Prerequisites @@ -249,6 +277,7 @@ After installing plugins, the `/plugin` command may show `(no content)` - this i | claude-config-maintainer | `/claude-config-maintainer:config-analyze` | | cmdb-assistant | `/cmdb-assistant:cmdb-search` | | data-platform | `/data-platform:ingest` | +| viz-platform | `/viz-platform:chart` | ## Repository Structure @@ -259,13 +288,15 @@ leo-claude-mktplace/ ├── mcp-servers/ # SHARED MCP servers (v3.0.0+) │ ├── gitea/ # Gitea MCP (issues, PRs, wiki) │ ├── netbox/ # NetBox MCP (CMDB) -│ └── data-platform/ # Data engineering (pandas, PostgreSQL, dbt) +│ ├── data-platform/ # Data engineering (pandas, PostgreSQL, dbt) +│ └── viz-platform/ # Visualization (DMC, Plotly, theming) ├── plugins/ # All plugins │ ├── projman/ # Sprint management │ ├── git-flow/ # Git workflow automation │ ├── pr-review/ # PR review │ ├── clarity-assist/ # Prompt optimization -│ ├── data-platform/ # Data engineering (NEW) +│ ├── data-platform/ # Data engineering +│ ├── viz-platform/ # Visualization (NEW) │ ├── claude-config-maintainer/ # CLAUDE.md optimization │ ├── cmdb-assistant/ # NetBox CMDB integration │ ├── doc-guardian/ # Documentation drift detection diff --git a/docs/CANONICAL-PATHS.md b/docs/CANONICAL-PATHS.md index 3ef5dd3..ef19a09 100644 --- a/docs/CANONICAL-PATHS.md +++ b/docs/CANONICAL-PATHS.md @@ -2,7 +2,7 @@ **This file defines ALL valid paths in this repository. No exceptions. No inference. No assumptions.** -Last Updated: 2026-01-23 (v3.1.2) +Last Updated: 2026-01-26 (v4.1.0) --- @@ -37,8 +37,31 @@ leo-claude-mktplace/ │ │ │ └── pull_requests.py # NEW in v3.0.0 │ │ ├── requirements.txt │ │ └── .venv/ -│ └── netbox/ # NetBox MCP server +│ ├── netbox/ # NetBox MCP server +│ │ ├── mcp_server/ +│ │ ├── requirements.txt +│ │ └── .venv/ +│ ├── data-platform/ # Data engineering MCP (NEW v4.0.0) +│ │ ├── mcp_server/ +│ │ │ ├── server.py +│ │ │ ├── pandas_tools.py +│ │ │ ├── postgres_tools.py +│ │ │ └── dbt_tools.py +│ │ ├── requirements.txt +│ │ └── .venv/ +│ └── viz-platform/ # Visualization MCP (NEW v4.1.0) │ ├── mcp_server/ +│ │ ├── server.py +│ │ ├── config.py +│ │ ├── component_registry.py +│ │ ├── dmc_tools.py +│ │ ├── chart_tools.py +│ │ ├── layout_tools.py +│ │ ├── theme_tools.py +│ │ ├── theme_store.py +│ │ └── page_tools.py +│ ├── registry/ # DMC component JSON registries +│ ├── tests/ # 94 tests │ ├── requirements.txt │ └── .venv/ ├── plugins/ # ALL plugins @@ -94,14 +117,32 @@ leo-claude-mktplace/ │ │ ├── agents/ │ │ ├── skills/ │ │ └── claude-md-integration.md -│ └── pr-review/ # NEW in v3.0.0 +│ ├── pr-review/ # NEW in v3.0.0 +│ │ ├── .claude-plugin/ +│ │ ├── .mcp.json +│ │ ├── mcp-servers/ +│ │ │ └── gitea -> ../../../mcp-servers/gitea # SYMLINK +│ │ ├── commands/ +│ │ ├── agents/ +│ │ ├── skills/ +│ │ └── claude-md-integration.md +│ ├── data-platform/ # NEW in v4.0.0 +│ │ ├── .claude-plugin/ +│ │ ├── .mcp.json +│ │ ├── mcp-servers/ +│ │ │ └── data-platform -> ../../../mcp-servers/data-platform # SYMLINK +│ │ ├── commands/ +│ │ ├── agents/ +│ │ ├── hooks/ +│ │ └── claude-md-integration.md +│ └── viz-platform/ # NEW in v4.1.0 │ ├── .claude-plugin/ │ ├── .mcp.json │ ├── mcp-servers/ -│ │ └── gitea -> ../../../mcp-servers/gitea # SYMLINK +│ │ └── viz-platform -> ../../../mcp-servers/viz-platform # SYMLINK │ ├── commands/ │ ├── agents/ -│ ├── skills/ +│ ├── hooks/ │ └── claude-md-integration.md ├── scripts/ # Setup and maintenance scripts │ ├── setup.sh # Initial setup (create venvs, config templates) @@ -226,6 +267,8 @@ MCP servers are now **shared at repository root** with **symlinks** from plugins plugins/projman/mcp-servers/gitea -> ../../../mcp-servers/gitea plugins/cmdb-assistant/mcp-servers/netbox -> ../../../mcp-servers/netbox plugins/pr-review/mcp-servers/gitea -> ../../../mcp-servers/gitea +plugins/data-platform/mcp-servers/data-platform -> ../../../mcp-servers/data-platform +plugins/viz-platform/mcp-servers/viz-platform -> ../../../mcp-servers/viz-platform ``` --- @@ -234,6 +277,8 @@ plugins/pr-review/mcp-servers/gitea -> ../../../mcp-servers/gitea | Date | Change | By | |------|--------|-----| +| 2026-01-26 | v4.1.0: Added viz-platform plugin and MCP server | Claude Code | +| 2026-01-25 | v4.0.0: Added data-platform plugin and MCP server | Claude Code | | 2026-01-20 | v3.0.0: MCP servers moved to root with symlinks | Claude Code | | 2026-01-20 | v3.0.0: Added clarity-assist, git-flow, pr-review plugins | Claude Code | | 2026-01-20 | v3.0.0: Added docs/CONFIGURATION.md | Claude Code | diff --git a/docs/COMMANDS-CHEATSHEET.md b/docs/COMMANDS-CHEATSHEET.md index cdf7577..04207fd 100644 --- a/docs/COMMANDS-CHEATSHEET.md +++ b/docs/COMMANDS-CHEATSHEET.md @@ -64,6 +64,14 @@ Quick reference for all commands in the Leo Claude Marketplace. | **data-platform** | `/run` | | X | Run dbt models with validation | | **data-platform** | `/initial-setup` | | X | Setup wizard for data-platform MCP servers | | **data-platform** | *SessionStart hook* | X | | Checks PostgreSQL connection (non-blocking warning) | +| **viz-platform** | `/initial-setup` | | X | Setup wizard for viz-platform MCP server | +| **viz-platform** | `/chart` | | X | Create Plotly charts with theme integration | +| **viz-platform** | `/dashboard` | | X | Create dashboard layouts with filters and grids | +| **viz-platform** | `/theme` | | X | Apply existing theme to visualizations | +| **viz-platform** | `/theme-new` | | X | Create new custom theme with design tokens | +| **viz-platform** | `/theme-css` | | X | Export theme as CSS custom properties | +| **viz-platform** | `/component` | | X | Inspect DMC component props and validation | +| **viz-platform** | *SessionStart hook* | X | | Checks DMC version (non-blocking warning) | --- @@ -78,6 +86,7 @@ Quick reference for all commands in the Leo Claude Marketplace. | **Git Operations** | git-flow | Commits, branches, workflow automation | | **Infrastructure** | cmdb-assistant | NetBox CMDB management | | **Data Engineering** | data-platform | pandas, PostgreSQL, dbt operations | +| **Visualization** | viz-platform | DMC validation, Plotly charts, theming | | **Maintenance** | project-hygiene | Automatic cleanup | --- @@ -92,6 +101,7 @@ Quick reference for all commands in the Leo Claude Marketplace. | **code-sentinel** | PreToolUse (Write/Edit) | Scans for security issues; blocks critical vulnerabilities | | **project-hygiene** | PostToolUse (Write/Edit) | Cleans temp files, warns about misplaced files | | **data-platform** | SessionStart | Checks PostgreSQL connection; non-blocking warning if unavailable | +| **viz-platform** | SessionStart | Checks DMC version; non-blocking warning if mismatch detected | --- @@ -234,9 +244,10 @@ Some plugins require MCP server connectivity: | pr-review | Gitea | PR operations and reviews | | cmdb-assistant | NetBox | Infrastructure CMDB | | data-platform | pandas, PostgreSQL, dbt | DataFrames, database queries, dbt builds | +| viz-platform | viz-platform | DMC validation, charts, layouts, themes, pages | Ensure credentials are configured in `~/.config/claude/gitea.env`, `~/.config/claude/netbox.env`, or `~/.config/claude/postgres.env`. --- -*Last Updated: 2026-01-25* +*Last Updated: 2026-01-26* diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 5975449..d79941f 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -393,6 +393,8 @@ PR_REVIEW_AUTO_SUBMIT=false | **git-flow** | git-flow.env (optional) | .env (optional) | None needed | | **clarity-assist** | None | None | None needed | | **cmdb-assistant** | netbox.env | None | `/initial-setup` | +| **data-platform** | postgres.env | .env (optional) | `/initial-setup` | +| **viz-platform** | None | .env (optional DMC_VERSION) | `/initial-setup` | | **doc-guardian** | None | None | None needed | | **code-sentinel** | None | None | None needed | | **project-hygiene** | None | None | None needed | diff --git a/mcp-servers/viz-platform/README.md b/mcp-servers/viz-platform/README.md new file mode 100644 index 0000000..0ead642 --- /dev/null +++ b/mcp-servers/viz-platform/README.md @@ -0,0 +1,115 @@ +# viz-platform MCP Server + +Model Context Protocol (MCP) server for Dash Mantine Components validation and visualization tools. + +## Overview + +This MCP server provides 21 tools for: +- **DMC Validation**: Version-locked component registry prevents Claude from hallucinating invalid props +- **Chart Creation**: Plotly-based visualization with theme integration +- **Layout Composition**: Dashboard layouts with responsive grids +- **Theme Management**: Design token-based theming system +- **Page Structure**: Multi-page Dash app generation + +## Tools + +### DMC Tools (3) + +| Tool | Description | +|------|-------------| +| `list_components` | List available DMC components by category | +| `get_component_props` | Get valid props, types, and defaults for a component | +| `validate_component` | Validate component definition before use | + +### Chart Tools (2) + +| Tool | Description | +|------|-------------| +| `chart_create` | Create Plotly chart (line, bar, scatter, pie, histogram, area, heatmap) | +| `chart_configure_interaction` | Configure chart interactions (zoom, pan, hover) | + +### Layout Tools (5) + +| Tool | Description | +|------|-------------| +| `layout_create` | Create dashboard layout structure | +| `layout_add_filter` | Add filter components to layout | +| `layout_set_grid` | Configure responsive grid settings | +| `layout_get` | Retrieve layout configuration | +| `layout_add_section` | Add sections to layout | + +### Theme Tools (6) + +| Tool | Description | +|------|-------------| +| `theme_create` | Create new theme with design tokens | +| `theme_extend` | Extend existing theme with overrides | +| `theme_validate` | Validate theme completeness | +| `theme_export_css` | Export theme as CSS custom properties | +| `theme_list` | List available themes | +| `theme_activate` | Set active theme for visualizations | + +### Page Tools (5) + +| Tool | Description | +|------|-------------| +| `page_create` | Create new page structure | +| `page_add_navbar` | Add navigation bar to page | +| `page_set_auth` | Configure page authentication | +| `page_list` | List available pages | +| `page_get_app_config` | Get full app configuration | + +## Configuration + +### Environment Variables + +| Variable | Required | Description | +|----------|----------|-------------| +| `DMC_VERSION` | No | Dash Mantine Components version (auto-detected if installed) | +| `VIZ_DEFAULT_THEME` | No | Default theme name | +| `CLAUDE_PROJECT_DIR` | No | Project directory for theme storage | + +### Theme Storage + +Themes can be stored at two levels: +- **User-level**: `~/.config/claude/themes/` +- **Project-level**: `{project}/.viz-platform/themes/` + +Project-level themes take precedence. + +## Component Registry + +The server uses a static JSON registry for DMC component validation: +- Pre-generated from DMC source code +- Version-tagged (e.g., `dmc_2_5.json`) +- Prevents hallucination of non-existent props +- Fast, deterministic validation + +Registry files are stored in `registry/` directory. + +## Tests + +94 tests with coverage: +- `test_config.py`: 82% coverage +- `test_component_registry.py`: 92% coverage +- `test_dmc_tools.py`: 88% coverage +- `test_chart_tools.py`: 68% coverage +- `test_theme_tools.py`: 99% coverage + +Run tests: +```bash +cd mcp-servers/viz-platform +source .venv/bin/activate +pytest tests/ -v +``` + +## Dependencies + +- Python 3.10+ +- FastMCP +- plotly +- dash-mantine-components (optional, for version detection) + +## Usage + +This MCP server is used by the `viz-platform` plugin. See [plugins/viz-platform/README.md](../../plugins/viz-platform/README.md) for usage instructions. diff --git a/plugins/projman/.claude-plugin/plugin.json b/plugins/projman/.claude-plugin/plugin.json index 97f6517..80acba0 100644 --- a/plugins/projman/.claude-plugin/plugin.json +++ b/plugins/projman/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "projman", - "version": "3.1.0", + "version": "3.2.0", "description": "Sprint planning and project management with Gitea integration", "author": { "name": "Leo Miranda",