Skip to main content

A framework for running coding agents as long running tasks - with deterministic feedback loops and agent reviewers

Project description

Engineering Agent

NOTE: This repository is under active development. You should probably not use it for anything important yet. Treat engineeringagent init as experimental scaffolding and review all generated changes before committing.

What this is

The goal of Engineeringagent is to help you move from ideas to quality implementations. The core idea is setup a structure for harness for you coding agent (lint, checks, fitness functions, agentic reviewers etc). You have to decide your self which checks is nessesary for you - just write a spec for it and let the agent implement. When a spec is done, implement it with engineeringagent - it will iterate over you spec. solve one task a a time clear its context and run nessesary checks and validations (automatically providing feedback to the agent.)

See Principles for core ideas with engineeringagent

This means the flow is really simple:

Primary flow: spec -> implement

Minimal onboarding

  1. Run "uvx engineeringagent init" - this will create the nessesary files and guide you to the through the first decisions.
  2. Start your favorite coding agent at the repository root.
  3. Ask it to write a spec for your change in docs/spec/features/<ID>.yaml.
  4. Implement the spec by uvx engineeringagent run <path-to-spec>.

OBS: This will commit changes to your code! Currently opencode and codex is supported.

AGENTS bootstrap fallback

If your repo does not want to fully edit AGENTS.md first, use this minimum bootstrap snippet in AGENTS.md:

In this repository, run EngineeringAgent CLI commands with `uvx engineeringagent ...`.
Use `engineeringagent approach` for the overall workflow and guidance map.
Use `engineeringagent approach list` to discover topics, then open one (for example `engineeringagent approach specifications`).

This is important as the CLI contains the instructions for the agent how to use the engineeringagent. So to make sure it is used correctly the agent needs to be aware of it. Else keep the AGENTS.md slim - make it a map with links to relevant documentation. Becarefull documenting the code in AGENTS.md - it might confuse the agent more than it helås. Never use a AGENTS.md, made by an agent.

Allowlist recommendation for restricted agents

If your repository uses restrictive agent command allowlists, add these commands:

  • engineeringagent approach *
  • engineeringagent schema *

Repository hygiene

EngineeringAgent runtime state is written under .engineeringagent/progress/ during real runs:

  • .engineeringagent/progress/runs/runs.jsonl
  • .engineeringagent/progress/features/<FEATURE_ID>/run.txt
  • .engineeringagent/progress/features/<FEATURE_ID>/handoff.md
  • .engineeringagent/progress/reviewers/state.json This path is ignored by default via /.engineeringagent/progress/ in .gitignore. These artifacts are lazily materialized on first non-dry writes; dry-run loop execution does not create them.

Contributor policy

  • Pull requests are not accepted for this repository.
  • Code changes are implemented through agents.
  • Open issues for desired outcomes and constraints; useful issues can be promoted into specs.

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

engineeringagent-0.4.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

engineeringagent-0.4.1-py3-none-any.whl (161.5 kB view details)

Uploaded Python 3

File details

Details for the file engineeringagent-0.4.1.tar.gz.

File metadata

  • Download URL: engineeringagent-0.4.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for engineeringagent-0.4.1.tar.gz
Algorithm Hash digest
SHA256 644573b5a973cdd2b1795657206554eef2de6fa489c00f494c259cb62a84fcb1
MD5 dcc62a5a99007f68cba05446e46c425c
BLAKE2b-256 7cca56a7e01e2526246a38e9833a5f585978f12b80d954c1f69b5b06730d02fe

See more details on using hashes here.

File details

Details for the file engineeringagent-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for engineeringagent-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3422644db405b2af8cb34e1812bfe3141e7638ffdcabe63cf2e08214d85909de
MD5 adefd91b3eda7635c75d09b53ce5af47
BLAKE2b-256 cd569ac794f37b77b01062a1f04bc8744f39f6bf23314841adb07815412be5a2

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