[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F65ZSWVDA8DWR07DTYXKZD":3,"skill-same:01M6F65ZSWVDA8DWR07DTYXKZD":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6F65ZSWVDA8DWR07DTYXKZD","databricks-common-errors",null,"Diagnose and fix Databricks common errors and exceptions.\nUse when encountering Databricks errors, debugging failed jobs,\nor troubleshooting cluster and notebook issues.\nTrigger with phrases like \"databricks error\", \"fix databricks\",\n\"databricks not working\", \"debug databricks\", \"spark error\".","Dicklesworthstone\u002Fpi_agent_rust","Dicklesworthstone","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F35050222?v=4","01M6CG26AR942CSVMN1M5E3DSE","Jeff Emanuel","01M6CG26EPP71PSHW1VDS71121",1979,"MIT","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fdatabricks-pack\u002Fskills\u002Fdatabricks-common-errors\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"databricks","errors","databricks common errors","common","fix","when","with","error","cluster","trigger","io","notebook","use","debug","read","grep","troubleshooting","Bash","issues","debugging","spark","diagnose","2026-11-10 10:12:30",false,"---\nname: databricks-common-errors\ndescription: |\n  Diagnose and fix Databricks common errors and exceptions.\n  Use when encountering Databricks errors, debugging failed jobs,\n  or troubleshooting cluster and notebook issues.\n  Trigger with phrases like \"databricks error\", \"fix databricks\",\n  \"databricks not working\", \"debug databricks\", \"spark error\".\nallowed-tools: Read, Grep, Bash(databricks:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\n---\n\n# Databricks Common Errors\n\n## Overview\nQuick reference for the top Databricks errors and their solutions.\n\n## Prerequisites\n- Databricks CLI\u002FSDK installed\n- API credentials configured\n- Access to cluster\u002Fjob logs\n\n## Instructions\n\n### Step 1: Identify the Error\nCheck error message in job run output, cluster logs, or notebook cells.\n\n### Step 2: Find Matching Error Below\nMatch your error to one of the documented cases.\n\n### Step 3: Apply Solution\nFollow the solution steps for your specific error.\n\n## Output\n- Identified error cause\n- Applied fix\n- Verified resolution\n\n## Error Handling\n\n### CLUSTER_NOT_READY\n**Error Message:**\n```\nClusterNotReadyException: Cluster is not in a valid state\n```\n\n**Cause:** Cluster is starting, terminating, or in error state.\n\n**Solution:**\n```python\nfrom databricks.sdk import WorkspaceClient\nfrom databricks.sdk.service.compute import State\n\nw = WorkspaceClient()\ncluster = w.clusters.get(\"cluster-id\")\n\nif cluster.state in [State.PENDING, State.RESTARTING]:\n    # Wait for cluster\n    w.clusters.wait_get_cluster_running(\"cluster-id\")\nelif cluster.state == State.TERMINATED:\n    # Start cluster\n    w.clusters.start(\"cluster-id\")\n    w.clusters.wait_get_cluster_running(\"cluster-id\")\nelif cluster.state == State.ERROR:\n    # Check termination reason\n    print(f\"Error: {cluster.termination_reason}\")\n```\n\n---\n\n### SPARK_DRIVER_OOM (Out of Memory)\n**Error Message:**\n```\njava.lang.OutOfMemoryError: Java heap space\nSparkException: Job aborted due to stage failure\n```\n\n**Cause:** Driver or executor running out of memory.\n\n**Solution:**\n```python\n# Increase driver memory in cluster config\n{\n    \"spark.driver.memory\": \"8g\",\n    \"spark.executor.memory\": \"8g\",\n    \"spark.sql.shuffle.partitions\": \"200\"\n}\n\n# Or use more efficient operations\n# WRONG: collect() on large data\nall_data = df.collect()  # DON'T DO THIS\n\n# RIGHT: process in chunks or use distributed operations\ndf.write.format(\"delta\").save(\"\u002Fpath\")  # Keep data distributed\n```\n\n---\n\n### DELTA_CONCURRENT_WRITE\n**Error Message:**\n```\nConcurrentAppendException: Files were added by a concurrent update\nConcurrentDeleteReadException: A concurrent operation modified files\n```\n\n**Cause:** Multiple jobs writing to same Delta table simultaneously.\n\n**Solution:**\n```python\n# Option 1: Retry with isolation level\ndf.write \\\n    .format(\"delta\") \\\n    .option(\"isolationLevel\", \"Serializable\") \\\n    .mode(\"append\") \\\n    .save(\"\u002Fpath\")\n\n# Option 2: Use merge with retry logic\nfrom delta.tables import DeltaTable\nimport time\n\ndef merge_with_retry(source_df, target_path, merge_condition, retries=3):\n    for attempt in range(retries):\n        try:\n            delta_table = DeltaTable.forPath(spark, target_path)\n            delta_table.alias(\"t\").merge(\n                source_df.alias(\"s\"),\n                merge_condition\n            ).whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()\n            return\n        except Exception as e:\n            if \"Concurrent\" in str(e) and attempt \u003C retries - 1:\n                time.sleep(2 ** attempt)\n                continue\n            raise\n```\n\n---\n\n### PERMISSION_DENIED\n**Error Message:**\n```\nPermissionDeniedException: User does not have permission\nPERMISSION_DENIED: User does not have READ on table\n```\n\n**Cause:** Missing Unity Catalog or workspace permissions.\n\n**Solution:**\n```sql\n-- Grant table permissions (Unity Catalog)\nGRANT SELECT ON TABLE catalog.schema.table TO `user@company.com`;\nGRANT ALL PRIVILEGES ON SCHEMA catalog.schema TO `data-team`;\n\n-- Check current permissions\nSHOW GRANTS ON TABLE catalog.schema.table;\n\n-- For workspace objects (Admin required)\ndatabricks permissions update jobs --job-id 123 --json '{\n  \"access_control_list\": [{\n    \"user_name\": \"user@company.com\",\n    \"permission_level\": \"CAN_MANAGE_RUN\"\n  }]\n}'\n```\n\n---\n\n### INVALID_PARAMETER_VALUE\n**Error Message:**\n```\nInvalidParameterValue: Instance type not supported\nInvalid Spark version\n```\n\n**Cause:** Wrong cluster configuration for workspace\u002Fcloud.\n\n**Solution:**\n```python\n# Get valid node types for your workspace\nw = WorkspaceClient()\nnode_types = list(w.clusters.list_node_types())\nfor nt in node_types[:5]:\n    print(f\"{nt.node_type_id}: {nt.memory_mb}MB, {nt.num_cores} cores\")\n\n# Get valid Spark versions\nversions = list(w.clusters.spark_versions())\nfor v in versions[:5]:\n    print(v.key)\n```\n\n---\n\n### SCHEMA_MISMATCH\n**Error Message:**\n```\nAnalysisException: Cannot merge incompatible data types\nDelta table schema does not match\n```\n\n**Cause:** Source data schema doesn't match target table.\n\n**Solution:**\n```python\n# Option 1: Enable schema evolution\ndf.write \\\n    .format(\"delta\") \\\n    .option(\"mergeSchema\", \"true\") \\\n    .mode(\"append\") \\\n    .save(\"\u002Fpath\")\n\n# Option 2: Explicit schema alignment\nfrom pyspark.sql.types import StructType, StructField, StringType, IntegerType\n\ntarget_schema = spark.table(\"target_table\").schema\n\n# Cast columns to match\nfor field in target_schema:\n    if field.name in df.columns:\n        df = df.withColumn(field.name, col(field.name).cast(field.dataType))\n\n# Option 3: Check differences before write\nsource_cols = set(df.columns)\ntarget_cols = set(spark.table(\"target\").columns)\nprint(f\"Missing in source: {target_cols - source_cols}\")\nprint(f\"Extra in source: {source_cols - target_cols}\")\n```\n\n---\n\n### RATE_LIMIT_EXCEEDED\n**Error Message:**\n```\nRateLimitExceeded: Too many requests\nHTTP 429: Rate limit exceeded\n```\n\n**Cause:** Too many API calls in short period.\n\n**Solution:**\n```python\n# See databricks-rate-limits skill for full implementation\nfrom databricks.sdk.errors import TooManyRequests\nimport time\n\ndef api_call_with_backoff(operation, max_retries=5):\n    for attempt in range(max_retries):\n        try:\n            return operation()\n        except TooManyRequests:\n            delay = 2 ** attempt\n            print(f\"Rate limited, waiting {delay}s...\")\n            time.sleep(delay)\n    raise Exception(\"Max retries exceeded\")\n```\n\n---\n\n### JOB_RUN_FAILED\n**Error Message:**\n```\nRunState: FAILED\nRun terminated with error: Task failed with error\n```\n\n**Cause:** Various - check run details for specific error.\n\n**Solution:**\n```bash\n# Get detailed run info\ndatabricks runs get --run-id 12345\n\n# Get run output (stdout\u002Fstderr)\ndatabricks runs get-output --run-id 12345\n\n# Common fixes by task type:\n# - Notebook: Check cell output for exception\n# - Python: Check stderr for traceback\n# - JAR: Check cluster driver logs\n# - SQL: Check query execution details\n```\n\n```python\n# Programmatic debugging\nw = WorkspaceClient()\nrun = w.jobs.get_run(run_id=12345)\n\nprint(f\"State: {run.state.life_cycle_state}\")\nprint(f\"Result: {run.state.result_state}\")\nprint(f\"Message: {run.state.state_message}\")\n\nfor task in run.tasks:\n    print(f\"Task {task.task_key}: {task.state.result_state}\")\n    if task.state.result_state == \"FAILED\":\n        output = w.jobs.get_run_output(task.run_id)\n        print(f\"Error: {output.error}\")\n```\n\n## Examples\n\n### Quick Diagnostic Commands\n```bash\n# Check cluster status\ndatabricks clusters get --cluster-id abc123\n\n# Get recent job runs\ndatabricks runs list --job-id 456 --limit 5\n\n# Check workspace permissions\ndatabricks permissions get jobs --job-id 456\n\n# Validate cluster config\ndatabricks clusters create --json '{\"cluster_name\":\"test\",...}' --dry-run\n```\n\n### Escalation Path\n1. Collect evidence with `databricks-debug-bundle`\n2. Check [Databricks Status](https:\u002F\u002Fstatus.databricks.com)\n3. Search [Databricks Community](https:\u002F\u002Fcommunity.databricks.com)\n4. Contact support with workspace ID and request ID\n\n## Resources\n- [Databricks Error Messages](https:\u002F\u002Fdocs.databricks.com\u002Fdev-tools\u002Fapi\u002Flatest\u002Ferror-messages.html)\n- [Troubleshooting Guide](https:\u002F\u002Fdocs.databricks.com\u002Fclusters\u002Ftroubleshooting.html)\n- [Delta Lake Troubleshooting](https:\u002F\u002Fdocs.databricks.com\u002Fdelta\u002Ftroubleshooting.html)\n\n## Next Steps\nFor comprehensive debugging, see `databricks-debug-bundle`.\n","# Databricks Common Errors\n\n## Overview\nQuick reference for the top Databricks errors and their solutions.\n\n## Prerequisites\n- Databricks CLI\u002FSDK installed\n- API credentials configured\n- Access to cluster\u002Fjob logs\n\n## Instructions\n\n### Step 1: Identify the Error\nCheck error message in job run output, cluster logs, or notebook cells.\n\n### Step 2: Find Matching Error Below\nMatch your error to one of the documented cases.\n\n### Step 3: Apply Solution\nFollow the solution steps for your specific error.\n\n## Output\n- Identified error cause\n- Applied fix\n- Verified resolution\n\n## Error Handling\n\n### CLUSTER_NOT_READY\n**Error Message:**\n```\nClusterNotReadyException: Cluster is not in a valid state\n```\n\n**Cause:** Cluster is starting, terminating, or in error state.\n\n**Solution:**\n```python\nfrom databricks.sdk import WorkspaceClient\nfrom databricks.sdk.service.compute import State\n\nw = WorkspaceClient()\ncluster = w.clusters.get(\"cluster-id\")\n\nif cluster.state in [State.PENDING, State.RESTARTING]:\n    # Wait for cluster\n    w.clusters.wait_get_cluster_running(\"cluster-id\")\nelif cluster.state == State.TERMINATED:\n    # Start cluster\n    w.clusters.start(\"cluster-id\")\n    w.clusters.wait_get_cluster_running(\"cluster-id\")\nelif cluster.state == State.ERROR:\n    # Check termination reason\n    print(f\"Error: {cluster.termination_reason}\")\n```\n\n---\n\n### SPARK_DRIVER_OOM (Out of Memory)\n**Error Message:**\n```\njava.lang.OutOfMemoryError: Java heap space\nSparkException: Job aborted due to stage failure\n```\n\n**Cause:** Driver or executor running out of memory.\n\n**Solution:**\n```python\n# Increase driver memory in cluster config\n{\n    \"spark.driver.memory\": \"8g\",\n    \"spark.executor.memory\": \"8g\",\n    \"spark.sql.shuffle.partitions\": \"200\"\n}\n\n# Or use more efficient operations\n# WRONG: collect() on large data\nall_data = df.collect()  # DON'T DO THIS\n\n# RIGHT: process in chunks or use distributed operations\ndf.write.format(\"delta\").save(\"\u002Fpath\")  # Keep data distributed\n```\n\n---\n\n### DELTA_CONCURRENT_WRITE\n**Error Message:**\n```\nConcurrentAppendException: Files were added by a concurrent update\nConcurrentDeleteReadException: A concurrent operation modified files\n```\n\n**Cause:** Multiple jobs writing to same Delta table simultaneously.\n\n**Solution:**\n```python\n# Option 1: Retry with isolation level\ndf.write \\\n    .format(\"delta\") \\\n    .option(\"isolationLevel\", \"Serializable\") \\\n    .mode(\"append\") \\\n    .save(\"\u002Fpath\")\n\n# Option 2: Use merge with retry logic\nfrom delta.tables import DeltaTable\nimport time\n\ndef merge_with_retry(source_df, target_path, merge_condition, retries=3):\n    for attempt in range(retries):\n        try:\n            delta_table = DeltaTable.forPath(spark, target_path)\n            delta_table.alias(\"t\").merge(\n                source_df.alias(\"s\"),\n                merge_condition\n            ).whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()\n            return\n        except Exception as e:\n            if \"Concurrent\" in str(e) and attempt \u003C retries - 1:\n                time.sleep(2 ** attempt)\n                continue\n            raise\n```\n\n---\n\n### PERMISSION_DENIED\n**Error Message:**\n```\nPermissionDeniedException: User does not have permission\nPERMISSION_DENIED: User does not have READ on table\n```\n\n**Cause:** Missing Unity Catalog or workspace permissions.\n\n**Solution:**\n```sql\n-- Grant table permissions (Unity Catalog)\nGRANT SELECT ON TABLE catalog.schema.table TO `user@company.com`;\nGRANT ALL PRIVILEGES ON SCHEMA catalog.schema TO `data-team`;\n\n-- Check current permissions\nSHOW GRANTS ON TABLE catalog.schema.table;\n\n-- For workspace objects (Admin required)\ndatabricks permissions update jobs --job-id 123 --json '{\n  \"access_control_list\": [{\n    \"user_name\": \"user@company.com\",\n    \"permission_level\": \"CAN_MANAGE_RUN\"\n  }]\n}'\n```\n\n---\n\n### INVALID_PARAMETER_VALUE\n**Error Message:**\n```\nInvalidParameterValue: Instance type not supported\nInvalid Spark version\n```\n\n**Cause:** Wrong cluster configuration for workspace\u002Fcloud.\n\n**Solution:**\n```python\n# Get valid node types for your workspace\nw = WorkspaceClient()\nnode_types = list(w.clusters.list_node_types())\nfor nt in node_types[:5]:\n    print(f\"{nt.node_type_id}: {nt.memory_mb}MB, {nt.num_cores} cores\")\n\n# Get valid Spark versions\nversions = list(w.clusters.spark_versions())\nfor v in versions[:5]:\n    print(v.key)\n```\n\n---\n\n### SCHEMA_MISMATCH\n**Error Message:**\n```\nAnalysisException: Cannot merge incompatible data types\nDelta table schema does not match\n```\n\n**Cause:** Source data schema doesn't match target table.\n\n**Solution:**\n```python\n# Option 1: Enable schema evolution\ndf.write \\\n    .format(\"delta\") \\\n    .option(\"mergeSchema\", \"true\") \\\n    .mode(\"append\") \\\n    .save(\"\u002Fpath\")\n\n# Option 2: Explicit schema alignment\nfrom pyspark.sql.types import StructType, StructField, StringType, IntegerType\n\ntarget_schema = spark.table(\"target_table\").schema\n\n# Cast columns to match\nfor field in target_schema:\n    if field.name in df.columns:\n        df = df.withColumn(field.name, col(field.name).cast(field.dataType))\n\n# Option 3: Check differences before write\nsource_cols = set(df.columns)\ntarget_cols = set(spark.table(\"target\").columns)\nprint(f\"Missing in source: {target_cols - source_cols}\")\nprint(f\"Extra in source: {source_cols - target_cols}\")\n```\n\n---\n\n### RATE_LIMIT_EXCEEDED\n**Error Message:**\n```\nRateLimitExceeded: Too many requests\nHTTP 429: Rate limit exceeded\n```\n\n**Cause:** Too many API calls in short period.\n\n**Solution:**\n```python\n# See databricks-rate-limits skill for full implementation\nfrom databricks.sdk.errors import TooManyRequests\nimport time\n\ndef api_call_with_backoff(operation, max_retries=5):\n    for attempt in range(max_retries):\n        try:\n            return operation()\n        except TooManyRequests:\n            delay = 2 ** attempt\n            print(f\"Rate limited, waiting {delay}s...\")\n            time.sleep(delay)\n    raise Exception(\"Max retries exceeded\")\n```\n\n---\n\n### JOB_RUN_FAILED\n**Error Message:**\n```\nRunState: FAILED\nRun terminated with error: Task failed with error\n```\n\n**Cause:** Various - check run details for specific error.\n\n**Solution:**\n```bash\n# Get detailed run info\ndatabricks runs get --run-id 12345\n\n# Get run output (stdout\u002Fstderr)\ndatabricks runs get-output --run-id 12345\n\n# Common fixes by task type:\n# - Notebook: Check cell output for exception\n# - Python: Check stderr for traceback\n# - JAR: Check cluster driver logs\n# - SQL: Check query execution details\n```\n\n```python\n# Programmatic debugging\nw = WorkspaceClient()\nrun = w.jobs.get_run(run_id=12345)\n\nprint(f\"State: {run.state.life_cycle_state}\")\nprint(f\"Result: {run.state.result_state}\")\nprint(f\"Message: {run.state.state_message}\")\n\nfor task in run.tasks:\n    print(f\"Task {task.task_key}: {task.state.result_state}\")\n    if task.state.result_state == \"FAILED\":\n        output = w.jobs.get_run_output(task.run_id)\n        print(f\"Error: {output.error}\")\n```\n\n## Examples\n\n### Quick Diagnostic Commands\n```bash\n# Check cluster status\ndatabricks clusters get --cluster-id abc123\n\n# Get recent job runs\ndatabricks runs list --job-id 456 --limit 5\n\n# Check workspace permissions\ndatabricks permissions get jobs --job-id 456\n\n# Validate cluster config\ndatabricks clusters create --json '{\"cluster_name\":\"test\",...}' --dry-run\n```\n\n### Escalation Path\n1. Collect evidence with `databricks-debug-bundle`\n2. Check [Databricks Status](https:\u002F\u002Fstatus.databricks.com)\n3. Search [Databricks Community](https:\u002F\u002Fcommunity.databricks.com)\n4. Contact support with workspace ID and request ID\n\n## Resources\n- [Databricks Error Messages](https:\u002F\u002Fdocs.databricks.com\u002Fdev-tools\u002Fapi\u002Flatest\u002Ferror-messages.html)\n- [Troubleshooting Guide](https:\u002F\u002Fdocs.databricks.com\u002Fclusters\u002Ftroubleshooting.html)\n- [Delta Lake Troubleshooting](https:\u002F\u002Fdocs.databricks.com\u002Fdelta\u002Ftroubleshooting.html)\n\n## Next Steps\nFor comprehensive debugging, see `databricks-debug-bundle`.\n",{"name":5,"author":51,"license":15,"version":52,"description":53,"allowed-tools":54},"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Diagnose and fix Databricks common errors and exceptions.\nUse when encountering Databricks errors, debugging failed jobs,\nor troubleshooting cluster and notebook issues.\nTrigger with phrases like \"databricks error\", \"fix databricks\",\n\"databricks not working\", \"debug databricks\", \"spark error\".\n","Read, Grep, Bash(databricks:*)","main","90b50ed0778745a80fd5bfb13b1843d45b9e82f7","tests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fdatabricks-pack\u002Fskills\u002Fdatabricks-common-errors",231,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust","https:\u002F\u002Fgithub.com\u002FDicklesworthstone","https:\u002F\u002Fwww.jeffreyemanuel.com\u002F","Building in NY","2026-11-11 01:23:40",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add Dicklesworthstone\u002Fpi_agent_rust --skill databricks-common-errors",{"tool":70,"command":71},"bunx","bunx skills add Dicklesworthstone\u002Fpi_agent_rust --skill databricks-common-errors",{"tool":73,"command":74},"pnpm","pnpm dlx skills add Dicklesworthstone\u002Fpi_agent_rust --skill databricks-common-errors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fdatabricks-pack\u002Fskills\u002Fdatabricks-common-errors\u002FSKILL.md",true,[],[79,119,142,168,195,217],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":83,"licenseFileUrl":84,"sourceHtmlUrl":85,"categories":86,"keywords":92,"publishedAt":46},"01M6FEGPPK0ZTKCCM0R3E3KS33","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,36,111,112,113,114,115,116,117,118],"web artifacts builder","web","artifacts","artifacts builder","builder","frontend","css","components","react","component","routing","state management","state","shadcn","file","ui","Tools","Tailwind","html","single-file","simple","ui components","multi","for","jsx","suite",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":83,"licenseFileUrl":123,"sourceHtmlUrl":124,"categories":125,"keywords":130,"publishedAt":46},"01M6FEE9VTK1W4GY21AKREJXRG","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[126,129],{"categoryNo":127,"categoryName":128,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},[131,132,133,98,134,135,94,43,136,137,108,138,139,140,141,30,116],"testing","webapp testing","webapp","screenshots","playwright","toolkit","browser","logs","applications","behavior","local",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":146,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":46},"01M6FE20F7ZTQBFWKF4MPJ2SBX","neuropixels-analysis","Neuropixels neural recording analysis. Load SpikeGLX\u002FOpenEphys data, preprocess, motion correction, Kilosort4 spike sorting, quality metrics, Allen\u002FIBL curation, AI-assisted visual analysis, for Neuropixels 1.0\u002F2.0 extracellular electrophysiology. Use when working with neural recordings, spike sorting, extracellular electrophysiology, or when the user mentions Neuropixels, SpikeGLX, Open Ephys, Kilosort, quality metrics, or unit curation.","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fneuropixels-analysis\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fneuropixels-analysis\u002FSKILL.md",[],[150,151,152,153,154,155,156,157,36,158,159,160,161,162,163,164,30,165,166,167,116,29],"analysis","neuropixels analysis","spike","metrics","data","open","quality","user","recordings","Neural","motion","visual","quality metrics","unit","sorting","curation","recording","load",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":83,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":178,"publishedAt":46},"01M6FDP0PDK6F1GGX395C7625Z","skill-creator","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FSKILL.md",[175],{"categoryNo":176,"categoryName":177,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000023","Skill与智能体开发",[179,180,181,182,183,184,185,186,187,188,189,190,191,192,30,116,193,29,194],"skill creator","creator","workflows","create","update","capabilities","knowledge","tool","integrations","specialized","guide","new skill","existing skill","users","Existing","new",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":199,"sourceHtmlUrl":200,"categories":201,"keywords":203,"publishedAt":46},"01M6FDM8Y7VK7NYG9SM7QPA3PW","notebooklm","Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fnotebooklm\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fnotebooklm\u002FSKILL.md",[202],{"categoryNo":176,"categoryName":177,"taxonomyType":90,"taxonomyTypeDesc":91},[197,204,205,206,207,208,209,137,210,211,36,212,213,214,215,116,216],"google","browser automation","gemini","automation","auth","code","library","management","only","document","query","Citation","source",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":83,"licenseFileUrl":221,"sourceHtmlUrl":222,"categories":223,"keywords":230,"publishedAt":46},"01M6FDHPXE10J3XGTCH5HBHS1M","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FSKILL.md",[224,227],{"categoryNo":225,"categoryName":226,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":228,"categoryName":229,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000016","图像与多媒体",[231,232,233,180,234,109,235,236,185,36,237,192,238,239,240,116,241,29],"slack gif creator","slack","gif","validation","constraints","Animation","me","make","Utilities","concepts","request"]