garrytan/gbrainmarkdown explorer
garrytan/gbrainmaster
skills / migrations

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 to facts: claim_metric, claim_value, claim_unit, claim_period. All nullable — existing facts persist identically.
  • The ## Facts fence 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> and gbrain founder scorecard <entity>.
  • The extract_facts cycle phase now batch-embeds facts before insert AND threads pages.effective_date as the fallback valid_from.
  • The consolidate cycle 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 chronological valid_until on 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_until on facts. consolidate writes it; the probe emits paste-ready commands instead. This invariant is pinned by test/eval-contradictions/no-valid-until-write.test.ts (R1 + R8 grep guards).
  • find_trajectory MUST visibility-filter remote callers (ctx.remote === true → SQL adds AND visibility = 'world'). Mirrors recall's posture.
  • consolidate's semantic upsert MUST be keyed on (page_id, claim, since_date), NOT MAX(row_num)+1. Pinned by test/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.findTrajectory in src/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 for find_trajectory)
  • CLIs: src/commands/eval-trajectory.ts, src/commands/founder-scorecard.ts
  • Schema: src/core/migrate.ts (migration v67)
Continue exploring589 Markdown documents in the local repository