Skip to main content

Crate spider_skills

Crate spider_skills 

Source
Expand description

Reusable automation tactics for the spider-rs ecosystem.

This crate provides self-contained skill definitions for solving common web challenges: CAPTCHAs, anti-bot systems, interactive puzzles, access barriers, and data extraction patterns. Skills are prompt fragments with trigger conditions that get injected into the LLM context when the page state matches.

§Architecture

spider_skills is the canonical source for skill types and content. Any spider-rs project can depend on this crate directly.

┌───────────────────────────┐
│     spider_skills         │  ← This crate: types + skill content
│  ┌──────────────────────┐ │
│  │ Skill, SkillTrigger, │ │  ← Core types (defined here)
│  │ SkillRegistry        │ │
│  ├──────────────────────┤ │
│  │ web_challenges       │ │  ← 69 built-in challenge skills
│  │ fetch                │ │  ← Optional: fetch skills from URLs
│  │ s3                   │ │  ← Optional: load skills from S3
│  └──────────────────────┘ │
└────────────┬──────────────┘
             │ used by
   ┌─────────┼─────────┐
   ▼         ▼         ▼
spider    spider     your
_agent   _worker    project

§Usage

use spider_skills::web_challenges;

// Get a registry with all built-in web challenge skills
let registry = web_challenges::registry();

// Or pick specific skill categories
let mut registry = spider_skills::new_registry();
web_challenges::add_image_grid(&mut registry);
web_challenges::add_tic_tac_toe(&mut registry);

§Adding Custom Skills

Skills can be loaded from markdown with YAML frontmatter:

let mut registry = spider_skills::new_registry();
registry.load_markdown(r#"---
name: my-skill
description: Custom challenge solver
triggers:
  - title_contains: "my challenge"
---

Strategy for solving my custom challenge...
"#);

Modules§

web_challenges
Built-in web challenge solving skills.

Structs§

Skill
A skill provides specialized context for solving specific challenge types.
SkillRegistry
Registry for managing and matching skills.

Enums§

SkillTrigger
Trigger conditions for skill activation.

Functions§

new_registry
Create a new empty skill registry.