Skip to main content

Ensemble Software Engineering (ESE) CLI

Project description

Ensemble Software Engineering (ESE)

ESE is a lightweight framework for AI-assisted software development using specialized model roles.

Core pipeline

flowchart TD
  A[Human Scope] --> B[Architect]
  B --> C[Implementer]
  C --> D[Adversarial Reviewer]
  C --> E[Security Auditor]
  C --> F[Test Generator]
  C --> G[Performance Analyst]
  D --> H[Human Merge]
  E --> H
  F --> H
  G --> H

Quick start

  1. Create a validated config (version: 1) with role assignments and constraints. ese init uses simple setup by default (goal profile + provider + model), with ese init --advanced for role-level configuration. It includes provider/model presets, alias-based model input, and a custom_api option for custom provider name/base URL/model IDs.
  2. Run ese doctor --config ese.config.yaml to enforce ensemble separation.
  3. Run ese start --config ese.config.yaml --artifacts-dir artifacts to execute the pipeline.
  4. Review artifacts/ese_summary.md and artifacts/pipeline_state.json.

runtime.adapter defaults to dry-run and can be set to openai or a custom callable with module:function. Role execution is dynamic from roles, so custom roles are supported without source edits.

Role catalog

  • architect: System design, decomposition, and interface contracts.
  • implementer: Code changes and refactors.
  • adversarial_reviewer: Bug/risk hunting and regression checks.
  • security_auditor: Threat modeling and vulnerability review.
  • test_generator: Unit/integration/e2e test generation.
  • performance_analyst: Latency, memory, and scalability analysis.
  • documentation_writer: README, API docs, and migration notes.
  • devops_sre: CI/CD, deploy safety, and observability.
  • database_engineer: Schema/index/migration correctness.
  • release_manager: Go/no-go risk assessment and rollout checks.

Use ese roles to print this list directly in the CLI.

Provider and model presets

  • Providers with built-in model pickers: openai, anthropic, google, xai, openrouter, huggingface, local.
  • Each provider includes common model IDs plus custom (type model id).
  • Model aliases are supported (for example g5, g5mini, sonnet, flash, pro).
  • custom_api lets you enter:
    • custom provider name,
    • optional API base URL,
    • custom model ID,
    • custom API key env var.

Runtime adapters

  • dry-run: no external API calls; generates deterministic placeholder artifacts.
  • openai: calls the OpenAI Responses API with retry/timeout handling.
  • module:function: custom Python callable adapter.

ese run remains available as a backward-compatible alias for ese start.

Example runtime config for real OpenAI execution:

provider:
  name: openai
  model: gpt-5-mini
  api_key_env: OPENAI_API_KEY
runtime:
  adapter: openai
  timeout_seconds: 60
  max_retries: 2
  retry_backoff_seconds: 1.0
  openai:
    base_url: https://api.openai.com/v1

GitHub Actions (optional)

Use .github/workflows/ese.yml to run ESE on pull requests.

Roadmap

See MILESTONE_1_0_0.md for the concrete 1.0.0 release checklist and PR plan.

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

ese_cli-0.1.3.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

ese_cli-0.1.3-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file ese_cli-0.1.3.tar.gz.

File metadata

  • Download URL: ese_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ese_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ff33918a9757010e17c400c4d39bcaad6d995fcdeceb21d7f647342068d51121
MD5 0ca2792c0fe26d13eb1e9427e5bef042
BLAKE2b-256 1f1e5e706c7f61ab4234536e7d9db488600efc1d7d495d15ca750e1446231b67

See more details on using hashes here.

File details

Details for the file ese_cli-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ese_cli-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ese_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1f35f71269bd73ce82d6654b57fcee4856d1b6962a446293706fdc87ee448ed5
MD5 bfbba84de6e4d3f56e3975d708a3db9c
BLAKE2b-256 9081e3de2b1849fdeef17ab55170578b0a98d4cc05705083f52bb310d6bb0afa

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