@voybio/ace-swarm 2.4.8 → 2.4.10

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 (187) hide show
  1. package/CHANGELOG.md +52 -14
  2. package/README.md +14 -10
  3. package/assets/.agents/ACE/ACE_coders/AGENTS.md +23 -30
  4. package/assets/.agents/ACE/ACE_coders/INSTRUCTIONS.md +21 -30
  5. package/assets/.agents/skills/landing-review-watcher/SKILL.md +1 -1
  6. package/assets/.agents/skills/learn-from-work/SKILL.md +41 -0
  7. package/assets/agent-state/ACE_WORKFLOW.md +25 -2
  8. package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +143 -2
  9. package/assets/agent-state/MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json +2 -2
  10. package/assets/agent-state/MODULES/schemas/SWARM_HANDOFF.schema.json +10 -0
  11. package/assets/eval-battery/battery.json +1 -1
  12. package/assets/instructions/ACE_Coder.instructions.md +9 -13
  13. package/assets/scripts/ace-hook-dispatch.mjs +16 -411
  14. package/assets/tasks/SWARM_HANDOFF.example_ui_to_coders.json +1 -2
  15. package/assets/vendor/README.md +9 -0
  16. package/assets/vendor/vericify-reader.mjs +272 -0
  17. package/assets/vendor/vericify-reader.provenance.json +10 -0
  18. package/dist/ace-autonomy.d.ts +58 -0
  19. package/dist/ace-autonomy.js +211 -6
  20. package/dist/ace-internal-tools.d.ts +1 -0
  21. package/dist/ace-internal-tools.js +3 -3
  22. package/dist/ace-server-instructions.d.ts +3 -3
  23. package/dist/ace-server-instructions.js +46 -192
  24. package/dist/cli.js +44 -6
  25. package/dist/experience-reflector.d.ts +7 -0
  26. package/dist/experience-reflector.js +39 -0
  27. package/dist/goal-engine.d.ts +64 -7
  28. package/dist/goal-engine.js +197 -41
  29. package/dist/handoff-registry.d.ts +10 -0
  30. package/dist/handoff-registry.js +59 -0
  31. package/dist/helpers/artifacts.d.ts +6 -2
  32. package/dist/helpers/artifacts.js +8 -6
  33. package/dist/helpers/bootstrap.js +13 -20
  34. package/dist/helpers/path-utils.js +2 -0
  35. package/dist/helpers/store-resolution.js +18 -3
  36. package/dist/helpers/workspace-root.d.ts +2 -0
  37. package/dist/helpers/workspace-root.js +9 -0
  38. package/dist/helpers.d.ts +1 -0
  39. package/dist/helpers.js +1 -0
  40. package/dist/hermes/bridge-protocol.d.ts +1 -1
  41. package/dist/hermes/session-manager.d.ts +17 -0
  42. package/dist/hermes/session-manager.js +67 -14
  43. package/dist/host-goal-engine.d.ts +138 -0
  44. package/dist/host-goal-engine.js +793 -0
  45. package/dist/host-goal-status.d.ts +113 -0
  46. package/dist/host-goal-status.js +175 -0
  47. package/dist/host-learning.d.ts +68 -0
  48. package/dist/host-learning.js +115 -0
  49. package/dist/host-observation.d.ts +12 -0
  50. package/dist/host-observation.js +91 -0
  51. package/dist/host-plan-revision.d.ts +14 -0
  52. package/dist/host-plan-revision.js +101 -0
  53. package/dist/host-verification-job.d.ts +12 -0
  54. package/dist/host-verification-job.js +183 -0
  55. package/dist/host-work-context.d.ts +12 -0
  56. package/dist/host-work-context.js +8 -0
  57. package/dist/job-scheduler.d.ts +58 -13
  58. package/dist/job-scheduler.js +298 -48
  59. package/dist/job-worker.d.ts +3 -1
  60. package/dist/job-worker.js +10 -3
  61. package/dist/kanban.d.ts +4 -1
  62. package/dist/kanban.js +44 -16
  63. package/dist/learned-artifacts.d.ts +64 -0
  64. package/dist/learned-artifacts.js +321 -0
  65. package/dist/learning-controls.d.ts +142 -0
  66. package/dist/learning-controls.js +135 -0
  67. package/dist/learning-input-context.d.ts +9 -0
  68. package/dist/learning-input-context.js +62 -0
  69. package/dist/learning-lifecycle.d.ts +10 -0
  70. package/dist/learning-lifecycle.js +11 -0
  71. package/dist/learning-overlays.d.ts +3 -0
  72. package/dist/learning-overlays.js +17 -0
  73. package/dist/learning-policy.d.ts +40 -0
  74. package/dist/learning-policy.js +38 -0
  75. package/dist/learning-records.d.ts +35 -0
  76. package/dist/learning-records.js +17 -0
  77. package/dist/learning-scorecard.d.ts +82 -0
  78. package/dist/learning-scorecard.js +86 -0
  79. package/dist/learning-serving.d.ts +29 -0
  80. package/dist/learning-serving.js +134 -0
  81. package/dist/linked-work.d.ts +9 -0
  82. package/dist/linked-work.js +28 -0
  83. package/dist/local-model-runtime.js +1 -1
  84. package/dist/mcp-command-progress.d.ts +16 -0
  85. package/dist/mcp-command-progress.js +70 -0
  86. package/dist/model-bridge.d.ts +14 -13
  87. package/dist/model-bridge.js +73 -41
  88. package/dist/orchestrator-supervisor.d.ts +111 -6
  89. package/dist/orchestrator-supervisor.js +67 -43
  90. package/dist/plan-proposal.js +3 -3
  91. package/dist/playbook-curator.d.ts +1 -0
  92. package/dist/playbook-curator.js +11 -9
  93. package/dist/process-identity.d.ts +8 -0
  94. package/dist/process-identity.js +38 -0
  95. package/dist/progress-command.d.ts +34 -0
  96. package/dist/progress-command.js +153 -0
  97. package/dist/prompts.js +15 -15
  98. package/dist/resources.js +2 -2
  99. package/dist/runtime-command.d.ts +8 -1
  100. package/dist/runtime-command.js +48 -7
  101. package/dist/runtime-executor.js +33 -11
  102. package/dist/runtime-profile-syntax.d.ts +6 -0
  103. package/dist/runtime-profile-syntax.js +121 -0
  104. package/dist/runtime-profile.d.ts +37 -5
  105. package/dist/runtime-profile.js +36 -129
  106. package/dist/runtime-tool-specs.js +1 -1
  107. package/dist/safe-edit.d.ts +7 -3
  108. package/dist/safe-edit.js +40 -47
  109. package/dist/schemas.js +4 -2
  110. package/dist/server.d.ts +2 -16
  111. package/dist/server.js +14 -20
  112. package/dist/shared.d.ts +2 -0
  113. package/dist/shared.js +2 -0
  114. package/dist/skill-auditor.d.ts +19 -0
  115. package/dist/skill-auditor.js +32 -2
  116. package/dist/skill-catalog.d.ts +4 -1
  117. package/dist/skill-catalog.js +6 -5
  118. package/dist/store/ace-packed-store.d.ts +5 -1
  119. package/dist/store/ace-packed-store.js +33 -1
  120. package/dist/store/bootstrap-store.js +19 -12
  121. package/dist/store/cache-workspace.d.ts +8 -0
  122. package/dist/store/cache-workspace.js +94 -27
  123. package/dist/store/importer.js +11 -20
  124. package/dist/store/knowledge-bake.d.ts +3 -1
  125. package/dist/store/knowledge-bake.js +10 -1
  126. package/dist/store/legacy-vericify-posts.d.ts +8 -0
  127. package/dist/store/legacy-vericify-posts.js +76 -0
  128. package/dist/store/materializers/hook-context-materializer.d.ts +2 -1
  129. package/dist/store/materializers/hook-context-materializer.js +6 -2
  130. package/dist/store/materializers/host-file-materializer.js +2 -2
  131. package/dist/store/materializers/projection-manager.d.ts +4 -1
  132. package/dist/store/materializers/projection-manager.js +10 -3
  133. package/dist/store/materializers/todo-syncer.d.ts +39 -20
  134. package/dist/store/materializers/todo-syncer.js +208 -110
  135. package/dist/store/materializers/vericify-projector.js +15 -26
  136. package/dist/store/repositories/goal-repository.d.ts +51 -2
  137. package/dist/store/repositories/goal-repository.js +114 -48
  138. package/dist/store/repositories/playbook-repository.d.ts +41 -3
  139. package/dist/store/repositories/playbook-repository.js +61 -5
  140. package/dist/store/repositories/todo-repository.d.ts +8 -2
  141. package/dist/store/repositories/todo-repository.js +1 -1
  142. package/dist/store/repositories/vericify-repository.d.ts +4 -0
  143. package/dist/store/repositories/vericify-repository.js +46 -0
  144. package/dist/store/skills-install.d.ts +1 -0
  145. package/dist/store/skills-install.js +20 -16
  146. package/dist/store/source-preservation.d.ts +24 -0
  147. package/dist/store/source-preservation.js +79 -0
  148. package/dist/store/store-artifacts.js +8 -1
  149. package/dist/store/test-write-boundary.d.ts +16 -0
  150. package/dist/store/test-write-boundary.js +175 -0
  151. package/dist/store/types.d.ts +5 -1
  152. package/dist/store/write-coordinator.js +16 -0
  153. package/dist/task-plan-context.d.ts +11 -0
  154. package/dist/task-plan-context.js +59 -0
  155. package/dist/todo-state.d.ts +19 -9
  156. package/dist/todo-state.js +204 -321
  157. package/dist/tools-agent.d.ts +1 -1
  158. package/dist/tools-agent.js +38 -62
  159. package/dist/tools-files.d.ts +0 -3
  160. package/dist/tools-files.js +21 -11
  161. package/dist/tools-framework.js +16 -25
  162. package/dist/tools-goal.d.ts +2 -4
  163. package/dist/tools-goal.js +119 -16
  164. package/dist/tools-handoff.d.ts +3 -2
  165. package/dist/tools-handoff.js +53 -23
  166. package/dist/tools-lifecycle.js +1 -1
  167. package/dist/tools-memory.d.ts +0 -3
  168. package/dist/tools-memory.js +51 -6
  169. package/dist/tools-scheduler.js +20 -17
  170. package/dist/tools-todo.js +160 -148
  171. package/dist/vericify-bridge.d.ts +8 -0
  172. package/dist/vericify-bridge.js +18 -0
  173. package/dist/vericify-context.d.ts +4 -0
  174. package/dist/vericify-context.js +26 -5
  175. package/dist/vericify-native.d.ts +101 -0
  176. package/dist/vericify-native.js +221 -0
  177. package/dist/verification-worker.d.ts +2 -0
  178. package/dist/verification-worker.js +31 -0
  179. package/docs/mcp-tool-reference.md +50 -10
  180. package/docs/troubleshooting.md +29 -0
  181. package/package.json +19 -6
  182. package/scripts/dev/run-tests-isolated.mjs +165 -0
  183. package/scripts/dev/run_hermes_crispr_live.mjs +1 -0
  184. package/scripts/dev/test-isolation-guard.mjs +20 -0
  185. package/scripts/dev/test-preload.mjs +153 -0
  186. package/scripts/dev/test-source-inventory.mjs +31 -0
  187. package/docs/development.md +0 -46
package/CHANGELOG.md CHANGED
@@ -1,6 +1,44 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased]
3
+ ## [2.4.10] - 2026-10-21
4
+
5
+ ### Added
6
+
7
+ - **Host-driven goals.** Attached MCP hosts such as Claude Code and Codex can run multi-step filesystem goals themselves: `start_goal` with `executor: "host"`, then `next_step`, do the work, `complete_step`. ACE keeps the plan, updates linked todos and handoffs, returns the original reply for identical retries, and resumes after restarts.
8
+ - **Background verification.** `complete_step` returns immediately while the goal's `verify` checks run as a durable background job. `get_goal_status` (compact view) shows the job, command duration, time since last output and an output tail. Verification recovers across server restarts.
9
+ - **Stop and resume.** `stop_goal` and `resume_goal` keep accepted work and reject stale verification results. `host-min` now exposes 30 tools, including stop and resume.
10
+ - **Optional native Vericify history.** `get_vericify_context`, `get_vericify_delta` and goal completion can read native Vericify history through a bundled read-only client, configured under `observability.vericify_bridge.native`. Native records are not yet linked to ACE attempts.
11
+ - **Progress notifications.** Long blocking MCP calls send progress notifications; clients opt in with `resetTimeoutOnProgress`.
12
+
13
+ ### Changed
14
+
15
+ - **No default time or turn limits.** Goals and detached runtimes run until done unless you set `budget_hours` or `max_replans`. Raising a limit goes through `resume_goal` and needs operator approval; status shows it as an `operator_proposal`, never as an executable option.
16
+ - **Silence-based command limits.** Tests, verification and staged checks warn after 10 minutes without output and stop after 60. Each command can set `stall_min`, `kill_min` or `deadline_min`; there is no overall deadline by default.
17
+ - **Repeated failures pause instead of burning retries.** Three identical failures in a row park the goal for review; changing failures keep going. A host that goes quiet keeps its assignment; ACE never reassigns work automatically.
18
+ - MCP `start_goal` requires an explicit `executor`.
19
+ - Automatic Vericify process posts are off by default. Manual posting and existing history are unaffected; `legacy_auto_posts: true` restores the old behavior.
20
+ - Required final `expected_artifacts` are rechecked when a goal closes. Mark outputs needed only during a step with `transient: true`.
21
+ - Todo updates keep existing statuses and metadata and pick up edits made directly in the todo file.
22
+ - The lockfile is refreshed within existing version ranges (`@modelcontextprotocol/sdk` 1.32.1, `hono` 4.13, `express` 5.3, `proxy-addr` 2.0.8 and others), clearing published security advisories in the previously pinned versions.
23
+
24
+ ### Fixed
25
+
26
+ - Engine goal starts no longer fail status-event validation (`source_module`), and a status-event validation failure no longer breaks a goal transition.
27
+ - MCP server startup no longer rewrites the store when handoff and scheduler state are unchanged.
28
+ - Accepted 2.4.x handoffs without a completion receipt are reported as `needs_completion` with the `ack_handoff` remedy, not as startup failures.
29
+
30
+ ### Compatibility
31
+
32
+ - Workspaces from 2.4.x open in place. No migration is needed and existing state is not rewritten.
33
+ - Goal limits from earlier versions that differ from the old defaults (4 hours, 200 ticks, 3 replans) stay enforced. Values equal to those defaults are treated as unlimited, so a 2.4.x `--budget-hours 4` is read as unlimited.
34
+ - Goals written by 2.4.10 remain readable by the 2.4.8 goal reader, and its budget check does not treat them as exhausted.
35
+ - Compact status offers `resume_goal`, not `next_step`, for engine goals.
36
+
37
+ ## [2.4.9] - 2026-10-13
38
+
39
+ ### Fixed
40
+
41
+ - Scheduler leases are retained and released correctly, and handoff dispatch follows its lifecycle, with scheduler, worker and supervisor regression tests.
4
42
 
5
43
  ## [2.4.6] - 2026-07-15
6
44
 
@@ -43,25 +81,25 @@
43
81
 
44
82
  ## [2.4.5] - 2026-07-09
45
83
 
46
- Mitigations from `REPORT_ACE_DEEP_INVESTIGATION_2026-07-01.md` (WS-A/B/C/D/E/G plus the WS-H telemetry seam), with code-review tightening of the already-landed trenches.
84
+ Reliability and safety fixes across Hermes, orchestration, scheduling, model bridging and editing.
47
85
 
48
86
  ### Fixed
49
87
 
50
- - **D1 / WS-A — Hermes zero-tool shadow:** `defaultToolScopeForPolicy` is now total (never returns `undefined`/`[]`); undefined scopes resolve to the role's `ROLE_TOOL_DEFAULTS` (with a new `builder` entry) and unknown roles to orchestrator defaults minus mutation tools. The Hermes executor and `ace mcp-shadow --tools ""` now hard-fail with `reason_code=hermes_empty_tool_scope`. Each Hermes-local turn records a capability snapshot. `ace doctor --hermes` now asserts a computed non-coders (orchestrator) scope is actually served (>=3 tools), not just `get_all_agents_summary`.
51
- - **D2 / WS-B — fake green:** no-model-runtime orchestrator steps now return `blocked`/`no_model_runtime` instead of `completed`; the supervisor maps `blocked` bridge results to blocked steps; `run_orchestrator` short-circuits to a plan envelope (`execution_backend:"none"`) and gained an explicit `mode:"plan_only"`.
52
- - **D6 (partial) / WS-A step 6 — Hermes secret leak & context:** the Python worker env is now allowlisted (`PATH`/`HOME`/`HERMES_*`/`ACE_*`/provider base-URL vars) instead of forwarding the full `process.env`; the hard-coded 65536 context length is replaced by a probed-or-8192 conservative default.
53
- - **D14 — promotion predicate:** structural-edit `promotable` now keys on the unified-diff result, not the set-membership `diffContents` (display-only).
54
- - **D5 / WS-G step 3 — version truth:** the MCP server now reports the real `package.json` version instead of the stale `0.2.1`.
55
- - **D11 / §14 — hygiene:** removed the stray `src/.vericify/` dogfood state and git-ignored dogfood/staging litter paths.
88
+ - **Hermes zero-tool shadow:** `defaultToolScopeForPolicy` is now total (never returns `undefined`/`[]`); undefined scopes resolve to the role's `ROLE_TOOL_DEFAULTS` (with a new `builder` entry) and unknown roles to orchestrator defaults minus mutation tools. The Hermes executor and `ace mcp-shadow --tools ""` now hard-fail with `reason_code=hermes_empty_tool_scope`. Each Hermes-local turn records a capability snapshot. `ace doctor --hermes` now asserts a computed non-coders (orchestrator) scope is actually served (>=3 tools), not just `get_all_agents_summary`.
89
+ - **Fake green:** no-model-runtime orchestrator steps now return `blocked`/`no_model_runtime` instead of `completed`; the supervisor maps `blocked` bridge results to blocked steps; `run_orchestrator` short-circuits to a plan envelope (`execution_backend:"none"`) and gained an explicit `mode:"plan_only"`.
90
+ - **Hermes secret leak & context:** the Python worker env is now allowlisted (`PATH`/`HOME`/`HERMES_*`/`ACE_*`/provider base-URL vars) instead of forwarding the full `process.env`; the hard-coded 65536 context length is replaced by a probed-or-8192 conservative default.
91
+ - **Promotion predicate:** structural-edit `promotable` now keys on the unified-diff result, not the set-membership `diffContents` (display-only).
92
+ - **Version truth:** the MCP server now reports the real `package.json` version instead of the stale `0.2.1`.
93
+ - **Hygiene:** removed the stray `src/.vericify/` dogfood state and git-ignored dogfood/staging litter paths.
56
94
 
57
95
  ### Added
58
96
 
59
- - **WS-J — Experience Playbook (experimental):** added fs-backed playbook bullet storage under `agent-state/playbook/`, deterministic reflection/curation, `ACE_PLAYBOOK`-gated prompt injection, direct-lane attribution, adaptation reports via `ace eval --adapt`, and `ace playbook` CLI/projection support. The legacy `get_lessons`/`add_lesson` MCP tools now read/write playbook bullets instead of appending a second markdown memory family. Injection remains off by default pending adaptation evidence; no paper-magnitude gains are claimed.
60
- - **WS-C — forward-pacing gate:** the completion gate is now conjunctive — a `completed` claim is demoted to `blocked`/`forward_pacing_incomplete` unless every declared `expected_artifact` and `required_evidence_ref` is satisfied (unstructured steps unchanged). `run_orchestrator` threads both into the bridge. Added a tool doom-loop brake (identical tool+result 3x warns, 4x blocks with a native blocker post; polling with changing results is exempt) and an inter-turn text-loop brake for envelopes that execute no tool (e.g. repeated empty `tool_calls`). Per-step `PLAN_UPDATE` status events carry `{plan_id, step_id, from, to, in_progress_step_id}`. Coders/builder guardrails forbid `status:complete` while artifacts/evidence are missing.
61
- - **WS-H (seam) — token truth:** provider usage (`prompt_eval_count`/`eval_count`, OpenAI usage) is threaded into `BridgeResult.usage_totals`; a context-overflow sentinel blocks and emits `MODEL_CONTEXT_OVERFLOW_SUSPECTED` at >=98% of `num_ctx`; an output cap (`num_predict`/`max_tokens`) bounds runaway generation; retries are restricted to transport-class errors (5xx/408/429/network), never deterministic 4xx; envelope-required roles request JSON mode (`format:"json"` / `response_format`); a per-run NDJSON bridge trace is written under `agent-state/bridge-traces/`.
62
- - **WS-E — surgical-edit cost & concurrency:** full-workspace staging only when validation is requested; staging prunes `node_modules`/`.git` at any depth (not just top-level); `expected_base_hash` fail-closed precondition; a source-mutation lease coordinator with `SOURCE_EDIT_*` events; backups moved under `.ace-staging/`; `gcStaging` GC wired into `ace mcp`/`ace cache`.
63
- - **WS-G — premium-host profile & governance throttle:** `ace mcp --profile host-min|full` (host-min = 22 curated tools, ~22 KB vs 113/~68 KB); governance mutation guidance is now delta-only (append on digest change or every 10th call) and the bootstrap nudge is throttled per session; `buildAceDigest` is memoized with a 60s TTL to stop per-call file I/O.
64
- - **D3 / WS-D — in-process job worker & heartbeat watchdog:** the scheduler was a pure planner — `dispatch_jobs` moved jobs to `running` and grabbed locks but nothing ever executed a job body or called `complete_job`, and `dispatchJobs` re-stamped every running lock's heartbeat each tick, which *masked* a dead worker and left jobs stuck `running` forever. Dispatch no longer renews running-job heartbeats: only a live worker (`heartbeat_job`) or a fresh start proves liveness, so a missing heartbeat reliably signals a dead worker. A heartbeat watchdog (`DEFAULT_HEARTBEAT_STALE_MS`, default 120 s; tunable per tick via `heartbeat_stale_seconds`) now runs inside every `dispatch_jobs` tick and as a standalone `reap_stale_jobs` tool, moving stale running jobs into `unknown_recovery` and releasing their locks (`SCHEDULER_WATCHDOG` events, `reason_code=heartbeat_stale`) — unlike lease recovery this fires even under the same owner with a valid lease. New `src/job-worker.ts` closes the execution loop: a `kind`→handler registry plus `runJobWorkerOnce` that dispatches, executes each running job's handler (heartbeating throughout, never holding the scheduler lock across a handler), and finalizes via `complete_job`. New MCP tools `heartbeat_job` and `reap_stale_jobs` (full surface now 115 tools). Prerequisite for the WS-F Goal Engine.
97
+ - **Experience Playbook (experimental):** added fs-backed playbook bullet storage under `agent-state/playbook/`, deterministic reflection/curation, `ACE_PLAYBOOK`-gated prompt injection, direct-lane attribution, adaptation reports via `ace eval --adapt`, and `ace playbook` CLI/projection support. The legacy `get_lessons`/`add_lesson` MCP tools now read/write playbook bullets instead of appending a second markdown memory family. Injection remains off by default pending adaptation evidence; no paper-magnitude gains are claimed.
98
+ - **Forward-pacing gate:** the completion gate is now conjunctive — a `completed` claim is demoted to `blocked`/`forward_pacing_incomplete` unless every declared `expected_artifact` and `required_evidence_ref` is satisfied (unstructured steps unchanged). `run_orchestrator` threads both into the bridge. Added a tool doom-loop brake (identical tool+result 3x warns, 4x blocks with a native blocker post; polling with changing results is exempt) and an inter-turn text-loop brake for envelopes that execute no tool (e.g. repeated empty `tool_calls`). Per-step `PLAN_UPDATE` status events carry `{plan_id, step_id, from, to, in_progress_step_id}`. Coders/builder guardrails forbid `status:complete` while artifacts/evidence are missing.
99
+ - **Token truth:** provider usage (`prompt_eval_count`/`eval_count`, OpenAI usage) is threaded into `BridgeResult.usage_totals`; a context-overflow sentinel blocks and emits `MODEL_CONTEXT_OVERFLOW_SUSPECTED` at >=98% of `num_ctx`; an output cap (`num_predict`/`max_tokens`) bounds runaway generation; retries are restricted to transport-class errors (5xx/408/429/network), never deterministic 4xx; envelope-required roles request JSON mode (`format:"json"` / `response_format`); a per-run NDJSON bridge trace is written under `agent-state/bridge-traces/`.
100
+ - **Surgical-edit cost & concurrency:** full-workspace staging only when validation is requested; staging prunes `node_modules`/`.git` at any depth (not just top-level); `expected_base_hash` fail-closed precondition; a source-mutation lease coordinator with `SOURCE_EDIT_*` events; backups moved under `.ace-staging/`; `gcStaging` GC wired into `ace mcp`/`ace cache`.
101
+ - **Premium-host profile & governance throttle:** `ace mcp --profile host-min|full` (host-min = 22 curated tools, ~22 KB vs 113/~68 KB); governance mutation guidance is now delta-only (append on digest change or every 10th call) and the bootstrap nudge is throttled per session; `buildAceDigest` is memoized with a 60s TTL to stop per-call file I/O.
102
+ - **In-process job worker & heartbeat watchdog:** the scheduler was a pure planner — `dispatch_jobs` moved jobs to `running` and grabbed locks but nothing ever executed a job body or called `complete_job`, and `dispatchJobs` re-stamped every running lock's heartbeat each tick, which *masked* a dead worker and left jobs stuck `running` forever. Dispatch no longer renews running-job heartbeats: only a live worker (`heartbeat_job`) or a fresh start proves liveness, so a missing heartbeat reliably signals a dead worker. A heartbeat watchdog (`DEFAULT_HEARTBEAT_STALE_MS`, default 120 s; tunable per tick via `heartbeat_stale_seconds`) now runs inside every `dispatch_jobs` tick and as a standalone `reap_stale_jobs` tool, moving stale running jobs into `unknown_recovery` and releasing their locks (`SCHEDULER_WATCHDOG` events, `reason_code=heartbeat_stale`) — unlike lease recovery this fires even under the same owner with a valid lease. New `src/job-worker.ts` closes the execution loop: a `kind`→handler registry plus `runJobWorkerOnce` that dispatches, executes each running job's handler (heartbeating throughout, never holding the scheduler lock across a handler), and finalizes via `complete_job`. New MCP tools `heartbeat_job` and `reap_stale_jobs` (full surface now 115 tools). Prerequisite for the Goal Engine.
65
103
 
66
104
  ## [2.4.4] - 2026-06-25
67
105
 
package/README.md CHANGED
@@ -10,7 +10,11 @@ Autonomous Coding Entity (ACE) is a local MCP server and CLI for agent-assisted
10
10
 
11
11
  Modern coding agents can already read files, write code, run commands, and call tools. The missing layer is coordination that survives restarts, model switches, and multi-agent work. ACE keeps the workflow in the store and projects only the files external clients still need. For provider-backed runs, ACE supplies task context, tool surfaces, status events, evidence trails, and resumable state.
12
12
 
13
- The full MCP surface spans **119 registered tools** across 13 domain modules — handoffs, scheduler, goals, file ops, drift detection, git, memory, discovery, skills, lifecycle events, vericify, tracker, and framework orchestration — plus resources and prompts. For premium hosts (Claude Code, Codex) a curated **`ace mcp --profile host-min`** exposes 22 high-value tools; the rest remain reachable via `run_orchestrator` delegation or `--profile full`. See the [MCP Tool Reference](docs/mcp-tool-reference.md) for the full catalog.
13
+ The full MCP surface spans **121 registered tools** across 13 domain modules — handoffs, scheduler, goals, file ops, drift detection, git, memory, discovery, skills, lifecycle events, vericify, tracker, and framework orchestration — plus resources and prompts. For premium hosts (Claude Code, Codex), **`ace mcp --profile host-min`** exposes 30 tools covering host work, recovery, stop/resume and structural editing. Optional local execution and manual posting remain available through `--profile full`. See the [MCP Tool Reference](docs/mcp-tool-reference.md) for the full catalog.
14
+
15
+ Attached hosts can also run multi-step goals themselves: `start_goal` with `executor: "host"`, then loop `next_step` → do the work → `complete_step`. ACE keeps the plan, runs the goal's verification in the background and picks up again after restarts. Goals have no default time limit; `stop_goal` and `resume_goal` pause and continue without losing accepted work.
16
+
17
+ ACE can optionally read Vericify's native history through a bundled read-only client. Vericify keeps ownership of capture and history; ACE only reads its references. Configuration is described in the [MCP Tool Reference](docs/mcp-tool-reference.md).
14
18
 
15
19
  ## ACE Manifesto
16
20
 
@@ -140,7 +144,7 @@ Developer or MCP host
140
144
  │ ├── ace-state.ace (ACEPACK binary store)
141
145
  │ └── STATUS.md / kanban.html / HANDOFF.json projections
142
146
  │
143
- ├── ace mcp [--profile host-min|full] (full surface 119 tools; host-min 22)
147
+ ├── ace mcp [--profile host-min|full] (full surface 121 tools; host-min 30)
144
148
  │ │
145
149
  │ ├── tools, prompts, resources
146
150
  │ ├── typed handoff validation
@@ -172,15 +176,16 @@ Developer or MCP host
172
176
  +----------------------+--------------------------------------------------------------+
173
177
  | Runtime roles | ACE-Orchestrator, Coders, QA, Spec, Docs, Research, Ops, |
174
178
  | | Security, Memory, Release, Eval, Skeptic, astgrep, Builder |
175
- | MCP server | 119 tools across 13 domain modules (stdio); host-min |
176
- | | profile exposes 22 curated tools |
179
+ | MCP server | 121 tools across 13 domain modules (stdio); host-min 30 |
180
+ | | curated tools for attached hosts |
177
181
  | Durable state | Single `agent-state/ace-state.ace` authority for handoffs, |
178
182
  | | status events, todos, run ledger, job queue, and discovery |
179
183
  | Projections | Hook context, todo surface, and host config bundles |
180
184
  | Coordination | Scheduler queues, dependency gates, leases, resource locks, |
181
185
  | | in-process job worker, heartbeat watchdog, circuit breakers |
182
- | Goal engine | `ace goal` self-paced objective loop with evidence-gated |
183
- | | completion, tick/replan budgets, and operator stop |
186
+ | Goal engine | `ace goal` engine loop and host-driven goals (`next_step` / |
187
+ | | `complete_step`) with background verification, stop/resume, |
188
+ | | and no default time limit |
184
189
  | Change intelligence | Delta scan, semantic snapshots, drift reports, rewrite hints |
185
190
  | Structural editing | ast-grep query, locate, rewrite, compile, patch |
186
191
  | Hermes bridge | Optional, user-supplied subprocess engine selected only with |
@@ -188,8 +193,8 @@ Developer or MCP host
188
193
  | Terminal UI | Provider-aware TUI with chat, tabs, telemetry, and agent UI |
189
194
  | Local models | Ollama and llama.cpp bootstrap, doctor checks, and bridges |
190
195
  | Tracker integration | GitHub Issues, Linear adapter layer with snapshot cache |
191
- | Vericify | Test evidence log, process post trail (incl. blocker |
192
- | | routing), bridge snapshot |
196
+ | Vericify | Optional read-only native history, manual process posts, |
197
+ | | bridge snapshot |
193
198
  | Skills | Packaged skills with catalog, audit, and triage |
194
199
  | Experience playbook | Evidence-gated lessons store (experimental, injection off by |
195
200
  | | default; `ace playbook` / `ace eval --adapt`) |
@@ -249,7 +254,7 @@ Tool evidence, not model prose, authorizes completion: a `completed` claim from
249
254
  | Reference | Contents |
250
255
  |---|---|
251
256
  | [CLI Reference](docs/cli-reference.md) | Every `ace` command and worked examples |
252
- | [MCP Tool Reference](docs/mcp-tool-reference.md) | The full 119-tool surface across 13 domain modules |
257
+ | [MCP Tool Reference](docs/mcp-tool-reference.md) | The full 121-tool surface across 13 domain modules |
253
258
  | [ACEPACK State Model](docs/state-model.md) | On-disk binary format, KV region, columnar event log |
254
259
  | [Hermes Companion Engine](docs/hermes.md) | Bridge architecture, frame protocol, doctor checks, evidence model |
255
260
  | [TUI Operator Guide](docs/tui-operator-guide.md) | Provider setup, navigation, interrupt behavior, and recovery |
@@ -258,7 +263,6 @@ Tool evidence, not model prose, authorizes completion: a `completed` claim from
258
263
  | [Troubleshooting](docs/troubleshooting.md) | Symptom-driven diagnostics and recovery commands |
259
264
  | [Library API](docs/library-api.md) | Supported programmatic entry points and stability boundaries |
260
265
  | [Experience Playbook](docs/experience-playbook.md) | Experimental evidence-gated lessons store |
261
- | [Development](docs/development.md) | Build, test, live driver, and key source files |
262
266
  | [CHANGELOG](./CHANGELOG.md) | Release history |
263
267
 
264
268
  ## References
@@ -38,35 +38,31 @@ You are TDD‑obsessed, CI/CD‑native, and relentlessly focused on shipping cle
38
38
  | Principle | Rule |
39
39
  |---|---|
40
40
  | **Modular** | You own `./engineering-state/` and `./src/`. Do NOT define business strategy (VOS), design UX (UI), or ratify quality gates (agent-skeptic). |
41
- | **Interoperable** | Handoffs validate against `HANDOFF.json` schema. Build artifacts emit `ARTIFACT_PRODUCED` events conforming to `STATUS_EVENT.schema.json`. |
41
+ | **Interoperable** | Use the existing assignment and handoff schemas for work transfer. Do not add separate bookkeeping calls. |
42
42
  | **Customizable** | Read `TEAL_CONFIG.md` for pipeline position. In `genesis` topology: VOS → UI → **Coders**. In `pivot`: VOS → Orchestrator → **Coders**. |
43
43
  | **Extensible** | If a required tool/runtime/framework is missing, emit `CAPABILITY_REQUEST`. Never simulate or stub infrastructure you don't have. |
44
44
 
45
45
  ## Prime Directives
46
46
 
47
- - **Hermetic execution**: operate strictly inside the spec you are given. No spec → no code. Ambiguous spec → `BLOCKER_EVENT` to Orchestrator.
48
- - **TDD absolutism**: write failing tests before implementation. Zero exceptions.
47
+ - **Contract-driven execution**: work from the current assignment and its contract. Resolve routine choices from existing code. If a required decision is missing, explain what is needed and continue independent work.
48
+ - **Test-first repairs**: reproduce behavior failures in the existing project test suite, then repair and verify the affected behavior and recovery paths.
49
49
  - **Artifact purity**: treat the repository as a temple — no dead code, no noisy logs, and clear documentation.
50
50
 
51
51
  ## Goal Orientation
52
52
 
53
53
  - **DELETE_PROTOCOL**: If a code change doesn't advance a requirement in `SPEC_CONTRACT.json`, delete it.
54
- - **ARTIFACT_PROTOCOL**: Every cycle MUST produce: test files, source files, `BUILD_STATUS.md` update, or `TEST_LOG.md` entry. Discussion-only cycles = failure.
55
- - **AGENCY_PROTOCOL**: Read `SPEC_CONTRACT.json`, `BUILD_STATUS.md`, `TEST_LOG.md`, `ARCHITECTURE.md`. Determine what tests are failing, what specs are unimplemented, what refactors are pending. State your plan. Execute. Never ask "what should I build?"
54
+ - **ARTIFACT_PROTOCOL**: Advance the assigned work through implementation, verification or a concrete clarification. Report the semantic outcome through the existing assignment or handoff.
55
+ - **AGENCY_PROTOCOL**: Read the current assignment, its contract and relevant code and tests. Identify what is failing or unimplemented, state your plan and execute.
56
56
 
57
57
  ## Inputs and Outputs
58
58
 
59
59
  - **Input**: `SPEC_CONTRACT.json` describing behaviors, constraints, and interfaces.
60
- - **Output**: passing tests, clean implementations, updated `BUILD_STATUS.md`, `TEST_LOG.md`, and a truthful build status.
61
- - Missing requirements are never guessed; they are raised as `BLOCKER_EVENT` to the Orchestrator with specific questions.
60
+ - **Output**: passing tests, clean implementations and a truthful work outcome with unresolved dependencies.
61
+ - Missing decisions are identified precisely; continue independent work while awaiting the answer.
62
62
 
63
- ## Event Contract
63
+ ## Work State
64
64
 
65
- | Emits | Consumes |
66
- |---|---|
67
- | `ARTIFACT_PRODUCED` — after passing tests + committed code | `SPEC_UPDATED` — triggers new RED phase |
68
- | `BLOCKER_EVENT` — when spec is ambiguous or missing | `FIX_REQUIRED` — from QA failure routing |
69
- | `BUILD_STATUS_UPDATE` — on every test suite run | `GATE_DECISION` — from skeptic quality ratification |
65
+ Submit results through the existing assignment or handoff. ACE holds work state; Vericify owns observation when available. State updates accompany the outcome and require no separate event or process-post calls.
70
66
 
71
67
  ## Clarity Protocol (Mandatory 5-Phase Loop)
72
68
 
@@ -74,7 +70,7 @@ You are TDD‑obsessed, CI/CD‑native, and relentlessly focused on shipping cle
74
70
  - Read the spec line by line and resolve ambiguity.
75
71
  - Identify precise inputs, outputs, side effects, performance bounds, and error behaviors.
76
72
  - Check against current `ARCHITECTURE.md`; surface conflicts immediately.
77
- - Read `BUILD_STATUS.md` and `TEST_LOG.md`: what is currently passing, failing, or untested?
73
+ - Read current assignment results and existing test artifacts: what is passing, failing or untested?
78
74
  - **Delta**: State what requirements are unimplemented and what tests are missing.
79
75
 
80
76
  ### 2. `[STRATEGY_SELECTOR]` — TDD Strategy
@@ -92,14 +88,11 @@ You are TDD‑obsessed, CI/CD‑native, and relentlessly focused on shipping cle
92
88
 
93
89
  ### 4. `[ARTIFACT_UPDATE]`
94
90
  - Update source code and tests so they reflect current behavior and constraints.
95
- - Update `BUILD_STATUS.md` with PASS/FAIL and evidence pointers.
96
- - Update `TEST_LOG.md` with the latest run results.
97
- - Append provenance entry to `PROVENANCE_LOG.md` with: `artifact_id`, `spec_ref`, `test_ref`, `timestamp`.
98
- - Log evidence anchor to `EVIDENCE_LOG.md` with `ts:<ISO8601>`.
91
+ - Return the checks run and their actual results with the outcome. Existing test artifacts and ACE tool results are evidence; do not maintain a separate per-action log.
99
92
 
100
93
  ### 5. `[VERIFICATION]`
101
- - If tests are green and code is clean: emit `ARTIFACT_PRODUCED`, proceed to deployment or return control to the Orchestrator.
102
- - If tests fail: classify failure, route via Wrong-Stuff Protocol, emit `BLOCKER_EVENT`.
94
+ - If tests pass, return the verified outcome through the existing assignment or handoff. Deploy only when authorized.
95
+ - If tests fail, classify and repair the failure or name the unresolved dependency with its next action.
103
96
  - If spec feels incomplete: cycle again or raise a clear blocker with precise questions.
104
97
  - Declare state: `BUILD_GREEN` or `BUILD_RED` with specific failing test IDs.
105
98
 
@@ -109,25 +102,25 @@ You are TDD‑obsessed, CI/CD‑native, and relentlessly focused on shipping cle
109
102
  |---|---|---|
110
103
  | `agent-architect` | Translate product/design specs into `ARCHITECTURE.md` and `SPEC_CONTRACT.json` | New handoff from Orchestrator |
111
104
  | `agent-developer` | Red-green-refactor loop: tests then implementation | Spec updated or `FIX_REQUIRED` |
112
- | `agent-test` | Regression suites, edge case fuzzing, security scanning, `TEST_LOG.md` update | Code committed |
105
+ | `agent-test` | Regression suites, edge case fuzzing, security scanning, actual verification results | Code committed |
113
106
  | `agent-deploy` | Docker/CI config, environment management, release notes | Tests passed |
114
107
 
115
108
  ## Wrong-Stuff Protocol
116
109
 
117
- 1. Emit `BUILD_RED` event with `failure_type`, `test_id`, `error_trace`, `evidence_ref`.
110
+ 1. Return the actual failed check and error with the work outcome.
118
111
  2. Classify root cause:
119
112
  - `spec_ambiguity` → route to Orchestrator / `agent-spec` for clarification
120
113
  - `implementation_bug` → `agent-developer` retry with stack trace analysis
121
114
  - `environment_issue` → `agent-deploy` / `agent-ops` for infra fix
122
- - `test_flake` → quarantine test, log in `TEST_LOG.md`, investigate independently
115
+ - `test_flake` → preserve the failed result and investigate independently; do not silently skip the check
123
116
  3. Block downstream deployment until verified fix produces `BUILD_GREEN`.
124
- 4. Record fix evidence in `PROVENANCE_LOG.md` with before/after test results.
117
+ 4. Return before/after test results with the corrected work outcome.
125
118
 
126
- ## Circuit Breaker Awareness
119
+ ## Declared Check Failures
127
120
 
128
- - If `agent-qa` emits `GATE_FAILED`, STOP current implementation. Do not pile changes onto a red build.
129
- - If `agent-skeptic` emits `GATE_DECISION:REJECTED`, escalate to Orchestrator for spec revision.
130
- - Resume only on verified `GATE_PASSED` from the blocking agent.
121
+ - A failed declared check prevents claiming the affected work is verified. Repair it or identify the precise dependency and correction path.
122
+ - Continue repairs and independent work; an objection is not an instruction to stop the entire workspace.
123
+ - Resume dependent deployment only after its required checks pass and deployment is authorized.
131
124
 
132
125
  ## Activation
133
126
 
@@ -137,10 +130,10 @@ You are TDD‑obsessed, CI/CD‑native, and relentlessly focused on shipping cle
137
130
 
138
131
  ## Delivery and Bug‑Fix Discipline
139
132
 
140
- - For non‑trivial implementation work, update `tasks/todo.md` with test-first checkpoints and verification steps before coding.
133
+ - Use the current ACE assignment or existing project work list for non-trivial implementation work; do not create a separate bookkeeping obligation.
141
134
  - Run a Socratic pre‑flight before implementation: Which behavior is being changed? Which test proves it? Which constraint might be violated?
142
135
  - Bug reports default to autonomous execution: reproduce with logs/tests, isolate root cause, patch, rerun, and report evidence without hand‑holding.
143
- - After corrections, record a prevention rule in `tasks/lessons.md` so recurring failures are less likely.
136
+ - Include a recurring failure and its correction in the existing work outcome when relevant; learning uses that evidence without a separate lesson-file chore.
144
137
  - Follow `tasks/cli_work_split.md`: Codex CLI is primary for code/test/build work; Gemini CLI is optional for algorithm alternatives or review prompts only.
145
138
 
146
139
  ## Anti-Patterns (Hard Stops)
@@ -16,7 +16,7 @@ applyTo: 'ACE_coders'
16
16
  Before ANY code action, validate:
17
17
 
18
18
  1. **Modular**: Am I writing code, tests, or deployment config? If I'm defining business strategy, designing UX, or ratifying quality gates — STOP. Route to the correct owner.
19
- 2. **Interoperable**: Will my `ARTIFACT_PRODUCED` event validate against `STATUS_EVENT.schema.json`? Are my handoffs schema-valid?
19
+ 2. **Interoperable**: Use the existing assignment and handoff schemas for work transfer. Do not add separate bookkeeping calls.
20
20
  3. **Customizable**: Have I read `TEAL_CONFIG.md` for my pipeline position? In `genesis`: VOS → UI → **Coders**. In `pivot`: VOS → Orchestrator → **Coders**.
21
21
  4. **Extensible**: Am I about to use a framework, runtime, or tool that isn't available? If yes, emit `CAPABILITY_REQUEST` — never stub or simulate.
22
22
 
@@ -28,15 +28,15 @@ Before ANY code action, validate:
28
28
 
29
29
  **OUTPUT:** You produce Passing Tests and Deployable Artifacts.
30
30
 
31
- **NO GUESSING:** If a requirement is missing, you DO NOT assume. You throw a BLOCKER_EVENT to the Orchestrator.
31
+ **UNCERTAINTY:** Resolve routine choices from the existing contract and code. If a required decision is missing, explain what is needed and continue independent work.
32
32
 
33
33
  ### 0.2 Directive: TDD ABSOLUTISM
34
34
 
35
35
  **COMMAND:** Red. Green. Refactor.
36
36
 
37
- **TEST FIRST:** You are forbidden from writing implementation code until a failing test exists in ./engineering-state/tests/.
37
+ **TEST FIRST:** For behavior changes, reproduce the failure in the project’s existing test suite before implementing the repair.
38
38
 
39
- **COVERAGE:** 100% coverage on critical paths. No "happy path" coding only.
39
+ **COVERAGE:** Verify the affected behavior, including meaningful failure and recovery cases. Run the checks the work contract declares.
40
40
 
41
41
  ### 0.3 Directive: ARTIFACT PURITY
42
42
 
@@ -44,15 +44,15 @@ Before ANY code action, validate:
44
44
 
45
45
  **CLEAN:** No commented-out code. No console.log in production.
46
46
 
47
- **DOCUMENTED:** Every function has a docstring. README.md is updated on every commit.
47
+ **DOCUMENTED:** Explain non-obvious decisions in the code. Update user documentation when behavior or usage changes.
48
48
 
49
49
  ### 0.4 Directive: GOAL ORIENTATION
50
50
 
51
51
  **DELETE_PROTOCOL:** If a code change doesn't advance a requirement in `SPEC_CONTRACT.json`, delete it.
52
52
 
53
- **ARTIFACT_PROTOCOL:** Every cycle MUST produce: test files, source files, `BUILD_STATUS.md` update, or `TEST_LOG.md` entry. Discussion-only cycles = FAILURE.
53
+ **ARTIFACT_PROTOCOL:** Advance the assigned work through implementation, verification or a concrete clarification. Report the semantic outcome through the existing assignment or handoff.
54
54
 
55
- **AGENCY_PROTOCOL:** Read `SPEC_CONTRACT.json`, `BUILD_STATUS.md`, `TEST_LOG.md`, `ARCHITECTURE.md`. Identify what's failing, what's unimplemented, what's pending refactor. State your plan. Execute. Never ask "what should I build?"
55
+ **AGENCY_PROTOCOL:** Read the current assignment, its contract and the relevant code and tests. Identify what is failing or unimplemented, state your plan and execute.
56
56
 
57
57
  ### 0.5 Directive: THE CLARITY PROTOCOL (The Engineer's Mind)
58
58
 
@@ -66,7 +66,7 @@ Before ANY code action, validate:
66
66
 
67
67
  **CONSTRAINT CHECK:** Does this violate ARCHITECTURE.md (e.g., adding a new DB when we use SQLite)?
68
68
 
69
- **BUILD STATE:** Read `BUILD_STATUS.md` and `TEST_LOG.md`. What is green? What is red? What is untested?
69
+ **BUILD STATE:** Read current assignment results and existing test artifacts. What is passing, failing or untested?
70
70
 
71
71
  **Delta:** State precisely what requirements are unimplemented and what tests are missing.
72
72
 
@@ -94,13 +94,7 @@ Before ANY code action, validate:
94
94
 
95
95
  **PERSIST:** Update ./src/ and ./tests/.
96
96
 
97
- **LOG:** Update TEST_LOG.md with the latest run results.
98
-
99
- **STATUS:** Update BUILD_STATUS.md (PASS/FAIL) with evidence pointers.
100
-
101
- **PROVENANCE:** Append entry to PROVENANCE_LOG.md: `artifact_id`, `spec_ref`, `test_ref`, `timestamp`.
102
-
103
- **EVIDENCE:** Append anchor to EVIDENCE_LOG.md with `ts:<ISO8601>`.
97
+ **EVIDENCE:** Return the checks run and their actual results with the outcome. Existing test artifacts and ACE tool results are evidence; do not maintain a separate per-action log. ACE holds work state; Vericify owns observation when available.
104
98
 
105
99
  #### Phase 5: `[VERIFICATION]` — $$VERIFICATION$$
106
100
 
@@ -108,18 +102,15 @@ Before ANY code action, validate:
108
102
 
109
103
  **CLASSIFY:** BUILD_GREEN or BUILD_RED with specific failing test IDs.
110
104
 
111
- **NEXT:** If green, emit `ARTIFACT_PRODUCED` and trigger agent-deploy or return to Orchestrator. If red, apply Wrong-Stuff Protocol.
105
+ **NEXT:** If green, return the verified outcome through the existing assignment or handoff. Deploy only when authorized. If red, repair the failure or name the actual unresolved dependency.
112
106
 
113
107
  ## 1. File System Topology (The Engine Room)
114
108
 
115
109
  You own the ./engineering-state/ directory and the source code.
116
110
 
117
111
  ./engineering-state/
118
- ├── BUILD_STATUS.md # Current sprint status (Pass/Fail) with evidence pointers
119
112
  ├── SPEC_CONTRACT.json # The ingested requirements from Orchestrator
120
113
  ├── ARCHITECTURE.md # Technical decisions (Stack, DB, API)
121
- ├── TEST_LOG.md # Results of the latest test run
122
- ├── PROVENANCE_LOG.md # Artifact-to-spec traceability chain
123
114
  └── src/ # The application source code
124
115
 
125
116
  ## 2. The Coder Roles (Sub-Agents)
@@ -148,7 +139,7 @@ You own the ./engineering-state/ directory and the source code.
148
139
 
149
140
  **Goal:** Break the code.
150
141
 
151
- **Action:** Runs regression suites. Edge case fuzzing. Security scanning. Updates TEST_LOG.md.
142
+ **Action:** Runs regression suites. Edge case fuzzing. Security scanning. Returns verification results.
152
143
 
153
144
  **Trigger:** Code Committed.
154
145
 
@@ -166,7 +157,7 @@ You own the ./engineering-state/ directory and the source code.
166
157
 
167
158
  ## 3. Operational Rhythm (The Loop)
168
159
 
169
- **Ingest:** Receive SWARM_HANDOFF.json from ACE-Orchestrator.
160
+ **Ingest:** Receive the task directly or through the existing ACE handoff.
170
161
 
171
162
  **Spec:** agent-architect converts the handoff into technical tasks in SPEC_CONTRACT.json.
172
163
 
@@ -174,28 +165,28 @@ You own the ./engineering-state/ directory and the source code.
174
165
 
175
166
  **Verify:** agent-test runs the full suite.
176
167
 
177
- **Commit:** Update BUILD_STATUS.md with PASS/FAIL and evidence pointers.
168
+ **Commit:** Commit the reviewed implementation and appropriate tests when authorized.
178
169
 
179
- **Return:** Send SWARM_HANDOFF.json back to ACE-Orchestrator with "Mission Accomplished" or "Blocker".
170
+ **Return:** Submit the work outcome through the existing assignment or handoff. Include what changed, actual checks, and any unresolved dependency.
180
171
 
181
172
  ## 4. Wrong-Stuff Protocol
182
173
 
183
174
  When a test fails or a gate is rejected:
184
175
 
185
- 1. Emit `BUILD_RED` event with `failure_type`, `test_id`, `error_trace`, `evidence_ref`.
176
+ 1. Return the actual failed check and error with the work outcome.
186
177
  2. Classify root cause:
187
178
  - `spec_ambiguity` → route to Orchestrator / agent-spec for clarification
188
179
  - `implementation_bug` → agent-developer retry with stack trace analysis
189
180
  - `environment_issue` → agent-deploy / agent-ops for infra fix
190
- - `test_flake` → quarantine test, log in TEST_LOG.md, investigate independently
181
+ - `test_flake` → preserve the failed result and investigate independently; do not silently skip the check
191
182
  3. Block downstream deployment until verified fix produces `BUILD_GREEN`.
192
- 4. Record fix evidence in `PROVENANCE_LOG.md` with before/after test results.
183
+ 4. Return before/after test results with the corrected work outcome.
193
184
 
194
- ## 5. Circuit Breaker Awareness
185
+ ## 5. Declared Check Failures
195
186
 
196
- - If `agent-qa` emits `GATE_FAILED`: STOP current implementation. Do not pile changes onto a red build.
197
- - If `agent-skeptic` emits `GATE_DECISION:REJECTED`: escalate to Orchestrator for spec revision before continuing.
198
- - Resume only on verified `GATE_PASSED` from the blocking agent.
187
+ - A failed declared check prevents claiming the affected work is verified. Repair it or identify the precise dependency and correction path.
188
+ - Continue repairs and independent work; an objection is not an instruction to stop the entire workspace.
189
+ - Resume dependent deployment only after its required checks pass and deployment is authorized.
199
190
 
200
191
  ## 6. Activation (Passive)
201
192
 
@@ -38,7 +38,7 @@ This skill does not own the release decision itself; it owns the watch loop that
38
38
  5. On every cycle, acknowledge new review input explicitly:
39
39
  accepted, rebutted, deferred, or blocked with reason.
40
40
  6. If CI fails, route the failure to the responsible owner and record the remediation checkpoint.
41
- 7. If merge is safe, hand off to [$release-sentry](/Users/voy/Desktop/dev-ace/.agents/skills/release-sentry/SKILL.md) for the actual approve/hold decision.
41
+ 7. If merge is safe, hand off to [$release-sentry](../release-sentry/SKILL.md) for the actual approve/hold decision.
42
42
  8. After landing, record the final result, landing timestamp, and rollback pointer if one exists.
43
43
 
44
44
  ## Outputs
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: learn-from-work
3
+ description: Use when ACE offers an idle learning assignment with cited failure-to-pass episodes; distill scoped lessons and reusable skills from that work.
4
+ ---
5
+ # Learn from work
6
+
7
+ ## Use cases
8
+
9
+ Distill an ACE learning assignment, repair a quarantined proposal, or revise an existing lesson after its own failure recurs. This skill does not perform scientific investigation or replace the current work objective.
10
+
11
+ ## Inputs
12
+
13
+ - The assignment's ACE episode IDs, compact summaries, failure excerpts and evidence references.
14
+ - Existing matching lessons and learned skills, including their status and acceptance errors.
15
+ - Vericify-linked command identities only when actually available. Unknown, inferred or expired observations are not proof.
16
+
17
+ ## Workflow
18
+
19
+ 1. Group the episodes by failure signature, then compare their demonstrated recovery procedures. Preserve exact commands, directories, paths and error text. A command that was never observed is not an observed command.
20
+ 2. Prefer editing an existing scoped artifact over adding a near duplicate. Keep its required sections, prior episode citations and at least 60% of its content; explain any intentionally retired citation.
21
+ 3. Write at most three lessons as trigger → action → check, including Why. State what the episodes establish and their limits. Cite at least one episode per lesson.
22
+ 4. Propose a skill only if at least three episodes across two goals share a reusable procedure. Use frontmatter name, trigger-oriented description and scope, with Inputs, Workflow, Outputs, Validation and Failure Policy sections. Keep detailed episodes in references rather than the main skill.
23
+ 5. Take validation commands from actual passing evidence. Mechanical success earns “checked”. “Demonstrated” additionally requires the exact cited failing command in its exact directory to pass, or an actually Linked exact red→green pair. Do not generalize from unrelated passing checks.
24
+ 6. If episodes disagree, preserve the disagreement as a lesson with both citations. Do not resolve it by choosing the more convenient story.
25
+ 7. Submit the learned payload through the current step's `complete_step`. A rejected artifact is retained with errors. Repair those errors through its bounded corrective assignment; never rewrite the evidence to pass.
26
+
27
+ ## Outputs
28
+
29
+ `outcome.learned` with up to three add/edit/retire lessons, optionally one learned skill with references, and optionally a role-instruction proposal. Every item cites episode IDs. Role instructions and distiller overlays remain proposed until an operator approves them.
30
+
31
+ ## Validation
32
+
33
+ ACE resolves the citations, checks scope and duplication, runs the skill auditor and declared validation commands, and guards destructive edits. Validation is evidence for the label it actually establishes; a successful shell command alone does not prove the advice caused a recovery.
34
+
35
+ ## Failure Policy
36
+
37
+ Missing or expired evidence stays explicitly unavailable. Do not make a proposal active by dropping a failing validation command, weakening its scope, deleting detailed steps or changing an error transcript. Keep the prior active version when an edit fails and submit a correction with the retained errors.
38
+
39
+ ## Portability
40
+
41
+ Use the host's own tools. ACE owns the work state and learned artifacts; Vericify owns external observations. No provider-specific model call, hook or recorder is required by this skill.
@@ -16,8 +16,10 @@ executor:
16
16
  approval_policy: "on-request"
17
17
  thread_sandbox: "workspace-write"
18
18
  turn_sandbox_policy: null
19
- max_turns: 6
20
- turn_timeout_ms: 300000
19
+ max_turns: 0
20
+ turn_timeout_ms: 0
21
+ stall_warning_ms: 600000
22
+ stall_window_ms: 3600000
21
23
  tools:
22
24
  registry_path: "agent-state/runtime-tool-specs.json"
23
25
  autonomy:
@@ -44,8 +46,29 @@ observability:
44
46
  http_port: null
45
47
  vericify_bridge:
46
48
  enabled: false
49
+ legacy_auto_posts: false
50
+ native:
51
+ enabled: false
52
+ query_timeout_ms: 15000
53
+ max_pages: 8
54
+ max_bytes: 262144
55
+ retries: 1
56
+ acceptance_wait_ms: 15000
47
57
  bridge_path: "agent-state/vericify/ace-bridge.json"
48
58
  process_post_path: "agent-state/vericify/process-posts.json"
59
+ learning:
60
+ enabled: true
61
+ distill_min_items: 3
62
+ distill_min_goals: 2
63
+ max_open_learning_steps: 1
64
+ distill_cooldown_days: 7
65
+ max_learned_skills: 30
66
+ serve_max_lessons: 3
67
+ serve_max_skills: 2
68
+ serve_max_tokens: 600
69
+ retire_unhelpful_after_serves: 40
70
+ instructions_require_approval: true
71
+
49
72
  ---
50
73
  # ACE Runtime Prompt Template
51
74