freedom-intelligence/activity-definitions/fi-daily-research-brief.md
tegwick d96abacb1c FI-WP-0005-T06: retire the break-glass host timer.
Removes scripts/railiance-rhythm (units, installer, runner); the host
units were uninstalled from railiance01. Docs now name the claim loop as
the only scheduled executor, a manual one-shot for recovery until the
legacy expiry, and profile-pin rollback after cutover.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 51320@bnt-lap001
Assistant-Session: 9d40b4c7-8e3c-42ee-b755-d658d4640d6c
2026-09-22 16:19:48 +02:00

73 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: fi-daily-research-brief
name: Freedom Intelligence Daily Research Brief
enabled: true
owner: custodian-agent
governance: custodian
status: active
trigger:
type: cron
cron_expression: "30 7 * * 1-5" # weekdays 07:30
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: state-hub
query: fi_brief_status
params:
repo: freedom-intelligence
bind_to: context.fi_brief
# Resolver (FI-WP-0002-T03, activity-core): expected shape
# {items: [{kind: "daily_brief", due: bool, date: "YYYY-MM-DD",
# last_run_at}]} — due is true when no *successful origin-published*
# fi_daily_brief exists for today (Europe/Berlin).
# Completion event is valid only with detail.pushed=true and the file on
# origin/main. Local-only commits must not clear due (FI-WP-0004).
---
# Freedom Intelligence Daily Research Brief
Runs weekdays at 07:30 Berlin time. Emits one task when the daily research brief
for `freedom-intelligence` is due. Execution is **out of band**: consumer checks
out this repo and follows `docs/daily-brief-playbook.md` (axes AD, collection
candidates, template under `briefs/`).
activity-core only schedules and spawns. It does not call model APIs for the
brief body.
Baseline field memory: `research/2026-07-24-baseline-field-survey.md`. Daily
briefs are **deltas** from prior briefs + that baseline — not full resurveys.
```rule
id: emit-fi-daily-brief-task
for_each: context.fi_brief.items
bind_as: item
condition: 'context.item.due'
action:
task_template: "FI daily research brief ({context.item.kind}) for {context.item.date}"
description: >
Produce briefs/YYYY/MM/YYYY-MM-DD.md per docs/daily-brief-playbook.md and
briefs/_template.md. Cite primary sources. Flag collection candidates.
Commit AND push to origin/main. Post fi_daily_brief only if
detail.pushed=true and detail.origin_sha is set. If push fails, post
executor_run ok=false so due stays true. Do not re-announce cataloged
models. Do not invent parameter counts.
target_repo: freedom-intelligence
priority: medium
labels: ["freedom-intelligence", "research-brief", "automated"]
```
## Enable checklist
1. [x] Resolver `fi_brief_status` in activity-core
2. [x] ConfigMap projection + Temporal schedule (weekdays 07:30 Europe/Berlin)
3. [x] Completion event `fi_daily_brief` proven
4. [x] `enabled: true` / `status: active`
5. [x] Executor: `rein-aharness fi-research-brief` via the rein-aharness claim
loop on railiance01 (host timer removed 2026-09-22, FI-WP-0005-T06)
Migration (FI-WP-0005): the owner declaration for the profiled replacement is
`fi-daily-research-brief.declaration.yaml` (status `proposed`). This definition
stays on the compatibility route until the T08 cutover.
Layers: activity-core (when/what/where) → rein-aharness (execute) → this repo.
See `docs/recurrence-ops.md` and `activity-core/docs/recurring-automations-playbook.md`.