# Daily research brief — playbook **Audience:** operator or agent executing `target_repo: freedom-intelligence` **Template:** `briefs/_template.md` **Baseline memory:** `research/2026-07-24-baseline-field-survey.md` **Sources:** `docs/sources-allowlist.md` --- ## Purpose Produce **one** curated brief per active day covering axes A–D when there is signal. Briefs are **deltas** from the baseline survey and prior briefs — not full resurveys. --- ## Idempotence | Rule | Detail | | ---- | ------ | | One brief per date | Path `briefs/YYYY/MM/YYYY-MM-DD.md` | | Calendar | Prefer **Europe/Berlin** date in front matter | | Skip empty days | Either omit file or write `*No material delta.*` in Headline deltas | | Automation due bit | Cleared only by State Hub event `fi_daily_brief` (below) | --- ## Manual procedure 1. **Orient** - Read last 1–2 briefs if any; skim baseline § executive snapshot if first week - `git pull` on freedom-intelligence 2. **Scan** (`docs/sources-allowlist.md`) — 30–60 minutes cap - Capture only items that change capability, cost, access, or operability 3. **Draft** ```bash mkdir -p briefs/$(date +%Y/%m) cp briefs/_template.md briefs/$(date +%Y/%m)/$(date +%Y-%m-%d).md ``` - Fill front matter (`status: final` when done) - Leave empty sections as `*(none)*` - Cite primary URLs 4. **Collection candidates** - Use inventory field names; set priority - If nominating: add or update `inventory/catalog/{id}.yaml` with `status: candidate` and `collection.brief_refs` 5. **Lab implications** - Link open workplans (`FI-WP-*`) only when action is real 6. **Commit** (operator policy) — brief + any catalog YAML 7. **Completion evidence** (required for activity-core rhythm) Post State Hub progress (HTTP or MCP), shape: ```yaml event_type: fi_daily_brief author: 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: 0 ``` Workstation API often `http://127.0.0.1:8000`; remote tunnel ports per Custodian docs. See `docs/state-hub-delivery.md`. --- ## Automation consumer (activity-core design) **Organizer:** activity-core (when / what / where) — not workstation cron. **Executor:** rein-aharness on railiance01 (`fi-research-brief`). **Org playbook:** `activity-core/docs/recurring-automations-playbook.md`. When activity-core emits `activity_task_spawn` with `target_repo: freedom-intelligence` and labels including `research-brief`: 1. Railiance host timer (or manual) runs `rein-aharness fi-research-brief --target-repo ~/freedom-intelligence` 2. llm-connect drafts the brief; harness commits and posts **`fi_daily_brief`** 3. Idempotency: one brief file per date; resolver clears `due` on completion event Do **not** install Claude Code / Codex on railiance01 for this rhythm. | Piece | Location | | ----- | -------- | | Definition | `activity-definitions/fi-daily-research-brief.md` | | Ops | `docs/recurrence-ops.md` | | Executor install | `scripts/railiance-rhythm/install-on-railiance.sh` | | Workplan | FI-WP-0002 (finished) | | Resolver | `fi_brief_status` in activity-core | ### Ops: load this repo’s definitions ```bash # Dev export ACTIVITY_DEFINITION_DIRS=.../freedom-intelligence make -C ~/activity-core sync-activity-definitions # Production: ConfigMap actcore-external-activity-definitions # then POST /admin/sync?definitions=true&schedules=true ``` --- ## Quality bar | Check | Pass | | ----- | ---- | | Signal | No filler paragraphs | | Sources | At least one primary link per non-empty axis row | | Honesty | Benchmarks marked directional; prices “verify before budget” | | Collection | License noted for any candidate | | Length | Prefer one screen to three; deep dives go under `research/` | --- ## First daily after baseline The baseline survey (2026-07-24) already covers the field. The **first daily** should only list changes **after** that document’s research window. If nothing moved, a short no-delta brief still completes the rhythm and posts `fi_daily_brief`.