--- id: ACTIVITY-WP-0008 type: workplan title: "Weekly Coding Retrospection schedule (Saturday evenings)" domain: custodian repo: activity-core status: blocked owner: codex topic_slug: custodian created: "2026-06-07" updated: "2026-06-07" state_hub_workstream_id: "7387fc50-1f2c-471a-9d85-bb085cbd0b63" --- # Weekly Coding Retrospection schedule (Saturday evenings) **Origin:** requested from the `helix_forge` domain. Every Saturday 19:00 Europe/Berlin, read the previous week's coding-session analysis (published to the hub by helix_forge session-memory) and open **one improvement suggestion per relevant repo — the three most promising**. This is the same shape as the existing `weekly-sbom-staleness` activity-definition (cron → context resolver → per-repo task emission); only the data source is new. **Dependency:** `AGENTIC-WP-0010` (helix_forge) publishes the `event_type=coding_retro` read model this schedule consumes. That side computes and ranks (top-3 per repo, cross-flavor first, recommendations from the Pattern Catalog); this side schedules and routes. ## `coding_retro` Context Resolver ```task id: ACTIVITY-WP-0008-T01 status: done priority: high state_hub_task_id: "26846304-f5f1-4edf-aba3-227c9b11c9fa" ``` Add a context resolver (`context_resolvers/`) returning the latest weekly coding-retro published to the hub (`event_type=coding_retro`): its `suggestions[]` (repo, title, recommendation, priority, score), window, and `generated_at`. Bind under `context.retro`. Mirror the `repo_sbom_status` resolver shape so rules can `for_each` over `context.retro.suggestions`. **2026-06-07:** Implemented `query: coding_retro` in the State Hub context resolver. It reads recent `/progress/` items, selects the latest `event_type=coding_retro`, normalizes `suggestions[]`, and returns an empty suggestion list while the upstream publisher has not produced a read model yet. ## `weekly-coding-retro` Activity-Definition ```task id: ACTIVITY-WP-0008-T02 status: done priority: high state_hub_task_id: "09eeacb7-dc0d-4617-8398-a99a4e5a227e" ``` Add `activity-definitions/weekly-coding-retro.md`: cron `0 19 * * 6` Europe/Berlin, `context_source` `coding_retro`, and a rule that `for_each` over `context.retro.suggestions` emits one improvement task to `target_repo` with the suggestion title + recommendation, priority, and labels `[coding-retro, improvement, automated]`. Ship `enabled: false` until the resolver + publish are verified. A starter draft is provided at `activity-definitions/weekly-coding-retro.md` (proposed by helix_forge). **2026-06-07:** Updated the starter definition against the implemented resolver: cron Saturday 19:00 Europe/Berlin, `context_source` `coding_retro` bound to `context.retro`, and a rule that emits one positive-score suggestion per target repo with the coding-retro/improvement/automated labels. It remains `enabled: false` until live publish verification succeeds. ## Dry-Run Verify + Enable + Docs ```task id: ACTIVITY-WP-0008-T03 status: wait priority: medium state_hub_task_id: "9dcbebe7-13dd-4957-9a72-858418049aef" ``` Dry-run the definition end-to-end against a published `coding_retro` read model; confirm one task per relevant repo (≤ 3) with correct routing and no duplicates on re-run. Flip `enabled: true`. Document alongside `weekly-sbom-staleness`. After workplan updates, run from `~/state-hub`: ```bash make fix-consistency REPO=activity-core ``` **2026-06-07:** Added fixture-level dry-run coverage and runbook documentation. Live State Hub did not yet expose a published `event_type=coding_retro` progress item, so the real dry-run, duplicate check, and `enabled: true` flip remain blocked on `AGENTIC-WP-0010`.