Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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