PactKit adapter for OpenAI Codex CLI
Project description
pactkit-codex
PactKit PDCA workflow framework adapted for OpenAI Codex CLI.
What is this?
pactkit-codex brings the PactKit spec-driven development workflow to OpenAI's Codex CLI. It deploys:
- AGENTS.md — Global constitution with agent roles and PDCA routing
- Command prompts — 10 PDCA workflow commands (
/project-plan,/project-act, etc.) - Skills — Standalone Python scripts (visualize, board, scaffold)
- Rules — Modular governance rules loaded on-demand per command
Installation
pip install pactkit
pactkit-codexis automatically installed as a dependency ofpactkit.
Quick Start
# Deploy PactKit configuration to ~/.codex/
pactkit-codex init
# Update when pactkit-codex is upgraded
pactkit-codex update
# Check version
pactkit-codex version
What Gets Deployed
After running pactkit-codex init:
~/.codex/
├── AGENTS.md # Global constitution (~6KB)
├── config.toml # Model, sandbox, MCP config
├── .pactkit-version # Version marker for updates
├── rules/ # 9 rule files (on-demand loading)
│ ├── 01-core-protocol.md
│ ├── 02-hierarchy-of-truth.md
│ └── ...
├── prompts/ # 10 PDCA command prompts
│ ├── project-plan.md
│ ├── project-act.md
│ └── ...
└── skills/ # 10 skill directories
├── pactkit-visualize/
├── pactkit-board/
└── ...
./ # Project root
├── AGENTS.md # Project instructions (PactKit-managed)
└── .codex/
├── pactkit.yaml # Project config
└── AGENTS.local.md # Your custom instructions (never overwritten)
Commands
Initialization
pactkit-codex init # Full deployment
pactkit-codex init -t /tmp/preview # Deploy to custom directory
Update
pactkit-codex update # Incremental update (if version changed)
pactkit-codex update --if-needed # Silent no-op if current (for hooks)
pactkit-codex update --force # Force redeploy even if current
pactkit-codex update --dry-run # Show what would change
Utilities
pactkit-codex version # Show version
pactkit-codex spec-lint <file> # Validate spec structure
pactkit-codex doctor # Check project health
pactkit-codex visualize --lazy # Generate code dependency graphs
PDCA Workflow Commands
Once deployed, use these commands in Codex CLI (prefix $):
| Command | Phase | Purpose |
|---|---|---|
$project-init |
Bootstrap | Initialize project governance |
$project-design |
Plan | Greenfield product design |
$project-plan |
Plan | Break down requirements into specs |
$project-act |
Act | Implement code per spec (TDD) |
$project-check |
Check | QA verification |
$project-done |
Done | Finalize and document |
$project-release |
Done | Version release |
$project-pr |
Done | Create pull request |
$project-hotfix |
Act | Quick fix bypass |
$project-clarify |
Plan | Clarify requirements |
Project Structure
Your project should have:
your-project/
├── AGENTS.md # PactKit-managed (auto-generated)
├── .codex/
│ ├── pactkit.yaml # Project config
│ └── AGENTS.local.md # Your custom instructions
├── docs/
│ ├── specs/ # Requirement specifications
│ │ ├── STORY-001.md
│ │ └── ...
│ └── product/
│ ├── sprint_board.md # Current sprint tasks
│ └── context.md # Project context (auto-generated)
└── tests/
├── unit/
└── e2e/
Codex CLI vs Claude Code
This project adapts PactKit for Codex CLI, which has different capabilities:
| Feature | Claude Code | Codex CLI | pactkit-codex Solution |
|---|---|---|---|
| Multi-agent | Native | Single agent | Prompt-level role conventions |
| Custom commands | /project-* |
$project-* |
Deploy to ~/.codex/skills/project-*/SKILL.md |
| Rule loading | @import |
None | Agentic routing (Prerequisites header) |
| Config | settings.json |
config.toml |
Generate with defaults |
Configuration
pactkit.yaml
stack: python # Detected automatically
version: 0.0.1 # Your project version
root: .
developer: "" # Optional: your name prefix for Story IDs
Custom Instructions
Add your project-specific instructions to .codex/AGENTS.local.md:
# Project Local Instructions
## Build Commands
- Run tests: `pytest tests/ -v`
- Lint: `ruff check src/`
## Project Conventions
- Use snake_case for Python
- All APIs must have OpenAPI docs
This file is never overwritten by pactkit-codex updates.
Development
# Clone
git clone https://github.com/anthropics/pactkit-codex.git
cd pactkit-codex
# Install dev dependencies
pip install -e ".[multilang]"
# Run tests
pytest tests/ -v
# Lint
ruff check src/ tests/
License
MIT License - see LICENSE for details.
Related Projects
- PactKit — Core framework
- pactkit-opencode — Adapter for OpenCode IDE
- Codex CLI — OpenAI's terminal-based AI coding assistant
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 pactkit_codex-2.10.2.tar.gz.
File metadata
- Download URL: pactkit_codex-2.10.2.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00e85f00a3ab80fa83ce129924e085f32f97d68dd44e8f954af7e943c505ba97
|
|
| MD5 |
63d5cc47758388c5110fe8d4bc12866b
|
|
| BLAKE2b-256 |
af5a3f1e07f0041ebdd7f71be21d1f9087135e7c591a392c22503437f5ec5b8f
|
Provenance
The following attestation bundles were made for pactkit_codex-2.10.2.tar.gz:
Publisher:
publish.yml on pactkit/pactkit-codex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pactkit_codex-2.10.2.tar.gz -
Subject digest:
00e85f00a3ab80fa83ce129924e085f32f97d68dd44e8f954af7e943c505ba97 - Sigstore transparency entry: 1341612037
- Sigstore integration time:
-
Permalink:
pactkit/pactkit-codex@bd6376ede8f12ee089183771289103fb024ed7dd -
Branch / Tag:
refs/tags/v2.10.2 - Owner: https://github.com/pactkit
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bd6376ede8f12ee089183771289103fb024ed7dd -
Trigger Event:
push
-
Statement type:
File details
Details for the file pactkit_codex-2.10.2-py3-none-any.whl.
File metadata
- Download URL: pactkit_codex-2.10.2-py3-none-any.whl
- Upload date:
- Size: 12.7 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 |
21accabeb37b7a0d82c2152f23226cd129c1f04f08c4fa73b4eeedcf17fcaccc
|
|
| MD5 |
faeba9f41a6595b5bf7919bb390da827
|
|
| BLAKE2b-256 |
6b796741ef71c29ad5f3893d0d75136fd07d8692f7d563cfe829df585d91a9fd
|
Provenance
The following attestation bundles were made for pactkit_codex-2.10.2-py3-none-any.whl:
Publisher:
publish.yml on pactkit/pactkit-codex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pactkit_codex-2.10.2-py3-none-any.whl -
Subject digest:
21accabeb37b7a0d82c2152f23226cd129c1f04f08c4fa73b4eeedcf17fcaccc - Sigstore transparency entry: 1341612041
- Sigstore integration time:
-
Permalink:
pactkit/pactkit-codex@bd6376ede8f12ee089183771289103fb024ed7dd -
Branch / Tag:
refs/tags/v2.10.2 - Owner: https://github.com/pactkit
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bd6376ede8f12ee089183771289103fb024ed7dd -
Trigger Event:
push
-
Statement type: