aepkit 0.7.2__tar.gz → 0.7.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. {aepkit-0.7.2 → aepkit-0.7.3}/CHANGELOG.md +26 -1
  2. {aepkit-0.7.2/src/aepkit.egg-info → aepkit-0.7.3}/PKG-INFO +25 -7
  3. {aepkit-0.7.2 → aepkit-0.7.3}/README.md +22 -4
  4. {aepkit-0.7.2 → aepkit-0.7.3}/pyproject.toml +2 -2
  5. aepkit-0.7.3/src/aepkit/__init__.py +1 -0
  6. {aepkit-0.7.2 → aepkit-0.7.3/src/aepkit.egg-info}/PKG-INFO +25 -7
  7. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit.egg-info/requires.txt +2 -2
  8. aepkit-0.7.2/src/aepkit/__init__.py +0 -1
  9. {aepkit-0.7.2 → aepkit-0.7.3}/LICENSE +0 -0
  10. {aepkit-0.7.2 → aepkit-0.7.3}/MANIFEST.in +0 -0
  11. {aepkit-0.7.2 → aepkit-0.7.3}/SKILL.md +0 -0
  12. {aepkit-0.7.2 → aepkit-0.7.3}/references/autonomous-mode.md +0 -0
  13. {aepkit-0.7.2 → aepkit-0.7.3}/references/failure-modes-and-example.md +0 -0
  14. {aepkit-0.7.2 → aepkit-0.7.3}/references/handoffs.md +0 -0
  15. {aepkit-0.7.2 → aepkit-0.7.3}/references/tasks-and-gates.md +0 -0
  16. {aepkit-0.7.2 → aepkit-0.7.3}/setup.cfg +0 -0
  17. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/__main__.py +0 -0
  18. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/cli.py +0 -0
  19. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/install_skill.py +0 -0
  20. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/lint.py +0 -0
  21. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/negcontrol.py +0 -0
  22. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/py.typed +0 -0
  23. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/scaffold.py +0 -0
  24. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/skill/SKILL.md +0 -0
  25. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/skill/references/autonomous-mode.md +0 -0
  26. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/skill/references/failure-modes-and-example.md +0 -0
  27. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/skill/references/handoffs.md +0 -0
  28. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/skill/references/tasks-and-gates.md +0 -0
  29. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/status.py +0 -0
  30. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/templates/compliance-log.md +0 -0
  31. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/templates/execution-guide.md +0 -0
  32. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit/templates/plan-of-record.md +0 -0
  33. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit.egg-info/SOURCES.txt +0 -0
  34. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit.egg-info/dependency_links.txt +0 -0
  35. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit.egg-info/entry_points.txt +0 -0
  36. {aepkit-0.7.2 → aepkit-0.7.3}/src/aepkit.egg-info/top_level.txt +0 -0
  37. {aepkit-0.7.2 → aepkit-0.7.3}/tests/run.py +0 -0
  38. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_cli.py +0 -0
  39. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_install_skill.py +0 -0
  40. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_lint.py +0 -0
  41. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_negcontrol.py +0 -0
  42. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_readme_claims.py +0 -0
  43. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_scaffold.py +0 -0
  44. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_skill_sync.py +0 -0
  45. {aepkit-0.7.2 → aepkit-0.7.3}/tests/test_status.py +0 -0
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.7.3] - 2026-11-08
11
+
12
+ No change to the package's code. This release puts the new README on PyPI: the protocol's
13
+ Guided and Autonomous modes, the `aeprogress` section with screenshots, and the DOI badge.
14
+
15
+ ### Changed
16
+ - CI runs `claude plugin validate` (the mod and the marketplace) and `claude plugin test` for
17
+ `aeprogress`, on Claude Code 2.1.319, the release the mod is tested against.
18
+ - Dev dependencies: ruff 0.17.3, mypy 2.4.1; GitHub Actions bumped (Dependabot #20, #22).
19
+ - `CITATION.cff` and the README carry the Zenodo concept DOI, 10.5281/zenodo.23633244, which
20
+ resolves to the latest archived release.
21
+ - `aeprogress` 0.3.1: a worker's name in the pane no longer repeats the task ID it carries
22
+ (`P2-T3 Executor P2-T3` is now `P2-T3 Executor`), for subagents, Orca workers and lines
23
+ from a workers command. README screenshots of the pane, the launch limit and the
24
+ compaction countdown.
25
+
10
26
  ## [0.7.2] - 2026-11-08
11
27
 
12
28
  ### Added
@@ -62,6 +78,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
62
78
  that used it showed the task as awaiting audit in `aepkit status`. The four sentences
63
79
  now say `APPROVED`.
64
80
 
81
+ ## [0.6.1] - 2026-10-25
82
+
83
+ ### Added
84
+ - `CITATION.cff`, so each GitHub release is archived on Zenodo with citation metadata. This
85
+ release is the first archived one (10.5281/zenodo.23633245). No code changes, and it was not
86
+ published to PyPI: the package still reported 0.6.0.
87
+
65
88
  ## [0.6.0] - 2026-10-24
66
89
 
67
90
  ### Added
@@ -346,10 +369,12 @@ Fixes from an independent review of 0.3.0.
346
369
  - Multi-framework agent installation support for Antigravity, Claude Code, and Cursor.
347
370
  - Zero-dependency test runner (`tests/run.py`).
348
371
 
349
- [Unreleased]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.2...HEAD
372
+ [Unreleased]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.3...HEAD
373
+ [0.7.3]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.2...v0.7.3
350
374
  [0.7.2]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.1...v0.7.2
351
375
  [0.7.1]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.0...v0.7.1
352
376
  [0.7.0]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.6.0...v0.7.0
377
+ [0.6.1]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.6.0...v0.6.1
353
378
  [0.6.0]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.5.1...v0.6.0
354
379
  [0.5.1]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.5.0...v0.5.1
355
380
  [0.5.0]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.4.0...v0.5.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aepkit
3
- Version: 0.7.2
3
+ Version: 0.7.3
4
4
  Summary: Mechanical support for the Auditor/Executor protocol: scaffold, lint, and negative-control the document set for a multi-phase, multi-agent execution.
5
5
  Author-email: tBeltty <jhonatan@tbelt.online>
6
6
  License-Expression: MIT
@@ -30,8 +30,8 @@ Requires-Dist: pytest-cov>=4.0; extra == "test"
30
30
  Provides-Extra: dev
31
31
  Requires-Dist: pytest>=7.0; extra == "dev"
32
32
  Requires-Dist: pytest-cov>=4.0; extra == "dev"
33
- Requires-Dist: ruff==0.16.10; extra == "dev"
34
- Requires-Dist: mypy==2.4.0; extra == "dev"
33
+ Requires-Dist: ruff==0.17.3; extra == "dev"
34
+ Requires-Dist: mypy==2.4.1; extra == "dev"
35
35
  Requires-Dist: build==1.6.1; extra == "dev"
36
36
  Requires-Dist: twine==7.0.0; extra == "dev"
37
37
  Dynamic: license-file
@@ -44,13 +44,14 @@ Dynamic: license-file
44
44
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
45
45
  [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
46
46
  [![Checked with mypy](https://img.shields.io/badge/mypy-strict-blue)](https://mypy-lang.org/)
47
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23633244.svg)](https://doi.org/10.5281/zenodo.23633244)
47
48
  [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/tBeltty/auditor-executor-protocol/blob/main/pyproject.toml)
48
49
 
49
50
  A two-role protocol for running multi-phase work through AI agents without the plan drifting into open-ended discussion and without "all tests pass" masquerading as verification.
50
51
 
51
52
  The **Auditor** defines what "done" means and proves it independently. The **Executor** implements one numbered task at a time and logs command output. Neither role crosses into the other.
52
53
 
53
- [`SKILL.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/SKILL.md) specifies the protocol core; [`references/`](https://github.com/tBeltty/auditor-executor-protocol/tree/main/references) holds the parts an agent loads only when it reaches that step (task and gate writing, handoff templates, Autonomous mode, failure modes and a worked example). `aepkit` is a zero-dependency Python CLI that automates scaffolding, drift linting, negative controls, status tallies, and installing the skill into your agent.
54
+ [`SKILL.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/SKILL.md) specifies the protocol core; [`references/`](https://github.com/tBeltty/auditor-executor-protocol/tree/main/references) holds the parts an agent loads only when it reaches that step (task and gate writing, handoff templates, Autonomous mode, failure modes and a worked example). `aepkit` is a zero-dependency Python CLI that automates scaffolding, drift linting, negative controls, status tallies, and installing the skill into your agent. On Claude Code, the optional [`aeprogress`](#6-optional-aeprogress-for-claude-code) mod shows a run's progress beside the chat, holds back Executor launches when the machine is busy, and compacts the Auditor's session when a phase closes.
54
55
 
55
56
  ---
56
57
 
@@ -84,6 +85,8 @@ The Auditor never takes the Executor's word for a result: it re-runs every verif
84
85
 
85
86
  One person can run this workflow alone by switching hats between two isolated agent sessions. Keep them isolated, so the Auditor is never checking its own work.
86
87
 
88
+ The owner picks one of two modes at the start of a run. In **Guided** mode the owner pastes each handoff into a fresh Executor session and sees every verdict. In **Autonomous** mode the Auditor launches Executors as subagents with an explicit model per task, answers their `BLOCKED` questions with a decision entry in the log, and reports once per closed phase, interrupting the owner only for a numbered critical-risk list ([`references/autonomous-mode.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/references/autonomous-mode.md)).
89
+
87
90
  ---
88
91
 
89
92
  ## The Four-Document Paper Trail
@@ -176,16 +179,31 @@ The `sed -i ''` form above is BSD/macOS sed; on GNU/Linux use `sed -i 's/.../...
176
179
 
177
180
  A failure only proves something if it is the failure you meant. A syntax error, a missing import or a mistyped test command also makes the test exit non-zero. `--expect` takes a regular expression that the failing run's output must match, and the control fails if it does not. Without `--expect`, output that looks like a syntax, import, collection or command-not-found error is flagged with a `WARNING` next to the `OK`, and you need to read the transcript to confirm the reason.
178
181
 
179
- ### Optional: Progress Pane for Claude Code
182
+ ### 6. Optional: `aeprogress` for Claude Code
183
+
184
+ `aeprogress` is a Claude Code mod for runs where the Auditor launches Executors as subagents or as workers of a harness such as Orca. The protocol does not depend on it, and it reads the run only through `aepkit status --json`.
185
+
186
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/pane.png" alt="The aeprogress pane: 43.3% overall, a bar per phase, P2-T3 in progress on a subagent, P2-T4 awaiting audit, P2-T2 conditional, and the machine at 31% with 1 of 2 workers live" width="420">
187
+
188
+ It does three things:
189
+
190
+ 1. **A pane beside the chat** with the overall percentage, one bar per phase (weighted by an optional `Weight` column in the plan), who is working on which task ID (Claude Code subagents, Orca workers, or any harness through a command of your own), what awaits audit, what needs attention, and the machine's load. It refreshes after each turn, and every 20 seconds while it is open.
191
+ 2. **A launch limit.** While a run is found, it refuses to launch another Executor past 2 live workers, 1 building worker, or a machine more than 75% busy for a build, and the refusal says which limit was hit. A handoff that builds nothing carries the line `Load: docs-only` ([`references/handoffs.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/references/handoffs.md)) and only answers to the worker count. On macOS it also recommends excluding the project from Spotlight when indexing keeps the machine busy.
192
+
193
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/launch-limit.png" alt="A second building Executor refused: 1 building worker is live (limit 1)">
194
+
195
+ 3. **Compaction when a phase closes.** In Autonomous mode, once a gate is `APPROVED` and the Auditor brief is up to date on disk, the Auditor calls the mod's `compact_and_resume` tool. After its turn, a 40-second countdown lets you cancel; then the session is compacted and the Auditor resumes from its own message. Typing a prompt, pressing Esc or running `/compact` yourself takes over.
196
+
197
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/compact-countdown.png" alt="The countdown band: Compacting in 33s, with Cancel and Compact now">
180
198
 
181
- `aeprogress` is a Claude Code mod that keeps a pane beside the chat with the run's overall percentage, a bar per phase, who is working on which task ID (Claude Code subagents, Orca workers, or any other harness through a command of your own), what awaits audit, what needs attention, and the machine's load. It reads the log through `aepkit status --json` and refreshes after each turn, and every 20 seconds while the pane is open. While a run is found it also holds back launching another Executor past a worker count or a machine load (2 workers, 1 building, 75% busy by default; a handoff marked `Load: docs-only` does not count as a build), and on macOS it recommends excluding the project from Spotlight when indexing keeps the machine busy. The protocol does not depend on it.
199
+ Install it at the prompt of a Claude Code terminal session, then open it:
182
200
 
183
201
  ```
184
202
  /plugin install aeprogress --marketplace tBeltty/auditor-executor-protocol
185
203
  /aeprogress docs/<task-name>
186
204
  ```
187
205
 
188
- It works in the terminal and in the desktop app's local sessions. Claude Code's mod API is early access, so a Claude Code release can break it. Setup, options and how the percentage is computed: [integrations/claude-code/aeprogress](https://github.com/tBeltty/auditor-executor-protocol/tree/main/integrations/claude-code/aeprogress).
206
+ It works in the terminal and in the desktop app's local sessions (in the app: **+** next to the prompt, **Plugins**, **Add marketplace**). Every limit and feature is an option in `/config`. Claude Code marks its mod API as early access, so a Claude Code release can break it. Setup, options and how each number is computed: [integrations/claude-code/aeprogress](https://github.com/tBeltty/auditor-executor-protocol/tree/main/integrations/claude-code/aeprogress).
189
207
 
190
208
  ---
191
209
 
@@ -6,13 +6,14 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
  [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
8
8
  [![Checked with mypy](https://img.shields.io/badge/mypy-strict-blue)](https://mypy-lang.org/)
9
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23633244.svg)](https://doi.org/10.5281/zenodo.23633244)
9
10
  [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/tBeltty/auditor-executor-protocol/blob/main/pyproject.toml)
10
11
 
11
12
  A two-role protocol for running multi-phase work through AI agents without the plan drifting into open-ended discussion and without "all tests pass" masquerading as verification.
12
13
 
13
14
  The **Auditor** defines what "done" means and proves it independently. The **Executor** implements one numbered task at a time and logs command output. Neither role crosses into the other.
14
15
 
15
- [`SKILL.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/SKILL.md) specifies the protocol core; [`references/`](https://github.com/tBeltty/auditor-executor-protocol/tree/main/references) holds the parts an agent loads only when it reaches that step (task and gate writing, handoff templates, Autonomous mode, failure modes and a worked example). `aepkit` is a zero-dependency Python CLI that automates scaffolding, drift linting, negative controls, status tallies, and installing the skill into your agent.
16
+ [`SKILL.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/SKILL.md) specifies the protocol core; [`references/`](https://github.com/tBeltty/auditor-executor-protocol/tree/main/references) holds the parts an agent loads only when it reaches that step (task and gate writing, handoff templates, Autonomous mode, failure modes and a worked example). `aepkit` is a zero-dependency Python CLI that automates scaffolding, drift linting, negative controls, status tallies, and installing the skill into your agent. On Claude Code, the optional [`aeprogress`](#6-optional-aeprogress-for-claude-code) mod shows a run's progress beside the chat, holds back Executor launches when the machine is busy, and compacts the Auditor's session when a phase closes.
16
17
 
17
18
  ---
18
19
 
@@ -46,6 +47,8 @@ The Auditor never takes the Executor's word for a result: it re-runs every verif
46
47
 
47
48
  One person can run this workflow alone by switching hats between two isolated agent sessions. Keep them isolated, so the Auditor is never checking its own work.
48
49
 
50
+ The owner picks one of two modes at the start of a run. In **Guided** mode the owner pastes each handoff into a fresh Executor session and sees every verdict. In **Autonomous** mode the Auditor launches Executors as subagents with an explicit model per task, answers their `BLOCKED` questions with a decision entry in the log, and reports once per closed phase, interrupting the owner only for a numbered critical-risk list ([`references/autonomous-mode.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/references/autonomous-mode.md)).
51
+
49
52
  ---
50
53
 
51
54
  ## The Four-Document Paper Trail
@@ -138,16 +141,31 @@ The `sed -i ''` form above is BSD/macOS sed; on GNU/Linux use `sed -i 's/.../...
138
141
 
139
142
  A failure only proves something if it is the failure you meant. A syntax error, a missing import or a mistyped test command also makes the test exit non-zero. `--expect` takes a regular expression that the failing run's output must match, and the control fails if it does not. Without `--expect`, output that looks like a syntax, import, collection or command-not-found error is flagged with a `WARNING` next to the `OK`, and you need to read the transcript to confirm the reason.
140
143
 
141
- ### Optional: Progress Pane for Claude Code
144
+ ### 6. Optional: `aeprogress` for Claude Code
145
+
146
+ `aeprogress` is a Claude Code mod for runs where the Auditor launches Executors as subagents or as workers of a harness such as Orca. The protocol does not depend on it, and it reads the run only through `aepkit status --json`.
147
+
148
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/pane.png" alt="The aeprogress pane: 43.3% overall, a bar per phase, P2-T3 in progress on a subagent, P2-T4 awaiting audit, P2-T2 conditional, and the machine at 31% with 1 of 2 workers live" width="420">
149
+
150
+ It does three things:
151
+
152
+ 1. **A pane beside the chat** with the overall percentage, one bar per phase (weighted by an optional `Weight` column in the plan), who is working on which task ID (Claude Code subagents, Orca workers, or any harness through a command of your own), what awaits audit, what needs attention, and the machine's load. It refreshes after each turn, and every 20 seconds while it is open.
153
+ 2. **A launch limit.** While a run is found, it refuses to launch another Executor past 2 live workers, 1 building worker, or a machine more than 75% busy for a build, and the refusal says which limit was hit. A handoff that builds nothing carries the line `Load: docs-only` ([`references/handoffs.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/references/handoffs.md)) and only answers to the worker count. On macOS it also recommends excluding the project from Spotlight when indexing keeps the machine busy.
154
+
155
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/launch-limit.png" alt="A second building Executor refused: 1 building worker is live (limit 1)">
156
+
157
+ 3. **Compaction when a phase closes.** In Autonomous mode, once a gate is `APPROVED` and the Auditor brief is up to date on disk, the Auditor calls the mod's `compact_and_resume` tool. After its turn, a 40-second countdown lets you cancel; then the session is compacted and the Auditor resumes from its own message. Typing a prompt, pressing Esc or running `/compact` yourself takes over.
158
+
159
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/compact-countdown.png" alt="The countdown band: Compacting in 33s, with Cancel and Compact now">
142
160
 
143
- `aeprogress` is a Claude Code mod that keeps a pane beside the chat with the run's overall percentage, a bar per phase, who is working on which task ID (Claude Code subagents, Orca workers, or any other harness through a command of your own), what awaits audit, what needs attention, and the machine's load. It reads the log through `aepkit status --json` and refreshes after each turn, and every 20 seconds while the pane is open. While a run is found it also holds back launching another Executor past a worker count or a machine load (2 workers, 1 building, 75% busy by default; a handoff marked `Load: docs-only` does not count as a build), and on macOS it recommends excluding the project from Spotlight when indexing keeps the machine busy. The protocol does not depend on it.
161
+ Install it at the prompt of a Claude Code terminal session, then open it:
144
162
 
145
163
  ```
146
164
  /plugin install aeprogress --marketplace tBeltty/auditor-executor-protocol
147
165
  /aeprogress docs/<task-name>
148
166
  ```
149
167
 
150
- It works in the terminal and in the desktop app's local sessions. Claude Code's mod API is early access, so a Claude Code release can break it. Setup, options and how the percentage is computed: [integrations/claude-code/aeprogress](https://github.com/tBeltty/auditor-executor-protocol/tree/main/integrations/claude-code/aeprogress).
168
+ It works in the terminal and in the desktop app's local sessions (in the app: **+** next to the prompt, **Plugins**, **Add marketplace**). Every limit and feature is an option in `/config`. Claude Code marks its mod API as early access, so a Claude Code release can break it. Setup, options and how each number is computed: [integrations/claude-code/aeprogress](https://github.com/tBeltty/auditor-executor-protocol/tree/main/integrations/claude-code/aeprogress).
151
169
 
152
170
  ---
153
171
 
@@ -50,8 +50,8 @@ test = [
50
50
  dev = [
51
51
  "pytest>=7.0",
52
52
  "pytest-cov>=4.0",
53
- "ruff==0.16.10",
54
- "mypy==2.4.0",
53
+ "ruff==0.17.3",
54
+ "mypy==2.4.1",
55
55
  "build==1.6.1",
56
56
  "twine==7.0.0",
57
57
  ]
@@ -0,0 +1 @@
1
+ __version__ = "0.7.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aepkit
3
- Version: 0.7.2
3
+ Version: 0.7.3
4
4
  Summary: Mechanical support for the Auditor/Executor protocol: scaffold, lint, and negative-control the document set for a multi-phase, multi-agent execution.
5
5
  Author-email: tBeltty <jhonatan@tbelt.online>
6
6
  License-Expression: MIT
@@ -30,8 +30,8 @@ Requires-Dist: pytest-cov>=4.0; extra == "test"
30
30
  Provides-Extra: dev
31
31
  Requires-Dist: pytest>=7.0; extra == "dev"
32
32
  Requires-Dist: pytest-cov>=4.0; extra == "dev"
33
- Requires-Dist: ruff==0.16.10; extra == "dev"
34
- Requires-Dist: mypy==2.4.0; extra == "dev"
33
+ Requires-Dist: ruff==0.17.3; extra == "dev"
34
+ Requires-Dist: mypy==2.4.1; extra == "dev"
35
35
  Requires-Dist: build==1.6.1; extra == "dev"
36
36
  Requires-Dist: twine==7.0.0; extra == "dev"
37
37
  Dynamic: license-file
@@ -44,13 +44,14 @@ Dynamic: license-file
44
44
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
45
45
  [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
46
46
  [![Checked with mypy](https://img.shields.io/badge/mypy-strict-blue)](https://mypy-lang.org/)
47
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.23633244.svg)](https://doi.org/10.5281/zenodo.23633244)
47
48
  [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](https://github.com/tBeltty/auditor-executor-protocol/blob/main/pyproject.toml)
48
49
 
49
50
  A two-role protocol for running multi-phase work through AI agents without the plan drifting into open-ended discussion and without "all tests pass" masquerading as verification.
50
51
 
51
52
  The **Auditor** defines what "done" means and proves it independently. The **Executor** implements one numbered task at a time and logs command output. Neither role crosses into the other.
52
53
 
53
- [`SKILL.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/SKILL.md) specifies the protocol core; [`references/`](https://github.com/tBeltty/auditor-executor-protocol/tree/main/references) holds the parts an agent loads only when it reaches that step (task and gate writing, handoff templates, Autonomous mode, failure modes and a worked example). `aepkit` is a zero-dependency Python CLI that automates scaffolding, drift linting, negative controls, status tallies, and installing the skill into your agent.
54
+ [`SKILL.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/SKILL.md) specifies the protocol core; [`references/`](https://github.com/tBeltty/auditor-executor-protocol/tree/main/references) holds the parts an agent loads only when it reaches that step (task and gate writing, handoff templates, Autonomous mode, failure modes and a worked example). `aepkit` is a zero-dependency Python CLI that automates scaffolding, drift linting, negative controls, status tallies, and installing the skill into your agent. On Claude Code, the optional [`aeprogress`](#6-optional-aeprogress-for-claude-code) mod shows a run's progress beside the chat, holds back Executor launches when the machine is busy, and compacts the Auditor's session when a phase closes.
54
55
 
55
56
  ---
56
57
 
@@ -84,6 +85,8 @@ The Auditor never takes the Executor's word for a result: it re-runs every verif
84
85
 
85
86
  One person can run this workflow alone by switching hats between two isolated agent sessions. Keep them isolated, so the Auditor is never checking its own work.
86
87
 
88
+ The owner picks one of two modes at the start of a run. In **Guided** mode the owner pastes each handoff into a fresh Executor session and sees every verdict. In **Autonomous** mode the Auditor launches Executors as subagents with an explicit model per task, answers their `BLOCKED` questions with a decision entry in the log, and reports once per closed phase, interrupting the owner only for a numbered critical-risk list ([`references/autonomous-mode.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/references/autonomous-mode.md)).
89
+
87
90
  ---
88
91
 
89
92
  ## The Four-Document Paper Trail
@@ -176,16 +179,31 @@ The `sed -i ''` form above is BSD/macOS sed; on GNU/Linux use `sed -i 's/.../...
176
179
 
177
180
  A failure only proves something if it is the failure you meant. A syntax error, a missing import or a mistyped test command also makes the test exit non-zero. `--expect` takes a regular expression that the failing run's output must match, and the control fails if it does not. Without `--expect`, output that looks like a syntax, import, collection or command-not-found error is flagged with a `WARNING` next to the `OK`, and you need to read the transcript to confirm the reason.
178
181
 
179
- ### Optional: Progress Pane for Claude Code
182
+ ### 6. Optional: `aeprogress` for Claude Code
183
+
184
+ `aeprogress` is a Claude Code mod for runs where the Auditor launches Executors as subagents or as workers of a harness such as Orca. The protocol does not depend on it, and it reads the run only through `aepkit status --json`.
185
+
186
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/pane.png" alt="The aeprogress pane: 43.3% overall, a bar per phase, P2-T3 in progress on a subagent, P2-T4 awaiting audit, P2-T2 conditional, and the machine at 31% with 1 of 2 workers live" width="420">
187
+
188
+ It does three things:
189
+
190
+ 1. **A pane beside the chat** with the overall percentage, one bar per phase (weighted by an optional `Weight` column in the plan), who is working on which task ID (Claude Code subagents, Orca workers, or any harness through a command of your own), what awaits audit, what needs attention, and the machine's load. It refreshes after each turn, and every 20 seconds while it is open.
191
+ 2. **A launch limit.** While a run is found, it refuses to launch another Executor past 2 live workers, 1 building worker, or a machine more than 75% busy for a build, and the refusal says which limit was hit. A handoff that builds nothing carries the line `Load: docs-only` ([`references/handoffs.md`](https://github.com/tBeltty/auditor-executor-protocol/blob/main/references/handoffs.md)) and only answers to the worker count. On macOS it also recommends excluding the project from Spotlight when indexing keeps the machine busy.
192
+
193
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/launch-limit.png" alt="A second building Executor refused: 1 building worker is live (limit 1)">
194
+
195
+ 3. **Compaction when a phase closes.** In Autonomous mode, once a gate is `APPROVED` and the Auditor brief is up to date on disk, the Auditor calls the mod's `compact_and_resume` tool. After its turn, a 40-second countdown lets you cancel; then the session is compacted and the Auditor resumes from its own message. Typing a prompt, pressing Esc or running `/compact` yourself takes over.
196
+
197
+ <img src="https://raw.githubusercontent.com/tBeltty/auditor-executor-protocol/main/integrations/claude-code/aeprogress/assets/compact-countdown.png" alt="The countdown band: Compacting in 33s, with Cancel and Compact now">
180
198
 
181
- `aeprogress` is a Claude Code mod that keeps a pane beside the chat with the run's overall percentage, a bar per phase, who is working on which task ID (Claude Code subagents, Orca workers, or any other harness through a command of your own), what awaits audit, what needs attention, and the machine's load. It reads the log through `aepkit status --json` and refreshes after each turn, and every 20 seconds while the pane is open. While a run is found it also holds back launching another Executor past a worker count or a machine load (2 workers, 1 building, 75% busy by default; a handoff marked `Load: docs-only` does not count as a build), and on macOS it recommends excluding the project from Spotlight when indexing keeps the machine busy. The protocol does not depend on it.
199
+ Install it at the prompt of a Claude Code terminal session, then open it:
182
200
 
183
201
  ```
184
202
  /plugin install aeprogress --marketplace tBeltty/auditor-executor-protocol
185
203
  /aeprogress docs/<task-name>
186
204
  ```
187
205
 
188
- It works in the terminal and in the desktop app's local sessions. Claude Code's mod API is early access, so a Claude Code release can break it. Setup, options and how the percentage is computed: [integrations/claude-code/aeprogress](https://github.com/tBeltty/auditor-executor-protocol/tree/main/integrations/claude-code/aeprogress).
206
+ It works in the terminal and in the desktop app's local sessions (in the app: **+** next to the prompt, **Plugins**, **Add marketplace**). Every limit and feature is an option in `/config`. Claude Code marks its mod API as early access, so a Claude Code release can break it. Setup, options and how each number is computed: [integrations/claude-code/aeprogress](https://github.com/tBeltty/auditor-executor-protocol/tree/main/integrations/claude-code/aeprogress).
189
207
 
190
208
  ---
191
209
 
@@ -2,8 +2,8 @@
2
2
  [dev]
3
3
  pytest>=7.0
4
4
  pytest-cov>=4.0
5
- ruff==0.16.10
6
- mypy==2.4.0
5
+ ruff==0.17.3
6
+ mypy==2.4.1
7
7
  build==1.6.1
8
8
  twine==7.0.0
9
9
 
@@ -1 +0,0 @@
1
- __version__ = "0.7.2"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes