diff --git a/AGENTS.md b/AGENTS.md index 8e91c86..1cd9b49 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -116,8 +116,12 @@ curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ **Close:** 1. Update workplan file task statuses to reflect progress -2. Log: `POST /progress/` with a summary of what changed -3. After workplan file changes, run: +2. If finishing a workplan: hand off **residuals** as live work records first + (intake with `origin: residual` + `origin_ref: `, or a next workplan / + decision / engagement). Do not park leftovers only in prose or `SCOPE.md`. + Canon: `the-custodian/canon/standards/work-record-types_v0.1.md` § Residuals. +3. Log: `POST /progress/` with a summary of what changed (name handoff ids) +4. After workplan file changes, run: ```bash statehub fix-consistency ``` @@ -193,6 +197,12 @@ Task description text. Status progression: `todo` → `progress` → `done`; use `wait` for waiting/blocked work and `cancel` for stopped work. +**Residuals when finishing:** actionable leftovers become live work records +before `status: finished` — usually an intake in `AutopilotWorkQueue.md` +(`origin: residual`, `origin_ref: BINKY-WP-NNNN`) or a spawned workplan. +Residual is a *role*, not a kind. Fleet list lives on State Hub, not in +`SCOPE.md`. See OperatingRhythm residual note and work-record-types § Residuals. + To create a new workplan: 1. Write the file following the format above 2. Run `statehub fix-consistency` locally; ask the operator only if the CLI or diff --git a/AutonomyPolicy.md b/AutonomyPolicy.md index 54fbbe1..045d9e7 100644 --- a/AutonomyPolicy.md +++ b/AutonomyPolicy.md @@ -33,6 +33,12 @@ Orange into office-hour days, protect Red from automation. only if ambiguity changes risk or external commitment. - **Documentation:** agents may create/improve internal markdown freely; must preserve provenance and mark assumptions. +- **Residuals (finished workplans):** before marking a workplan `finished`, + hand off actionable leftovers as **live work records** (intake with + `origin: residual` + `origin_ref: `, or a next workplan / decision / + engagement). Green/Blue residual capture is normal autonomous work. Do not + park residuals only in prose or `SCOPE.md`. Fleet canon: + `work-record-types_v0.1.md` § Residuals. - **Email:** draft freely; send only pre-approved low-risk routine categories. Pricing, commitments, complaints, contracts, legal → decision queue. - **Spending:** recommend freely; never spend outside approved recurring diff --git a/AutopilotWorkQueue.md b/AutopilotWorkQueue.md index ca970de..53f23e3 100644 --- a/AutopilotWorkQueue.md +++ b/AutopilotWorkQueue.md @@ -12,9 +12,39 @@ > "## Completed" log below as the going-forward record. The entries already > in "## Completed" are historical (pre-canon) and stay as prose; nothing > there needs migrating. +> +> **Residuals from finished workplans:** capture here as intakes with +> `origin: residual` and `origin_ref: ` (or spawn a workplan). +> Residual is a role, not a kind — see work-record-types § Residuals. ## Queue +```yaml +id: AWQ-011 +title: "agent-harness brief-weekly via llm-connect (Friday review prep)" +lane: green +status: open +origin: residual +origin_ref: BINKY-WP-0006 +pulls_from: [BINKY-WP-0006-T05/T06, OperatingRhythm.md weekly review] +notes: "Same pattern as brief-daily: structured JSON via llm-connect + markdown + apply + commit. Wire scripts/railiance-rhythm/run-review.sh; hub event + binky_weekly_review. Promote to workplan if scope grows beyond one session." +``` + +```yaml +id: AWQ-012 +title: "Optional: retarget railiance llm-connect rhythm to open-weights model" +lane: green +status: open +origin: residual +origin_ref: BINKY-WP-0006 +pulls_from: [BINKY-WP-0006-T03, integrations/railiance-llm-rhythm.md] +notes: "Current google/gemini-2.5-flash works; cost/open-weights lock deferred. + Measure triage quality on fixture CSV before changing ConfigMap. May land in + activity-core/llm-connect rather than binky-only." +``` + ```yaml id: AWQ-002 title: "Map self-billed Eigenentwicklung invoices to ecosystem capabilities as IP evidence" @@ -23,7 +53,6 @@ pulls_from: [RISK-002, EcosystemMap.md IP note] notes: "Inputs live in DUO Belegablage / 2binky archive; prepare mapping table, founder verifies" state_hub_intake_id: "019f81b5-3a56-7a01-ae75-f0f5373d4edc" ``` - ```yaml id: AWQ-003 title: "Domain inventory: enumerate owned domains, propose primary company domain shortlist" diff --git a/OperatingRhythm.md b/OperatingRhythm.md index e18e57e..4e1ff0d 100644 --- a/OperatingRhythm.md +++ b/OperatingRhythm.md @@ -63,8 +63,12 @@ and pause railiance timers. Script kept for one month as break-glass. + deterministic apply). Daily brief uses `brief-daily` the same way. **Do not** install Claude Code or another coding agent on railiance01. Host timers resolve `LLM_CONNECT_URL` via port-forward or Service ClusterIP (see -`integrations/railiance-llm-rhythm.md`). Optional residual: `brief-weekly` -subcommand for Friday review prep. +`integrations/railiance-llm-rhythm.md`). + +**Residuals (work records, not prose):** leftovers from finished workplans are +live intakes/workplans with `origin: residual` + `origin_ref: ` — see +`AutopilotWorkQueue.md` (e.g. AWQ-011 `brief-weekly`) and fleet canon +`work-record-types_v0.1.md` § Residuals. Do not park residuals in `SCOPE.md`. ## Weekly review (founder, ~15 min) diff --git a/SCOPE.md b/SCOPE.md index 5ddbe29..0248377 100644 --- a/SCOPE.md +++ b/SCOPE.md @@ -25,6 +25,10 @@ binky-control exists to provide the capability described in INTENT.md. - Product/service source code and delivery artifacts - Human-only actions: signing, contracts, payments, legal/HR/security decisions - Sister-repo concerns tracked in unattended-progress-company +- **Residual / follow-up work parking** — unfinished leftovers from closed + workplans are **work records** (intake in `AutopilotWorkQueue.md`, next + workplan, decision, engagement), not SCOPE bullets. See fleet canon + `work-record-types_v0.1.md` § Residuals. ## Current State diff --git a/integrations/executor-cutover-runbook.md b/integrations/executor-cutover-runbook.md index ce99e00..edb6e2d 100644 --- a/integrations/executor-cutover-runbook.md +++ b/integrations/executor-cutover-runbook.md @@ -44,7 +44,7 @@ cd ~/binky-control && git pull | --- | --- | | Post-scan **triage** via llm-connect | **Done** — `agent-harness mail-triage`; three clean railiance cycles 2026-07-22 | | Daily brief without host coding agent | **Done** — `brief-daily` | -| Weekly review prep without host coding agent | **Open** — need `brief-weekly` (same pattern) | +| Weekly review prep without host coding agent | **Residual intake AWQ-011** — `brief-weekly` (same pattern) | | Host timers dual activity-core schedules | Simplify when in-cluster CronJob/poller owns cadence | | **Out of scope / rejected:** install Claude Code on railiance01 | — | diff --git a/integrations/railiance-llm-rhythm.md b/integrations/railiance-llm-rhythm.md index 8a29456..33103c1 100644 --- a/integrations/railiance-llm-rhythm.md +++ b/integrations/railiance-llm-rhythm.md @@ -67,6 +67,9 @@ timer / CronJob **Dogfood (closure T06):** three clean unattended cycles on railiance01 2026-07-22 ~08:26–08:27 UTC — each scan+triage `ok` with hub progress. +Residuals as live intakes: **AWQ-011** (`brief-weekly`), **AWQ-012** (optional +open-weights retarget) — see `AutopilotWorkQueue.md` and work-record residual +convention. ## Daily / weekly (same shape) diff --git a/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md b/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md index 7b6090d..5b1b52f 100644 --- a/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md +++ b/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md @@ -166,5 +166,5 @@ Three clean unattended mail cycles on railiance (scan+triage); milestone; **2026-07-22:** Three clean scan+triage cycles on railiance01 (UTC 08:26–08:27), each `ok` with hub events `binky_mail_intake` + `binky_mail_triage`. Host `LLM_CONNECT_URL` discovery now prefers reachable ClusterIP (not broken -cluster DNS). Residual: `brief-weekly` still unimplemented (weekly timer will -fail until shipped); open-weights model retarget optional. +cluster DNS). Residuals handed off as live intakes: **AWQ-011** (`brief-weekly` +via llm-connect), **AWQ-012** (optional open-weights model retarget).