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
- Create a validated config (
version: 1) with role assignments and constraints.ese inituses simple setup by default (goal profile + provider + model), withese init --advancedfor role-level configuration. It includes provider/model presets, alias-based model input, and acustom_apioption for custom provider name/base URL/model IDs. - Run
ese doctor --config ese.config.yamlto enforce ensemble separation. - Run
ese start --config ese.config.yaml --artifacts-dir artifactsto execute the pipeline. - Review
artifacts/ese_summary.mdandartifacts/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_apilets 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff33918a9757010e17c400c4d39bcaad6d995fcdeceb21d7f647342068d51121
|
|
| MD5 |
0ca2792c0fe26d13eb1e9427e5bef042
|
|
| BLAKE2b-256 |
1f1e5e706c7f61ab4234536e7d9db488600efc1d7d495d15ca750e1446231b67
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f35f71269bd73ce82d6654b57fcee4856d1b6962a446293706fdc87ee448ed5
|
|
| MD5 |
bfbba84de6e4d3f56e3975d708a3db9c
|
|
| BLAKE2b-256 |
9081e3de2b1849fdeef17ab55170578b0a98d4cc05705083f52bb310d6bb0afa
|