improved-sdd


Nameimproved-sdd JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummarySetup tool for Improved Spec-Driven Development projects with AI assistant templates and GitLab Flow integration
upload_time2025-09-15 02:52:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords spec-driven-development ai github-copilot templates cli development-tools gitlab-flow git-workflow
VCS
bugtrack_url
requirements typer rich platformdirs readchar httpx flake8 black isort pre-commit mypy pytest pytest-asyncio pytest-cov pytest-mock
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Improved-SDD

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/)

A GitHub Copilot Studio project with Improved Spec-Driven Development templates for building high-quality Python CLI applications.

## Features

- **Spec-Driven Development**: Structured approach to software development with comprehensive specifications
- **GitLab Flow Integration**: Built-in workflow guidance with automatic commit prompts and PR creation
- **Python CLI Framework**: Built with Typer and Rich for modern, beautiful command-line interfaces
- **Automated Code Quality**: Pre-commit hooks with Flake8, Black, isort, and mypy
- **GitHub Copilot Integration**: Custom templates and instructions for AI-assisted development
- **CI/CD Ready**: GitHub Actions workflow for automated testing and linting
- **Cross-Platform**: Works on Windows, macOS, and Linux

## Quick Start

1. **Clone the repository**
   ```bash
   git clone <repository-url>
   cd improved-sdd
   ```

2. **Install dependencies**
   ```bash
   pip install -r requirements.txt
   ```

3. **Set up development environment**
   ```bash
   pip install pre-commit
   pre-commit install
   ```

4. **Open in VS Code** and start developing with GitHub Copilot using the provided templates

## Usage

### CLI Commands

The project includes a CLI tool for managing spec-driven development projects:

```bash
# Initialize a new project with GitLab Flow (default)
python src/improved_sdd_cli.py init <project-name>

# Initialize without GitLab Flow integration
python src/improved_sdd_cli.py init <project-name> --no-gitlab-flow

# Delete a project (with confirmation)
python src/improved_sdd_cli.py delete <project-name>

# Check project configuration
python src/improved_sdd_cli.py check <project-name>

# Get help
python src/improved_sdd_cli.py --help
```

### Development Workflow

1. Create a specification in `specs/`
2. Use the CLI to initialize your project structure
3. Develop following the spec-driven approach
4. Commit changes (linting runs automatically)

### GitLab Flow Integration

The improved-sdd CLI includes built-in GitLab Flow support that provides workflow guidance during spec development:

#### **Automatic Workflow Integration**
- **Setup Guidance**: Branch creation and repository validation before starting specs
- **Phase Commit Prompts**: Commit guidance after completing each spec phase (feasibility, requirements, design, tasks)
- **PR Creation**: Step-by-step PR creation guidance after implementation completion
- **Platform-Specific Commands**: Windows PowerShell vs Unix/macOS bash command syntax

#### **How It Works**

GitLab Flow uses a **dynamic keyword integration** approach:

1. **Markdown Files as Variables**: GitLab Flow content stored in `templates/gitlab-flow/*.md` files
2. **Keyword Replacement**: Keywords like `{GITLAB_FLOW_SETUP}`, `{GITLAB_FLOW_COMMIT}`, `{GITLAB_FLOW_PR}` in chatmode files
3. **Conditional Loading**: Keywords replaced with GitLab Flow content when enabled, empty when disabled
4. **Platform Detection**: Commands automatically adjusted for Windows vs Unix systems

#### **CLI Flag Control**

```bash
# Enable GitLab Flow (default behavior)
python src/improved_sdd_cli.py init my-project --gitlab-flow

# Disable GitLab Flow
python src/improved_sdd_cli.py init my-project --no-gitlab-flow
```

#### **Example Workflow**

1. **Project Initialization**: `improved-sdd init my-feature --gitlab-flow`
2. **Branch Setup**: Follow GitLab Flow setup guidance in chatmode
3. **Spec Development**: Complete feasibility → requirements → design → tasks
4. **Automatic Commits**: Commit after each phase using provided guidance
5. **Implementation**: Execute tasks with commit prompts between tasks
6. **PR Creation**: Create pull request when all implementation complete

#### **GitLab Flow Templates**

The system includes three core templates:

- **`gitlab-flow-setup.md`**: Repository validation and branch creation
- **`gitlab-flow-commit.md`**: Phase completion commit guidance with conventional commit format
- **`gitlab-flow-pr.md`**: PR creation with timing safeguards and templates

#### **Benefits**

- ✅ **Integrated Workflow**: Git operations embedded naturally in spec development
- ✅ **Zero Breaking Changes**: Existing workflows unchanged when disabled
- ✅ **Platform Agnostic**: Works on Windows, macOS, and Linux
- ✅ **Flexible Control**: Easy to enable/disable via CLI flag
- ✅ **Best Practices**: Conventional commits and proper PR timing

## Development Setup

### Prerequisites

- Python 3.8 or higher
- VS Code with Python extension
- Git

### Installation

1. Clone the repository
2. Install dependencies:
   ```bash
   pip install -r requirements.txt
   ```

3. Install pre-commit hooks:
   ```bash
   pip install pre-commit
   pre-commit install
   ```

### Code Quality Tools

This project uses comprehensive linting and formatting tools:

#### Automatic Linting (Pre-commit Hooks)

Pre-commit hooks run automatically on each commit. Install them with:

```bash
pre-commit install
```

Run manually on all files:
```bash
pre-commit run --all-files
```

#### Manual Tools

```bash
# Style guide enforcement
flake8 src/ --max-line-length=120

# Code formatting
black src/

# Import sorting
isort src/ --profile=black

# Type checking
mypy src/
```

#### VS Code Integration

The project includes optimized VS Code settings for:
- Real-time linting with Flake8
- Automatic formatting with Black on save
- Import sorting
- 120-character line ruler

#### CI/CD

GitHub Actions automatically runs quality checks on:
- Pushes to main/develop branches
- Pull requests

## Project Structure

```
improved-sdd/
├── src/                    # Source code
├── specs/                  # Project specifications
├── templates/              # Development templates
│   ├── chatmodes/         # AI behavior patterns
│   ├── instructions/      # Development guidance
│   ├── prompts/           # Structured AI prompts
│   └── gitlab-flow/       # GitLab Flow workflow templates
├── memory/                 # Project memory and constitution
├── .github/                # GitHub templates and workflows
├── requirements.txt        # Python dependencies
├── pyproject.toml         # Project configuration
├── .pre-commit-config.yaml # Pre-commit hooks
└── .flake8                # Linting configuration
```

## Templates Available

- **Chatmodes**: AI behavior patterns for different development scenarios
- **Instructions**: Context-specific development guidance
- **Prompts**: Structured prompts for AI interactions
- **GitLab Flow**: Workflow templates for git operations and branch management

## Contributing

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/your-feature`
3. Make your changes and ensure tests pass
4. Commit with pre-commit hooks: `git commit -m "Add your feature"`
5. Push to your branch: `git push origin feature/your-feature`
6. Create a Pull Request

### Development Guidelines

- Follow the spec-driven development approach
- Write clear, documented code
- Use type hints for better code quality
- Run pre-commit hooks before committing
- Update specifications for new features

## Resources

- [Typer Documentation](https://typer.tiangolo.com/)
- [Rich Documentation](https://rich.readthedocs.io/)
- [CLI Guidelines](https://clig.dev/)
- [Python CLI Development Guide](.github/instructions/python-cli-development.md)

## License

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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "improved-sdd",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "spec-driven-development, ai, github-copilot, templates, cli, development-tools, gitlab-flow, git-workflow",
    "author": null,
    "author_email": "Robert Meisner <robert@catchit.pl>",
    "download_url": "https://files.pythonhosted.org/packages/6a/6b/1e6a0e485fef2a12f1b1e51f81579aa4977dcf18a4e073617adea6ded86b/improved_sdd-0.1.4.tar.gz",
    "platform": null,
    "description": "# Improved-SDD\n\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/)\n\nA GitHub Copilot Studio project with Improved Spec-Driven Development templates for building high-quality Python CLI applications.\n\n## Features\n\n- **Spec-Driven Development**: Structured approach to software development with comprehensive specifications\n- **GitLab Flow Integration**: Built-in workflow guidance with automatic commit prompts and PR creation\n- **Python CLI Framework**: Built with Typer and Rich for modern, beautiful command-line interfaces\n- **Automated Code Quality**: Pre-commit hooks with Flake8, Black, isort, and mypy\n- **GitHub Copilot Integration**: Custom templates and instructions for AI-assisted development\n- **CI/CD Ready**: GitHub Actions workflow for automated testing and linting\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n\n## Quick Start\n\n1. **Clone the repository**\n   ```bash\n   git clone <repository-url>\n   cd improved-sdd\n   ```\n\n2. **Install dependencies**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. **Set up development environment**\n   ```bash\n   pip install pre-commit\n   pre-commit install\n   ```\n\n4. **Open in VS Code** and start developing with GitHub Copilot using the provided templates\n\n## Usage\n\n### CLI Commands\n\nThe project includes a CLI tool for managing spec-driven development projects:\n\n```bash\n# Initialize a new project with GitLab Flow (default)\npython src/improved_sdd_cli.py init <project-name>\n\n# Initialize without GitLab Flow integration\npython src/improved_sdd_cli.py init <project-name> --no-gitlab-flow\n\n# Delete a project (with confirmation)\npython src/improved_sdd_cli.py delete <project-name>\n\n# Check project configuration\npython src/improved_sdd_cli.py check <project-name>\n\n# Get help\npython src/improved_sdd_cli.py --help\n```\n\n### Development Workflow\n\n1. Create a specification in `specs/`\n2. Use the CLI to initialize your project structure\n3. Develop following the spec-driven approach\n4. Commit changes (linting runs automatically)\n\n### GitLab Flow Integration\n\nThe improved-sdd CLI includes built-in GitLab Flow support that provides workflow guidance during spec development:\n\n#### **Automatic Workflow Integration**\n- **Setup Guidance**: Branch creation and repository validation before starting specs\n- **Phase Commit Prompts**: Commit guidance after completing each spec phase (feasibility, requirements, design, tasks)\n- **PR Creation**: Step-by-step PR creation guidance after implementation completion\n- **Platform-Specific Commands**: Windows PowerShell vs Unix/macOS bash command syntax\n\n#### **How It Works**\n\nGitLab Flow uses a **dynamic keyword integration** approach:\n\n1. **Markdown Files as Variables**: GitLab Flow content stored in `templates/gitlab-flow/*.md` files\n2. **Keyword Replacement**: Keywords like `{GITLAB_FLOW_SETUP}`, `{GITLAB_FLOW_COMMIT}`, `{GITLAB_FLOW_PR}` in chatmode files\n3. **Conditional Loading**: Keywords replaced with GitLab Flow content when enabled, empty when disabled\n4. **Platform Detection**: Commands automatically adjusted for Windows vs Unix systems\n\n#### **CLI Flag Control**\n\n```bash\n# Enable GitLab Flow (default behavior)\npython src/improved_sdd_cli.py init my-project --gitlab-flow\n\n# Disable GitLab Flow\npython src/improved_sdd_cli.py init my-project --no-gitlab-flow\n```\n\n#### **Example Workflow**\n\n1. **Project Initialization**: `improved-sdd init my-feature --gitlab-flow`\n2. **Branch Setup**: Follow GitLab Flow setup guidance in chatmode\n3. **Spec Development**: Complete feasibility \u2192 requirements \u2192 design \u2192 tasks\n4. **Automatic Commits**: Commit after each phase using provided guidance\n5. **Implementation**: Execute tasks with commit prompts between tasks\n6. **PR Creation**: Create pull request when all implementation complete\n\n#### **GitLab Flow Templates**\n\nThe system includes three core templates:\n\n- **`gitlab-flow-setup.md`**: Repository validation and branch creation\n- **`gitlab-flow-commit.md`**: Phase completion commit guidance with conventional commit format\n- **`gitlab-flow-pr.md`**: PR creation with timing safeguards and templates\n\n#### **Benefits**\n\n- \u2705 **Integrated Workflow**: Git operations embedded naturally in spec development\n- \u2705 **Zero Breaking Changes**: Existing workflows unchanged when disabled\n- \u2705 **Platform Agnostic**: Works on Windows, macOS, and Linux\n- \u2705 **Flexible Control**: Easy to enable/disable via CLI flag\n- \u2705 **Best Practices**: Conventional commits and proper PR timing\n\n## Development Setup\n\n### Prerequisites\n\n- Python 3.8 or higher\n- VS Code with Python extension\n- Git\n\n### Installation\n\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. Install pre-commit hooks:\n   ```bash\n   pip install pre-commit\n   pre-commit install\n   ```\n\n### Code Quality Tools\n\nThis project uses comprehensive linting and formatting tools:\n\n#### Automatic Linting (Pre-commit Hooks)\n\nPre-commit hooks run automatically on each commit. Install them with:\n\n```bash\npre-commit install\n```\n\nRun manually on all files:\n```bash\npre-commit run --all-files\n```\n\n#### Manual Tools\n\n```bash\n# Style guide enforcement\nflake8 src/ --max-line-length=120\n\n# Code formatting\nblack src/\n\n# Import sorting\nisort src/ --profile=black\n\n# Type checking\nmypy src/\n```\n\n#### VS Code Integration\n\nThe project includes optimized VS Code settings for:\n- Real-time linting with Flake8\n- Automatic formatting with Black on save\n- Import sorting\n- 120-character line ruler\n\n#### CI/CD\n\nGitHub Actions automatically runs quality checks on:\n- Pushes to main/develop branches\n- Pull requests\n\n## Project Structure\n\n```\nimproved-sdd/\n\u251c\u2500\u2500 src/                    # Source code\n\u251c\u2500\u2500 specs/                  # Project specifications\n\u251c\u2500\u2500 templates/              # Development templates\n\u2502   \u251c\u2500\u2500 chatmodes/         # AI behavior patterns\n\u2502   \u251c\u2500\u2500 instructions/      # Development guidance\n\u2502   \u251c\u2500\u2500 prompts/           # Structured AI prompts\n\u2502   \u2514\u2500\u2500 gitlab-flow/       # GitLab Flow workflow templates\n\u251c\u2500\u2500 memory/                 # Project memory and constitution\n\u251c\u2500\u2500 .github/                # GitHub templates and workflows\n\u251c\u2500\u2500 requirements.txt        # Python dependencies\n\u251c\u2500\u2500 pyproject.toml         # Project configuration\n\u251c\u2500\u2500 .pre-commit-config.yaml # Pre-commit hooks\n\u2514\u2500\u2500 .flake8                # Linting configuration\n```\n\n## Templates Available\n\n- **Chatmodes**: AI behavior patterns for different development scenarios\n- **Instructions**: Context-specific development guidance\n- **Prompts**: Structured prompts for AI interactions\n- **GitLab Flow**: Workflow templates for git operations and branch management\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/your-feature`\n3. Make your changes and ensure tests pass\n4. Commit with pre-commit hooks: `git commit -m \"Add your feature\"`\n5. Push to your branch: `git push origin feature/your-feature`\n6. Create a Pull Request\n\n### Development Guidelines\n\n- Follow the spec-driven development approach\n- Write clear, documented code\n- Use type hints for better code quality\n- Run pre-commit hooks before committing\n- Update specifications for new features\n\n## Resources\n\n- [Typer Documentation](https://typer.tiangolo.com/)\n- [Rich Documentation](https://rich.readthedocs.io/)\n- [CLI Guidelines](https://clig.dev/)\n- [Python CLI Development Guide](.github/instructions/python-cli-development.md)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Setup tool for Improved Spec-Driven Development projects with AI assistant templates and GitLab Flow integration",
    "version": "0.1.4",
    "project_urls": {
        "Documentation": "https://github.com/robertmeisner/improved-sdd#readme",
        "Homepage": "https://github.com/robertmeisner/improved-sdd",
        "Issues": "https://github.com/robertmeisner/improved-sdd/issues",
        "Repository": "https://github.com/robertmeisner/improved-sdd"
    },
    "split_keywords": [
        "spec-driven-development",
        " ai",
        " github-copilot",
        " templates",
        " cli",
        " development-tools",
        " gitlab-flow",
        " git-workflow"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fd55ed18ed158a1fca72a1982033055ec5bc7791825fc61b31df8696c62a154b",
                "md5": "7353dd82bc913727ab42fd6005383e8d",
                "sha256": "d9ce75cdbfc82d0f79953a20318a2362cce03e62d17d5fcff5db304991f6771b"
            },
            "downloads": -1,
            "filename": "improved_sdd-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7353dd82bc913727ab42fd6005383e8d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 44477,
            "upload_time": "2025-09-15T02:52:32",
            "upload_time_iso_8601": "2025-09-15T02:52:32.798199Z",
            "url": "https://files.pythonhosted.org/packages/fd/55/ed18ed158a1fca72a1982033055ec5bc7791825fc61b31df8696c62a154b/improved_sdd-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6a6b1e6a0e485fef2a12f1b1e51f81579aa4977dcf18a4e073617adea6ded86b",
                "md5": "b33edf7bab44bce0acefd2d920b48461",
                "sha256": "e1820ba782f858aea74bbfc677b25f377f23c99fd3d856eb4a2463aad9ea17f4"
            },
            "downloads": -1,
            "filename": "improved_sdd-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "b33edf7bab44bce0acefd2d920b48461",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 44131,
            "upload_time": "2025-09-15T02:52:34",
            "upload_time_iso_8601": "2025-09-15T02:52:34.028608Z",
            "url": "https://files.pythonhosted.org/packages/6a/6b/1e6a0e485fef2a12f1b1e51f81579aa4977dcf18a4e073617adea6ded86b/improved_sdd-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-15 02:52:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "robertmeisner",
    "github_project": "improved-sdd#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "typer",
            "specs": []
        },
        {
            "name": "rich",
            "specs": []
        },
        {
            "name": "platformdirs",
            "specs": []
        },
        {
            "name": "readchar",
            "specs": []
        },
        {
            "name": "httpx",
            "specs": []
        },
        {
            "name": "flake8",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    ">=",
                    "23.0.0"
                ]
            ]
        },
        {
            "name": "isort",
            "specs": [
                [
                    ">=",
                    "5.12.0"
                ]
            ]
        },
        {
            "name": "pre-commit",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "pytest-asyncio",
            "specs": [
                [
                    ">=",
                    "0.21.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "pytest-mock",
            "specs": [
                [
                    ">=",
                    "3.10.0"
                ]
            ]
        }
    ],
    "lcname": "improved-sdd"
}
        
Elapsed time: 2.86962s