specifyx


Namespecifyx JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryEnhanced spec-driven development CLI with modern architecture and Jinja2 templating
upload_time2025-09-10 00:30:12
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords cli development jinja2 project-generation spec-driven templates toml
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SpecifyX

**Enhanced spec-driven development CLI with modern architecture and Jinja2 templating**

[![Release](https://github.com/barisgit/spec-kit-improved/actions/workflows/release.yml/badge.svg)](https://github.com/barisgit/spec-kit-improved/actions/workflows/release.yml)
[![PyPI version](https://badge.fury.io/py/specifyx.svg)](https://badge.fury.io/py/specifyx)

---

## What is SpecifyX?

SpecifyX is a modern, Python-installable CLI tool forked from the popular [spec-kit](https://github.com/github/spec-kit) for spec-driven development that helps organizations focus on product scenarios rather than writing undifferentiated code.

### Key Benefits for Users

- **Easy Installation**: Install with `uv tool install specifyx` or run `uvx specifyx` without installation
- **Powerful Templating**: Use Jinja2 templates with variables, conditionals, and loops for complex project generation
- **Flexible Branch Naming**: Customize branch patterns like `feature/{name}` or `task/{id}-{name}` and more instead of fixed formats
- **Enhanced User Experience**: Interactive menus, progress tracking, and better error messages
- **Project Generation**: Generate projects from templates with variables, conditionals, and loops for complex project generation
- **Configurable Python Scripts**: Uses python for scripts with utils imported from specifyx to achieve user customizable scripts with low boilerplate
- **Configuration System**: Save your preferences in TOML files instead of repeating command-line options

## Installation

### Using uv (recommended)
```bash
uv tool install specifyx
```

#### Alternative if you don't want to install

```bash
uvx specifyx
```

> Note: `uvx` is a shortcut for `uv tool run`

### Using pipx (for CLI tools)
```bash
pipx install specifyx
```

### Using pip
```bash
pip install specifyx
```

### From git (development version)
```bash
uv tool install --from git+https://github.com/barisgit/spec-kit-improved
```

## Quick Start

Initialize a new spec-driven project:
```bash
specifyx init my-project
specifyx init --here  # in current directory
```

Check tool requirements:
```bash
specifyx check
```

Run specifyx python scripts in your project with:
```bash
specifyx run my-script

# List available scripts
specifyx run --list

# Show path to specified script
specifyx run --which my-script
```

> Note: Your AI assistant is instructed to use specifyx when you run commands.

## Attribution and Philosophy

### Inspiration and Attribution

This project is **inspired by and builds upon** the foundational work of the original [specify](https://github.com/github/spec-kit) project by the GitHub team, particularly [John Lam](https://github.com/jflam) and [Den Delimarsky](https://github.com/dend). Their pioneering work in spec-driven development methodology laid the groundwork for this enhanced implementation.

### Why a Separate Project?

While deeply respecting the original specify project, SpecifyX takes a different philosophical approach in several key areas:

#### **1. Installation and Distribution**
- **Original specify**: Git-based templates requiring manual setup
- **SpecifyX**: Standard Python package installable via PyPI for easier adoption

#### **2. Templating Capabilities** 
- **Original specify**: Basic string replacement templating
- **SpecifyX**: Full Jinja2 templating with variables, loops, conditionals, and complex logic

#### **3. Configuration and Customization**
- **Original specify**: Minimal configuration, mostly environment-based
- **SpecifyX**: Rich TOML-based configuration system with user preferences and project-specific settings

#### **4. Branch Naming Flexibility**
- **Original specify**: Fixed pattern like "001-feature-name"
- **SpecifyX**: Customizable patterns to match your team's conventions AND branch validation logic so your AI assistant can't generate invalid branch names

#### **5. User Experience Focus**
- **Original specify**: Bash scripts with basic output
- **SpecifyX**: Customizable scripts with utils imported from specifyx to achieve user customizable scripts with low boilerplate

### Our Vision

SpecifyX aims to make spec-driven development more **accessible and powerful** for teams who want enhanced tooling while maintaining full respect for the original methodology. We believe both approaches serve different needs in the ecosystem.

## What is Spec-Driven Development?

Spec-Driven Development **flips the script** on traditional software development. Instead of code being king, **specifications become executable**, directly generating working implementations rather than just guiding them.

### Core Philosophy

- **Intent-driven development** where specifications define the "_what_" before the "_how_"
- **Rich specification creation** using guardrails and organizational principles  
- **Multi-step refinement** rather than one-shot code generation from prompts
- **Heavy reliance** on advanced AI model capabilities for specification interpretation

## Development Phases

| Phase | Focus | Key Activities |
|-------|-------|----------------|
| **0-to-1 Development** | Generate from scratch | Generate specs → Plan implementation → Build production-ready applications |
| **Creative Exploration** | Parallel implementations | Explore diverse solutions → Support multiple tech stacks → Experiment with UX patterns |
| **Iterative Enhancement** | Brownfield modernization | Add features iteratively → Modernize legacy systems → Adapt processes |

## Prerequisites

- **Linux/macOS** (or WSL2 on Windows)
- **Python 3.11+** 
- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), or [Gemini CLI](https://github.com/google-gemini/gemini-cli)
- [uv](https://docs.astral.sh/uv/) for package management (recommended)
- [Git](https://git-scm.com/downloads)

## Enhanced Features

### Jinja2 Templating

In your generated project, you can see spec, plan and tasks templates in `.specify/templates/` directory. You can customize them to your needs. They will be rendered with your project variables.

### Enhanced User Interface
- Interactive menus with keyboard navigation
- Progress tracking with live updates  
- Rich console output with colored themes
- Graceful fallbacks for limited terminals

## Technical Details

For developers interested in the architecture:

- **Modern Architecture**: Modular services instead of monolithic code
- **Type Safety**: Full type annotations and validation throughout
- **Comprehensive Testing**: Contract, integration, and unit tests
- **TOML Configuration**: Flexible configuration with dynaconf

## Documentation

To be updated.

## Development

### Setup Development Environment
```bash
git clone https://github.com/barisgit/spec-kit-improved
cd spec-kit-improved
uv sync --extra dev
```

### Run Tests
```bash
pytest                    # All tests
pytest tests/contract/    # Contract tests
pytest tests/integration/ # Integration tests
pytest tests/unit/        # Unit tests
```

### Code Quality
```bash
ruff check .              # Linting
ruff format .             # Formatting  
pyrefly check .           # Type checking
```

#### There is also a Makefile in the root of the project for convenience.

You can run `make help` to see the available commands.

## Contributing

We welcome contributions! Please see `CONTRIBUTING.md` for more details.

## Support

For support, please open a [GitHub issue](https://github.com/barisgit/spec-kit-improved/issues/new). We welcome bug reports, feature requests, and questions about using SpecifyX.

## License

This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.

---

**SpecifyX**: Making spec-driven development more accessible and powerful for modern development teams.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "specifyx",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "cli, development, jinja2, project-generation, spec-driven, templates, toml",
    "author": null,
    "author_email": "SpecifyX Contributors <blaz@paxia.co>",
    "download_url": "https://files.pythonhosted.org/packages/27/16/0e09b985432ceefa4b9d261d8ebb7f7f377979397cb8849085c8804054cf/specifyx-0.2.1.tar.gz",
    "platform": null,
    "description": "# SpecifyX\n\n**Enhanced spec-driven development CLI with modern architecture and Jinja2 templating**\n\n[![Release](https://github.com/barisgit/spec-kit-improved/actions/workflows/release.yml/badge.svg)](https://github.com/barisgit/spec-kit-improved/actions/workflows/release.yml)\n[![PyPI version](https://badge.fury.io/py/specifyx.svg)](https://badge.fury.io/py/specifyx)\n\n---\n\n## What is SpecifyX?\n\nSpecifyX is a modern, Python-installable CLI tool forked from the popular [spec-kit](https://github.com/github/spec-kit) for spec-driven development that helps organizations focus on product scenarios rather than writing undifferentiated code.\n\n### Key Benefits for Users\n\n- **Easy Installation**: Install with `uv tool install specifyx` or run `uvx specifyx` without installation\n- **Powerful Templating**: Use Jinja2 templates with variables, conditionals, and loops for complex project generation\n- **Flexible Branch Naming**: Customize branch patterns like `feature/{name}` or `task/{id}-{name}` and more instead of fixed formats\n- **Enhanced User Experience**: Interactive menus, progress tracking, and better error messages\n- **Project Generation**: Generate projects from templates with variables, conditionals, and loops for complex project generation\n- **Configurable Python Scripts**: Uses python for scripts with utils imported from specifyx to achieve user customizable scripts with low boilerplate\n- **Configuration System**: Save your preferences in TOML files instead of repeating command-line options\n\n## Installation\n\n### Using uv (recommended)\n```bash\nuv tool install specifyx\n```\n\n#### Alternative if you don't want to install\n\n```bash\nuvx specifyx\n```\n\n> Note: `uvx` is a shortcut for `uv tool run`\n\n### Using pipx (for CLI tools)\n```bash\npipx install specifyx\n```\n\n### Using pip\n```bash\npip install specifyx\n```\n\n### From git (development version)\n```bash\nuv tool install --from git+https://github.com/barisgit/spec-kit-improved\n```\n\n## Quick Start\n\nInitialize a new spec-driven project:\n```bash\nspecifyx init my-project\nspecifyx init --here  # in current directory\n```\n\nCheck tool requirements:\n```bash\nspecifyx check\n```\n\nRun specifyx python scripts in your project with:\n```bash\nspecifyx run my-script\n\n# List available scripts\nspecifyx run --list\n\n# Show path to specified script\nspecifyx run --which my-script\n```\n\n> Note: Your AI assistant is instructed to use specifyx when you run commands.\n\n## Attribution and Philosophy\n\n### Inspiration and Attribution\n\nThis project is **inspired by and builds upon** the foundational work of the original [specify](https://github.com/github/spec-kit) project by the GitHub team, particularly [John Lam](https://github.com/jflam) and [Den Delimarsky](https://github.com/dend). Their pioneering work in spec-driven development methodology laid the groundwork for this enhanced implementation.\n\n### Why a Separate Project?\n\nWhile deeply respecting the original specify project, SpecifyX takes a different philosophical approach in several key areas:\n\n#### **1. Installation and Distribution**\n- **Original specify**: Git-based templates requiring manual setup\n- **SpecifyX**: Standard Python package installable via PyPI for easier adoption\n\n#### **2. Templating Capabilities** \n- **Original specify**: Basic string replacement templating\n- **SpecifyX**: Full Jinja2 templating with variables, loops, conditionals, and complex logic\n\n#### **3. Configuration and Customization**\n- **Original specify**: Minimal configuration, mostly environment-based\n- **SpecifyX**: Rich TOML-based configuration system with user preferences and project-specific settings\n\n#### **4. Branch Naming Flexibility**\n- **Original specify**: Fixed pattern like \"001-feature-name\"\n- **SpecifyX**: Customizable patterns to match your team's conventions AND branch validation logic so your AI assistant can't generate invalid branch names\n\n#### **5. User Experience Focus**\n- **Original specify**: Bash scripts with basic output\n- **SpecifyX**: Customizable scripts with utils imported from specifyx to achieve user customizable scripts with low boilerplate\n\n### Our Vision\n\nSpecifyX aims to make spec-driven development more **accessible and powerful** for teams who want enhanced tooling while maintaining full respect for the original methodology. We believe both approaches serve different needs in the ecosystem.\n\n## What is Spec-Driven Development?\n\nSpec-Driven Development **flips the script** on traditional software development. Instead of code being king, **specifications become executable**, directly generating working implementations rather than just guiding them.\n\n### Core Philosophy\n\n- **Intent-driven development** where specifications define the \"_what_\" before the \"_how_\"\n- **Rich specification creation** using guardrails and organizational principles  \n- **Multi-step refinement** rather than one-shot code generation from prompts\n- **Heavy reliance** on advanced AI model capabilities for specification interpretation\n\n## Development Phases\n\n| Phase | Focus | Key Activities |\n|-------|-------|----------------|\n| **0-to-1 Development** | Generate from scratch | Generate specs \u2192 Plan implementation \u2192 Build production-ready applications |\n| **Creative Exploration** | Parallel implementations | Explore diverse solutions \u2192 Support multiple tech stacks \u2192 Experiment with UX patterns |\n| **Iterative Enhancement** | Brownfield modernization | Add features iteratively \u2192 Modernize legacy systems \u2192 Adapt processes |\n\n## Prerequisites\n\n- **Linux/macOS** (or WSL2 on Windows)\n- **Python 3.11+** \n- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), or [Gemini CLI](https://github.com/google-gemini/gemini-cli)\n- [uv](https://docs.astral.sh/uv/) for package management (recommended)\n- [Git](https://git-scm.com/downloads)\n\n## Enhanced Features\n\n### Jinja2 Templating\n\nIn your generated project, you can see spec, plan and tasks templates in `.specify/templates/` directory. You can customize them to your needs. They will be rendered with your project variables.\n\n### Enhanced User Interface\n- Interactive menus with keyboard navigation\n- Progress tracking with live updates  \n- Rich console output with colored themes\n- Graceful fallbacks for limited terminals\n\n## Technical Details\n\nFor developers interested in the architecture:\n\n- **Modern Architecture**: Modular services instead of monolithic code\n- **Type Safety**: Full type annotations and validation throughout\n- **Comprehensive Testing**: Contract, integration, and unit tests\n- **TOML Configuration**: Flexible configuration with dynaconf\n\n## Documentation\n\nTo be updated.\n\n## Development\n\n### Setup Development Environment\n```bash\ngit clone https://github.com/barisgit/spec-kit-improved\ncd spec-kit-improved\nuv sync --extra dev\n```\n\n### Run Tests\n```bash\npytest                    # All tests\npytest tests/contract/    # Contract tests\npytest tests/integration/ # Integration tests\npytest tests/unit/        # Unit tests\n```\n\n### Code Quality\n```bash\nruff check .              # Linting\nruff format .             # Formatting  \npyrefly check .           # Type checking\n```\n\n#### There is also a Makefile in the root of the project for convenience.\n\nYou can run `make help` to see the available commands.\n\n## Contributing\n\nWe welcome contributions! Please see `CONTRIBUTING.md` for more details.\n\n## Support\n\nFor support, please open a [GitHub issue](https://github.com/barisgit/spec-kit-improved/issues/new). We welcome bug reports, feature requests, and questions about using SpecifyX.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.\n\n---\n\n**SpecifyX**: Making spec-driven development more accessible and powerful for modern development teams.",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Enhanced spec-driven development CLI with modern architecture and Jinja2 templating",
    "version": "0.2.1",
    "project_urls": null,
    "split_keywords": [
        "cli",
        " development",
        " jinja2",
        " project-generation",
        " spec-driven",
        " templates",
        " toml"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "99b28e32a6c2e2cc0d1126fff04fc45fa1d5e4d947d1385df080e2e006d9e875",
                "md5": "c4332f9b4bec05eebb82708a5f71ba32",
                "sha256": "a4984dd26e026f51133725eb91f299fa0065f76ed24e9a2ea1d4639c6d48ec0d"
            },
            "downloads": -1,
            "filename": "specifyx-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c4332f9b4bec05eebb82708a5f71ba32",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 105195,
            "upload_time": "2025-09-10T00:30:11",
            "upload_time_iso_8601": "2025-09-10T00:30:11.485442Z",
            "url": "https://files.pythonhosted.org/packages/99/b2/8e32a6c2e2cc0d1126fff04fc45fa1d5e4d947d1385df080e2e006d9e875/specifyx-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "27160e09b985432ceefa4b9d261d8ebb7f7f377979397cb8849085c8804054cf",
                "md5": "f7fac922728678568e142dc372c2787e",
                "sha256": "af2b1faa91e57df0bcf732a6c8b9939a91c8a477cae3bc2c563cd9a02e93e35f"
            },
            "downloads": -1,
            "filename": "specifyx-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f7fac922728678568e142dc372c2787e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 2211332,
            "upload_time": "2025-09-10T00:30:12",
            "upload_time_iso_8601": "2025-09-10T00:30:12.993351Z",
            "url": "https://files.pythonhosted.org/packages/27/16/0e09b985432ceefa4b9d261d8ebb7f7f377979397cb8849085c8804054cf/specifyx-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-10 00:30:12",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "specifyx"
}
        
Elapsed time: 3.39162s