Make the sensing loop durable and pin the reserve to Scaleway

The weekday brief only counts when the file is on origin/main. Hub
events without git objects are failures. The open-weight SoT moves
from the VAULT 850 GiB quota to a dedicated Scaleway bucket (One Zone
IA for R, Glacier for S) so V4-Flash and K3 are economically in-scope.

Catalogs the real DeepSeek-V4-Flash-0731 (MIT ~167 GiB MoE, not 12B)
and nominates Qwen3.8-27B. Bucket create remains FI-WP-0004-T08.

Assistant: grok
Assistant-Session: 01a09c6a-1cfc-75b1-a78d-c13eaf22241d
This commit is contained in:
tegwick 2026-09-13 22:45:43 +02:00
parent 8832652ad3
commit a78187c33e
18 changed files with 1125 additions and 226 deletions

View file

@ -22,7 +22,8 @@ full resurveys.
| 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) |
| 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`. |
---
@ -46,17 +47,20 @@ full resurveys.
4. **Collection candidates**
- Use inventory field names; set priority
- Do **not** re-nominate a model already in `inventory/catalog/`
- Do **not** invent parameter counts; cite the model card or mark unverified
- 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
6. **Commit and push** — brief + any catalog YAML must land on `origin/main`.
A local-only commit does **not** complete the day.
7. **Completion evidence** (required for activity-core rhythm)
Post State Hub progress (HTTP or MCP), shape:
Post State Hub progress **only after** origin has the commit:
```yaml
event_type: fi_daily_brief
@ -67,8 +71,13 @@ full resurveys.
date: "YYYY-MM-DD"
path: "briefs/YYYY/MM/YYYY-MM-DD.md"
collection_candidates: 0
pushed: true
origin_sha: "<full sha>"
```
If the brief is written but push fails, post `event_type: executor_run`
with `ok: false` so `due` stays true.
Workstation API often `http://127.0.0.1:8000`; remote tunnel ports per
Custodian docs. See `docs/state-hub-delivery.md`.
@ -85,8 +94,10 @@ When activity-core emits `activity_task_spawn` with
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
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`.
Do **not** install Claude Code / Codex on railiance01 for this rhythm.
@ -116,9 +127,10 @@ make -C ~/activity-core sync-activity-definitions
| 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 |
| 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 |
| Length | Prefer one screen to three; deep dives go under `research/` |
---