2026-07-24 00:15:27 +02:00
|
|
|
|
# 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 |
|
2026-09-13 22:45:43 +02:00
|
|
|
|
| Automation due bit | Cleared only by State Hub event `fi_daily_brief` **after** the brief exists on `origin/main` |
|
|
|
|
|
|
| Hub without git | A `fi_daily_brief` event with no matching file is a **false completion**. Run `scripts/verify_brief_durability.py`. |
|
2026-07-24 00:15:27 +02:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 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
|
2026-09-13 22:45:43 +02:00
|
|
|
|
- Do **not** re-nominate a model already in `inventory/catalog/`
|
|
|
|
|
|
- Do **not** invent parameter counts; cite the model card or mark unverified
|
2026-07-24 00:15:27 +02:00
|
|
|
|
- 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
|
|
|
|
|
|
|
2026-09-13 22:45:43 +02:00
|
|
|
|
6. **Commit and push** — brief + any catalog YAML must land on `origin/main`.
|
|
|
|
|
|
A local-only commit does **not** complete the day.
|
2026-07-24 00:15:27 +02:00
|
|
|
|
|
|
|
|
|
|
7. **Completion evidence** (required for activity-core rhythm)
|
|
|
|
|
|
|
2026-09-13 22:45:43 +02:00
|
|
|
|
Post State Hub progress **only after** origin has the commit:
|
2026-07-24 00:15:27 +02:00
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
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: 0
|
2026-09-13 22:45:43 +02:00
|
|
|
|
pushed: true
|
|
|
|
|
|
origin_sha: "<full sha>"
|
2026-07-24 00:15:27 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-09-13 22:45:43 +02:00
|
|
|
|
If the brief is written but push fails, post `event_type: executor_run`
|
|
|
|
|
|
with `ok: false` so `due` stays true.
|
|
|
|
|
|
|
2026-07-24 00:15:27 +02:00
|
|
|
|
Workstation API often `http://127.0.0.1:8000`; remote tunnel ports per
|
|
|
|
|
|
Custodian docs. See `docs/state-hub-delivery.md`.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-08-03 17:53:07 +02:00
|
|
|
|
## 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`.
|
2026-07-24 00:15:27 +02:00
|
|
|
|
|
|
|
|
|
|
When activity-core emits `activity_task_spawn` with
|
|
|
|
|
|
`target_repo: freedom-intelligence` and labels including `research-brief`:
|
|
|
|
|
|
|
2026-08-03 17:53:07 +02:00
|
|
|
|
1. Railiance host timer (or manual) runs
|
|
|
|
|
|
`rein-aharness fi-research-brief --target-repo ~/freedom-intelligence`
|
2026-09-13 22:45:43 +02:00
|
|
|
|
2. llm-connect drafts the brief; harness **commits, pushes to origin**, then
|
|
|
|
|
|
posts **`fi_daily_brief`** with `pushed=true`
|
|
|
|
|
|
3. Idempotency: one brief file per date on origin; resolver clears `due` only
|
|
|
|
|
|
then. Local commit without push must not clear `due`.
|
2026-07-24 00:15:27 +02:00
|
|
|
|
|
2026-08-03 17:53:07 +02:00
|
|
|
|
Do **not** install Claude Code / Codex on railiance01 for this rhythm.
|
2026-07-24 00:17:44 +02:00
|
|
|
|
|
2026-08-03 17:53:07 +02:00
|
|
|
|
| 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 |
|
2026-07-24 00:17:44 +02:00
|
|
|
|
|
2026-08-03 17:53:07 +02:00
|
|
|
|
### Ops: load this repo’s definitions
|
2026-07-24 00:17:44 +02:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-08-03 17:53:07 +02:00
|
|
|
|
# Dev
|
|
|
|
|
|
export ACTIVITY_DEFINITION_DIRS=.../freedom-intelligence
|
|
|
|
|
|
make -C ~/activity-core sync-activity-definitions
|
2026-08-03 17:37:53 +02:00
|
|
|
|
|
2026-08-03 17:53:07 +02:00
|
|
|
|
# Production: ConfigMap actcore-external-activity-definitions
|
|
|
|
|
|
# then POST /admin/sync?definitions=true&schedules=true
|
|
|
|
|
|
```
|
2026-07-24 00:15:27 +02:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Quality bar
|
|
|
|
|
|
|
|
|
|
|
|
| Check | Pass |
|
|
|
|
|
|
| ----- | ---- |
|
|
|
|
|
|
| Signal | No filler paragraphs |
|
2026-09-13 22:45:43 +02:00
|
|
|
|
| Sources | At least one primary URL per non-empty axis row |
|
|
|
|
|
|
| Honesty | Benchmarks marked directional; prices “verify before budget”; sizes from the card |
|
|
|
|
|
|
| Collection | License + real size/class; never re-announce a cataloged id as a new release |
|
|
|
|
|
|
| Axes | C and D must be scanned; `*(none)*` is allowed only after a look |
|
2026-07-24 00:15:27 +02:00
|
|
|
|
| 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`.
|
2026-09-14 00:37:51 +02:00
|
|
|
|
|
|
|
|
|
|
## Durability audit and historical corrections
|
|
|
|
|
|
|
|
|
|
|
|
See [the Git-backed audit contract](brief-durability-audit.md) for live-origin verification,
|
|
|
|
|
|
paginated Hub reads, and append-only correction records. `--allow-reconciled`
|
|
|
|
|
|
explicitly acknowledges the five missing September 7–11 briefs; it never
|
|
|
|
|
|
counts them as successful. Use `--require-date YYYY-MM-DD` to prove a scheduled
|
|
|
|
|
|
day has a valid published completion. An unavailable Hub/remote fails the audit.
|