Repository navigation
WS5 — Campaign machinery: ledger entity, warrant bounds, fleet dispatch, scheduled runs #373
Description
Activity
- addedafkImplementable without human interactionImplementable without human interaction
on Aug 13, 2026 Design input from the Piccolo-2.0 / autoresearch design session (2026-08-17; vault memo
note-20260817-autoresearch-pulse-stack-amico-run-rethink, v2.1): amico-run-the-launcher is dissolving — five verbs remain (AUTHOR · EXECUTE · VERIFY · REMEMBER · METER), the run-dir contract moves into the Piccolo spec runner, and the binary shrinks toamico cloud+ bookkeeping. One load-bearing consequence for THIS issue:Anchor warrant enforcement where it survives the dissolution, not in the local launch path. 'Launches outside a live warrant are refused' should be refused at (1) the cloud service at submission (server-side budget metering is the METER verb — the one enforcement point that's real for remote fleets), and (2) the ledger/ingest gate (stage-only promotion already lives there). A local amico-run refusal is advisory at best — agents have shells; anything enforced client-side is honor system with extra steps. If WS5 wires refusal into the CLI launch path, the dissolution deletes it later; if it wires into server + ledger, WS5 survives untouched.
Same for fleet dispatch: the durable shape is the researcher role's loop (Notturno scheduling) submitting specs/scripts through the thin cloud client — dispatch is an agent loop plus server-side budgets, not new launcher verbs. Campaign records should reference derived spec records (canonical projection hashed at run start — the record doctrine: scripts author, specs record); the Piccolo side lands derivation + ResultSpec as P6a of the 2.0 program, timed before the end-to-end QEC criterion here needs it. The pack table in the memo shows qec instantiating the same five verbs — your end-to-end criterion is the qec column of exactly that.
Closing — this Aug 13 workstream PRD has been superseded by more specific issue waves (the amicissimo split #747, director-core, codesign SEAMs, and the Sep 5-7 architecture issues). The work described here is tracked more precisely in newer issues.
WS5 — Campaign machinery: ledger entity, warrant bounds, fleet dispatch, scheduled runs
Important
Problem — The unit of autonomy (parent #368) is the campaign, but the run ledger knows only plans and solves, warrants bind to launches not research programs, and fleet dispatch is a set of ad-hoc ssh-nohup scripts. Unattended research needs the campaign as a first-class, warrant-bounded entity.
Approach — Add the campaign entity to the run ledger with warrant-minted bounds (max samples, tier, spend; promotion always stage-only). Fleet dispatch verbs accept a campaign reference. Scheduled runs (Notturno) carry campaigns and produce staged, reviewable output. The slice closes with one QEC campaign running end-to-end through telaio (WS4), staging survivors for human review.
Scope — in: campaign ledger entity, warrant extension, fleet dispatch integration, scheduled campaigns, the end-to-end QEC campaign criterion · out: promotion automation (never in v1), concurrent scheduler work beyond what the campaign needs.
Acceptance Criteria
Testing Decisions
Extend the run gate's tests to campaign warrants (refusal paths first); scheduler tests for campaign jobs; the end-to-end criterion runs as a dry-run integration test plus one live gated run. Extends #372's campaign fixtures.
Key Decisions
Constraints & Invariants
Prior Art
Source
Part of #368 · Blocked by #369, #372 · design-of-record: vault spec note
spec-20260813-162300-autoresearch-studio