You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix spec/code drift the conformance scan found; make code satisfy the new REQ
A spec-conformance scan (spec-scan agent) caught three real drifts between the committed
specs and what the code does. This project treats spec/code drift as a defect, so:
1. WORKER ON HOST -- the serious one: code contradicted a committed spec. design.md line 276
listed worker-on-host as REJECTED ("abandons compose") and DES-JOB-FILES-VIA-VOLUME-SUBPATH
mandated a containerised worker + socket-proxy -- while deploy/docker-compose.yml, the
README, and run-container.mjs all run the worker on the host. The decision was made during
Phase 2 (verified: the docker CLI translates host paths, the daemon does not, and the VM
prefix moved between Docker Desktop versions; local-folder jobs also REQUIRE a host bind
mount a named volume cannot give) but only written to the plan, never the specs. Added
DES-WORKER-ON-HOST with the evidence; marked DES-JOB-FILES-VIA-VOLUME-SUBPATH SUPERSEDED in
place (its subpath/socket-proxy research stays relevant if a GitHub-only deploy ever
re-containerises the worker). Fixed the repo-layout deploy line.
2. CLI TRIGGER unspecified -- built (user-directed) but no spec mentioned it. Added
DES-CLI-TRIGGER-FOR-LOCAL, including the verified check that CONST-BUDGET-BEFORE-TOKENS
still holds: the cap is enforced in the processor immediately before the container, not in
the trigger, so a producer cannot bypass it.
3. SCOPE stale -- requirements.md still said "triggers on GitHub issue activity" and never
mentioned local folders/CLI/cron, though local is now first-class and built. Rewrote Scope
as trigger x target. Scoped REQ-JOB-STATUS-COMMENTS to GitHub jobs explicitly (a local job
has no issue). Added REQ-LOCAL-JOB-VISIBILITY -- and made the code satisfy it: startWorker
now logs one job_completed/job_failed line per job with the id and outcome, the local
counterpart of the issue comment and the signal for CONST-PI-VERSION-PINNED's silent-no-op
mode.
drift clean, no dangling IDs, all three new IDs resolve. The gap-scan agent's MISSING list is
now stale -- everything it flagged (runContainer, config, entrypoint, enqueue) was built this
session; the loop runs.
| 2026-07-15 | Initial. Extracted from `DESIGN.md` v0.1 (2026-07-14, local, uncommitted) §2, §3, §4, §5, §9, §11. That document recorded "50 claims adversarially verified: 48 confirmed, 2 refuted" — **verified against documentation**. Source-verification at `earendil-works/pi @ 5e336cf` subsequently corrected ~7 points. `DES-PERSONA-VIA-APPEND-SYSTEM-MD` is materially rewritten: the source doc's decisions #1 and #2 were mutually exclusive as written. `DES-NAME-KEEP-PI-DISPATCH` is new. `pi-harness` and `pi-sentry` were absent from the source doc's alternatives and are added. §5.7's "caches roll at midnight" caveat is **dropped** — 0.80.7 removed the date from the default system prompt. |
438
513
| 2026-07-15 | An admin panel and cross-platform (Windows/macOS/Linux + Docker) added to scope. Two new decisions and one **security correction**. `DES-PANEL-SEPARATE-FROM-RECEIVER`: the source doc mounted Bull Board on the receiver — defensible for a read-only dashboard, **not** once the same surface sets the model and rewrites flows, because the receiver is the one process that must be internet-reachable. The panel and the receiver have opposite reachability requirements and cannot share a port. `DES-FLOWS-ARE-DATA-PERSONA-IS-CODE`: the panel requirement collided with keeping flows as reviewed repo markdown; resolved by observing that one file was carrying two jobs — hard rules need immutability, task recipes need editability. Architecture diagram and repo layout updated; the public edge is now drawn explicitly. Build order extended with panel and deploy. |
514
+
| 2026-07-16 |**Resolved a spec/code contradiction.**`DES-WORKER-ON-HOST` added and `DES-JOB-FILES-VIA-VOLUME-SUBPATH` marked SUPERSEDED: the worker runs on the host (the `docker` CLI translates host paths, the daemon does not, and the VM prefix moved between Docker Desktop versions; local-folder jobs also *require* a host bind mount a named volume cannot give). The committed spec had rejected worker-on-host while the code already did it -- caught by a spec-conformance scan. `DES-CLI-TRIGGER-FOR-LOCAL` added: the CLI producer was built (user-directed) but unspecified; recorded with the check that `CONST-BUDGET-BEFORE-TOKENS` still holds because the cap is enforced in the processor, not the trigger. Repo-layout `deploy/` line corrected (compose runs Valkey only). |
-**Acceptance**: Given a local job reaching a terminal state, the worker console shows exactly one
210
+
completion or failure line carrying the job id and outcome; during the run, the container's output is
211
+
visible there.
177
212
178
213
---
179
214
@@ -195,3 +230,4 @@ wait-list working as designed, not a failure — see `README.md`.
195
230
| Date | Change |
196
231
|---|---|
197
232
| 2026-07-15 | Initial. Extracted from `DESIGN.md` v0.1 §1, §5.1–5.2, §5.6, §7, §8. `REQ-RUNNER-TURN-BUDGET` and `REQ-UPSTREAM-CONTRACT-TESTS` are **new** — both exist because source-verification refuted design assumptions the doc had marked "verify". §8's failure-mode table was the richest source; one of its rows ("verify: pi max-turns option") was wrong. |
233
+
| 2026-07-16 |**Scope de-GitHub-ified.** It said "triggers on GitHub issue activity" and never mentioned local folders, the CLI/panel, or cron -- stale, since local is now first-class and built. Rewritten as trigger × target. `REQ-JOB-STATUS-COMMENTS` scoped to GitHub jobs explicitly (a local job has no issue). New `REQ-LOCAL-JOB-VISIBILITY`: local jobs surface their outcome on the worker console (and later the panel) -- the local counterpart of the issue comment and the same signal for `CONST-PI-VERSION-PINNED`'s silent-no-op mode. Code updated to match: startWorker now logs one terminal line per job. |
0 commit comments