Skip to main content

project-workflow

Project Workflow is a repository-native delivery system for turning owner intent into planned, implemented, evidenced, reviewed work. Its state is plain Markdown and JSON beside the code, so people and coding agents can inspect the same requirements, status, decisions, and proof.

It supports GitHub Copilot, Claude Code, OpenAI Codex, and Cursor. It complements issue trackers, Git hosts, CI, registries, and deployment platforms; it does not replace their authority.

Quick Start

From the root of an existing Git repository:

uvx --from project-workflow==0.9.1 project init --agent codex

Choose github-copilot, claude-code, codex, or cursor to match the agent that will operate the repository. For an existing installation, use upgrade—not init:

uvx --from project-workflow==0.9.1 project upgrade --agent codex

Then describe the outcome in ordinary language. The installed guidance routes it to the smallest sufficient record:

Route Use it for Durable record
Backlog Optional future intent not ready for execution BL-* row in BACKLOG.md
Fix One bounded correction to a delivered or accepted baseline FIX-* folder and global tracker row
Task One new independently reviewable outcome TASK-* requirements and implementation
Epic Coordinated workstreams with shared parent outcomes EPIC-* contract, decomposition, children, audit, and retro

An in-scope correction stays in its active work item. Completed history is not rewritten to make a later defect look original.

See What Is True

Start with the read-only status projection:

./.project-workflow/cli/workflow status
./.project-workflow/cli/workflow status --id TASK-001
./.project-workflow/cli/workflow status --strict
./.project-workflow/cli/workflow status --format json

Status reports sourced lifecycle, proof, blockers, delivery state, and the next safe action. It does not execute that action. Use Doctor for workflow diagnosis:

./.project-workflow/cli/workflow doctor
./.project-workflow/cli/workflow doctor --strict

Tests, a passing Doctor, Complete, merge, release, deployment, adoption, and owner acceptance are separate evidence layers. Project Workflow reports the strongest layer actually proved.

How Work Moves

The owner confirms the plain-language Intent and outcome boundary once. The Coordinator then plans, clarifies, implements, validates, and commissions QA autonomously inside that approved envelope. Material drift, missing authority, or a changed proof obligation returns to the owner.

The normal Task path is:

Analysing -> Ready -> In Progress -> Testing -> Review -> Complete

Epics use the same outcome discipline plus a contract, authoritative decomposition, child tracker, intent audit, parent acceptance map, closeout audit, and retro. Fixes stay deliberately lighter.

For detailed commands and examples, read Using Project Workflow or run ./.project-workflow/cli/workflow --help.

What Is Installed

Initialization creates:

  • .project-workflow/ configuration, manifest, backlog, trackers, tasks, guidance, and a dependency-free local CLI;
  • host-specific agent guidance for the selected mode;
  • managed instruction blocks that point the agent at repository-local workflow truth.

Tracked requirements, plans, approvals, evidence, and local guidance remain repository-owned. Managed helpers and installed host assets are generated derivatives; update their canonical source or use the supported generator/upgrade path instead of editing copies.

See Documentation and Source Authority for the complete hierarchy and Compatibility for versioned repository support.

Contributing

Project Workflow is one Python package, one public project command, and one generated dependency-free helper. Canonical runtime code is split by domain under src/project_workflow/; src/project_workflow/templates/workflow.py and .project-workflow/cli/workflow.py are generated.

uv sync --locked --extra dev
uv run --locked ruff check src/project_workflow/*.py scripts tests
uv run --locked ruff format --check src/project_workflow/*.py scripts tests
uv run --locked mypy src/project_workflow/*.py
PATH="/opt/homebrew/bin:$PATH" uv run --locked pytest -q

Read Contributing before changing source and Architecture before moving responsibilities. Maintainers should also read Maintenance; public release authority is isolated in RELEASING.md.

Documentation Map

Need Authority
Product mission and stable outcomes Constitution
Repository operating rules AGENTS.md and local guidance
Orientation and first commands This README
Work-item operation Using Project Workflow
Source boundaries and generated ownership Architecture
Development and validation Contributing
Upgrade, hygiene, and generated assets Maintenance
Compatibility policy COMPATIBILITY.md
Public release procedure RELEASING.md
Current command syntax project --help and the local CLI guide

Workflow task folders are durable state and audit history, not competing current product instructions.

License And Support

Project Workflow is available under the MIT License. Report defects and proposals through GitHub Issues.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

project_workflow-0.9.1.tar.gz (691.1 kB view details)

Uploaded Source

Built Distribution

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

project_workflow-0.9.1-py3-none-any.whl (526.6 kB view details)

Uploaded Python 3

File details

Details for the file project_workflow-0.9.1.tar.gz.

File metadata

  • Download URL: project_workflow-0.9.1.tar.gz
  • Upload date:
  • Size: 691.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for project_workflow-0.9.1.tar.gz
Algorithm Hash digest
SHA256 d809a9a5eb0f19e3f98ef350cd6154dd38dee200c190a34824b7630afc822705
MD5 cdfc10731b400c1b88a84b0a8359215b
BLAKE2b-256 b1c445cda120553f2557e26fd2991f198d407f4a5aa366bd51bec8928fbb0608

See more details on using hashes here.

Provenance

The following attestation bundles were made for project_workflow-0.9.1.tar.gz:

Publisher: release.yml on johndetlefs/project-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file project_workflow-0.9.1-py3-none-any.whl.

File metadata

File hashes

Hashes for project_workflow-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cdc483ea89547071052aa7c723e444ed410c536d33743f475d4f34176bba7ce5
MD5 a7cb280f5ac637b8e6f85f4efb8fea1a
BLAKE2b-256 26b30ca700564a4c5d75b32e6944d64971a0673b481da129eb2fae86fb0f2738

See more details on using hashes here.

Provenance

The following attestation bundles were made for project_workflow-0.9.1-py3-none-any.whl:

Publisher: release.yml on johndetlefs/project-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.0

2 files

0.9.2

2 files

This release

0.9.1 This release

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page