Claude
Skills
Sign in
Back

Generate Marketplace

Included with Lifetime
$97 forever

Generate marketplace catalog files from Betty Framework registries

General

What this skill does


# generate.marketplace

## Overview

**generate.marketplace** generates the RiskExec Claude Marketplace catalogs by filtering certified skills, agents, commands, and hooks from the Betty Framework registries. It transforms registry entries into marketplace-ready JSON files optimized for discovery and distribution.

## Purpose

Automates the generation of marketplace catalogs to maintain consistency between:
- **Skill Registry** (`registry/skills.json`) - All registered skills
- **Agent Registry** (`registry/agents.json`) - All registered agents
- **Command Registry** (`registry/commands.json`) - All registered commands
- **Hook Registry** (`registry/hooks.json`) - All registered hooks
- **Skills Marketplace** (`marketplace/skills.json`) - Certified skills for distribution
- **Agents Marketplace** (`marketplace/agents.json`) - Certified agents for distribution
- **Commands Marketplace** (`marketplace/commands.json`) - Certified commands for distribution
- **Hooks Marketplace** (`marketplace/hooks.json`) - Certified hooks for distribution

This eliminates manual curation of marketplace catalogs and ensures only production-ready, certified components are published.

## What It Does

1. **Reads Registries**: Loads `registry/skills.json`, `registry/agents.json`, `registry/commands.json`, and `registry/hooks.json`
2. **Filters Active Items**: Processes only entries with `status: active`
3. **Filters Certified Items**: Includes only entries with `certified: true` (if field exists)
4. **Transforms Format**: Converts registry entries to marketplace format
5. **Enriches Metadata**: Adds maintainer, usage examples, documentation URLs, and last_updated timestamps
6. **Generates Catalogs**: Outputs `marketplace/skills.json`, `marketplace/agents.json`, `marketplace/commands.json`, and `marketplace/hooks.json`
7. **Reports Statistics**: Shows certification counts and totals

## Usage

### Basic Usage

```bash
python skills/generate.marketplace/generate_marketplace.py
```

No arguments required - reads from standard registry locations.

### Via Betty CLI

```bash
/marketplace/generate
```

### Expected Directory Structure

```
betty/
├── registry/
│   ├── skills.json      # Source: All registered skills
│   ├── agents.json      # Source: All registered agents
│   ├── commands.json    # Source: All registered commands
│   └── hooks.json       # Source: All registered hooks
└── marketplace/
    ├── skills.json      # Output: Certified skills only
    ├── agents.json      # Output: Certified agents only
    ├── commands.json    # Output: Certified commands only
    └── hooks.json       # Output: Certified hooks only
```

## Filtering Logic

### Certification Criteria

A skill, agent, command, or hook is included in the marketplace if:

1. **Status is Active**: `status: "active"`
2. **Certified Flag** (if present): `certified: true`

If the `certified` field is not present, active items are considered certified by default.

### Status Values

| Status | Included in Marketplace | Purpose |
|--------|------------------------|---------|
| `active` | Yes | Production-ready, certified items |
| `draft` | No | Work in progress, not ready for distribution |
| `deprecated` | No | Outdated, should not be used |
| `experimental` | No | Testing phase, unstable |

## Output Format

### Skills Marketplace Structure

```json
{
  "marketplace_version": "1.0.0",
  "generated_at": "2025-10-23T17:51:58.579847+00:00",
  "last_updated": "2025-10-23T17:51:58.579847+00:00",
  "description": "Betty Framework Certified Skills Marketplace",
  "total_skills": 20,
  "certified_count": 16,
  "draft_count": 4,
  "catalog": [
    {
      "name": "api.validate",
      "version": "0.1.0",
      "description": "Validate OpenAPI and AsyncAPI specifications",
      "status": "certified",
      "tags": ["api", "validation", "openapi"],
      "maintainer": "Betty Core Team",
      "usage_examples": [
        "Validate OpenAPI spec: /skill/api/validate --spec_path api.yaml"
      ],
      "documentation_url": "https://betty-framework.dev/docs/skills/api.validate",
      "dependencies": ["context.schema"],
      "entrypoints": [...],
      "inputs": [...],
      "outputs": [...]
    }
  ]
}
```

### Agents Marketplace Structure

```json
{
  "marketplace_version": "1.0.0",
  "generated_at": "2025-10-23T17:03:16.154165+00:00",
  "last_updated": "2025-10-23T17:03:16.154165+00:00",
  "description": "Betty Framework Certified Agents Marketplace",
  "total_agents": 5,
  "certified_count": 3,
  "draft_count": 2,
  "catalog": [
    {
      "name": "api.designer",
      "version": "0.1.0",
      "description": "Design RESTful APIs following enterprise guidelines",
      "status": "certified",
      "reasoning_mode": "iterative",
      "skills_available": ["api.define", "api.validate"],
      "capabilities": [
        "Design RESTful APIs from natural language requirements"
      ],
      "tags": ["api", "design", "openapi"],
      "maintainer": "Betty Core Team",
      "documentation_url": "https://betty-framework.dev/docs/agents/api.designer",
      "dependencies": ["context.schema"]
    }
  ]
}
```

### Commands Marketplace Structure

```json
{
  "marketplace_version": "1.0.0",
  "generated_at": "2025-10-23T17:51:58.579847+00:00",
  "last_updated": "2025-10-23T17:51:58.579847+00:00",
  "description": "Betty Framework Certified Commands Marketplace",
  "total_commands": 4,
  "certified_count": 1,
  "draft_count": 3,
  "catalog": [
    {
      "name": "/test-workflow-command",
      "version": "1.0.0",
      "description": "Test complete workflow",
      "status": "certified",
      "tags": ["test", "workflow"],
      "execution": {
        "type": "skill",
        "target": "api.validate"
      },
      "parameters": [
        {
          "name": "input",
          "type": "string",
          "required": true,
          "description": "Input parameter"
        }
      ],
      "maintainer": "Betty Core Team"
    }
  ]
}
```

### Hooks Marketplace Structure

```json
{
  "marketplace_version": "1.0.0",
  "generated_at": "2025-10-23T17:51:58.579847+00:00",
  "last_updated": "2025-10-23T17:51:58.579847+00:00",
  "description": "Betty Framework Certified Hooks Marketplace",
  "total_hooks": 4,
  "certified_count": 1,
  "draft_count": 3,
  "catalog": [
    {
      "name": "test-workflow-hook",
      "version": "1.0.0",
      "description": "Test complete workflow",
      "status": "certified",
      "tags": ["test", "workflow", "openapi"],
      "event": "on_file_edit",
      "command": "python validate.py {file_path}",
      "blocking": true,
      "when": {
        "pattern": "*.openapi.yaml"
      },
      "timeout": 30000,
      "on_failure": "show_errors",
      "maintainer": "Betty Core Team"
    }
  ]
}
```

## Marketplace Transformations

### From Registry to Marketplace

The skill transforms registry entries to marketplace format:

#### Skills and Agents

| Registry Field | Marketplace Field | Transformation |
|----------------|-------------------|----------------|
| `status: "active"` | `status: "certified"` | Renamed for marketplace context |
| `name` | `name` | Preserved |
| `version` | `version` | Preserved |
| `description` | `description` | Preserved |
| `tags` | `tags` | Preserved (default: `[]`) |
| `dependencies` | `dependencies` | Preserved (default: `[]`) |
| `entrypoints` | `entrypoints` | Preserved (skills only) |
| `inputs` | `inputs` | Preserved (skills only) |
| `outputs` | `outputs` | Preserved (skills only) |
| `skills_available` | `skills_available` | Preserved (agents only) |
| `capabilities` | `capabilities` | Preserved (agents only) |
| `reasoning_mode` | `reasoning_mode` | Preserved (agents only) |
| N/A | `maintainer` | Added (default: "Betty Core Team") |
| N/A | `usage_examples` | Generated from entrypoints or provided |
| N/A | `documentation_url` | Generated: `https://betty-framework.dev/docs/{type}/{name}` |
| N/A | `last_updated` | Added: ISO timestamp |

#### Commands

| Registry
Files: 4
Size: 41.9 KB
Complexity: 36/100
Category: General

Related in General