Metadata-Version: 2.4
Name: specify-cli-extended
Version: 1.0.0
Summary: Extended Spec-Kit CLI with plugin support - Wraps upstream specify-cli
Project-URL: Homepage, https://github.com/spec-kit/spec-kit-extension
Project-URL: Documentation, https://github.com/spec-kit/spec-kit-extension#readme
Project-URL: Repository, https://github.com/spec-kit/spec-kit-extension
Author-email: Spec-Kit Team <spec-kit@example.com>
License: MIT
Keywords: cli,development,plugins,spec-kit,specification
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: spec-kit-contracts>=1.0.0
Requires-Dist: spec-kit-core>=1.0.0
Requires-Dist: spec-kit-runtime>=1.0.0
Requires-Dist: typer>=0.9.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: upstream
Requires-Dist: specify-cli; extra == 'upstream'
Description-Content-Type: text/markdown

# 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.
