Skip to content

Commit fd98d7a

Browse files
copeusclaude
andcommitted
release: v3.3.4 — the task text never reached the worker, for twenty-five runs
render_worker_prompt read the job's instructions as `description or prompt or spec`. Every manifest here writes `body:`. The names never intersected, so the task text was silently dropped from every worker prompt: workers got a title, their lanes and their acceptance criteria, and no instructions. They wrote whatever seemed reasonable, inside their lane, and passed every gate — the scope gate checks WHICH files changed and never what they say. Five prior reviews reported it — df10, df11, df12, df18, df20 — and it stayed live, because each was read as a one-off spec gap in that run. Dogfood 25 closed it, and only because recall had been made reachable an hour earlier: the reviewer's second query returned all five at once, and the finding stopped being "a spec gap" and became "the loop is not closing". That is the argument for recall, demonstrated on recall's own release, by the agent recall was given to. Fixed three ways: `body` is read first with the three aliases kept; a job with no task text is REFUSED at emit, because a prompt with lanes and no instructions asks the worker to invent the task and an invented task inside its lane is invisible to every check here; and the field is documented in the per-job table it was missing from — nothing said what it was called, which is a fair share of why the mismatch survived. The shipped example manifest was itself refused by the new guard and now carries real instructions for all five jobs. Also: 3.3.3's recall instruction was unreachable. Dogfood 24 watched spec-reviewer follow it and get denied — the Implement clamp admitted one command form. Prose in an agent definition versus a clamp: mechanism wins. The clamp now admits the two READ-ONLY memory commands; refresh and bootstrap stay out, asserted by a selftest. That reviewer also refused to write "V-memory returned nothing", because it would have claimed an empty result from a query that never ran — a false pass that the acceptance criterion could not have caught. 229 emitter selftests, 9 shell suites, lint. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 9e064e3 commit fd98d7a

20 files changed

Lines changed: 430 additions & 12 deletions

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{
1010
"name": "superpowers-v",
1111
"description": "Compound V for Superpowers: triple parallel pre-flight (code archaeology + domain-expert + Context7 library validator), disjoint partitioning, manifest-driven multi-backend dispatch (Claude + Codex + Antigravity + Cursor), git-diff scope enforcement, crash-resumable runs, adaptive tier-based routing, epic mode, research-grounded brainstorming (gated pre-brainstorm recon + batched elicitation), V-memory local-first semantic+lexical recall over docs/superpowers (opt-in pure-python embeddings + a deterministic recall→action bridge), and batched parallel dispatch (Opus default, narrow Sonnet exception)",
12-
"version": "3.3.3",
12+
"version": "3.3.4",
1313
"source": "./",
1414
"author": {
1515
"name": "Oleg",

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "superpowers-v",
33
"description": "Compound V for Superpowers: triple parallel pre-flight (code archaeology + domain-expert advisor + library/doc validator via Context7), disjoint file partitioning, manifest-driven multi-backend dispatch (Claude + headless Codex + Antigravity + Cursor workers), git-diff scope enforcement, crash-resumable runs, adaptive tier-based routing, epic mode for multi-feature builds, V-memory local-first semantic+lexical recall over docs/superpowers (opt-in pure-python embeddings + a deterministic recall\u2192action bridge), and batched parallel dispatch (Opus default, Sonnet for narrow junior-task carve-out), plus /v:onboard — a project-onboarding command that builds a citation-verified knowledge base + AGENTS.md/CLAUDE.md bridge behind a human gate. Auto-intercepts four transitions: pre-brainstorm recon \u2192 brainstorming \u2192 writing-plans \u2192 execution.",
4-
"version": "3.3.3",
4+
"version": "3.3.4",
55
"author": {
66
"name": "Oleg",
77
"email": "copeus@gmail.com"

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,40 @@ All notable changes to **superpowers-v (Compound V)** are documented here.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project uses semantic versioning.
66

7+
## [3.3.4] - 2026-09-02
8+
9+
### Fixed — the task text never reached the worker. For twenty-five runs.
10+
11+
`render_worker_prompt` read the job's instructions as:
12+
13+
```python
14+
body = job.get("description") or job.get("prompt") or job.get("spec")
15+
```
16+
17+
Every manifest in this repository writes `body:`. The names never intersected, so **the task text was silently dropped from every worker prompt**. Workers received a title, their lanes and their acceptance criteria — and no instructions. They then wrote whatever seemed reasonable, inside their lane, and passed every gate: the scope gate checks *which* files changed and never what they say.
18+
19+
Reading a prompt back confirms it: `jobs/impl-slice.prompt.md` carries title, write-allowed, read-allowed and acceptance, and no task at all.
20+
21+
**Five prior reviews reported this** — df10, df11, df12, df18, df20 — and it stayed live, because each was read as a one-off spec gap in that run. Dogfood 25 is what closed it, and only because recall had been made reachable an hour earlier: the reviewer's second query returned all five reports at once, and the finding stopped being *"a spec gap"* and became *"the loop is not closing"*. That is the argument for recall, demonstrated on recall's own release, by the agent recall was given to.
22+
23+
Fixed three ways, because one was not enough:
24+
25+
* **`body` is read first**, with `description` / `prompt` / `spec` kept as aliases.
26+
* **A job with none of them is refused at emit.** A prompt with lanes and no instructions asks the worker to invent the task, and an invented task that stays in its lane is invisible to every check this pipeline has. This is the mechanism that would have caught it on run 1 instead of run 25.
27+
* **The field is documented**, in the per-job table it was missing from — which is a fair share of why the mismatch survived: nothing said what the field was called.
28+
29+
The shipped `examples/manifest.example.yaml` was itself refused by the new guard — five jobs, no task text, and it is the file people copy. It now carries real instructions for all five.
30+
31+
### Fixed — recall was unreachable behind the bash clamp
32+
33+
3.3.3 told five agents to consult V-memory first. Dogfood 24 spawned `spec-reviewer` — the one agent Engine C spawns by role — and watched it try. The harness denied the recall query, a second phrasing, the `recall-check` bridge, and the form `/v:remember` itself instructs: the Implement clamp admitted exactly one command form, `register-lane`.
34+
35+
The instruction was prose in an agent definition; the clamp is mechanism, and mechanism wins. This repository has a name for that failure, and it shipped into the feature meant to demonstrate recall.
36+
37+
The clamp now admits `compound-v-memory.py search` and `recall-check`. Both only read — a SQLite index outside the repo, printed. `refresh` and `bootstrap`, which write, are deliberately not admitted, and a selftest asserts it.
38+
39+
**Worth recording on its own:** that reviewer refused to write *"V-memory returned nothing"*, because it would have claimed an empty result set from a query that never ran. A less careful agent would have satisfied the acceptance criterion falsely. The gap is invisible unless the agent distinguishes an empty result from a blocked one.
40+
741
## [3.3.3] - 2026-09-02
842

943
### Fixed — V-memory had no callers among the agents

docs/superpowers/execution/2026-09-02-df25-recall-reachable/.run.lock

Whitespace-only changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
d0a79bc803e80c0119ca88cfd96ea146fda8266e
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"scope": "impacted",
3+
"resolved_commands": [
4+
"/bin/echo floor-ok",
5+
"/bin/echo scoped"
6+
],
7+
"floor_command": "/bin/echo floor-ok",
8+
"full_command": "/bin/echo full"
9+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
29977a714c7721a21e6afc74081335abe4bceb44
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"scope": "impacted",
3+
"resolved_commands": [
4+
"/bin/echo floor-ok",
5+
"/bin/echo scoped",
6+
"/bin/echo full"
7+
],
8+
"floor_command": "/bin/echo floor-ok",
9+
"full_command": "/bin/echo full"
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"agents": {},
3+
"manifest": "/Users/oleg/Dev/superpowers-v/docs/superpowers/execution/2026-09-02-df25-recall-reachable/manifest.yaml",
4+
"run_id": "2026-09-02-df25-recall-reachable",
5+
"worktrees": {
6+
"/Users/oleg/Dev/superpowers-v": "spec-review",
7+
"/Users/oleg/Dev/superpowers-v/.claude/worktrees/wf_814f9f74-b4d-1": "impl-slice"
8+
}
9+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 docs/superpowers/execution/2026-09-02-df25-recall-reachable/.run.lock
2+
9ad677f61cc8334bd9f7870e04947476b14abc280287611838087f3bbba20d88 docs/superpowers/execution/2026-09-02-df25-recall-reachable/jobs/impl-slice.baseline
3+
2844aec6859b9a32fa04f24b4502b7e2b920713c7b3b3cd1e75946aa4fd1583e docs/superpowers/execution/2026-09-02-df25-recall-reachable/jobs/impl-slice.test-contract.json
4+
fd85e6a46fabe5b653b03de79e634338a0421302c2a7347ecb84b2a91152bb8a docs/superpowers/execution/2026-09-02-df25-recall-reachable/lane-map.json
5+
630e01aa800469ab61c972aa27b9cbf300e51da1d407ee5108eb608e9153a0c3 docs/superpowers/execution/2026-09-02-df25-recall-reachable/receipts/impl-slice.gate.json
6+
bcb853d7e903fc4d2ee68682ea3c714b22c20a48d3eb7eb3b5f61b78d312b97a docs/superpowers/execution/2026-09-02-df25-recall-reachable/results/impl-slice.json
7+
40d5fd17e4fa7b907cf2d790c27ec33f1ab77a7dcbe9c7fa35b25c80afa408a0 docs/superpowers/execution/2026-09-02-df25-recall-reachable/state.json
8+
494280c4cf8a239113f255dfbd90529a9cb0fc1c0d9b1d50cea0f9a22a53efc5 scripts/__pycache__/compound-v-integration-gate.cpython-314.pyc
9+
3cd3e5784853a81b150faeddc16fe89e29b82054b9595b5b164893a2c219e14e scripts/__pycache__/compound-v-validate-manifest.cpython-314.pyc
10+
ff6acf7dcd0db48ad768d813dbfc9ed8a73316158adde8b405be452909f439af docs/superpowers/execution/2026-09-02-df25-recall-reachable/dispatch.workflow.js
11+
bac1a8f50160b05492ffbdc34e5143d0fefa8e8be7044b3a01f2a74d1d22cfe0 docs/superpowers/execution/2026-09-02-df25-recall-reachable/jobs/impl-slice.prompt.md
12+
0c86e3843aa1a2aca7f2bfab9642099cdd906f513be242599ce55c3396147a06 docs/superpowers/execution/2026-09-02-df25-recall-reachable/jobs/spec-review.baseline
13+
c1368616f10b8ffb6a1e3df66dd7319bbbf86b7006222967890202ad0199f7bf docs/superpowers/execution/2026-09-02-df25-recall-reachable/jobs/spec-review.prompt.md
14+
572d131aecef6ff4d3b50736eb260d9c127b286fbe0e2c8d489fab1c2d2280ab docs/superpowers/execution/2026-09-02-df25-recall-reachable/jobs/spec-review.test-contract.json
15+
0081972a59a183bd7c76f452e3b72b43a36689191c70a9e98a5d45e11425ed0d docs/superpowers/execution/2026-09-02-df25-recall-reachable/manifest.yaml
16+
25aa52688eca91a7fbfaea55930d896cebe9009c6c1185e633bc02c2a9fca461 docs/superpowers/execution/2026-09-02-df25-recall-reachable/plan.md
17+
62c6688330141730a598ae1555636306d9102a497f95a774047514e3bf1e5bd6 docs/superpowers/execution/2026-09-02-df25-recall-reachable/preexisting/spec-review.txt
18+
25aa52688eca91a7fbfaea55930d896cebe9009c6c1185e633bc02c2a9fca461 docs/superpowers/execution/2026-09-02-df25-recall-reachable/spec.md

0 commit comments

Comments
 (0)