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.
6.8 KiB
| 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 |
|
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: falseuntil 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: truewhen nofi_daily_briefprogress event withdetail.repo=freedom-intelligenceexists 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 repo’s
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"
- Manual
POST .../activity-definitions/<id>/triggerwith def still disabled or one-shot test path - Confirm
activity_task_spawnin State Hub (no Forgejo spam) - Manually execute playbook once; post
fi_daily_brief - Confirm next resolver
due=falsefor that date - Set
enabled: trueon 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 (T04–T05)
- Consumer path documented for harness (T06)
- First manual daily brief +
fi_daily_briefprogress 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 |