AIM Cortex Programme Board

Live · 2026-09-07 13:37 · main e63fff73

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

9/11 done

7

Feature slices

11/19 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
3.73.87.27.58.48.9

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).
sequence start≈19.4 AI-days →
Landed — 55 delivery ticketsclick to expand
2.1 · Stand up the control-plane database2.1 · migration 0001 must self-grant `migrate`2.2 · Accounts / projects / keys / budget grad2.3 · Job-store backend swap 2.4 · Asset data waves2.4 · 2.4.1 · Results wave — migrate study run2.4 · 2.4.2 · Audiences finalisation — provena2.4 · 2.4.3 · Fix import_studies append-only u2.5 · Ledger graduation + evidence envelope2.8 · Results cache 3.1 · Surveys slice spec 3.2 · Freeze the characterization corpus3.3 · Wire the 6 stranded believability specs3.4 · Demo curation 3.5 · Services survey executor 3.5 · Shared PRNG primitive 3.5 · Sampler cleanup 3.6 · Fox thin adapter + flag cutover3.6c · Survey executor reference-lookup 4.1 · Machines POC: real run-survey job kind4.2 · Machines POC: minimal MCP tool 4.3 · Machines POC: demo — an agent commission5.1 · Compat calibration_status hardcoded true5.2 · verbose_errors to real config + error ca5.3 · DRIVER_BANK provenance gating5.4 · Fakery re-sweep 5.5 · Avatar quality 5.6 · V6 warm-cache staleness plan row5.7 · resonanceMap per-persona confidence ?? 05.8 · Local/IDB-mode Quadrant demos serve stal5.9 · Silent-failure / honesty register needs 6.2 · Accounts / identity model detail6.5 · Error-code developer + user documentatio6.6 · Move static reference datasets out of gi6.7 · CF Pages deploy pipe — LFS-smudge clone 7.1 · Audience creation 7.2 · 7.2.0 · Golden-freeze the spec-less Fox 7.2 · 7.2.1 · Port the focus-group study runne7.2 · 7.2.1 · Port the focus-group study runne7.5 · 7.5.1 · Port the creative study runner t7.5 · 7.5.2 · Port the sensitivity study runne7.5 · 7.5.3 · Port the interview study runner 7.5 · 7.5.4 · Port the resonance-map study run7.5 · 7.5.5 · Port the ddq study runner to the7.6 · Chat-survey fold-in7.10 · Survey question types 8.1 · Build a new 100k HSV population9.2 · S1 security execution 9.2 · 9.2/S1 [Medium]: authenticated SSRF via 9.2 · 9.2/S1 [Medium]: path traversal via cont9.2 · 9.2/S1 [Medium]: indirect prompt injecti9.2 · 9.2/S1 [Medium]: D1 DoS — save-state wri9.2 · 9.2/S1 [Medium]: D1 DoS — arbitrary diag9.2 · 9.2/S1 [Medium]: no CSRF defence on stat9.2 · 9.2/S1 [Medium/local-dev]: serve.py hard

The work — by workstream active shown · done in Landed

now / in reviewdoneparkedurgentreadytriage / queued
1

Foundations

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

10/13

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

3

Surveys

9/11

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

4

Machines

3/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

9/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

4/7

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

7

Feature slices

11/19

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

1/9

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

  • 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).
  • Deliversthe client side of the repin as one change: data/population.json regenerated from the subsample's rows (same rows as the service's profile photograph), HOSTED_POPULATION_ID, HOSTED_POPULATION_HASH and HOSTED_POPULATION_VERSION in rebuild/src/logic/engine.ts moved, getAudiencePopulationId() in population.ts moved, the three hard-coded 10,000 denominators found in SAMPLING_100K_OPTIONS_2026-09-04.md made data-driven, the frozen-file re-baseline (--write-baseline with David's own intent sentence), and the catalogue cases that pin known answers (TC-AUD-26's 5,053) re-pinned deliberately.
  • Deliversthe one LLM call left inside the engine, bislib/engine/m4/narratives.py (_call_anthropic), moved out: the service owns narrative generation through its provider seam (the compat-M2 provider and budgets), the library's M4 becomes fully deterministic, and the facade signature drops the narrative side effect. Segment narratives keep their current wording via the same prompts, now on the service.
  • DeliversMatt's design document answering the brief docs/coordination/BRIEF_MATT_SAMPLED_VECTORISED_SERVING_2026-09-04.md: the data layout and the array contract (memory-mapped population, the statistics artefacts, how a sample is addressed), the sampler specification, the parity and tolerance policy with the σ protocol as its first step, the engine-to-service contract, the migration path and re-baseline plan, effort and sequencing, and the split between what Matt builds and what we build. Slice 1 is the array-in facade (react and analyse_population taking arrays, not List[HSV]).
  • Deliversa written protocol for Matt's approval (question 2 on the Matt list): how many repeat compilations, over which objects, on which population, and which statistic is σ (per-persona R spread, per-object mean spread, or both), with the reproduction commands; then, on his approval, one measured run committed under 02-bis-lib/tests/parity_v5/evidence/ with the numbers.
  • DeliversMatt's confirmation of the measured inventory of the engine's LLM calls and his ruling on which of them are science-sensitive to a model change, so the gateway can pin them as a Matt-owned policy domain.
9

Security & governance

8/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

0

Miscellaneous

14/18

Objective: Operational, board and CI/bookkeeping tickets — outside the 1-9 delivery spine.

Needs: No delivery dependency; kept homed for the audit trail, not a workstream of work.