{ "_comment": "Example .claude-plugin/marketplace-metadata.json — copy to your marketplace repo and adjust. See docs/curated-marketplace-format.md for the full schema. The `_comment` keys are ignored by Agnes — they're here purely as inline documentation; remove them in production.", "plugins": { "data-explorer": { "_comment": "Plugin-level enrichment — surfaces on /marketplace cards and on the plugin detail page.", "cover_photo": ".agnes/data-explorer-cover.png", "video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "category": "Data & Analytics", "display_name": "Data Explorer", "tagline": "Catalogue lookups + schema drill-down for the data warehouse — no SQL required.", "description": "**Data Explorer** answers everyday warehouse questions without you writing SQL:\n\n- Find a table by topic, owner, or freshness.\n- Drill into a table's schema, sample rows, lineage upstream / downstream.\n- Cross-reference dashboards that already query the table.\n\nPowered by the daily catalogue sync that Agnes ingests into DuckDB — every read is local and millisecond-fast. No BigQuery cost, no risk of touching production.", "use_cases": [ { "title": "Find the right table", "description": "When you know what data you need but not where it lives.", "prompt": "Where can I find daily revenue by merchant?" }, { "title": "Schema drill-down", "description": "Inspect columns, types, nullability, and sample values for one table.", "prompt": "/data-explorer:schema orders.fact_revenue" }, { "title": "Lineage upstream / downstream", "description": "See which jobs write a table and which dashboards / models depend on it.", "prompt": "What dashboards depend on orders.fact_revenue?" } ], "sample_interaction": { "user": "Where can I find daily revenue by merchant for the last 30 days?", "assistant": "The closest match is **`analytics.merchant_revenue_daily`** (last updated 4 hours ago).\n\n- **Primary key**: `(merchant_id, revenue_date)`\n- **Granularity**: daily\n- **Owner**: Analytics Platform team — `analytics-platform@example.com`\n- **Source**: aggregated from `orders.fact_revenue` via the `merchant_revenue_rollup` dbt model\n\nFor live (intraday) revenue, see `analytics.merchant_revenue_hourly` instead — it's refreshed every 15 min but only retains the last 7 days." }, "doc_links": [ { "name": "Setup guide", "path": "docs/setup.md" }, { "name": "API reference (PDF)", "url": "https://example.com/data-explorer-api.pdf" } ], "skills": { "explore-table": { "_comment": "Skill-level rich content — same schema as plugin level, plus `invocation` and `when_to_use` specific to skills/agents.", "cover_photo": ".agnes/skills/explore-table-cover.png", "video_url": "https://www.youtube.com/watch?v=oHg5SJYRHA0", "category": "Documentation", "display_name": "Explore Table", "tagline": "Inspect any warehouse table's schema, sample rows, and lineage.", "description": "Drill into one table at a time:\n\n- columns + types + nullability\n- top-N sample rows\n- upstream jobs + downstream consumers (dashboards, dbt models, notebooks).\n\nNo query cost — every read is local.", "invocation": "/data-explorer:explore-table ", "when_to_use": "Use when you already know **which table** to look at. For topic-based discovery (\"where does revenue live?\"), use `/data-explorer:find` instead.", "use_cases": [ { "title": "Inspect schema", "description": "See columns + types before writing a query.", "prompt": "/data-explorer:explore-table analytics.merchant_revenue_daily" }, { "title": "Trace lineage", "description": "Find what writes the table and which dashboards consume it.", "prompt": "Who reads analytics.merchant_revenue_daily?" } ], "sample_interaction": { "user": "/data-explorer:explore-table analytics.merchant_revenue_daily", "assistant": "**`analytics.merchant_revenue_daily`** — last refreshed 4 hours ago.\n\n| Column | Type | Nullable | Sample |\n|--------|------|----------|--------|\n| merchant_id | string | no | `acme-cz` |\n| revenue_date | date | no | `2026-05-11` |\n| gross_revenue_eur | decimal(18,2) | no | `12455.40` |\n\n**Written by**: `dbt_merchant_revenue_rollup` (daily, 02:00 UTC)\n**Read by**: 3 Looker dashboards, 2 notebooks (sample on request)" }, "doc_links": [ { "name": "Cheatsheet", "path": "docs/skills/explore-table.md" } ] } }, "agents": { "query-planner": { "cover_photo": "https://cdn.example.com/agents/query-planner.webp", "video_url": "https://vimeo.com/123456789", "display_name": "Query Planner", "tagline": "Helps you draft a BigQuery query without writing SQL.", "invocation": "@query-planner", "when_to_use": "Use when you have a question in plain English and want a SQL draft + explanation. For schema lookups, use `/data-explorer:explore-table` first.", "doc_links": [ { "name": "Decision flow (PDF)", "url": "https://example.com/query-planner-flow.pdf" } ] } } }, "report-generator": { "_comment": "Minimal example — only a cover photo + category override. Other fields default to absent and the UI hides those sections.", "cover_photo": "https://cdn.example.com/report-generator-cover.png", "category": "Productivity" } } }