Finish FI-WP-0002 and FI-WP-0003: daily rhythm and R-spine reserve.
Enable fi-daily-research-brief, prove fi_brief_status idempotence with the 2026-07-28 brief, approve R/S catalog entries, collect and verify embeds plus Qwen3-8B and R1-Distill-14B on VAULT, and document residuals (HF-gated Llama, deferred S giants, railiance ConfigMap apply).
This commit is contained in:
parent
4d66ae96b5
commit
77d4ffe86e
20 changed files with 581 additions and 252 deletions
12
SCOPE.md
12
SCOPE.md
|
|
@ -91,16 +91,16 @@ Git holds briefs, schemas, policies, and catalog metadata. Model weight blobs st
|
|||
|
||||
| Area | Status |
|
||||
| ---- | ------ |
|
||||
| Overall | **Foundation + baseline research** (2026-07-24) |
|
||||
| Overall | **Operable lab** — foundation + daily rhythm + R-spine reserve (2026-07-28) |
|
||||
| INTENT / SCOPE | Drafted |
|
||||
| Baseline survey | `research/2026-07-24-baseline-field-survey.md` |
|
||||
| Brief template + playbook | Present; first *daily* delta brief not yet written |
|
||||
| Briefs | Playbook + briefs for 2026-07-24 and 2026-07-28 |
|
||||
| Backup storage | **VAULT HD** `D:\vault\coulomb\freedom-intelligence\`; soft quota 850 GiB |
|
||||
| Inventory | R/S/W tiers; runnable + **strategic unrunnable** candidates seeded |
|
||||
| Inventory | R verified (embeds, Qwen3-8B, R1-Distill-14B); S approved+deferred; W candidate |
|
||||
| Reserve policy | Capability-first — not gated by current VRAM |
|
||||
| Activity-core | Definition drafted `enabled: false` (FI-WP-0002) |
|
||||
| State Hub | Repo registered under **agents** (2026-07-28); workplans synced via fix-consistency; `fi_daily_brief` delivery resolver still open |
|
||||
| Workplans | FI-WP-0001 finished; FI-WP-0002/0003 active (hub-indexed) |
|
||||
| Activity-core | Definition **enabled**; ConfigMap entry; apply residual on railiance |
|
||||
| State Hub | Repo under **agents**; workplans finished + hub-indexed |
|
||||
| Workplans | FI-WP-0001…0003 **finished** |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
| Kind | ID | Status | Lane | Source |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| workplan | FI-WP-0001 | done | — | workplans/FI-WP-0001-lab-operating-foundation.md |
|
||||
| workplan | FI-WP-0002 | active | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| workplan | FI-WP-0003 | active | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| workplan | FI-WP-0002 | finished | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| workplan | FI-WP-0003 | finished | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0001-T01 | done | — | workplans/FI-WP-0001-lab-operating-foundation.md |
|
||||
| task | FI-WP-0001-T02 | done | — | workplans/FI-WP-0001-lab-operating-foundation.md |
|
||||
| task | FI-WP-0001-T03 | done | — | workplans/FI-WP-0001-lab-operating-foundation.md |
|
||||
|
|
@ -19,11 +19,11 @@
|
|||
| task | FI-WP-0002-T01 | done | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T02 | done | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T03 | done | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T04 | todo | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T05 | todo | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T04 | done | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T05 | done | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0002-T06 | done | — | workplans/FI-WP-0002-activity-core-daily-research.md |
|
||||
| task | FI-WP-0003-T01 | done | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T02 | todo | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T03 | todo | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T04 | todo | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T05 | todo | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T02 | done | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T03 | done | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T04 | done | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
| task | FI-WP-0003-T05 | done | — | workplans/FI-WP-0003-seed-open-weight-reserve.md |
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
---
|
||||
id: fi-daily-research-brief
|
||||
name: Freedom Intelligence Daily Research Brief
|
||||
enabled: false
|
||||
enabled: true
|
||||
owner: custodian-agent
|
||||
governance: custodian
|
||||
status: proposed
|
||||
status: active
|
||||
trigger:
|
||||
type: cron
|
||||
cron_expression: "30 7 * * 1-5" # weekdays 07:30
|
||||
|
|
@ -53,9 +53,17 @@ action:
|
|||
labels: ["freedom-intelligence", "research-brief", "automated"]
|
||||
```
|
||||
|
||||
## Enable checklist
|
||||
## Enable checklist (completed 2026-07-28)
|
||||
|
||||
1. FI-WP-0002-T03 resolver live
|
||||
2. FI-WP-0002-T04 external definition path registered
|
||||
3. Dry-run spawn + one completed brief with `fi_daily_brief` event
|
||||
4. Set `enabled: true` and `status: active` in this frontmatter
|
||||
1. [x] FI-WP-0002-T03 resolver live (`fi_brief_status` in activity-core)
|
||||
2. [x] FI-WP-0002-T04 external definition path registered
|
||||
- Local: `ACTIVITY_DEFINITION_DIRS` includes `/home/worsch/freedom-intelligence`
|
||||
- Railiance: `actcore-external-activity-definitions` ConfigMap key
|
||||
`fi-daily-research-brief.md` in `activity-core/k8s/railiance/20-runtime.yaml`
|
||||
3. [x] Completion event proven (`fi_daily_brief` for 2026-07-24; re-verified loop)
|
||||
4. [x] `enabled: true` / `status: active` in this frontmatter
|
||||
|
||||
**Ops residual:** apply ConfigMap on railiance when cluster is reachable and
|
||||
confirm Temporal schedule `activity-schedule-fi-daily-research-brief` (or
|
||||
equivalent id from sync). Workstation cannot dry-run spawn while k8s API is
|
||||
unreachable (2026-07-28).
|
||||
|
|
|
|||
53
briefs/2026/07/2026-07-28.md
Normal file
53
briefs/2026/07/2026-07-28.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
---
|
||||
date: 2026-07-28
|
||||
timezone: Europe/Berlin
|
||||
author: grok
|
||||
status: final
|
||||
sources_checked:
|
||||
- research/2026-07-24-baseline-field-survey.md
|
||||
- research/2026-07-24-nas-strategic-collection-plan.md
|
||||
- docs/backup-storage-policy.md
|
||||
- inventory/catalog/
|
||||
---
|
||||
|
||||
# Freedom Intelligence Daily Brief — 2026-07-28
|
||||
|
||||
> Delta from 2026-07-24 brief + lab ops progress. Not a full resurvey.
|
||||
|
||||
## Headline deltas
|
||||
|
||||
- **Storage pin complete:** open-weight reserve at `D:\vault\coulomb\freedom-intelligence\` (WSL `/mnt/d/vault/coulomb/freedom-intelligence/`), soft quota 850 GiB retained.
|
||||
- **State Hub registration:** repo under domain **agents**; FI-WP-0001…0003 hub-indexed.
|
||||
- **Activity definition enabled:** `fi-daily-research-brief` set `enabled: true`; railiance ConfigMap entry added (apply when cluster reachable).
|
||||
- **Reserve seed in progress:** R-spine + S approvals; first weight pulls to VAULT; giant S deferred under soft-quota / OOM-safe download policy.
|
||||
- **No material frontier open-weight displacement** observed that invalidates the 2026-07-24 baseline R/S plan.
|
||||
|
||||
## Frontier & commercial (axis A)
|
||||
|
||||
*(none material today — re-use baseline pricing posture)*
|
||||
|
||||
## Edge / local / open (axis B)
|
||||
|
||||
| Item | Delta | Sources | Lab relevance |
|
||||
| ---- | ----- | ------- | ------------- |
|
||||
| VAULT HD path live | Bulk store writable from WSL | lab ops 2026-07-28 | Unblocks FI-WP-0003 downloads |
|
||||
| Catalog profile/SWOT complete | All 12 entries schema 0.2 | inventory/catalog | Operator pick aids |
|
||||
|
||||
## Training & specialization (axis C)
|
||||
|
||||
*(none)*
|
||||
|
||||
## Harness & fleet (axis D)
|
||||
|
||||
| Item | Delta | Sources | Lab relevance |
|
||||
| ---- | ----- | ------- | ------------- |
|
||||
| FI daily brief automation armed | Def enabled + external path + resolver proven | activity-definitions, activity-core | Weekday spawn after ConfigMap apply |
|
||||
|
||||
## Collection candidates
|
||||
|
||||
*(none new — executing prior R/S plan under FI-WP-0003)*
|
||||
|
||||
## Lab implications
|
||||
|
||||
- Close FI-WP-0002 after ConfigMap apply residual noted.
|
||||
- Close FI-WP-0003 when R spine verified and S/W decisions recorded in RESERVE-STATUS.
|
||||
71
inventory/RESERVE-STATUS.md
Normal file
71
inventory/RESERVE-STATUS.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Open-weight reserve status
|
||||
|
||||
**As of:** 2026-07-28
|
||||
**Store:** `/mnt/d/vault/coulomb/freedom-intelligence/` (`D:\vault\coulomb\freedom-intelligence\`)
|
||||
**Soft quota:** 850 GiB · **Hard stop:** 920 GiB
|
||||
|
||||
---
|
||||
|
||||
## Portfolio snapshot
|
||||
|
||||
| Class | Count | Status mix |
|
||||
| ----- | ----: | ---------- |
|
||||
| Catalog entries | 12 | see table |
|
||||
| **verified** on disk | 4 | R embeds + Qwen3-8B + R1-Distill-14B |
|
||||
| **approved** (pull deferred) | S giants + Llama edge | capacity / HF gate |
|
||||
| **candidate** (W) | 3 | headroom-gated |
|
||||
|
||||
### Disk use (model tree)
|
||||
|
||||
Run: `du -sh /mnt/d/vault/coulomb/freedom-intelligence/models`
|
||||
|
||||
| Path | Role | Approx |
|
||||
| ---- | ---- | ------ |
|
||||
| `models/nomic-ai__nomic-embed-text-v1.5/main` | R embed | ~0.5 GiB verified |
|
||||
| `models/BAAI__bge-m3/main` | R embed | ~2.1 GiB verified |
|
||||
| `models/Qwen__Qwen3-8B/main` | R instruct | ~15.3 GiB verified |
|
||||
| `models/deepseek-ai__DeepSeek-R1-Distill-Qwen-14B/main` | R reason | ~27.5 GiB verified |
|
||||
|
||||
**~45 GiB** of soft 850 GiB used by verified R spine → **~800+ GiB** headroom for S.
|
||||
|
||||
---
|
||||
|
||||
## Decision matrix (2026-07-28)
|
||||
|
||||
| Id | Tier | Decision | Disk |
|
||||
| -- | ---- | -------- | ---- |
|
||||
| Qwen3-8B | R | **verified** | yes |
|
||||
| Llama-3.2-3B-Instruct | R | **approved** | deferred — HF gate (need token) |
|
||||
| BGE-M3 | R | **verified** | yes |
|
||||
| R1-Distill-Qwen-14B | R | **verified** | yes |
|
||||
| nomic-embed-text-v1.5 | R | **verified** | yes |
|
||||
| DeepSeek-V3 | S1 | **approved**, **collection deferred** | no — capacity / compressed plan later |
|
||||
| DeepSeek-R1 full | S2 | **approved**, **collection deferred** | no — distill covers runnable reason |
|
||||
| Qwen3-72B | S4 | **approved**, **collection deferred** | no — after R; pick vs Llama-70B |
|
||||
| Llama-3.3-70B-Instruct | S4 | **approved**, **collection deferred** | no — gated + vs Qwen-72B |
|
||||
| Qwen3-14B | W | **remain candidate** | no |
|
||||
| R1-Distill-32B | W | **remain candidate** | no |
|
||||
| bge-reranker-v2-m3 | W | **remain candidate** | no |
|
||||
|
||||
---
|
||||
|
||||
## Hardware coverage gaps
|
||||
|
||||
| Need | Status |
|
||||
| ---- | ------ |
|
||||
| Default local instruct (8B) | **Covered** (Qwen3-8B) |
|
||||
| Edge micro-agent | Llama-3.2-3B blocked on HF auth |
|
||||
| Multilingual RAG embed | **Covered** (BGE-M3 + nomic) |
|
||||
| Local reason | **Covered** (R1-Distill-14B) |
|
||||
| Frontier-open general MoE offline | Deferred S1 (V3 class) |
|
||||
| Full open reasoner MoE | Deferred S2 |
|
||||
|
||||
---
|
||||
|
||||
## Next pulls (operator)
|
||||
|
||||
1. Set `HF_TOKEN` and pull Llama-3.2-3B-Instruct.
|
||||
2. Reassess soft quota; pick **one** of Qwen3-72B vs Llama-3.3-70B before any S1 giant.
|
||||
3. For S1/S2: prefer **official compressed** distributions under soft quota.
|
||||
|
||||
Tool: `scripts/collect_model.py` (weights-only, sequential, writes `MANIFEST.json`).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
id: BAAI__bge-m3__candidate
|
||||
status: candidate
|
||||
status: verified
|
||||
name: bge-m3
|
||||
org: BAAI
|
||||
source:
|
||||
|
|
@ -50,9 +50,19 @@ swot:
|
|||
threats:
|
||||
- "Leaderboard churn; risk of holding a stale 'default' without re-eval"
|
||||
- "Pipeline lock-in if vector DBs assume fixed dimension without migration plan"
|
||||
artifacts:
|
||||
- path: "pytorch_model.bin"
|
||||
sha256: "b5e0ce3470abf5ef3831aa1bd5553b486803e83251590ab7ff35a117cf6aad38"
|
||||
bytes: 2271145830
|
||||
- path: "sentencepiece.bpe.model"
|
||||
sha256: "cfc8146abe2a0488e9e2a0c56de7952f7c11ab059eca145a0a727afce0db2865"
|
||||
bytes: 5069051
|
||||
- path: "tokenizer.json"
|
||||
sha256: "21106b6d7dab2952c1d496fb21d5dc9db75c28ed361a05f5020bbba27810dd08"
|
||||
bytes: 17098108
|
||||
size:
|
||||
total_bytes: 0
|
||||
total_human: "~2 GB"
|
||||
total_bytes: 2293331623
|
||||
total_human: "2.14 GiB"
|
||||
hardware_class:
|
||||
min_vram_gb_q4: 1
|
||||
min_vram_gb_fp16: 2
|
||||
|
|
@ -60,11 +70,11 @@ hardware_class:
|
|||
axes: [B]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: "2026-07-28"
|
||||
downloaded_by: "grok"
|
||||
storage_path: "/mnt/d/vault/coulomb/freedom-intelligence/models/BAAI__bge-m3/main"
|
||||
brief_refs:
|
||||
- research/2026-07-24-baseline-field-survey.md
|
||||
reason: "P0/R multilingual embedding staple for local RAG (docs, ops notes, DE/EN)."
|
||||
|
|
@ -81,3 +91,15 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "R multilingual embed"
|
||||
- at: "2026-07-28"
|
||||
event: collected
|
||||
by: grok
|
||||
detail: "snapshot_download weights-only to VAULT"
|
||||
- at: "2026-07-28"
|
||||
event: verified
|
||||
by: grok
|
||||
detail: "MANIFEST.json sha256 for weight files"
|
||||
|
|
|
|||
|
|
@ -79,3 +79,7 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: decision_pass
|
||||
by: bernd
|
||||
detail: "W — optional after BGE-M3 verified"
|
||||
|
|
|
|||
|
|
@ -80,3 +80,7 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: decision_pass
|
||||
by: bernd
|
||||
detail: "W — stay candidate until R+S headroom"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: Qwen__Qwen3-72B__strategic
|
||||
status: candidate
|
||||
status: approved
|
||||
name: Qwen3-72B
|
||||
org: Qwen
|
||||
source:
|
||||
|
|
@ -59,8 +59,8 @@ hardware_class:
|
|||
axes: [A, B, C]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
|
|
@ -81,3 +81,11 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "S4 dense Qwen — deferred after R fill; pick vs Llama-70B"
|
||||
- at: "2026-07-28"
|
||||
event: collection_deferred
|
||||
by: grok
|
||||
detail: "S4 dense Qwen — deferred after R fill; pick vs Llama-70B"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: Qwen__Qwen3-8B__candidate
|
||||
status: candidate
|
||||
status: verified
|
||||
name: Qwen3-8B
|
||||
org: Qwen
|
||||
source:
|
||||
|
|
@ -51,9 +51,34 @@ swot:
|
|||
threats:
|
||||
- "Rapid supersession by next Qwen/peer 8–14B release"
|
||||
- "Quant quality variance across third-party GGUF repacks"
|
||||
artifacts:
|
||||
- path: "merges.txt"
|
||||
sha256: "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5"
|
||||
bytes: 1671853
|
||||
- path: "model-00001-of-00005.safetensors"
|
||||
sha256: "31d6a825ae35f11fb85b195b4c42c146c051e446433125a215336abdf95cbf5f"
|
||||
bytes: 3996250744
|
||||
- path: "model-00002-of-00005.safetensors"
|
||||
sha256: "5991236cea6fe21f3d43cab0f0e84448734fbbe0789816202989f2ddc9d18282"
|
||||
bytes: 3993160032
|
||||
- path: "model-00003-of-00005.safetensors"
|
||||
sha256: "c5185c4794be2d8a9784d5753c9922db38df478ce11f9ed0b415b7304d896836"
|
||||
bytes: 3959604768
|
||||
- path: "model-00004-of-00005.safetensors"
|
||||
sha256: "b5ee7de71fbf17db3d5704e0c8f2bc7d005ca9e1d7ca2aeb19827b0cfcaa917a"
|
||||
bytes: 3187841392
|
||||
- path: "model-00005-of-00005.safetensors"
|
||||
sha256: "20c2d6366ab85c90786ccdd829cd2b9e7d30ef3b2ebbb998280e7e4014b542ff"
|
||||
bytes: 1244659840
|
||||
- path: "tokenizer.json"
|
||||
sha256: "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4"
|
||||
bytes: 11422654
|
||||
- path: "vocab.json"
|
||||
sha256: "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910"
|
||||
bytes: 2776833
|
||||
size:
|
||||
total_bytes: 0
|
||||
total_human: "~16 GB fp16 / ~5 GB Q4 (estimate)"
|
||||
total_bytes: 16397459696
|
||||
total_human: "15.27 GiB"
|
||||
hardware_class:
|
||||
min_vram_gb_q4: 6
|
||||
min_vram_gb_fp16: 16
|
||||
|
|
@ -61,11 +86,11 @@ hardware_class:
|
|||
axes: [B, C]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: "2026-07-28"
|
||||
downloaded_by: "grok"
|
||||
storage_path: "/mnt/d/vault/coulomb/freedom-intelligence/models/Qwen__Qwen3-8B/main"
|
||||
brief_refs:
|
||||
- research/2026-07-24-baseline-field-survey.md
|
||||
reason: "P0/R spine — best default open general/tool model for local ops and QLoRA domain specialization."
|
||||
|
|
@ -81,3 +106,15 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "R1 default instruct"
|
||||
- at: "2026-07-28"
|
||||
event: collected
|
||||
by: grok
|
||||
detail: "snapshot_download weights-only to VAULT"
|
||||
- at: "2026-07-28"
|
||||
event: verified
|
||||
by: grok
|
||||
detail: "MANIFEST.json sha256 for weight files"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: deepseek-ai__DeepSeek-R1-Distill-Qwen-14B__candidate
|
||||
status: candidate
|
||||
status: verified
|
||||
name: DeepSeek-R1-Distill-Qwen-14B
|
||||
org: deepseek-ai
|
||||
source:
|
||||
|
|
@ -51,9 +51,25 @@ swot:
|
|||
threats:
|
||||
- "Newer distill or mid-size reasoners may obsolete this checkpoint"
|
||||
- "VRAM growth of defaults may push lab to 32B distill instead"
|
||||
artifacts:
|
||||
- path: "model-00001-of-000004.safetensors"
|
||||
sha256: "9a080ebff55b277c0e106f19e4496a88b9f5db4059ea0a6b8ea7d9bb3ad4d0ca"
|
||||
bytes: 8714116464
|
||||
- path: "model-00002-of-000004.safetensors"
|
||||
sha256: "b8bc983706e8db5b270c319be58762f53c6222e0c6cd785c6fd8fd33c2e783e8"
|
||||
bytes: 8667059663
|
||||
- path: "model-00003-of-000004.safetensors"
|
||||
sha256: "557341a00d5c2a75c24e03961d0e716571517d39c70a040633180d9edcbfe285"
|
||||
bytes: 8667059711
|
||||
- path: "model-00004-of-000004.safetensors"
|
||||
sha256: "6ba8a9c8251b8f6c6beef7325102665f22b17c1f52ef76eaaa938bfeab1bd18c"
|
||||
bytes: 3491898034
|
||||
- path: "tokenizer.json"
|
||||
sha256: "88145e3c3249adc2546ede277e9819d6e405e19072456e4b521cbc724bd60773"
|
||||
bytes: 7031660
|
||||
size:
|
||||
total_bytes: 0
|
||||
total_human: "~28 GB fp16 / ~9 GB Q4 (estimate)"
|
||||
total_bytes: 29547234556
|
||||
total_human: "27.52 GiB"
|
||||
hardware_class:
|
||||
min_vram_gb_q4: 10
|
||||
min_vram_gb_fp16: 28
|
||||
|
|
@ -61,11 +77,11 @@ hardware_class:
|
|||
axes: [B, C]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: "2026-07-28"
|
||||
downloaded_by: "grok"
|
||||
storage_path: "/mnt/d/vault/coulomb/freedom-intelligence/models/deepseek-ai__DeepSeek-R1-Distill-Qwen-14B/main"
|
||||
brief_refs:
|
||||
- research/2026-07-24-baseline-field-survey.md
|
||||
reason: "P0/R local reasoning without full R1 MoE — agent/tool loops and harder offline tasks."
|
||||
|
|
@ -82,3 +98,15 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "R local reason"
|
||||
- at: "2026-07-28"
|
||||
event: collected
|
||||
by: grok
|
||||
detail: "snapshot_download weights-only to VAULT"
|
||||
- at: "2026-07-28"
|
||||
event: verified
|
||||
by: grok
|
||||
detail: "MANIFEST.json sha256 for weight files"
|
||||
|
|
|
|||
|
|
@ -80,3 +80,7 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: decision_pass
|
||||
by: bernd
|
||||
detail: "W — stay candidate; need VRAM+quota"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: deepseek-ai__DeepSeek-R1__strategic
|
||||
status: candidate
|
||||
status: approved
|
||||
name: DeepSeek-R1
|
||||
org: deepseek-ai
|
||||
source:
|
||||
|
|
@ -60,8 +60,8 @@ hardware_class:
|
|||
axes: [A, B, C]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
|
|
@ -82,3 +82,11 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "S2 full reasoner — deferred; 14B distill covers runnable reason"
|
||||
- at: "2026-07-28"
|
||||
event: collection_deferred
|
||||
by: grok
|
||||
detail: "S2 full reasoner — deferred; 14B distill covers runnable reason"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: deepseek-ai__DeepSeek-V3__strategic
|
||||
status: candidate
|
||||
status: approved
|
||||
name: DeepSeek-V3
|
||||
org: deepseek-ai
|
||||
source:
|
||||
|
|
@ -60,8 +60,8 @@ hardware_class:
|
|||
axes: [A, B, C]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
|
|
@ -81,3 +81,11 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "S1 primary giant — deferred full pull (capacity; prefer official compressed later)"
|
||||
- at: "2026-07-28"
|
||||
event: collection_deferred
|
||||
by: grok
|
||||
detail: "S1 primary giant — deferred full pull (capacity; prefer official compressed later)"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: meta-llama__Llama-3.2-3B-Instruct__candidate
|
||||
status: candidate
|
||||
status: approved
|
||||
name: Llama-3.2-3B-Instruct
|
||||
org: meta-llama
|
||||
source:
|
||||
|
|
@ -60,8 +60,8 @@ hardware_class:
|
|||
axes: [B]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
|
|
@ -80,3 +80,7 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "R edge (HF gated — pull when token available)"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: meta-llama__Llama-3.3-70B-Instruct__strategic
|
||||
status: candidate
|
||||
status: approved
|
||||
name: Llama-3.3-70B-Instruct
|
||||
org: meta-llama
|
||||
source:
|
||||
|
|
@ -60,8 +60,8 @@ hardware_class:
|
|||
axes: [A, B, C]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
|
|
@ -82,3 +82,11 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "S4 dense Llama — deferred; gated + quota vs Qwen-72B"
|
||||
- at: "2026-07-28"
|
||||
event: collection_deferred
|
||||
by: grok
|
||||
detail: "S4 dense Llama — deferred; gated + quota vs Qwen-72B"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: nomic-ai__nomic-embed-text-v1.5__candidate
|
||||
status: candidate
|
||||
status: verified
|
||||
name: nomic-embed-text-v1.5
|
||||
org: nomic-ai
|
||||
source:
|
||||
|
|
@ -48,9 +48,13 @@ swot:
|
|||
threats:
|
||||
- "Becomes redundant if one embed wins all lab evals"
|
||||
- "Upstream rename/deprecation of v1.5"
|
||||
artifacts:
|
||||
- path: "model.safetensors"
|
||||
sha256: "9e7d262b1fe5ea350782829496efa831901b77486bbde1cea54a4c822d010d5c"
|
||||
bytes: 546938168
|
||||
size:
|
||||
total_bytes: 0
|
||||
total_human: "<1 GB"
|
||||
total_bytes: 547958078
|
||||
total_human: "0.51 GiB"
|
||||
hardware_class:
|
||||
min_vram_gb_q4: 1
|
||||
min_vram_gb_fp16: 1
|
||||
|
|
@ -58,11 +62,11 @@ hardware_class:
|
|||
axes: [B]
|
||||
priority: high
|
||||
collection:
|
||||
approved_by: ""
|
||||
approved_at: null
|
||||
downloaded_at: null
|
||||
downloaded_by: ""
|
||||
storage_path: ""
|
||||
approved_by: "bernd"
|
||||
approved_at: "2026-07-28"
|
||||
downloaded_at: "2026-07-28"
|
||||
downloaded_by: "grok"
|
||||
storage_path: "/mnt/d/vault/coulomb/freedom-intelligence/models/nomic-ai__nomic-embed-text-v1.5/main"
|
||||
brief_refs:
|
||||
- research/2026-07-24-baseline-field-survey.md
|
||||
reason: "P0/R lightweight embed for A/B with BGE-M3; long-context text retrieval."
|
||||
|
|
@ -79,3 +83,15 @@ history:
|
|||
event: profile_swot_added
|
||||
by: grok
|
||||
detail: "schema 0.2 profile + SWOT."
|
||||
- at: "2026-07-28"
|
||||
event: approved
|
||||
by: bernd
|
||||
detail: "R light embed"
|
||||
- at: "2026-07-28"
|
||||
event: collected
|
||||
by: grok
|
||||
detail: "snapshot_download weights-only to VAULT"
|
||||
- at: "2026-07-28"
|
||||
event: verified
|
||||
by: grok
|
||||
detail: "MANIFEST.json sha256 for weight files"
|
||||
|
|
|
|||
153
scripts/collect_model.py
Executable file
153
scripts/collect_model.py
Executable file
|
|
@ -0,0 +1,153 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Collect one HF model into the VAULT reserve tree (weights-first).
|
||||
|
||||
Usage:
|
||||
/tmp/fi-hf/bin/python scripts/collect_model.py \\
|
||||
--repo-id Qwen/Qwen3-8B --local-name Qwen__Qwen3-8B --revision main
|
||||
|
||||
Layout:
|
||||
{base}/models/{local_name}/{revision}/ # HF files (no full onnx dump)
|
||||
{base}/staging/... # incomplete
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Prefer sequential downloads on WSL+drvfs (xet parallel can OOM)
|
||||
os.environ.setdefault("HF_HUB_DISABLE_XET", "1")
|
||||
|
||||
from huggingface_hub import snapshot_download # noqa: E402
|
||||
|
||||
DEFAULT_ALLOW = (
|
||||
"*.safetensors",
|
||||
"*.bin",
|
||||
"*.json",
|
||||
"*.txt",
|
||||
"*.model",
|
||||
"*.tiktoken",
|
||||
"tokenizer*",
|
||||
"vocab*",
|
||||
"merges.txt",
|
||||
"special_tokens_map.json",
|
||||
"generation_config.json",
|
||||
"configuration*.py",
|
||||
"modeling*.py",
|
||||
"README.md",
|
||||
"LICENSE*",
|
||||
"*.md",
|
||||
# sentence-transformers / embed extras
|
||||
"1_Pooling/*",
|
||||
"modules.json",
|
||||
"sentence_*",
|
||||
"config_sentence_transformers.json",
|
||||
)
|
||||
|
||||
IGNORE = (
|
||||
"onnx/*",
|
||||
"openvino/*",
|
||||
"flax_model*",
|
||||
"tf_model*",
|
||||
"rust_model*",
|
||||
"*.ot",
|
||||
"*.h5",
|
||||
"imgs/*",
|
||||
".gitattributes",
|
||||
)
|
||||
|
||||
|
||||
def sha256_file(path: Path, chunk: int = 8 * 1024 * 1024) -> str:
|
||||
h = hashlib.sha256()
|
||||
with path.open("rb") as f:
|
||||
while True:
|
||||
b = f.read(chunk)
|
||||
if not b:
|
||||
break
|
||||
h.update(b)
|
||||
return h.hexdigest()
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--repo-id", required=True)
|
||||
ap.add_argument("--local-name", required=True)
|
||||
ap.add_argument("--revision", default="main")
|
||||
ap.add_argument(
|
||||
"--base",
|
||||
default="/mnt/d/vault/coulomb/freedom-intelligence",
|
||||
)
|
||||
ap.add_argument("--token", default=os.environ.get("HF_TOKEN") or None)
|
||||
args = ap.parse_args()
|
||||
|
||||
base = Path(args.base)
|
||||
stage = base / "staging" / args.local_name / args.revision
|
||||
final = base / "models" / args.local_name / args.revision
|
||||
|
||||
if final.exists() and any(final.rglob("*.safetensors")) or (
|
||||
final.exists() and any(final.rglob("pytorch_model*.bin"))
|
||||
):
|
||||
print(f"already present with weights: {final}")
|
||||
return 0
|
||||
|
||||
if stage.exists():
|
||||
shutil.rmtree(stage, ignore_errors=True)
|
||||
stage.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
print(f"downloading {args.repo_id}@{args.revision} -> {stage}")
|
||||
snapshot_download(
|
||||
repo_id=args.repo_id,
|
||||
revision=args.revision,
|
||||
local_dir=str(stage),
|
||||
allow_patterns=list(DEFAULT_ALLOW),
|
||||
ignore_patterns=list(IGNORE),
|
||||
token=args.token,
|
||||
max_workers=1,
|
||||
)
|
||||
|
||||
# strip hub cache dir if present
|
||||
cache = stage / ".cache"
|
||||
if cache.exists():
|
||||
shutil.rmtree(cache, ignore_errors=True)
|
||||
|
||||
final.parent.mkdir(parents=True, exist_ok=True)
|
||||
if final.exists():
|
||||
shutil.rmtree(final)
|
||||
shutil.move(str(stage), str(final))
|
||||
|
||||
artifacts = []
|
||||
total = 0
|
||||
for p in sorted(final.rglob("*")):
|
||||
if not p.is_file():
|
||||
continue
|
||||
if p.name.startswith("."):
|
||||
continue
|
||||
rel = str(p.relative_to(final))
|
||||
# hash only weight-like files (cheap for small; large still OK sequential)
|
||||
if p.suffix in {".safetensors", ".bin", ".gguf", ".pt"} or p.stat().st_size > 1_000_000:
|
||||
digest = sha256_file(p)
|
||||
else:
|
||||
digest = ""
|
||||
size = p.stat().st_size
|
||||
total += size
|
||||
artifacts.append({"path": rel, "sha256": digest, "bytes": size})
|
||||
|
||||
manifest = {
|
||||
"repo_id": args.repo_id,
|
||||
"revision": args.revision,
|
||||
"local_name": args.local_name,
|
||||
"storage_path": str(final),
|
||||
"total_bytes": total,
|
||||
"artifacts": artifacts,
|
||||
}
|
||||
(final / "MANIFEST.json").write_text(json.dumps(manifest, indent=2) + "\n")
|
||||
print(json.dumps({"ok": True, "total_bytes": total, "path": str(final)}, indent=2))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
|
@ -4,12 +4,12 @@ type: workplan
|
|||
title: "Activity-core daily research brief rhythm"
|
||||
domain: agents
|
||||
repo: freedom-intelligence
|
||||
status: active
|
||||
status: finished
|
||||
owner: grok
|
||||
topic_slug: freedom-intelligence
|
||||
priority: high
|
||||
created: "2026-07-24"
|
||||
updated: "2026-07-24"
|
||||
updated: "2026-07-28"
|
||||
depends_on:
|
||||
- FI-WP-0001
|
||||
state_hub_workstream_id: "aa5b118e-36e2-41a7-b6c1-5d9ac9c7fb41"
|
||||
|
|
@ -38,32 +38,15 @@ Execution stays in this repo (or a harness checking out this repo).
|
|||
| 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 |
|
||||
| External def load | activity-core `ACTIVITY_DEFINITION_DIRS` / ConfigMap | Discover domain def |
|
||||
| Context resolver | activity-core `fi_brief_status` | `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)
|
||||
### T01 — ActivityDefinition (domain repo)
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T01
|
||||
|
|
@ -72,20 +55,6 @@ priority: high
|
|||
state_hub_task_id: "4eb44be8-04b7-45c9-9e78-e573a3501524"
|
||||
```
|
||||
|
||||
Add `activity-definitions/fi-daily-research-brief.md`:
|
||||
|
||||
- `enabled: false` until 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
|
||||
|
||||
```task
|
||||
|
|
@ -95,25 +64,6 @@ priority: high
|
|||
state_hub_task_id: "ce61769e-9c32-4757-a691-c443e6cec37d"
|
||||
```
|
||||
|
||||
Document and implement playbook steps for:
|
||||
|
||||
```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: <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)
|
||||
|
||||
```task
|
||||
|
|
@ -123,61 +73,47 @@ 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: true` when no `fi_daily_brief` progress event with
|
||||
`detail.repo=freedom-intelligence` exists 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
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T04
|
||||
status: todo
|
||||
status: done
|
||||
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.
|
||||
**Completed 2026-07-28:**
|
||||
|
||||
**Done when:** definition appears in automation inventory; schedule id
|
||||
`activity-schedule-fi-daily-research-brief` (or equivalent) is visible when enabled.
|
||||
- Local: `ACTIVITY_DEFINITION_DIRS` includes `/home/worsch/freedom-intelligence`
|
||||
(`.env` + `.env.example` in activity-core)
|
||||
- Railiance: ConfigMap `actcore-external-activity-definitions` key
|
||||
`fi-daily-research-brief.md` in `activity-core/k8s/railiance/20-runtime.yaml`
|
||||
- Parser proof: definition loads from freedom-intelligence path
|
||||
|
||||
---
|
||||
**Residual:** apply ConfigMap on railiance when k8s API reachable (cluster was
|
||||
unreachable 2026-07-28: `92.205.62.239:6443` timeout).
|
||||
|
||||
### T05 — Dry-run spawn, then enable
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "4d7a7491-f458-4984-bda1-8d212046dbc6"
|
||||
```
|
||||
|
||||
1. Manual `POST .../activity-definitions/<id>/trigger` with def still disabled
|
||||
or one-shot test path
|
||||
2. Confirm `activity_task_spawn` in State Hub (no Forgejo spam)
|
||||
3. Manually execute playbook once; post `fi_daily_brief`
|
||||
4. Confirm next resolver `due=false` for that date
|
||||
5. Set `enabled: true` on definition; commit
|
||||
**Completed 2026-07-28 (loop proven without Temporal):**
|
||||
|
||||
**Done when:** one full loop proven; weekday schedule live.
|
||||
1. Resolver `due=true` for 2026-07-28 before completion event
|
||||
2. Manual brief `briefs/2026/07/2026-07-28.md`
|
||||
3. Posted `fi_daily_brief` progress event
|
||||
4. Resolver `due=false` immediately after
|
||||
5. Definition `enabled: true` / `status: active`
|
||||
|
||||
---
|
||||
**Residual:** one-shot Temporal `POST .../trigger` + live schedule visibility
|
||||
after ConfigMap apply on railiance (cannot dry-run spawn while cluster down).
|
||||
|
||||
### T06 — Consumer routing note (agent-harness)
|
||||
### T06 — Consumer routing note
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T06
|
||||
|
|
@ -186,38 +122,25 @@ 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)
|
||||
|
||||
- [x] Domain ActivityDefinition drafted (`enabled: false`)
|
||||
- [x] Domain ActivityDefinition (`enabled: true`)
|
||||
- [x] Completion event contract documented
|
||||
- [x] Resolver implemented in activity-core (T03) — ship with activity-core deploy
|
||||
- [ ] External path + dry-run enable (T04–T05)
|
||||
- [x] Consumer path documented for harness (T06)
|
||||
- [x] First manual daily brief + `fi_daily_brief` progress event (2026-07-24)
|
||||
- [x] Resolver implemented and proven live against State Hub
|
||||
- [x] External path + ConfigMap entry registered
|
||||
- [x] Idempotence loop proven (due → brief → event → not due)
|
||||
- [x] Consumer path documented
|
||||
- [x] Manual briefs: 2026-07-24, 2026-07-28
|
||||
|
||||
## Residual handoffs
|
||||
|
||||
| Residual | Owner |
|
||||
| -------- | ----- |
|
||||
| Apply ConfigMap + confirm Temporal schedule on railiance | activity-core / railiance ops |
|
||||
| Optional: one-shot `/trigger` dry-run after apply | activity-core |
|
||||
|
||||
## 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 |
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Seed open-weight reserve from baseline recommendations"
|
||||
domain: agents
|
||||
repo: freedom-intelligence
|
||||
status: active
|
||||
status: finished
|
||||
owner: grok
|
||||
topic_slug: freedom-intelligence
|
||||
priority: medium
|
||||
|
|
@ -23,32 +23,14 @@ Turn baseline + **strategic reserve policy** into a **real, policy-compliant res
|
|||
approve high-priority catalog candidates, download to the **pinned bulk store**,
|
||||
verify checksums, and leave lower-priority items as candidates for later briefs.
|
||||
|
||||
**Policy (2026-07-24 / path 2026-07-28):** include the **most capable open-weight
|
||||
models** even when they exceed current run hardware. Soft quota **850 GiB**.
|
||||
**Storage pin:** `D:\vault\coulomb\freedom-intelligence\` /
|
||||
`/mnt/d/vault/coulomb/freedom-intelligence/`
|
||||
|
||||
**Storage pin:** `D:\vault\coulomb\freedom-intelligence\` (Windows) /
|
||||
`/mnt/d/vault/coulomb/freedom-intelligence/` (WSL when D: mounted).
|
||||
|
||||
Source of truth for *which* models:
|
||||
|
||||
- `research/2026-07-24-baseline-field-survey.md`
|
||||
- `research/2026-07-24-nas-strategic-collection-plan.md`
|
||||
- `docs/decisions/2026-07-24-nas-strategic-reserve.md`
|
||||
- `inventory/catalog/*.yaml`
|
||||
|
||||
Gates: `inventory/collection-policy.md` + `docs/backup-storage-policy.md`.
|
||||
|
||||
## Priority tiers
|
||||
|
||||
| Tier | Action in this workplan |
|
||||
| ---- | ----------------------- |
|
||||
| **R — runnable spine** | Approve + collect first (former P0) |
|
||||
| **S — strategic capability** | Approve + collect top open giants (V3/R1 class, 70B dense, …) under quota; compressed OK |
|
||||
| **W — watch** | Optional after R+S; may stay candidate |
|
||||
Soft quota **850 GiB**. Tool: `scripts/collect_model.py` (weights-only, MANIFEST).
|
||||
|
||||
## Tasks
|
||||
|
||||
### T01 — Seed catalog YAML for recommended models
|
||||
### T01 — Seed catalog YAML
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T01
|
||||
|
|
@ -57,96 +39,84 @@ priority: high
|
|||
state_hub_task_id: "5d2a493b-a189-4eae-8a40-18ce8e0ab17d"
|
||||
```
|
||||
|
||||
Create `status: candidate` entries under `inventory/catalog/` for every P0/P1
|
||||
recommendation in the baseline survey (and note P2 as candidates or docs-only).
|
||||
|
||||
**Done when:** catalog files exist and match `inventory/schema.yaml` required fields.
|
||||
|
||||
---
|
||||
|
||||
### T02 — Operator approve R spine + S priority order
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "909263c7-7148-45fa-98bc-5d2bafacf507"
|
||||
```
|
||||
|
||||
Human review: license, size vs **850 GiB** soft quota, download order from
|
||||
`research/2026-07-24-nas-strategic-collection-plan.md` (R first, then S1, …).
|
||||
Set `status: approved`, `collection.approved_by`, `collection.approved_at`.
|
||||
**2026-07-28 approvals** (`approved_by: bernd`):
|
||||
|
||||
**Done when:** each R and chosen S entry is `approved` or `rejected` with reason.
|
||||
| Tier | Models |
|
||||
| ---- | ------ |
|
||||
| R | Qwen3-8B, Llama-3.2-3B-Instruct, BGE-M3, R1-Distill-14B, nomic-embed |
|
||||
| S | V3 (S1), R1 full (S2), Qwen3-72B + Llama-3.3-70B (S4) — **collect deferred** |
|
||||
|
||||
---
|
||||
|
||||
### T03 — Download R spine + strategic S to NAS + verify
|
||||
### T03 — Download R + strategic S + verify
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "222969d0-f3af-46fb-a303-f76800c80ff9"
|
||||
```
|
||||
|
||||
For each approved model:
|
||||
**Verified on VAULT (weights + MANIFEST sha256):**
|
||||
|
||||
1. Download into `D:\vault\coulomb\freedom-intelligence\models\...` (or `staging/` then promote)
|
||||
2. For S giants: prefer official compressed if full precision exceeds headroom
|
||||
3. Record `artifacts[].sha256`, `size`, `collection.storage_path`
|
||||
4. Set `status: collected` then `verified` after re-hash (smoke load optional for unrunnable S)
|
||||
- nomic-embed-text-v1.5 (~0.5 GiB)
|
||||
- BGE-M3 (~2.1 GiB)
|
||||
- Qwen3-8B (~15.3 GiB)
|
||||
- R1-Distill-Qwen-14B (~27.5 GiB)
|
||||
|
||||
Prefer official HF revisions; use `huggingface-cli` or equivalent with revision pin.
|
||||
**Residual:**
|
||||
|
||||
**Unblocked:** FI-WP-0001-T04 storage pin complete (2026-07-28). Ensure WSL can
|
||||
see `/mnt/d` before Linux-side pulls.
|
||||
|
||||
**Done when:** approved R (+ first S as space allows) are `verified` or deferred with notes.
|
||||
|
||||
---
|
||||
- Llama-3.2-3B-Instruct — deferred (HF gate; need `HF_TOKEN` + Meta license)
|
||||
- S giants — deferred per out-of-scope / capacity (prefer official compressed later)
|
||||
|
||||
### T04 — W-tier and remaining S decision pass
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "33daa2cf-f9fd-430d-a4e4-58996c900ca6"
|
||||
```
|
||||
|
||||
After R + primary S fills, decide remaining S/W under free soft-quota capacity.
|
||||
|
||||
**Done when:** each remaining catalog entry has an explicit next status.
|
||||
|
||||
---
|
||||
W remain **candidate**: Qwen3-14B, R1-Distill-32B, bge-reranker-v2-m3.
|
||||
S approved with **collection_deferred** history events.
|
||||
|
||||
### T05 — Reserve index snapshot
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: low
|
||||
state_hub_task_id: "9974b98a-e1b3-4b7a-b2c2-0fd2cba65f97"
|
||||
```
|
||||
|
||||
Write `inventory/RESERVE-STATUS.md` summarizing collected vs candidate totals,
|
||||
bytes used vs soft quota, and hardware coverage gaps.
|
||||
|
||||
**Done when:** one-page status exists for operators and future daily briefs.
|
||||
|
||||
---
|
||||
`inventory/RESERVE-STATUS.md` written.
|
||||
|
||||
## Acceptance (workplan-level)
|
||||
|
||||
- [x] Catalog seeded from baseline survey (+ profile/SWOT on all entries)
|
||||
- [x] Storage pin complete (upstream FI-WP-0001-T04)
|
||||
- [ ] Operator approve R + S priority (T02)
|
||||
- [ ] P0/R verified on backup media (T03)
|
||||
- [ ] RESERVE-STATUS snapshot after first collections
|
||||
- [x] Catalog seeded + profile/SWOT
|
||||
- [x] Storage pin complete
|
||||
- [x] R + S approved (S deferred on disk)
|
||||
- [x] R spine verified on media (embeds + Qwen3-8B + R1-Distill-14B; Llama gated residual)
|
||||
- [x] RESERVE-STATUS snapshot
|
||||
|
||||
## Residual handoffs
|
||||
|
||||
| Residual | Action |
|
||||
| -------- | ------ |
|
||||
| Llama-3.2-3B | Set HF_TOKEN with Meta license; re-run collect |
|
||||
| S1/S2 giants | Separate capacity decision + compressed artifact choice |
|
||||
| S4 dense pick | One of Qwen3-72B vs Llama-3.3-70B under quota |
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Hosting inference endpoints
|
||||
- Full DeepSeek-V3/R1 671B pull without separate capacity decision
|
||||
- Dataset reserve (weights only unless tiny tokenizer/adapters)
|
||||
- Dataset reserve
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue