aepkit 0.7.1__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.
- {aepkit-0.7.1 → aepkit-0.7.3}/CHANGELOG.md +39 -1
- {aepkit-0.7.1/src/aepkit.egg-info → aepkit-0.7.3}/PKG-INFO +25 -7
- {aepkit-0.7.1 → aepkit-0.7.3}/README.md +22 -4
- {aepkit-0.7.1 → aepkit-0.7.3}/pyproject.toml +2 -2
- {aepkit-0.7.1 → aepkit-0.7.3}/references/autonomous-mode.md +6 -0
- aepkit-0.7.3/src/aepkit/__init__.py +1 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/skill/references/autonomous-mode.md +6 -0
- {aepkit-0.7.1 → aepkit-0.7.3/src/aepkit.egg-info}/PKG-INFO +25 -7
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit.egg-info/requires.txt +2 -2
- aepkit-0.7.1/src/aepkit/__init__.py +0 -1
- {aepkit-0.7.1 → aepkit-0.7.3}/LICENSE +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/MANIFEST.in +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/SKILL.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/references/failure-modes-and-example.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/references/handoffs.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/references/tasks-and-gates.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/setup.cfg +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/__main__.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/cli.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/install_skill.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/lint.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/negcontrol.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/py.typed +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/scaffold.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/skill/SKILL.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/skill/references/failure-modes-and-example.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/skill/references/handoffs.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/skill/references/tasks-and-gates.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/status.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/templates/compliance-log.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/templates/execution-guide.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit/templates/plan-of-record.md +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit.egg-info/SOURCES.txt +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit.egg-info/dependency_links.txt +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit.egg-info/entry_points.txt +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/src/aepkit.egg-info/top_level.txt +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/run.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_cli.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_install_skill.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_lint.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_negcontrol.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_readme_claims.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_scaffold.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_skill_sync.py +0 -0
- {aepkit-0.7.1 → aepkit-0.7.3}/tests/test_status.py +0 -0
|
@@ -7,6 +7,34 @@ 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
|
+
|
|
26
|
+
## [0.7.2] - 2026-11-08
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
- `references/autonomous-mode.md`: an optional step at a phase's close. Once the gate is
|
|
30
|
+
`APPROVED`, the work is pushed and the Auditor brief is up to date, the Auditor may compact
|
|
31
|
+
its own session and resume itself from the brief.
|
|
32
|
+
- `aeprogress` 0.3.0: a `compact_and_resume` tool for the Auditor. After its turn ends, a band
|
|
33
|
+
counts down 40 seconds with Cancel and Compact now; at zero the session is compacted and the
|
|
34
|
+
Auditor resumed with its own `resume` message. A prompt typed by the owner, Esc on the turn,
|
|
35
|
+
or Cancel drops it; a manual `/compact` during the countdown resumes once; a refused or vetoed
|
|
36
|
+
compaction resumes nothing. Options for the seconds and to turn it off.
|
|
37
|
+
|
|
10
38
|
## [0.7.1] - 2026-11-08
|
|
11
39
|
|
|
12
40
|
### Added
|
|
@@ -50,6 +78,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
50
78
|
that used it showed the task as awaiting audit in `aepkit status`. The four sentences
|
|
51
79
|
now say `APPROVED`.
|
|
52
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
|
+
|
|
53
88
|
## [0.6.0] - 2026-10-24
|
|
54
89
|
|
|
55
90
|
### Added
|
|
@@ -334,9 +369,12 @@ Fixes from an independent review of 0.3.0.
|
|
|
334
369
|
- Multi-framework agent installation support for Antigravity, Claude Code, and Cursor.
|
|
335
370
|
- Zero-dependency test runner (`tests/run.py`).
|
|
336
371
|
|
|
337
|
-
[Unreleased]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.
|
|
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
|
|
374
|
+
[0.7.2]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.1...v0.7.2
|
|
338
375
|
[0.7.1]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.7.0...v0.7.1
|
|
339
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
|
|
340
378
|
[0.6.0]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.5.1...v0.6.0
|
|
341
379
|
[0.5.1]: https://github.com/tBeltty/auditor-executor-protocol/compare/v0.5.0...v0.5.1
|
|
342
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.
|
|
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.
|
|
34
|
-
Requires-Dist: mypy==2.4.
|
|
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
|
[](https://opensource.org/licenses/MIT)
|
|
45
45
|
[](https://github.com/astral-sh/ruff)
|
|
46
46
|
[](https://mypy-lang.org/)
|
|
47
|
+
[](https://doi.org/10.5281/zenodo.23633244)
|
|
47
48
|
[](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:
|
|
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
|
-
|
|
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
|
|
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
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](https://github.com/astral-sh/ruff)
|
|
8
8
|
[](https://mypy-lang.org/)
|
|
9
|
+
[](https://doi.org/10.5281/zenodo.23633244)
|
|
9
10
|
[](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:
|
|
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
|
-
|
|
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
|
|
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
|
|
|
@@ -94,6 +94,12 @@ each handoff. The shape that has worked here:
|
|
|
94
94
|
yet expanded, expand it (tasks, gate, model per task, log sections) before launching
|
|
95
95
|
its first task.
|
|
96
96
|
|
|
97
|
+
Optional, at a phase's close: once the gate is `APPROVED`, the work is pushed and the
|
|
98
|
+
Auditor brief is up to date on disk, the Auditor may compact its own session and resume
|
|
99
|
+
itself from the brief, so a long run does not carry every earlier phase in its context.
|
|
100
|
+
On Claude Code the optional `aeprogress` mod offers this as a tool that waits out a short
|
|
101
|
+
countdown the owner can cancel. The protocol does not depend on it.
|
|
102
|
+
|
|
97
103
|
Do not end a turn between a verdict and the next launch unless something on the
|
|
98
104
|
critical-risk list is open. A run that stops to report an `APPROVED` and wait is Guided
|
|
99
105
|
mode by accident.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.7.3"
|
|
@@ -94,6 +94,12 @@ each handoff. The shape that has worked here:
|
|
|
94
94
|
yet expanded, expand it (tasks, gate, model per task, log sections) before launching
|
|
95
95
|
its first task.
|
|
96
96
|
|
|
97
|
+
Optional, at a phase's close: once the gate is `APPROVED`, the work is pushed and the
|
|
98
|
+
Auditor brief is up to date on disk, the Auditor may compact its own session and resume
|
|
99
|
+
itself from the brief, so a long run does not carry every earlier phase in its context.
|
|
100
|
+
On Claude Code the optional `aeprogress` mod offers this as a tool that waits out a short
|
|
101
|
+
countdown the owner can cancel. The protocol does not depend on it.
|
|
102
|
+
|
|
97
103
|
Do not end a turn between a verdict and the next launch unless something on the
|
|
98
104
|
critical-risk list is open. A run that stops to report an `APPROVED` and wait is Guided
|
|
99
105
|
mode by accident.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aepkit
|
|
3
|
-
Version: 0.7.
|
|
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.
|
|
34
|
-
Requires-Dist: mypy==2.4.
|
|
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
|
[](https://opensource.org/licenses/MIT)
|
|
45
45
|
[](https://github.com/astral-sh/ruff)
|
|
46
46
|
[](https://mypy-lang.org/)
|
|
47
|
+
[](https://doi.org/10.5281/zenodo.23633244)
|
|
47
48
|
[](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:
|
|
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
|
-
|
|
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
|
|
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
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.7.1"
|
|
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
|
|
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
|