Project Agent Framework
project-agent-framework is a Python package and CLI for running a deterministic Codex loop against a target repository. The intended distribution model is PyPI:
pip install project-agent-framework
It exposes the project-agent command.
This repository's own PRD.md describes the framework itself. When you use the tool on your own project, you point it at your project's own PRD and TODO files.
Core Model
- The target repo owns
PRD.mdandTODO.yml. - The framework owns orchestration, validation, retries, logs, and git checkpoints.
- Architect can revise backlog structure.
- Coder can implement one selected task and update only
coder_note. - QA can verify one selected task and update only
qa_resultandqa_note.
Runtime artifacts are written under .project_agent/ in the target repo unless you override the log path.
Installation
Published-package workflow:
pip install project-agent-framework
Local development workflow from this checkout:
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
You can also run directly from the checkout without installing:
python scripts/run_framework.py <command> ...
New Project Workflow
Bootstrap a fresh repository:
project-agent init --project-dir /path/to/project --write-agent-overrides
That creates starter files:
PRD.mdTODO.ymlAGENTS.shared.mdAGENTS.architect.mdAGENTS.coder.mdAGENTS.qa.md
Initialize git in the target repo if needed:
cd /path/to/project
git init
Then run the framework:
project-agent run --project-dir /path/to/project
Important CLI Arguments
The normal command is:
project-agent run --project-dir /path/to/project
Useful overrides:
project-agent run \
--project-dir /path/to/project \
--prd docs/PRD.product.md \
--todo planning/TODO.yml \
--todo-backup planning/TODO.backup.yml \
--shared-agents AGENTS.shared.md \
--architect-agents AGENTS.architect.md \
--coder-agents AGENTS.coder.md \
--qa-agents AGENTS.qa.md \
--model gpt-5.4 \
--max-retries 3 \
--loop-limit 20
Available commands:
project-agent initproject-agent runproject-agent validateproject-agent task-readproject-agent task-updateproject-agent project-qa-updateproject-agent demoproject-agent materialize-demo
AGENTS Overrides
The package ships with default role instructions inside the wheel. You can layer project-specific constraints on top of them by passing:
--shared-agents--architect-agents--coder-agents--qa-agents
Those files are appended to the packaged defaults before each agent run.
Minimal TODO.yml
tasks:
- id: T-001
title: Build CLI entrypoint
description: Implement the operator-facing command.
acceptance_criteria:
- Command exits with status 0
priority: 1
status: Ready
qa_result: Pending
coder_note: ""
qa_note: ""
depends_on: []
project_qa:
result: Pending
note: ""
Allowed status values:
PendingReadyIn ProgressBlockedDoneRemoved
Allowed qa_result values:
PendingPassFailBlockedNot ApplicableRemoved
Demo
Run the packaged sample project demo without spending live Codex calls:
project-agent demo --workspace /tmp/project-agent-demo --force
From a raw checkout:
python scripts/run_demo.py --workspace /tmp/project-agent-demo --force
The demo materializes a bundled sample target repo, initializes git, runs a deterministic Architect/Coder/QA loop, and leaves logs in the demo workspace.
Publishing Notes
This repo is structured for GitHub Actions Trusted Publishing. The release workflow is release.yml, and the step-by-step release runbook is PUBLISHING.md.
Metadata
Release files for project-agent-framework 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| project_agent_framework-0.1.0.tar.gz | 39.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| project_agent_framework-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.6 kB
Release files / project_agent_framework-0.1.0.tar.gz
| Download URL | project_agent_framework-0.1.0.tar.gz |
|---|---|
| Size | 39.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10bda419e161a6309499b037646ba4f0455f540548071d8a725054d29c8c74ad
|
|
BLAKE2b-256 checksum How to use checksums |
bbb17009bccb8274b95c757d458a634de12391e7820e5a0fe1781e3b67894b8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 17, 2026.
Transparency logRelease files / project_agent_framework-0.1.0-py3-none-any.whl
| Download URL | project_agent_framework-0.1.0-py3-none-any.whl |
|---|---|
| Size | 44.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e3b81156694144d1cfc4810383e2436424fff615f648cf284b0161d19c5f4eb
|
|
BLAKE2b-256 checksum How to use checksums |
984734760a1cbf185958c10a5e991c5f4d58fee8248e8cad8a166d8a430b3fa2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 17, 2026.
Transparency log