Eä Workflow — agent-driven development framework
Project description
eawf — Eä Workflow
State-first, agent-driven development framework. Parallel waves, strict schema, Claude Code adapter.
Install
git clone <repo> && cd eawf && uv sync
# or, install as a tool from the local checkout:
uv tool install --from . eawf
Quickstart (new project)
cd /path/to/your/repo
eawf init # interactive wizard
eawf plugin install claude # render local .claude/ skills/agents/hooks
eawf phase open --auto --title "Bootstrap"
Workflow
research → plan → execute (parallel waves) → cherry-pick → ship phase
Use slash commands /research, /prep, /audit, /ship, /review,
/polish, or /flow to drive the lifecycle.
What gets committed
.ea/state.json— canonical project ledger. The eawfd daemon is the sole canonical mutator; theeawfstate CLI proxies mutations to it over JSON-RPC and falls back to a directportalockerwrite only when the daemon is unavailable (CI / one-shot / recovery). Read access is free.AGENTS.md— agent contract (regenerated byeawf sync; user region preserved on re-render).
The Claude Code plugin tree (.claude/ + CLAUDE.md) and any user-local
files (.claude/settings.local.json) stay gitignored — they are
machine-specific renders, not committed assets. Re-render anytime via
eawf plugin install claude.
Suggested setup (Claude Code users)
Pick one mode — running both at once makes Claude Code see every
skill / agent / hook twice (CC dedups by name; active body is
undefined). eawf plugin install claude detects an existing
marketplace install under ~/.claude/plugins/ and prompts before
proceeding; pass --force to acknowledge a duplicate render.
Project-local mode (renders into the working repo; ideal when dogfooding eawf or working only on one project):
eawf plugin install claude # render local skills/agents/hooks
eawf doctor # readiness checks
eawf plugin doctor claude # local drift check
Marketplace mode (portable install, ideal when using eawf across
many repos; emits the skills + agents + six session-level hooks
SessionStart / Stop / Pre/PostToolUse filtered to bash git commit/git push):
eawf plugin package claude --target ./build/eawf-plugin
Then in Claude Code:
/plugin marketplace add ./build/eawf-plugin
/plugin install eawf@eawf-local
Other harnesses
eawf plugin install also supports two non-Claude harnesses; no
package step is needed because neither has a marketplace concept —
the renderer writes directly into the workspace root:
eawf plugin install codex # writes .codex/{skills,agents,hooks}/ + config.toml
eawf plugin install opencode # writes opencode.json (managed block) + plugin.js
eawf plugin doctor codex # codex drift check
eawf plugin doctor opencode # opencode drift check
plugin update is currently Claude-only; codex / opencode update
support ships in v0.4.
Verify
uv run pytest
uv run pre-commit run --all-files
uv run mypy src/
Docs
See docs/ — architecture, CLI surface, schemas, policy. Start with the
source map for a one-line-per-package
index of src/eawf/, then the architecture overview.
License
MIT — see LICENSE.
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 eawf-0.3.0.tar.gz.
File metadata
- Download URL: eawf-0.3.0.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331ee90691aae2178131e98a3534ae72991a114953267665a328360f6e79f6e2
|
|
| MD5 |
bf2fe9865bc9f45d11d2847e39282666
|
|
| BLAKE2b-256 |
9b6cf20e0a20df7eae59b0f71e5e7775a3b08b55ac278efe91ccf4cfd2dd1219
|
Provenance
The following attestation bundles were made for eawf-0.3.0.tar.gz:
Publisher:
release.yaml on Elementarno9/eawf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eawf-0.3.0.tar.gz -
Subject digest:
331ee90691aae2178131e98a3534ae72991a114953267665a328360f6e79f6e2 - Sigstore transparency entry: 1631043063
- Sigstore integration time:
-
Permalink:
Elementarno9/eawf@eb5409c78d6fb41a0ae598ad44ea58ec11845fae -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Elementarno9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@eb5409c78d6fb41a0ae598ad44ea58ec11845fae -
Trigger Event:
push
-
Statement type:
File details
Details for the file eawf-0.3.0-py3-none-any.whl.
File metadata
- Download URL: eawf-0.3.0-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb8badb5781174c88a4e91a6c58d00604a9e439652f912a8e7c0bc88b02a31fc
|
|
| MD5 |
2148813e2b04e4b551402497fa9065fc
|
|
| BLAKE2b-256 |
c01eb77bf1b2b16107e400197de345b28f3ca851e8256887092aabdc086b090a
|
Provenance
The following attestation bundles were made for eawf-0.3.0-py3-none-any.whl:
Publisher:
release.yaml on Elementarno9/eawf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eawf-0.3.0-py3-none-any.whl -
Subject digest:
eb8badb5781174c88a4e91a6c58d00604a9e439652f912a8e7c0bc88b02a31fc - Sigstore transparency entry: 1631043072
- Sigstore integration time:
-
Permalink:
Elementarno9/eawf@eb5409c78d6fb41a0ae598ad44ea58ec11845fae -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Elementarno9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@eb5409c78d6fb41a0ae598ad44ea58ec11845fae -
Trigger Event:
push
-
Statement type: