mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-04-24 02:22:45 +00:00
Compare commits
26 Commits
add-liquid
...
add-vanta-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
682cd4489e | ||
|
|
5a71459c03 | ||
|
|
ae54b113c4 | ||
|
|
2a40fd2e7c | ||
|
|
95f6172405 | ||
|
|
7bbdb8434e | ||
|
|
4bbf944de1 | ||
|
|
06830b2ccd | ||
|
|
bd6f1d7f48 | ||
|
|
808e70ffb9 | ||
|
|
187a267738 | ||
|
|
42e980340d | ||
|
|
c15eada2e9 | ||
|
|
f9f07aa2d3 | ||
|
|
81952cabc5 | ||
|
|
0852f6647a | ||
|
|
b0724d7a16 | ||
|
|
cf62a6c02d | ||
|
|
3bd94cc810 | ||
|
|
a8be018317 | ||
|
|
33e62b9bd6 | ||
|
|
9f103c621d | ||
|
|
caa8c1a539 | ||
|
|
33fd73c8b9 | ||
|
|
f1938a2dc2 | ||
|
|
db52e65c44 |
@@ -24,7 +24,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/amekala/adspirer-mcp-plugin.git",
|
||||
"sha": "aa70dbdbbbb843e94a794c10c2b13f5dd66b5e40"
|
||||
"sha": "c40623f1aa7b568e960d3f2e2558a6fcf10e6c18"
|
||||
},
|
||||
"homepage": "https://www.adspirer.com"
|
||||
},
|
||||
@@ -47,7 +47,7 @@
|
||||
"url": "https://github.com/techwolf-ai/ai-first-toolkit.git",
|
||||
"path": "plugins/ai-firstify",
|
||||
"ref": "main",
|
||||
"sha": "7f18e11d694b9ae62ea3009fbbc175f08ae913df"
|
||||
"sha": "852272ec21cebab98202df967dffee127209b6bc"
|
||||
},
|
||||
"homepage": "https://ai-first.techwolf.ai"
|
||||
},
|
||||
@@ -57,7 +57,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/endorlabs/ai-plugins.git",
|
||||
"sha": "a0f1d5632b6f9e6c26eaa9806f5d8d454ca5b06f"
|
||||
"sha": "975f0ce422b1f2677681ffd085aef34ea1826b70"
|
||||
},
|
||||
"homepage": "https://www.endorlabs.com"
|
||||
},
|
||||
@@ -67,10 +67,23 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/AikidoSec/aikido-claude-plugin.git",
|
||||
"sha": "d7fa8b8e192680d9a26c1a5dcaead7cf5cdb7139"
|
||||
"sha": "5d9c13d367218e9b43a11d4502f623ab98859225"
|
||||
},
|
||||
"homepage": "https://github.com/AikidoSec/aikido-claude-plugin"
|
||||
},
|
||||
{
|
||||
"name": "alloydb",
|
||||
"description": "Create, connect, and interact with an AlloyDB for PostgreSQL database and data.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/alloydb.git"
|
||||
},
|
||||
"homepage": "https://cloud.google.com/alloydb"
|
||||
},
|
||||
{
|
||||
"name": "amazon-location-service",
|
||||
"description": "Guide developers through adding maps, places search, geocoding, routing, and other geospatial features with Amazon Location Service, including authentication setup, SDK integration, and best practices.",
|
||||
@@ -95,6 +108,19 @@
|
||||
"category": "monitoring",
|
||||
"homepage": "https://github.com/amplitude/mcp-marketplace"
|
||||
},
|
||||
{
|
||||
"name": "apollo",
|
||||
"description": "Prospect, enrich leads, load outreach sequences, and query sales analytics with Apollo.io — one-click MCP server integration for Claude Code and Cowork.",
|
||||
"author": {
|
||||
"name": "Apollo.io"
|
||||
},
|
||||
"category": "productivity",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/apolloio/apollo-mcp-plugin.git"
|
||||
},
|
||||
"homepage": "https://www.apollo.io/"
|
||||
},
|
||||
{
|
||||
"name": "asana",
|
||||
"description": "Asana project management integration. Create and manage tasks, search projects, update assignments, track progress, and integrate your development workflow with Asana's work management platform.",
|
||||
@@ -109,7 +135,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/astronomer/agents.git",
|
||||
"sha": "7ef022b02f5296b5ecc52ba0db3ba9345ec03c9e"
|
||||
"sha": "5935c4330dea4dfb8e93568956b10a543ecdb3d1"
|
||||
},
|
||||
"homepage": "https://github.com/astronomer/agents"
|
||||
},
|
||||
@@ -133,6 +159,19 @@
|
||||
},
|
||||
"homepage": "https://github.com/atlassian/atlassian-mcp-server"
|
||||
},
|
||||
{
|
||||
"name": "atlassian-forge-skills",
|
||||
"description": "Forge-focused skill bundle and MCP tooling for Atlassian Forge: scaffold apps, review before deploy, debug production issues, and stay current on Forge APIs and the Atlassian Design System.",
|
||||
"author": {
|
||||
"name": "Atlassian Labs"
|
||||
},
|
||||
"category": "development",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/atlassian/forge-skills.git"
|
||||
},
|
||||
"homepage": "https://developer.atlassian.com"
|
||||
},
|
||||
{
|
||||
"name": "atomic-agents",
|
||||
"description": "Comprehensive development workflow for building AI agents with the Atomic Agents framework. Includes specialized agents for schema design, architecture planning, code review, and tool development. Features guided workflows, progressive-disclosure skills, and best practice validation.",
|
||||
@@ -147,6 +186,21 @@
|
||||
"community-managed"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "auth0",
|
||||
"description": "Add authentication to any app with Auth0. This plugin detects your framework, scaffolds the right Auth0 SDK integration, and guides you through login, logout, sessions, and protected routes — using current SDK patterns.",
|
||||
"author": {
|
||||
"name": "Auth0"
|
||||
},
|
||||
"category": "security",
|
||||
"source": {
|
||||
"source": "git-subdir",
|
||||
"url": "https://github.com/auth0/agent-skills.git",
|
||||
"path": "plugins/auth0",
|
||||
"ref": "main"
|
||||
},
|
||||
"homepage": "https://auth0.com/docs/quickstart/agent-skills"
|
||||
},
|
||||
{
|
||||
"name": "autofix-bot",
|
||||
"description": "Code review agent that detects security vulnerabilities, code quality issues, and hardcoded secrets. Combines 5,000+ static analyzers to scan your code and dependencies for CVEs.",
|
||||
@@ -182,19 +236,8 @@
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
{
|
||||
"name": "azure-cosmos-db-assistant",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/AzureCosmosDB/cosmosdb-claude-code-plugin.git",
|
||||
"sha": "56e6da0cae93cdee8bcfa5e624ecdd9a0a483181"
|
||||
},
|
||||
"description": "Expert assistant for Azure Cosmos DB — data modeling, query optimization, performance tuning, and best practices.",
|
||||
"category": "database",
|
||||
"homepage": "https://github.com/AzureCosmosDB/cosmosdb-claude-code-plugin"
|
||||
},
|
||||
{
|
||||
"name": "azure-skills",
|
||||
"description": "Microsoft Azure MCP integration for cloud resource management, deployments, and Azure services. Manage your Azure infrastructure, monitor applications, and deploy resources directly from Claude Code.",
|
||||
"name": "azure",
|
||||
"description": "Transform Claude into an Azure expert. This plugin integrates the Azure MCP server and specialized Azure skills to move beyond generic advice. It enables Claude to perform real-world tasks: listing resources, validating deployments, diagnosing infrastructure issues, and optimizing costs across 50+ Azure services.",
|
||||
"category": "deployment",
|
||||
"source": {
|
||||
"source": "url",
|
||||
@@ -202,6 +245,17 @@
|
||||
},
|
||||
"homepage": "https://github.com/microsoft/azure-skills"
|
||||
},
|
||||
{
|
||||
"name": "azure-cosmos-db-assistant",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/AzureCosmosDB/cosmosdb-claude-code-plugin.git",
|
||||
"sha": "23c168856e4435793bd27a72d4714f022a3a1e90"
|
||||
},
|
||||
"description": "Expert assistant for Azure Cosmos DB — data modeling, query optimization, performance tuning, and best practices.",
|
||||
"category": "database",
|
||||
"homepage": "https://github.com/AzureCosmosDB/cosmosdb-claude-code-plugin"
|
||||
},
|
||||
{
|
||||
"name": "base44",
|
||||
"description": "Build and deploy Base44 full-stack apps with CLI project management and JavaScript/TypeScript SDK development skills",
|
||||
@@ -235,7 +289,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/box/box-for-ai.git",
|
||||
"sha": "6f4ec3549f3e869b115628403555b1c9220b2b34"
|
||||
"sha": "0fb23244e3c35cd562206c80eff1e22c456046ea"
|
||||
},
|
||||
"homepage": "https://github.com/box/box-for-ai"
|
||||
},
|
||||
@@ -245,7 +299,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/brightdata/skills.git",
|
||||
"sha": "e671da495f7ec0ed6be5e9fa71e260f886a1dc36"
|
||||
"sha": "44b24797d82cfd535c5b97831d5c6ba86c9d60df"
|
||||
},
|
||||
"homepage": "https://docs.brightdata.com"
|
||||
},
|
||||
@@ -267,7 +321,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/ChromeDevTools/chrome-devtools-mcp.git",
|
||||
"sha": "c2d8009ff75f76bce1ec4cf79c2467b50d81725e"
|
||||
"sha": "a1612be8e01401cf1711c64bc2ef5da5763ba956"
|
||||
},
|
||||
"homepage": "https://github.com/ChromeDevTools/chrome-devtools-mcp"
|
||||
},
|
||||
@@ -334,12 +388,25 @@
|
||||
"category": "productivity",
|
||||
"homepage": "https://github.com/anthropics/claude-plugins-official/tree/main/plugins/claude-md-management"
|
||||
},
|
||||
{
|
||||
"name": "cloud-sql-postgresql",
|
||||
"description": "Create, connect, and interact with a Cloud SQL for PostgreSQL database and data.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/cloud-sql-postgresql.git"
|
||||
},
|
||||
"homepage": "https://cloud.google.com/sql"
|
||||
},
|
||||
{
|
||||
"name": "cloudflare",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/cloudflare/skills.git",
|
||||
"sha": "5ec03da67e230df52b698255c8e5979dc9b124b6"
|
||||
"sha": "0397d7d88fa6ac7517a88389622eb0799e86ded2"
|
||||
},
|
||||
"description": "Skills for the Cloudflare developer platform: Workers, Durable Objects, Agents SDK, MCP servers, Wrangler CLI, and web performance.",
|
||||
"category": "deployment",
|
||||
@@ -351,17 +418,20 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/cloudinary-devs/cloudinary-plugin.git",
|
||||
"sha": "137c5d7acd9c3f10e80cd2a400486971e1664f31"
|
||||
"sha": "7b443d7dbd607bfe4850d8cfcab6ba4cbf1a57c3"
|
||||
},
|
||||
"homepage": "https://cloudinary.com/documentation"
|
||||
},
|
||||
{
|
||||
"name": "cockroachdb",
|
||||
"description": "CockroachDB plugin for Claude Code — explore schemas, write optimized SQL, debug queries, and manage distributed database clusters directly from your AI coding agent.",
|
||||
"description": "Connect Claude Code directly to your CockroachDB clusters for hands-on database work — explore schemas, write optimized SQL, debug queries, and manage distributed database clusters. This plugin provides 14 tools across two active MCP backends (self-hosted MCP Toolbox and managed CockroachDB Cloud MCP Server), three specialized agents (DBA, Developer, Operator), 32 skills across 6 operational domains, and built-in safety hooks.",
|
||||
"author": {
|
||||
"name": "Cockroach Labs"
|
||||
},
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/cockroachdb/claude-plugin.git",
|
||||
"sha": "a54566e03c852567589ef85bb449d1e4de229667"
|
||||
"url": "https://github.com/cockroachdb/claude-plugin.git"
|
||||
},
|
||||
"homepage": "https://github.com/cockroachdb/claude-plugin"
|
||||
},
|
||||
@@ -445,17 +515,30 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/astronomer/agents.git",
|
||||
"sha": "7ef022b02f5296b5ecc52ba0db3ba9345ec03c9e"
|
||||
"sha": "5935c4330dea4dfb8e93568956b10a543ecdb3d1"
|
||||
},
|
||||
"homepage": "https://github.com/astronomer/agents"
|
||||
},
|
||||
{
|
||||
"name": "data-agent-kit-starter-pack",
|
||||
"description": "Specialized suite of skills for data engineers on Google Cloud — architect data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across BigQuery, Spanner, BigLake, and Dataproc.",
|
||||
"author": {
|
||||
"name": "Google LLC"
|
||||
},
|
||||
"category": "development",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack.git"
|
||||
},
|
||||
"homepage": "https://cloud.google.com/bigquery"
|
||||
},
|
||||
{
|
||||
"name": "data-engineering",
|
||||
"description": "Data engineering plugin - warehouse exploration, pipeline authoring, Airflow integration",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/astronomer/agents.git",
|
||||
"sha": "85d6053b1e21724f9cefb1e3f5219bd54fc77224"
|
||||
"sha": "5935c4330dea4dfb8e93568956b10a543ecdb3d1"
|
||||
},
|
||||
"homepage": "https://github.com/astronomer/agents"
|
||||
},
|
||||
@@ -471,6 +554,19 @@
|
||||
},
|
||||
"homepage": "https://github.com/awslabs/agent-plugins"
|
||||
},
|
||||
{
|
||||
"name": "datadog",
|
||||
"description": "Use Datadog directly in Claude Code through a preconfigured Datadog MCP server. Query logs, metrics, traces, dashboards, and more through natural conversation. This plugin is in preview.",
|
||||
"author": {
|
||||
"name": "Datadog"
|
||||
},
|
||||
"category": "monitoring",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/datadog-labs/claude-code-plugin.git"
|
||||
},
|
||||
"homepage": "https://www.datadoghq.com/"
|
||||
},
|
||||
{
|
||||
"name": "dataverse",
|
||||
"description": "Agent skills for building on, analyzing, and managing Microsoft Dataverse — with Dataverse MCP, PAC CLI, and Python SDK.",
|
||||
@@ -511,6 +607,20 @@
|
||||
},
|
||||
"homepage": "https://elixir-lsp.github.io/elixir-ls/"
|
||||
},
|
||||
{
|
||||
"name": "exa",
|
||||
"description": "Exa AI web search, deep research, and content extraction. Provides MCP tools and research skills for comprehensive web search, people discovery, company research, academic papers, and more.",
|
||||
"author": {
|
||||
"name": "Exa"
|
||||
},
|
||||
"category": "productivity",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/exa-labs/exa-mcp-server.git",
|
||||
"sha": "bd2ccdd52ca7a35fbc2207ad266bb2a961c0e793"
|
||||
},
|
||||
"homepage": "https://exa.ai/docs/reference/exa-mcp"
|
||||
},
|
||||
{
|
||||
"name": "explanatory-output-style",
|
||||
"description": "Adds educational insights about implementation choices and codebase patterns (mimics the deprecated Explanatory output style)",
|
||||
@@ -546,7 +656,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/fastly/fastly-agent-toolkit.git",
|
||||
"sha": "d9ba949011e725be55cae11acc741aa1f1f393d3"
|
||||
"sha": "329331c887512850f13e481b45c4298c0387a4d2"
|
||||
},
|
||||
"homepage": "https://github.com/fastly/fastly-agent-toolkit/blob/main/README.md"
|
||||
},
|
||||
@@ -567,7 +677,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/voxel51/fiftyone-skills.git",
|
||||
"sha": "593e0553fc9fd94db52386ada2c9e2074a6ecf89"
|
||||
"sha": "02bd4ea170ca01a751c2d2dd6bf2df8f62e65626"
|
||||
},
|
||||
"homepage": "https://docs.voxel51.com/"
|
||||
},
|
||||
@@ -624,7 +734,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/followrabbit-ai/awesome-rabbit.git",
|
||||
"sha": "f59ec3d1f6337a6ed825ef06836a221ed3d2ffb0"
|
||||
"sha": "6926154501300d348a7b50d47479648fe87985b6"
|
||||
},
|
||||
"homepage": "https://subscriptions.agentic.followrabbit.ai/"
|
||||
},
|
||||
@@ -659,7 +769,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/PAIR-Systems-Inc/goodmem-claude-code-plugin.git",
|
||||
"sha": "215568baf203887b5d7f8245e0503dd4a81336c2"
|
||||
"sha": "4e23ab2b3bc7cb4167c99e10d9640ad7089744d7"
|
||||
},
|
||||
"homepage": "https://github.com/PAIR-Systems-Inc/goodmem-claude-code-plugin"
|
||||
},
|
||||
@@ -698,7 +808,7 @@
|
||||
"url": "https://github.com/helius-labs/core-ai.git",
|
||||
"path": "helius-plugin",
|
||||
"ref": "main",
|
||||
"sha": "05ea4d1128d46618266bbcc23a5e7019c57be0d6"
|
||||
"sha": "d9d252497bcf1e4bd5073a76715cd50a8353f9c3"
|
||||
},
|
||||
"homepage": "https://www.helius.dev/docs"
|
||||
},
|
||||
@@ -736,7 +846,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/intercom/claude-plugin-external.git",
|
||||
"sha": "eeef353eead2e3dc5f33f64dbaae54e1309e0d45"
|
||||
"sha": "52653572c47700443eb61154c4e4334a355e755e"
|
||||
},
|
||||
"homepage": "https://github.com/intercom/claude-plugin-external"
|
||||
},
|
||||
@@ -824,6 +934,22 @@
|
||||
"source": "./external_plugins/linear",
|
||||
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/linear"
|
||||
},
|
||||
{
|
||||
"name": "liquid-lsp",
|
||||
"description": "LSP integration for Shopify Liquid templates via the Shopify CLI theme language server.",
|
||||
"author": {
|
||||
"name": "Shopify"
|
||||
},
|
||||
"category": "development",
|
||||
"source": {
|
||||
"source": "git-subdir",
|
||||
"url": "https://github.com/Shopify/liquid-skills.git",
|
||||
"path": "plugins/liquid-lsp",
|
||||
"ref": "main",
|
||||
"sha": "a00ca039d82114a7af1b4cbc3025b16c624a42fa"
|
||||
},
|
||||
"homepage": "https://github.com/Shopify/liquid-skills/tree/main/plugins/liquid-lsp"
|
||||
},
|
||||
{
|
||||
"name": "liquid-skills",
|
||||
"description": "Liquid language fundamentals, CSS/JS/HTML coding standards, and WCAG accessibility patterns for Shopify themes",
|
||||
@@ -836,7 +962,7 @@
|
||||
"url": "https://github.com/Shopify/liquid-skills.git",
|
||||
"path": "plugins/liquid-skills",
|
||||
"ref": "main",
|
||||
"sha": "ae3e4cc3f454923e388bbd841fd931f0c7bf5be4"
|
||||
"sha": "bf7a7aa9f9809b0dcd80cb5f7fd2795a7208a7a3"
|
||||
},
|
||||
"homepage": "https://github.com/Shopify/liquid-skills/tree/main/plugins/liquid-skills"
|
||||
},
|
||||
@@ -899,7 +1025,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/mintlify/mintlify-claude-plugin.git",
|
||||
"sha": "ce435be18a700dc849d6a63a80da4816d1e2128c"
|
||||
"sha": "acd6d2e0128c4f235d55cfb8d8c91ecbdd5df8cc"
|
||||
},
|
||||
"homepage": "https://www.mintlify.com/"
|
||||
},
|
||||
@@ -925,7 +1051,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/mongodb/agent-skills.git",
|
||||
"sha": "c47079f65e88a113c52d1ce0618684cef300246c"
|
||||
"sha": "24529d9540b962d57f30e75d25071bebea5809ad"
|
||||
},
|
||||
"homepage": "https://www.mongodb.com/docs/mcp-server/overview/"
|
||||
},
|
||||
@@ -938,7 +1064,7 @@
|
||||
"url": "https://github.com/neondatabase/agent-skills.git",
|
||||
"path": "plugins/neon-postgres",
|
||||
"ref": "main",
|
||||
"sha": "54d7a9db2ddd476f84d5d1fd7bac323907858a8b"
|
||||
"sha": "1438d7db4560a649d62eba99e9d5008b77ac5758"
|
||||
},
|
||||
"homepage": "https://github.com/neondatabase/agent-skills/tree/main/plugins/neon-postgres"
|
||||
},
|
||||
@@ -1019,7 +1145,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Optimal-AI/optibot-skill.git",
|
||||
"sha": "981db1f630c3116d7df0a71e5967af55b08e813c"
|
||||
"sha": "ce2be448ee713606aa653fc93ef2f98a200fe327"
|
||||
},
|
||||
"homepage": "https://getoptimal.ai"
|
||||
},
|
||||
@@ -1123,7 +1249,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/gitroomhq/postiz-agent.git",
|
||||
"sha": "c5d1bf5f7e95a71e230fc19ae2150ddd9c549854"
|
||||
"sha": "37d627244c53a4b3a7ca94c52cc2db13aaaf468e"
|
||||
},
|
||||
"homepage": "https://postiz.com/agent"
|
||||
},
|
||||
@@ -1134,7 +1260,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Postman-Devrel/postman-claude-code-plugin.git",
|
||||
"sha": "40b11ac3466c500cf4625ac016d5c01cd00046f4"
|
||||
"sha": "416e40da03a237df7bf03f4362cf6fc7b989b567"
|
||||
},
|
||||
"homepage": "https://learning.postman.com/docs/developer/postman-mcp-server/"
|
||||
},
|
||||
@@ -1215,6 +1341,20 @@
|
||||
},
|
||||
"homepage": "https://github.com/qodo-ai/qodo-skills.git"
|
||||
},
|
||||
{
|
||||
"name": "qt-development-skills",
|
||||
"description": "Agentic engineering skills for Qt software development — Qt C++/QML code review, QML coding, and Qt C++/QML code documentation.",
|
||||
"author": {
|
||||
"name": "Qt Group"
|
||||
},
|
||||
"category": "development",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/TheQtCompanyRnD/agent-skills.git",
|
||||
"sha": "62a98e2339e6eefcff108cfc3fe9db8a7301856c"
|
||||
},
|
||||
"homepage": "https://www.qt.io/"
|
||||
},
|
||||
{
|
||||
"name": "railway",
|
||||
"description": "Deploy and manage apps, databases, and infrastructure on Railway. Covers project setup, deploys, environment configuration, networking, troubleshooting, and monitoring.",
|
||||
@@ -1224,7 +1364,7 @@
|
||||
"url": "https://github.com/railwayapp/railway-skills.git",
|
||||
"path": "plugins/railway",
|
||||
"ref": "main",
|
||||
"sha": "d52f3741a6a33a3191d6138eb3d6c3355cb970d1"
|
||||
"sha": "eaa89d8f594412b0b837b6531241e7d166e12202"
|
||||
},
|
||||
"homepage": "https://docs.railway.com/ai/claude-code-plugin"
|
||||
},
|
||||
@@ -1256,7 +1396,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Digital-Process-Tools/claude-remember.git",
|
||||
"sha": "779ab61d8d412230eeec1840b8ca104bebea4358"
|
||||
"sha": "914445ac5f06a164800ea90ba4db41a0486321ae"
|
||||
},
|
||||
"homepage": "https://github.com/Digital-Process-Tools/claude-remember"
|
||||
},
|
||||
@@ -1337,7 +1477,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/sanity-io/agent-toolkit.git",
|
||||
"sha": "4b1fb10bd707a22cf0cdfad5374ffc885f2ffa8d"
|
||||
"sha": "bc09fa9854507c538a856648aafbd4e1a775a95c"
|
||||
},
|
||||
"homepage": "https://www.sanity.io"
|
||||
},
|
||||
@@ -1481,7 +1621,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/sourcegraph-community/sourcegraph-claudecode-plugin.git",
|
||||
"sha": "cfe3d44476957b16d1575261bef6b2dc7cb1e0b7"
|
||||
"sha": "332ee0ca9a409ccd791abee43c7abf2606469017"
|
||||
},
|
||||
"homepage": "https://sourcegraph.com"
|
||||
},
|
||||
@@ -1492,7 +1632,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/spotify/ads-claude-plugin.git",
|
||||
"sha": "a4bce9912db071d47dfb410086a48004e0539efa"
|
||||
"sha": "63585cc919da51dd24fab594d829869595301922"
|
||||
},
|
||||
"homepage": "https://github.com/spotify/ads-claude-plugin"
|
||||
},
|
||||
@@ -1539,7 +1679,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/sumup/sumup-skills.git",
|
||||
"sha": "802476c39a0422d3277e37288b03968ad731bc30"
|
||||
"sha": "0fd0a911ecaffd7187fe35e914d8ead6de584ffd"
|
||||
},
|
||||
"homepage": "https://www.sumup.com/"
|
||||
},
|
||||
@@ -1639,7 +1779,7 @@
|
||||
"url": "https://github.com/UI5/plugins-claude.git",
|
||||
"path": "plugins/ui5",
|
||||
"ref": "main",
|
||||
"sha": "5070dfc1cef711d6efad40beb43750027039d71f"
|
||||
"sha": "cec940abd4b7b6866de8e7e4522f3dba0449379d"
|
||||
},
|
||||
"homepage": "https://github.com/UI5/plugins-claude"
|
||||
},
|
||||
@@ -1652,10 +1792,24 @@
|
||||
"url": "https://github.com/UI5/plugins-claude.git",
|
||||
"path": "plugins/ui5-typescript-conversion",
|
||||
"ref": "main",
|
||||
"sha": "5070dfc1cef711d6efad40beb43750027039d71f"
|
||||
"sha": "cec940abd4b7b6866de8e7e4522f3dba0449379d"
|
||||
},
|
||||
"homepage": "https://github.com/UI5/plugins-claude"
|
||||
},
|
||||
{
|
||||
"name": "vanta-mcp-plugin",
|
||||
"description": "The Vanta plugin connects Claude Code to Vanta's security and compliance platform through the Vanta MCP server. It combines Vanta's test-specific remediation intelligence with your local repository context to help you fix compliance failures faster.",
|
||||
"author": {
|
||||
"name": "Vanta"
|
||||
},
|
||||
"category": "security",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/VantaInc/vanta-mcp-plugin.git",
|
||||
"sha": "46e5bebf0484f08fc4a3c4054437cf5ec06298c9"
|
||||
},
|
||||
"homepage": "https://help.vanta.com/en/articles/14094979-connecting-to-vanta-mcp#h_887ce3f337"
|
||||
},
|
||||
{
|
||||
"name": "vercel",
|
||||
"description": "Vercel deployment platform integration. Manage deployments, check build status, access logs, configure domains, and control your frontend infrastructure directly from Claude Code.",
|
||||
@@ -1666,16 +1820,44 @@
|
||||
},
|
||||
"homepage": "https://github.com/vercel/vercel-plugin"
|
||||
},
|
||||
{
|
||||
"name": "versori-skills",
|
||||
"description": "Skills for building data integrations using the Versori platform and versori-run SDK. Claude can bootstrap projects, configure systems and connections, generate type-safe TypeScript workflows, run local validation via Deno, and deploy to production — with a research-first approach that grounds code generation in gathered API documentation.",
|
||||
"author": {
|
||||
"name": "Versori"
|
||||
},
|
||||
"category": "development",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/versori/cli.git",
|
||||
"sha": "134cf334c3065509eee39a5361fd0bcf969dc867"
|
||||
},
|
||||
"homepage": "https://docs.versori.com/latest/ai-tooling/overview"
|
||||
},
|
||||
{
|
||||
"name": "voila-api",
|
||||
"description": "Definitive guide for the Voila API. Covers shipment creation (Manual/Smart Shipping), real-time tracking, detailed history, manifesting, collections, webhooks, and third-party integrations (Sorted, Peoplevox, Mintsoft, Veeqo, JD).",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/TSedmanDC/Voila-API-Skill.git",
|
||||
"sha": "b9cfcb860cb5ae4ece57d67422a6cdd92ef96739"
|
||||
"sha": "422c7beb772a0de4592a204584e0e990fc5dc139"
|
||||
},
|
||||
"homepage": "https://github.com/TSedmanDC/Voila-API-Skill"
|
||||
},
|
||||
{
|
||||
"name": "windsor-ai",
|
||||
"description": "Connect Claude Code to 325+ business data sources via Windsor.ai. Query marketing, sales, CRM, ecommerce, finance, and analytics data from Google Ads, Meta, HubSpot, Salesforce, Shopify, Stripe, and hundreds more — directly from your terminal.",
|
||||
"author": {
|
||||
"name": "Windsor.ai"
|
||||
},
|
||||
"category": "productivity",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/windsor-ai/claude-windsor-ai-plugin.git",
|
||||
"sha": "248a6994b15b410cc025b105bb4ed5558e9b1af9"
|
||||
},
|
||||
"homepage": "https://windsor.ai"
|
||||
},
|
||||
{
|
||||
"name": "wix",
|
||||
"description": "Build, manage, and deploy Wix sites and apps. CLI development skills for dashboard extensions, backend APIs, site widgets, and service plugins with the Wix Design System, plus MCP server for site management.",
|
||||
@@ -1683,7 +1865,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/wix/skills.git",
|
||||
"sha": "15dda227e34959b1340e33bb9aede7e23a273f42"
|
||||
"sha": "bf25b5a45b2413b3581f3dcbcd63f3737791a051"
|
||||
},
|
||||
"homepage": "https://dev.wix.com/docs/wix-cli/guides/development/about-wix-skills"
|
||||
},
|
||||
@@ -1693,7 +1875,7 @@
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/Automattic/claude-code-wordpress.com.git",
|
||||
"sha": "e4d23c3bffdcdb7f70134ab6a1a110258ff75cfd"
|
||||
"sha": "052ca970df2c577d7c651e784935186ff93e6779"
|
||||
},
|
||||
"homepage": "https://developer.wordpress.com/wordpress-com-claude-code-plugin/"
|
||||
},
|
||||
@@ -1706,7 +1888,7 @@
|
||||
"url": "https://github.com/zapier/zapier-mcp.git",
|
||||
"path": "plugins/zapier",
|
||||
"ref": "main",
|
||||
"sha": "b93007e9a726c6ee93c57a949e732744ef5acbfd"
|
||||
"sha": "76c4669321847c8f72a6e0462c17f29fd437519a"
|
||||
},
|
||||
"homepage": "https://github.com/zapier/zapier-mcp/tree/main/plugins/zapier"
|
||||
},
|
||||
@@ -1719,6 +1901,19 @@
|
||||
"url": "https://github.com/zoom/zoom-plugin.git"
|
||||
},
|
||||
"homepage": "https://developers.zoom.us/"
|
||||
},
|
||||
{
|
||||
"name": "zscaler",
|
||||
"description": "Manage Zscaler cloud security platform including ZPA (private access), ZIA (internet access), ZDX (digital experience), ZCC (client connector), EASM (attack surface), and Z-Insights (analytics). Create and manage policies, troubleshoot connectivity, audit security configurations, and investigate incidents across the full Zscaler ecosystem.",
|
||||
"author": {
|
||||
"name": "Zscaler"
|
||||
},
|
||||
"category": "security",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/zscaler/zscaler-mcp-server.git"
|
||||
},
|
||||
"homepage": "https://github.com/zscaler/zscaler-mcp-server"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -284,6 +284,19 @@ function gate(ctx: Context): GateResult {
|
||||
return { action: 'drop' }
|
||||
}
|
||||
|
||||
// Like gate() but for bot commands: no pairing side effects, just allow/drop.
|
||||
function dmCommandGate(ctx: Context): { access: Access; senderId: string } | null {
|
||||
if (ctx.chat?.type !== 'private') return null
|
||||
if (!ctx.from) return null
|
||||
const senderId = String(ctx.from.id)
|
||||
const access = loadAccess()
|
||||
const pruned = pruneExpired(access)
|
||||
if (pruned) saveAccess(access)
|
||||
if (access.dmPolicy === 'disabled') return null
|
||||
if (access.dmPolicy === 'allowlist' && !access.allowFrom.includes(senderId)) return null
|
||||
return { access, senderId }
|
||||
}
|
||||
|
||||
function isMentioned(ctx: Context, extraPatterns?: string[]): boolean {
|
||||
const entities = ctx.message?.entities ?? ctx.message?.caption_entities ?? []
|
||||
const text = ctx.message?.text ?? ctx.message?.caption ?? ''
|
||||
@@ -669,12 +682,7 @@ setInterval(() => {
|
||||
// the gate's behavior for unrecognized groups.
|
||||
|
||||
bot.command('start', async ctx => {
|
||||
if (ctx.chat?.type !== 'private') return
|
||||
const access = loadAccess()
|
||||
if (access.dmPolicy === 'disabled') {
|
||||
await ctx.reply(`This bot isn't accepting new connections.`)
|
||||
return
|
||||
}
|
||||
if (!dmCommandGate(ctx)) return
|
||||
await ctx.reply(
|
||||
`This bot bridges Telegram to a Claude Code session.\n\n` +
|
||||
`To pair:\n` +
|
||||
@@ -685,7 +693,7 @@ bot.command('start', async ctx => {
|
||||
})
|
||||
|
||||
bot.command('help', async ctx => {
|
||||
if (ctx.chat?.type !== 'private') return
|
||||
if (!dmCommandGate(ctx)) return
|
||||
await ctx.reply(
|
||||
`Messages you send here route to a paired Claude Code session. ` +
|
||||
`Text and photos are forwarded; replies and reactions come back.\n\n` +
|
||||
@@ -695,14 +703,12 @@ bot.command('help', async ctx => {
|
||||
})
|
||||
|
||||
bot.command('status', async ctx => {
|
||||
if (ctx.chat?.type !== 'private') return
|
||||
const from = ctx.from
|
||||
if (!from) return
|
||||
const senderId = String(from.id)
|
||||
const access = loadAccess()
|
||||
const gated = dmCommandGate(ctx)
|
||||
if (!gated) return
|
||||
const { access, senderId } = gated
|
||||
|
||||
if (access.allowFrom.includes(senderId)) {
|
||||
const name = from.username ? `@${from.username}` : senderId
|
||||
const name = ctx.from!.username ? `@${ctx.from!.username}` : senderId
|
||||
await ctx.reply(`Paired as ${name}.`)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: skill-creator
|
||||
description: Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
|
||||
description: Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
|
||||
---
|
||||
|
||||
# Skill Creator
|
||||
@@ -391,7 +391,7 @@ Use the model ID from your system prompt (the one powering the current session)
|
||||
|
||||
While it runs, periodically tail the output to give the user updates on which iteration it's on and what the scores look like.
|
||||
|
||||
This handles the full optimization loop automatically. It splits the eval set into 60% train and 40% held-out test, evaluates the current description (running each query 3 times to get a reliable trigger rate), then calls Claude with extended thinking to propose improvements based on what failed. It re-evaluates each new description on both train and test, iterating up to 5 times. When it's done, it opens an HTML report in the browser showing the results per iteration and returns JSON with `best_description` — selected by test score rather than train score to avoid overfitting.
|
||||
This handles the full optimization loop automatically. It splits the eval set into 60% train and 40% held-out test, evaluates the current description (running each query 3 times to get a reliable trigger rate), then calls Claude to propose improvements based on what failed. It re-evaluates each new description on both train and test, iterating up to 5 times. When it's done, it opens an HTML report in the browser showing the results per iteration and returns JSON with `best_description` — selected by test score rather than train score to avoid overfitting.
|
||||
|
||||
### How skill triggering works
|
||||
|
||||
@@ -435,6 +435,11 @@ In Claude.ai, the core workflow is the same (draft → test → review → impro
|
||||
|
||||
**Packaging**: The `package_skill.py` script works anywhere with Python and a filesystem. On Claude.ai, you can run it and the user can download the resulting `.skill` file.
|
||||
|
||||
**Updating an existing skill**: The user might be asking you to update an existing skill, not create a new one. In this case:
|
||||
- **Preserve the original name.** Note the skill's directory name and `name` frontmatter field -- use them unchanged. E.g., if the installed skill is `research-helper`, output `research-helper.skill` (not `research-helper-v2`).
|
||||
- **Copy to a writeable location before editing.** The installed skill path may be read-only. Copy to `/tmp/skill-name/`, edit there, and package from the copy.
|
||||
- **If packaging manually, stage in `/tmp/` first**, then copy to the output directory -- direct writes may fail due to permissions.
|
||||
|
||||
---
|
||||
|
||||
## Cowork-Specific Instructions
|
||||
@@ -447,6 +452,7 @@ If you're in Cowork, the main things to know are:
|
||||
- Feedback works differently: since there's no running server, the viewer's "Submit All Reviews" button will download `feedback.json` as a file. You can then read it from there (you may have to request access first).
|
||||
- Packaging works — `package_skill.py` just needs Python and a filesystem.
|
||||
- Description optimization (`run_loop.py` / `run_eval.py`) should work in Cowork just fine since it uses `claude -p` via subprocess, not a browser, but please save it until you've fully finished making the skill and the user agrees it's in good shape.
|
||||
- **Updating an existing skill**: The user might be asking you to update an existing skill, not create a new one. Follow the update guidance in the claude.ai section above.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -2,22 +2,52 @@
|
||||
"""Improve a skill description based on eval results.
|
||||
|
||||
Takes eval results (from run_eval.py) and generates an improved description
|
||||
using Claude with extended thinking.
|
||||
by calling `claude -p` as a subprocess (same auth pattern as run_eval.py —
|
||||
uses the session's Claude Code auth, no separate ANTHROPIC_API_KEY needed).
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import anthropic
|
||||
|
||||
from scripts.utils import parse_skill_md
|
||||
|
||||
|
||||
def _call_claude(prompt: str, model: str | None, timeout: int = 300) -> str:
|
||||
"""Run `claude -p` with the prompt on stdin and return the text response.
|
||||
|
||||
Prompt goes over stdin (not argv) because it embeds the full SKILL.md
|
||||
body and can easily exceed comfortable argv length.
|
||||
"""
|
||||
cmd = ["claude", "-p", "--output-format", "text"]
|
||||
if model:
|
||||
cmd.extend(["--model", model])
|
||||
|
||||
# Remove CLAUDECODE env var to allow nesting claude -p inside a
|
||||
# Claude Code session. The guard is for interactive terminal conflicts;
|
||||
# programmatic subprocess usage is safe. Same pattern as run_eval.py.
|
||||
env = {k: v for k, v in os.environ.items() if k != "CLAUDECODE"}
|
||||
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
input=prompt,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
env=env,
|
||||
timeout=timeout,
|
||||
)
|
||||
if result.returncode != 0:
|
||||
raise RuntimeError(
|
||||
f"claude -p exited {result.returncode}\nstderr: {result.stderr}"
|
||||
)
|
||||
return result.stdout
|
||||
|
||||
|
||||
def improve_description(
|
||||
client: anthropic.Anthropic,
|
||||
skill_name: str,
|
||||
skill_content: str,
|
||||
current_description: str,
|
||||
@@ -99,7 +129,7 @@ Based on the failures, write a new and improved description that is more likely
|
||||
1. Avoid overfitting
|
||||
2. The list might get loooong and it's injected into ALL queries and there might be a lot of skills, so we don't want to blow too much space on any given description.
|
||||
|
||||
Concretely, your description should not be more than about 100-200 words, even if that comes at the cost of accuracy.
|
||||
Concretely, your description should not be more than about 100-200 words, even if that comes at the cost of accuracy. There is a hard limit of 1024 characters — descriptions over that will be truncated, so stay comfortably under it.
|
||||
|
||||
Here are some tips that we've found to work well in writing these descriptions:
|
||||
- The skill should be phrased in the imperative -- "Use this skill for" rather than "this skill does"
|
||||
@@ -111,70 +141,41 @@ I'd encourage you to be creative and mix up the style in different iterations si
|
||||
|
||||
Please respond with only the new description text in <new_description> tags, nothing else."""
|
||||
|
||||
response = client.messages.create(
|
||||
model=model,
|
||||
max_tokens=16000,
|
||||
thinking={
|
||||
"type": "enabled",
|
||||
"budget_tokens": 10000,
|
||||
},
|
||||
messages=[{"role": "user", "content": prompt}],
|
||||
)
|
||||
text = _call_claude(prompt, model)
|
||||
|
||||
# Extract thinking and text from response
|
||||
thinking_text = ""
|
||||
text = ""
|
||||
for block in response.content:
|
||||
if block.type == "thinking":
|
||||
thinking_text = block.thinking
|
||||
elif block.type == "text":
|
||||
text = block.text
|
||||
|
||||
# Parse out the <new_description> tags
|
||||
match = re.search(r"<new_description>(.*?)</new_description>", text, re.DOTALL)
|
||||
description = match.group(1).strip().strip('"') if match else text.strip().strip('"')
|
||||
|
||||
# Log the transcript
|
||||
transcript: dict = {
|
||||
"iteration": iteration,
|
||||
"prompt": prompt,
|
||||
"thinking": thinking_text,
|
||||
"response": text,
|
||||
"parsed_description": description,
|
||||
"char_count": len(description),
|
||||
"over_limit": len(description) > 1024,
|
||||
}
|
||||
|
||||
# If over 1024 chars, ask the model to shorten it
|
||||
# Safety net: the prompt already states the 1024-char hard limit, but if
|
||||
# the model blew past it anyway, make one fresh single-turn call that
|
||||
# quotes the too-long version and asks for a shorter rewrite. (The old
|
||||
# SDK path did this as a true multi-turn; `claude -p` is one-shot, so we
|
||||
# inline the prior output into the new prompt instead.)
|
||||
if len(description) > 1024:
|
||||
shorten_prompt = f"Your description is {len(description)} characters, which exceeds the hard 1024 character limit. Please rewrite it to be under 1024 characters while preserving the most important trigger words and intent coverage. Respond with only the new description in <new_description> tags."
|
||||
shorten_response = client.messages.create(
|
||||
model=model,
|
||||
max_tokens=16000,
|
||||
thinking={
|
||||
"type": "enabled",
|
||||
"budget_tokens": 10000,
|
||||
},
|
||||
messages=[
|
||||
{"role": "user", "content": prompt},
|
||||
{"role": "assistant", "content": text},
|
||||
{"role": "user", "content": shorten_prompt},
|
||||
],
|
||||
shorten_prompt = (
|
||||
f"{prompt}\n\n"
|
||||
f"---\n\n"
|
||||
f"A previous attempt produced this description, which at "
|
||||
f"{len(description)} characters is over the 1024-character hard limit:\n\n"
|
||||
f'"{description}"\n\n'
|
||||
f"Rewrite it to be under 1024 characters while keeping the most "
|
||||
f"important trigger words and intent coverage. Respond with only "
|
||||
f"the new description in <new_description> tags."
|
||||
)
|
||||
|
||||
shorten_thinking = ""
|
||||
shorten_text = ""
|
||||
for block in shorten_response.content:
|
||||
if block.type == "thinking":
|
||||
shorten_thinking = block.thinking
|
||||
elif block.type == "text":
|
||||
shorten_text = block.text
|
||||
|
||||
shorten_text = _call_claude(shorten_prompt, model)
|
||||
match = re.search(r"<new_description>(.*?)</new_description>", shorten_text, re.DOTALL)
|
||||
shortened = match.group(1).strip().strip('"') if match else shorten_text.strip().strip('"')
|
||||
|
||||
transcript["rewrite_prompt"] = shorten_prompt
|
||||
transcript["rewrite_thinking"] = shorten_thinking
|
||||
transcript["rewrite_response"] = shorten_text
|
||||
transcript["rewrite_description"] = shortened
|
||||
transcript["rewrite_char_count"] = len(shortened)
|
||||
@@ -216,9 +217,7 @@ def main():
|
||||
print(f"Current: {current_description}", file=sys.stderr)
|
||||
print(f"Score: {eval_results['summary']['passed']}/{eval_results['summary']['total']}", file=sys.stderr)
|
||||
|
||||
client = anthropic.Anthropic()
|
||||
new_description = improve_description(
|
||||
client=client,
|
||||
skill_name=name,
|
||||
skill_content=content,
|
||||
current_description=current_description,
|
||||
|
||||
@@ -15,8 +15,6 @@ import time
|
||||
import webbrowser
|
||||
from pathlib import Path
|
||||
|
||||
import anthropic
|
||||
|
||||
from scripts.generate_report import generate_html
|
||||
from scripts.improve_description import improve_description
|
||||
from scripts.run_eval import find_project_root, run_eval
|
||||
@@ -75,7 +73,6 @@ def run_loop(
|
||||
train_set = eval_set
|
||||
test_set = []
|
||||
|
||||
client = anthropic.Anthropic()
|
||||
history = []
|
||||
exit_reason = "unknown"
|
||||
|
||||
@@ -200,7 +197,6 @@ def run_loop(
|
||||
for h in history
|
||||
]
|
||||
new_description = improve_description(
|
||||
client=client,
|
||||
skill_name=name,
|
||||
skill_content=content,
|
||||
current_description=current_description,
|
||||
|
||||
Reference in New Issue
Block a user