v0.35.7.0
skills/migrations/v0.35.7.0.md
version: v0.35.7.0 date: 2026-05-17 feature_pitch: > Typed metric claims, chronological trajectory queries, and a founder scorecard CLI. The temporal axis the v0.35.3.1 contradiction probe needed in order to be useful, finally landed.
v0.35.7.0 — Temporal trajectory + founder scorecard
What changed
- Migration v67 (
facts_typed_claim_columns) adds four optional columns tofacts:claim_metric,claim_value,claim_unit,claim_period. All nullable — existing facts persist identically. - The
## Factsfence widens from 10 to 14 columns when a row carries typed-claim data. Backward compat: fences without typed data stay at 10 cells. - New MCP op:
find_trajectory(read scope, not localOnly). Federated source-scoped, visibility-filtered for remote callers. - New CLI commands:
gbrain eval trajectory <entity>andgbrain founder scorecard <entity>. - The
extract_factscycle phase now batch-embeds facts before insert AND threadspages.effective_dateas the fallbackvalid_from. - The
consolidatecycle phase now uses semantic upsert on(page_id, claim, since_date)so re-running the full cycle on stable input produces zero duplicate takes. Also writes chronologicalvalid_untilon each cluster's older facts.
What agents need to do
Most of this is automatic on upgrade. Three things worth knowing:
1. Author typed-claim rows in ## Facts fences
When you write facts about a company or person that include metric assertions, add the four typed columns to the fence row:
| # | claim | kind | confidence | visibility | notability | valid_from | valid_until | source | context | claim_metric | claim_value | claim_unit | claim_period |
|---|-------|------|------------|------------|------------|------------|-------------|--------|---------|--------------|-------------|------------|--------------|
| 1 | MRR hit $50K (Jan 2026) | fact | 1.0 | private | high | 2026-01-15 | | OH transcript | | mrr | 50000 | USD | monthly |
| 2 | ARR target | commitment | 0.6 | private | high | 2026-01-15 | 2026-12-31 | OH transcript | predicted $1M ARR by Q4 | arr | 1000000 | USD | annual |
The claim_metric column normalizes to lowercase snake_case (mrr, arr,
team_size, runway, burn_rate, cac, ltv, mau, dau, churn_rate, revenue,
fundraise, headcount, gross_margin, users). Unknown labels lowercase +
underscore-collapse and pass through verbatim.
2. When the user asks "how has X trended"
Use gbrain eval trajectory:
gbrain eval trajectory companies/acme-example
gbrain eval trajectory companies/acme-example --metric mrr
gbrain eval trajectory companies/acme-example --since 2026-01-01 --json
Or the MCP op find_trajectory with {entity_slug, metric?, since?, until?, limit?}.
Regressions are auto-flagged at 10% drops by default. Drift score indicates narrative stability (0 = stable, 1 = every claim is unrelated; null when <3 embedded points).
3. When the user asks "is this founder consistent / reliable"
Use gbrain founder scorecard:
gbrain founder scorecard companies/acme-example --json
Returns four signals: claim_accuracy (over resolved takes),
consistency (1 minus the fraction of metric value-changes),
growth_trajectory (direction + delta per metric), red_flags
(regressions + high drift + missed predictions).
JSON schema is schema_version: 1, additive-only across releases.
Iron-rule contracts to preserve
- The contradiction probe MUST NOT write
valid_untilon facts.consolidatewrites it; the probe emits paste-ready commands instead. This invariant is pinned bytest/eval-contradictions/no-valid-until-write.test.ts(R1 + R8 grep guards). find_trajectoryMUST visibility-filter remote callers (ctx.remote === true→ SQL addsAND visibility = 'world'). Mirrorsrecall's posture.consolidate's semantic upsert MUST be keyed on(page_id, claim, since_date), NOTMAX(row_num)+1. Pinned bytest/consolidate-valid-until.test.ts(R4b/R7).
Where to look
- Cycle phase:
src/core/cycle/extract-facts.ts,src/core/cycle/phases/consolidate.ts - Engine method:
BrainEngine.findTrajectoryinsrc/core/engine.ts,src/core/postgres-engine.ts,src/core/pglite-engine.ts - Trajectory math:
src/core/trajectory.ts - MCP op:
src/core/operations.ts(search forfind_trajectory) - CLIs:
src/commands/eval-trajectory.ts,src/commands/founder-scorecard.ts - Schema:
src/core/migrate.ts(migration v67)