Establish Freedom Intelligence lab foundation and baseline research.
Add INTENT/SCOPE, daily-brief playbook, activity-core definition (disabled), workplans FI-WP-0001..0003, baseline field survey with open-weight collection recommendations, and inventory catalog candidates for the model reserve.
This commit is contained in:
parent
1dc1e09517
commit
b5f911140b
28 changed files with 2651 additions and 1 deletions
147
workplans/FI-WP-0001-lab-operating-foundation.md
Normal file
147
workplans/FI-WP-0001-lab-operating-foundation.md
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
---
|
||||
id: FI-WP-0001
|
||||
type: workplan
|
||||
title: "Lab operating foundation: sources, playbook, storage pin, hardware envelope"
|
||||
domain: infotech
|
||||
repo: freedom-intelligence
|
||||
status: active
|
||||
owner: grok
|
||||
topic_slug: freedom-intelligence
|
||||
priority: high
|
||||
created: "2026-07-24"
|
||||
updated: "2026-07-24"
|
||||
---
|
||||
|
||||
# FI-WP-0001 — Lab operating foundation
|
||||
|
||||
## Goal
|
||||
|
||||
Make Freedom Intelligence **operable for daily research and model reserve work**
|
||||
before automation: pin backup storage, document sources and hardware envelope,
|
||||
ship a daily-brief playbook, and close gaps left after the foundation docs
|
||||
(`INTENT.md`, `SCOPE.md`, `briefs/`, `inventory/`).
|
||||
|
||||
Baseline field survey lives in `research/2026-07-24-baseline-field-survey.md`
|
||||
and seeds collection candidates under `inventory/catalog/`.
|
||||
|
||||
## Depends on
|
||||
|
||||
- Foundation docs already present (2026-07-23)
|
||||
- Baseline research (this session) — **source of first collection candidates**
|
||||
|
||||
## Parallel / follow-on
|
||||
|
||||
- **FI-WP-0002** — activity-core daily cadence (after playbook exists)
|
||||
- **FI-WP-0003** — execute reserve seed under collection policy (after storage pin)
|
||||
|
||||
## Tasks
|
||||
|
||||
### T01 — Sources allowlist for daily research
|
||||
|
||||
```task
|
||||
id: FI-WP-0001-T01
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
Create `docs/sources-allowlist.md` with standing channels for axes A–D:
|
||||
|
||||
- Frontier: provider blogs, pricing pages, LMSYS/Arena notes, major model cards
|
||||
- Open weights: Hugging Face org watchlist, official GitHub releases
|
||||
- Methods: arXiv categories (cs.LG, cs.CL, cs.AI, cs.SE), Unsloth/axolotl/TRL notes
|
||||
- Harness: OpenHands, Aider, SWE-agent, sand-boxer-adjacent ecosystem
|
||||
- Explicit **do not scrape** / license caution list
|
||||
|
||||
**Done when:** allowlist exists and is linked from `briefs/README.md`.
|
||||
|
||||
---
|
||||
|
||||
### T02 — Daily brief playbook (manual first, automation-ready)
|
||||
|
||||
```task
|
||||
id: FI-WP-0001-T02
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
Write `docs/daily-brief-playbook.md`:
|
||||
|
||||
- Step sequence: scan allowlist → draft from template → collection candidates →
|
||||
optional hub progress event
|
||||
- Completion evidence shape: `event_type=fi_daily_brief`, `detail.repo`, `detail.date`
|
||||
- Idempotence: one brief per calendar day (Europe/Berlin)
|
||||
- Quality bar aligned with `briefs/_template.md` and INTENT principles
|
||||
- Pointer that **first automated day** starts from baseline survey, not empty memory
|
||||
|
||||
**Done when:** an operator or agent can produce a brief without reading INTENT end-to-end.
|
||||
|
||||
---
|
||||
|
||||
### T03 — Hardware envelope draft
|
||||
|
||||
```task
|
||||
id: FI-WP-0001-T03
|
||||
status: done
|
||||
priority: medium
|
||||
```
|
||||
|
||||
Write `docs/hardware-envelope.md` with **honest TBD** for unmeasured hosts, plus
|
||||
working assumptions for “homelab accessible” (consumer GPU tiers, CPU-only
|
||||
floor, multi-GPU lab class). Used by inventory `hardware_class` fields and
|
||||
axis B/C prioritization.
|
||||
|
||||
**Done when:** envelope doc exists; operator can fill measured VRAM/host rows later
|
||||
without schema changes.
|
||||
|
||||
---
|
||||
|
||||
### T04 — Pin backup storage path and soft quota
|
||||
|
||||
```task
|
||||
id: FI-WP-0001-T04
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
Operator task: fill TBD fields in `docs/backup-storage-policy.md`:
|
||||
|
||||
- facility / host
|
||||
- base path (`…/freedom-intelligence/models/`)
|
||||
- soft quota
|
||||
- access method
|
||||
- pin log entry
|
||||
|
||||
Create empty `models/` and `staging/` on that facility.
|
||||
|
||||
**Done when:** policy has no critical TBD for path/quota; `FI-WP-0003` may download.
|
||||
|
||||
---
|
||||
|
||||
### T05 — Link baseline research into lab navigation
|
||||
|
||||
```task
|
||||
id: FI-WP-0001-T05
|
||||
status: done
|
||||
priority: medium
|
||||
```
|
||||
|
||||
- Point `README.md` / `SCOPE.md` at `research/2026-07-24-baseline-field-survey.md`
|
||||
- Note that first **daily** brief is a delta from this baseline, not a second full survey
|
||||
- Ensure inventory candidates from the survey are present under `inventory/catalog/`
|
||||
|
||||
**Done when:** navigation and catalog seed are consistent with the survey.
|
||||
|
||||
---
|
||||
|
||||
## Acceptance (workplan-level)
|
||||
|
||||
- [x] Sources allowlist + daily playbook + hardware envelope drafted
|
||||
- [ ] Backup storage path and soft quota pinned (T04 — operator)
|
||||
- [x] Baseline research persisted and linked
|
||||
- [x] Catalog candidates seeded for recommended models
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Enabling activity-core schedule (FI-WP-0002)
|
||||
- Bulk model downloads (FI-WP-0003)
|
||||
- State Hub domain registration for freedom-intelligence as a full domain
|
||||
208
workplans/FI-WP-0002-activity-core-daily-research.md
Normal file
208
workplans/FI-WP-0002-activity-core-daily-research.md
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
---
|
||||
id: FI-WP-0002
|
||||
type: workplan
|
||||
title: "Activity-core daily research brief rhythm"
|
||||
domain: infotech
|
||||
repo: freedom-intelligence
|
||||
status: active
|
||||
owner: grok
|
||||
topic_slug: freedom-intelligence
|
||||
priority: high
|
||||
created: "2026-07-24"
|
||||
updated: "2026-07-24"
|
||||
depends_on:
|
||||
- FI-WP-0001
|
||||
---
|
||||
|
||||
# FI-WP-0002 — Activity-core daily research brief rhythm
|
||||
|
||||
## Goal
|
||||
|
||||
Schedule and emit the **Freedom Intelligence daily research brief** via
|
||||
**activity-core**, following the proven Binky rhythm pattern:
|
||||
|
||||
```text
|
||||
Temporal cron (activity-core)
|
||||
→ context: fi_brief_status (due?)
|
||||
→ rule emit activity_task_spawn (state-hub sink)
|
||||
→ consumer (agent-harness / operator) runs playbook in freedom-intelligence
|
||||
→ progress event fi_daily_brief (idempotence for next day)
|
||||
```
|
||||
|
||||
activity-core answers **when / what / where**. It does **not** write the brief.
|
||||
Execution stays in this repo (or a harness checking out this repo).
|
||||
|
||||
## Architecture
|
||||
|
||||
| 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 |
|
||||
| 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)
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T01
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
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
|
||||
id: FI-WP-0002-T02
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
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
|
||||
id: FI-WP-0002-T03
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
**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.
|
||||
|
||||
---
|
||||
|
||||
### T04 — Register external activity-definitions path
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T04
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
**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.
|
||||
|
||||
**Done when:** definition appears in automation inventory; schedule id
|
||||
`activity-schedule-fi-daily-research-brief` (or equivalent) is visible when enabled.
|
||||
|
||||
---
|
||||
|
||||
### T05 — Dry-run spawn, then enable
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T05
|
||||
status: todo
|
||||
priority: medium
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
**Done when:** one full loop proven; weekday schedule live.
|
||||
|
||||
---
|
||||
|
||||
### T06 — Consumer routing note (agent-harness)
|
||||
|
||||
```task
|
||||
id: FI-WP-0002-T06
|
||||
status: todo
|
||||
priority: medium
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## Acceptance (workplan-level)
|
||||
|
||||
- [x] Domain ActivityDefinition drafted (`enabled: false`)
|
||||
- [x] Completion event contract documented
|
||||
- [ ] Resolver + external path + dry-run enable (T03–T05)
|
||||
- [ ] Consumer path documented for harness (T06)
|
||||
|
||||
## 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 |
|
||||
135
workplans/FI-WP-0003-seed-open-weight-reserve.md
Normal file
135
workplans/FI-WP-0003-seed-open-weight-reserve.md
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
---
|
||||
id: FI-WP-0003
|
||||
type: workplan
|
||||
title: "Seed open-weight reserve from baseline recommendations"
|
||||
domain: infotech
|
||||
repo: freedom-intelligence
|
||||
status: active
|
||||
owner: grok
|
||||
topic_slug: freedom-intelligence
|
||||
priority: medium
|
||||
created: "2026-07-24"
|
||||
updated: "2026-07-24"
|
||||
depends_on:
|
||||
- FI-WP-0001
|
||||
---
|
||||
|
||||
# FI-WP-0003 — Seed open-weight reserve from baseline recommendations
|
||||
|
||||
## Goal
|
||||
|
||||
Turn baseline survey recommendations into a **real, policy-compliant reserve**:
|
||||
approve high-priority catalog candidates, download to pinned backup storage,
|
||||
verify checksums, and leave medium/low items as candidates for later briefs.
|
||||
|
||||
Source of truth for *which* models:
|
||||
|
||||
- `research/2026-07-24-baseline-field-survey.md` § Collection recommendations
|
||||
- `inventory/catalog/*.yaml` (seeded as `candidate`)
|
||||
|
||||
Gates: `inventory/collection-policy.md` + `docs/backup-storage-policy.md` (T04 of FI-WP-0001).
|
||||
|
||||
## Priority tiers (from survey)
|
||||
|
||||
| Tier | Action in this workplan |
|
||||
| ---- | ----------------------- |
|
||||
| **P0 — seed now** | Approve + collect after storage pin (small/mid, high leverage) |
|
||||
| **P1 — next wave** | Approve when quota allows; may stay candidate |
|
||||
| **P2 — watch / large** | Keep candidate; do not bulk-pull full 600B+ MoE without explicit operator decision |
|
||||
|
||||
## Tasks
|
||||
|
||||
### T01 — Seed catalog YAML for recommended models
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T01
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
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 P0 set
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T02
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
Human review of P0 candidates: license, size vs soft quota, hardware fit.
|
||||
Set `status: approved`, `collection.approved_by`, `collection.approved_at`.
|
||||
|
||||
**Done when:** each P0 entry is `approved` or `rejected` with reason.
|
||||
|
||||
---
|
||||
|
||||
### T03 — Download P0 to backup storage + verify
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T03
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
For each approved P0:
|
||||
|
||||
1. Download into `{BACKUP}/freedom-intelligence/models/...` (or `staging/` then promote)
|
||||
2. Record `artifacts[].sha256`, `size`, `collection.storage_path`
|
||||
3. Set `status: collected` then `verified` after re-hash or smoke load
|
||||
|
||||
Prefer official HF revisions; use `huggingface-cli` or equivalent with revision pin.
|
||||
|
||||
**Blocked on:** FI-WP-0001-T04 (storage pin).
|
||||
|
||||
**Done when:** all approved P0 are `verified` or explicitly deferred with notes.
|
||||
|
||||
---
|
||||
|
||||
### T04 — P1 decision pass
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T04
|
||||
status: todo
|
||||
priority: medium
|
||||
```
|
||||
|
||||
After P0, decide which P1 models fit remaining quota. Approve/collect subset or
|
||||
leave as candidates for daily briefs to re-prioritize.
|
||||
|
||||
**Done when:** each P1 has an explicit next status (`approved`, `candidate`, `rejected`).
|
||||
|
||||
---
|
||||
|
||||
### T05 — Reserve index snapshot
|
||||
|
||||
```task
|
||||
id: FI-WP-0003-T05
|
||||
status: todo
|
||||
priority: low
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## Acceptance (workplan-level)
|
||||
|
||||
- [x] Catalog seeded from baseline survey
|
||||
- [ ] Storage pin complete (upstream)
|
||||
- [ ] P0 verified on backup media
|
||||
- [ ] RESERVE-STATUS snapshot after first collections
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Hosting inference endpoints
|
||||
- Full DeepSeek-V3/R1 671B pull without separate capacity decision
|
||||
- Dataset reserve (weights only unless tiny tokenizer/adapters)
|
||||
Loading…
Add table
Add a link
Reference in a new issue