specify-cli-extended 1.0.0
Extended Spec-Kit CLI with plugin support - Wraps upstream specify-cli
License: MIT
Requires Python: >=3.11
Keywords: cli, development, plugins, spec-kit, specification

# specify-cli-extended

Extended Spec-Kit CLI with plugin support.

## Overview

This package provides an extended version of the Spec-Kit CLI that adds plugin management capabilities. It wraps the upstream `specify-cli` and adds commands for:

- Plugin discovery and loading
- Plugin command execution
- Plugin scaffolding
- Plugin configuration

## Installation

```bash
# Install with plugin support only
pip install specify-cli-extended

# Install with upstream specify-cli included
pip install specify-cli-extended[upstream]
```

## Usage

### Plugin Management

```bash
# List all discovered plugins
specify-extended plugin list --all

# List loaded plugins
specify-extended plugin list

# Get plugin information
specify-extended plugin info design

# Load a plugin
specify-extended plugin load design

# Unload a plugin
specify-extended plugin unload design
```

### Plugin Commands

```bash
# Execute a plugin command
specify-extended plugin exec "design:generate my-feature"

# Execute with options
specify-extended plugin exec "design:generate my-feature --force"

# List available commands
specify-extended plugin commands
```

### Create New Plugin

```bash
# Create a new plugin from template
specify-extended plugin new my-awesome-plugin

# Create in specific directory
specify-extended plugin new my-plugin --path ./plugins
```

### Project Initialization

```bash
# Initialize project with plugin support
specify-extended init my-project --with-plugins

# Initialize without plugins
specify-extended init my-project --no-plugins
```

## Command Reference

### Global Commands

| Command | Description |
|---------|-------------|
| `specify-extended init <name>` | Initialize new project |
| `specify-extended version` | Show version information |

### Plugin Commands

| Command | Description |
|---------|-------------|
| `specify-extended plugin list` | List loaded plugins |
| `specify-extended plugin list --all` | List all discovered plugins |
| `specify-extended plugin load <name>` | Load a plugin |
| `specify-extended plugin unload <name>` | Unload a plugin |
| `specify-extended plugin info <name>` | Show plugin details |
| `specify-extended plugin exec <cmd>` | Execute plugin command |
| `specify-extended plugin commands` | List available commands |
| `specify-extended plugin new <name>` | Create new plugin |

## Configuration

Plugin configuration is stored in `.specify/plugins.yaml`:

```yaml
plugins:
  # Plugin search paths
  search_paths:
    - .specify/plugins           # Project plugins
    - ~/.specify/plugins         # User plugins

  # Plugins to auto-load on startup
  auto_load:
    - design
    - quality

  # Per-plugin configuration
  design:
    enabled: true
    template_style: detailed

  quality:
    enabled: true
    strict_mode: false
    max_method_lines: 20
```

## Architecture

```
┌─────────────────────────────────────────────────┐
│              specify-cli-extended                │
│                                                 │
│  ┌─────────────────────────────────────────┐   │
│  │                CLI (Typer)               │   │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐  │   │
│  │  │  init   │  │ plugin  │  │ version │  │   │
│  │  └─────────┘  └────┬────┘  └─────────┘  │   │
│  └────────────────────┼────────────────────┘   │
│                       │                         │
│  ┌────────────────────┴────────────────────┐   │
│  │           RuntimeAdapter                 │   │
│  │  High-level plugin management API        │   │
│  └────────────────────┬────────────────────┘   │
│                       │                         │
│  ┌────────────────────┴────────────────────┐   │
│  │          PluginGenerator                 │   │
│  │  Plugin scaffolding from templates       │   │
│  └──────────────────────────────────────────┘   │
└─────────────────────────────────────────────────┘
                       │
                       ▼
         ┌─────────────────────────┐
         │    spec-kit-runtime     │
         │    spec-kit-core        │
         │   spec-kit-contracts    │
         └─────────────────────────┘
                       │
                       ▼ (optional)
         ┌─────────────────────────┐
         │    specify-cli          │
         │   (upstream, optional)  │
         └─────────────────────────┘
```

## Dependencies

- `spec-kit-contracts>=1.0.0` - Interface contracts
- `spec-kit-runtime>=1.0.0` - Plugin runtime
- `spec-kit-core>=1.0.0` - Core services
- `typer>=0.9.0` - CLI framework
- `rich>=13.0.0` - Terminal formatting
- `pyyaml>=6.0` - Configuration parsing

## Integration with Upstream

When installed with the `[upstream]` extra, this CLI wraps the original `specify-cli` commands, allowing you to use both the original SDD workflow commands and plugin management commands from a single CLI.

```bash
# Original specify commands (if upstream installed)
specify-extended specify   # Create specification
specify-extended plan      # Create plan
specify-extended tasks     # Generate tasks

# Extended plugin commands
specify-extended plugin list
specify-extended plugin exec "design:generate"
```

## License

MIT License - see LICENSE file for details.