Lens packs (v0.41.2.0)
Four bundled schema packs that turn the modusbrain dream cycle into a multi-lens brain. Activate one withmodusbrain config set schema_pack <name> and the cycle
picks up the pack’s declared phases on the next modusbrain dream run.
The four packs
modusbrain-creator
Atom + concept content-creator lifecycle. Drives two cycle phases:extract_atoms— per source, Haiku extracts 1-3 atoms from each transcript with the closed 11-valueatom_typeenum (insight, anecdote, quote, framework, statistic, story_angle, strategy_angle, strategy, endorsement, critique, collection). Writesatoms/{YYYY-MM-DD}/{slug}pages. Budget cap $0.30/source/run.synthesize_concepts— globally aggregates atoms by frontmatterconcepts:ref. Tier by count: T1 ≥10, T2 ≥5, T3 ≥2. T1/T2 get Sonnet narratives; T3 falls back to a deterministic stub. Writesconcepts/{slug}pages. Budget cap $1.50/run.
concept_themes / cluster_summary / [concept]
— tier histogram + page count, not Brier (concepts don’t have binary
outcomes to score against).
modusbrain-investor
YC / investor lens. Declares 2 net-new page types on top of gbrain-base’s deal/person/company/yc seed:thesis(NEW) — investment thesis with thesis_text + key_bets[] + market_view + vintage. Files atinvesting/theses/{slug}. Extractable (the LLM mines claims into facts).bet_resolution_log(NEW) — outcome record for a thesis’s bet. FK to a take row via take_id; carries resolved_outcome + resolved_at + learned_pattern. Files atinvesting/bets/{YYYY-MM}/{slug}.
deal_success (scalar_brier over deal-attached
takes), founder_evaluation (scalar_brier over person-attached takes),
market_call (weighted_brier over thesis-attached takes; weighted by
conviction so high-stakes misses cost more).
modusbrain-engineer
Bridge-only pack. Declareslearning page type + reuses base code.
No new cycle phases — the daemon-side gstack-learnings IngestionSource
(T8) watches ~/.gstack/projects/{repo}/learnings.jsonl and emits
each JSONL line as a learning page when this pack is active. Three
calibration domains: architecture_calls (scalar_brier),
effort_estimates (weighted_brier), risk_assessment (scalar_brier).
Speculative ADR/postmortem/refactor_thesis/tech_debt types deferred
to v0.42+ — they’ll ship when a real user authors the first one (D8).
modusbrain-everything
Meta-pack stacking creator + investor + engineer via the v0.38extends + borrow_from chain. Single-active-pack constraint
preserved — this IS the active pack; the registry walks extends +
borrow to materialize the merged view.
Activate via modusbrain config set schema_pack modusbrain-everything and
calibration_profile produces all 7 domain scorecards in one JSONB.
Calibration profile widening (T10)
Before v0.41.2.0,calibration_profiles.domain_scorecards was a
JSON.stringify({}) placeholder. v0.41.2.0 widens it: each declared
domain produces a {n, brier, accuracy, aggregator, page_types, extras} entry. Four aggregator algorithms (closed enum):
- scalar_brier —
AVG(POWER(weight - outcome::int, 2)). Default for probabilistic predictions. - weighted_brier — Brier weighted by
ABS(weight - 0.5) * 2(conviction proxy). High-conviction misses cost more. - count_based — simple
SUM(hit) / COUNT(*)accuracy without Brier. Use when probability isn’t natural. - cluster_summary — descriptive rollup (page count + tier
histogram). For domains like
concept_themeswhere there’s no binary outcome.
{name, aggregator, page_types}.
Domain names are OPEN (third-party packs can declare new domain labels
without a modusbrain release). Aggregator algorithms are CLOSED (safe SQL
stays in code, validated at pack-load).
take_domain_assignments table (T1)
New JOIN table (migration v94):take_domain_assignments(take_id BIGINT FK, domain TEXT, pack TEXT, source TEXT, confidence REAL, assigned_at TIMESTAMPTZ, PK(take_id, domain)). Multi-domain assignment honest — a take about “Sequoia’s
investment in Anthropic” can land in BOTH deal_success AND
market_call rather than being force-bucketed.
What this enables for the user
- Atoms + concepts ship in the binary. Your OpenClaw’s parallel
atom-pipeline-coordinator + atom-backfill-coordinator + concept-
synthesis crons can retire (T12 follow-up). One
modusbrain dreamcron covers everything. - gstack learnings reach modusbrain. Engineer-pack-active brains surface every gstack-logged learning as a queryable page within seconds of being written.
- Multi-lens calibration. Activate modusbrain-everything and see how
often you’re wrong on deals AND market calls AND architecture
AND effort estimates in one
modusbrain calibration --jsoncall. - Lossless OpenClaw migration. The
markdown-greenfieldimporter (T7, mode=‘migration’) re-ingests existing OpenClaw pages with permanent slug-keyed idempotency + per-row JSONL audit- the
imported_frommarker so extract_atoms + synthesize_concepts don’t re-extract already-atomized material.
- the
v0.41.2.1 follow-ups (filed in plan)
- Per-page-type
frontmatter_validatorson PageTypeSchema so the atom_type enum (currently hardcoded in extract_atoms.ts) reads from the active pack manifest at runtime per D11. - 3-check quality gate (truism / punchline / entity-page reject) as a multi-pass extract_atoms refinement.
- Embedding-similarity dedup in synthesize_concepts (currently exact-string concept ref match only).
- Voice gate integration for T1 Canon narratives.
- op_checkpoint resumability for cross-cycle continuation in both phases.
- Parity-baseline eval gates against your OpenClaw’s existing 13K atoms
- 11K concepts on a 500-page sample subset.