Skip to main content

AI Project Planning Engine - From Intent to Executable Task DAGs

Project description

OpenExec Planner

AI Project Planning Engine — From Intent to Executable Task DAGs

Python License


The OpenExec Planner module transforms high-level project intents (PRDs, specs, requirements) into structured, executable task hierarchies using AI-powered decomposition and goal tree analysis.

Features

  • Guided Intent Interviewer — Interactive chat to gather constraints and shape
  • Intent Parsing — Extracts goals and requirements from PRD documents
  • Goal Tree Decomposition — Breaks down objectives into atomic tasks
  • Story Generation — Creates user stories with acceptance criteria
  • Dependency Modeling — Infers and models execution prerequisites for parallel processing
  • Dependency Analysis — Identifies task relationships and ordering
  • Quality Gate Templates — Language-aware testing configurations
  • Context Awareness — Integrates with codebase analysis

How It Works

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│   INTENT    │────▶│    PARSER    │────▶│  GOAL TREE  │
│  (PRD.md)   │     │  (AI Agent)  │     │   (JSON)    │
└─────────────┘     └──────────────┘     └──────┬──────┘
                                                │
                    ┌───────────────────────────┘
                    ▼
┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│   STORIES   │────▶│    TASKS     │────▶│   SCHEDULE  │
│  (JSON)     │     │   (JSON)     │     │  (ordered)  │
└─────────────┘     └──────────────┘     └─────────────┘

Installation

git clone https://github.com/openexec/openexec-planner.git
cd openexec-planner
pip install -e .

CLI Dependencies

By default, the orchestration engine uses external CLI tools to call LLMs. Ensure you have the relevant tools installed and authenticated:

  • Claude Code: claude CLI
  • Codex: codex CLI
  • Gemini: gemini CLI
  • OpenCode: opencode (Ollama)

To use direct API calls instead, install the optional dependencies:

pip install "openexec-planner[llm]"

Usage

The planner follows a logical project lifecycle. Follow these steps to go from an idea to a fully ordered task DAG.

1. Initialize Project

First, bootstrap the OpenExec structure in your current directory. This creates the .openexec folder and a default configuration.

openexec-planner init

2. Gather Intent (Wizard)

If you only have a rough idea, use the interactive wizard to define your project shape, platforms, and technical contracts.

openexec-planner wizard

The wizard will chat with you, save its progress, and finally render an INTENT.md file.

3. Generate User Stories

Transform your INTENT.md into structured user stories and technical tasks using an LLM.

openexec-planner generate INTENT.md -o .openexec/stories.json

This creates high-level stories, but they are not yet ready for the execution engine.

4. Create Execution DAG (Schedule)

Take the generated stories and flatten them into a Directed Acyclic Graph (DAG) of tasks. This step is required before running the Go execution engine.

openexec-planner schedule .openexec/stories.json -o .openexec/tasks.json

The schedule command handles:

  • Topological Sorting: Ensures prerequisites are built before the features that depend on them.
  • Parallelization: Groups tasks into phases that can be executed simultaneously.
  • Verification Mapping: Links acceptance criteria to autonomous test scripts.

Full Ecosystem Workflow

OpenExec is designed as a Brain (Planner) and a Body (Executor).

  1. Plan (Python): Use openexec-planner (this package) to build the tasks.json roadmap (Steps 1-4).
  2. Execute (Go): Use the OpenExec Engine to run the tasks.
# Once .openexec/tasks.json is generated in step 4:
openexec start --ui
openexec run

Configuration

# openexec.yaml
orchestration:
  agent: claude                  # AI agent for planning
  model: sonnet                  # Model for decomposition
  max_depth: 4                   # Goal tree max depth
  min_task_granularity: 2h       # Minimum task size
  max_task_granularity: 8h       # Maximum task size

planning:
  include_tests: true            # Generate test tasks
  include_docs: false            # Generate doc tasks
  language_detection: auto       # Detect project language

Output Formats

stories.json

{
  "stories": [
    {
      "id": "US-001",
      "title": "User Registration",
      "description": "As a user, I want to register...",
      "acceptance_criteria": [
        "User can enter email and password",
        "Email validation is performed",
        "Success message is shown"
      ],
      "tasks": ["T-001", "T-002", "T-003"]
    }
  ]
}

tasks.json

{
  "tasks": [
    {
      "id": "T-001",
      "story_id": "US-001",
      "title": "Create registration form component",
      "description": "...",
      "status": "pending",
      "dependencies": [],
      "estimated_hours": 4
    }
  ]
}

goal-tree.json

{
  "root": {
    "goal": "Build user authentication",
    "children": [
      {
        "goal": "User registration",
        "children": [
          {"task": "T-001"},
          {"task": "T-002"}
        ]
      }
    ]
  }
}

Project Structure

openexec-planner/
├── src/
│   └── openexec_planner/
│       ├── __init__.py
│       ├── parser.py           # Intent parsing
│       ├── generator.py        # Story generation
│       ├── goal_tree.py        # Goal tree building
│       ├── scheduler.py        # Task scheduling
│       └── templates/          # Prompt templates
├── tests/
├── pyproject.toml
└── README.md

Language Detection

Automatically detects project language and configures appropriate:

  • Quality gates (lint, test, typecheck)
  • File patterns
  • Build commands

Supported languages:

  • Python (ruff, mypy, pytest)
  • Go (gofmt, golangci-lint, go test)
  • TypeScript/JavaScript (eslint, tsc, jest)
  • Rust (cargo fmt, clippy, cargo test)

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/

# Type check
mypy src/

Related

  • openexec — Unified Go Execution Engine, Server, and Web Dashboard
  • openexec.io — Official Website and Documentation

License

MIT License

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

openexec_planner-0.1.11.tar.gz (49.8 kB view details)

Uploaded Source

Built Distribution

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

openexec_planner-0.1.11-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file openexec_planner-0.1.11.tar.gz.

File metadata

  • Download URL: openexec_planner-0.1.11.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for openexec_planner-0.1.11.tar.gz
Algorithm Hash digest
SHA256 71cf460250b1c21b35fd0b3b3a8c3b4f84f5e0aa634cb4c5a0cdb61763e518f1
MD5 99f49e76574464f9585acd68f57a7cee
BLAKE2b-256 c2fc946e8a5aa54faae1dca18d4341bab5aa0adcc8a8b49261692be17bac19b2

See more details on using hashes here.

File details

Details for the file openexec_planner-0.1.11-py3-none-any.whl.

File metadata

File hashes

Hashes for openexec_planner-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 2700817d5c48e6f0485e38ecc22663795bbd451edc80963b67c9b35838c72984
MD5 cb8de23ab51e6c9bf52a22653989af4a
BLAKE2b-256 d98eb573c827dda16f283aa6055f3443c5b69f9457911095616656d5cde3bb07

See more details on using hashes here.

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