Skip to content

Agent Skills

The Orbis1 SDK includes AI agent skills that help coding assistants (like GitHub Copilot, Cursor, Claude Code, and other AI-powered IDEs) understand SDK best practices and provide better code suggestions.

What Are Agent Skills?

Agent skills follow the open Agent Skills standard — a cross-platform format for teaching AI coding assistants domain-specific knowledge. Each skill is a SKILL.md file with:

  • YAML frontmatter — Name and description for agent activation routing
  • Domain knowledge — SDK architecture, RGB protocol specifics
  • Common pitfalls — Issues to avoid (e.g., floating-point amounts)
  • Code patterns — Correct implementation examples
  • Decision trees — When to use specific features

These files are designed to be loaded by AI coding assistants to provide context-aware suggestions when you're building with the Orbis1 SDK.

Installing the Orbis1 SDK Skill

The recommended way to install skills is using the npx skills CLI, which works across all major AI coding assistants:

Install the skill globally to use across all your projects:

bash
npx skills add Orbis-1/developer-docs --skill orbis1-sdk --global

This makes the skill available to your AI assistant whenever you're working with the Orbis1 SDK, regardless of which project you're in.

Per-Project Installation

For project-specific installation:

bash
cd your-project
npx skills add Orbis-1/developer-docs --skill orbis1-sdk

This creates a .skills/ directory in your project with the skill file.

Verify Installation

Check installed skills:

bash
npx skills list

Update the Skill

Get the latest version:

bash
npx skills update orbis1-sdk

How Skills Work

Activation Routing

Agent skills use progressive disclosure: your AI assistant loads only the metadata (name + description) initially, then decides whether to activate the skill based on your code context.

The Orbis1 SDK skill activates when:

  • You're working in a file that imports orbis1-sdk-node or orbis1-sdk-rn
  • You mention RGB, Bitcoin assets, or gas-free transfers in prompts
  • You reference NIA/UDA/CFA/IFA asset schemas
  • The agent detects RGB-related code patterns

Once activated, the full skill instructions load to guide code generation.

Cross-Platform Compatibility

The skill works with:

  • GitHub Copilot (VS Code, CLI, IntelliJ)
  • Cursor IDE
  • Claude Code (Anthropic CLI)
  • Gemini Code Assist (Google Cloud)
  • Windsurf (Codeium)
  • Any agent that supports the Agent Skills standard

The SKILL.md File

The skill file is located at:

developer-docs/skills/orbis1-sdk/SKILL.md

Frontmatter Format

yaml
---
name: orbis1-sdk
description: Guide for using Orbis1 SDK to build RGB asset wallets on Bitcoin. Use when user mentions RGB, Bitcoin assets, gas-free transfers, orbis1-sdk-node, orbis1-sdk-rn, NIA/UDA/CFA/IFA tokens, or building Bitcoin asset wallets. DO NOT use for general Bitcoin wallet operations without RGB.
---

The description is critical — it tells the agent when to activate the skill. Notice it includes:

  • What the skill does (guide for Orbis1 SDK)
  • When to use it (RGB, gas-free, specific token types)
  • When NOT to use it (general Bitcoin operations)

This ensures the agent activates the skill only when relevant, avoiding noise.

What the Skill Teaches

1. Amount Handling (Most Common Issue)

The skill enforces integer-only amounts across all RGB operations:

typescript
// ❌ Agent will catch this mistake
const amount = "100.25";  // floating-point

// ✅ Correct pattern from skill
const precision = 6;
const displayAmount = 100.25;
const baseUnits = Math.round(displayAmount * 10 ** precision);  // 100250000

2. Platform-Specific Patterns

The skill knows you're using different patterns based on your environment:

Node.js (server/CLI):

typescript
// Explicit online handle management
const online = await wallet.createOnline(false, indexerUrl);
try {
  await wallet.setOnline(online);
  await wallet.sync();
} finally {
  await wallet.dropOnline(online);  // Always cleanup
}

React Native (mobile app):

typescript
// Simplified lifecycle
await wallet.goOnline(indexerUrl);
await wallet.sync();

3. UTXO Creation Before RGB Operations

The skill enforces the correct order:

typescript
// 1. Create UTXOs first
await wallet.createUtxos(
  false,             // online
  true,              // upTo
  2,                 // utxoNum
  0.0001,            // sizeValue
  5                  // feeRate
);

// 2. THEN do RGB operations
const invoice = await wallet.issueAssetRgb121(/* ... */);

4. Gas-Free Transfer Flow

Complete multi-step flows from the skill:

typescript
// Initiator side
const recipientPsbt = await gasFree.initiateDonation(recipientInvoice);

// Recipient side  
const donation = await gasFree.donateGasFee(recipientPsbt, feeRate);

// Initiator completes
const invoiceData = await gasFree.completeTransfer(
  requestId,
  donation.psbt,
  donation.assetId
);

5. Error Handling Patterns

The skill includes proper error handling:

typescript
import { Orbis1Error } from 'orbis1-sdk-node';

try {
  await wallet.issueAssetRgb121(/* ... */);
} catch (error) {
  if (error instanceof Orbis1Error) {
    console.error(`SDK Error [${error.code}]:`, error.message);
    // Handle known error codes
  } else {
    throw error;  // Unknown error
  }
}

Benefits of Using Skills

🎯 Fewer Mistakes

AI assistants will catch common pitfalls before you run the code (e.g., float amounts, missing UTXO creation).

⚡ Faster Development

Get correct code patterns immediately instead of debugging runtime errors.

📚 Always Up-to-Date

Skills are maintained alongside the SDK, so AI suggestions reflect current best practices.

🔄 Context-Aware Suggestions

The assistant knows whether you're building for Node.js or React Native and provides the right pattern.

Example: Building with Agent Assistance

Your prompt to AI assistant:

"Create a function to issue a new RGB-121 NFT with name, description, and precision 0"

Without skill file:

typescript
// ❌ AI might generate this (wrong)
async function issueNFT(name: string, description: string) {
  return await wallet.issueAssetRgb121({
    name,
    description,
    precision: 0.0,  // Wrong type!
    amounts: [1.0],  // Wrong type!
    // Missing ticker, missing dataDir...
  });
}

With skill file loaded:

typescript
// ✅ AI generates this (correct)
async function issueNFT(
  wallet: Wallet,
  name: string,
  description: string,
  ticker: string
): Promise<IssuanceResult> {
  // Ensure UTXOs exist
  const utxos = await wallet.listUnspents(false);
  if (utxos.length < 1) {
    await wallet.createUtxos(false, true, 2, 0.0001, 5);
  }

  // Issue with integer amounts
  return await wallet.issueAssetRgb121({
    ticker,
    name,
    description,
    precision: 0,     // Integer
    amounts: [1],     // Integer array
  });
}

Alternative: Manual Installation

If you prefer not to use npx skills, you can manually add the skill file:

Option 1: Reference from Documentation Site

The Orbis1 SDK documentation serves the skill file at:

https://docs.orbis1.io/.well-known/skills/default/skill.md

Some AI assistants can discover this automatically when you're viewing the docs.

Option 2: Copy to Project

bash
# In your project root
mkdir -p .ai/skills
curl https://raw.githubusercontent.com/Orbis-1/developer-docs/main/skills/orbis1-sdk/SKILL.md \
  -o .ai/skills/orbis1-sdk.md

Option 3: IDE-Specific Configuration

GitHub Copilot (VS Code):

json
// .vscode/settings.json
{
  "github.copilot.advanced": {
    "additionalContext": [
      "${workspaceFolder}/.ai/skills/"
    ]
  }
}

Cursor: Skills in .ai/ or .skills/ are automatically indexed.

Skills vs. AGENTS.md

You may have seen AGENTS.md files in some repositories. Here's when to use each:

Use CaseFileWhy
Always-on instructionsAGENTS.mdInstructions that apply to every task (e.g., "always use TypeScript strict mode")
Domain-specific workflowsSKILL.mdSpecialized knowledge activated only when relevant (e.g., RGB asset operations)
Maximum reliabilityAGENTS.mdNo activation decision — guaranteed to load
Reusable across projectsSKILL.mdCan be installed globally and shared across teams
Discovery and searchSKILL.mdListed in skill registries, discoverable via npx skills search

For Orbis1 SDK: The skill format is ideal because RGB development is specialized — you don't want the agent loading RGB-specific patterns when you're writing a Todo app. The skill activates only when you're actually working with the SDK.

Keeping Skills Up-to-Date

Automatic Updates (npx skills)

If you installed via npx skills add, update to the latest version:

bash
npx skills update orbis1-sdk

Or update all installed skills:

bash
npx skills update --all

Manual Updates

If you manually copied the skill file, fetch the latest version:

bash
curl https://raw.githubusercontent.com/Orbis-1/developer-docs/main/skills/orbis1-sdk/SKILL.md \
  -o .ai/skills/orbis1-sdk.md

Or if you cloned the docs repository:

bash
cd path/to/orbis1-sdk
git pull origin main

Discovery: The .well-known Convention

The Orbis1 SDK documentation site serves the skill at a standard location:

https://docs.orbis1.io/.well-known/skills/default/skill.md

This follows the Agent Skills specification for documentation sites. AI assistants that support this convention can auto-discovery and load the skill when you're reading the documentation.

Installing from the Docs URL

Some agents allow installing directly from the docs:

bash
npx skills add https://docs.orbis1.io --skill default

This fetches the skill from /.well-known/skills/default/skill.md automatically.

Progressive Disclosure & Live Documentation

One of the key advantages of the Agent Skills format is progressive disclosure: agents don't load everything at once.

How It Works

  1. Metadata phase: Agent loads name + description from YAML frontmatter
  2. Activation decision: Agent checks if the skill is relevant to current task
  3. Full load: If activated, agent loads the complete SKILL.md instructions
  4. Dynamic fetch: The skill instructs the agent to fetch live documentation when needed

Live Docs Pattern

The Orbis1 SDK skill includes instructions to fetch fresh content from https://docs.orbis1.io:

markdown
## Live Documentation (Always Fetch)

For the most current API reference, examples, and troubleshooting, fetch:
https://docs.orbis1.io

When user needs fresh context, use `fetch_webpage` to pull the relevant docs page.

This ensures the agent always has access to:

  • Latest API changes
  • New features and examples
  • Current troubleshooting guides
  • Updated error codes

This pattern (from Google's Gemini research) significantly improves agent accuracy because it avoids stale information.

Creating Custom Skills for Your Team

If you're building internal tools on top of Orbis1 SDK, you can create your own skills:

1. Initialize a New Skill

bash
npx skills init my-company-rgb-workflows
cd my-company-rgb-workflows

This creates:

my-company-rgb-workflows/
  SKILL.md          # Main instructions
  scripts/          # Optional: executable helpers
  references/       # Optional: detailed docs
  assets/           # Optional: templates, configs

2. Write the SKILL.md

Focus on:

  • Description: When should this skill activate? Be specific.
  • Current patterns: What APIs/patterns does your team use?
  • Common mistakes: What issues do developers hit repeatedly?
  • Links to live docs: Company wiki, internal docs, API references

Example frontmatter:

yaml
---
name: acme-rgb-backend
description: Internal patterns for ACME Corp's RGB asset backend. Use when building services that integrate with Orbis1 SDK for multi-tenant wallet management. Includes database schema, auth patterns, and monitoring setup.
---

3. Publish to GitHub

bash
git init
git add .
git commit -m "Initial skill for ACME RGB backend"
git remote add origin git@github.com:acme-corp/rgb-agent-skills.git
git push -u origin main

4. Install in Your Team

bash
npx skills add acme-corp/rgb-agent-skills --skill acme-rgb-backend --global

Now all developers on your team get consistent AI suggestions for your internal patterns.

Contributing to the Orbis1 SDK Skill

Found a pattern that should be in the official skill? Open an issue or submit a PR to the skills/orbis1-sdk/SKILL.md file.

Include:

  • Common mistake: What error did you encounter? Include error messages.
  • Correct pattern: Code snippet showing the right way (with comments).
  • When it applies: What triggers this pattern? What are the prerequisites?
  • Related docs: Link to the relevant documentation page.

Contribution Example

❌ Too vague:

"Add error handling for gas-free transfers"

✅ Good contribution:

Common mistake: Developers use error.code instead of error.gasFreeCode for GasFreeError instances, causing undefined checks.

Correct pattern:

typescript
try {
  await gasFree.confirmTransfer(request, quote);
} catch (err) {
  if (err instanceof GasFreeError) {
    // Use gasFreeCode, not code!
    console.error(`Gas-Free error [${err.gasFreeCode}]:`, err.message);
  }
}

When it applies: Any gas-free transfer error handling

Related docs: Error Codes

Skill Discovery and Registry

Searching for Skills

Find skills related to your stack:

bash
npx skills search rgb
npx skills search bitcoin
npx skills search wallet

Skill Registry

Installed skills appear on skills.sh via install telemetry. This helps other developers discover useful skills for their projects.

The Orbis1 SDK skill will be listed as:

orbis1-sdk — Guide for building RGB asset wallets on Bitcoin

Research: Why Skills Work

The Agent Skills format is based on research from:

  • Vercel's Skills CLI team — Demonstrated that targeted skills improve accuracy for specialized domains
  • Google's Gemini research (blog post) — Showed that skills with live doc fetching reduce hallucination
  • Cloudflare's Agent Skills RFC — Established the open standard for cross-platform compatibility

Key findings:

  1. Activation routing matters: Skills work best when the description clearly defines when to activate (vs. always-on instructions)
  2. Live docs > static knowledge: Skills that fetch fresh docs outperform those with baked-in information
  3. Progressive disclosure reduces noise: Loading only relevant skills keeps the agent focused
  4. Cross-platform adoption: A single SKILL.md works across Copilot, Cursor, Claude Code, and Gemini

For Orbis1 SDK, this means:

  • The skill activates only when you're working with RGB assets (not every Bitcoin operation)
  • Agents fetch latest docs from docs.orbis1.io instead of relying on stale patterns
  • Integer amount handling, UTXO creation, and lifecycle patterns are enforced consistently

Next Steps

For Developers Building with Orbis1 SDK

  1. Install the skill:

    bash
    npx skills add Orbis-1/developer-docs --skill orbis1-sdk --global
  2. Start building:

    • Your AI assistant will now suggest correct patterns automatically
    • Try prompts like: "Create a gas-free RGB transfer function"
    • Notice the agent catches float amounts and missing UTXO creation
  3. Verify it's working:

    • Ask your AI assistant: "What precision should I use for RGB amounts?"
    • It should answer: "Use integer base units, not floating-point" (from the skill)

For SDK Maintainers and Contributors

  1. Review the skill: Read SKILL.md
  2. Test with your AI assistant: Install it and see if suggestions improve
  3. Contribute improvements: Found a missing pattern? Submit a PR
  4. Keep it updated: As the SDK evolves, update the skill to match

Learn More

Released under the MIT License.