# Aleo Developer Skills Registry
# https://aleoforagents.com/skills/registry.yaml

version: "2.0.0"
last_updated: "2026-03-09"
base_url: "https://aleoforagents.com/skills"

skills:
  - id: aleo_smart_contracts
    name: "Leo Smart Contract Development"
    url: "/skills/aleo_smart_contracts.md"
    description: "Complete Leo language reference for AI coding agents — types, records, mappings, storage, constructors, operators, control flow, cross-program calls, and full end-to-end program examples"
    size_tokens_estimate: 12000
    triggers: ["Leo", "Aleo", "smart contract", "program", "record", "mapping", "finalize", "final", "constructor", "transition", "zero knowledge", "ZK", "SNARK", "struct", "storage", "self.caller", "self.signer", "Poseidon", "BHP256", "field", "group", "scalar", "transfer_private", "transfer_public", "Optional", "free function", "assert", "ChaCha", "nullifier", "serial number"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_deployment
    name: "Aleo Program Deployment & Operations"
    url: "/skills/aleo_deployment.md"
    description: "Complete deployment lifecycle — build, test, deploy, execute, upgrade, fee management, devnet setup, and dependency management"
    size_tokens_estimate: 6000
    triggers: ["deploy", "deployment", "upgrade", "devnet", "testnet", "mainnet", "leo build", "leo deploy", "leo execute", "leo run", "leo upgrade", "leo devnet", "microcredits", "fee", "priority fee", "program.json", "constructor", "noupgrade", "admin", "checksum", "edition", "namespace"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_privacy_patterns
    name: "Aleo Privacy Architecture & Patterns"
    url: "/skills/aleo_privacy_patterns.md"
    description: "Privacy patterns — record lifecycle, shielding/unshielding, commit-reveal, private voting, sealed-bid auctions, view key delegation, and threat modeling"
    size_tokens_estimate: 8000
    triggers: ["privacy", "private", "record", "shielding", "unshielding", "commit reveal", "sealed bid", "auction", "voting", "view key", "nullifier", "ciphertext", "encrypted", "UTXO", "capability", "ticket", "transfer_public_to_private", "transfer_private_to_public"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_testing
    name: "Aleo Testing & Debugging"
    url: "/skills/aleo_testing.md"
    description: "Complete testing reference — unit tests, script tests, finalize testing, debugger, devnet integration testing, and CI workflows"
    size_tokens_estimate: 5000
    triggers: ["test", "testing", "debug", "debugger", "assert", "@test", "@should_fail", "script", "leo test", "leo debug", "devnet"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_frontend
    name: "Aleo Frontend Integration"
    url: "/skills/aleo_frontend.md"
    description: "Complete frontend reference — SDK, WASM, Web Workers, wallet adapters, record management, mapping reads, transaction lifecycle, and React patterns"
    size_tokens_estimate: 10000
    triggers: ["frontend", "React", "browser", "wallet", "SDK", "WASM", "Web Worker", "ProgramManager", "AleoNetworkClient", "wallet adapter", "Leo Wallet", "Puzzle Wallet", "requestTransaction", "requestRecords", "DecryptPermission", "create-leo-app", "provablehq"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_backend
    name: "Aleo Backend Integration"
    url: "/skills/aleo_backend.md"
    description: "Complete backend reference — SDK setup, network queries, record management, transaction orchestration, delegated proving, and production patterns"
    size_tokens_estimate: 7000
    triggers: ["backend", "server", "Node", "SDK", "ProgramManager", "AleoNetworkClient", "NetworkRecordProvider", "RecordScanner", "delegated proving", "authorization", "buildAuthorization", "key provider", "record provider", "REST API", "view key"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_staking_delegation
    name: "Aleo Staking & Delegation"
    url: "/skills/aleo_staking_delegation.md"
    description: "Complete staking reference — credits.aleo functions, validator/delegator workflows, staking requirements, unbonding lifecycle, and credit transfers"
    size_tokens_estimate: 4000
    triggers: ["staking", "delegation", "validator", "delegator", "bond", "unbond", "credits.aleo", "bond_public", "unbond_public", "claim_unbond_public", "commission", "committee", "transfer_public", "transfer_private", "microcredits", "withdrawal"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

  - id: aleo_cookbook
    name: "Aleo Cookbook — Complete Recipes"
    url: "/skills/aleo_cookbook.md"
    description: "Task-oriented recipes with complete programs — counter, token, admin mint, lottery, interest calculator, cross-program calls, and signature verification"
    size_tokens_estimate: 6000
    triggers: ["cookbook", "recipe", "example", "template", "counter", "lottery", "interest", "cross-program", "signature", "token", "mint", "how to", "build", "create"]
    version: "2.0.0"
    leo_version: ">=3.2.0"

harness_support:
  # Agents with SKILL.md directory format (on-demand loading)
  skill_md_format:
    - name: "Claude Code"
      detect: "~/.claude/ or .claude/ or claude CLI"
      global_path: "~/.claude/skills/<skill>/SKILL.md"
      local_path: ".claude/skills/<skill>/SKILL.md"
      format: "SKILL.md with name/description frontmatter"
    - name: "Amp"
      detect: "amp CLI or ~/.config/amp/"
      global_path: "~/.config/amp/skills/<skill>/SKILL.md"
      local_path: ".agents/skills/<skill>/SKILL.md"
      format: "SKILL.md with name/description frontmatter"
    - name: "Codex"
      detect: "codex CLI or ~/.codex/"
      global_path: "~/.agents/skills/<skill>/SKILL.md"
      local_path: ".agents/skills/<skill>/SKILL.md"
      format: "SKILL.md with name/description frontmatter"
    - name: "OpenCode"
      detect: "opencode CLI or ~/.config/opencode/"
      global_path: "~/.config/opencode/skills/<skill>/SKILL.md"
      local_path: ".opencode/skills/<skill>/SKILL.md"
      format: "SKILL.md with name/description frontmatter"

  # Agents with rules directory format
  rules_directory_format:
    - name: "Cursor"
      detect: ".cursor/ or .cursorrules"
      global_path: null  # GUI/SQLite only, no file-based global path
      local_path: ".cursor/rules/<skill>.mdc"
      format: ".mdc with description/alwaysApply frontmatter"
    - name: "Windsurf"
      detect: ".windsurf/ or ~/.codeium/windsurf/"
      global_path: "~/.codeium/windsurf/memories/global_rules.md (summary only, 6k limit)"
      local_path: ".windsurf/rules/<skill>.md"
      format: "markdown"
    - name: "Cline"
      detect: ".clinerules or ~/Documents/Cline/Rules/"
      global_path: "~/Documents/Cline/Rules/<skill>.md"
      local_path: ".clinerules/<skill>.md"
      format: "markdown"
    - name: "Roo Code"
      detect: ".roorules or ~/.roo/"
      global_path: "~/.roo/rules/<skill>.md"
      local_path: ".roo/rules/<skill>.md"
      format: "markdown"
    - name: "Continue"
      detect: ".continue/ or ~/.continue/"
      global_path: "~/.continue/rules/<skill>.md"
      local_path: ".continue/rules/<skill>.md"
      format: "markdown"
    - name: "GitHub Copilot"
      detect: ".github/copilot-instructions.md or .github/instructions/"
      global_path: null  # varies by IDE
      local_path: ".github/instructions/<skill>.instructions.md"
      format: ".instructions.md with name/description/applyTo frontmatter"

  # Agents with single-file instructions
  single_file_format:
    - name: "Gemini CLI"
      detect: "gemini CLI or ~/.gemini/"
      global_path: "~/.gemini/GEMINI.md (appended)"
      local_path: "GEMINI.md (appended)"
      format: "markdown summary"

  # Agents with config-referenced files
  config_based:
    - name: "Aider"
      detect: "aider CLI or .aider.conf.yml"
      global_path: "~/.aleo-skills/ (referenced via ~/.aider.conf.yml read: entries)"
      local_path: ".aleo-skills/ (referenced via .aider.conf.yml read: entries)"
      format: "markdown files + YAML config"

  # OpenClaw ecosystem
  openclaw_format:
    - name: "OpenClaw"
      detect: "~/.openclaw/ or openclaw CLI"
      install_path: "~/.openclaw/skills/aleo/<skill>/SKILL.md"
    - name: "Nanobot"
      detect: "~/.nanobot/ or nanobot CLI"
      install_path: "~/.nanobot/skills/aleo/<skill>/SKILL.md"
    - name: "MiniClaw"
      detect: "~/.miniclaw/ or miniclaw CLI"
      install_path: "~/.miniclaw/skills/aleo/<skill>/SKILL.md"
    - name: "IronClaw"
      detect: "~/.ironclaw/ or ironclaw CLI"
      install_path: "~/.ironclaw/skills/aleo/<skill>/SKILL.md"
    - name: "ZeroClaw"
      detect: "~/.zeroclaw/ or zeroclaw CLI"
      install_path: "~/.zeroclaw/skills/aleo/<skill>/SKILL.md"
    - name: "NanoClaw"
      detect: "~/.nanoclaw/ or nanoclaw CLI"
      install_path: "~/.nanoclaw/skills/aleo/<skill>/SKILL.md"
    - name: "PicoClaw"
      detect: "~/.picoclaw/ or picoclaw CLI"
      install_path: "~/.picoclaw/skills/aleo/<skill>/SKILL.md"

  fallback:
    description: "When no agent is detected, installs to Claude Code global path + AGENTS.md"
    global_path: "~/.claude/skills/<skill>/SKILL.md + ~/.config/amp/AGENTS.md"
    local_path: ".claude/skills/<skill>/SKILL.md + AGENTS.md"
