freedom-intelligence/workplans/FI-WP-0002-activity-core-daily-research.md
tegwick a83ef0a79a Register reserve under agents hub and pin VAULT storage.
Classify freedom-intelligence for State Hub (agents domain), sync FI-WP-0001..0003 with hub IDs, enrich catalog entries with profile/SWOT, and pin the open-weight reserve to D:\vault\coulomb\freedom-intelligence\ with strategic S-tier policy.
2026-07-28 00:25:21 +02:00

6.8 KiB
Raw Blame History

id type title domain repo status owner topic_slug priority created updated depends_on state_hub_workstream_id
FI-WP-0002 workplan Activity-core daily research brief rhythm agents freedom-intelligence active grok freedom-intelligence high 2026-07-24 2026-07-24
FI-WP-0001
aa5b118e-36e2-41a7-b6c1-5d9ac9c7fb41

FI-WP-0002 — Activity-core daily research brief rhythm

Goal

Schedule and emit the Freedom Intelligence daily research brief via activity-core, following the proven Binky rhythm pattern:

Temporal cron (activity-core)
  → context: fi_brief_status (due?)
  → rule emit activity_task_spawn (state-hub sink)
  → consumer (agent-harness / operator) runs playbook in freedom-intelligence
  → progress event fi_daily_brief (idempotence for next day)

activity-core answers when / what / where. It does not write the brief. Execution stays in this repo (or a harness checking out this repo).

Architecture

Piece Location Role
ActivityDefinition freedom-intelligence/activity-definitions/fi-daily-research-brief.md Cron + rules
External def load activity-core ACTIVITY_DEFINITION_DIRS / external paths Discover domain def
Context resolver activity-core state-hub query fi_brief_status (or shell equivalent) due for today
Task sink state-hub activity_task_spawn Default safe sink
Consumer agent-harness Green/Blue or manual operator session Run playbook
Completion State Hub fi_daily_brief progress event Clears due

Reference contracts:

  • activity-core/docs/task-emission-consumer-contract.md
  • Binky: activity-definitions/binky-daily-rhythm.md + binky-control/OperatingRhythm.md
  • docs/daily-brief-playbook.md (this repo)

Schedule (proposed)

Field Value
Cron 30 7 * * 1-5 (weekdays 07:30)
Timezone Europe/Berlin
Misfire skip
First enable after dry-run spawn + one manual brief completion event proven

Weekends optional later (0 9 * * 6 optional Saturday scan) — not in v1.

Tasks

T01 — ActivityDefinition (domain repo, disabled)

id: FI-WP-0002-T01
status: done
priority: high
state_hub_task_id: "4eb44be8-04b7-45c9-9e78-e573a3501524"

Add activity-definitions/fi-daily-research-brief.md:

  • enabled: false until dry-run passes
  • cron + timezone as above
  • context source for due check (stub params documented if resolver not yet live)
  • rule: emit task when due, target_repo: freedom-intelligence, labels ["freedom-intelligence", "research-brief", "automated"]
  • description points at docs/daily-brief-playbook.md

Done when: file exists, frontmatter valid, matches ADR-002 shape used by existing definitions (binky / forgejo prune).


T02 — Completion event contract + playbook hook

id: FI-WP-0002-T02
status: done
priority: high
state_hub_task_id: "ce61769e-9c32-4757-a691-c443e6cec37d"

Document and implement playbook steps for:

event_type: fi_daily_brief
author: <agent-or-operator>
summary: "FI daily brief YYYY-MM-DD"
detail:
  repo: freedom-intelligence
  date: "YYYY-MM-DD"
  path: "briefs/YYYY/MM/YYYY-MM-DD.md"
  collection_candidates: <int>

Wire into docs/daily-brief-playbook.md and docs/state-hub-delivery.md.

Done when: completion evidence shape is unambiguous for a future resolver.


T03 — fi_brief_status context resolver (activity-core)

id: FI-WP-0002-T03
status: done
priority: high
state_hub_task_id: "37a5d67c-93b4-4cbd-996c-e87b9308e295"

Cross-repo (activity-core): implement state-hub (or shell) resolver:

  • Query name: fi_brief_status
  • Returns { items: [{ kind: "daily_brief", due: bool, date: "YYYY-MM-DD" }] }
  • due: true when no fi_daily_brief progress event with detail.repo=freedom-intelligence exists for today (Europe/Berlin)

Mirror binky_rhythm_status pattern. Add unit tests with mocked hub.

Done when: resolver merged in activity-core and callable from definition params.

Completed 2026-07-24: activity-core state_hub.py _fi_brief_status + tests (test_fi_brief_status_*). Ship with activity-core commit/push.


T04 — Register external activity-definitions path

id: FI-WP-0002-T04
status: todo
priority: high
state_hub_task_id: "ecb8df0a-4f5d-494e-9217-2906afbacf9c"

Cross-repo / ops: ensure railiance activity-core worker loads this repos activity-definitions/ (env ACTIVITY_DEFINITION_DIRS or documented external path). Run make sync-activity-definitions / schedule reconciliation.

Done when: definition appears in automation inventory; schedule id activity-schedule-fi-daily-research-brief (or equivalent) is visible when enabled.


T05 — Dry-run spawn, then enable

id: FI-WP-0002-T05
status: todo
priority: medium
state_hub_task_id: "4d7a7491-f458-4984-bda1-8d212046dbc6"
  1. Manual POST .../activity-definitions/<id>/trigger with def still disabled or one-shot test path
  2. Confirm activity_task_spawn in State Hub (no Forgejo spam)
  3. Manually execute playbook once; post fi_daily_brief
  4. Confirm next resolver due=false for that date
  5. Set enabled: true on definition; commit

Done when: one full loop proven; weekday schedule live.


T06 — Consumer routing note (agent-harness)

id: FI-WP-0002-T06
status: done
priority: medium
state_hub_task_id: "2df977ea-06b4-468d-b6fb-6b40e00f8928"

Document how harness/operator picks up target_repo: freedom-intelligence tasks (checkout path, Green/Blue profile, LLM via llm-connect if used). Prefer no Claude Code install on railiance01 (Binky residual lesson).

Done when: docs/daily-brief-playbook.md § Automation consumer is enough for the next agent session.

Completed 2026-07-24: playbook § Automation consumer + state-hub-delivery contract; first manual brief posted with fi_daily_brief event.


Acceptance (workplan-level)

  • Domain ActivityDefinition drafted (enabled: false)
  • Completion event contract documented
  • Resolver implemented in activity-core (T03) — ship with activity-core deploy
  • External path + dry-run enable (T04T05)
  • Consumer path documented for harness (T06)
  • First manual daily brief + fi_daily_brief progress event (2026-07-24)

Out of scope

  • Writing the LLM brief inside activity-core workers
  • ISSUE_SINK_TYPE=rest / Forgejo issues for this rhythm
  • Weekend or multi-brief-per-day schedules
  • Full State Hub domain onboarding for freedom-intelligence

Residual handoffs

Residual Owner repo
fi_brief_status resolver activity-core
ACTIVITY_DEFINITION_DIRS pin activity-core / railiance ops
Harness consumer profile agent-harness / the-custodian as applicable