AIM Cortex Programme Board

Live · 2026-08-22 18:49 · main 1dd67737

One platform, two ways in. The science lives in the engine and library; shared product logic lives once in services; Fox (people) and Machines (AI agents) are thin surfaces on top. The work is nine numbered workstreams; each item is a ticket in the Cortex Delivery board. The goal running through all of it: thinner surfaces, a fatter shared middle, every capability built once.

Waiting on you live · labelled needs:david

DecideEnable the 'PR merged' + 'PR linked to issue' Project workflows #710. Belt-and-braces on the mechanical board: turn on the built-in Project #2 workflows so merged/linked PRs move tickets automatically.
StandingMerges stay your word, one lane at a time. Tickets are the source of truth — update the ticket, not this page. Archived sessions are reopenable from the Archived list — that is the rollback. S1 security (9.2) has your go; the async seam is live with the old engine warm as the parachute.

Sequence & dependencies

The serial spine — each step needs the one before it
1

Foundations

live lanes

3

Surveys

6/10 done

7

Feature slices

0/11 done

Branches off the spine
4 · Machines POC

starts once Surveys reaches its executor (3.5)

Parallel tracks — own gates
2 · Data platform6 · Services

Build alongside the spine; only the job-store swap (2.3) waits (for 1.3 + 3.5).

No gate — run anytime
5 · Fox hygiene9 · Security8 · Engine & science · 8.1 urgent

Nothing blocks these; they run whenever there is a slot.

Ready / in flight now live
2.43.58.19.1

Computed from the tickets this run — every item currently Ready, In Progress or In Review.

Waits on Matt
7.38.28.68.7

7.3 analysis blocks · 8.2 v6.1 · 8.6/8.7 drivers + Likert — need Matt's rulings (8.4).

Gantt · effort & sequence T-shirt sizes · live

Each bar is a ticket; its width is the AI-execution effort (the Size field), laid end-to-end along the dependency chain. Dashed lines are dependency gates — a downstream track (e.g. 7 Feature slices, 4 Machines) can’t start until the marked spine work clears. Not a calendar — horizontal is relative AI-effort (XXS minutes · XS ½h · S 1–2h · M ½d · L 1d · XL 2–3d · XXL ~1wk).
▸ 7 Feature slices · after 3▸ 4 Machines · after 3.5
8 · Engine & science
9 · Security & governance
sequence start≈3.3 AI-days →

Landed — live from the tickets

The work — nine workstreams

now / in reviewdoneparkedurgentreadytriage / queued
1

Workstream 1

Objective: Stand up the guardrails and coordination so the build runs safely, in parallel, without rotting.

Needs: Unlocks the whole critical path. These are live lanes, not board tickets.

2

Data platform

5/9

Objective: Give the platform a real memory — one production database for accounts, keys, assets and results.

Needs: Store ruled (D-021, production). 2.3 waits on 1.3 + 3.5. · epic #647

  • DeliversThe production control-plane Postgres — Cloud SQL (London, private IP), GCS bucket and the four DB roles, all tables created empty → unlocks the whole WS2 data platform (accounts, job-store, asset waves, ledger, cache).
    Services
  • DeliversA portable migration 0001 — self-grants migrate so the schema loads on any Cloud SQL target without a manual grant → unlocks repeatable 2.1 schema-loads on every future Cloud SQL environment with zero manual steps.
  • DeliversOur account, actors and keys seeded; keys, budgets and the kill-switch latch graduated under a dual-write rollback window → unlocks per-account budgets and the 2.6 staff-auth slice.
    Services
  • DeliversThe job store swapped SQLite→Postgres behind the hardened seam — read-only cutover, drain, dual-read window, per-account queue caps → unlocks durable multi-account async jobs (what the survey executor runs on).
    Services
  • 2.4#601Asset data wavesin progress
    DeliversData migrated in dependency order — subjects, audiences, studies, drivers, then cache re-warm — via versioned ETL, no LLM spend → unlocks real-data studies and the 2.8 cache re-warm.
    Services
  • DeliversThe audit / usage / receipts / job_outcomes ledgers graduated to the platform DB, with release columns and AI-provider provenance → unlocks usage metering and billing evidence.
    Services
  • DeliversService-side verification of the Cloudflare Access JWT (issuer+aud+JWKS, fail-closed) mapped to actors and staff_role → unlocks the 2.7 admin write-UI (RT-J #7 prerequisite).
    Services
  • DeliversA service-served, audited CRUD admin UI — accounts/projects/memberships/keys, job requeue+cancel, dataset sharing flips, soft-delete restore, never psql → unlocks safe human operation of the WS2 data platform without direct database access.
    Services
  • DeliversThe results cache — every result remembered (object + population + engine + parameters) so repeats are instant; recompute only when an input genuinely changes → unlocks instant repeats / slices / shares (the serve-cost lever).
3

Surveys

6/10

Objective: Prove the build-once model — move the first real feature into shared services, thin on both surfaces.

Needs: Needs the 1.1 gate + 1.3 job seam; not the data platform. Spec 3.1 ruled. · epic #648

  • DeliversThe David-reviewed Surveys build spec — the lift-vs-rewrite split and the two ruled decisions → unlocks the 3.5 executor build (head of the serial spine).
    ServicesFox
  • DeliversThe frozen characterization corpus — Fox's current survey output as the parity oracle → unlocks bit-for-bit parity-checking of the 3.5 port.
    ServicesFox
  • DeliversSix stranded believability specs wired back into the suite (3 files, 6 cases) — acceptance widened cheaply → unlocks stronger acceptance coverage backing the 3.5-3.7 port and cutover.
    ServicesFox
  • DeliversExperimental-area toggles hiding focus groups / quadrants / interviews → unlocks trustworthy pilot demos (only finished surfaces visible).
    ServicesFox
  • DeliversThe Fox survey runner rebuilt server-side in Python on the hardened seam, pinned bit-for-bit to the characterization corpus → unlocks 3.6 Fox cutover, 3.7 client-runner retire, the 4.x Machines POC and the 7.x feature slices.
    ServicesFox
  • DeliversThe single-sourced JS→Python PRNG shared by the runner (#609) and the sampler oracle, frozen against a golden → unlocks drift-free seeded sampling across the runner, executor and sampler.
  • DeliversUnit E sampler's two deferred DoD items — (1) the test-catalogue cases (Fox TEST_CATALOGUE sampler-oracle case + the service TEST_CATALOGUE sampler-parity case) and (2) a content-hash drift-guard so the Fox sampler oracle (slice1-sampler-oracle.json) and its vendored 03-bis-service copy can't silently diverge → unlocks 3.8 sampling-quality gate (#667), which blesses one verified sampler.
  • DeliversThe Fox app cut over to the shared services executor behind unchanged helper signatures → unlocks 3.7 (retire the client runner).
    ServicesFox
  • DeliversThe old client survey runner retired once parity holds — one server-side runner left, hotfix-with-stamp discipline live → unlocks Workstream 7's feature slices building on a single shared runner, with no dual-path drift risk.
    ServicesFox
4

Machines

0/3

Objective: Let an AI agent commission a survey end to end — the first Machines proof of concept, internal only.

Needs: Branches off the spine once Surveys reaches its executor (3.5). Delta ruled (D-022). · epic #649

5

Fox hygiene

4/9

Objective: Close the honesty and cleanup gaps in the Fox app so demos and pilots are trustworthy.

Needs: No gate — runs anytime, full-auto to verified PRs. · epic #650

6

Services & platform

0/6

Objective: Build the shared plumbing both surfaces rely on — the AI gateway, accounts, a real release path.

Needs: 6.1 rides the Surveys path; 6.3 is independent and unlocks retiring the old VM. · epic #651

  • DeliversThe one shared LLM gateway service — 29 registered tasks + the 4 ingestion/image endpoints, the unregistered raw-completion escape hatch closed, provider provenance stamped (closes the model_used defect) → unlocks every surface calling LLMs through one governed path instead of its own integration, with the Survey-voicing subset moving first, riding workstream 3 (Surveys).
    Services
  • DeliversThe accounts/identity model — net-new modelling, OAuth prep-not-implement, the Humans-SaaS sign-in question settled → unlocks the Data platform's (workstream 2) accounts/keys build.
    Services
  • DeliversA real release path for the service — Artifact Registry, scripted deploy, an acceptance probe (M4 baseline + real >30s async compute), previous-image rollback, release-identity stamp → unlocks the old-VM decommission (~65-110/mo saving).
    Services
  • 6.4#624Infra tidyqueued
    DeliversInfra tidy on the redeployed box — L1 observability re-verified (merged 08-08, never re-verified), key-rotation completed, a tunnel/DNS map drawn → unlocks a verified, documented infra baseline for the 6.3 release path and old-VM decommission to build on.
    Services
  • DeliversThe plain-English message / stable-code catalogue, published as developer + user docs → unlocks self-serve debugging of the gateway/service's errors for developers and users, closing an owed deliverable.
    Services
  • DeliversThe ~230 MB of static census / personality / HSV reference datasets moved from git LFS into a GCS bucket (europe-west2), with the population build + docs updated to fetch from the bucket → unlocks near-zero LFS bandwidth + storage (kills the recurring LFS overage that hit 250 GB/250 GB and ~$76 in Aug) and removes the fresh-clone / Codespace "over data quota" failure risk permanently.
7

Feature slices

0/11

Objective: Grow the product by pulling each study type into shared services, reusing the Surveys machinery.

Needs: Needs the Surveys machinery (3). 7.3 also needs Matt (8.4). · epic #652

8

Engine & science

0/8

Objective: Engine & science — the 100k population, the capability workshop, and Matt's handover items.

Needs: 8.1 is urgent and runs now; most rows are Matt-gated. · epic #653

  • DeliversA new ~100k-persona HSV population via an at-scale feasibility + parity spike first, then an announced re-baseline on David's go → unlocks at-scale (100k) serving once parity holds.
    Engine
  • DeliversAdoption of engine v6.1 (never v6 itself) through the full re-baseline ritual — per-module re-port + parity + photographs + pin move — once Surveys (workstream 3) lands → unlocks the v6.1 science baseline the rest of WS8 builds on.
    Engine
  • DeliversA scoped capability workshop covering the readout/predict layer and its siblings (wind, item difficulty, narratives, landscape), plus a service-vs-front-end placement ruling → unlocks the Machines product-plan refresh (8.5/#637).
    Engine
  • DeliversThe Matt-sitting rulings — the ×4 analysis-definition calls, data custody/licensing (A1–A4), the drivers/geography/Likert direction, and the science/product boundary → unlocks 7.3 analysis blocks (#628), #597's geography leg, the 8.3 capability workshop, and 8.2's v6.1 path.
    Engine
  • DeliversA refreshed Machines product plan — pricing, positioning, GTM and launch gates (D-022) — once the POC demo asset and the 8.3 capability workshop both exist → unlocks the Machines launch-gate decision (D-022).
    Engine
  • DeliversMatt's ruling on how drivers should attach to the engine and how the driver methodology should actually work → unlocks the drivers build (7.11/#663).
    Engine
  • DeliversMatt's calibration direction for Likert rating-scale bucket widths (parity-first for now, behaviour unchanged until this rules) → unlocks the future calibration change once agreed.
    Engine
  • DeliversA vectorised engine serve path — the biggest single-machine speed lever (est. 10–50×, likely 100×+ with multi-core) — once Matt rules the parity-tolerance policy (8.4) and spike S3 arms it with numbers → unlocks a large cut to serve-path cost/latency (currently ~38.4ms/persona/object).
9

Security & governance

1/12

Objective: Security baseline, dependency debt, and pre-customer licensing validation.

Needs: 9.1 sweep can start now (Codex); 9.2 has David's go. · epic #654