mcpField
C
core-dynamic-skills

core-dynamic-skills

github.com/actionbookAgent workflows1.6k1.9k installsUpdated 9w ago
Repository

About core-dynamic-skills

A skill manager that generates and maintains local crate-specific skills from Rust project dependencies. It supports Cargo workspaces and offers an agent-assisted mode or a manual inline mode depending on available infrastructure.

Key features

  1. 01Scans Cargo.toml dependencies
  2. 02Detects missing crate skills
  3. 03Generates skills from docs.rs material
  4. 04Supports workspace dependencies
  5. 05Syncs, updates, and removes skills

Use cases

  1. 01Creating skills for a Rust project's dependencies
  2. 02Refreshing generated crate documentation skills
  3. 03Cleaning up crate skills no longer needed

MCP support

The README lists actionbook MCP as a priority source for pre-generated llms.txt during skill generation. It does not describe tools or resources exposed to MCP clients.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/actionbook/rust-skills --skill core-dynamic-skills

After installing, type/core-dynamic-skillsin Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

Dynamic Skills Manager

Version: 2.1.0 | Last Updated: 2025-01-27

Orchestrates on-demand generation of crate-specific skills based on project dependencies.

Concept

Dynamic skills are:

  • Generated locally at ~/.claude/skills/
  • Based on Cargo.toml dependencies
  • Created using llms.txt from docs.rs
  • Versioned and updatable
  • Not committed to the rust-skills repository

Trigger Scenarios

Prompt-on-Open

When entering a directory with Cargo.toml:

  1. Detect Cargo.toml (single or workspace)
  2. Parse dependencies list
  3. Check which crates are missing skills
  4. If missing: "Found X dependencies without skills. Sync now?"
  5. If confirmed: run /sync-crate-skills
Manual Commands
  • /sync-crate-skills - Sync all dependencies
  • /clean-crate-skills [crate] - Remove skills
  • /update-crate-skill <crate> - Update specific skill

Execution Mode Detection

CRITICAL: Check if agent and command infrastructure is available.

Try to read: ../../agents/ directory Check if /create-llms-for-skills and /create-skills-via-llms commands work.


Agent Mode (Plugin Install)

When full plugin infrastructure is available:

Architecture
Cargo.toml
    ↓
Parse dependencies
    ↓
For each crate:
  ├─ Check ~/.claude/skills/{crate}/
  ├─ If missing: Check actionbook for llms.txt
  │     ├─ Found: /create-skills-via-llms
  │     └─ Not found: /create-llms-for-skills first
  └─ Load skill
Workflow Priority
  1. actionbook MCP - Check for pre-generated llms.txt
  2. /create-llms-for-skills - Generate llms.txt from docs.rs
  3. /create-skills-via-llms - Create skills from llms.txt
Sync Command
/sync-crate-skills [--force]
  1. Parse Cargo.toml for dependencies
  2. For each dependency:
    • Check if skill exists at ~/.claude/skills/{crate}/
    • If missing (or --force): generate skill
  3. Report results

Inline Mode (Skills-only Install)

When agent/command infrastructure is NOT available, execute manually:

Step 1: Parse Cargo.toml
# Read dependencies
cat Cargo.toml | grep -A 100 '\[dependencies\]' | grep -E '^[a-zA-Z]'

Or use Read tool to parse Cargo.toml and extract:

  • [dependencies] section
  • [dev-dependencies] section (optional)
  • Workspace members (if workspace project)
Step 2: Check Existing Skills
# List existing skills
ls ~/.claude/skills/

Compare with dependencies to find missing skills.

Step 3: Generate Missing Skills

For each missing crate:

# 1. Fetch crate documentation
agent-browser open "https://docs.rs/{crate}/latest/{crate}/"
agent-browser get text ".docblock"
# Save content

# 2. Create skill directory
mkdir -p ~/.claude/skills/{crate}
mkdir -p ~/.claude/skills/{crate}/references

# 3. Create SKILL.md
# Use template from rust-skill-creator inline mode

# 4. Create reference files for key modules
agent-browser open "https://docs.rs/{crate}/latest/{crate}/{module}/"
agent-browser get text ".docblock"
# Save to ~/.claude/skills/{crate}/references/{module}.md

agent-browser close

WebFetch fallback:

WebFetch("https://docs.rs/{crate}/latest/{crate}/", "Extract API documentation overview, key types, and usage examples")
Step 4: Workspace Support

For Cargo workspace projects:

# 1. Parse root Cargo.toml for workspace members
cat Cargo.toml | grep -A 10 '\[workspace\]'

# 2. For each member, parse their Cargo.toml
for member in members; do
  cat ${member}/Cargo.toml | grep -A 100 '\[dependencies\]'
done

# 3. Aggregate and deduplicate dependencies
# 4. Generate skills for missing crates
Clean Command (Inline)
# Clean specific crate
rm -rf ~/.claude/skills/{crate_name}

# Clean all generated skills
rm -rf ~/.claude/skills/*
Update Command (Inline)
# Remove old skill
rm -rf ~/.claude/skills/{crate_name}

# Re-generate (same as sync for single crate)
# Follow Step 3 above for the specific crate

Local Skills Directory

~/.claude/skills/
├── tokio/
│   ├── SKILL.md
│   └── references/
├── serde/
│   ├── SKILL.md
│   └── references/
└── axum/
    ├── SKILL.md
    └── references/

Related Commands

  • /sync-crate-skills - Main sync command
  • /clean-crate-skills - Cleanup command
  • /update-crate-skill - Update command
  • /create-llms-for-skills - Generate llms.txt (Agent Mode only)
  • /create-skills-via-llms - Create skills from llms.txt (Agent Mode only)

Error Handling

ErrorCauseSolution
Commands not foundSkills-only installUse inline mode
Cargo.toml not foundNot in Rust projectNavigate to project root
docs.rs unavailableNetwork issueRetry or skip crate
Permission deniedDirectory issueCheck ~/.claude/skills/ permissions

Comments

Markdown supported