Skip to main content

Specification generator using GitHub spec-kit, preparing inputs for jules-planner

Project description

jules-specs

A specification generator that wraps GitHub's spec-kit tool to create structured specifications for the jules-planner workflow.

Overview

jules-specs is the first step in a three-stage development workflow:

  1. jules-specs (this tool) - Generate specifications using GitHub spec-kit
  2. jules-planner - Generate tasks and implementation plans from specs
  3. Implementation - Execute the plan with Claude/Jules or other tools

Installation

Prerequisites

  1. Install spec-kit (GitHub's specification toolkit):

    npm install -g @github/spec-kit
    
  2. Install jules-specs:

    pip install jules-specs
    

    Or install from source:

    git clone https://github.com/maravedi/jules-specs.git
    cd jules-specs
    pip install -e .
    

Usage

Basic Usage

Generate specs from a prompt:

jules-specs "Build a photo organizer app"

Pipe Input

You can also pipe input:

echo "Build a CMMC-compliant photo organizer app" | jules-specs

Enhanced Mode

Add compliance and security considerations with Jules enhancement:

jules-specs --enhance "Create a REST API for user management"

Options

  • --enhance - Add Jules compliance critique to specifications
  • --output-dir DIR - Specify output directory (default: .specify/specs)
  • --no-commit - Skip automatic git commit

Workflow

When you run jules-specs, it:

  1. Extracts the prompt from CLI argument or stdin
  2. Finds the next spec number (001, 002, 003, etc.)
  3. Invokes spec-kit CLI: specify cli spec "prompt" --output .specify/specs/001/
  4. Generates files:
    • .specify/specs/001/spec.md - Main specification
    • .specify/specs/001/architecture.md - System design
    • .specify/specs/001/api.md - OpenAPI spec (if applicable)
  5. Enhances with Jules (if --enhance flag used) - Adds compliance critique
  6. Creates git branch: jules-specs-<hash>
  7. Commits changes to git
  8. Outputs path for next step

Example Workflow

# Step 1: Generate specifications
jules-specs "Build CMMC-compliant photo organizer app"
# Output: .specify/specs/001/

# Step 2: Generate plan from specs
jules-planner --spec-dir .specify/specs/001/
# Output: tasks + implementation plan

# Step 3: Implement (with Claude, Jules, or manually)

Output Structure

.specify/
└── specs/
    ├── 001/
    │   ├── spec.md
    │   ├── architecture.md
    │   └── api.md
    ├── 002/
    │   ├── spec.md
    │   ├── architecture.md
    │   └── api.md
    └── ...

Git Integration

jules-specs automatically:

  • Creates a new branch jules-specs-<hash> based on your prompt
  • Commits the generated specifications
  • Prepares the branch for PR creation

To skip git operations:

jules-specs --no-commit "Your prompt here"

GitHub Actions Integration

Jules-specs can be integrated into GitHub workflows for automated spec generation. See docs/GITHUB_INTEGRATION.md for comprehensive documentation.

Quick Start

Method 1: Trigger via Issue Label

  1. Create an issue with your specification request
  2. Add the spec-request label
  3. Specs are auto-generated and a PR is created

Method 2: Trigger via Comment Comment on any issue:

/generate-spec Build a photo organizer app

Method 3: Manual Trigger

  1. Go to ActionsGenerate Specs (Manual)
  2. Click Run workflow
  3. Enter your prompt and options
  4. Click Run workflow

Available Workflows

The repository includes three pre-built workflows:

  • generate-specs-on-issue.yml - Automatically triggered when an issue gets the spec-request label
  • generate-specs-on-comment.yml - Triggered by /generate-spec command in issue comments
  • generate-specs-manual.yml - Manual trigger via GitHub Actions UI

All workflows:

  • Install dependencies (Python, Node.js, spec-kit)
  • Generate specifications using jules-specs
  • Create a new git branch
  • Open a pull request with the results
  • Add helpful comments and notifications

Setup

  1. Copy workflow files to .github/workflows/ in your repository
  2. Configure repository permissions: Settings → Actions → General
    • Enable "Read and write permissions"
    • Allow "GitHub Actions to create and approve pull requests"
  3. Create a spec-request label in your repository (for issue-triggered workflow)

For detailed setup instructions, advanced usage, and troubleshooting, see docs/GITHUB_INTEGRATION.md.

Development

Running from Source

python -m jules_specs "Your prompt"

Testing

# Test basic functionality
jules-specs "Build a simple REST API"

# Test enhanced mode
jules-specs --enhance "Build a secure user authentication system"

# Test without git
jules-specs --no-commit "Build a file processor"

Requirements

  • Python >= 3.8
  • spec-kit (npm package: @github/spec-kit)
  • git (for auto-commit features)

License

MIT

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jules_specs-0.1.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jules_specs-0.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file jules_specs-0.1.0.tar.gz.

File metadata

  • Download URL: jules_specs-0.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jules_specs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 390f10afddadafecc3f89583d93da4a354906e3f5d3969918a71f8e773a4c180
MD5 7fec3f34df878686e927885b72a1c6dd
BLAKE2b-256 2209be287f07b8f9ebf90873898f145d3097c1037942ca68659f23eb48dfc1ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for jules_specs-0.1.0.tar.gz:

Publisher: publish.yml on maravedi/jules-specs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jules_specs-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: jules_specs-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jules_specs-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 314e8f28b87cfc3ab6cb1b85fcda2e530b9fdf91c1dab0714abf1f4e15623034
MD5 c64d36d75eab5262b3d1fcc0f6cf89dc
BLAKE2b-256 f3d2e069ea32711e0b5fee31f7e1047002578db91c05b714e8c9e4d32b491288

See more details on using hashes here.

Provenance

The following attestation bundles were made for jules_specs-0.1.0-py3-none-any.whl:

Publisher: publish.yml on maravedi/jules-specs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page