{
  "schemaVersion": "1.0",
  "item": {
    "slug": "bolta-skills-index",
    "name": "Social Media Automation Skills Registry",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/MaxFritzhand/bolta-skills-index",
    "canonicalUrl": "https://clawhub.ai/MaxFritzhand/bolta-skills-index",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/bolta-skills-index",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=bolta-skills-index",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/bolta-skills-index"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/bolta-skills-index",
    "agentPageUrl": "https://openagent3.xyz/skills/bolta-skills-index/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bolta-skills-index/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bolta-skills-index/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "SKILL: bolta.skills.index",
        "body": "Display name: Bolta Skills Registry\nSlug: bolta-skills-registry\nVersion: 0.5.4\nTags: registry,catalog,bootstrap,workspace,index,discovery\nOrganization: bolta.ai\nAuthor: Max Fritzhand\nType: registry\nExecutes: false"
      },
      {
        "title": "Metadata",
        "body": "{\n  \"name\": \"bolta.skills.index\",\n  \"version\": \"0.5.4\",\n  \"publisher\": \"bolta.ai\",\n  \"verified\": true,\n  \"sourceRepository\": \"https://github.com/boltaai/bolta-skills\",\n  \"requiredEnvironmentVariables\": [\n    {\n      \"name\": \"BOLTA_API_KEY\",\n      \"required\": true,\n      \"sensitive\": true,\n      \"description\": \"Bolta API key (obtain at bolta.ai/register)\",\n      \"format\": \"sk_live_[64 characters]\",\n      \"scope\": \"workspace\"\n    },\n    {\n      \"name\": \"BOLTA_WORKSPACE_ID\",\n      \"required\": true,\n      \"sensitive\": false,\n      \"description\": \"Workspace UUID for API operations\",\n      \"format\": \"UUID\"\n    },\n    {\n      \"name\": \"BOLTA_AGENT_ID\",\n      \"required\": false,\n      \"sensitive\": false,\n      \"description\": \"Agent principal UUID (for audit logging)\",\n      \"format\": \"UUID\"\n    }\n  ],\n  \"trustedDomains\": [\n    \"platty.boltathread.com\",\n    \"bolta.ai\"\n  ],\n  \"permissions\": [\n    \"network:https:platty.boltathread.com\",\n    \"network:https:bolta.ai\"\n  ],\n  \"thirdPartyPackages\": [\n    {\n      \"name\": \"@boltaai/mcp-server\",\n      \"registry\": \"npm\",\n      \"verified\": true,\n      \"sourceRepository\": \"https://github.com/boltaai/bolta-mcp-server\"\n    }\n  ]\n}"
      },
      {
        "title": "⚠️ Security Notice",
        "body": "This skill requires sensitive API credentials. Read this section carefully before installing."
      },
      {
        "title": "Required Credentials",
        "body": "BOLTA_API_KEY (REQUIRED, SENSITIVE)\n\nFormat: sk_live_ followed by 64 alphanumeric characters\nObtain at: https://bolta.ai/register\nScoping: Each key is scoped to a SINGLE workspace only\nPermissions: Grant LEAST-PRIVILEGE access (e.g., only posts:write if creating content)\nRotation: Rotate every 90 days using bolta.team.rotate_key skill\nStorage: NEVER commit to git - use environment variables or secret managers only\n\nBOLTA_WORKSPACE_ID (REQUIRED)\n\nFormat: UUID (e.g., 550e8400-e29b-41d4-a716-446655440000)\nSource: Provided during agent registration at bolta.ai/register\nPurpose: Identifies which workspace the API key is authorized for\n\nBOLTA_AGENT_ID (OPTIONAL, RECOMMENDED)\n\nFormat: UUID\nPurpose: Links API activity to specific agent principal for audit logs\nBenefit: Enables traceability and compliance reporting"
      },
      {
        "title": "Trusted Network Endpoints",
        "body": "This skill makes HTTPS requests to:\n\n✅ https://platty.boltathread.com - Bolta API server\n✅ https://bolta.ai - Main application and agent registration portal\n\nNo other domains are contacted. All requests are authenticated with your API key."
      },
      {
        "title": "Third-Party Dependencies",
        "body": "This skill references:\n\n@boltaai/mcp-server (npm package for Claude Desktop integration)\n\nSource: https://github.com/boltaai/bolta-mcp-server\nVerified: Yes (official Bolta package)\nPurpose: Connects Claude Desktop to Bolta API via MCP protocol"
      },
      {
        "title": "Pre-Installation Checklist",
        "body": "Before installing this skill, you MUST:\n\nVerify the source repository: https://github.com/boltaai/bolta-skills\n Review the SKILL.md and confirm version matches metadata (currently 0.5.4)\n Obtain a LEAST-PRIVILEGE API key from https://bolta.ai/register\n Store API key in environment variables (NEVER hardcode or commit)\n Verify you trust the domains: platty.boltathread.com and bolta.ai\n Test in a disposable/test workspace first (recommended)\n Confirm your API key is scoped ONLY to the intended workspace\n\nIf you cannot verify the above, DO NOT install this skill."
      },
      {
        "title": "Security Best Practices",
        "body": "Credential Management\n\nUse environment variables: export BOLTA_API_KEY=\"sk_live_...\"\nOr use secret managers: AWS Secrets Manager, 1Password, etc.\nNEVER paste API keys in chat, logs, or public places\n\n\n\nKey Rotation\n\nRotate keys every 90 days minimum\nUse bolta.team.rotate_key skill for zero-downtime rotation\nRevoke compromised keys immediately at bolta.ai/settings\n\n\n\nPermission Scoping\n\nGrant ONLY required permissions (e.g., posts:write, voice:read)\nAvoid workspace:admin unless absolutely necessary\nReview permissions quarterly\n\n\n\nMonitoring\n\nReview audit logs weekly via bolta.audit.export_activity\nMonitor quota usage via bolta.quota.status\nSet up alerts for unusual API activity\n\n\n\nWorkspace Isolation\n\nOne API key per workspace (NEVER share keys across workspaces)\nUse separate keys for dev/staging/production environments\nRevoke keys when decommissioning workspaces"
      },
      {
        "title": "Purpose",
        "body": "The canonical registry and orchestration layer for all Bolta skills.\n\nThis skill serves as the single source of truth for skill discovery, installation recommendations, and workspace-aware capability bootstrapping. It does not execute content operations directly — instead, it provides intelligent routing to the appropriate skills based on:\n\nWorkspace policy (Safe Mode, autonomy mode, quotas)\nPrincipal identity (user role, agent permissions)\nOperational context (what you're trying to accomplish)\n\nKey Responsibilities:\n\nDiscovery - Index all available skills with metadata\nRecommendation - Suggest install sets based on workspace policy and role\nOrchestration - Guide multi-skill workflows\nCompatibility - Enforce skill compatibility with workspace settings\nBootstrapping - Help new workspaces get started quickly\n\nWhen to Use:\n\nSetting up a new workspace (\"What skills should I install?\")\nDiscovering available capabilities (\"What can Bolta do?\")\nTroubleshooting skill compatibility (\"Why can't I use this skill?\")\nPlanning multi-step workflows (\"Which skills do I need?\")\n\nData Access:\nThis skill accesses:\n\n✅ Workspace configuration (policy, quotas, autonomy mode)\n✅ Voice profile metadata (names, IDs, not full content)\n✅ Post counts and quota usage\n✅ Agent principal permissions\n\nThis skill does NOT access:\n\n❌ Post content or scheduled posts\n❌ Social media credentials\n❌ User passwords or authentication tokens\n❌ Files or media uploads"
      },
      {
        "title": "Source & Verification",
        "body": "https://github.com/boltaai/bolta-skills"
      },
      {
        "title": "Getting Started: Agent API Setup",
        "body": "Before using Bolta skills, you need to set up agent API access to authenticate your requests."
      },
      {
        "title": "Step 1: Register Your Agent",
        "body": "Visit bolta.ai/register to create your agent principal and obtain an API key.\n\nWhat you'll need:\n\nBolta workspace (create one at bolta.ai if you don't have one)\nAdmin or Owner role in your workspace"
      },
      {
        "title": "Step 2: Create Agent Principal",
        "body": "During registration, you'll configure:\n\nAgent Name\n\nExample: \"Claude Content Agent\"\nDescription: Human-readable name for audit logs\n\nAgent Role\n\nOptions:\n- creator  - Can create drafts (recommended for testing)\n- editor   - Can create + schedule posts\n- reviewer - Can approve/reject posts (review-only access)\n\nRecommended: Start with \"creator\" role for safety\n\nPermissions\n\nMinimum for content skills:\n✓ posts:write  - Create posts\n✓ voice:read   - Read voice profiles\n\nOptional (based on use case):\n□ posts:schedule  - Schedule posts (requires editor+ role)\n□ posts:approve   - Approve posts for publishing\n□ templates:read  - Use content templates\n□ cron:execute    - Run automated jobs"
      },
      {
        "title": "Step 3: Copy Your API Key",
        "body": "After registration, you'll receive:\n\nAPI Key: sk_live_00000000000000000000000000000000\nWorkspace ID: 550e8400-e29b-41d4-a716-446655440000\nAgent ID: 660e8400-e29b-41d4-a716-446655440001\n\nIMPORTANT:\n\n⚠️ Store API key securely (never commit to git)\n⚠️ Keys cannot be recovered (only regenerated via bolta.team.rotate_key)\n⚠️ Each key is scoped to ONE workspace"
      },
      {
        "title": "Step 4: Configure Your Environment",
        "body": "Set Required Environment Variables:\n\nBefore using any Bolta skills, you MUST configure these environment variables:\n\n# Required: Your Bolta API key (from bolta.ai/register)\nexport BOLTA_API_KEY=\"sk_live_your_actual_key_here\"\n\n# Required: Your workspace UUID (from bolta.ai/register)\nexport BOLTA_WORKSPACE_ID=\"550e8400-e29b-41d4-a716-446655440000\"\n\n# Optional: Agent principal UUID (for audit logging)\nexport BOLTA_AGENT_ID=\"660e8400-e29b-41d4-a716-446655440001\"\n\nFor Claude Desktop (MCP):\n\n{\n  \"mcpServers\": {\n    \"bolta\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@boltaai/mcp-server\"],\n      \"env\": {\n        \"BOLTA_API_KEY\": \"sk_live_your_actual_key_here\",\n        \"BOLTA_WORKSPACE_ID\": \"550e8400-e29b-41d4-a716-446655440000\",\n        \"BOLTA_AGENT_ID\": \"660e8400-e29b-41d4-a716-446655440001\"\n      }\n    }\n  }\n}\n\nFor Direct API Calls:\n\n# Use environment variables in your requests\ncurl https://platty.boltathread.com/v1/posts \\\n  -H \"Authorization: Bearer ${BOLTA_API_KEY}\" \\\n  -H \"X-Workspace-ID: ${BOLTA_WORKSPACE_ID}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"prompt\": \"Create a post about productivity\" }'\n\nFor Node.js/TypeScript Applications:\n\nimport { BoltaClient } from '@boltaai/sdk';\n\n// Load from environment variables (recommended)\nconst bolta = new BoltaClient({\n  apiKey: process.env.BOLTA_API_KEY,\n  workspaceId: process.env.BOLTA_WORKSPACE_ID,\n  agentId: process.env.BOLTA_AGENT_ID // Optional\n});\n\n// Verify all required vars are set\nif (!process.env.BOLTA_API_KEY || !process.env.BOLTA_WORKSPACE_ID) {\n  throw new Error('Missing required Bolta credentials. Set BOLTA_API_KEY and BOLTA_WORKSPACE_ID');\n}\n\nSecurity Reminder:\n\n⚠️ Never hardcode API keys in your code\n⚠️ Use .env files locally (add .env to .gitignore)\n⚠️ Use secret managers in production (AWS Secrets Manager, Vercel Secrets, etc.)\n⚠️ Rotate keys every 90 days via bolta.team.rotate_key"
      },
      {
        "title": "Step 5: Verify Setup",
        "body": "Test your configuration with a simple skill:"
      },
      {
        "title": "Via API",
        "body": "curl https://api.bolta.ai/v1/workspaces/{workspace_id} \n-H \"Authorization: Bearer YOUR_API_KEY\""
      },
      {
        "title": "Expected response:",
        "body": "{\n\"id\": \"550e8400-...\",\n\"name\": \"My Workspace\",\n\"safe_mode\": true,\n\"autonomy_mode\": \"managed\",\n\"max_posts_per_day\": 100\n}\n\n### Troubleshooting Setup\n\n#### Error: \"Invalid API Key\"\n**Cause:** Key is incorrect or has been rotated\n\n**Solutions:**\n1. Verify key matches exactly (no extra spaces)\n2. Check if key was rotated → Get new key at bolta.ai/register\n3. Ensure you're using the correct workspace key\n\n#### Error: \"Workspace Not Found\"\n**Cause:** Workspace ID mismatch or no access\n\n**Solutions:**\n1. Verify workspace_id matches your registration\n2. Confirm you have access to this workspace (visit bolta.ai/workspaces)\n3. Check if workspace was deleted\n\n#### Error: \"Permission Denied\"\n**Cause:** Agent role lacks required permission\n\n**Solutions:**\n1. Check your agent's permissions at bolta.ai/register\n2. For content creation: Need `posts:write` minimum\n3. For scheduling: Need `posts:schedule` + editor role\n4. For automation: Need `cron:execute` permission\n\n---\n\n## Installation & First Run\n\n### 🎯 Complete Skill Pack Installation\n\n**You're currently viewing the registry skill only.** To access the full Bolta skills library, you should install the complete skill pack.\n\n**Option 1: Install Full Skill Pack (Recommended)**\n\n```bash\n# Clone the complete Bolta skills repository\ngit clone https://github.com/boltaai/bolta-skills.git\n\n# Or download the latest release\ncurl -L https://github.com/boltaai/bolta-skills/archive/refs/heads/main.zip -o bolta-skills.zip\nunzip bolta-skills.zip\n\nWhat You Get:\n\nbolta-skills/\n├── README.md                    # ⭐ START HERE - Complete getting started guide\n├── skills/\n│   ├── bolta.skills.index/      # ✅ You're here (registry)\n│   ├── voice-plane/\n│   │   ├── bolta.voice.bootstrap/\n│   │   ├── bolta.voice.learn_from_samples/\n│   │   ├── bolta.voice.evolve/\n│   │   └── bolta.voice.validate/\n│   ├── content-plane/\n│   │   ├── bolta.draft.post/\n│   │   ├── bolta.loop.from_template/\n│   │   ├── bolta.week.plan/\n│   │   ├── bolta.content.repurpose/\n│   │   └── bolta.content.thread_builder/\n│   ├── review-plane/\n│   │   ├── bolta.inbox.triage/\n│   │   ├── bolta.review.digest/\n│   │   ├── bolta.review.approve_and_route/\n│   │   ├── bolta.review.suggest_edits/\n│   │   └── bolta.review.compliance_check/\n│   ├── automation-plane/\n│   │   ├── bolta.cron.generate_to_review/\n│   │   ├── bolta.cron.generate_and_schedule/\n│   │   ├── bolta.recurring.from_template/\n│   │   ├── bolta.auto.respond_to_trending/\n│   │   └── bolta.auto.content_gap_fill/\n│   └── control-plane/\n│       ├── bolta.team.create_agent_teammate/\n│       ├── bolta.team.rotate_key/\n│       ├── bolta.policy.explain/\n│       ├── bolta.audit.export_activity/\n│       ├── bolta.quota.status/\n│       └── bolta.workspace.config/\n├── docs/\n│   ├── getting-started.md       # Quickstart guide\n│   ├── autonomy-modes.md        # Understanding autonomy levels\n│   ├── safe-mode.md             # Safe Mode deep dive\n│   ├── quotas.md                # Quota enforcement guide\n│   └── voice-versioning.md      # Voice profile evolution\n└── examples/\n    ├── basic-workflow.md        # Common usage patterns\n    ├── automation-setup.md      # Setting up cron jobs\n    └── multi-agent.md           # Managing multiple agents\n\nOption 2: Install Individual Skills (Manual)\n\nIf you only need specific skills, install them individually:\n\n# Install voice bootstrap skill\ncurl -L https://raw.githubusercontent.com/boltaai/bolta-skills/main/skills/voice-plane/bolta.voice.bootstrap/SKILL.md \\\n  -o bolta.voice.bootstrap.md\n\n# Install draft post skill\ncurl -L https://raw.githubusercontent.com/boltaai/bolta-skills/main/skills/content-plane/bolta.draft.post/SKILL.md \\\n  -o bolta.draft.post.md"
      },
      {
        "title": "📖 First Run: Read the README",
        "body": "IMPORTANT: After installation, read the README for complete setup instructions.\n\nQuick Start Commands:\n\n# After cloning/downloading the skill pack:\ncd bolta-skills\n\n# Read the README (contains critical setup steps)\ncat README.md\n\n# Or open in your editor\ncode README.md  # VS Code\nvim README.md   # Vim\n\nWhat the README Covers:\n3. ✅ Environment variable configuration\n4. ✅ First skill execution (test workflow)\n5. ✅ Troubleshooting common issues\n6. ✅ Recommended skill installation order\n7. ✅ Best practices for production use\n\nCritical README Sections:\n\n## README.md Structure\n\n### Quick Start\n- Installation steps\n- API key setup\n- First skill test\n\n### Skill Planes Overview\n- What each plane does\n- When to use each skill\n- Skill dependencies\n\n### Configuration\n- MCP server setup for Claude Desktop\n- Environment variables\n- Workspace policy settings\n\n### Common Workflows\n- Create first post (voice → draft → review)\n- Set up automation (cron jobs)\n- Multi-agent teams\n\n### Troubleshooting\n- API connection errors\n- Permission issues\n- Quota problems\n\n### Security\n- API key rotation\n- Least-privilege permissions\n- Audit logging\n\n### Advanced Topics\n- Custom skill development\n- Skill chaining\n- Performance optimization"
      },
      {
        "title": "🚀 Recommended First-Run Flow",
        "body": "After installing the skill pack:\n\nStep 1: Read Documentation\n\n# Must-read files in order:\n1. README.md              # Complete getting started guide\n2. docs/getting-started.md # Quickstart tutorial\n3. docs/autonomy-modes.md  # Understand autonomy levels\n4. docs/safe-mode.md       # Understand safety controls\n\nStep 2: Verify Installation\n\n# Check that all skills are present\nls -la skills/*/SKILL.md\n\n# Should see 21+ skills across 5 planes\n# If missing skills, re-run installation\n\nStep 3: Configure Agent\n\n# Set environment variables (from README)\nexport BOLTA_API_KEY=\"sk_live_...\"\nexport BOLTA_WORKSPACE_ID=\"...\"\n\n# Test API connectivity\ncurl https://platty.boltathread.com/v1/workspaces/${BOLTA_WORKSPACE_ID} \\\n  -H \"Authorization: Bearer ${BOLTA_API_KEY}\"\n\n# Expected: 200 OK with workspace details\n\n**Step 5: Install Recommended Skills**\n```bash\n# The registry will recommend skills based on your:\n# - Safe Mode setting\n# - Autonomy mode\n# - User role\n# - Current quotas\n\n# Follow recommendations to install your first skill set"
      },
      {
        "title": "⚠️ Common First-Run Mistakes",
        "body": "Mistake 1: Skipping the README\n\n❌ Installing skills without reading README\n✅ Read README.md first → understand workflows → install skills\n\nMistake 2: Missing Environment Variables\n\n❌ Running skills without BOLTA_API_KEY set\n✅ Configure env vars BEFORE running any skill\n\nMistake 3: Installing Skills Out of Order\n\n❌ Running bolta.draft.post before creating voice profile\n✅ Follow recommended order: voice.bootstrap → draft.post → review\n\nMistake 4: Not Understanding Autonomy Modes\n\n❌ Using autopilot mode without understanding routing\n✅ Read docs/autonomy-modes.md → start with \"assisted\" → graduate to \"managed\"\n\nMistake 5: Hardcoding API Keys\n\n❌ Putting API keys directly in skill files\n✅ Use environment variables → .env file → add .env to .gitignore"
      },
      {
        "title": "📥 Post-Installation Checklist",
        "body": "After installing the skill pack, verify:\n\n✅ README.md has been read\n ✅ Environment variables configured (BOLTA_API_KEY, BOLTA_WORKSPACE_ID)\n ✅ All 21+ skills present in skills/ directory\n ✅ docs/ directory contains markdown files\n ✅ API connectivity verified (test curl command works)\n ✅ MCP server installed (if using Claude Desktop)\n ✅ Workspace policy reviewed (safe_mode, autonomy_mode)\n ✅ First skill executed successfully (test run)\n ✅ Autonomy mode documentation read (docs/autonomy-modes.md)\n ✅ Safe Mode documentation read (docs/safe-mode.md)\n\nOnce all items are checked, you're ready to use the full Bolta skill library!"
      },
      {
        "title": "Next Steps After Setup",
        "body": "Once your API is configured:\n\nCreate Voice Profile (if new workspace)\nRun: bolta.voice.bootstrap\n→ Establishes your brand voice\n\n\n\nTest Content Creation\nRun: bolta.draft.post\n→ Creates a test post in Draft status\n\n\n\nInstall Recommended Skills\nRun: bolta.skills.index\n→ Returns personalized skill recommendations\n\n\n\nConfigure Workspace Policy\nReview: Safe Mode (ON/OFF)\nReview: Autonomy Mode (assisted/managed/autopilot)\nSet: Daily quota limits"
      },
      {
        "title": "Architecture: The Five Planes",
        "body": "Skills are organized into planes — logical groupings that separate concerns and enable modular capability composition."
      },
      {
        "title": "Voice Plane",
        "body": "Purpose: Brand voice creation, evolution, and validation\n\nVoice is the foundation of all content operations. These skills help establish, refine, and maintain consistent brand voice across all generated content.\n\nCore Principle: Voice should be learned from examples, validated against real content, and evolved over time.\n\nSkills:\n\nbolta.voice.bootstrap - Interactive voice profile creation from scratch\nbolta.voice.learn_from_samples - Extract voice patterns from existing content\nbolta.voice.evolve - Refine voice based on approved posts\nbolta.voice.validate - Score content against voice profile (0-100)\n\nTypical Flow:\n\nBootstrap initial voice profile\nLearn from sample content\nValidate generated content\nEvolve voice as brand matures"
      },
      {
        "title": "Content Plane",
        "body": "Purpose: Content creation, planning, and scheduling\n\nThe execution layer for post creation. These skills transform ideas into scheduled social media posts.\n\nCore Principle: Content should be intentional, planned, and aligned with voice.\n\nSkills:\n\nbolta.draft.post - Create a single post in Draft status\nbolta.loop.from_template - Generate multiple posts from a template\nbolta.week.plan - Plan a week's worth of content with scheduling\nbolta.content.repurpose - Transform long-form content into social posts\nbolta.content.thread_builder - Create multi-post threads (Twitter, LinkedIn)\n\nOutput: Draft or Scheduled posts (subject to Safe Mode routing)"
      },
      {
        "title": "Review Plane",
        "body": "Purpose: Human-in-the-loop review and approval workflows\n\nEnables teams to review, approve, and refine agent-generated content before publishing.\n\nCore Principle: Autonomy with oversight — agents generate, humans decide.\n\nSkills:\n\nbolta.inbox.triage - Organize pending posts by priority/topic\nbolta.review.digest - Daily summary of posts awaiting review\nbolta.review.approve_and_route - Bulk approve + schedule posts\nbolta.review.suggest_edits - AI-powered improvement suggestions\nbolta.review.compliance_check - Flag posts for policy violations\n\nTypical Flow:\n\nAgent creates posts → Pending Approval\nreview.digest sends daily summary\nHuman reviews via inbox.triage\nBulk approve via approve_and_route"
      },
      {
        "title": "Automation Plane",
        "body": "Purpose: Scheduled, recurring, and autonomous content generation\n\nThe autonomy layer. These skills enable hands-off content operations with guardrails.\n\nCore Principle: Predictable automation with quota enforcement and safety nets.\n\nSkills:\n\nbolta.cron.generate_to_review - Daily content generation → Pending Approval\nbolta.cron.generate_and_schedule - Autonomous scheduling (requires Safe Mode OFF)\nbolta.recurring.from_template - Recurring posts (daily tips, weekly roundups)\nbolta.auto.respond_to_trending - Auto-generate posts from trending topics\nbolta.auto.content_gap_fill - Detect scheduling gaps and auto-fill\n\nSafety Guardrails:\n\nQuota enforcement (max posts/day, max API requests/hour)\nJob run tracking (observability for all executions)\nAutonomy mode compatibility checks\nSafe Mode routing (autopilot incompatible with Safe Mode ON)"
      },
      {
        "title": "Control Plane",
        "body": "Purpose: Workspace governance, policy, and audit\n\nThe management layer for teams, permissions, security, and compliance.\n\nCore Principle: Visibility and control for workspace administrators.\n\nSkills:\n\nbolta.team.create_agent_teammate - Provision agent principals with specific roles\nbolta.team.rotate_key - Rotate API keys for security\nbolta.policy.explain - Explain authorization decisions (\"Why was this blocked?\")\nbolta.audit.export_activity - Export audit logs (PostActivity, JobRuns)\nbolta.quota.status - View current quota usage (daily posts, hourly API calls)\nbolta.workspace.config - View/update autonomy mode, Safe Mode, quotas\n\nTypical Use Cases:\n\nOnboarding new team members (human or agent)\nInvestigating authorization failures\nCompliance reporting (SOC2, GDPR data exports)\nQuota monitoring and adjustment"
      },
      {
        "title": "Voice Plane Skills",
        "body": "bolta.voice.bootstrap\n\nPath: skills/voice-plane/bolta.voice.bootstrap/SKILL.md\nPurpose: Interactive voice profile creation wizard\nInputs: Brand name, industry, target audience\nOutputs: Complete VoiceProfile (tone, dos, don'ts, constraints)\nPermissions: voice:write\nSafe Mode: Compatible\nTypical Duration: 5-10 minutes (interactive)\n\nbolta.voice.learn_from_samples\n\nPath: skills/voice-plane/bolta.voice.learn_from_samples/SKILL.md\nPurpose: Extract voice patterns from existing content\nInputs: URLs or text samples (3-10 examples)\nOutputs: Voice profile draft with auto-detected patterns\nPermissions: voice:write\nSafe Mode: Compatible\nTypical Duration: 2-3 minutes\n\nbolta.voice.evolve\n\nPath: skills/voice-plane/bolta.voice.evolve/SKILL.md\nPurpose: Refine voice based on approved posts\nInputs: Date range for approved posts\nOutputs: Updated VoiceProfile (version incremented)\nPermissions: voice:write, posts:read\nSafe Mode: Compatible\nTypical Duration: 1-2 minutes\nNote: Creates new VoiceProfileVersion snapshot\n\nbolta.voice.validate\n\nPath: skills/voice-plane/bolta.voice.validate/SKILL.md\nPurpose: Score content against voice profile\nInputs: Post ID or content text\nOutputs: Compliance score (0-100), deviation report\nPermissions: voice:read, posts:read\nSafe Mode: Compatible\nTypical Duration: < 30 seconds"
      },
      {
        "title": "Content Plane Skills",
        "body": "bolta.draft.post\n\nPath: skills/content-plane/bolta.draft.post/SKILL.md\nPurpose: Create a single post in Draft status\nInputs: Topic, platform(s), optional voice profile ID\nOutputs: Post ID (Draft status)\nPermissions: posts:write\nSafe Mode: Always routes to Draft\nAutonomy Mode: Respects assisted/managed routing\nQuota Impact: +1 to daily post count\nTypical Duration: 30-60 seconds\n\nbolta.loop.from_template\n\nPath: skills/content-plane/bolta.loop.from_template/SKILL.md\nPurpose: Generate multiple posts from a template\nInputs: Template ID, count (1-50), variation parameters\nOutputs: Array of Post IDs\nPermissions: posts:write, templates:read\nSafe Mode: Routes all posts to Draft\nQuota Impact: +N to daily post count (checked before execution)\nTypical Duration: 1-3 minutes (depends on count)\nNote: Uses JobRun tracking for observability\n\nbolta.week.plan\n\nPath: skills/content-plane/bolta.week.plan/SKILL.md\nPurpose: Plan a week's content with scheduling\nInputs: Start date, posting frequency, themes\nOutputs: 7-day content calendar with scheduled posts\nPermissions: posts:write, posts:schedule\nSafe Mode: Routes to Pending Approval if ON\nAutonomy Mode: Respects managed/autopilot routing\nQuota Impact: +5-15 to daily post count (spread across week)\nTypical Duration: 3-5 minutes\n\nbolta.content.repurpose\n\nPath: skills/content-plane/bolta.content.repurpose/SKILL.md\nPurpose: Transform long-form content into social posts\nInputs: Blog URL or full text, target platforms\nOutputs: Multiple platform-specific posts\nPermissions: posts:write\nSafe Mode: Routes to Draft\nTypical Duration: 2-4 minutes\n\nbolta.content.thread_builder\n\nPath: skills/content-plane/bolta.content.thread_builder/SKILL.md\nPurpose: Create multi-post threads\nInputs: Topic, thread length (2-10 posts), platform\nOutputs: Linked post sequence\nPermissions: posts:write\nSafe Mode: Routes to Draft\nTypical Duration: 1-2 minutes"
      },
      {
        "title": "Review Plane Skills",
        "body": "bolta.inbox.triage\n\nPath: skills/review-plane/bolta.inbox.triage/SKILL.md\nPurpose: Organize pending posts by priority\nInputs: Optional filters (platform, date range)\nOutputs: Categorized list of posts awaiting review\nPermissions: posts:read, posts:review\nSafe Mode: N/A (read-only)\nTypical Duration: < 10 seconds\n\nbolta.review.digest\n\nPath: skills/review-plane/bolta.review.digest/SKILL.md\nPurpose: Daily summary of posts awaiting review\nInputs: None (workspace context)\nOutputs: Formatted summary with quick approve links\nPermissions: posts:read, posts:review\nSafe Mode: N/A (read-only)\nTypical Duration: < 5 seconds\nNote: Designed for cron execution (daily 9am)\n\nbolta.review.approve_and_route\n\nPath: skills/review-plane/bolta.review.approve_and_route/SKILL.md\nPurpose: Bulk approve and schedule posts\nInputs: Post IDs or filter criteria\nOutputs: Updated post statuses\nPermissions: posts:write, posts:approve, posts:schedule\nSafe Mode: N/A (human override)\nTypical Duration: < 30 seconds\nNote: Bypasses Safe Mode (human decision)\n\nbolta.review.suggest_edits\n\nPath: skills/review-plane/bolta.review.suggest_edits/SKILL.md\nPurpose: AI-powered improvement suggestions\nInputs: Post ID\nOutputs: Suggested edits with rationale\nPermissions: posts:read, voice:read\nSafe Mode: N/A (read-only)\nTypical Duration: < 30 seconds\n\nbolta.review.compliance_check\n\nPath: skills/review-plane/bolta.review.compliance_check/SKILL.md\nPurpose: Flag posts for policy violations\nInputs: Post ID or bulk filter\nOutputs: Compliance report with severity flags\nPermissions: posts:read, policies:read\nSafe Mode: N/A (read-only)\nTypical Duration: < 10 seconds"
      },
      {
        "title": "Automation Plane Skills",
        "body": "bolta.cron.generate_to_review\n\nPath: skills/automation-plane/bolta.cron.generate_to_review/SKILL.md\nPurpose: Daily content generation → Pending Approval\nInputs: None (uses workspace settings)\nOutputs: Posts in Pending Approval status\nPermissions: posts:write, cron:execute\nSafe Mode: Compatible (routes to Pending Approval)\nAutonomy Mode: Recommended for managed/governance\nQuota Impact: +3-10 posts/day (configurable)\nTypical Duration: 2-5 minutes\nExecution: Daily cron (configurable time)\n\nbolta.cron.generate_and_schedule\n\nPath: skills/automation-plane/bolta.cron.generate_and_schedule/SKILL.md\nPurpose: Autonomous scheduling (no human review)\nInputs: None (uses workspace settings)\nOutputs: Posts in Scheduled status\nPermissions: posts:write, posts:schedule, cron:execute\nSafe Mode: INCOMPATIBLE (requires Safe Mode OFF)\nAutonomy Mode: REQUIRES autopilot\nQuota Impact: +5-15 posts/day (configurable)\nTypical Duration: 3-7 minutes\nExecution: Daily cron (configurable time)\nWarning: Bypasses human review — use with caution\n\nbolta.recurring.from_template\n\nPath: skills/automation-plane/bolta.recurring.from_template/SKILL.md\nPurpose: Recurring posts (daily tips, weekly roundups)\nInputs: Template ID, recurrence pattern (daily/weekly/monthly)\nOutputs: RecurringPostReview record + scheduled posts\nPermissions: posts:write, templates:read\nSafe Mode: Respects routing\nQuota Impact: +N posts per recurrence\nTypical Duration: 1-2 minutes (setup)\n\nbolta.auto.respond_to_trending\n\nPath: skills/automation-plane/bolta.auto.respond_to_trending/SKILL.md\nPurpose: Auto-generate posts from trending topics\nInputs: Trending topic sources (Twitter, Google Trends)\nOutputs: Posts related to current trends\nPermissions: posts:write, integrations:read\nSafe Mode: Routes to Pending Approval\nQuota Impact: +1-5 posts/day\nTypical Duration: 2-3 minutes\n\nbolta.auto.content_gap_fill\n\nPath: skills/automation-plane/bolta.auto.content_gap_fill/SKILL.md\nPurpose: Detect scheduling gaps and auto-fill\nInputs: Date range to analyze\nOutputs: Posts to fill detected gaps\nPermissions: posts:write, posts:read\nSafe Mode: Routes to Pending Approval\nQuota Impact: Variable (based on gaps detected)\nTypical Duration: 3-5 minutes"
      },
      {
        "title": "Control Plane Skills",
        "body": "bolta.team.create_agent_teammate\n\nPath: skills/control-plane/bolta.team.create_agent_teammate/SKILL.md\nPurpose: Provision agent principals with roles\nInputs: Agent name, role (creator/editor/reviewer), permissions\nOutputs: AgentPrincipal record + API key\nPermissions: workspace:admin, agents:create\nSafe Mode: N/A (admin operation)\nRole Required: Owner or Admin\nTypical Duration: < 30 seconds\n\nbolta.team.rotate_key\n\nPath: skills/control-plane/bolta.team.rotate_key/SKILL.md\nPurpose: Rotate API keys for security\nInputs: API key ID or agent ID\nOutputs: New API key (old key revoked)\nPermissions: workspace:admin, agents:manage\nSafe Mode: N/A (admin operation)\nRole Required: Owner or Admin\nTypical Duration: < 10 seconds\nNote: Old key immediately invalidated\n\nbolta.policy.explain\n\nPath: skills/control-plane/bolta.policy.explain/SKILL.md\nPurpose: Explain authorization decisions\nInputs: Action attempt (e.g., \"Why can't I publish?\")\nOutputs: Policy analysis with specific blockers\nPermissions: None (informational)\nSafe Mode: N/A (read-only)\nTypical Duration: < 5 seconds\nUse Case: Troubleshooting \"Access Denied\" errors\n\nbolta.audit.export_activity\n\nPath: skills/control-plane/bolta.audit.export_activity/SKILL.md\nPurpose: Export audit logs\nInputs: Date range, filters (principal, action type, denied actions)\nOutputs: CSV or JSON export of PostActivity records\nPermissions: workspace:admin, audit:read\nSafe Mode: N/A (admin operation)\nRole Required: Owner or Admin\nTypical Duration: < 30 seconds\nUse Case: Compliance reporting, SOC2 audits\n\nbolta.quota.status\n\nPath: skills/control-plane/bolta.quota.status/SKILL.md\nPurpose: View current quota usage\nInputs: None (workspace context)\nOutputs: Daily post count, hourly API usage, limits, percentage\nPermissions: workspace:read\nSafe Mode: N/A (read-only)\nTypical Duration: < 5 seconds\n\nbolta.workspace.config\n\nPath: skills/control-plane/bolta.workspace.config/SKILL.md\nPurpose: View/update workspace settings\nInputs: Settings to update (autonomy_mode, safe_mode, quotas)\nOutputs: Updated workspace configuration\nPermissions: workspace:admin\nSafe Mode: N/A (admin operation)\nRole Required: Owner or Admin\nTypical Duration: < 10 seconds\nWarning: Changing autonomy mode affects all agent operations"
      },
      {
        "title": "Recommended Install Sets",
        "body": "Install sets are curated skill bundles tailored to specific autonomy modes and use cases."
      },
      {
        "title": "Assisted Mode Install Set",
        "body": "Autonomy Level: Low (maximum human control)\nSafe Mode: Must be ON\nUse Case: New users, high-stakes brands, learning Bolta\n\nSkills:\n\nbolta.voice.bootstrap - Set up initial voice profile\nbolta.draft.post - Create individual posts (always Draft)\nbolta.loop.from_template - Scale content creation safely\nbolta.week.plan - Plan content calendar\n\nRationale:\nAssisted mode prioritizes learning and control. All content goes to Draft for manual review before scheduling. Ideal for:\n\nTeams new to AI content generation\nBrands with strict compliance requirements\nUsers who want to learn Bolta patterns before automating\n\nExpected Workflow:\n\nBootstrap voice profile\nCreate posts in Draft (manually or via templates)\nHuman reviews and schedules each post\nGraduate to Managed when comfortable"
      },
      {
        "title": "Managed Mode Install Set",
        "body": "Autonomy Level: Medium (guided automation with oversight)\nSafe Mode: ON (recommended) or OFF\nUse Case: Established users, moderate volume, review workflows\n\nSkills:\n\nAll Assisted skills +\nbolta.inbox.triage - Organize posts for review\nbolta.review.digest - Daily review summaries\nbolta.review.approve_and_route - Bulk approval workflow\nbolta.voice.validate - Quality scoring\nbolta.cron.generate_to_review - Daily automated generation\n\nRationale:\nManaged mode balances efficiency with oversight. Agent generates content autonomously, but humans approve before publishing. Ideal for:\n\nTeams with 1-2 reviewers\nBrands publishing 3-10 posts/day\nUsers who trust the voice profile\n\nExpected Workflow:\n\nAgent generates posts overnight (via cron) → Pending Approval\nDaily digest arrives at 9am\nReviewer triages inbox, validates voice compliance\nBulk approve/schedule approved posts\nRefine voice profile based on patterns"
      },
      {
        "title": "Autopilot Mode Install Set",
        "body": "Autonomy Level: High (hands-off automation)\nSafe Mode: Must be OFF (incompatible)\nUse Case: High volume, trusted voice, minimal oversight\n\nSkills:\n\nAll Managed skills +\nbolta.cron.generate_and_schedule - Autonomous scheduling\nbolta.auto.respond_to_trending - Trend-based posting\nbolta.auto.content_gap_fill - Auto-fill scheduling gaps\nbolta.recurring.from_template - Recurring post automation\nbolta.quota.status - Monitor quota usage\n\nRationale:\nAutopilot mode maximizes efficiency for high-volume operations. Agent schedules directly without human approval. Ideal for:\n\nEstablished brands with proven voice profiles\nHigh-frequency posting (10+ posts/day)\nTeams with minimal manual review capacity\n\nExpected Workflow:\n\nAgent generates and schedules posts automatically\nQuota enforcement prevents runaway generation\nPeriodic voice validation checks (weekly)\nHuman reviews published analytics, adjusts strategy\n\nWarning:\nAutopilot bypasses human review. Only use with:\n\nWell-tested voice profiles (version 5+)\nQuota limits configured (max 20 posts/day recommended)\nRegular validation spot-checks (review 10% of published posts)"
      },
      {
        "title": "Governance Mode Install Set",
        "body": "Autonomy Level: N/A (control & audit focused)\nSafe Mode: N/A\nUse Case: Admins, compliance teams, workspace management\n\nSkills:\n\nbolta.policy.explain - Authorization troubleshooting\nbolta.audit.export_activity - Compliance exports\nbolta.team.create_agent_teammate - Agent provisioning\nbolta.team.rotate_key - Security operations\nbolta.workspace.config - Workspace administration\nbolta.quota.status - Usage monitoring\nbolta.voice.validate - Quality auditing\n\nRationale:\nGovernance mode is not an autonomy level — it's a control plane install set for administrators. Ideal for:\n\nWorkspace owners managing teams\nCompliance officers conducting audits\nSecurity teams rotating keys\nAdmins troubleshooting authorization issues\n\nExpected Workflow:\n\nOnboard new team members (human or agent)\nConfigure workspace policies (Safe Mode, autonomy, quotas)\nMonitor quota usage and adjust limits\nExport audit logs for compliance reporting\nRotate API keys on schedule (e.g., quarterly)\nInvestigate authorization failures via policy.explain"
      },
      {
        "title": "Decision Matrix: Skill Recommendations",
        "body": "This matrix determines which skills to recommend based on workspace context."
      },
      {
        "title": "Input Variables",
        "body": "Safe Mode (ON/OFF)\nAutonomy Mode (assisted/managed/autopilot/governance)\nUser Role (owner/admin/editor/creator/reviewer/viewer)\nAgent Permissions (if principal is agent)\nWorkspace Quotas (daily post limit, hourly API limit)\nVoice Profile Status (exists, version number)"
      },
      {
        "title": "Decision Rules",
        "body": "Rule 1: Voice Bootstrapping (First-Time Setup)\n\nIF voice_profile_count == 0:\n  RECOMMEND: bolta.voice.bootstrap (HIGH PRIORITY)\n  RATIONALE: Cannot create content without voice profile\n\nRule 2: Safe Mode + Autopilot Incompatibility\n\nIF safe_mode == ON AND autonomy_mode == \"autopilot\":\n  ERROR: Incompatible configuration\n  RECOMMEND: Either disable Safe Mode OR switch to \"managed\"\n  RATIONALE: Autopilot bypasses review; contradicts Safe Mode intent\n\nRule 3: Agent Permission Gating\n\nIF principal_type == \"agent\":\n  IF agent.permissions NOT IN required_permissions:\n    EXCLUDE: Skills requiring missing permissions\n    RECOMMEND: bolta.policy.explain to understand blockers\n\nRule 4: Role-Based Filtering\n\nIF role IN [\"viewer\", \"reviewer\"]:\n  EXCLUDE: All write operations (posts:write, voice:write)\n  INCLUDE: Read-only skills (audit.export, policy.explain)\n\nIF role IN [\"creator\", \"editor\"]:\n  INCLUDE: Content plane skills\n  EXCLUDE: Control plane skills (team.*, workspace.config)\n\nIF role IN [\"admin\", \"owner\"]:\n  INCLUDE: All skills (no restrictions)\n\nRule 5: Quota-Based Warnings\n\nIF daily_posts_used >= (daily_post_limit * 0.8):\n  WARN: \"Approaching daily quota limit\"\n  RECOMMEND: bolta.quota.status to view usage\n\nIF daily_posts_used >= daily_post_limit:\n  BLOCK: All posts:write skills\n  RECOMMEND: Increase quota via bolta.workspace.config\n\nRule 6: Autonomy Mode Routing\n\nIF autonomy_mode == \"assisted\":\n  INCLUDE: Content plane (draft only)\n  EXCLUDE: Automation plane (no cron jobs)\n\nIF autonomy_mode == \"managed\":\n  INCLUDE: Content + Review planes\n  INCLUDE: bolta.cron.generate_to_review (safe automation)\n  EXCLUDE: bolta.cron.generate_and_schedule (requires autopilot)\n\nIF autonomy_mode == \"autopilot\":\n  INCLUDE: All automation skills\n  REQUIRE: Safe Mode OFF\n  RECOMMEND: Quota monitoring (quota.status)"
      },
      {
        "title": "Step 1: Gather Workspace Context",
        "body": "API Call: GET /api/v1/workspaces/{workspace_id}\n\nExtract:\n\nsafe_mode (boolean)\nautonomy_mode (assisted/managed/autopilot/governance)\nmax_posts_per_day (int, nullable)\nmax_api_requests_per_hour (int, nullable)"
      },
      {
        "title": "Step 2: Identify Principal",
        "body": "API Call: GET /api/v1/me or use request context\n\nExtract:\n\nprincipal_type (user or agent)\nrole (owner/admin/editor/creator/reviewer/viewer)\nIf agent: permissions array, autonomy_override"
      },
      {
        "title": "Step 3: Check Voice Profile Status",
        "body": "API Call: GET /api/v1/workspaces/{workspace_id}/voice-profiles\n\nExtract:\n\nvoice_profile_count (0 = needs bootstrap)\nLatest version (higher version = more refined)\nstatus (active/draft/archived)"
      },
      {
        "title": "Step 4: Check Quota Usage",
        "body": "API Call: GET /api/v1/workspaces/{workspace_id}/quota-status (via bolta.quota.status)\n\nExtract:\n\ndaily_posts.used / daily_posts.limit\nhourly_api_requests.used / hourly_api_requests.limit"
      },
      {
        "title": "Step 5: Apply Decision Rules",
        "body": "Run through decision matrix (see above) to filter skills.\n\nOutput:\n\nrecommended_skills - Array of skill slugs\nexcluded_skills - Array with exclusion reasons\nwarnings - Array of configuration issues"
      },
      {
        "title": "Step 6: Return Structured Response",
        "body": "{\n  \"workspace_id\": \"uuid\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"editor\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 3,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\n      \"used\": 12,\n      \"limit\": 100,\n      \"percentage\": 12\n    },\n    \"hourly_api_requests\": {\n      \"used\": 45,\n      \"limit\": 1000,\n      \"percentage\": 4.5\n    }\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\",\n    \"bolta.week.plan\",\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.cron.generate_to_review\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.cron.generate_and_schedule\",\n      \"reason\": \"Requires autonomy_mode=autopilot (current: managed)\"\n    },\n    {\n      \"skill\": \"bolta.workspace.config\",\n      \"reason\": \"Requires role owner/admin (current: editor)\"\n    }\n  ],\n  \"warnings\": [],\n  \"next_steps\": [\n    \"Install recommended skills via MCP or API\",\n    \"Run bolta.voice.validate to check content quality\",\n    \"Configure daily digest via bolta.review.digest\"\n  ]\n}"
      },
      {
        "title": "Example 1: New Workspace (First-Time Setup)",
        "body": "{\n  \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"assisted\",\n  \"role\": \"owner\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": false,\n    \"version\": 0,\n    \"status\": null\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 0, \"limit\": 100, \"percentage\": 0},\n    \"hourly_api_requests\": {\"used\": 0, \"limit\": 1000, \"percentage\": 0}\n  },\n  \"recommended_mode\": \"assisted\",\n  \"recommended_skills\": [\n    \"bolta.voice.bootstrap\"\n  ],\n  \"excluded_skills\": [],\n  \"warnings\": [\n    {\n      \"type\": \"missing_voice_profile\",\n      \"message\": \"No voice profile found. Run bolta.voice.bootstrap to get started.\",\n      \"severity\": \"high\"\n    }\n  ],\n  \"next_steps\": [\n    \"1. Run bolta.voice.bootstrap to create your brand voice\",\n    \"2. After voice setup, install content plane skills\",\n    \"3. Create your first post with bolta.draft.post\"\n  ]\n}"
      },
      {
        "title": "Example 2: Managed Mode (Typical Production)",
        "body": "{\n  \"workspace_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"admin\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 5,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 18, \"limit\": 50, \"percentage\": 36},\n    \"hourly_api_requests\": {\"used\": 142, \"limit\": 1000, \"percentage\": 14.2}\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\",\n    \"bolta.week.plan\",\n    \"bolta.content.repurpose\",\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.voice.evolve\",\n    \"bolta.cron.generate_to_review\",\n    \"bolta.team.create_agent_teammate\",\n    \"bolta.audit.export_activity\",\n    \"bolta.quota.status\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.cron.generate_and_schedule\",\n      \"reason\": \"Requires autonomy_mode=autopilot AND safe_mode=OFF\"\n    }\n  ],\n  \"warnings\": [],\n  \"next_steps\": [\n    \"Configure daily content generation via bolta.cron.generate_to_review\",\n    \"Set up review workflow with digest notifications\",\n    \"Consider voice evolution (version 5 is mature)\"\n  ]\n}"
      },
      {
        "title": "Example 3: Autopilot Mode (High Volume)",
        "body": "{\n  \"workspace_id\": \"770e8400-e29b-41d4-a716-446655440002\",\n  \"safe_mode\": false,\n  \"autonomy_mode\": \"autopilot\",\n  \"role\": \"owner\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 12,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 47, \"limit\": 200, \"percentage\": 23.5},\n    \"hourly_api_requests\": {\"used\": 523, \"limit\": 2000, \"percentage\": 26.15}\n  },\n  \"recommended_mode\": \"autopilot\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\",\n    \"bolta.week.plan\",\n    \"bolta.content.repurpose\",\n    \"bolta.content.thread_builder\",\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.voice.evolve\",\n    \"bolta.cron.generate_to_review\",\n    \"bolta.cron.generate_and_schedule\",\n    \"bolta.auto.respond_to_trending\",\n    \"bolta.auto.content_gap_fill\",\n    \"bolta.recurring.from_template\",\n    \"bolta.quota.status\",\n    \"bolta.workspace.config\"\n  ],\n  \"excluded_skills\": [],\n  \"warnings\": [\n    {\n      \"type\": \"high_autonomy\",\n      \"message\": \"Autopilot mode bypasses human review. Monitor quota usage and validate voice compliance regularly.\",\n      \"severity\": \"medium\"\n    },\n    {\n      \"type\": \"quota_usage\",\n      \"message\": \"Daily quota at 23.5% usage. Consider monitoring trends to avoid hitting limit.\",\n      \"severity\": \"low\"\n    }\n  ],\n  \"next_steps\": [\n    \"Monitor quota usage daily via bolta.quota.status\",\n    \"Run voice validation spot-checks (10% of published posts)\",\n    \"Review JobRun stats weekly for error trends\"\n  ]\n}"
      },
      {
        "title": "Example 4: Agent Principal (API Key)",
        "body": "{\n  \"workspace_id\": \"880e8400-e29b-41d4-a716-446655440003\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"creator\",\n  \"principal_type\": \"agent\",\n  \"agent\": {\n    \"id\": \"agent-uuid\",\n    \"name\": \"Content Bot\",\n    \"permissions\": [\"posts:write\", \"posts:read\", \"templates:read\"],\n    \"autonomy_override\": null\n  },\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 7,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 8, \"limit\": 30, \"percentage\": 26.67},\n    \"hourly_api_requests\": {\"used\": 67, \"limit\": 500, \"percentage\": 13.4}\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.week.plan\",\n      \"reason\": \"Requires posts:schedule permission (agent lacks this)\"\n    },\n    {\n      \"skill\": \"bolta.review.approve_and_route\",\n      \"reason\": \"Requires posts:approve permission (agent lacks this)\"\n    },\n    {\n      \"skill\": \"bolta.voice.evolve\",\n      \"reason\": \"Requires voice:write permission (agent lacks this)\"\n    },\n    {\n      \"skill\": \"bolta.workspace.config\",\n      \"reason\": \"Requires workspace:admin permission (agent role: creator)\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"limited_permissions\",\n      \"message\": \"Agent has limited permissions. Some skills are unavailable.\",\n      \"severity\": \"info\"\n    }\n  ],\n  \"next_steps\": [\n    \"Use bolta.draft.post to create content\",\n    \"Use bolta.loop.from_template for batch generation\",\n    \"Human reviewers should use bolta.review.approve_and_route to publish\"\n  ]\n}"
      },
      {
        "title": "Example 5: Quota Limit Reached",
        "body": "{\n  \"workspace_id\": \"990e8400-e29b-41d4-a716-446655440004\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"editor\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 4,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 100, \"limit\": 100, \"percentage\": 100},\n    \"hourly_api_requests\": {\"used\": 234, \"limit\": 1000, \"percentage\": 23.4}\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.quota.status\",\n    \"bolta.policy.explain\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.draft.post\",\n      \"reason\": \"Daily quota limit reached (100/100 posts)\"\n    },\n    {\n      \"skill\": \"bolta.loop.from_template\",\n      \"reason\": \"Daily quota limit reached (100/100 posts)\"\n    },\n    {\n      \"skill\": \"bolta.week.plan\",\n      \"reason\": \"Daily quota limit reached (100/100 posts)\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"quota_exceeded\",\n      \"message\": \"Daily post quota limit reached. No new posts can be created until tomorrow (resets at UTC midnight).\",\n      \"severity\": \"high\"\n    }\n  ],\n  \"next_steps\": [\n    \"Review and approve existing posts in queue\",\n    \"Consider increasing daily quota via bolta.workspace.config (admin only)\",\n    \"Check quota status at midnight UTC for reset\"\n  ]\n}"
      },
      {
        "title": "Example 6: Incompatible Configuration (Autopilot + Safe Mode)",
        "body": "{\n  \"workspace_id\": \"aa0e8400-e29b-41d4-a716-446655440005\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"autopilot\",\n  \"role\": \"owner\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 8,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 5, \"limit\": 150, \"percentage\": 3.33},\n    \"hourly_api_requests\": {\"used\": 12, \"limit\": 1500, \"percentage\": 0.8}\n  },\n  \"recommended_mode\": \"ERROR\",\n  \"recommended_skills\": [],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"ALL\",\n      \"reason\": \"Incompatible configuration: autopilot mode requires Safe Mode OFF\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"configuration_conflict\",\n      \"message\": \"Autopilot mode is incompatible with Safe Mode ON. Autopilot bypasses human review, which contradicts Safe Mode's intent.\",\n      \"severity\": \"critical\"\n    }\n  ],\n  \"next_steps\": [\n    \"Choose one of the following:\",\n    \"  A) Disable Safe Mode to use autopilot (workspace.config)\",\n    \"  B) Switch to 'managed' autonomy mode to keep Safe Mode ON\",\n    \"Current config blocks all agent operations until resolved.\"\n  ],\n  \"error\": {\n    \"code\": \"INCOMPATIBLE_CONFIGURATION\",\n    \"message\": \"Autopilot autonomy mode requires Safe Mode to be OFF. Please update workspace configuration.\"\n  }\n}"
      },
      {
        "title": "Integration with Authorization System",
        "body": "The registry integrates with Bolta's authorization layer to ensure skill recommendations respect workspace policies."
      },
      {
        "title": "Authorization Flow Integration",
        "body": "Step 1: Pre-flight Authorization Check\nBefore recommending a skill, check if the principal is authorized:\n\nfrom users.authorization import authorize, PostAction\n\n# Check if user can create posts\nauth_result = authorize(\n    principal_type=\"user\",\n    role=\"editor\",\n    workspace=workspace,\n    action=PostAction.CREATE,\n    requested_status=\"Scheduled\",\n    agent=None  # or agent instance if principal is agent\n)\n\nif not auth_result.allowed:\n    # Exclude skill with reason\n    excluded_skills.append({\n        \"skill\": \"bolta.week.plan\",\n        \"reason\": auth_result.reason\n    })\n\nStep 2: Respect Autonomy Mode Routing\nSkills that create posts must account for autonomy mode routing:\n\n# Autonomy mode routing table\nAUTONOMY_ROUTING = {\n    \"assisted\": {\n        \"Draft\": \"Draft\",           # Always Draft\n        \"Scheduled\": \"Draft\",       # Routed to Draft\n        \"Posted\": \"Draft\"           # Routed to Draft\n    },\n    \"managed\": {\n        \"Draft\": \"Draft\",\n        \"Scheduled\": \"Pending Approval\",  # Routed to review\n        \"Posted\": \"Pending Approval\"      # Routed to review\n    },\n    \"autopilot\": {\n        \"Draft\": \"Draft\",\n        \"Scheduled\": \"Scheduled\",    # No routing (requires Safe Mode OFF)\n        \"Posted\": \"Posted\"           # No routing (requires Safe Mode OFF)\n    },\n    \"governance\": {\n        \"Draft\": \"Pending Approval\",\n        \"Scheduled\": \"Pending Approval\",\n        \"Posted\": \"Pending Approval\"\n    }\n}\n\n# Skills should document expected output status after routing\n\nStep 3: Quota Enforcement\nSkills that create posts must respect quota limits:\n\nfrom posts.quota_enforcement import QuotaEnforcer\n\n# Check quota before recommending bulk operations\nallowed, reason = QuotaEnforcer.check_daily_post_quota(\n    workspace=workspace,\n    count=10  # e.g., bolta.loop.from_template with count=10\n)\n\nif not allowed:\n    excluded_skills.append({\n        \"skill\": \"bolta.loop.from_template\",\n        \"reason\": reason  # e.g., \"Daily quota exceeded (95/100)\"\n    })\n\nStep 4: Safe Mode Compatibility\nSome skills are incompatible with Safe Mode:\n\nSAFE_MODE_INCOMPATIBLE = [\n    \"bolta.cron.generate_and_schedule\",  # Bypasses review\n]\n\nif workspace.safe_mode and skill in SAFE_MODE_INCOMPATIBLE:\n    excluded_skills.append({\n        \"skill\": skill,\n        \"reason\": \"Incompatible with Safe Mode ON (requires human review bypass)\"\n    })"
      },
      {
        "title": "Skill Metadata Schema",
        "body": "Each skill should provide structured metadata for registry indexing:\n\nskill:\n  slug: bolta.draft.post\n  display_name: Draft Post\n  version: 1.2.0\n  plane: content\n\npermissions:\n  required:\n    - posts:write\n  optional:\n    - voice:read  # For voice profile selection\n\ncompatibility:\n  safe_mode: compatible  # compatible | incompatible | n/a\n  autonomy_modes:\n    - assisted\n    - managed\n    - autopilot\n  roles:\n    - owner\n    - admin\n    - editor\n    - creator\n\nquotas:\n  posts_created: 1  # Impact on daily quota\n  api_requests: 2   # Typical API call count\n\ndependencies:\n  required:\n    - voice_profile  # Must have voice profile\n  optional:\n    - templates      # Enhanced with templates\n\nexecution:\n  typical_duration_seconds: 45\n  max_duration_seconds: 120\n  idempotent: true\n  retryable: true\n\noutputs:\n  post_status: Draft  # Before autonomy routing\n  job_tracked: true   # Creates JobRun record\n  audit_logged: true  # Creates PostActivity record"
      },
      {
        "title": "Version History",
        "body": "0.5.4 (Current) - Version bump\n\n0.5.3 - Installation & First Run Guidance\n\nAdded comprehensive \"Installation & First Run\" section\nAdded complete skill pack installation instructions (git clone, download)\nAdded README.md reading prompt (critical for setup)\nAdded directory structure overview (21+ skills across 5 planes)\nAdded recommended first-run flow (verify → configure → test)\nAdded common first-run mistakes guide (avoid pitfalls)\nAdded post-installation checklist (10-item verification)\nEnhanced discoverability of full skill library\nAddresses user prompt: \"Should we prompt user to install rest of skills from registry?\"\n\n0.5.1 - Security Patch\n\nSECURITY: Added explicit Required Environment Variables section\nSECURITY: Declared BOLTA_API_KEY, BOLTA_WORKSPACE_ID as required\nSECURITY: Added trusted domains list (api.bolta.ai, platty.boltathread.com)\nSECURITY: Enhanced security best practices (rotation, least-privilege, monitoring)\nAdded environment variable configuration examples for all platforms\nAdded credential security reminders throughout documentation\nAddressed security audit finding: \"manifest does not declare required env vars\"\n\n0.5.0\n\nAdded comprehensive Getting Started guide\nAdded Agent API setup instructions (bolta.ai/register)\nAdded setup verification steps\nAdded troubleshooting section for common setup issues\nAdded next steps after agent registration\n\n0.4.0\n\nAdded comprehensive skill descriptions with metadata\nAdded detailed decision matrix and authorization integration\nAdded 6 output examples covering all scenarios\nAdded quota enforcement and compatibility checks\nAdded voice plane skills (validate, evolve)\nAdded automation plane skills (trending, gap-fill)\nAdded control plane skills (quota, workspace config)\nAdded skill metadata schema\n\n0.3.0\n\nAdded recommended install sets (assisted, managed, autopilot, governance)\nAdded plane groupings (voice, content, review, automation, control)\nAdded registry flow documentation\nAdded basic output example\n\n0.2.0\n\nAdded initial skill index\nAdded plane definitions\n\n0.1.0\n\nInitial registry structure"
      },
      {
        "title": "Support",
        "body": "For skill installation issues, contact: support@bolta.ai"
      }
    ],
    "body": "SKILL: bolta.skills.index\n\nDisplay name: Bolta Skills Registry Slug: bolta-skills-registry Version: 0.5.4 Tags: registry,catalog,bootstrap,workspace,index,discovery Organization: bolta.ai Author: Max Fritzhand Type: registry Executes: false\n\nMetadata\n{\n  \"name\": \"bolta.skills.index\",\n  \"version\": \"0.5.4\",\n  \"publisher\": \"bolta.ai\",\n  \"verified\": true,\n  \"sourceRepository\": \"https://github.com/boltaai/bolta-skills\",\n  \"requiredEnvironmentVariables\": [\n    {\n      \"name\": \"BOLTA_API_KEY\",\n      \"required\": true,\n      \"sensitive\": true,\n      \"description\": \"Bolta API key (obtain at bolta.ai/register)\",\n      \"format\": \"sk_live_[64 characters]\",\n      \"scope\": \"workspace\"\n    },\n    {\n      \"name\": \"BOLTA_WORKSPACE_ID\",\n      \"required\": true,\n      \"sensitive\": false,\n      \"description\": \"Workspace UUID for API operations\",\n      \"format\": \"UUID\"\n    },\n    {\n      \"name\": \"BOLTA_AGENT_ID\",\n      \"required\": false,\n      \"sensitive\": false,\n      \"description\": \"Agent principal UUID (for audit logging)\",\n      \"format\": \"UUID\"\n    }\n  ],\n  \"trustedDomains\": [\n    \"platty.boltathread.com\",\n    \"bolta.ai\"\n  ],\n  \"permissions\": [\n    \"network:https:platty.boltathread.com\",\n    \"network:https:bolta.ai\"\n  ],\n  \"thirdPartyPackages\": [\n    {\n      \"name\": \"@boltaai/mcp-server\",\n      \"registry\": \"npm\",\n      \"verified\": true,\n      \"sourceRepository\": \"https://github.com/boltaai/bolta-mcp-server\"\n    }\n  ]\n}\n\n⚠️ Security Notice\n\nThis skill requires sensitive API credentials. Read this section carefully before installing.\n\nRequired Credentials\n\nBOLTA_API_KEY (REQUIRED, SENSITIVE)\n\nFormat: sk_live_ followed by 64 alphanumeric characters\nObtain at: https://bolta.ai/register\nScoping: Each key is scoped to a SINGLE workspace only\nPermissions: Grant LEAST-PRIVILEGE access (e.g., only posts:write if creating content)\nRotation: Rotate every 90 days using bolta.team.rotate_key skill\nStorage: NEVER commit to git - use environment variables or secret managers only\n\nBOLTA_WORKSPACE_ID (REQUIRED)\n\nFormat: UUID (e.g., 550e8400-e29b-41d4-a716-446655440000)\nSource: Provided during agent registration at bolta.ai/register\nPurpose: Identifies which workspace the API key is authorized for\n\nBOLTA_AGENT_ID (OPTIONAL, RECOMMENDED)\n\nFormat: UUID\nPurpose: Links API activity to specific agent principal for audit logs\nBenefit: Enables traceability and compliance reporting\nTrusted Network Endpoints\n\nThis skill makes HTTPS requests to:\n\n✅ https://platty.boltathread.com - Bolta API server\n✅ https://bolta.ai - Main application and agent registration portal\n\nNo other domains are contacted. All requests are authenticated with your API key.\n\nThird-Party Dependencies\n\nThis skill references:\n\n@boltaai/mcp-server (npm package for Claude Desktop integration)\nSource: https://github.com/boltaai/bolta-mcp-server\nVerified: Yes (official Bolta package)\nPurpose: Connects Claude Desktop to Bolta API via MCP protocol\nPre-Installation Checklist\n\nBefore installing this skill, you MUST:\n\n Verify the source repository: https://github.com/boltaai/bolta-skills\n Review the SKILL.md and confirm version matches metadata (currently 0.5.4)\n Obtain a LEAST-PRIVILEGE API key from https://bolta.ai/register\n Store API key in environment variables (NEVER hardcode or commit)\n Verify you trust the domains: platty.boltathread.com and bolta.ai\n Test in a disposable/test workspace first (recommended)\n Confirm your API key is scoped ONLY to the intended workspace\n\nIf you cannot verify the above, DO NOT install this skill.\n\nSecurity Best Practices\n\nCredential Management\n\nUse environment variables: export BOLTA_API_KEY=\"sk_live_...\"\nOr use secret managers: AWS Secrets Manager, 1Password, etc.\nNEVER paste API keys in chat, logs, or public places\n\nKey Rotation\n\nRotate keys every 90 days minimum\nUse bolta.team.rotate_key skill for zero-downtime rotation\nRevoke compromised keys immediately at bolta.ai/settings\n\nPermission Scoping\n\nGrant ONLY required permissions (e.g., posts:write, voice:read)\nAvoid workspace:admin unless absolutely necessary\nReview permissions quarterly\n\nMonitoring\n\nReview audit logs weekly via bolta.audit.export_activity\nMonitor quota usage via bolta.quota.status\nSet up alerts for unusual API activity\n\nWorkspace Isolation\n\nOne API key per workspace (NEVER share keys across workspaces)\nUse separate keys for dev/staging/production environments\nRevoke keys when decommissioning workspaces\nPurpose\n\nThe canonical registry and orchestration layer for all Bolta skills.\n\nThis skill serves as the single source of truth for skill discovery, installation recommendations, and workspace-aware capability bootstrapping. It does not execute content operations directly — instead, it provides intelligent routing to the appropriate skills based on:\n\nWorkspace policy (Safe Mode, autonomy mode, quotas)\nPrincipal identity (user role, agent permissions)\nOperational context (what you're trying to accomplish)\n\nKey Responsibilities:\n\nDiscovery - Index all available skills with metadata\nRecommendation - Suggest install sets based on workspace policy and role\nOrchestration - Guide multi-skill workflows\nCompatibility - Enforce skill compatibility with workspace settings\nBootstrapping - Help new workspaces get started quickly\n\nWhen to Use:\n\nSetting up a new workspace (\"What skills should I install?\")\nDiscovering available capabilities (\"What can Bolta do?\")\nTroubleshooting skill compatibility (\"Why can't I use this skill?\")\nPlanning multi-step workflows (\"Which skills do I need?\")\n\nData Access: This skill accesses:\n\n✅ Workspace configuration (policy, quotas, autonomy mode)\n✅ Voice profile metadata (names, IDs, not full content)\n✅ Post counts and quota usage\n✅ Agent principal permissions\n\nThis skill does NOT access:\n\n❌ Post content or scheduled posts\n❌ Social media credentials\n❌ User passwords or authentication tokens\n❌ Files or media uploads\nSource & Verification\n\nhttps://github.com/boltaai/bolta-skills\n\nGetting Started: Agent API Setup\n\nBefore using Bolta skills, you need to set up agent API access to authenticate your requests.\n\nStep 1: Register Your Agent\n\nVisit bolta.ai/register to create your agent principal and obtain an API key.\n\nWhat you'll need:\n\nBolta workspace (create one at bolta.ai if you don't have one)\nAdmin or Owner role in your workspace\nStep 2: Create Agent Principal\n\nDuring registration, you'll configure:\n\nAgent Name\n\nExample: \"Claude Content Agent\"\nDescription: Human-readable name for audit logs\n\n\nAgent Role\n\nOptions:\n- creator  - Can create drafts (recommended for testing)\n- editor   - Can create + schedule posts\n- reviewer - Can approve/reject posts (review-only access)\n\nRecommended: Start with \"creator\" role for safety\n\n\nPermissions\n\nMinimum for content skills:\n✓ posts:write  - Create posts\n✓ voice:read   - Read voice profiles\n\nOptional (based on use case):\n□ posts:schedule  - Schedule posts (requires editor+ role)\n□ posts:approve   - Approve posts for publishing\n□ templates:read  - Use content templates\n□ cron:execute    - Run automated jobs\n\nStep 3: Copy Your API Key\n\nAfter registration, you'll receive:\n\nAPI Key: sk_live_00000000000000000000000000000000\nWorkspace ID: 550e8400-e29b-41d4-a716-446655440000\nAgent ID: 660e8400-e29b-41d4-a716-446655440001\n\n\nIMPORTANT:\n\n⚠️ Store API key securely (never commit to git)\n⚠️ Keys cannot be recovered (only regenerated via bolta.team.rotate_key)\n⚠️ Each key is scoped to ONE workspace\nStep 4: Configure Your Environment\n\nSet Required Environment Variables:\n\nBefore using any Bolta skills, you MUST configure these environment variables:\n\n# Required: Your Bolta API key (from bolta.ai/register)\nexport BOLTA_API_KEY=\"sk_live_your_actual_key_here\"\n\n# Required: Your workspace UUID (from bolta.ai/register)\nexport BOLTA_WORKSPACE_ID=\"550e8400-e29b-41d4-a716-446655440000\"\n\n# Optional: Agent principal UUID (for audit logging)\nexport BOLTA_AGENT_ID=\"660e8400-e29b-41d4-a716-446655440001\"\n\n\nFor Claude Desktop (MCP):\n\n{\n  \"mcpServers\": {\n    \"bolta\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@boltaai/mcp-server\"],\n      \"env\": {\n        \"BOLTA_API_KEY\": \"sk_live_your_actual_key_here\",\n        \"BOLTA_WORKSPACE_ID\": \"550e8400-e29b-41d4-a716-446655440000\",\n        \"BOLTA_AGENT_ID\": \"660e8400-e29b-41d4-a716-446655440001\"\n      }\n    }\n  }\n}\n\n\nFor Direct API Calls:\n\n# Use environment variables in your requests\ncurl https://platty.boltathread.com/v1/posts \\\n  -H \"Authorization: Bearer ${BOLTA_API_KEY}\" \\\n  -H \"X-Workspace-ID: ${BOLTA_WORKSPACE_ID}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"prompt\": \"Create a post about productivity\" }'\n\n\nFor Node.js/TypeScript Applications:\n\nimport { BoltaClient } from '@boltaai/sdk';\n\n// Load from environment variables (recommended)\nconst bolta = new BoltaClient({\n  apiKey: process.env.BOLTA_API_KEY,\n  workspaceId: process.env.BOLTA_WORKSPACE_ID,\n  agentId: process.env.BOLTA_AGENT_ID // Optional\n});\n\n// Verify all required vars are set\nif (!process.env.BOLTA_API_KEY || !process.env.BOLTA_WORKSPACE_ID) {\n  throw new Error('Missing required Bolta credentials. Set BOLTA_API_KEY and BOLTA_WORKSPACE_ID');\n}\n\n\nSecurity Reminder:\n\n⚠️ Never hardcode API keys in your code\n⚠️ Use .env files locally (add .env to .gitignore)\n⚠️ Use secret managers in production (AWS Secrets Manager, Vercel Secrets, etc.)\n⚠️ Rotate keys every 90 days via bolta.team.rotate_key\nStep 5: Verify Setup\n\nTest your configuration with a simple skill:\n\nVia API\n\ncurl https://api.bolta.ai/v1/workspaces/{workspace_id}\n-H \"Authorization: Bearer YOUR_API_KEY\"\n\nExpected response:\n\n{ \"id\": \"550e8400-...\", \"name\": \"My Workspace\", \"safe_mode\": true, \"autonomy_mode\": \"managed\", \"max_posts_per_day\": 100 }\n\n\n### Troubleshooting Setup\n\n#### Error: \"Invalid API Key\"\n**Cause:** Key is incorrect or has been rotated\n\n**Solutions:**\n1. Verify key matches exactly (no extra spaces)\n2. Check if key was rotated → Get new key at bolta.ai/register\n3. Ensure you're using the correct workspace key\n\n#### Error: \"Workspace Not Found\"\n**Cause:** Workspace ID mismatch or no access\n\n**Solutions:**\n1. Verify workspace_id matches your registration\n2. Confirm you have access to this workspace (visit bolta.ai/workspaces)\n3. Check if workspace was deleted\n\n#### Error: \"Permission Denied\"\n**Cause:** Agent role lacks required permission\n\n**Solutions:**\n1. Check your agent's permissions at bolta.ai/register\n2. For content creation: Need `posts:write` minimum\n3. For scheduling: Need `posts:schedule` + editor role\n4. For automation: Need `cron:execute` permission\n\n---\n\n## Installation & First Run\n\n### 🎯 Complete Skill Pack Installation\n\n**You're currently viewing the registry skill only.** To access the full Bolta skills library, you should install the complete skill pack.\n\n**Option 1: Install Full Skill Pack (Recommended)**\n\n```bash\n# Clone the complete Bolta skills repository\ngit clone https://github.com/boltaai/bolta-skills.git\n\n# Or download the latest release\ncurl -L https://github.com/boltaai/bolta-skills/archive/refs/heads/main.zip -o bolta-skills.zip\nunzip bolta-skills.zip\n\n\nWhat You Get:\n\nbolta-skills/\n├── README.md                    # ⭐ START HERE - Complete getting started guide\n├── skills/\n│   ├── bolta.skills.index/      # ✅ You're here (registry)\n│   ├── voice-plane/\n│   │   ├── bolta.voice.bootstrap/\n│   │   ├── bolta.voice.learn_from_samples/\n│   │   ├── bolta.voice.evolve/\n│   │   └── bolta.voice.validate/\n│   ├── content-plane/\n│   │   ├── bolta.draft.post/\n│   │   ├── bolta.loop.from_template/\n│   │   ├── bolta.week.plan/\n│   │   ├── bolta.content.repurpose/\n│   │   └── bolta.content.thread_builder/\n│   ├── review-plane/\n│   │   ├── bolta.inbox.triage/\n│   │   ├── bolta.review.digest/\n│   │   ├── bolta.review.approve_and_route/\n│   │   ├── bolta.review.suggest_edits/\n│   │   └── bolta.review.compliance_check/\n│   ├── automation-plane/\n│   │   ├── bolta.cron.generate_to_review/\n│   │   ├── bolta.cron.generate_and_schedule/\n│   │   ├── bolta.recurring.from_template/\n│   │   ├── bolta.auto.respond_to_trending/\n│   │   └── bolta.auto.content_gap_fill/\n│   └── control-plane/\n│       ├── bolta.team.create_agent_teammate/\n│       ├── bolta.team.rotate_key/\n│       ├── bolta.policy.explain/\n│       ├── bolta.audit.export_activity/\n│       ├── bolta.quota.status/\n│       └── bolta.workspace.config/\n├── docs/\n│   ├── getting-started.md       # Quickstart guide\n│   ├── autonomy-modes.md        # Understanding autonomy levels\n│   ├── safe-mode.md             # Safe Mode deep dive\n│   ├── quotas.md                # Quota enforcement guide\n│   └── voice-versioning.md      # Voice profile evolution\n└── examples/\n    ├── basic-workflow.md        # Common usage patterns\n    ├── automation-setup.md      # Setting up cron jobs\n    └── multi-agent.md           # Managing multiple agents\n\n\nOption 2: Install Individual Skills (Manual)\n\nIf you only need specific skills, install them individually:\n\n# Install voice bootstrap skill\ncurl -L https://raw.githubusercontent.com/boltaai/bolta-skills/main/skills/voice-plane/bolta.voice.bootstrap/SKILL.md \\\n  -o bolta.voice.bootstrap.md\n\n# Install draft post skill\ncurl -L https://raw.githubusercontent.com/boltaai/bolta-skills/main/skills/content-plane/bolta.draft.post/SKILL.md \\\n  -o bolta.draft.post.md\n\n📖 First Run: Read the README\n\nIMPORTANT: After installation, read the README for complete setup instructions.\n\nQuick Start Commands:\n\n# After cloning/downloading the skill pack:\ncd bolta-skills\n\n# Read the README (contains critical setup steps)\ncat README.md\n\n# Or open in your editor\ncode README.md  # VS Code\nvim README.md   # Vim\n\n\nWhat the README Covers: 3. ✅ Environment variable configuration 4. ✅ First skill execution (test workflow) 5. ✅ Troubleshooting common issues 6. ✅ Recommended skill installation order 7. ✅ Best practices for production use\n\nCritical README Sections:\n\n## README.md Structure\n\n### Quick Start\n- Installation steps\n- API key setup\n- First skill test\n\n### Skill Planes Overview\n- What each plane does\n- When to use each skill\n- Skill dependencies\n\n### Configuration\n- MCP server setup for Claude Desktop\n- Environment variables\n- Workspace policy settings\n\n### Common Workflows\n- Create first post (voice → draft → review)\n- Set up automation (cron jobs)\n- Multi-agent teams\n\n### Troubleshooting\n- API connection errors\n- Permission issues\n- Quota problems\n\n### Security\n- API key rotation\n- Least-privilege permissions\n- Audit logging\n\n### Advanced Topics\n- Custom skill development\n- Skill chaining\n- Performance optimization\n\n🚀 Recommended First-Run Flow\n\nAfter installing the skill pack:\n\nStep 1: Read Documentation\n\n# Must-read files in order:\n1. README.md              # Complete getting started guide\n2. docs/getting-started.md # Quickstart tutorial\n3. docs/autonomy-modes.md  # Understand autonomy levels\n4. docs/safe-mode.md       # Understand safety controls\n\n\nStep 2: Verify Installation\n\n# Check that all skills are present\nls -la skills/*/SKILL.md\n\n# Should see 21+ skills across 5 planes\n# If missing skills, re-run installation\n\n\nStep 3: Configure Agent\n\n# Set environment variables (from README)\nexport BOLTA_API_KEY=\"sk_live_...\"\nexport BOLTA_WORKSPACE_ID=\"...\"\n\n# Test API connectivity\ncurl https://platty.boltathread.com/v1/workspaces/${BOLTA_WORKSPACE_ID} \\\n  -H \"Authorization: Bearer ${BOLTA_API_KEY}\"\n\n# Expected: 200 OK with workspace details\n\n\n**Step 5: Install Recommended Skills**\n```bash\n# The registry will recommend skills based on your:\n# - Safe Mode setting\n# - Autonomy mode\n# - User role\n# - Current quotas\n\n# Follow recommendations to install your first skill set\n\n⚠️ Common First-Run Mistakes\n\nMistake 1: Skipping the README\n\n❌ Installing skills without reading README\n✅ Read README.md first → understand workflows → install skills\n\n\nMistake 2: Missing Environment Variables\n\n❌ Running skills without BOLTA_API_KEY set\n✅ Configure env vars BEFORE running any skill\n\n\nMistake 3: Installing Skills Out of Order\n\n❌ Running bolta.draft.post before creating voice profile\n✅ Follow recommended order: voice.bootstrap → draft.post → review\n\n\nMistake 4: Not Understanding Autonomy Modes\n\n❌ Using autopilot mode without understanding routing\n✅ Read docs/autonomy-modes.md → start with \"assisted\" → graduate to \"managed\"\n\n\nMistake 5: Hardcoding API Keys\n\n❌ Putting API keys directly in skill files\n✅ Use environment variables → .env file → add .env to .gitignore\n\n📥 Post-Installation Checklist\n\nAfter installing the skill pack, verify:\n\n ✅ README.md has been read\n ✅ Environment variables configured (BOLTA_API_KEY, BOLTA_WORKSPACE_ID)\n ✅ All 21+ skills present in skills/ directory\n ✅ docs/ directory contains markdown files\n ✅ API connectivity verified (test curl command works)\n ✅ MCP server installed (if using Claude Desktop)\n ✅ Workspace policy reviewed (safe_mode, autonomy_mode)\n ✅ First skill executed successfully (test run)\n ✅ Autonomy mode documentation read (docs/autonomy-modes.md)\n ✅ Safe Mode documentation read (docs/safe-mode.md)\n\nOnce all items are checked, you're ready to use the full Bolta skill library!\n\nNext Steps After Setup\n\nOnce your API is configured:\n\nCreate Voice Profile (if new workspace)\n\nRun: bolta.voice.bootstrap\n→ Establishes your brand voice\n\n\nTest Content Creation\n\nRun: bolta.draft.post\n→ Creates a test post in Draft status\n\n\nInstall Recommended Skills\n\nRun: bolta.skills.index\n→ Returns personalized skill recommendations\n\n\nConfigure Workspace Policy\n\nReview: Safe Mode (ON/OFF)\nReview: Autonomy Mode (assisted/managed/autopilot)\nSet: Daily quota limits\n\nArchitecture: The Five Planes\n\nSkills are organized into planes — logical groupings that separate concerns and enable modular capability composition.\n\nVoice Plane\n\nPurpose: Brand voice creation, evolution, and validation\n\nVoice is the foundation of all content operations. These skills help establish, refine, and maintain consistent brand voice across all generated content.\n\nCore Principle: Voice should be learned from examples, validated against real content, and evolved over time.\n\nSkills:\n\nbolta.voice.bootstrap - Interactive voice profile creation from scratch\nbolta.voice.learn_from_samples - Extract voice patterns from existing content\nbolta.voice.evolve - Refine voice based on approved posts\nbolta.voice.validate - Score content against voice profile (0-100)\n\nTypical Flow:\n\nBootstrap initial voice profile\nLearn from sample content\nValidate generated content\nEvolve voice as brand matures\nContent Plane\n\nPurpose: Content creation, planning, and scheduling\n\nThe execution layer for post creation. These skills transform ideas into scheduled social media posts.\n\nCore Principle: Content should be intentional, planned, and aligned with voice.\n\nSkills:\n\nbolta.draft.post - Create a single post in Draft status\nbolta.loop.from_template - Generate multiple posts from a template\nbolta.week.plan - Plan a week's worth of content with scheduling\nbolta.content.repurpose - Transform long-form content into social posts\nbolta.content.thread_builder - Create multi-post threads (Twitter, LinkedIn)\n\nOutput: Draft or Scheduled posts (subject to Safe Mode routing)\n\nReview Plane\n\nPurpose: Human-in-the-loop review and approval workflows\n\nEnables teams to review, approve, and refine agent-generated content before publishing.\n\nCore Principle: Autonomy with oversight — agents generate, humans decide.\n\nSkills:\n\nbolta.inbox.triage - Organize pending posts by priority/topic\nbolta.review.digest - Daily summary of posts awaiting review\nbolta.review.approve_and_route - Bulk approve + schedule posts\nbolta.review.suggest_edits - AI-powered improvement suggestions\nbolta.review.compliance_check - Flag posts for policy violations\n\nTypical Flow:\n\nAgent creates posts → Pending Approval\nreview.digest sends daily summary\nHuman reviews via inbox.triage\nBulk approve via approve_and_route\nAutomation Plane\n\nPurpose: Scheduled, recurring, and autonomous content generation\n\nThe autonomy layer. These skills enable hands-off content operations with guardrails.\n\nCore Principle: Predictable automation with quota enforcement and safety nets.\n\nSkills:\n\nbolta.cron.generate_to_review - Daily content generation → Pending Approval\nbolta.cron.generate_and_schedule - Autonomous scheduling (requires Safe Mode OFF)\nbolta.recurring.from_template - Recurring posts (daily tips, weekly roundups)\nbolta.auto.respond_to_trending - Auto-generate posts from trending topics\nbolta.auto.content_gap_fill - Detect scheduling gaps and auto-fill\n\nSafety Guardrails:\n\nQuota enforcement (max posts/day, max API requests/hour)\nJob run tracking (observability for all executions)\nAutonomy mode compatibility checks\nSafe Mode routing (autopilot incompatible with Safe Mode ON)\nControl Plane\n\nPurpose: Workspace governance, policy, and audit\n\nThe management layer for teams, permissions, security, and compliance.\n\nCore Principle: Visibility and control for workspace administrators.\n\nSkills:\n\nbolta.team.create_agent_teammate - Provision agent principals with specific roles\nbolta.team.rotate_key - Rotate API keys for security\nbolta.policy.explain - Explain authorization decisions (\"Why was this blocked?\")\nbolta.audit.export_activity - Export audit logs (PostActivity, JobRuns)\nbolta.quota.status - View current quota usage (daily posts, hourly API calls)\nbolta.workspace.config - View/update autonomy mode, Safe Mode, quotas\n\nTypical Use Cases:\n\nOnboarding new team members (human or agent)\nInvestigating authorization failures\nCompliance reporting (SOC2, GDPR data exports)\nQuota monitoring and adjustment\nFull Skill Index\nVoice Plane Skills\nbolta.voice.bootstrap\n\nPath: skills/voice-plane/bolta.voice.bootstrap/SKILL.md Purpose: Interactive voice profile creation wizard Inputs: Brand name, industry, target audience Outputs: Complete VoiceProfile (tone, dos, don'ts, constraints) Permissions: voice:write Safe Mode: Compatible Typical Duration: 5-10 minutes (interactive)\n\nbolta.voice.learn_from_samples\n\nPath: skills/voice-plane/bolta.voice.learn_from_samples/SKILL.md Purpose: Extract voice patterns from existing content Inputs: URLs or text samples (3-10 examples) Outputs: Voice profile draft with auto-detected patterns Permissions: voice:write Safe Mode: Compatible Typical Duration: 2-3 minutes\n\nbolta.voice.evolve\n\nPath: skills/voice-plane/bolta.voice.evolve/SKILL.md Purpose: Refine voice based on approved posts Inputs: Date range for approved posts Outputs: Updated VoiceProfile (version incremented) Permissions: voice:write, posts:read Safe Mode: Compatible Typical Duration: 1-2 minutes Note: Creates new VoiceProfileVersion snapshot\n\nbolta.voice.validate\n\nPath: skills/voice-plane/bolta.voice.validate/SKILL.md Purpose: Score content against voice profile Inputs: Post ID or content text Outputs: Compliance score (0-100), deviation report Permissions: voice:read, posts:read Safe Mode: Compatible Typical Duration: < 30 seconds\n\nContent Plane Skills\nbolta.draft.post\n\nPath: skills/content-plane/bolta.draft.post/SKILL.md Purpose: Create a single post in Draft status Inputs: Topic, platform(s), optional voice profile ID Outputs: Post ID (Draft status) Permissions: posts:write Safe Mode: Always routes to Draft Autonomy Mode: Respects assisted/managed routing Quota Impact: +1 to daily post count Typical Duration: 30-60 seconds\n\nbolta.loop.from_template\n\nPath: skills/content-plane/bolta.loop.from_template/SKILL.md Purpose: Generate multiple posts from a template Inputs: Template ID, count (1-50), variation parameters Outputs: Array of Post IDs Permissions: posts:write, templates:read Safe Mode: Routes all posts to Draft Quota Impact: +N to daily post count (checked before execution) Typical Duration: 1-3 minutes (depends on count) Note: Uses JobRun tracking for observability\n\nbolta.week.plan\n\nPath: skills/content-plane/bolta.week.plan/SKILL.md Purpose: Plan a week's content with scheduling Inputs: Start date, posting frequency, themes Outputs: 7-day content calendar with scheduled posts Permissions: posts:write, posts:schedule Safe Mode: Routes to Pending Approval if ON Autonomy Mode: Respects managed/autopilot routing Quota Impact: +5-15 to daily post count (spread across week) Typical Duration: 3-5 minutes\n\nbolta.content.repurpose\n\nPath: skills/content-plane/bolta.content.repurpose/SKILL.md Purpose: Transform long-form content into social posts Inputs: Blog URL or full text, target platforms Outputs: Multiple platform-specific posts Permissions: posts:write Safe Mode: Routes to Draft Typical Duration: 2-4 minutes\n\nbolta.content.thread_builder\n\nPath: skills/content-plane/bolta.content.thread_builder/SKILL.md Purpose: Create multi-post threads Inputs: Topic, thread length (2-10 posts), platform Outputs: Linked post sequence Permissions: posts:write Safe Mode: Routes to Draft Typical Duration: 1-2 minutes\n\nReview Plane Skills\nbolta.inbox.triage\n\nPath: skills/review-plane/bolta.inbox.triage/SKILL.md Purpose: Organize pending posts by priority Inputs: Optional filters (platform, date range) Outputs: Categorized list of posts awaiting review Permissions: posts:read, posts:review Safe Mode: N/A (read-only) Typical Duration: < 10 seconds\n\nbolta.review.digest\n\nPath: skills/review-plane/bolta.review.digest/SKILL.md Purpose: Daily summary of posts awaiting review Inputs: None (workspace context) Outputs: Formatted summary with quick approve links Permissions: posts:read, posts:review Safe Mode: N/A (read-only) Typical Duration: < 5 seconds Note: Designed for cron execution (daily 9am)\n\nbolta.review.approve_and_route\n\nPath: skills/review-plane/bolta.review.approve_and_route/SKILL.md Purpose: Bulk approve and schedule posts Inputs: Post IDs or filter criteria Outputs: Updated post statuses Permissions: posts:write, posts:approve, posts:schedule Safe Mode: N/A (human override) Typical Duration: < 30 seconds Note: Bypasses Safe Mode (human decision)\n\nbolta.review.suggest_edits\n\nPath: skills/review-plane/bolta.review.suggest_edits/SKILL.md Purpose: AI-powered improvement suggestions Inputs: Post ID Outputs: Suggested edits with rationale Permissions: posts:read, voice:read Safe Mode: N/A (read-only) Typical Duration: < 30 seconds\n\nbolta.review.compliance_check\n\nPath: skills/review-plane/bolta.review.compliance_check/SKILL.md Purpose: Flag posts for policy violations Inputs: Post ID or bulk filter Outputs: Compliance report with severity flags Permissions: posts:read, policies:read Safe Mode: N/A (read-only) Typical Duration: < 10 seconds\n\nAutomation Plane Skills\nbolta.cron.generate_to_review\n\nPath: skills/automation-plane/bolta.cron.generate_to_review/SKILL.md Purpose: Daily content generation → Pending Approval Inputs: None (uses workspace settings) Outputs: Posts in Pending Approval status Permissions: posts:write, cron:execute Safe Mode: Compatible (routes to Pending Approval) Autonomy Mode: Recommended for managed/governance Quota Impact: +3-10 posts/day (configurable) Typical Duration: 2-5 minutes Execution: Daily cron (configurable time)\n\nbolta.cron.generate_and_schedule\n\nPath: skills/automation-plane/bolta.cron.generate_and_schedule/SKILL.md Purpose: Autonomous scheduling (no human review) Inputs: None (uses workspace settings) Outputs: Posts in Scheduled status Permissions: posts:write, posts:schedule, cron:execute Safe Mode: INCOMPATIBLE (requires Safe Mode OFF) Autonomy Mode: REQUIRES autopilot Quota Impact: +5-15 posts/day (configurable) Typical Duration: 3-7 minutes Execution: Daily cron (configurable time) Warning: Bypasses human review — use with caution\n\nbolta.recurring.from_template\n\nPath: skills/automation-plane/bolta.recurring.from_template/SKILL.md Purpose: Recurring posts (daily tips, weekly roundups) Inputs: Template ID, recurrence pattern (daily/weekly/monthly) Outputs: RecurringPostReview record + scheduled posts Permissions: posts:write, templates:read Safe Mode: Respects routing Quota Impact: +N posts per recurrence Typical Duration: 1-2 minutes (setup)\n\nbolta.auto.respond_to_trending\n\nPath: skills/automation-plane/bolta.auto.respond_to_trending/SKILL.md Purpose: Auto-generate posts from trending topics Inputs: Trending topic sources (Twitter, Google Trends) Outputs: Posts related to current trends Permissions: posts:write, integrations:read Safe Mode: Routes to Pending Approval Quota Impact: +1-5 posts/day Typical Duration: 2-3 minutes\n\nbolta.auto.content_gap_fill\n\nPath: skills/automation-plane/bolta.auto.content_gap_fill/SKILL.md Purpose: Detect scheduling gaps and auto-fill Inputs: Date range to analyze Outputs: Posts to fill detected gaps Permissions: posts:write, posts:read Safe Mode: Routes to Pending Approval Quota Impact: Variable (based on gaps detected) Typical Duration: 3-5 minutes\n\nControl Plane Skills\nbolta.team.create_agent_teammate\n\nPath: skills/control-plane/bolta.team.create_agent_teammate/SKILL.md Purpose: Provision agent principals with roles Inputs: Agent name, role (creator/editor/reviewer), permissions Outputs: AgentPrincipal record + API key Permissions: workspace:admin, agents:create Safe Mode: N/A (admin operation) Role Required: Owner or Admin Typical Duration: < 30 seconds\n\nbolta.team.rotate_key\n\nPath: skills/control-plane/bolta.team.rotate_key/SKILL.md Purpose: Rotate API keys for security Inputs: API key ID or agent ID Outputs: New API key (old key revoked) Permissions: workspace:admin, agents:manage Safe Mode: N/A (admin operation) Role Required: Owner or Admin Typical Duration: < 10 seconds Note: Old key immediately invalidated\n\nbolta.policy.explain\n\nPath: skills/control-plane/bolta.policy.explain/SKILL.md Purpose: Explain authorization decisions Inputs: Action attempt (e.g., \"Why can't I publish?\") Outputs: Policy analysis with specific blockers Permissions: None (informational) Safe Mode: N/A (read-only) Typical Duration: < 5 seconds Use Case: Troubleshooting \"Access Denied\" errors\n\nbolta.audit.export_activity\n\nPath: skills/control-plane/bolta.audit.export_activity/SKILL.md Purpose: Export audit logs Inputs: Date range, filters (principal, action type, denied actions) Outputs: CSV or JSON export of PostActivity records Permissions: workspace:admin, audit:read Safe Mode: N/A (admin operation) Role Required: Owner or Admin Typical Duration: < 30 seconds Use Case: Compliance reporting, SOC2 audits\n\nbolta.quota.status\n\nPath: skills/control-plane/bolta.quota.status/SKILL.md Purpose: View current quota usage Inputs: None (workspace context) Outputs: Daily post count, hourly API usage, limits, percentage Permissions: workspace:read Safe Mode: N/A (read-only) Typical Duration: < 5 seconds\n\nbolta.workspace.config\n\nPath: skills/control-plane/bolta.workspace.config/SKILL.md Purpose: View/update workspace settings Inputs: Settings to update (autonomy_mode, safe_mode, quotas) Outputs: Updated workspace configuration Permissions: workspace:admin Safe Mode: N/A (admin operation) Role Required: Owner or Admin Typical Duration: < 10 seconds Warning: Changing autonomy mode affects all agent operations\n\nRecommended Install Sets\n\nInstall sets are curated skill bundles tailored to specific autonomy modes and use cases.\n\nAssisted Mode Install Set\n\nAutonomy Level: Low (maximum human control) Safe Mode: Must be ON Use Case: New users, high-stakes brands, learning Bolta\n\nSkills:\n\nbolta.voice.bootstrap - Set up initial voice profile\nbolta.draft.post - Create individual posts (always Draft)\nbolta.loop.from_template - Scale content creation safely\nbolta.week.plan - Plan content calendar\n\nRationale: Assisted mode prioritizes learning and control. All content goes to Draft for manual review before scheduling. Ideal for:\n\nTeams new to AI content generation\nBrands with strict compliance requirements\nUsers who want to learn Bolta patterns before automating\n\nExpected Workflow:\n\nBootstrap voice profile\nCreate posts in Draft (manually or via templates)\nHuman reviews and schedules each post\nGraduate to Managed when comfortable\nManaged Mode Install Set\n\nAutonomy Level: Medium (guided automation with oversight) Safe Mode: ON (recommended) or OFF Use Case: Established users, moderate volume, review workflows\n\nSkills:\n\nAll Assisted skills +\nbolta.inbox.triage - Organize posts for review\nbolta.review.digest - Daily review summaries\nbolta.review.approve_and_route - Bulk approval workflow\nbolta.voice.validate - Quality scoring\nbolta.cron.generate_to_review - Daily automated generation\n\nRationale: Managed mode balances efficiency with oversight. Agent generates content autonomously, but humans approve before publishing. Ideal for:\n\nTeams with 1-2 reviewers\nBrands publishing 3-10 posts/day\nUsers who trust the voice profile\n\nExpected Workflow:\n\nAgent generates posts overnight (via cron) → Pending Approval\nDaily digest arrives at 9am\nReviewer triages inbox, validates voice compliance\nBulk approve/schedule approved posts\nRefine voice profile based on patterns\nAutopilot Mode Install Set\n\nAutonomy Level: High (hands-off automation) Safe Mode: Must be OFF (incompatible) Use Case: High volume, trusted voice, minimal oversight\n\nSkills:\n\nAll Managed skills +\nbolta.cron.generate_and_schedule - Autonomous scheduling\nbolta.auto.respond_to_trending - Trend-based posting\nbolta.auto.content_gap_fill - Auto-fill scheduling gaps\nbolta.recurring.from_template - Recurring post automation\nbolta.quota.status - Monitor quota usage\n\nRationale: Autopilot mode maximizes efficiency for high-volume operations. Agent schedules directly without human approval. Ideal for:\n\nEstablished brands with proven voice profiles\nHigh-frequency posting (10+ posts/day)\nTeams with minimal manual review capacity\n\nExpected Workflow:\n\nAgent generates and schedules posts automatically\nQuota enforcement prevents runaway generation\nPeriodic voice validation checks (weekly)\nHuman reviews published analytics, adjusts strategy\n\nWarning: Autopilot bypasses human review. Only use with:\n\nWell-tested voice profiles (version 5+)\nQuota limits configured (max 20 posts/day recommended)\nRegular validation spot-checks (review 10% of published posts)\nGovernance Mode Install Set\n\nAutonomy Level: N/A (control & audit focused) Safe Mode: N/A Use Case: Admins, compliance teams, workspace management\n\nSkills:\n\nbolta.policy.explain - Authorization troubleshooting\nbolta.audit.export_activity - Compliance exports\nbolta.team.create_agent_teammate - Agent provisioning\nbolta.team.rotate_key - Security operations\nbolta.workspace.config - Workspace administration\nbolta.quota.status - Usage monitoring\nbolta.voice.validate - Quality auditing\n\nRationale: Governance mode is not an autonomy level — it's a control plane install set for administrators. Ideal for:\n\nWorkspace owners managing teams\nCompliance officers conducting audits\nSecurity teams rotating keys\nAdmins troubleshooting authorization issues\n\nExpected Workflow:\n\nOnboard new team members (human or agent)\nConfigure workspace policies (Safe Mode, autonomy, quotas)\nMonitor quota usage and adjust limits\nExport audit logs for compliance reporting\nRotate API keys on schedule (e.g., quarterly)\nInvestigate authorization failures via policy.explain\nDecision Matrix: Skill Recommendations\n\nThis matrix determines which skills to recommend based on workspace context.\n\nInput Variables\nSafe Mode (ON/OFF)\nAutonomy Mode (assisted/managed/autopilot/governance)\nUser Role (owner/admin/editor/creator/reviewer/viewer)\nAgent Permissions (if principal is agent)\nWorkspace Quotas (daily post limit, hourly API limit)\nVoice Profile Status (exists, version number)\nDecision Rules\nRule 1: Voice Bootstrapping (First-Time Setup)\nIF voice_profile_count == 0:\n  RECOMMEND: bolta.voice.bootstrap (HIGH PRIORITY)\n  RATIONALE: Cannot create content without voice profile\n\nRule 2: Safe Mode + Autopilot Incompatibility\nIF safe_mode == ON AND autonomy_mode == \"autopilot\":\n  ERROR: Incompatible configuration\n  RECOMMEND: Either disable Safe Mode OR switch to \"managed\"\n  RATIONALE: Autopilot bypasses review; contradicts Safe Mode intent\n\nRule 3: Agent Permission Gating\nIF principal_type == \"agent\":\n  IF agent.permissions NOT IN required_permissions:\n    EXCLUDE: Skills requiring missing permissions\n    RECOMMEND: bolta.policy.explain to understand blockers\n\nRule 4: Role-Based Filtering\nIF role IN [\"viewer\", \"reviewer\"]:\n  EXCLUDE: All write operations (posts:write, voice:write)\n  INCLUDE: Read-only skills (audit.export, policy.explain)\n\nIF role IN [\"creator\", \"editor\"]:\n  INCLUDE: Content plane skills\n  EXCLUDE: Control plane skills (team.*, workspace.config)\n\nIF role IN [\"admin\", \"owner\"]:\n  INCLUDE: All skills (no restrictions)\n\nRule 5: Quota-Based Warnings\nIF daily_posts_used >= (daily_post_limit * 0.8):\n  WARN: \"Approaching daily quota limit\"\n  RECOMMEND: bolta.quota.status to view usage\n\nIF daily_posts_used >= daily_post_limit:\n  BLOCK: All posts:write skills\n  RECOMMEND: Increase quota via bolta.workspace.config\n\nRule 6: Autonomy Mode Routing\nIF autonomy_mode == \"assisted\":\n  INCLUDE: Content plane (draft only)\n  EXCLUDE: Automation plane (no cron jobs)\n\nIF autonomy_mode == \"managed\":\n  INCLUDE: Content + Review planes\n  INCLUDE: bolta.cron.generate_to_review (safe automation)\n  EXCLUDE: bolta.cron.generate_and_schedule (requires autopilot)\n\nIF autonomy_mode == \"autopilot\":\n  INCLUDE: All automation skills\n  REQUIRE: Safe Mode OFF\n  RECOMMEND: Quota monitoring (quota.status)\n\nRegistry Flow (Detailed)\nStep 1: Gather Workspace Context\n\nAPI Call: GET /api/v1/workspaces/{workspace_id}\n\nExtract:\n\nsafe_mode (boolean)\nautonomy_mode (assisted/managed/autopilot/governance)\nmax_posts_per_day (int, nullable)\nmax_api_requests_per_hour (int, nullable)\nStep 2: Identify Principal\n\nAPI Call: GET /api/v1/me or use request context\n\nExtract:\n\nprincipal_type (user or agent)\nrole (owner/admin/editor/creator/reviewer/viewer)\nIf agent: permissions array, autonomy_override\nStep 3: Check Voice Profile Status\n\nAPI Call: GET /api/v1/workspaces/{workspace_id}/voice-profiles\n\nExtract:\n\nvoice_profile_count (0 = needs bootstrap)\nLatest version (higher version = more refined)\nstatus (active/draft/archived)\nStep 4: Check Quota Usage\n\nAPI Call: GET /api/v1/workspaces/{workspace_id}/quota-status (via bolta.quota.status)\n\nExtract:\n\ndaily_posts.used / daily_posts.limit\nhourly_api_requests.used / hourly_api_requests.limit\nStep 5: Apply Decision Rules\n\nRun through decision matrix (see above) to filter skills.\n\nOutput:\n\nrecommended_skills - Array of skill slugs\nexcluded_skills - Array with exclusion reasons\nwarnings - Array of configuration issues\nStep 6: Return Structured Response\n{\n  \"workspace_id\": \"uuid\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"editor\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 3,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\n      \"used\": 12,\n      \"limit\": 100,\n      \"percentage\": 12\n    },\n    \"hourly_api_requests\": {\n      \"used\": 45,\n      \"limit\": 1000,\n      \"percentage\": 4.5\n    }\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\",\n    \"bolta.week.plan\",\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.cron.generate_to_review\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.cron.generate_and_schedule\",\n      \"reason\": \"Requires autonomy_mode=autopilot (current: managed)\"\n    },\n    {\n      \"skill\": \"bolta.workspace.config\",\n      \"reason\": \"Requires role owner/admin (current: editor)\"\n    }\n  ],\n  \"warnings\": [],\n  \"next_steps\": [\n    \"Install recommended skills via MCP or API\",\n    \"Run bolta.voice.validate to check content quality\",\n    \"Configure daily digest via bolta.review.digest\"\n  ]\n}\n\nOutput Examples\nExample 1: New Workspace (First-Time Setup)\n{\n  \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"assisted\",\n  \"role\": \"owner\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": false,\n    \"version\": 0,\n    \"status\": null\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 0, \"limit\": 100, \"percentage\": 0},\n    \"hourly_api_requests\": {\"used\": 0, \"limit\": 1000, \"percentage\": 0}\n  },\n  \"recommended_mode\": \"assisted\",\n  \"recommended_skills\": [\n    \"bolta.voice.bootstrap\"\n  ],\n  \"excluded_skills\": [],\n  \"warnings\": [\n    {\n      \"type\": \"missing_voice_profile\",\n      \"message\": \"No voice profile found. Run bolta.voice.bootstrap to get started.\",\n      \"severity\": \"high\"\n    }\n  ],\n  \"next_steps\": [\n    \"1. Run bolta.voice.bootstrap to create your brand voice\",\n    \"2. After voice setup, install content plane skills\",\n    \"3. Create your first post with bolta.draft.post\"\n  ]\n}\n\nExample 2: Managed Mode (Typical Production)\n{\n  \"workspace_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"admin\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 5,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 18, \"limit\": 50, \"percentage\": 36},\n    \"hourly_api_requests\": {\"used\": 142, \"limit\": 1000, \"percentage\": 14.2}\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\",\n    \"bolta.week.plan\",\n    \"bolta.content.repurpose\",\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.voice.evolve\",\n    \"bolta.cron.generate_to_review\",\n    \"bolta.team.create_agent_teammate\",\n    \"bolta.audit.export_activity\",\n    \"bolta.quota.status\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.cron.generate_and_schedule\",\n      \"reason\": \"Requires autonomy_mode=autopilot AND safe_mode=OFF\"\n    }\n  ],\n  \"warnings\": [],\n  \"next_steps\": [\n    \"Configure daily content generation via bolta.cron.generate_to_review\",\n    \"Set up review workflow with digest notifications\",\n    \"Consider voice evolution (version 5 is mature)\"\n  ]\n}\n\nExample 3: Autopilot Mode (High Volume)\n{\n  \"workspace_id\": \"770e8400-e29b-41d4-a716-446655440002\",\n  \"safe_mode\": false,\n  \"autonomy_mode\": \"autopilot\",\n  \"role\": \"owner\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 12,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 47, \"limit\": 200, \"percentage\": 23.5},\n    \"hourly_api_requests\": {\"used\": 523, \"limit\": 2000, \"percentage\": 26.15}\n  },\n  \"recommended_mode\": \"autopilot\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\",\n    \"bolta.week.plan\",\n    \"bolta.content.repurpose\",\n    \"bolta.content.thread_builder\",\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.voice.evolve\",\n    \"bolta.cron.generate_to_review\",\n    \"bolta.cron.generate_and_schedule\",\n    \"bolta.auto.respond_to_trending\",\n    \"bolta.auto.content_gap_fill\",\n    \"bolta.recurring.from_template\",\n    \"bolta.quota.status\",\n    \"bolta.workspace.config\"\n  ],\n  \"excluded_skills\": [],\n  \"warnings\": [\n    {\n      \"type\": \"high_autonomy\",\n      \"message\": \"Autopilot mode bypasses human review. Monitor quota usage and validate voice compliance regularly.\",\n      \"severity\": \"medium\"\n    },\n    {\n      \"type\": \"quota_usage\",\n      \"message\": \"Daily quota at 23.5% usage. Consider monitoring trends to avoid hitting limit.\",\n      \"severity\": \"low\"\n    }\n  ],\n  \"next_steps\": [\n    \"Monitor quota usage daily via bolta.quota.status\",\n    \"Run voice validation spot-checks (10% of published posts)\",\n    \"Review JobRun stats weekly for error trends\"\n  ]\n}\n\nExample 4: Agent Principal (API Key)\n{\n  \"workspace_id\": \"880e8400-e29b-41d4-a716-446655440003\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"creator\",\n  \"principal_type\": \"agent\",\n  \"agent\": {\n    \"id\": \"agent-uuid\",\n    \"name\": \"Content Bot\",\n    \"permissions\": [\"posts:write\", \"posts:read\", \"templates:read\"],\n    \"autonomy_override\": null\n  },\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 7,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 8, \"limit\": 30, \"percentage\": 26.67},\n    \"hourly_api_requests\": {\"used\": 67, \"limit\": 500, \"percentage\": 13.4}\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.draft.post\",\n    \"bolta.loop.from_template\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.week.plan\",\n      \"reason\": \"Requires posts:schedule permission (agent lacks this)\"\n    },\n    {\n      \"skill\": \"bolta.review.approve_and_route\",\n      \"reason\": \"Requires posts:approve permission (agent lacks this)\"\n    },\n    {\n      \"skill\": \"bolta.voice.evolve\",\n      \"reason\": \"Requires voice:write permission (agent lacks this)\"\n    },\n    {\n      \"skill\": \"bolta.workspace.config\",\n      \"reason\": \"Requires workspace:admin permission (agent role: creator)\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"limited_permissions\",\n      \"message\": \"Agent has limited permissions. Some skills are unavailable.\",\n      \"severity\": \"info\"\n    }\n  ],\n  \"next_steps\": [\n    \"Use bolta.draft.post to create content\",\n    \"Use bolta.loop.from_template for batch generation\",\n    \"Human reviewers should use bolta.review.approve_and_route to publish\"\n  ]\n}\n\nExample 5: Quota Limit Reached\n{\n  \"workspace_id\": \"990e8400-e29b-41d4-a716-446655440004\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"managed\",\n  \"role\": \"editor\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 4,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 100, \"limit\": 100, \"percentage\": 100},\n    \"hourly_api_requests\": {\"used\": 234, \"limit\": 1000, \"percentage\": 23.4}\n  },\n  \"recommended_mode\": \"managed\",\n  \"recommended_skills\": [\n    \"bolta.inbox.triage\",\n    \"bolta.review.digest\",\n    \"bolta.review.approve_and_route\",\n    \"bolta.voice.validate\",\n    \"bolta.quota.status\",\n    \"bolta.policy.explain\"\n  ],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"bolta.draft.post\",\n      \"reason\": \"Daily quota limit reached (100/100 posts)\"\n    },\n    {\n      \"skill\": \"bolta.loop.from_template\",\n      \"reason\": \"Daily quota limit reached (100/100 posts)\"\n    },\n    {\n      \"skill\": \"bolta.week.plan\",\n      \"reason\": \"Daily quota limit reached (100/100 posts)\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"quota_exceeded\",\n      \"message\": \"Daily post quota limit reached. No new posts can be created until tomorrow (resets at UTC midnight).\",\n      \"severity\": \"high\"\n    }\n  ],\n  \"next_steps\": [\n    \"Review and approve existing posts in queue\",\n    \"Consider increasing daily quota via bolta.workspace.config (admin only)\",\n    \"Check quota status at midnight UTC for reset\"\n  ]\n}\n\nExample 6: Incompatible Configuration (Autopilot + Safe Mode)\n{\n  \"workspace_id\": \"aa0e8400-e29b-41d4-a716-446655440005\",\n  \"safe_mode\": true,\n  \"autonomy_mode\": \"autopilot\",\n  \"role\": \"owner\",\n  \"principal_type\": \"user\",\n  \"voice_profile_status\": {\n    \"exists\": true,\n    \"version\": 8,\n    \"status\": \"active\"\n  },\n  \"quota_status\": {\n    \"daily_posts\": {\"used\": 5, \"limit\": 150, \"percentage\": 3.33},\n    \"hourly_api_requests\": {\"used\": 12, \"limit\": 1500, \"percentage\": 0.8}\n  },\n  \"recommended_mode\": \"ERROR\",\n  \"recommended_skills\": [],\n  \"excluded_skills\": [\n    {\n      \"skill\": \"ALL\",\n      \"reason\": \"Incompatible configuration: autopilot mode requires Safe Mode OFF\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"configuration_conflict\",\n      \"message\": \"Autopilot mode is incompatible with Safe Mode ON. Autopilot bypasses human review, which contradicts Safe Mode's intent.\",\n      \"severity\": \"critical\"\n    }\n  ],\n  \"next_steps\": [\n    \"Choose one of the following:\",\n    \"  A) Disable Safe Mode to use autopilot (workspace.config)\",\n    \"  B) Switch to 'managed' autonomy mode to keep Safe Mode ON\",\n    \"Current config blocks all agent operations until resolved.\"\n  ],\n  \"error\": {\n    \"code\": \"INCOMPATIBLE_CONFIGURATION\",\n    \"message\": \"Autopilot autonomy mode requires Safe Mode to be OFF. Please update workspace configuration.\"\n  }\n}\n\nIntegration with Authorization System\n\nThe registry integrates with Bolta's authorization layer to ensure skill recommendations respect workspace policies.\n\nAuthorization Flow Integration\n\nStep 1: Pre-flight Authorization Check Before recommending a skill, check if the principal is authorized:\n\nfrom users.authorization import authorize, PostAction\n\n# Check if user can create posts\nauth_result = authorize(\n    principal_type=\"user\",\n    role=\"editor\",\n    workspace=workspace,\n    action=PostAction.CREATE,\n    requested_status=\"Scheduled\",\n    agent=None  # or agent instance if principal is agent\n)\n\nif not auth_result.allowed:\n    # Exclude skill with reason\n    excluded_skills.append({\n        \"skill\": \"bolta.week.plan\",\n        \"reason\": auth_result.reason\n    })\n\n\nStep 2: Respect Autonomy Mode Routing Skills that create posts must account for autonomy mode routing:\n\n# Autonomy mode routing table\nAUTONOMY_ROUTING = {\n    \"assisted\": {\n        \"Draft\": \"Draft\",           # Always Draft\n        \"Scheduled\": \"Draft\",       # Routed to Draft\n        \"Posted\": \"Draft\"           # Routed to Draft\n    },\n    \"managed\": {\n        \"Draft\": \"Draft\",\n        \"Scheduled\": \"Pending Approval\",  # Routed to review\n        \"Posted\": \"Pending Approval\"      # Routed to review\n    },\n    \"autopilot\": {\n        \"Draft\": \"Draft\",\n        \"Scheduled\": \"Scheduled\",    # No routing (requires Safe Mode OFF)\n        \"Posted\": \"Posted\"           # No routing (requires Safe Mode OFF)\n    },\n    \"governance\": {\n        \"Draft\": \"Pending Approval\",\n        \"Scheduled\": \"Pending Approval\",\n        \"Posted\": \"Pending Approval\"\n    }\n}\n\n# Skills should document expected output status after routing\n\n\nStep 3: Quota Enforcement Skills that create posts must respect quota limits:\n\nfrom posts.quota_enforcement import QuotaEnforcer\n\n# Check quota before recommending bulk operations\nallowed, reason = QuotaEnforcer.check_daily_post_quota(\n    workspace=workspace,\n    count=10  # e.g., bolta.loop.from_template with count=10\n)\n\nif not allowed:\n    excluded_skills.append({\n        \"skill\": \"bolta.loop.from_template\",\n        \"reason\": reason  # e.g., \"Daily quota exceeded (95/100)\"\n    })\n\n\nStep 4: Safe Mode Compatibility Some skills are incompatible with Safe Mode:\n\nSAFE_MODE_INCOMPATIBLE = [\n    \"bolta.cron.generate_and_schedule\",  # Bypasses review\n]\n\nif workspace.safe_mode and skill in SAFE_MODE_INCOMPATIBLE:\n    excluded_skills.append({\n        \"skill\": skill,\n        \"reason\": \"Incompatible with Safe Mode ON (requires human review bypass)\"\n    })\n\nSkill Metadata Schema\n\nEach skill should provide structured metadata for registry indexing:\n\nskill:\n  slug: bolta.draft.post\n  display_name: Draft Post\n  version: 1.2.0\n  plane: content\n\npermissions:\n  required:\n    - posts:write\n  optional:\n    - voice:read  # For voice profile selection\n\ncompatibility:\n  safe_mode: compatible  # compatible | incompatible | n/a\n  autonomy_modes:\n    - assisted\n    - managed\n    - autopilot\n  roles:\n    - owner\n    - admin\n    - editor\n    - creator\n\nquotas:\n  posts_created: 1  # Impact on daily quota\n  api_requests: 2   # Typical API call count\n\ndependencies:\n  required:\n    - voice_profile  # Must have voice profile\n  optional:\n    - templates      # Enhanced with templates\n\nexecution:\n  typical_duration_seconds: 45\n  max_duration_seconds: 120\n  idempotent: true\n  retryable: true\n\noutputs:\n  post_status: Draft  # Before autonomy routing\n  job_tracked: true   # Creates JobRun record\n  audit_logged: true  # Creates PostActivity record\n\nVersion History\n\n0.5.4 (Current) - Version bump\n\n0.5.3 - Installation & First Run Guidance\n\nAdded comprehensive \"Installation & First Run\" section\nAdded complete skill pack installation instructions (git clone, download)\nAdded README.md reading prompt (critical for setup)\nAdded directory structure overview (21+ skills across 5 planes)\nAdded recommended first-run flow (verify → configure → test)\nAdded common first-run mistakes guide (avoid pitfalls)\nAdded post-installation checklist (10-item verification)\nEnhanced discoverability of full skill library\nAddresses user prompt: \"Should we prompt user to install rest of skills from registry?\"\n\n0.5.1 - Security Patch\n\nSECURITY: Added explicit Required Environment Variables section\nSECURITY: Declared BOLTA_API_KEY, BOLTA_WORKSPACE_ID as required\nSECURITY: Added trusted domains list (api.bolta.ai, platty.boltathread.com)\nSECURITY: Enhanced security best practices (rotation, least-privilege, monitoring)\nAdded environment variable configuration examples for all platforms\nAdded credential security reminders throughout documentation\nAddressed security audit finding: \"manifest does not declare required env vars\"\n\n0.5.0\n\nAdded comprehensive Getting Started guide\nAdded Agent API setup instructions (bolta.ai/register)\nAdded setup verification steps\nAdded troubleshooting section for common setup issues\nAdded next steps after agent registration\n\n0.4.0\n\nAdded comprehensive skill descriptions with metadata\nAdded detailed decision matrix and authorization integration\nAdded 6 output examples covering all scenarios\nAdded quota enforcement and compatibility checks\nAdded voice plane skills (validate, evolve)\nAdded automation plane skills (trending, gap-fill)\nAdded control plane skills (quota, workspace config)\nAdded skill metadata schema\n\n0.3.0\n\nAdded recommended install sets (assisted, managed, autopilot, governance)\nAdded plane groupings (voice, content, review, automation, control)\nAdded registry flow documentation\nAdded basic output example\n\n0.2.0\n\nAdded initial skill index\nAdded plane definitions\n\n0.1.0\n\nInitial registry structure\nSupport\n\nFor skill installation issues, contact: support@bolta.ai"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/MaxFritzhand/bolta-skills-index",
    "publisherUrl": "https://clawhub.ai/MaxFritzhand/bolta-skills-index",
    "owner": "MaxFritzhand",
    "version": "0.5.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/bolta-skills-index",
    "downloadUrl": "https://openagent3.xyz/downloads/bolta-skills-index",
    "agentUrl": "https://openagent3.xyz/skills/bolta-skills-index/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bolta-skills-index/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bolta-skills-index/agent.md"
  }
}