[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADMV0SWQXH5PT7B3NHDBNW":3,"skill-same:01M6ADMV0SWQXH5PT7B3NHDBNW":104},{"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":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":70,"commitSha":71,"skillDirectory":72,"forksCount":73,"repositoryHtmlUrl":74,"repositoryHomepageUrl":75,"ownerHtmlUrl":76,"ownerBlogUrl":77,"ownerDescription":78,"updatedAt":79,"install":80,"resources":93},"01M6ADMV0SWQXH5PT7B3NHDBNW","data-processing-ray-data",null,"Scalable data processing for ML workloads. Streaming execution across CPU\u002FGPU, supports Parquet\u002FCSV\u002FJSON\u002Fimages. Integrates with Ray Train, PyTorch, TensorFlow. Scales from single machine to 100s of nodes. Use for batch inference, data preprocessing, multi-modal data loading, or distributed ETL pipelines.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33481,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fdata-processing-ray-data\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"Ray Data","processing","data processing","Ray","data processing ray data","data","loading","inference","Ray Train","Batch Inference","ML Pipelines","Scalable","CPU","preprocessing","across","images","csv","pandas","streaming","batch","parquet","gpu","etl","data loading","ml","pytorch","distributed","research","tensorflow","2026-11-10 10:12:30",false,"---\nname: data-processing-ray-data\ndescription: Scalable data processing for ML workloads. Streaming execution across CPU\u002FGPU, supports Parquet\u002FCSV\u002FJSON\u002Fimages. Integrates with Ray Train, PyTorch, TensorFlow. Scales from single machine to 100s of nodes. Use for batch inference, data preprocessing, multi-modal data loading, or distributed ETL pipelines.\nlicense: MIT\nmetadata:\n  version: 1.0.0\n  author: Orchestra Research\n  tags: [Data Processing, Ray Data, Distributed Computing, ML Pipelines, Batch Inference, ETL, Scalable, Ray, PyTorch, TensorFlow]\n  dependencies: [\"ray[data]\", pyarrow, pandas]\n---\n\n# Ray Data - Scalable ML Data Processing\n\nDistributed data processing library for ML and AI workloads.\n\n## When to use Ray Data\n\n**Use Ray Data when:**\n- Processing large datasets (>100GB) for ML training\n- Need distributed data preprocessing across cluster\n- Building batch inference pipelines\n- Loading multi-modal data (images, audio, video)\n- Scaling data processing from laptop to cluster\n\n**Key features**:\n- **Streaming execution**: Process data larger than memory\n- **GPU support**: Accelerate transforms with GPUs\n- **Framework integration**: PyTorch, TensorFlow, HuggingFace\n- **Multi-modal**: Images, Parquet, CSV, JSON, audio, video\n\n**Use alternatives instead**:\n- **Pandas**: Small data (\u003C1GB) on single machine\n- **Dask**: Tabular data, SQL-like operations\n- **Spark**: Enterprise ETL, SQL queries\n\n## Quick start\n\n### Installation\n\n```bash\npip install -U 'ray[data]'\n```\n\n### Load and transform data\n\n```python\nimport ray\n\n# Read Parquet files\nds = ray.data.read_parquet(\"s3:\u002F\u002Fbucket\u002Fdata\u002F*.parquet\")\n\n# Transform data (lazy execution)\nds = ds.map_batches(lambda batch: {\"processed\": batch[\"text\"].str.lower()})\n\n# Consume data\nfor batch in ds.iter_batches(batch_size=100):\n    print(batch)\n```\n\n### Integration with Ray Train\n\n```python\nimport ray\nfrom ray.train import ScalingConfig\nfrom ray.train.torch import TorchTrainer\n\n# Create dataset\ntrain_ds = ray.data.read_parquet(\"s3:\u002F\u002Fbucket\u002Ftrain\u002F*.parquet\")\n\ndef train_func(config):\n    # Access dataset in training\n    train_ds = ray.train.get_dataset_shard(\"train\")\n\n    for epoch in range(10):\n        for batch in train_ds.iter_batches(batch_size=32):\n            # Train on batch\n            pass\n\n# Train with Ray\ntrainer = TorchTrainer(\n    train_func,\n    datasets={\"train\": train_ds},\n    scaling_config=ScalingConfig(num_workers=4, use_gpu=True)\n)\ntrainer.fit()\n```\n\n## Reading data\n\n### From cloud storage\n\n```python\nimport ray\n\n# Parquet (recommended for ML)\nds = ray.data.read_parquet(\"s3:\u002F\u002Fbucket\u002Fdata\u002F*.parquet\")\n\n# CSV\nds = ray.data.read_csv(\"s3:\u002F\u002Fbucket\u002Fdata\u002F*.csv\")\n\n# JSON\nds = ray.data.read_json(\"gs:\u002F\u002Fbucket\u002Fdata\u002F*.json\")\n\n# Images\nds = ray.data.read_images(\"s3:\u002F\u002Fbucket\u002Fimages\u002F\")\n```\n\n### From Python objects\n\n```python\n# From list\nds = ray.data.from_items([{\"id\": i, \"value\": i * 2} for i in range(1000)])\n\n# From range\nds = ray.data.range(1000000)  # Synthetic data\n\n# From pandas\nimport pandas as pd\ndf = pd.DataFrame({\"col1\": [1, 2, 3], \"col2\": [4, 5, 6]})\nds = ray.data.from_pandas(df)\n```\n\n## Transformations\n\n### Map batches (vectorized)\n\n```python\n# Batch transformation (fast)\ndef process_batch(batch):\n    batch[\"doubled\"] = batch[\"value\"] * 2\n    return batch\n\nds = ds.map_batches(process_batch, batch_size=1000)\n```\n\n### Row transformations\n\n```python\n# Row-by-row (slower)\ndef process_row(row):\n    row[\"squared\"] = row[\"value\"] ** 2\n    return row\n\nds = ds.map(process_row)\n```\n\n### Filter\n\n```python\n# Filter rows\nds = ds.filter(lambda row: row[\"value\"] > 100)\n```\n\n### Group by and aggregate\n\n```python\n# Group by column\nds = ds.groupby(\"category\").count()\n\n# Custom aggregation\nds = ds.groupby(\"category\").map_groups(lambda group: {\"sum\": group[\"value\"].sum()})\n```\n\n## GPU-accelerated transforms\n\n```python\n# Use GPU for preprocessing\ndef preprocess_images_gpu(batch):\n    import torch\n    images = torch.tensor(batch[\"image\"]).cuda()\n    # GPU preprocessing\n    processed = images * 255\n    return {\"processed\": processed.cpu().numpy()}\n\nds = ds.map_batches(\n    preprocess_images_gpu,\n    batch_size=64,\n    num_gpus=1  # Request GPU\n)\n```\n\n## Writing data\n\n```python\n# Write to Parquet\nds.write_parquet(\"s3:\u002F\u002Fbucket\u002Foutput\u002F\")\n\n# Write to CSV\nds.write_csv(\"output\u002F\")\n\n# Write to JSON\nds.write_json(\"output\u002F\")\n```\n\n## Performance optimization\n\n### Repartition\n\n```python\n# Control parallelism\nds = ds.repartition(100)  # 100 blocks for 100-core cluster\n```\n\n### Batch size tuning\n\n```python\n# Larger batches = faster vectorized ops\nds.map_batches(process_fn, batch_size=10000)  # vs batch_size=100\n```\n\n### Streaming execution\n\n```python\n# Process data larger than memory\nds = ray.data.read_parquet(\"s3:\u002F\u002Fhuge-dataset\u002F\")\nfor batch in ds.iter_batches(batch_size=1000):\n    process(batch)  # Streamed, not loaded to memory\n```\n\n## Common patterns\n\n### Batch inference\n\n```python\nimport ray\n\n# Load model\ndef load_model():\n    # Load once per worker\n    return MyModel()\n\n# Inference function\nclass BatchInference:\n    def __init__(self):\n        self.model = load_model()\n\n    def __call__(self, batch):\n        predictions = self.model(batch[\"input\"])\n        return {\"prediction\": predictions}\n\n# Run distributed inference\nds = ray.data.read_parquet(\"s3:\u002F\u002Fdata\u002F\")\npredictions = ds.map_batches(BatchInference, batch_size=32, num_gpus=1)\npredictions.write_parquet(\"s3:\u002F\u002Foutput\u002F\")\n```\n\n### Data preprocessing pipeline\n\n```python\n# Multi-step pipeline\nds = (\n    ray.data.read_parquet(\"s3:\u002F\u002Fraw\u002F\")\n    .map_batches(clean_data)\n    .map_batches(tokenize)\n    .map_batches(augment)\n    .write_parquet(\"s3:\u002F\u002Fprocessed\u002F\")\n)\n```\n\n## Integration with ML frameworks\n\n### PyTorch\n\n```python\n# Convert to PyTorch\ntorch_ds = ds.to_torch(label_column=\"label\", batch_size=32)\n\nfor batch in torch_ds:\n    # batch is dict with tensors\n    inputs, labels = batch[\"features\"], batch[\"label\"]\n```\n\n### TensorFlow\n\n```python\n# Convert to TensorFlow\ntf_ds = ds.to_tf(feature_columns=[\"image\"], label_column=\"label\", batch_size=32)\n\nfor features, labels in tf_ds:\n    # Train model\n    pass\n```\n\n## Supported data formats\n\n| Format | Read | Write | Use Case |\n|--------|------|-------|----------|\n| Parquet | ✅ | ✅ | ML data (recommended) |\n| CSV | ✅ | ✅ | Tabular data |\n| JSON | ✅ | ✅ | Semi-structured |\n| Images | ✅ | ❌ | Computer vision |\n| NumPy | ✅ | ✅ | Arrays |\n| Pandas | ✅ | ❌ | DataFrames |\n\n## Performance benchmarks\n\n**Scaling** (processing 100GB data):\n- 1 node (16 cores): ~30 minutes\n- 4 nodes (64 cores): ~8 minutes\n- 16 nodes (256 cores): ~2 minutes\n\n**GPU acceleration** (image preprocessing):\n- CPU only: 1,000 images\u002Fsec\n- 1 GPU: 5,000 images\u002Fsec\n- 4 GPUs: 18,000 images\u002Fsec\n\n## Use cases\n\n**Production deployments**:\n- **Pinterest**: Last-mile data processing for model training\n- **ByteDance**: Scaling offline inference with multi-modal LLMs\n- **Spotify**: ML platform for batch inference\n\n## References\n\n- **[Transformations Guide](references\u002Ftransformations.md)** - Map, filter, groupby operations\n- **[Integration Guide](references\u002Fintegration.md)** - Ray Train, PyTorch, TensorFlow\n\n## Resources\n\n- **Docs**: https:\u002F\u002Fdocs.ray.io\u002Fen\u002Flatest\u002Fdata\u002Fdata.html\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fray-project\u002Fray ⭐ 36,000+\n- **Version**: Ray 2.40.0+\n- **Examples**: https:\u002F\u002Fdocs.ray.io\u002Fen\u002Flatest\u002Fdata\u002Fexamples\u002Foverview.html\n\n\n\n","# Ray Data - Scalable ML Data Processing\n\nDistributed data processing library for ML and AI workloads.\n\n## When to use Ray Data\n\n**Use Ray Data when:**\n- Processing large datasets (>100GB) for ML training\n- Need distributed data preprocessing across cluster\n- Building batch inference pipelines\n- Loading multi-modal data (images, audio, video)\n- Scaling data processing from laptop to cluster\n\n**Key features**:\n- **Streaming execution**: Process data larger than memory\n- **GPU support**: Accelerate transforms with GPUs\n- **Framework integration**: PyTorch, TensorFlow, HuggingFace\n- **Multi-modal**: Images, Parquet, CSV, JSON, audio, video\n\n**Use alternatives instead**:\n- **Pandas**: Small data (\u003C1GB) on single machine\n- **Dask**: Tabular data, SQL-like operations\n- **Spark**: Enterprise ETL, SQL queries\n\n## Quick start\n\n### Installation\n\n```bash\npip install -U 'ray[data]'\n```\n\n### Load and transform data\n\n```python\nimport ray\n\n# Read Parquet files\nds = ray.data.read_parquet(\"s3:\u002F\u002Fbucket\u002Fdata\u002F*.parquet\")\n\n# Transform data (lazy execution)\nds = ds.map_batches(lambda batch: {\"processed\": batch[\"text\"].str.lower()})\n\n# Consume data\nfor batch in ds.iter_batches(batch_size=100):\n    print(batch)\n```\n\n### Integration with Ray Train\n\n```python\nimport ray\nfrom ray.train import ScalingConfig\nfrom ray.train.torch import TorchTrainer\n\n# Create dataset\ntrain_ds = ray.data.read_parquet(\"s3:\u002F\u002Fbucket\u002Ftrain\u002F*.parquet\")\n\ndef train_func(config):\n    # Access dataset in training\n    train_ds = ray.train.get_dataset_shard(\"train\")\n\n    for epoch in range(10):\n        for batch in train_ds.iter_batches(batch_size=32):\n            # Train on batch\n            pass\n\n# Train with Ray\ntrainer = TorchTrainer(\n    train_func,\n    datasets={\"train\": train_ds},\n    scaling_config=ScalingConfig(num_workers=4, use_gpu=True)\n)\ntrainer.fit()\n```\n\n## Reading data\n\n### From cloud storage\n\n```python\nimport ray\n\n# Parquet (recommended for ML)\nds = ray.data.read_parquet(\"s3:\u002F\u002Fbucket\u002Fdata\u002F*.parquet\")\n\n# CSV\nds = ray.data.read_csv(\"s3:\u002F\u002Fbucket\u002Fdata\u002F*.csv\")\n\n# JSON\nds = ray.data.read_json(\"gs:\u002F\u002Fbucket\u002Fdata\u002F*.json\")\n\n# Images\nds = ray.data.read_images(\"s3:\u002F\u002Fbucket\u002Fimages\u002F\")\n```\n\n### From Python objects\n\n```python\n# From list\nds = ray.data.from_items([{\"id\": i, \"value\": i * 2} for i in range(1000)])\n\n# From range\nds = ray.data.range(1000000)  # Synthetic data\n\n# From pandas\nimport pandas as pd\ndf = pd.DataFrame({\"col1\": [1, 2, 3], \"col2\": [4, 5, 6]})\nds = ray.data.from_pandas(df)\n```\n\n## Transformations\n\n### Map batches (vectorized)\n\n```python\n# Batch transformation (fast)\ndef process_batch(batch):\n    batch[\"doubled\"] = batch[\"value\"] * 2\n    return batch\n\nds = ds.map_batches(process_batch, batch_size=1000)\n```\n\n### Row transformations\n\n```python\n# Row-by-row (slower)\ndef process_row(row):\n    row[\"squared\"] = row[\"value\"] ** 2\n    return row\n\nds = ds.map(process_row)\n```\n\n### Filter\n\n```python\n# Filter rows\nds = ds.filter(lambda row: row[\"value\"] > 100)\n```\n\n### Group by and aggregate\n\n```python\n# Group by column\nds = ds.groupby(\"category\").count()\n\n# Custom aggregation\nds = ds.groupby(\"category\").map_groups(lambda group: {\"sum\": group[\"value\"].sum()})\n```\n\n## GPU-accelerated transforms\n\n```python\n# Use GPU for preprocessing\ndef preprocess_images_gpu(batch):\n    import torch\n    images = torch.tensor(batch[\"image\"]).cuda()\n    # GPU preprocessing\n    processed = images * 255\n    return {\"processed\": processed.cpu().numpy()}\n\nds = ds.map_batches(\n    preprocess_images_gpu,\n    batch_size=64,\n    num_gpus=1  # Request GPU\n)\n```\n\n## Writing data\n\n```python\n# Write to Parquet\nds.write_parquet(\"s3:\u002F\u002Fbucket\u002Foutput\u002F\")\n\n# Write to CSV\nds.write_csv(\"output\u002F\")\n\n# Write to JSON\nds.write_json(\"output\u002F\")\n```\n\n## Performance optimization\n\n### Repartition\n\n```python\n# Control parallelism\nds = ds.repartition(100)  # 100 blocks for 100-core cluster\n```\n\n### Batch size tuning\n\n```python\n# Larger batches = faster vectorized ops\nds.map_batches(process_fn, batch_size=10000)  # vs batch_size=100\n```\n\n### Streaming execution\n\n```python\n# Process data larger than memory\nds = ray.data.read_parquet(\"s3:\u002F\u002Fhuge-dataset\u002F\")\nfor batch in ds.iter_batches(batch_size=1000):\n    process(batch)  # Streamed, not loaded to memory\n```\n\n## Common patterns\n\n### Batch inference\n\n```python\nimport ray\n\n# Load model\ndef load_model():\n    # Load once per worker\n    return MyModel()\n\n# Inference function\nclass BatchInference:\n    def __init__(self):\n        self.model = load_model()\n\n    def __call__(self, batch):\n        predictions = self.model(batch[\"input\"])\n        return {\"prediction\": predictions}\n\n# Run distributed inference\nds = ray.data.read_parquet(\"s3:\u002F\u002Fdata\u002F\")\npredictions = ds.map_batches(BatchInference, batch_size=32, num_gpus=1)\npredictions.write_parquet(\"s3:\u002F\u002Foutput\u002F\")\n```\n\n### Data preprocessing pipeline\n\n```python\n# Multi-step pipeline\nds = (\n    ray.data.read_parquet(\"s3:\u002F\u002Fraw\u002F\")\n    .map_batches(clean_data)\n    .map_batches(tokenize)\n    .map_batches(augment)\n    .write_parquet(\"s3:\u002F\u002Fprocessed\u002F\")\n)\n```\n\n## Integration with ML frameworks\n\n### PyTorch\n\n```python\n# Convert to PyTorch\ntorch_ds = ds.to_torch(label_column=\"label\", batch_size=32)\n\nfor batch in torch_ds:\n    # batch is dict with tensors\n    inputs, labels = batch[\"features\"], batch[\"label\"]\n```\n\n### TensorFlow\n\n```python\n# Convert to TensorFlow\ntf_ds = ds.to_tf(feature_columns=[\"image\"], label_column=\"label\", batch_size=32)\n\nfor features, labels in tf_ds:\n    # Train model\n    pass\n```\n\n## Supported data formats\n\n| Format | Read | Write | Use Case |\n|--------|------|-------|----------|\n| Parquet | ✅ | ✅ | ML data (recommended) |\n| CSV | ✅ | ✅ | Tabular data |\n| JSON | ✅ | ✅ | Semi-structured |\n| Images | ✅ | ❌ | Computer vision |\n| NumPy | ✅ | ✅ | Arrays |\n| Pandas | ✅ | ❌ | DataFrames |\n\n## Performance benchmarks\n\n**Scaling** (processing 100GB data):\n- 1 node (16 cores): ~30 minutes\n- 4 nodes (64 cores): ~8 minutes\n- 16 nodes (256 cores): ~2 minutes\n\n**GPU acceleration** (image preprocessing):\n- CPU only: 1,000 images\u002Fsec\n- 1 GPU: 5,000 images\u002Fsec\n- 4 GPUs: 18,000 images\u002Fsec\n\n## Use cases\n\n**Production deployments**:\n- **Pinterest**: Last-mile data processing for model training\n- **ByteDance**: Scaling offline inference with multi-modal LLMs\n- **Spotify**: ML platform for batch inference\n\n## References\n\n- **[Transformations Guide](references\u002Ftransformations.md)** - Map, filter, groupby operations\n- **[Integration Guide](references\u002Fintegration.md)** - Ray Train, PyTorch, TensorFlow\n\n## Resources\n\n- **Docs**: https:\u002F\u002Fdocs.ray.io\u002Fen\u002Flatest\u002Fdata\u002Fdata.html\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fray-project\u002Fray ⭐ 36,000+\n- **Version**: Ray 2.40.0+\n- **Examples**: https:\u002F\u002Fdocs.ray.io\u002Fen\u002Flatest\u002Fdata\u002Fexamples\u002Foverview.html\n\n\n\n",{"name":5,"license":15,"metadata":58,"description":7},{"tags":59,"author":65,"version":66,"dependencies":67},[60,24,61,34,33,62,35,27,63,64],"Data Processing","Distributed Computing","ETL","PyTorch","TensorFlow","Orchestra Research","1.0.0",[68,69,41],"ray[data]","pyarrow","main","2b749c82b5d11fac39d9a6e021ce3f5b8a541bd1","cli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fdata-processing-ray-data",3931,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-14 06:14:46",{"source":8,"skillName":5,"commands":81,"prompt":91,"zipAvailable":92},[82,85,88],{"tool":83,"command":84},"npx","npx skills add davila7\u002Fclaude-code-templates --skill data-processing-ray-data",{"tool":86,"command":87},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill data-processing-ray-data",{"tool":89,"command":90},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill data-processing-ray-data","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fdata-processing-ray-data\u002FSKILL.md",true,[94,100],{"path":95,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fintegration.md","REFERENCE","参考文档",1851,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fdata-processing-ray-data\u002Freferences\u002Fintegration.md",{"path":101,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Ftransformations.md",1664,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fdata-processing-ray-data\u002Freferences\u002Ftransformations.md",[105,137,164,193,228,252],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":116,"publishedAt":53},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[111],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],"scoring","pool","wealthville pool scoring","liquidity","which","for","exit","now","use","when","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":53},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[143],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},[145,146,147,148,149,150,151,152,153,154,155,126,156,157,158,159,160,161,162,163],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","code","todo","work","plan","focus","signals","audit","dependency",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":175,"publishedAt":53},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[170,173,174],{"categoryNo":171,"categoryName":172,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[176,177,178,179,180,181,182,122,183,184,185,186,187,188,189,125,190,191,126,192],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","access","database","query",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":197,"licenseFileUrl":198,"sourceHtmlUrl":199,"categories":200,"keywords":204,"publishedAt":53},"01M6AFY6F7CC2BBZP1QD6VTNVC","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\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[201],{"categoryNo":202,"categoryName":203,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000009","前端开发",[205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,122,227],"artifacts builder","web","web artifacts builder","artifacts","builder","state","routing","state management","component","css","frontend","ui","Tools","file","components","shadcn","react","Tailwind","suite","jsx","html","single-file","ui components",{"skillNo":229,"name":230,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":197,"licenseFileUrl":232,"sourceHtmlUrl":233,"categories":234,"keywords":239,"publishedAt":53},"01M6AFWF33SFV9Z3SF4PEEE4BF","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\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[235,238],{"categoryNo":236,"categoryName":237,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":202,"categoryName":203,"taxonomyType":114,"taxonomyTypeDesc":115},[240,241,242,243,244,206,245,215,216,246,247,248,249,122,250,128,251],"webapp testing","testing","webapp","browser","playwright","applications","debugging","toolkit","logs","screenshots","local","behavior",{"skillNo":253,"name":254,"nameZh":6,"description":255,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":197,"licenseFileUrl":256,"sourceHtmlUrl":257,"categories":258,"keywords":266,"publishedAt":53},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[259,262,263],{"categoryNo":260,"categoryName":261,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},{"categoryNo":264,"categoryName":265,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[267,268,269,270,271,272,29,273,208,274,218,156,275,276,277,278,279,188,280,126,281,282,283,284,285,134,286],"discernment nudge","nudge","interpretation","help","run","reasoning","writing","lookup","content","review","conversation","short","up","invoke","you","analysis","claims","argument","assemble","recommendations"]