@voybio/ace-swarm 0.2.4 → 2.4.0
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.
- package/CHANGELOG.md +11 -1
- package/README.md +20 -13
- package/assets/.agents/skills/eval-harness/SKILL.md +14 -0
- package/assets/.agents/skills/handoff-lint/SKILL.md +14 -0
- package/assets/.agents/skills/incident-commander/SKILL.md +14 -0
- package/assets/.agents/skills/memory-curator/SKILL.md +14 -0
- package/assets/.agents/skills/release-sentry/SKILL.md +14 -0
- package/assets/.agents/skills/risk-quant/SKILL.md +14 -0
- package/assets/.agents/skills/schema-forge/SKILL.md +14 -0
- package/assets/.agents/skills/state-auditor/SKILL.md +14 -0
- package/assets/agent-state/EVIDENCE_LOG.md +1 -1
- package/assets/agent-state/MODULES/gates/gate-correctness.json +1 -1
- package/assets/agent-state/MODULES/roles/capability-framework.json +41 -0
- package/assets/agent-state/MODULES/roles/capability-git.json +33 -0
- package/assets/agent-state/MODULES/roles/capability-safety.json +37 -0
- package/assets/agent-state/MODULES/schemas/ACE_RUNTIME_PROFILE.schema.json +21 -0
- package/assets/agent-state/MODULES/schemas/RUNTIME_EXECUTOR_SESSION_REGISTRY.schema.json +43 -0
- package/assets/agent-state/MODULES/schemas/WORKSPACE_SESSION_REGISTRY.schema.json +11 -0
- package/assets/agent-state/STATUS.md +2 -2
- package/assets/scripts/ace-hook-dispatch.mjs +70 -6
- package/assets/scripts/render-mcp-configs.sh +19 -5
- package/dist/ace-context.js +22 -1
- package/dist/ace-server-instructions.js +3 -3
- package/dist/ace-state-resolver.js +5 -3
- package/dist/astgrep-index.d.ts +9 -1
- package/dist/astgrep-index.js +14 -3
- package/dist/cli.js +52 -20
- package/dist/handoff-registry.js +5 -5
- package/dist/helpers/artifacts.d.ts +19 -0
- package/dist/helpers/artifacts.js +152 -0
- package/dist/helpers/bootstrap.d.ts +24 -0
- package/dist/helpers/bootstrap.js +894 -0
- package/dist/helpers/constants.d.ts +53 -0
- package/dist/helpers/constants.js +288 -0
- package/dist/helpers/drift.d.ts +13 -0
- package/dist/helpers/drift.js +45 -0
- package/dist/helpers/path-utils.d.ts +17 -0
- package/dist/helpers/path-utils.js +104 -0
- package/dist/helpers/store-resolution.d.ts +19 -0
- package/dist/helpers/store-resolution.js +301 -0
- package/dist/helpers/workspace-root.d.ts +3 -0
- package/dist/helpers/workspace-root.js +80 -0
- package/dist/helpers.d.ts +8 -123
- package/dist/helpers.js +8 -1747
- package/dist/job-scheduler.js +3 -3
- package/dist/local-model-runtime.js +12 -1
- package/dist/model-bridge.d.ts +7 -0
- package/dist/model-bridge.js +75 -5
- package/dist/orchestrator-supervisor.d.ts +14 -0
- package/dist/orchestrator-supervisor.js +72 -1
- package/dist/run-ledger.js +3 -3
- package/dist/runtime-command.d.ts +8 -0
- package/dist/runtime-command.js +38 -6
- package/dist/runtime-executor.d.ts +14 -0
- package/dist/runtime-executor.js +669 -171
- package/dist/runtime-profile.d.ts +32 -0
- package/dist/runtime-profile.js +89 -13
- package/dist/runtime-tool-specs.d.ts +21 -0
- package/dist/runtime-tool-specs.js +78 -3
- package/dist/safe-edit.d.ts +7 -0
- package/dist/safe-edit.js +163 -37
- package/dist/schemas.js +19 -0
- package/dist/shared.d.ts +2 -2
- package/dist/status-events.js +9 -6
- package/dist/store/ace-packed-store.d.ts +3 -2
- package/dist/store/ace-packed-store.js +188 -110
- package/dist/store/bootstrap-store.d.ts +1 -1
- package/dist/store/bootstrap-store.js +94 -81
- package/dist/store/cache-workspace.d.ts +22 -0
- package/dist/store/cache-workspace.js +149 -0
- package/dist/store/materializers/context-snapshot-materializer.js +6 -7
- package/dist/store/materializers/hook-context-materializer.d.ts +6 -9
- package/dist/store/materializers/hook-context-materializer.js +11 -21
- package/dist/store/materializers/host-file-materializer.js +6 -0
- package/dist/store/materializers/projection-manager.d.ts +0 -1
- package/dist/store/materializers/projection-manager.js +5 -13
- package/dist/store/materializers/scheduler-projection-materializer.js +1 -1
- package/dist/store/materializers/vericify-projector.d.ts +7 -7
- package/dist/store/materializers/vericify-projector.js +11 -11
- package/dist/store/repositories/local-model-runtime-repository.d.ts +120 -3
- package/dist/store/repositories/local-model-runtime-repository.js +242 -6
- package/dist/store/skills-install.d.ts +4 -0
- package/dist/store/skills-install.js +21 -12
- package/dist/store/state-reader.d.ts +2 -0
- package/dist/store/state-reader.js +20 -0
- package/dist/store/store-artifacts.d.ts +7 -0
- package/dist/store/store-artifacts.js +27 -1
- package/dist/store/store-authority-audit.d.ts +18 -1
- package/dist/store/store-authority-audit.js +115 -5
- package/dist/store/store-snapshot.d.ts +3 -0
- package/dist/store/store-snapshot.js +22 -2
- package/dist/store/workspace-store-paths.d.ts +39 -0
- package/dist/store/workspace-store-paths.js +94 -0
- package/dist/store/write-coordinator.d.ts +65 -0
- package/dist/store/write-coordinator.js +386 -0
- package/dist/todo-state.js +5 -5
- package/dist/tools-agent.js +319 -34
- package/dist/tools-discovery.js +1 -1
- package/dist/tools-files.d.ts +7 -0
- package/dist/tools-files.js +299 -10
- package/dist/tools-framework.js +107 -27
- package/dist/tools-handoff.js +2 -2
- package/dist/tools-lifecycle.js +4 -4
- package/dist/tools-memory.js +6 -6
- package/dist/tools-todo.js +2 -2
- package/dist/tracker-adapters.d.ts +1 -1
- package/dist/tracker-adapters.js +13 -18
- package/dist/tracker-sync.js +5 -3
- package/dist/tui/agent-runner.js +3 -1
- package/dist/tui/chat.js +103 -7
- package/dist/tui/dashboard.d.ts +1 -0
- package/dist/tui/dashboard.js +43 -0
- package/dist/tui/layout.d.ts +20 -0
- package/dist/tui/layout.js +31 -1
- package/dist/tui/local-model-contract.d.ts +6 -2
- package/dist/tui/local-model-contract.js +16 -3
- package/dist/vericify-bridge.d.ts +5 -0
- package/dist/vericify-bridge.js +27 -3
- package/dist/workspace-manager.d.ts +30 -3
- package/dist/workspace-manager.js +257 -27
- package/package.json +1 -2
- package/dist/internal-tool-runtime.d.ts +0 -21
- package/dist/internal-tool-runtime.js +0 -136
- package/dist/store/workspace-snapshot.d.ts +0 -26
- package/dist/store/workspace-snapshot.js +0 -107
package/CHANGELOG.md
CHANGED
|
@@ -35,9 +35,19 @@
|
|
|
35
35
|
- Expanded hook dispatch context to emit role-aware ACE tool hints from session, subagent, and tool lifecycle events.
|
|
36
36
|
- Updated bootstrap and config rendering to generate multi-host hook artifacts under `.vscode`, `.cursor`, and `.mcp-config`.
|
|
37
37
|
|
|
38
|
+
**Store-Unity Migration:**
|
|
39
|
+
- Added `src/store/workspace-store-paths.ts` as the canonical resolver for the canonical/legacy ACE store transition. Every command that opens ACEPACK now uses this shared module; no command assembles `.agents/ACE/ace-state.ace` by hand.
|
|
40
|
+
- `agent-state/ace-state.ace` is the canonical store for new and adopted workspaces. `.agents/ACE/ace-state.ace` is retained as a supported legacy input and fallback — not a second active write target.
|
|
41
|
+
- Added `ensureCanonicalWorkspaceStore()`: legacy-only workspaces are atomically adopted into the canonical path on the first mutating operation (bootstrap, install, repair, compact, preconfig). The legacy file is preserved as a fallback after adoption.
|
|
42
|
+
- Dual-store conflicts (both files exist with different content) surface an explicit warning and halt mutating commands rather than silently merging or overwriting.
|
|
43
|
+
- Added `resolveWorkspaceStorePath()` for read-only resolution: returns the active path and mode without writing anything.
|
|
44
|
+
- Bootstrap, skill install/list, repair, compact, and preconfig all updated to use the shared resolver.
|
|
45
|
+
- CLI help text, doctor messages, and run-ledger artifacts updated to describe `agent-state/ace-state.ace` as canonical.
|
|
46
|
+
- Added `test/store-unity-release.test.mjs` as a dedicated release gate covering legacy adoption, dual-store conflict, canonical-only skill install/repair/compact, and a source-scan guard that fails on new hard-coded legacy path references outside the resolver module.
|
|
47
|
+
|
|
38
48
|
### Validation
|
|
39
49
|
|
|
40
|
-
- Verified `
|
|
50
|
+
- Verified `319/319` tests passing (up from 208) with full orchestrator supervisor, model bridge, compliance enforcement, and store-unity migration coverage.
|
|
41
51
|
|
|
42
52
|
## [2.2.0] - 2026-03-26
|
|
43
53
|
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Autonomous Coding Entity (ACE) is a local MCP server and CLI for agent-assisted coding.
|
|
4
4
|
|
|
5
|
-
`ace-swarm` provides Claude Code, Codex, Cursor, VS Code, and provider-backed workflows with a shared runtime: durable workspace state, typed handoffs, scheduler support, change intelligence, and operator tooling. All state lives in a single binary file — `.agents/ACE/ace-state.ace`
|
|
5
|
+
`ace-swarm` provides Claude Code, Codex, Cursor, GitHub Copilot CLI, VS Code, and provider-backed workflows with a shared runtime: durable workspace state, typed handoffs, scheduler support, change intelligence, and operator tooling. All state lives in a single binary file — `agent-state/ace-state.ace` — with `.agents/ACE/ace-state.ace` kept only as a legacy fallback for older workspaces.
|
|
6
6
|
|
|
7
7
|
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 provides task context, tool surfaces, status events, evidence trails, and resumable state.
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ Modern coding agents can already read files, write code, run commands, and call
|
|
|
13
13
|
- Shared workflow state should live in the workspace, not only in chat history.
|
|
14
14
|
- ACE-Orchestrator is the default entrypoint, and every provider can delegate through the full agent set.
|
|
15
15
|
- Provider-backed runs should get the same structure and observability.
|
|
16
|
-
- Bootstrap should be contained and reversible: ACE writes into `.agents/ACE/ace-state.ace
|
|
16
|
+
- Bootstrap should be contained and reversible: ACE writes into `agent-state/ace-state.ace`, with legacy fallback reads from `.agents/ACE/ace-state.ace` where needed.
|
|
17
17
|
|
|
18
18
|
### Serving model providers
|
|
19
19
|
|
|
@@ -21,6 +21,8 @@ ACE provides model providers with the context they cannot infer on their own: ta
|
|
|
21
21
|
|
|
22
22
|
- `ace init --llm <provider>` records the selected runtime profile in the store.
|
|
23
23
|
- `ace doctor` validates local or hosted runtime wiring, checks the selected model when the provider exposes listings, and keeps the runtime honest.
|
|
24
|
+
- `ace doctor --scan` probes common Ollama and llama.cpp endpoints and writes the selected profile back into the store.
|
|
25
|
+
- `ace tui` is provider-aware for `ollama`, `llama.cpp`, `codex`, `claude`, `gemini`, and `copilot` when credentials or base URLs are configured.
|
|
24
26
|
- `ace mcp` and `ace tui` expose the same workspace truth to the host, the terminal, and the model.
|
|
25
27
|
|
|
26
28
|
## Why This Exists Now
|
|
@@ -38,7 +40,7 @@ ACE also provides scheduler primitives for queued work, dependency gates, leases
|
|
|
38
40
|
|
|
39
41
|
## ACEPACK State Model
|
|
40
42
|
|
|
41
|
-
ACE uses a custom binary format called ACEPACK to present
|
|
43
|
+
ACE uses a custom binary format called ACEPACK to present `agent-state/ace-state.ace` as a structured single-file store. Existing workspaces that still carry `.agents/ACE/ace-state.ace` are read through the legacy fallback path. The file has three regions:
|
|
42
44
|
|
|
43
45
|
```
|
|
44
46
|
ace-state.ace
|
|
@@ -80,7 +82,7 @@ Every `appendEntry()` call — handoffs, status events, ledger entries, session
|
|
|
80
82
|
- Per-event overhead is ~19 bytes fixed vs ~150 bytes for equivalent JSON.
|
|
81
83
|
- At 100,000 events, the fixed columns are ~1.9 MB; a full JSON log would be ~15 MB.
|
|
82
84
|
|
|
83
|
-
Events accumulate for the workspace lifetime and survive `compact()`. Full historical replay is always available.
|
|
85
|
+
Events accumulate for the workspace lifetime and survive `compact()`. Full historical replay is always available.
|
|
84
86
|
|
|
85
87
|
### Why one state file
|
|
86
88
|
|
|
@@ -98,7 +100,7 @@ The store holds runtime state, agent instructions, skills, topology, schemas, an
|
|
|
98
100
|
Bootstrap a workspace:
|
|
99
101
|
|
|
100
102
|
```bash
|
|
101
|
-
npx -y ace-swarm turnkey --project "My Project"
|
|
103
|
+
npx -y @voybio/ace-swarm turnkey --project "My Project"
|
|
102
104
|
ace mcp
|
|
103
105
|
```
|
|
104
106
|
|
|
@@ -111,7 +113,7 @@ initiate ACE
|
|
|
111
113
|
Local-model path with Ollama:
|
|
112
114
|
|
|
113
115
|
```bash
|
|
114
|
-
npx -y ace-swarm turnkey --project "My Project" --llm ollama --model llama3.1:8b --base-url http://localhost:11434
|
|
116
|
+
npx -y @voybio/ace-swarm turnkey --project "My Project" --llm ollama --model llama3.1:8b --base-url http://localhost:11434
|
|
115
117
|
ollama serve
|
|
116
118
|
ollama pull llama3.1:8b
|
|
117
119
|
ace doctor --llm ollama --model llama3.1:8b --base-url http://localhost:11434
|
|
@@ -121,7 +123,7 @@ ace mcp
|
|
|
121
123
|
Local-model path with llama.cpp:
|
|
122
124
|
|
|
123
125
|
```bash
|
|
124
|
-
npx -y ace-swarm turnkey --project "My Project" --llm llama.cpp --model local-model --base-url http://localhost:8080
|
|
126
|
+
npx -y @voybio/ace-swarm turnkey --project "My Project" --llm llama.cpp --model local-model --base-url http://localhost:8080
|
|
125
127
|
llama-server -m /path/to/model.gguf --port 8080
|
|
126
128
|
ace doctor --llm llama.cpp --model local-model --base-url http://localhost:8080
|
|
127
129
|
ace mcp
|
|
@@ -132,7 +134,7 @@ If you already have a local runtime running, `ace doctor --scan` will probe comm
|
|
|
132
134
|
Hosted provider path with Codex:
|
|
133
135
|
|
|
134
136
|
```bash
|
|
135
|
-
npx -y ace-swarm turnkey --project "My Project" --llm codex --model gpt-5
|
|
137
|
+
npx -y @voybio/ace-swarm turnkey --project "My Project" --llm codex --model gpt-5
|
|
136
138
|
export OPENAI_API_KEY=...
|
|
137
139
|
ace doctor --llm codex --model gpt-5
|
|
138
140
|
ace mcp
|
|
@@ -140,9 +142,10 @@ ace mcp
|
|
|
140
142
|
|
|
141
143
|
## What Bootstrap Writes
|
|
142
144
|
|
|
143
|
-
ACE bootstrap is intentionally contained. The store is authoritative at
|
|
145
|
+
ACE bootstrap is intentionally contained. The store is authoritative at `agent-state/ace-state.ace`; only a few host-facing files land in the workspace when requested.
|
|
144
146
|
|
|
145
|
-
-
|
|
147
|
+
- `agent-state/ace-state.ace` — runtime state, agent instructions, skills, topology, schemas, and the event log
|
|
148
|
+
- `.agents/ACE/ace-state.ace` — legacy fallback for existing workspaces
|
|
146
149
|
- `.agents/ACE/ace-hook-context.json` — compact hook snapshot for external clients
|
|
147
150
|
- `.agents/ACE/tasks/todo.md` — human-facing todo surface
|
|
148
151
|
- Optional workspace-root stubs — `AGENTS.md`, `CLAUDE.md`, `.cursorrules`, `.github/copilot-instructions.md`, and `.vscode/mcp.json`
|
|
@@ -159,6 +162,11 @@ Developer or MCP host
|
|
|
159
162
|
| |
|
|
160
163
|
| `-- calls ace-swarm over MCP
|
|
161
164
|
|
|
|
165
|
+
+-- agent-state/
|
|
166
|
+
| |
|
|
167
|
+
| +-- ace-state.ace
|
|
168
|
+
| +-- STATUS.md / TASK.md / HANDOFF.json projections
|
|
169
|
+
|
|
|
162
170
|
+-- ace mcp
|
|
163
171
|
| |
|
|
164
172
|
| +-- tools, prompts, resources
|
|
@@ -168,7 +176,6 @@ Developer or MCP host
|
|
|
168
176
|
|
|
|
169
177
|
+-- .agents/ACE/
|
|
170
178
|
| |
|
|
171
|
-
| +-- ace-state.ace
|
|
172
179
|
| +-- ace-hook-context.json
|
|
173
180
|
| +-- tasks/todo.md
|
|
174
181
|
| `-- host config bundles
|
|
@@ -190,7 +197,7 @@ Developer or MCP host
|
|
|
190
197
|
| Runtime roles | swarm and composable runtime roles |
|
|
191
198
|
| Skills | packaged skills |
|
|
192
199
|
| MCP server | stdio surface for tools, prompts, resources, and workflows |
|
|
193
|
-
| Durable state | single .ace authority for handoffs, status events, todos, run ledger, job queue, and discovery |
|
|
200
|
+
| Durable state | single `agent-state/ace-state.ace` authority for handoffs, status events, todos, run ledger, job queue, and discovery |
|
|
194
201
|
| Projections | hook context, todo surface, and host config bundles |
|
|
195
202
|
| Coordination | scheduler queues, dependency gates, leases, and resource locks |
|
|
196
203
|
| Change intelligence | delta scan, semantic snapshots, drift reports, rewrite hints |
|
|
@@ -215,7 +222,7 @@ In that setup, the host remains the interface. ACE becomes the state contract un
|
|
|
215
222
|
|
|
216
223
|
Local models are good at generating text. They usually need help seeing the workspace, hearing the handoff trail, and remembering what changed two turns ago. ACE closes that gap.
|
|
217
224
|
|
|
218
|
-
- `ace init --llm <provider>` seeds the profile inside
|
|
225
|
+
- `ace init --llm <provider>` seeds the profile inside `agent-state/ace-state.ace`.
|
|
219
226
|
- `ace doctor` verifies that the selected runtime is configured and, when possible, reachable.
|
|
220
227
|
- `ace tui` can talk to either local runtime and surface the same workspace state the MCP server sees.
|
|
221
228
|
- The ACE model bridge gives local runs tool selection, execution flow, and persisted state instead of a fragile one-shot chat loop.
|
|
@@ -173,6 +173,20 @@ Confidence: <score>% (<label>)
|
|
|
173
173
|
|
|
174
174
|
---
|
|
175
175
|
|
|
176
|
+
## Validation Surface
|
|
177
|
+
|
|
178
|
+
- Run this skill against at least one known-pass baseline and one known-fail fixture before trusting a promotion decision.
|
|
179
|
+
- Validation command example: execute the configured eval harness runner and confirm deterministic suite counts in `agent-state/EVAL_REPORT.md`.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Portability Notes
|
|
184
|
+
|
|
185
|
+
- Keep this skill vendor-neutral: it should work across Codex, Claude, Cursor, and Antigravity runtimes.
|
|
186
|
+
- Avoid provider-specific assumptions in suite execution or report parsing; rely on ACE artifacts as the source of truth.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
176
190
|
## Anti-Patterns
|
|
177
191
|
|
|
178
192
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -132,6 +132,20 @@ Also use when:
|
|
|
132
132
|
|
|
133
133
|
---
|
|
134
134
|
|
|
135
|
+
## Validation Surface
|
|
136
|
+
|
|
137
|
+
- Run this check with one valid and one intentionally broken handoff payload to verify deterministic PASS/FAIL behavior.
|
|
138
|
+
- Validation command example: execute the handoff lint path used by the runtime and confirm schema, route, and evidence checks all emit rule-level outcomes.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Portability Notes
|
|
143
|
+
|
|
144
|
+
- Keep lint output schema and rule IDs stable so different clients can consume results uniformly.
|
|
145
|
+
- Do not depend on provider-specific behavior; handoff validation must rely only on ACE artifacts and schemas.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
135
149
|
## Anti-Patterns
|
|
136
150
|
|
|
137
151
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -156,6 +156,20 @@ No incident closure without ALL of:
|
|
|
156
156
|
|
|
157
157
|
---
|
|
158
158
|
|
|
159
|
+
## Validation Surface
|
|
160
|
+
|
|
161
|
+
- Run an incident simulation with synthetic `GATE_FAILED` events and verify severity classification, owner assignment, and timeline reconstruction are deterministic.
|
|
162
|
+
- Validation command example: replay a known event stream and confirm `global-state/INCIDENTS.md` and `agent-state/INCIDENT_TIMELINE.md` contain matching evidence-linked rows.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Portability Notes
|
|
167
|
+
|
|
168
|
+
- Incident lifecycle states and emitted event names must remain stable across clients.
|
|
169
|
+
- Keep the protocol provider-agnostic: all decisions should be derivable from ACE state artifacts and event logs.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
159
173
|
## Anti-Patterns
|
|
160
174
|
|
|
161
175
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -161,6 +161,20 @@ Generated: <ISO8601>
|
|
|
161
161
|
|
|
162
162
|
---
|
|
163
163
|
|
|
164
|
+
## Validation Surface
|
|
165
|
+
|
|
166
|
+
- Run this skill on a fixture with known duplicates and contradictions, then verify the reconciliation report counts match expected values.
|
|
167
|
+
- Validation command example: execute memory curation and confirm no source logs are modified while `MEMORY_INDEX.md` updates with provenance links.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Portability Notes
|
|
172
|
+
|
|
173
|
+
- Preserve schema and section labels so downstream consumers can parse curated memory artifacts consistently.
|
|
174
|
+
- Keep curation logic independent of model/provider specifics; evidence linkage is the portable contract.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
164
178
|
## Anti-Patterns
|
|
165
179
|
|
|
166
180
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -160,6 +160,20 @@ Reason: <one sentence>
|
|
|
160
160
|
|
|
161
161
|
---
|
|
162
162
|
|
|
163
|
+
## Validation Surface
|
|
164
|
+
|
|
165
|
+
- Validate this skill with one known-pass and one known-fail release packet to confirm gate outcomes are deterministic.
|
|
166
|
+
- Validation command example: run release sentry checks and verify `RELEASE_DECISION.md` always includes explicit gate evidence rows.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Portability Notes
|
|
171
|
+
|
|
172
|
+
- Keep decision enums and gate names stable so any client can consume release outputs consistently.
|
|
173
|
+
- Avoid provider-specific assumptions; release readiness must be computed from ACE artifacts only.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
163
177
|
## Anti-Patterns
|
|
164
178
|
|
|
165
179
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -158,6 +158,20 @@ Every risk in `RISKS.md` must contain these fields:
|
|
|
158
158
|
|
|
159
159
|
---
|
|
160
160
|
|
|
161
|
+
## Validation Surface
|
|
162
|
+
|
|
163
|
+
- Run this skill against a fixture risk set with expected probability-impact scores and verify computed tiers match exactly.
|
|
164
|
+
- Validation command example: execute risk quantification and confirm HIGH/CRITICAL entries always include owner, mitigation, and verification condition.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Portability Notes
|
|
169
|
+
|
|
170
|
+
- Keep scoring scales and tier thresholds explicit and stable across clients.
|
|
171
|
+
- Quantification must remain vendor-neutral and based on ACE state artifacts, not model-specific behavior.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
161
175
|
## Anti-Patterns
|
|
162
176
|
|
|
163
177
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -151,6 +151,20 @@ Use when:
|
|
|
151
151
|
|
|
152
152
|
---
|
|
153
153
|
|
|
154
|
+
## Validation Surface
|
|
155
|
+
|
|
156
|
+
- Validate schema updates against both old and new sample payload fixtures before promoting contract changes.
|
|
157
|
+
- Validation command example: run JSON-schema validation for backward and forward compatibility samples and record results in `EVIDENCE_LOG.md`.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Portability Notes
|
|
162
|
+
|
|
163
|
+
- Preserve stable schema IDs, version fields, and migration metadata so any ACE client can consume updates.
|
|
164
|
+
- Keep evolution rules provider-agnostic; compatibility decisions must be artifact-driven, not model-driven.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
154
168
|
## Anti-Patterns
|
|
155
169
|
|
|
156
170
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -161,6 +161,20 @@ Overall: <PASS | WARN | CRITICAL>
|
|
|
161
161
|
|
|
162
162
|
---
|
|
163
163
|
|
|
164
|
+
## Validation Surface
|
|
165
|
+
|
|
166
|
+
- Run audits against fixtures with known contradictions to verify deterministic CRITICAL/WARN classification.
|
|
167
|
+
- Validation command example: execute the state audit flow and confirm every checklist row maps to a concrete pass/fail artifact reference.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Portability Notes
|
|
172
|
+
|
|
173
|
+
- Keep report structure and checklist IDs stable so multiple clients can parse outputs consistently.
|
|
174
|
+
- State drift checks must remain independent of model/provider implementation details.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
164
178
|
## Anti-Patterns
|
|
165
179
|
|
|
166
180
|
| Anti-Pattern | Correct Behavior |
|
|
@@ -4,4 +4,4 @@ Append-only chain-of-custody for checks, decisions, and execution proofs.
|
|
|
4
4
|
|
|
5
5
|
## Entries
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 2026-03-03T00:00:00Z | bootstrap initialized | evidence_ref: `EVIDENCE_LOG.md#ts:2026-03-03T00:00:00Z`
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"id": "gate-correctness",
|
|
3
3
|
"type": "executable",
|
|
4
4
|
"invariant": "All required tests pass",
|
|
5
|
-
"command": "cd ace-mcp-server && npm test --silent",
|
|
5
|
+
"command": "if [ -f ace-mcp-server/package.json ]; then cd ace-mcp-server && npm test --silent; elif [ -f package.json ]; then npm test --silent; else echo 'package.json not found for gate-correctness' && exit 1; fi",
|
|
6
6
|
"evidence_requirement": "Command output snippet with exit code 0"
|
|
7
7
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "capability-framework",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"objective": "Validate ACE framework contracts, execute gate bundles, and enforce state integrity checks",
|
|
5
|
+
"permissions": [
|
|
6
|
+
"allow_file_io",
|
|
7
|
+
"allow_shell_exec"
|
|
8
|
+
],
|
|
9
|
+
"inputs": [
|
|
10
|
+
{
|
|
11
|
+
"file": "TEAL_CONFIG.md",
|
|
12
|
+
"critical": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"file": "QUALITY_GATES.md",
|
|
16
|
+
"critical": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"file": "HANDOFF.json",
|
|
20
|
+
"critical": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"file": "MODULES/registry.json",
|
|
24
|
+
"critical": true
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"outputs": [
|
|
28
|
+
{
|
|
29
|
+
"file": "EVIDENCE_LOG.md",
|
|
30
|
+
"validation_gate": "gate-completeness"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"file": "STATUS_EVENTS.ndjson",
|
|
34
|
+
"validation_gate": "gate-autonomy"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"failure_routing": {
|
|
38
|
+
"missing_input": "BLOCK_AND_REQUEST_INFO",
|
|
39
|
+
"gate_failure": "ESCALATE_TO_CAPABILITY_OPS"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "capability-git",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"objective": "Execute repository initialization and commit operations with traceable evidence",
|
|
5
|
+
"permissions": [
|
|
6
|
+
"allow_file_io",
|
|
7
|
+
"allow_shell_exec"
|
|
8
|
+
],
|
|
9
|
+
"inputs": [
|
|
10
|
+
{
|
|
11
|
+
"file": "STATUS.md",
|
|
12
|
+
"critical": false
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"file": "EVIDENCE_LOG.md",
|
|
16
|
+
"critical": true
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"outputs": [
|
|
20
|
+
{
|
|
21
|
+
"file": "EVIDENCE_LOG.md",
|
|
22
|
+
"validation_gate": "gate-completeness"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"file": "STATUS_EVENTS.ndjson",
|
|
26
|
+
"validation_gate": "gate-autonomy"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"failure_routing": {
|
|
30
|
+
"missing_input": "BLOCK_AND_REQUEST_INFO",
|
|
31
|
+
"gate_failure": "ESCALATE_TO_CAPABILITY_OPS"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "capability-safety",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"objective": "Apply safety checks and fail-closed validation before mutating critical ACE artifacts",
|
|
5
|
+
"permissions": [
|
|
6
|
+
"allow_file_io",
|
|
7
|
+
"allow_shell_exec"
|
|
8
|
+
],
|
|
9
|
+
"inputs": [
|
|
10
|
+
{
|
|
11
|
+
"file": "HANDOFF.json",
|
|
12
|
+
"critical": false
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"file": "QUALITY_GATES.md",
|
|
16
|
+
"critical": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"file": "EVIDENCE_LOG.md",
|
|
20
|
+
"critical": true
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"outputs": [
|
|
24
|
+
{
|
|
25
|
+
"file": "EVIDENCE_LOG.md",
|
|
26
|
+
"validation_gate": "gate-completeness"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"file": "STATUS_EVENTS.ndjson",
|
|
30
|
+
"validation_gate": "gate-autonomy"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"failure_routing": {
|
|
34
|
+
"missing_input": "BLOCK_AND_REQUEST_INFO",
|
|
35
|
+
"gate_failure": "BLOCK_AND_ESCALATE"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -145,6 +145,27 @@
|
|
|
145
145
|
"registry_path": {
|
|
146
146
|
"type": "string",
|
|
147
147
|
"minLength": 1
|
|
148
|
+
},
|
|
149
|
+
"surgical_read_budgets": {
|
|
150
|
+
"type": "object",
|
|
151
|
+
"additionalProperties": false,
|
|
152
|
+
"properties": {
|
|
153
|
+
"small_local": {
|
|
154
|
+
"type": "integer",
|
|
155
|
+
"minimum": 1
|
|
156
|
+
},
|
|
157
|
+
"mid": {
|
|
158
|
+
"type": "integer",
|
|
159
|
+
"minimum": 1
|
|
160
|
+
},
|
|
161
|
+
"frontier": {
|
|
162
|
+
"type": [
|
|
163
|
+
"integer",
|
|
164
|
+
"null"
|
|
165
|
+
],
|
|
166
|
+
"minimum": 1
|
|
167
|
+
}
|
|
168
|
+
}
|
|
148
169
|
}
|
|
149
170
|
}
|
|
150
171
|
},
|
|
@@ -163,6 +163,46 @@
|
|
|
163
163
|
"items": {
|
|
164
164
|
"$ref": "#/$defs/tool_call"
|
|
165
165
|
}
|
|
166
|
+
},
|
|
167
|
+
"turn_outcome": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"enum": [
|
|
170
|
+
"no_op_success",
|
|
171
|
+
"meaningful_completion",
|
|
172
|
+
"escalation_blocker"
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
"outcome_reason": {
|
|
176
|
+
"type": "string"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"output_policy": {
|
|
181
|
+
"type": "object",
|
|
182
|
+
"additionalProperties": false,
|
|
183
|
+
"required": [
|
|
184
|
+
"emit_to",
|
|
185
|
+
"silent_unless_blocked",
|
|
186
|
+
"require_approval_before_emit"
|
|
187
|
+
],
|
|
188
|
+
"properties": {
|
|
189
|
+
"emit_to": {
|
|
190
|
+
"type": "array",
|
|
191
|
+
"items": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"enum": [
|
|
194
|
+
"tui",
|
|
195
|
+
"tracker",
|
|
196
|
+
"handoff",
|
|
197
|
+
"vericify"
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"silent_unless_blocked": {
|
|
202
|
+
"type": "boolean"
|
|
203
|
+
},
|
|
204
|
+
"require_approval_before_emit": {
|
|
205
|
+
"type": "boolean"
|
|
166
206
|
}
|
|
167
207
|
}
|
|
168
208
|
},
|
|
@@ -278,6 +318,9 @@
|
|
|
278
318
|
"failed"
|
|
279
319
|
]
|
|
280
320
|
},
|
|
321
|
+
"output_policy": {
|
|
322
|
+
"$ref": "#/$defs/output_policy"
|
|
323
|
+
},
|
|
281
324
|
"turns": {
|
|
282
325
|
"type": "array",
|
|
283
326
|
"items": {
|
|
@@ -72,6 +72,17 @@
|
|
|
72
72
|
"last_error": {
|
|
73
73
|
"type": "string"
|
|
74
74
|
},
|
|
75
|
+
"hook_health": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"enum": [
|
|
78
|
+
"ok",
|
|
79
|
+
"degraded",
|
|
80
|
+
"failed"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
"hook_summary": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
},
|
|
75
86
|
"created_at": {
|
|
76
87
|
"type": "string",
|
|
77
88
|
"format": "date-time"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# STATUS
|
|
2
2
|
|
|
3
|
-
- Current role: `
|
|
3
|
+
- Current role: `capability-skeptic`
|
|
4
4
|
- Current phase: `STATE_ANALYSIS`
|
|
5
5
|
- Active pipeline: `standard`
|
|
6
6
|
- Blockers: `none`
|
|
7
7
|
- Current objective delta: `bootstrap complete, awaiting first scoped objective`
|
|
8
|
-
- Last update: `
|
|
8
|
+
- Last update: `2026-03-03T00:00:00Z`
|