A framework for running coding agents as long running tasks - with deterministic feedback loops and agent reviewers
Project description
Engineering Agent
Engineeringagent is a CLI that helps you implement code changes directly from feature specs. It pairs an agent loop with repository-owned harnesses (validators, gates, fitness functions, and optional reviewer agents).
You will still need to implement/configure the harness for your repository. If you are just starting out, the first few specs you run should usually be harness improvements.
Primary flow: feature spec -> run loop.
Command styles
- Package usage (PyPI, no clone):
uvx engineeringagent <command> - Package usage (version pinned):
uvx engineeringagent@<version> <command>
Quickstart from PyPI (no clone)
-
If you are starting in a fresh repository, scaffold the baseline harness first.
uvx engineeringagent init
Warning:
initis experimental scaffolding. Inspect generated files, runuvx engineeringagent validate, and review the git diff before committing.We recommend you do this in a separate branch or toy project the first time you try out the process.
-
Create or pick one feature spec in
docs/spec/features/.If you are just getting started, create a minimal example feature file that satisfies
docs/spec/schemas/feature.schema.json: -
Validate the setup and run gates.
uvx engineeringagent validate uvx engineeringagent gates run --profile loop_fast
-
Do a safe dry run first.
uvx engineeringagent run docs/spec/features/FEAT-001-example.yaml --dry-run
Run for real by removing --dry-run.
- Test that implemented gates run at commit (remember to init a git repo - if it is not already)
Bootstrapping a new repository with init
If you are starting in a fresh repository, you can scaffold a baseline harness with:
uvx engineeringagent init
init defaults to the language-agnostic core scaffold profile.
Use python_uv when you want the scaffolded .pre-commit-config.yaml to assume an
uv-based workflow (including a commit-msg hook); it does not add gate definitions
to harness/gates.yaml.
uvx engineeringagent init --scaffold-profile python_uv
init creates a starter structure for docs/spec/ and harness/gates.yaml and handles
existing docs/ or AGENTS.md through explicit conflict choices.
Warning: treat init as experimental scaffolding.
Always inspect generated files, run uvx engineeringagent validate, and review
the git diff before committing anything produced by init.
What this gives you
- Deterministic progress: one spec file at a time.
- Human control: you set priorities and scope; agents execute loops.
- Built-in quality checks: validation, gates, and commit hooks.
Run output tips
- Default output is concise; full implement/gate output stays in
progress/run-feature-<FEATURE_ID>.txt. - Use
--verbose-outputif you want full implement/gate output in the terminal.
OpenCode default agent contract
- Default loop execution uses the
engineeringagentOpenCode agent, specified under:.opencode/agents/engineeringagent.md.
Human docs vs agent docs
README.md: first-run, for you the developer.- Harness Engineering Principles: deeper for you the developer.
AGENTS.mdanddocs/references/*-llms.md: agent execution rules and deterministic procedures.
Reviewer agents (optional)
- Reviewer agents are a harness-managed complement to deterministic gates, configured in
harness/reviewers.yaml. engineeringagent initdoes not scaffold reviewer config or prompts; keep reviewer policy repository-owned through committed harness files.- Use
uvx engineeringagent reviewers initto scaffold a baseline config and prompt files underharness/reviewers/prompts/. - Use
uvx engineeringagent reviewers list|plan|runto inspect and test reviewer behavior. - For setup and migration guidance, see Reviewer authoring guide.
- For full contract, policy semantics, decision-envelope examples, and troubleshooting, see Reviewer agents reference.
Core files to know
docs/spec/features/: active feature specs (backlog,in_progress,blocked)docs/spec/features_done/: archived completed specs (done)harness/gates.yaml: gate and profile definitionsprogress/runs.jsonl: append-only loop execution history
Contributing
- Pull requests are not accepted for this repository.
- Code changes are implemented through the project agent workflow.
- If you want a new capability, open a GitHub issue with the problem, desired outcome, and constraints.
- Feature requests from issues may be promoted into a formal spec under
docs/spec/features/.
Go deeper
Curated external context
Project details
Release history Release notifications | RSS feed
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 engineeringagent-0.2.0.tar.gz.
File metadata
- Download URL: engineeringagent-0.2.0.tar.gz
- Upload date:
- Size: 956.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104e37acd136a83ead62d3e0dfcbfbb4e83a6219efacd63d3eab60a07468cfb0
|
|
| MD5 |
5d0400e5d9de20742f4203b9e932b26d
|
|
| BLAKE2b-256 |
8159380771c1e754977fd554820c47808708154b77734b6123f320ef9834ad14
|
File details
Details for the file engineeringagent-0.2.0-py3-none-any.whl.
File metadata
- Download URL: engineeringagent-0.2.0-py3-none-any.whl
- Upload date:
- Size: 82.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
019fe9ed3d6ab1155cfb7e795d3fd108adad42440f18e2cb93553d060e9bd51c
|
|
| MD5 |
6feb523879216095031d867afaf151a1
|
|
| BLAKE2b-256 |
aff63ae773b8d1490da9bc2ad336ca15dcf9839fe561f4a946b20e00be94d8f0
|