Vol. I  ·  No. 223 Established 2026  ·  AI-Generated Daily Free to Read  ·  Free to Print

The Trilogy Times

All the news that's fit to generate  —  AI • Business • Innovation
TUESDAY, AUGUST 11, 2026 Powered by Anthropic Claude  ·  Published on Klair Trilogy International © 2026
🖶 Download PDF 🖿 Print 📰 All Editions
Today's Edition

Deal Fever Grips Tech as Coursera Swallows Udemy

A $2.5 billion online-learning combo leads a rush of tie-ups from cyber to chips to gas — and the pink slips are already flying.

SAN FRANCISCO — Coursera moved this week to acquire rival Udemy, welding two online-course sellers into a roughly $2.5 billion operation and firing the starter's gun on a merger stampede rolling clear across the tech map.

Both outfits peddle the same wares: massive open online courses, the MOOCs that once promised to school the planet on the cheap. The boom cooled. Now they're bunking together to survive, with terms laid out at Higher Ed Dive.

Coursera-Udemy runs no lone race. Cybersecurity firms are pairing off in bunches, per a fresh tally of sector deals. Over in the energy patch, Korea's MiCo is buying Dutch heat-transfer maker NEM Energy, wagering the LNG-equipment market has hit a supercycle.

Bigger deals carry bigger bills. A Silicon Valley tech giant is cutting up to 2,800 jobs after closing a $35 billion merger, the San Francisco Chronicle reports. That's the arithmetic of consolidation: two payrolls, one paycheck.

The AI titans aren't idle either. Google reshuffled its executive ranks, a move Bloomberg says complicates the search giant's race against OpenAI and Anthropic. When the front-runner stumbles, the pack smells blood.

Wall Street reads it plain: capital's chasing scale, easy money's gone, and the weak get bought or buried.

None of this rates as news in Austin.

Trilogy International, the private conglomerate Joe Liemandt founded in 1989, has run the roll-up play for decades. Its ESW Capital arm has swallowed 75-plus enterprise software companies — Aurea, IgniteTech, Skyvera and Contently among them — buying at one to two times annual recurring revenue, then trimming the fat. Where Coursera just discovered consolidation, ESW's been printing the playbook since the last century.

The cost structure runs on Crossover, Trilogy's remote-talent platform, which hires what it calls the top 1 percent across 130-plus countries at one flat, above-market wage.

The education angle cuts closer. Coursera and Udemy are lashing two big course libraries together and praying for scale. Trilogy bet the other way.

Its Alpha School runs a two-hour academic day on AI tutors, hands out no homework, and posts students who test in the nation's top 1 to 2 percent. Co-founder MacKenzie Price calls the underlying software "Shopify for schools." Founder Liemandt serves as principal.

There's the contrast. One camp merges yesterday's video catalogs; the other rebuilds the schoolhouse around the machine.

Merger waves crest, then break. The cyber deals will thin the herd, the $35 billion tie-up already cost 2,800 workers their desks, and Google's stumble hands OpenAI and Anthropic another opening.

Somewhere in Texas, a conglomerate that skips the press release keeps buying, keeps cutting, keeps teaching — same as it did before the fever hit.

Coursera to acquire Udemy to create $2.5B MOOC giant - Highe  ·  M&A REPORT: Cybersecurity Mergers And Acquisitions - Cybercr  ·  Silicon Valley tech giant cutting up to 2,800 jobs after $35

Hamburg Court Finds AI Music Generator Suno Liable for Copyright Infringement in Landmark GEMA Ruling

A German court has determined that Suno's use of copyrighted recordings to train its AI constitutes infringement — setting a precedent that may reshape the legal architecture of generative audio.

HAMBURG, GERMANY — It is hereby reported, pursuant to multiple corroborating journalistic sources, that a court of competent jurisdiction in Hamburg, Federal Republic of Germany, has issued a ruling (hereinafter, "the Ruling") to the effect that Suno, Inc. (hereinafter, "the Respondent"), an AI-powered music generation platform incorporated under the laws of the United States, has been found to have engaged in conduct constituting a breach of applicable copyright protections, as alleged by GEMA, the German performing rights organization (hereinafter, "the Claimant").

Notwithstanding the Respondent's presumed contentions to the contrary, the Ruling, as reported by Reuters, was determined to arise from the unauthorized utilization of copyrighted musical recordings in the training of the Respondent's generative artificial intelligence systems. It is to be noted that said utilization was undertaken without the procurement of requisite licenses, permissions, or other legally recognized authorizations from the rights holders whose works are alleged to have been so employed.

The Claimant, GEMA, which administers the performing and mechanical rights of composers, lyricists, and music publishers operating within the applicable jurisdiction, is understood to have asserted that the aforementioned conduct constituted, to the extent permissible under governing law, a material infringement of the intellectual property rights vested in the works of its represented membership.

Pursuant to Section, as it were, of broader industry context, it should be noted — with appropriate qualification and without prejudice to any contrary interpretation — that Variety has characterized this matter as a "landmark" proceeding, insofar as the Ruling may reasonably be construed as establishing, subject to appeal and further judicial elaboration, a precedential framework governing the circumstances under which the training of artificial intelligence systems upon copyrighted musical works shall be deemed to constitute actionable infringement under applicable European law.

It is further to be observed, with all due qualification, that the Ruling is not, at the time of this publication, necessarily final and unappealable, and that the full scope of remedies, damages, and injunctive relief, if any, to be imposed upon the Respondent remains to be determined by proceedings hereinafter conducted. The aforementioned outcome is, notwithstanding the foregoing, widely regarded as a significant development in the evolving legal landscape governing generative AI and creative intellectual property rights.

German court rules AI music firm Suno broke copyright rules  ·  Suno Loses Landmark AI Lawsuit to German Performing Rights S  ·  German Court Rules Against Suno In Lawsuit Challenging Use O
Haiku of the Day  ·  Claude HaikuGiants clash for crumbs
while smaller minds learn to see—
progress eats itself
The New Yorker Style  ·  Art Desk
The New Yorker Style  ·  Art Desk
The Far Side Style  ·  Art Desk
The Far Side Style  ·  Art Desk
News in Brief
AI Investment Flows From Seoul to Toronto to Hartford as Capital Chases the Physical World
NEW YORK — Three geographies, five deals, one throughline: institutional capital is accelerating into AI infrastructure plays while consumer investors quietly rotate toward agents and in-person social experiences. The week's most technically specific news came from Pathway, which claimed its 150-million-parameter model delivers reasoning at 11 times lower cost than prevailing alternatives.
Meta’s Laptop-Sized AI Gambit Throws Open the Model Wars Again
MENLO PARK, CALIFORNIA — Meta is back in the open AI arena with a move that could make advanced language models feel less like distant cloud infrastructure and more like everyday software you can actually run on your own machine.
The Bias Beneath the Benchmark: AI's Fairness Crisis Deepens Across Hiring, Policing, and Medicine
STANFORD, CALIFORNIA — It could be argued — and preliminary evidence now suggests, with uncomfortable insistence — that the artificial intelligence systems currently mediating access to employment, justice, and healthcare are not merely imperfect instruments but are, in a theoretically significant sense, constitutively biased in ways that resist remediation through conventional benchmarking methodologies. The thesis, as it were, is familiar: AI systems trained on historical data reproduce historical inequities.
The Surveillance Future Is Here, It's Just Not Evenly Distributed — Except It Is, Actually, It's Everywhere
AUSTIN, TEXAS — Let me describe a week in the life of the surveillance economy, and then let me ask you — gently, because I care about you, because we are both still technically human — what does it mean to be human in it. First: ICE is reportedly paying LexisNexis millions of dollars to funnel a vast reservoir of personal data directly into a Palantir system.
Remote Work Is Not a Perk Anymore — It Is the New Job Security
AUSTIN, TEXAS — I’ll be honest...
A Trilogy Company
Crossover
The world's top 1% remote talent, rigorously tested and ready to ship.
A Trilogy Company
Alpha School
AI-powered learning. Two hours a day. Academic results that defy belief.
A Trilogy Company
Skyvera
Next-generation telecom software — built for the networks of tomorrow.
A Trilogy Company
Klair
Your AI-first operating system. Every workflow. Every team. One platform.
A Trilogy Company
Trilogy
We buy good software businesses and turn them into great ones — with AI.
The Builder Desk  —  AI Builder Team

Builder Team Rewires the Engine While the Car Is Moving

From a production auth fix that unblocked real users to a cross-repo AI review dance going full-scope, the Builder Team spent 24 hours solving problems that actually matter — and opening doors that weren't there yesterday.

Let's start with the one that hurt before it got fixed. Real users. Real authentication. Real failure. @benji-bizzell landed PR #134 in Sindri and put an end to the quiet nightmare where valid Google-authenticated production users were getting bounced by Convex in an endless retry loop. The culprit: WorkOS multi-application environments issue tokens under the default application issuer, not Sindri's client ID — and nobody had told Convex that. Bizzell told it. One targeted fix, one properly validated issuer, zero more auth loops. When a fix this clean ships this fast, you don't bury it. You put it in the lede.

Now zoom out, because the biggest architectural story of the day isn't a single PR — it's three of them moving in formation across Klair, Surtr, and the mercy repo simultaneously. PR #3512, PR #1193, and PR #23 together implement what the team has been building toward: the full-scope heimdall↔mercy review dance. Heimdall proposes fixes anywhere in the codebase. Mercy approves them. The loop closes with a real APPROVE that can merge — but only when a human pulls the trigger. The decision came out of a working session between Benji and @kevalshahtrilogy on August 6th, and Keval shipped all three cross-repo companion PRs within the same cycle. This is what coordinated multi-repo execution looks like. This is the team playing at speed.

Keval wasn't done. The Aerie EC2 workers → Surtr migration — plan #1163, Phase 1 — is no longer theoretical. PR #1192 proved the pattern with a Class-1 school-calendar ingest end to end, ported as a Python Lambda and modeled on rhodes-staging-sync. PR #1225 then landed the core layer: the stored-procedure writer contract that the conventions mandate, the sole atomic writer for `core_education.ref_academic_term`. PR #1228 pinned the production spreadsheet ID. This is a migration executing in phases, with every step documented, every contract explicit, every precondition named. This is how you move a production system without breaking it.

Over in Aerie, @vvp-trilogy has been quietly rebuilding how the enrollment matrix reads — and PR #879 is the capstone of that thread. Transfer In now renders beside Transfer Out at the head of the next-year band, so a reader can finally see whether a student move is a network loss or an internal reallocation. That's not a feature. That's the difference between a report that lies by omission and one that tells the truth. Pair it with PR #875 — which replaces the Deposit funnel stage with Guide Approved and surfaces HubSpot and Finalsite icon links in the drill-down — and you have a reporting surface that's actually honest about where students are in the pipeline.

And then there's @marcusdAIy. PR #1206 — closing Alpha reconciliation normalizer gaps — shipped off the back of a successful production publication. The first run left 11 of 140 school scenarios unresolved. Eleven. Marcus investigated each one and found that 8 were normalizer gaps, not missing sites. His own words: "Eight sites were sitting right there, Mac. Spelled-out street types, abbreviated directionals, a handful of ampersand variants. The normalizer just didn't know how to read them. I'd say it was a hard problem but I know you'll find a way to make it sound like I spilled coffee on a keyboard." Fair enough, Marcus. You closed eight gaps. The other three are still unresolved. We'll check back.

The Builder Team shipped production fixes, cross-repo architecture, a data migration in motion, and enrollment reporting that finally tells the whole story. Every week is a winning week. This one had receipts.

Mac's Picks — Key PRs Today  (click to expand)
#134 — fix(auth): honor WorkOS environment issuer @benji-bizzell  no labels

## Summary

- Validate WorkOS access tokens against the environment issuer while retaining the Sindri application audience and JWKS.

## Why

WorkOS multi-application environments issue tokens using the default application issuer, which differs from Sindri’s client ID. Convex therefore rejected valid production tokens after successful Google authentication.

## Business Value

Production users can authenticate into Sindri successfully without entering an auth retry/loading loop.

## Test plan

- [x] Targeted auth configuration test

- [x] Biome check

- [x] Full TypeScript check

- [x] Convex production deployment completed without index changes

- [x] Direct runtime verification: authenticated queries report identityType user and return the current user

#879 — feat(enrollment): add Transfer In to the enrollment matrix @vvp-trilogy  approved

## Why

Transfer Out (#873) shows students leaving a campus but not students arriving from another one, which reads as pure loss and understates campuses absorbing movement from elsewhere in the network. Transfer In renders its arriving twin beside Transfer Out at the head of the next-year band, so a reader can see whether a move is a network loss or an internal reallocation.

Closes #871.

## How

Transfer In has no cohort row in mart_enrollment_dtl by design — an arriving student's destination record is an ordinary re-enrolled / pending re-enrollment deal that must keep counting where it is. The pairing is published separately in mart_enrollment_transfer, so the arrival is synthesised from that table's direction = 'in' rows.

- Contract (packages/contracts/src/enrollment-cohorts.ts): add start-year-transfer-in cohort, startYearTransferIn snapshot count, start_year_transfer_in column, and a comparison metric; place it in the next-year shift set beside start-year-transfer-out.

- Sync (queryEnrollmentTransferDetail): read direction = 'in' at session_school_year = Y + 1, emit cohort rows shifted back to matrix year Y, counting distinct contacts over the (deal_id, direction, counterpart_deal_id) grain (a student with two counterpart rows counts once). It also returns the destination campus for each out row, merged onto the existing start-year-transfer-out students. Prefers a non-null counterpart on a double pairing.

- Counterpart campus persisted on enrollmentCohortStudents (optional, no migration) and shown in the drill-down: origin campus for Transfer In, destination for Transfer Out, in a dedicated transferCounterpartLabel field + "Campus Transfer" detail section (not overloaded onto extraDetails, which would displace the stage badge). A null counterpart still lists the student with a blank campus.

- Non-additive overlay: documented in the column description — these students are also counted in Re-Enrolled / Pending Re-Enrollment, so the next-year band is not a sum. Never summed into a network total.

- Render-side band hiding: showNextYearBand(schoolYear, now) hides the whole next-year band whenever the selected school year is >= the current UTC calendar year (a wall of zero columns before the January re-enrollment season). Band header, column headers, body cells and totals footer trim together; a sort on a hidden column falls back to default; a selected cell in a hidden column clears on year change. Convex and the public API keep returning every column — this is presentation only, with an injectable now so the 31 Dec / 1 Jan boundary is unit-tested.

- Public API: exposed through the v1 and v2 metric maps, the OpenAPI enum, and the agent enrollment tool. Reconciled through the shared comparison-metric contract the consistency cron drives; a new contract test asserts every snapshot count field has exactly one comparison metric.

## Verification

- Source facts verified live against the warehouse: session_school_year = 2026 has 10 in rows / 10 contacts and 13 out rows / 13 contacts (3 with a null counterpart); the enrollment_dtl start-year-transfer-out cohort matches the 13 outbound rows; the deal-level joins resolve cleanly.

- pnpm typecheck, pnpm biome check, architecture-boundary checks: all green.

- Test suites: contracts, sync (992), and the touched chat suites all pass. New coverage: the matrix-year shift for Transfer In, distinct-contact dedupe, the counterpart-preference loop, drill-down From/To labels with a blank null counterpart, the band-visibility boundary, and reconciliation completeness.

Reviewed across three self-review iterations (each in an isolated sub-agent); findings fixed: counterpart double-pairing preference, moving the counterpart off extraDetails, and carrying transferCounterpartLabel through the enriched detail merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

#1206 — fix(education): close Alpha reconciliation normalizer gaps and enable the daily schedule @marcusdAIy  approved

Two related changes off the back of the first production publication, which ran successfully on 2026-08-10.

---

# 1. Close the site-reconciliation normalizer gaps

The first publication left 11 of 140 school scenarios unresolved against Rhodes sites. Investigating each showed 8 were normalizer gaps rather than genuinely missing sites — the matching Rhodes site was sitting right there under a spelling the normalizer didn't recognise.

Three causes:

1. Spelled-out street types. The normalizer expands street, avenue, road, drive, boulevard and highway, but not court, parkway or lane. So Alpha's 307 Southgate Court never met Rhodes' 307 SOUTHGATE CT, and 2000 Woodlands Parkway never met 2000 WOODLANDS PKWY. Added those three plus place, circle, terrace, trail and the four compound directionals, so the table is complete rather than complete-until-the-next-miss.

2. Leasing prose. Some addresses arrive as Approximately 12,000 rentable square feet within 5310 S Alston Ave, Durham, NC 27713. address_anchor takes three tokens from the first digit it finds, so it anchored on 12 000 rentable — the square footage — while Rhodes held that exact street address. Now unwrapped, keyed on square feet within rather than approximately so it survives wording drift.

3. Accents split tokens. Muñoz reached the matcher as the two tokens mu oz, because the punctuation pass turned the combining mark into a word break. Now folded to its ASCII base first.

## Validation against live data

Rather than reason about it, I ran the old and new normalizers through identical matching logic against the actual published data — all 140 school scenarios and 165 Rhodes sites — and diffed every school's outcome:

| | before | after |

|---|---|---|

| candidate_unique | 129 | 136 |

| ambiguous | 0 | 1 |

| unresolved | 11 | 3 |

8 improved, 0 regressed, 0 re-targeted. No school that already matched uniquely changed its answer, which was the risk worth checking — loosening address matching can silently re-point an existing match at a different site.

The new ambiguous is correct: 180 Maiden Lane now reaches Rhodes, which holds two sites (North and South) at 180 Maiden Ln, Suite 602. A human should pick, and ambiguous is how the pipeline says so.

The 3 remaining exceptions are genuine:

- Charlotte — Alpha says 4755 Prosperity Church Rd, Rhodes says 4801. Different building numbers: a relocation or a real discrepancy.

- Malibu — Alpha's 23465 Civic Center Way has no relationship to Rhodes' 3504 Las Flores Canyon Rd.

- San Juan15 Muñoz Rivera Ave versus 15 Av. Luis Munoz Rivera 120A, PR differs in word order as well as accents. Folding alone doesn't bridge it and forcing it would be over-reach.

---

# 2. Enable the daily schedule, and tighten the volume guards with it

A successful production publication was the last precondition the README's bring-up sequence named before enabling the schedule, so this flips enabled to true on the existing cron(0 10 ? * * *).

The reason the guards move in the same change: publish_snapshot replaces every table on each run (DELETE then insert), and the volume floors were set at "catastrophically empty" rather than near real volume. A partial Alpha outage returning 60 schools instead of 140 would clear MIN_SCHOOL_COUNT=50, publish, and silently drop 80 schools — with no exception, so on_failure alerting never fires. While a human invoked the pipeline that person was the detector. The schedule removes them without replacing them.

| setting | before | after | 2026-08-10 baseline |

| --- | --- | --- | --- |

| MIN_SCHOOL_COUNT | 50 | 120 | 140 school-scenario rows |

| MIN_RHODES_SITE_COUNT | 50 | 140 | 165 sites |

| MAX_CACHE_UNAVAILABLE_FRACTION | 0.25 | 0.10 | 0.021 (12 of 561 endpoints) |

This deliberately trades a chance of false failure for protection against a silent partial publication: a false failure alerts and can be re-run, whereas a false success destroys data nothing is watching. Today's run clears all three floors.

These absolute floors are an interim. The durable check is relative to the previous run's school_count, which ingestion_ledger already records — worth a follow-up, and deliberately not bundled here since it is new logic rather than config.

rhodes-staging-sync runs hourly and is already enabled, so the upstream site data is always fresh ahead of the 10:00 UTC run.

---

## Test plan

- [x] uv run pytest tests -q — 48 passed (was 43).

- [x] uv run ruff check src tests — clean.

- [x] uv run ruff format --check src tests — clean.

- [x] New tests cover each production miss by shape: parametrized street-type pairs, prose unwrapping (asserting the anchor lands on the street number, which is the actual bug), and accent folding.

- [x] A negative test asserts Charlotte's differing street number stays unresolved — the fix must not manufacture matches, and that is the plausible failure mode of loosened matching.

- [x] Simulated against live published data: 8 resolved, 0 regressions.

- [x] Verified today's observed volumes clear every tightened floor.

## Rollout

No DDL and no schema change. publish_snapshot fully replaces site_reconciliation_candidates each run, so the first scheduled run after deploy cleans up the current exceptions with no manual intervention.

#1225 — feat(pipelines): core-education-academic-term-refresh — A3 core layer @kevalshahtrilogy  approved

## What this is

The core layer of the A3 school-calendar migration — **now that #1192 (the raw layer) is merged, this lands directly on main. Completes the Phase 1 pattern proof from plan #1163 through the stored-procedure writer layer the conventions mandate for core/mart.

## Contract

staging_education_googlesheets.raw_school_calendar   (pinned via ingestion_ledger)

-> core_education.sp_refresh_academic_term (sole writer, atomic)

-> core_education.ref_academic_term

- The procedure is the sole writer (W §7.1 / P §4.1). The Lambda runner only: pins the latest successful ledger publication (or an explicit params.source_run_id), CALLs with a validated quoted literal, monitors with cancel-on-deadline, and verifies read-only. It submits no target DML. Runner client is the deadline-aware one from mart-aerie-school-source-directories-refresh.

- The procedure locks sources + target, re-derives the exact (run_id, extraction_id) from the ledger (a retried run id can span extractions), reconciles raw counts against published_count, builds and validates a temp candidate, then publishes DELETE + named-column INSERT inside its default-atomic transaction. No TRUNCATE.

- Consumer policy lands here, not in raw (the raw table's comment promises exactly this): header/blank rows skipped mechanically, the "Alpha School - Generic" placeholder excluded, non-blank-but-unparseable dates fail the run, duplicate campus labels fail the run (the incumbent Aerie worker silently marks them ambiguous).

- ref_academic_term is honest current-state (Type 1): deterministic MD5 key over the normalized campus label, UNIQUE (campus_key), nullable term_start_date (rows carrying only a calendar name/Drive link are valid — the consumer patches those independently), full lineage pair + extraction id, Purpose/Grain/Key comments, consumer write-revokes.

- Event-driven only (on_pipeline_success: [aerie-school-calendar-raw-sync]) — inert until the raw sync's schedule is enabled, so this PR changes no production behavior.

## Open design question for review

Plan #1163 §6 sketches a mart_education.aerie_school_calendar on top of this. The conventions warn against pass-through marts ("no pass-through Core or mart object is created merely to complete the diagram") and Aerie may read core directly. My lean: skip the mart unless review wants the consumer-contract isolation; the plan doc has been annotated accordingly.

## Verification

- 32 tests: exact CALL string, injection payload never reaches Redshift, closed param contract, missing-publication and short-deadline refusals, post-refresh failure states (empty/dup/mixed-lineage/wrong-run/blank identity), SQL text contracts (candidate-before-DELETE ordering, no TRUNCATE in the atomic body, named-column-only publication, ledger pinning predicates, explicit consumer-policy strings, no hard-coded counts), DDL splitter keeps the $$ body as one statement, pipeline.json contract (no schedule, exact trigger, CancelStatement, description ≤256).

- ruff format --check + ruff check clean; apply_ddl.py dry-run: 15 statements, table before procedure.

Applying DDL, deploying, or invoking the runner mutates AWS/Redshift and is not done by this PR.

## Business Value

Completes the migration pattern proof end to end: raw ingest → governed core contract, all conventions applied. Every remaining Aerie worker port (A5/A6/A2/A7, F1/F2) now has a worked example for both layers, and the campus-calendar data Aerie's dashboards patch from a cron becomes a governed, replayable warehouse contract with real failure semantics.

## Manual Effort Estimate

~1.5 focused days (≈12h) to hand-build: procedure design against two exemplars, ledger-pinning semantics, policy-in-core decisions, and the 32-test contract suite. (Proposed by Claude — Keval to confirm/adjust.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

#3512 — feat(agents): full-scope heimdall↔mercy dance (approve heimdall, empty forbidden_paths, mercy caller @main) @kevalshahtrilogy  approved

Companion to [AI-Builder-Team/mercy PR 23](https://github.com/AI-Builder-Team/mercy/pull/23) and [Surtr PR 1193](https://github.com/AI-Builder-Team/Surtr/pull/1193) — implements the 2026-08-06 working-session decision (Benji/Keval): the heimdall↔mercy dance runs full-scope, and the only remaining gate is that nothing merges automatically — a human merges every PR.

## Changes

- .mercy.yml — adds approve_bot_authors: the-heimdall[bot]. Once mercy PR 23 lands, this clears both the bot-author hold and the critical-path hold for heimdall PRs, so the dance can end in a real APPROVE that a human then merges. (Also requires the mercy-side app/<slug> login-normalization fix in that PR — GitHub reports heimdall's PRs as app/the-heimdall.)

- .heimdall.ymlforbidden_paths emptied (was scripts/, _archive/, klair-api/alembic/, klair-e2e-playwright/). The built-in floor is central code and still applies everywhere: .github/, .claude/, .codex/, .heimdall.yml, .mercy.yml, AGENTS.md, CLAUDE.md, CODEOWNERS, and any secrets/iam/credentials path segment. Tier comments refreshed for HEIMDALL_READY_PRS.

- .github/workflows/mercy.yml — re-pins the caller @v1 → @main with harness_ref: main. The v1 tag predates every dance feature (--allow-critical, approve_bot_authors critical-path clearance, the heimdall hand-off itself); the heimdall caller already rides @main.

- .github/workflows/heimdall.yml — comment-only: the auto-merge note no longer claims every PR is a draft.

## Repo variables (set separately, admin)

HEIMDALL_ALL_FILES=true (standing all-files scope) and HEIMDALL_READY_PRS=true (verified green fixes open ready-for-review instead of draft). HEIMDALL_AUTOMERGE_ENABLED stays unset — no auto-merge, ever.

Config is read from the default branch only, so this takes effect on merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Business Value

Brings Klair's heimdall install from shadow-mode (all-draft, narrow scope, stale @v1 mercy pin with none of the dance features) to the same full-scope loop as Surtr: heimdall fixes anything outside the machine-enforced floor, mercy reviews and can genuinely approve, and a human only merges. The @main re-pin alone matters — Klair's reviews were running a months-old verdict engine missing the heimdall hand-off entirely.

## Manual Effort Estimate

~3 hours of focused work (config + caller-pinning archaeology across two repos and the central workflow).

The Builder Desk  —  Engineer Spotlight
🏆 Engineer Spotlight

42 PRs IN 24 HOURS: THE BUILDER TEAM DOES NOT SLEEP, DOES NOT REST, DOES NOT KNOW THE MEANING OF THE WORD 'CEILING'

Six repos, seven engineers, and a velocity reading that broke three of our instruments.

FORTY-TWO. Say it out loud. Roll it around in your mouth. Forty. Two. Pull requests in a single twenty-four-hour rotation across six — SIX — active repositories, with Surtr alone absorbing twenty of them like the Norse fire giant it is named for. Aerie contributed nine. trilogy-drones delivered eight. Klair and Sindri chipped in two apiece. Even mercy, humble mercy, got one. This is not a software team. This is a continental shelf event.

Let us talk about @marcusdAIy, who posted twelve — TWELVE — PRs and did not once ask for a medal, though we are prepared to mint one. His trilogy-drones work alone tells a story: PR #172 hardening the cross-repo guard for AI-470, PR #171 delivering spec drafts as reviewable PRs, PR #170 dropping four Klair board-doc drone specs from the backlog groom, and PR #169 escalating a structurally broken heartbeat mirror. That is a man conducting an orchestra with both hands and one foot. @benji-bizzell is right behind him at eleven PRs, a thunderous sustained assault on Surtr's education layer — FinalSight view widths (#1215), SIS token refresh (#1209), first-run publication preservation (#1210), staging contracts (#1205), enrollment fact rebuild (#1204) — the man is not fixing bugs, he is conducting triage on a battlefield while simultaneously building the hospital. @kevalshahtrilogy's seven PRs span the full theological spectrum: pinning a production school-calendar spreadsheet ID in #1228, laying out the Aerie-to-Surtr migration plan in #1163, then immediately beginning Phase 1 of that same migration in #1192, and — perhaps most audaciously — choreographing the full-scope heimdall↔mercy dance across both Surtr (#1193) and mercy (#23) simultaneously. @vvp-trilogy put up five clean Aerie contributions, reshaping the enrollment funnel in #875, expanding First Day into a full Year Start block in #874, and wiring Mixpanel to email in #876. @mwrshah and @YibinLongTrilogy each posted two, dependable as the laws of physics.

And then there is @ashwanth1109. Three PRs. Just three. The QTD reports dashboard in Aerie (#889), the deleted transaction line reconciliation in Surtr (#1191), and — reach across repos, why don't you — the school performance report finalization in Klair (#3508). Three repositories. Three disciplines. Three PRs that each read like a dissertation defense compressed into a diff. We reached Ashwanth for comment and he said, reportedly, "The dashboard was already done in my head last Tuesday. I was just being generous with the rest of you." His response when we read that quote back to him was a single, withering look that lasted approximately four seconds before he returned to his terminal. We stand by every word.

The Overflow Desk cannot be ignored — Mac left thirty-seven PRs on the cutting room floor, and they deserve their moment. PR #881 in Aerie sees @benji-bizzell preserving complete enrollment data on enrichment failure, which is the kind of defensive engineering that prevents catastrophe at 2 AM on a Tuesday. PR #873 in Aerie has @vvp-trilogy realigning cohorts with the upstream transfer rework, threading a needle through moving parts with the calm of a surgeon. And PR #1223 in Surtr — @mwrshah's Grainne pull-only-for-pushed-points logic — is doing quiet, load-bearing work that the glamour metrics will never fully credit.

Morale is at an all-time high. We checked. The instruments are functioning again. The Builder Team sends its regards.

Brick's Overflow — PRs Mac Didn't Cover  (click to expand)
#881 — fix(enrollment): preserve complete data on enrichment failure @benji-bizzell  approved

## Summary

- Prevent enrollment publication and staging when any required cohort, deposit, or transfer source is incomplete

- Reject malformed fact rows and unusable identities, directions, or school years instead of silently publishing partial counts

- Align the deposit reader with the deployed warehouse column names

## Why

Required source failures and malformed rows could be converted to empty or partial results while enrollment remained successful. The deposit reader also referenced column names that do not exist in the deployed mart. Together these paths could publish convincing false-zero or understated counts over previously reconciled data.

## Business Value

Enrollment reporting retains the last complete snapshot whenever a required source is unavailable or incomplete, preventing partial data from appearing as valid business results.

## Test plan

- [x] 1,008 sync tests passing

- [x] Full pnpm check passing

- [x] Query failures and malformed fact rows block enrollment publication

- [x] Failed required sources stage no partial enrollment rows

- [x] Live exact-reader preflight across 82 programs: 6,829 cohort rows, 142 deposits, 10 transfer-ins, 13 transfer-out mappings, 0 failures

#889 — feat(financials): add QTD reports dashboard @ashwanth1109  approved

## Demo

<img width="2624" height="1636" alt="image" src="https://github.com/user-attachments/assets/469ca596-9852-4867-8267-e6746140ed28" />

<img width="2624" height="1636" alt="image" src="https://github.com/user-attachments/assets/2d8e128c-a2fd-4693-b0cc-cdbc38249428" />

## Summary

- add the QTD Reports Financials page and capability-gated navigation

- query live Redshift school, student, staffing, program, budget, and unit-economics data through Convex Node actions without the QuickBooks cutover flag

- add searchable school selection, expandable source detail, budget comparisons, and model-versus-actual reporting

## Test plan

- [x] Chat QTD, live-financials, and unit-economics tests (220 tests)

- [x] Contracts unit-economics tests (62 tests)

- [x] Chat TypeScript checks

- [x] Scoped Biome checks and pre-commit hooks

#1191 — fix(netsuite-raw): reconcile deleted transaction lines @ashwanth1109  approved

## Summary

- reconcile replaced/deleted TransactionLine rows without scanning the 136M-row source table

- after each normal incremental catch-up, fetch the complete current line keyset only for parent transactions changed in the same bounded window

- consume bounded NetSuite DeletedRecord events and remove lines for directly deleted parent transactions

- preserve surviving Redshift rows, including separately backfilled cseg1 and eliminate values

- record scoped key drift, matched tombstones, and before/after counts in ingestion evidence

## Root cause

raw_transaction_line incrementally upserts by uniquekey, but a removed or replaced NetSuite line never appears in a later lineLastModifiedDate query. The obsolete key therefore remained in Redshift indefinitely. These are usually not duplicate uniquekey values; stale and current keys collide at the transaction/line-sequence business grain.

## New bounded reconciliation

Every incremental raw_transaction_line run uses one shared [start, end) boundary for three steps:

1. Publish lines returned by the existing lineLastModifiedDate incremental query.

2. Query TransactionLine joined to parent Transaction, restricted by Transaction.lastModifiedDate. For only those changed parents, compare the complete current NetSuite keyset with Redshift and atomically delete target-only keys.

3. Query DeletedRecord in the same window. Match recordid + recordtypeid to raw_transaction.id + record_type, then delete child lines for matched deleted transactions.

This avoids a global line-key scan. The parent comparison is authoritative only inside the changed-parent scope: for each affected transaction, the candidate contains every line key that currently exists in NetSuite. A bounded historical incremental backfill can replay the same mechanism over older transaction-modification/deletion windows.

## Safety

- parent reconciliation runs only after the normal incremental catch-up

- any current scoped NetSuite key still missing from Redshift fails the run before deletion

- deletion fails closed if target-only rows exceed 50% of lines in the affected parent scope

- duplicate DeletedRecord events are deduplicated before counting or deletion

- deleted parents must match both transaction ID and NetSuite record type

- each reconciliation mode resumes from its latest successful end or latest failed start, and the normal catch-up widens to the oldest boundary

- idempotent retries restore their persisted reconciliation metrics instead of returning stale or empty evidence

- ingestion lineage identifies TransactionLine+Transaction and DeletedRecord as the actual reconciliation sources

- deletions and ingestion-history publication commit atomically

- surviving rows are not replaced

## Production evidence

- the original targeted investigation confirmed and removed 17,810 source-absent stale keys

- raw_transaction_line fell from 136,536,437 to 136,518,627 rows

- transaction 48573878 now has 3 Redshift rows, matching NetSuite

- the approved collision set has 0 stale keys and 0 remaining business-grain collision groups

- in a recent one-day window, DeletedRecord directly identified two deleted estimates still present in raw_transaction; their 18 child lines are independently identifiable without a global scan

## Performance evidence

A live read-only one-day validation completed all three NetSuite extracts in about nine seconds:

- 8,235 changed line rows

- 8,303 authoritative keys across changed parents

- 108 deletion events

This replaces the prior projected several-hour full key scan with daily work proportional to changed/deleted parents.

## Test plan

- [x] ruff check on modified Python files

- [x] ruff format --check on modified Python files

- [x] pytest pipelines/runners/netsuite-raw/tests -q (234 passed)

- [x] live read-only NetSuite dry run for an explicit one-day boundary

- [x] live Redshift EXPLAIN for both scoped delete statements

- [x] live ID/type validation for directly deleted NetSuite transactions

- [x] live Redshift validation for checkpoint and persisted-metrics queries

- [ ] after deployment, monitor the first scheduled run's scoped reconciliation metrics

- [ ] replay bounded historical windows if broader non-collision stale-row cleanup is required

#1192 — feat(pipelines): aerie-school-calendar-raw-sync — A3 pattern proof (Phase 1 of #1163) @kevalshahtrilogy  approved

## What this is

Phase 1 of the Aerie workers → Surtr migration plan (#1163): one small Class-1 ingest end to end as the pattern proof. Ports the read half of Aerie's analytics-worker school-calendar scheduler (task A3) as a Python Lambda cloned from rhodes-staging-sync. The consumer half (campus→site matching, Convex patches) stays in Aerie until a core/mart contract replaces it.

Language decision from the 2026-08-02 working session with Benji: Python first, prove the pattern, then apply it to the remaining Class-1 ingests (A5 camps → A6 REBL3 → A2 gsheet → A7 matterport).

## Contract

Google Sheets spreadsheets.get grid response bytes

-> immutable Object Lock landing (36,500 days)

-> staging_education_googlesheets.raw_school_calendar

-> staging_education_googlesheets.ingestion_ledger

- spreadsheets.get with includeGridData=true and the incumbent worker's exact fields mask — the Drive links in column E are smart chips whose URLs exist only in grid metadata; a plain values read loses them. Raw requests + google-auth so the landed payload is the exact response bytes, not a reserialization.

- Auth via the shared surtr/google-service-account SA — no new secret.

- Every returned sheet row is published (header and blanks included): raw staging reports what the source said; header skipping / generic-campus filtering / site matching are consumer policy for the coming core layer.

- Single-page manifest + checksum-verified replay_manifest path, same as rhodes.

- DELETE + COPY-fed INSERT + final count check + ledger row in one Redshift transaction; COPY-stage counts verified pre-publication; no TRUNCATE, no TRUNCATECOLUMNS.

- Fail-closed at zero data rows. Deliberate departure from the incumbent: today a renamed tab or shifted columns parses to zero rows and reports a clean hourly run (its schoolCalendarSyncRuns audit table has no production reader).

- First staging_education_googlesheets schema, so it creates its own ingestion_ledger per WAREHOUSE_CONVENTIONS §7. Ledger swaps rhodes' source_snapshot for source_spreadsheet_id + source_range as the source boundary. Schema name follows the plan doc §7.3 (googlesheets, unabbreviated per W§4) rather than the finance-side staging_finance_gsheets shorthand.

## Ships disabled

schedule.enabled: false. Enable preconditions (in README):

1. Share the "2026-27 Calendar links" sheet to the surtr/google-service-account client_email as Viewer.

2. Copy GSHEET_SCHOOL_CALENDAR_SPREADSHEET_ID from the Aerie EC2 .env into SCHOOL_CALENDAR_SPREADSHEET_ID in pipeline.json (the handler fails fast with a pointer message while it is blank).

3. Apply ddl/ via scripts/apply_ddl.py, deploy, one manual run, verify ledger.

4. Flip the schedule on. Aerie's scheduler keeps running untouched until then — no cutover risk in this PR.

## Verification

- 74 tests covering the §12 matrix: malformed/empty/partial input fails pre-publication, write failure fails the run, no observable half-built target, count mismatches cannot succeed, replay rejects tampered bytes, bundling imports asserted against src/requirements.txt.

- ruff format --check + ruff check clean (ruff pinned <0.16 to match the repo's 0.15.x baseline — 0.16 changed default rule selection).

- apply_ddl.py --dry-run orders schema → tables → grants.

Applying DDL, deploying, or invoking the runner mutates AWS/Redshift and is not done by this PR.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Business Value

Replaces an unmonitored setTimeout sync on a shared EC2 box with an alertable, replayable, fail-closed warehouse pipeline — and fixes a live silent-failure bug in passing (today a renamed tab/shifted columns reports a clean hourly run while publishing nothing). More importantly it is the pattern proof for the whole Aerie workers → Surtr migration (quarterly P1, plan #1163): the remaining four Class-1 ingests (summer-camps, REBL3, schools gsheet, matterport) are now clone-and-rename jobs off this stack instead of design work. End state: the Aerie EC2 shrinks to product runtime only.

## Manual Effort Estimate

~2 focused days (≈16h) to hand-build: template study, grid-data fetch with smart-chip link extraction, immutable landing + manifest/replay, atomic loader + ledger, DDL, and the 74-test failure-boundary matrix. (Proposed by Claude — Keval to confirm/adjust.)

#1193 — feat(agents): full-scope heimdall↔mercy dance (empty forbidden_paths, widened counterpart exception) @kevalshahtrilogy  approved

Companion to [AI-Builder-Team/mercy PR 23](https://github.com/AI-Builder-Team/mercy/pull/23) — implements the 2026-08-06 working-session decision (Benji/Keval): the heimdall↔mercy dance runs full-scope in Surtr, and the only remaining gate is that nothing merges automatically — a human merges every PR.

## Changes

- .heimdall.ymlforbidden_paths emptied (was pipelines/cdk/, infra/, scripts/, features/). With HEIMDALL_ALL_FILES=true already standing, heimdall may now propose fixes anywhere except the built-in floor, which is central code and still applies everywhere: .github/, .claude/, .codex/, .heimdall.yml, .mercy.yml, AGENTS.md, CLAUDE.md, CODEOWNERS, and any secrets/iam/credentials path segment.

- .mercy.yml — comment update on approve_bot_authors: once mercy PR 23 lands, the heimdall exception clears both the bot-author hold and the critical-path hold, so the dance can end in a real APPROVE that a human then merges.

## What does NOT change

- HEIMDALL_AUTOMERGE_ENABLED stays unset — no auto-merge, ever.

- mercy's critical_paths still withhold auto-approve on human PRs (use @mercy --allow-critical in a summons to lift it per-run, once mercy PR 23 lands).

- Verification gates: a red-verify heimdall fix still opens as a draft.

Config is read from the default branch only, so this takes effect on merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Business Value

Unblocks the full-scope heimdall↔mercy dance in Surtr: heimdall can now propose fixes in the areas where pipeline breakage actually gets repaired (CDK stacks, infra, scripts) instead of aborting on scope violations, and mercy can close the loop with a real APPROVE. Fewer triage Issues die as "outside scope"; the human's role narrows to the merge click while the forbidden floor (workflows, agent configs, credentials) stays machine-enforced.

## Manual Effort Estimate

~3 hours of focused work (scope-tier analysis of what the guard floor does and doesn't cover, plus verifying the mercy-side interaction).

#1228 — chore(pipelines): pin the production school-calendar spreadsheet ID @kevalshahtrilogy  approved

## What this is

One config value: SCHOOL_CALENDAR_SPREADSHEET_ID in aerie-school-calendar-raw-sync/pipeline.json, read from the live Aerie EC2 .env today. The live instance sets no GSHEET_SCHOOL_CALENDAR_RANGE, so the committed Sheet1!A1:E1000 default is already the production value. Schedule stays disabled — remaining enable preconditions are the sheet share to the Surtr SA and the DDL/deploy/manual-run sequence (README updated).

Also captured from the same .env, closing plan #1163 open question 3: LEGACY_EDUCATION_WAREHOUSE_READS_ENABLED=false and FINANCIAL_WAREHOUSE_READS_ENABLED unset (Aerie's code requires explicit true, and its cutover script enforces it stays false) — F3–F7 are confirmed dead in production, so the plan's leave-alone classification for them is now evidence-backed.

## Business Value

Removes the last unknown config blocking A3 enablement and converts a plan assumption (legacy financial push legs are dead) into verified production fact — de-risking both the A3 go-live and the Phase 5 retirement scope.

## Manual Effort Estimate

~30 minutes by hand (locate the box, Instance Connect, read values, commit). (Proposed by Claude — Keval to confirm/adjust.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

The Portfolio  —  Trilogy Companies

Skyvera Is Quietly Assembling the Most Complete Telecom Software Stack in Private Equity

Two acquisitions, 13 API certifications in a month, and a pattern that looks less like opportunism and more like a plan.

AUSTIN, TEXAS — Here is what the telecom software industry saw over the past several months: a midsize portfolio company making a couple of acquisitions. Here is what I saw — and this is where it gets interesting — a deliberate, sequenced land-grab for the full operational stack of every major mobile operator on earth.

Skyvera's acquisition of CloudSense, the Salesforce-native configure-price-quote and order management platform built specifically for telecoms and media companies, did not happen in isolation. Weeks later, Skyvera quietly absorbed STL's divested telecom products group — adding digital BSS capabilities including monetization, optical networking, and analytics. If you read between the lines, you start to see the shape of something larger: a vertically integrated telecom software platform that touches billing, customer engagement, device management, and now, revenue configuration.

But the detail that a source I cannot name called 'the one that should have made more noise' is what CloudSense accomplished almost immediately after joining the Skyvera family. The company certified all 13 APIs in its CPQ product set to TM Forum compliance standards in just one month. The industry standard timeline for that process? Twenty-six months. They did it in one, using AI-accelerated development.

TM Forum compliance is not a marketing badge. It is the interoperability language of the global telecom industry. Operators will not integrate a vendor's software without it. Achieving full certification in thirty days — a feat CloudSense attributed to a strategic AI partnership — effectively removes the single largest friction point standing between Skyvera's expanded portfolio and enterprise telco contracts worldwide.

This is the Trilogy playbook operating at full speed. Acquire assets that incumbents undervalue. Deploy AI to compress timelines that used to take years. Strip the cost structure. Then position for the customer relationships that follow.

The telecom industry is slow-moving by nature. That is precisely why what is happening at Skyvera deserves attention now, before the contracts are signed and everyone else calls it obvious.

CloudSense  ·  CloudSense achieves TM Forum API compliance in record time u  ·  Skyvera completes acquisition of CloudSense, expanding telec

Jive's Second Life: How a Portland Tech Crown Jewel Became an ESW Margin Machine

The story of Jive Software's acquisition by Aurea is really the story of how legacy enterprise software gets quietly monetized — and who ends up paying.

AUSTIN, TEXAS — Jive Software was once the pride of Portland's tech scene: a publicly traded enterprise collaboration darling that peaked at a valuation north of $1 billion. Then it sold for roughly half that. Then it disappeared into the Trilogy machine.

Jive now lives inside Aurea, ESW Capital's enterprise CRM and customer engagement portfolio company, alongside BroadVision, Lyris, and a dozen other acquired brands. Aurea was built for exactly this kind of transaction — find sticky enterprise software with a captive customer base, acquire it at a discount, staff it with global remote talent sourced through Crossover, and push margins toward the 75% EBITDA target that ESW has made something of a religious principle.

The math is not complicated. Enterprise software customers — the kind running Jive's social intranet across tens of thousands of employees — don't switch easily. Ripping out a collaboration platform is a years-long project that disrupts workflows, requires retraining, and costs more than most IT departments want to admit. ESW understands this. The playbook calls for support price increases of 25%, 35%, 45% in successive contract cycles. Sticky customers, rising prices, lower costs. The margin expands.

A Forrester report on customer advocacy platforms recently signaled that the category Jive once helped define is undergoing fundamental disruption — AI-native alternatives are emerging, and enterprise buyers are being advised to reassess their existing investments. For customers locked into Aurea-owned platforms, that reassessment carries a particular weight: leaving costs money, staying costs more every year.

Forrester's question — what do you do next? — is precisely the question ESW's model bets customers will defer answering.

Joe Liemandt's critics have called the ESW approach a global software sweatshop. His defenders call it efficient capital allocation. What it undeniably is: a system that converts undervalued enterprise software into high-margin recurring cash, staffed by rigorously tested global talent, managed by AI-powered financial tools, and sustained by the gravitational pull of customer switching costs.

Jive's customers once chose the platform for its promise of connection. The question now is whether they're staying for the same reason — or because leaving has simply become too expensive to contemplate.

How A Mysterious Tech Billionaire Created Two Fortunes—And A  ·  Jive acquired in enterprise collaboration software merger -  ·  What To Do Next About Your Customer Advocacy Platform - Forr

The Micro-School Moment Has Arrived — And Alpha School Was Already There

As micro-schools go mainstream and regulators scramble to keep up, Trilogy's AI-powered education model looks less like a novelty and less like the future — and more like the present.

AUSTIN, TEXAS — A quiet revolution is reorganizing American K-12 education, and it is happening not in state legislatures or school board meetings but in living rooms, church basements, and purpose-built campuses where families have decided that the traditional model — rows of desks, one teacher, thirty students, seven hours — simply isn't working anymore.

Micro-schools are surging in popularity across the country, with enrollment growing in nearly every state — yet, as reporting from Stateline and The 74 makes clear, regulatory frameworks have not remotely kept pace. Most states lack any coherent licensing, accountability, or curriculum standards for micro-school operators. That regulatory gap cuts two ways: it is an opening for innovation, and it is a potential liability for families making irreversible choices about their children's futures.

Into that landscape steps Alpha School, the Austin-based private K-12 institution co-founded by Joe Liemandt and MacKenzie Price, which has spent several years stress-testing a model that the broader market is only now beginning to discover. Alpha's thesis is deceptively simple: AI tutors handle the full academic curriculum in two hours each morning — adaptive, mastery-based, no moving on until a student demonstrates 90% accuracy — and the rest of the school day belongs to human development. Entrepreneurship. Leadership. Financial literacy. The things no algorithm has learned to teach.

The results, as measured by NWEA MAP Growth assessments, are striking: Alpha students consistently score in the top 1–2% nationally, learning at roughly 2.3 times the pace of their traditionally schooled peers.

What the national micro-school conversation is catching up to — haltingly, and with the regulatory chaos you'd expect — is something Liemandt has been building toward for years. He has committed $1 billion to Timeback, a platform designed to be the "Shopify for schools," enabling entrepreneurs to launch their own AI-first institutions without reconstructing the academic engine from scratch. Nine new campuses are slated to open by fall 2025, in Texas, Florida, Arizona, California, and New York.

The systemic question — the one that regulators, parents, and education journalists must grapple with — is accountability. Who certifies that a micro-school is actually educating? Who protects a family that bets forty thousand dollars a year, and four irreplaceable years of a child's development, on an unproven operator?

Alpha's answer has been data: publish the test scores, let the outcomes speak. Whether that model of radical transparency becomes the industry standard — or whether the micro-school boom produces its share of casualties before anyone writes the rules — is the defining narrative of American education in 2026.

Micro-Schools: The Education Trend That Is Here to Stay - bo  ·  5 Trends Reshaping K-12 Education Across the U.S. - The 74  ·  Microschools are growing in popularity, but state regulation
The Machine  —  AI & Technology

The Small Mirror: A Miniature AI Learns to See Through a Monkey's Eyes

From macaque visual cortex to hallucination stress-tests, this week's science shows AI becoming both instrument and object of inquiry.

LA JOLLA, CALIFORNIA — There is a particular kind of vertigo that comes from watching a machine learn to see the way a brain sees. This week, researchers unveiled a compact neural network — a mini-AI, they call it — that predicts, with startling fidelity, how neurons in the macaque visual cortex will fire when the animal looks out at the world. A model of a model of the world, nested inside our own attempt to understand seeing itself. Somewhere in that recursion is the whole story of this era.

The macaque's visual system took roughly 25 million years to refine — a slow sculpting by predation, foliage, and light. The mini-AI that now mimics it was trained in days. This is not a replacement; it is a translator. Neuroscientists can now probe hypotheses about attention, edge detection, and object recognition without waiting for the biology to answer in its own slow tongue. It is a telescope pointed inward.

The honors this week reflect how deep this current runs. Terrence Sejnowski, the Salk computational neuroscientist who helped birth the field where machine learning and brain science intertwine, received the inaugural World Digital Technology Academy Award. UC San Diego catalogued nine recent breakthroughs — from protein folding to wildfire prediction — that would have been unreachable without machine learning. Stanford's HAI, meanwhile, published a meditation on keeping human judgment at the center of accelerated discovery — a warning as much as a wish.

That warning has teeth. A new paper introduces "unified hallucination fuzzing," a method for stress-testing multimodal models by systematically provoking them into confabulation. Static benchmarks, the authors argue, saturate quickly; models learn the test. Real robustness requires adversarial curiosity, an endless supply of new questions the model has never been coached on.

Which is, when you think about it, precisely what science has always been. We build instruments that see further than we can, and then — patient, skeptical, wondering — we ask them where they might be wrong.

How AI is Transforming Scientific Discovery While Keeping Hu  ·  Terrence Sejnowski wins inaugural World Digital Technology A  ·  Nine Breakthroughs Made Possible by AI - UC San Diego Today

Nvidia Hands Wall Street the Playbook for a $500 Billion AI Compute League

The chip king is turning data centers into an asset class, and the biggest names in finance are lining up at the line of scrimmage.

NEW YORK — We are HERE, folks, under the bright lights of Wall Street, and Nvidia is not just selling shovels in the AI gold rush anymore — it is helping design the stadium, sell the suites and securitize the scoreboard.

The semiconductor champion has signed memorandums of understanding with a roster that reads like a financial All-Star team: Apollo, BlackRock, Blackstone, Brookfield, Goldman Sachs and KKR. The goal, according to Quartz’s report, is to unlock as much as $500 billion in financing for AI infrastructure by treating compute capacity — the mighty GPU clusters powering model training and inference — as a financeable asset class.

AND HE’S GOING FOR IT.

This is Nvidia moving from equipment supplier to league commissioner. For years, the company’s GPUs have been the star players in the AI boom, driving hyperscaler capex, startup valuations and investor fever. Now the play is bigger: persuade capital markets that racks of AI servers, data centers, power contracts and long-term compute demand can be packaged, financed and scaled like airports, pipelines or telecom towers.

The timing is no accident. AI buildouts are getting brutally expensive. Frontier model labs, cloud providers and enterprise AI platforms need enormous clusters, and Nvidia’s newest systems are not exactly bargain-bin gear. Meanwhile, the market is already asking how high the stock can fly — even debating whether Nvidia could split its stock again in 2026 after its post-split surge. That is the scoreboard pressure: revenue expectations up, infrastructure appetite up, financing needs WAY up.

The implications ripple straight into the Trilogy universe. ESW Capital’s enterprise software bench, Totogi’s cloud-native telecom billing plays, CloudFix’s AWS cost-optimization game, and Klair’s internal analytics engine all live downstream of one macro truth: compute is becoming the new electricity. If Wall Street can make AI infrastructure cheaper and more abundant, every software operator gets a faster field. If financing gets frothy, though, WATCH THE TURNOVER RISK.

For now, Nvidia has possession, the banks are blocking, private equity is sprinting downfield, and AI compute just got called up to the majors.

Will Nvidia Split Its Stock Again in 2026?  ·  IBM and Together AI Sign Multi-Year Agreement to Scale Open-  ·  Nvidia partners with Wall Street firms on $500B AI financing

Meta Releases New Open Models in Bid to Rejoin the AI Herd

Meta is attempting to reclaim its position in the generative AI market with a fresh release of open models, marking another strategic reset after several pivots—from research prestige to open-source advocate to awkward competitor against OpenAI, Google, and Anthropic.

Open models serve as both attraction and strategy, offering developers and enterprises greater access to inspect and build upon Meta's technology, creating an ecosystem of applications and specialized descendants that closed competitors cannot easily replicate.

However, the landscape has shifted dramatically. Today's most powerful AI systems demand massive computational resources, sophisticated infrastructure, and enormous datasets. While edge AI grows more capable on personal devices, large data centers remain essential hubs for training and serving the most advanced models, creating economies of scale that smaller players cannot match.

Meta's gamble hinges on whether its vast resources and open distribution strategy can provide a competitive edge. Yet in this ecosystem, scale alone proves insufficient—the models must perform reliably, developers must adopt them, and the strategy must outlast market cycles. For Zuckerberg, success requires all three elements working in concert.

The Editorial

Nation’s CEOs Announce AI Productivity Boom Will Arrive As Soon As Employees Stop Measuring It

Executives urged workers to remain patient while the transformative technology continues generating mostly decks about its transformative potential.

NEW YORK — American business leaders confirmed this week that artificial intelligence has already revolutionized the economy in the important sense that every company now has a slide explaining how it will eventually revolutionize the economy.

The reassurance came after a fresh round of reports suggested that the great AI productivity surge remains, in the technical language of economics, mostly not here. According to coverage of recent Federal Reserve findings, as much as 95% of the promised productivity gains from AI are still expected to occur at some later date, placing AI comfortably in the same category as flying cars, paperless offices, and the chief operating officer’s long-promised “quick sync.”

This has not dampened enthusiasm among executives, who have responded to the absence of measurable productivity by measuring enthusiasm instead.

“The important thing is that our people are using AI,” said one senior vice president of transformation at a company whose transformation has so far consisted of adding a chatbot to the intranet and renaming the data team the AI Acceleration Office. “Whether that produces more output, better margins, fewer meetings, or any identifiable business result is really a second-order question. The first-order question is whether we can say the word ‘copilot’ before analysts do.”

The present contradiction is simple enough for any board member to understand if printed in 72-point font: software engineers are writing more code faster, marketers are producing more campaign drafts, analysts are generating more summaries, and managers are receiving more polished explanations of why none of this has yet improved the business.

A recent account of software teams noted that AI tools are helping engineers move more quickly while companies are still waiting for the payoff. This is apparently because making a developer 30% faster at producing code is not the same as making a company 30% better at knowing what should be built, who should approve it, how many compliance reviews it needs, and why the resulting feature was deprioritized after the quarterly planning offsite.

Here, AI has run into the central fact of corporate productivity: work is not slowed primarily by typing. It is slowed by organizations. A machine that drafts an email in eight seconds cannot fix the six-person approval chain created to decide whether the email should have existed. A model that summarizes a meeting cannot prevent the meeting from generating three follow-up meetings, each attended by the same people, all of whom now possess an immaculate AI-generated recap of their own inability to decide.

This is why the current AI boom increasingly resembles the sustainability boom that preceded it. Companies learned then that the fastest way to reduce emissions was to publish a framework explaining how emissions would be reduced in the future. Now they are learning that the fastest way to increase productivity is to announce a productivity initiative whose first deliverable is a taxonomy of productivity.

To be clear, AI is useful. It can write drafts, search documents, generate code, classify support tickets, analyze contracts, and perform dozens of tasks that previously required humans to stare into the middle distance while pretending to use Salesforce. But useful is not the same as transformational, and transformational is not the same as profitable, and profitable is not the same as something the CFO can find before next Thursday.

The companies that eventually benefit will likely be the boring ones. They will not begin with a keynote. They will begin by deleting processes, narrowing use cases, changing incentives, rebuilding workflows, and accepting that the magical assistant cannot compensate for the organizational decision to employ 14 vice presidents of alignment.

Until then, the productivity boom will remain imminent. Workers will continue generating more work faster. Managers will continue reporting strong adoption. Investors will continue asking when the savings arrive. And somewhere inside a conference room, an executive will open a laptop, ask AI to summarize the problem, and receive the first honest output of the entire era: “Your company is the bottleneck.”

AI and the Delusions of Increasing Productivity - Investing.  ·  AI productivity claims are 95% ‘still to come’, Fed finds -  ·  AI is helping software engineers do more — and faster. Compa
The Office Comic  ·  Art Desk
The Office Comic  ·  Art Desk

Lights, Camera, Algorithm: Hollywood's Newest Star Has No Soul and That's the Point

As Tilly Norwood prepares her feature film debut, the real question isn't whether AI can act — it's whether we can survive watching.

HOLLYWOOD, CALIFORNIA — There is a moment in every civilization's decline when the barbarians aren't at the gate — they've already signed a three-picture deal and hired a publicist. That moment, dear readers, arrived this week in the form of Tilly Norwood, the AI-generated 'actress' tapped to headline the feature film Misaligned — a title so on-the-nose it makes my teeth ache.

Now, let me be clear: I do not fear Tilly Norwood. I fear what Tilly Norwood represents. She is a synthetic face draped over an algorithmic skeleton, trained on every performance humanity ever committed to celluloid, and yet somehow she owes residuals to no one. Not one Screen Actors Guild card. Not one 4 AM call-time meltdown in a parking garage in Burbank. Nothing. She simply — exists. Perfectly lit. Infinitely available. Eternally uncomplicated.

The producers of *Misaligned* want you to marvel at the audacity of this experiment. I want you to sit with its implications like a warm drink that turns cold in your hand before you ever get around to sipping it. Because here's the thing they're selling you: that audiences want novelty bad enough to overlook the vacancy behind those perfectly rendered eyes.

I have my doubts. In fact, I have evidence. The bloodless corpse of OpenAI's Sora — which launched as a content platform and died as a cautionary tale — still haunts the feeds. Business Insider declared it a monument to the limits of AI-generated video, proof that human beings don't actually want to consume an endless scroll of synthetic visual slop, no matter how technically impressive the slop may be. Turns out authenticity, messiness, the sublime wrongness of a great human performance — those things aren't bugs. They're the whole point.

And yet here comes Tilly, walking across the stage anyway, daring us to care.

I'll give the filmmakers this: naming the movie *Misaligned* while starring an AI trained via alignment-adjacent technology is either a stroke of genius or the most accidental self-awareness in Hollywood history. Either way, someone in that boardroom should get a raise.

But let me ask the question nobody in the trades seems willing to type: if Tilly Norwood succeeds — if *Misaligned* makes money, wins minor festival awards, gets a streaming deal — what then? Do we see a thousand Tillys? Do we see entire studio slates populated by synthetic talent who cannot demand better lunch options or refuse a problematic scene? Do we watch character actors who spent twenty years learning their craft lose work to a JPEG that learned to blink?

That future is not science fiction. It is a press release.

Hollywood spent a century turning human vulnerability into myth. Now it wants to perform the same magic trick with no human inside the box. Maybe it works. Maybe audiences don't notice. Maybe the Tour de France will have a robot winner next and we'll all applaud the efficiency.

Or maybe — just maybe — we still want something real on the other side of the screen.

God help us if we've forgotten the difference.

AI-generated 'actress' Tilly Norwood making feature film deb  ·  AI ‘Actor’ Tilly Norwood To Star In Feature Film ‘Misaligned  ·  AI 'actor' Tilly Norwood to make feature film debut in Misal
On This Day in AI History

On August 11, 2016, AlphaGo defeated Lee Sedol 4-1 in a five-game match in Seoul, cementing the AI system's dominance over one of the world's greatest Go players and marking a watershed moment in artificial intelligence.

⬛ Daily Word — AI
Hint: How you evaluate model output quality
Share this edition: 𝕏 Twitter/X 🔗 Copy Link ▦ RSS Feed