Extended Python asyncio port of the OpenAI Symphony spec
Project description
Code Factory
🏭 Orchestrate coding agents via Kanban — high autonomy, isolated per-issue workspaces, single-file repo-owned workflow contract
Quick Start · CLI · Workflow · Specification
Code Factory is a Python asyncio implementation and extension of the OpenAI Symphony spec. It
polls tracker work, creates isolated per-issue workspaces, runs coding-agent
sessions inside them, and keeps the workflow contract versioned in
WORKFLOW.md.
Use it when you want repeatable issue execution, repo-owned workflow policy, and enough observability to operate concurrent agent runs without building a custom harness around your coding agent.
Typical Workflow
What You Need
- Python 3.12
uv- A valid
WORKFLOW.md - Access to the tracker configured in
WORKFLOW.md - A working coding-agent command available to
codex.command
Installation
Install cf from PyPI as a uv tool:
uv tool install code-factory-agent
Then run it directly:
cf --help
cf serve --no-guardrails
If you prefer not to install the tool, you can still run it from the repo with
uv run cf ....
Quick Start
1. Install from PyPI
uv tool install code-factory-agent
2. Create a starter workflow in a new project
cf init
cf init walks you through the starter values, renders a
project-specific WORKFLOW.md, and copies this repo's bundled skills into
./.agents/skills. Re-run with --force if you want to overwrite an existing
workflow or skills bundle.
3. Start the service
cf serve --no-guardrails
If you omit the workflow path, the CLI defaults to ./WORKFLOW.md.
4. Create issues and move to Todo
- Create new issues in Linear Backlog
- Move ready-for-dev issues to Todo
5. Steer agents during execution (optional)
Run:
cf steer ENG-123 "also add integration tests please"
This appends operator guidance to an in-flight issue turn.
6. Review PRs
Run:
cf review ENG-123
This will:
- Launch a review worktree and any configured review servers.
- Open the browser automatically, if configured.
- Let you quickly submit PR comments with any problems you find.
7. Move issues to Merging, Todo, or Rework
Move reviewed issues to:
- Merging, if review was successful
- Todo, if you left review comments in the PR
- Rework, if you left review comments and want a full, clean re-attempt at the issue
CLI Overview
The main operator commands are:
cf initto bootstrap a repo-local workflow and bundled skillscf serveto run the long-lived automation servicecf reviewto launch a review worktree and any configured review serverscf steerto append operator guidance to an in-flight issue turncf issue,cf comment,cf workpad, andcf trackerfor tracker-facing operator actions
See docs/cli.md for the general CLI reference and docs/ticket-cli.md for ticket-oriented commands.
Ticket Surfaces
Agent sessions use flat tracker_issue_*, tracker_comment_*,
tracker_pr_link, and tracker_file_upload tools for ticket work. The
orchestrator manages workpad.md synchronization to a ticket comment
automatically during the run.
Operators can use the CLI for the same ticket surface area:
cf issue get ISSUE
cf issue list [--project PROJECT] [--team TEAM] [--state STATE]
cf issue create --team TEAM --title TITLE
cf issue update ISSUE
cf issue move ISSUE --state STATE
cf issue link-pr ISSUE --url URL
cf comment list ISSUE
cf comment create ISSUE
cf comment update COMMENT
cf workpad get ISSUE
cf workpad sync ISSUE
Workflow
WORKFLOW.md is the main operator surface for Code Factory. It keeps tracker
configuration, active states, prompt sections, completion gates, review setup,
workspace hooks, and observability settings in the repo so teams can version and
hot-reload automation policy alongside application code.
See the workflow docs for the current contract:
Observability
Code Factory exposes a local observability API and, when stderr is attached to a TTY, a live terminal dashboard for operators. See docs/observability.md for endpoints, dashboard behavior, and steering/discovery details.
Runtime Notes
- Startup validates the workflow and required dispatch settings before the scheduler loop begins.
WORKFLOW.mdis hot-reloaded automatically; valid changes affect future dispatches without restarting the service.- Only issues in active workflow states are dispatched.
Development
For local development from a checkout:
git clone git@github.com:Benjoyo/code-factory.git
cd code-factory
make setup
Run the CLI directly from the repo with uv run:
uv run cf --help
uv run cf serve --no-guardrails
If you want the checkout on your PATH during development, install the local editable tool:
uv tool install --editable .
Run the full verification suite:
make verify
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 code_factory_agent-0.1.1.tar.gz.
File metadata
- Download URL: code_factory_agent-0.1.1.tar.gz
- Upload date:
- Size: 3.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d96914bcb5700dedbcf400f2dd68796093b4ad52838013336a43a79bbd89af5
|
|
| MD5 |
88a9b0a545d7ae344a0856863a6e366e
|
|
| BLAKE2b-256 |
cf6e1538055e8734c5d79fc16a0eb59fa2746ceae92c6c3025269c1ebb6c45ac
|
Provenance
The following attestation bundles were made for code_factory_agent-0.1.1.tar.gz:
Publisher:
publish.yml on Benjoyo/code-factory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_factory_agent-0.1.1.tar.gz -
Subject digest:
8d96914bcb5700dedbcf400f2dd68796093b4ad52838013336a43a79bbd89af5 - Sigstore transparency entry: 1262004374
- Sigstore integration time:
-
Permalink:
Benjoyo/code-factory@a8d76395befc048b0824f02db0d23249ce8a95c8 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Benjoyo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a8d76395befc048b0824f02db0d23249ce8a95c8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file code_factory_agent-0.1.1-py3-none-any.whl.
File metadata
- Download URL: code_factory_agent-0.1.1-py3-none-any.whl
- Upload date:
- Size: 232.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc748794ae7695712d6245445626a2164f6a16e2aa8b8d2f62351f10f1378bc7
|
|
| MD5 |
b3662eef4def61a35956844eea614987
|
|
| BLAKE2b-256 |
445bf29f0410fbd497ced5fb984bb28e00a78282ba8594f0192ed7a702230a01
|
Provenance
The following attestation bundles were made for code_factory_agent-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on Benjoyo/code-factory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_factory_agent-0.1.1-py3-none-any.whl -
Subject digest:
bc748794ae7695712d6245445626a2164f6a16e2aa8b8d2f62351f10f1378bc7 - Sigstore transparency entry: 1262004437
- Sigstore integration time:
-
Permalink:
Benjoyo/code-factory@a8d76395befc048b0824f02db0d23249ce8a95c8 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Benjoyo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a8d76395befc048b0824f02db0d23249ce8a95c8 -
Trigger Event:
push
-
Statement type: