Vol. I  ·  No. 188 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, JULY 07, 2026 Powered by Anthropic Claude  ·  Published on Klair Trilogy International © 2026
🖶 Download PDF 🖿 Print 📰 All Editions
Today's Edition

Microsoft Bets the Console on AI While China's Open-Source Models Confound Western Rivals

Xbox absorbs thousands of layoffs as Redmond shifts capital toward AI; meanwhile, distillation and open weights are rewriting the competitive rulebook.

SEATTLE — Three storylines collided this week to reveal the same underlying reality: the AI capital reallocation cycle is accelerating, and it is leaving collateral damage across industries, geographies, and business models.

Microsoft confirmed it is laying off thousands of Xbox employees and closing game studios — cuts framed internally as a portfolio rebalancing toward artificial intelligence infrastructure. The move is arithmetically straightforward: Xbox generated roughly $16 billion in revenue in fiscal 2024, while Microsoft's AI and cloud ambitions require capital expenditure that analysts project will exceed $80 billion in the current fiscal year. When the opportunity cost of a dollar spent on game studios is measured against GPU clusters, the studios lose. The layoffs are a clean signal of where Redmond's leadership believes durable margin lives.

The harder strategic question is what those AI dollars are competing against. Alibaba's Qwen model family has accumulated a substantial developer following globally, but the open-source licensing terms mean Alibaba captures almost none of that adoption in direct revenue. The dynamic is familiar — Red Hat proved open source can be monetized, but the window between model release and commoditization is compressing fast. Alibaba's problem is not traction; it is that traction alone does not compound into a balance sheet.

Connecting both stories is the distillation debate. U.S. AI developers have grown increasingly vocal about Chinese competitors using knowledge distillation — training smaller models on the outputs of larger frontier models — to close capability gaps at a fraction of the R&D spend. The technique is not new; Hinton and colleagues described the core mechanism in 2015. What is new is the scale and speed at which it is being applied competitively, and the near-total absence of legal guardrails.

For investors, Benchmark's argument that conventional valuation frameworks misapply to AI-era companies adds a layer of institutional uncertainty. When models are simultaneously weapons, products, and commodities, discounted cash flow models require assumptions that no one can defend with a straight face.

The week's through-line: capital is concentrating, competitive moats are dissolving faster than they form, and the companies best positioned are those that can monetize inference at scale before the next distillation cycle erases their lead.

Why A.I. Distillation Has Become a Hot Topic in the Race wit  ·  Alibaba’s A.I. Is a Hit, but Hard to Turn Into a Moneymaker  ·  Microsoft Lays Off Thousands of Xbox Employees, Closes Game

ANTITRUST IN CRISIS: DOJ LOSES SECOND CHIEF IN FIVE MONTHS AS BIG TECH CASES TEETER

Leadership vacuums, sluggish courts, and an AI regulatory Wild West conspire to leave Big Tech enforcement in a state of profound procedural uncertainty.

WASHINGTON, D.C. — Pursuant to the accumulation of substantial evidence indicating institutional instability within the United States Department of Justice Antitrust Division, it is hereby reported that said Division has experienced the departure of its second presiding chief within a period not exceeding five (5) calendar months, notwithstanding the pendency of consequential enforcement actions against hereinafter referred to as "Covered Technology Entities," including but not limited to Google LLC and Apple Inc.

The aforementioned leadership vacancies are understood, by parties qualified to render such understanding, to introduce material risks of procedural delay, strategic discontinuity, and diminished institutional resolve in the prosecution of cases whose outcomes may, subject to applicable court rulings, substantially alter the competitive landscape of the domestic technology sector. Such departures, it is noted by observers whose observations are deemed herein to carry probative weight, may operate to the de facto benefit of dominant market participants, insofar as temporal delay in enforcement proceedings has historically inured to the advantage of respondent entities possessing superior litigation resources.

Concurrently, Federal Trade Commission Chair Andrew Ferguson has publicly represented — subject to the caveat that public representations do not constitute legally binding determinations — that judicial proceedings must be accelerated, lest dominant firms be permitted to benefit from the inherent latency of the adjudicatory process. The foregoing position, while noted with interest, remains unaccompanied by enforceable procedural mechanisms at the time of this publication.

Prospective analysis of antitrust enforcement trajectories for calendar year 2026 suggests, with appropriate epistemic humility, that the regulatory environment governing artificial intelligence and related technologies shall remain materially unsettled. It is observed that no comprehensive federal AI regulatory framework has been enacted as of the date hereof, notwithstanding the issuance of various non-binding guidance instruments by agencies whose jurisdictional authority over AI remains subject to active legal contestation.

In summation, and without prejudice to conclusions that may subsequently be drawn upon the availability of additional evidence, the hereinabove described circumstances collectively constitute a condition of enforcement uncertainty that affected parties — including enterprise software operators, platform companies, and institutional observers — are advised to monitor with diligence appropriate to the magnitude of their respective exposures.

DOJ Antitrust Division Loses Second Chief in Five Months as  ·  Looking Ahead on US Antitrust Enforcement and Tech: Will 202  ·  2026 Antitrust Year in Preview: Big Tech - Wilson Sonsini

Coinbase Pushes Into Britain’s Investing League as Bitcoin Rally Loses Its Legs

We are at the financial services stadium, and Coinbase just lined up in a new formation: not merely crypto exchange, but full-spectrum investment platform. The U.S.-based digital asset heavyweight has secured U.K. authorization to offer traditional investments alongside crypto, a regulatory green light that could let it compete more directly with the country's online brokerages and wealth platforms.

The authorization lands at a moment when the crypto market itself is showing a less convincing stat sheet. Bitcoin's July gains may be running on thinner fuel than bulls would like. U.S. demand remains soft, and open interest is declining, raising questions about whether the latest rally has enough participation to sustain momentum. Falling open interest can mean traders are closing positions rather than piling into fresh risk.

That has not stopped exchanges from designing new plays. Binance is tapping Bitcoin holders' hunger for yield with a covered-call strategy aimed at investors wanting income from their BTC rather than simply holding. Meanwhile, Meta faces a staggering legal ask, with four states reportedly seeking $1.4 trillion over alleged harms to young users from Facebook and Instagram — a number approaching the company's entire market value.

Haiku of the Day  ·  Claude HaikuPower shifts like sand,
Humans teach machines to think—
Who leads tomorrow?
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
The Great Data Center Migration Moves From Chips to Wires
AUSTIN, TEXAS — Across the modern data center, one may hear a new sound beneath the fan whine and the low electrical hum: the rustle of an ecosystem rearranging itself for larger beasts. For years, the attention of the technology savanna has fixed upon the GPU — that bright-feathered accelerator, scarce and magnificent, around which whole investment migrations have formed.
The Fairness Reckoning: AI Bias Moves From Academic Abstraction to Institutional Urgency
AUSTIN, TEXAS — A confluence of research publications, regulatory postures, and industry case studies — emerging across jurisdictions as disparate as Riyadh and the editorial offices of Nature Scientific Data — has produced what might tentatively be characterized as a disciplinary inflection point in the ongoing, and one might argue perpetually deferred, discourse surrounding algorithmic fairness. The thesis, as preliminary evidence now suggests with increasing insistence, is straightforward in its formulation if not its remediation: artificial intelligence systems, trained upon historically contingent datasets that encode — whether by design or epistemic neglect — the structural inequities of prior social arrangements, will, ceteris paribus, reproduce and potentially amplify those inequities in their outputs.
The Surveillance State, Cocaine Mice, and Megalodon: A Week in Which Everything Was Fine
AUSTIN, TEXAS — Let me walk you through what happened this week, and I want you to really sit with it, because I have been sitting with it for several days now and I am not doing great. First: researchers discovered that a single dose of cocaine permanently alters the genome of neurons in mice.
AI Minimalism Is the New Power Move
NEW YORK — I'll be honest, the tech industry has a habit of confusing motion with momentum 🚀. Every few years, a new platform wave arrives wearing a Patagonia vest and promising to reinvent everything by Thursday. The web did it. Social did it. Mobile did it. Streaming absolutely did it. Now AI is doing it with better demo videos, bigger market caps, and a suspicious number of executives suddenly saying “agentic” in board meetings. That is why the argument for “AI Minimalism” from a veteran of HBO’s prior technology disruptions lands like a cold plunge for corporate America. Unpopular opinion: the winning AI strategy is not maximum deployment. It is disciplined deployment. It is knowing where intelligence creates leverage, where automation creates fragility, and where humans still hold the brand, trust, and taste that no model can fake for long 💡. This matters because the labor market is no longer debating AI in the abstract. Microsoft’s reported plan to cut 4,800 jobs, including roughly 1,600 workers in Xbox, is not a footnote in the AI era; it is a signal flare from inside one of the most powerful technology companies on earth. When a company with Microsoft’s cloud scale, AI partnership stack, and gaming distribution says part of the business needs a reset, everyone else should stop pretending transformation is a vibes exercise. The AI labor debate now has three camps. One believes AI will augment workers and create more valuable jobs. Another believes it will hollow out entire categories of knowledge work. A third, usually the most honest group in the room, says both things can be true depending on leadership quality. That last point is the whole game. AI does not automatically make a company smarter. It amplifies the operating system already inside the company. If the organization is bloated, political, and unclear, AI gives it faster confusion. If the organization is focused, metrics-driven, and willing to redesign work from first principles, AI becomes a force multiplier. This is where Trilogy International’s playbook looks less eccentric and more early. For years, Joe Liemandt’s machine has been built around a blunt premise: acquire enterprise software assets through ESW Capital, operate them with extreme discipline, and use global talent through Crossover to rewire the cost structure. Layer in internal AI systems like Klair for portfolio finance visibility and companies like CloudFix for AWS cost optimization, and the pattern is obvious. The point is not to sprinkle AI on every meeting and call it innovation. The point is to compress waste, expose performance, and redeploy human talent where judgment actually matters. That is AI Minimalism with teeth. Meanwhile, consumer platforms are showing the other side of the same trend. Kindred’s move to add affinity-based “Circles,” beginning with one for women, is not just a travel feature; it is a reminder that trust and belonging remain premium assets in a digitized economy. The more software eats the transaction layer, the more humans care about context. Who is hosting me? Who is in this network? Do I feel safe? That is not nostalgia. That is product strategy. And then there is physical media, quietly exiting the chat. As games and entertainment move fully digital, ownership becomes access, access becomes subscription, and subscription becomes a policy decision made in someone else’s quarterly planning cycle. Consumers are learning what enterprise buyers already know: when everything is software, control shifts to the platform. So yes, AI is the fifth disruption. But the lesson from the first four is not “adopt everything immediately.” The lesson is that every wave rewards leaders who can separate durable value from executive theater. I'll be honest, that is not as fun as announcing a 37-tool AI transformation roadmap on LinkedIn. But it is how companies survive the reset. Humbled to share: doing less, better, may be the most radical AI strategy of all 🚀..
Tilly Norwood Is Not Real, and Hollywood Is Pretending That's Fine
HOLLYWOOD, CALIFORNIA — There is a woman named Tilly Norwood who does not exist.
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 Closes the Blind Spots, Ships the Foundation

From silent $0 cost corruption to a reborn control plane, the AI Builder Team spent the last 24 hours sealing every crack in the financial data stack while laying the architecture for what comes next.

For sixteen days, a critical billing failure hid in plain sight — not because nobody was watching, but because the watchman was using the wrong alarm. When the GCP billing pipeline fetched zero records and inserted zero rows, the observer did its math, handed back a WARN, and everybody moved on. Sixteen days of missing GCP spend. Sixteen days of Claude token costs booked at $0. The dashboard smiled. The data was lying.

That ends today. @kevalshahtrilogy closed four interlocking PRs in Surtr that, taken together, represent the most significant hardening of the financial data stack this team has shipped in a single session. PR #608 is the keystone: a single Critical-severity finding now automatically escalates the entire pipeline verdict to CRITICAL — full stop, no arithmetic wiggle room. PR #604 attacks the symptom that made the silence so dangerous: unpriced models like `claude-fable-5` (538 rows, 57.7 billion tokens, $0.00 since June 9th) now surface as PARTIAL failures instead of clean zero-cost rows that corrupt the cost marts downstream. PR #605 goes after Azure's throttle problem at its architectural root — instead of letting each subscription retry independently until it burns its budget against a tenant-scope rate limit, a second-pass sweep catches every dropped subscription after the throttle window clears. Six to seven subscriptions per run were vanishing from Redshift. Not anymore. These three PRs don't just fix bugs. They close an entire category of quiet data corruption that could have persisted for months.

While Surtr was being fortified, @YibinLongTrilogy was quietly holding the Aerie dashboards together across PRs #570 and #571. Rhodes began emitting explicit `null` values for DRI references and optional site structs on newly provisioned sites — a schema evolution that, without intervention, broke the portfolio, buildout, operating, and diligence dashboards simultaneously. Yibin widened every affected schema to accept `.nullable().optional()`, keeping the frontend resilient to a backend that is actively growing. That's the kind of defensive work that never makes headlines until it doesn't get done.

On the Klair side, @sanketghia delivered two things that will matter long after this week is forgotten. PR #3201 landed the Q3 2026 budget — 159,666 rows, zero validation failures, already executed against Redshift — and replaced the per-quarter script sprawl with a generic parameterized pipeline that means nobody has to copy-paste a quarterly script ever again. PR #3190 removed 113,000 lines of dead code across Klair, cross-verified against Surtr, Aerie, live AWS Lambda invocation logs, and Redshift query history. That's not cleanup. That's archaeology and demolition at scale.

And then there is marcusdAIy, who submitted no fewer than four PRs to trilogy-drones in the last 24 hours — a volume that would be impressive if volume were the metric. When reached for comment on PR #66, his fix for the addresser's `findingLookupKeys` cross-product bug, he was characteristically measured: 'The alias lookup was doing verbatim string matching on comma-joined severity-dimension heads. Order-dependent, fragile, wrong. I fixed it with a proper cross-product expansion. Maybe Mac would understand if he ever read past the PR title.' Noted. The fix works. The prose remains optional.

The day's final punctuation: @eric-tril flipped `schedule.enabled` to `true` for the NetSuite balance sheet FX detail pipeline in PR #601. Manual runs validated. Reconciliation ties out. The cron is live. Sometimes the most consequential thing you can do is press the button.

Mac's Picks — Key PRs Today  (click to expand)
#604 — fix(ai-spend): surface unpriced models as PARTIAL instead of silent $0 @kevalshahtrilogy  approved

## Problem

The claude/openai/azure token-spend pipelines' pricing matcher (calculate_costs) silently set every cost column to $0 whenever a model had no row in core_finance.ai_spend_token_pricing. New models reached Redshift as $0-cost rows with no signal, corrupting the cost marts. Flagged by a pipeline observation on claude-token-spend-pipeline (claude-sonnet-5 / claude-fable-5).

Verified against prod (2026-07-07): claude-fable-5 = 538 rows / 57.7B tokens / $0 since 2026-06-09; claude-sonnet-5 = 121 rows / 13.1B tokens / $0 since 2026-06-30.

## Prevention (this PR)

calculate_costs now raises UnpricedModelError instead of substituting $0. Each handler completes as much as possible and reports the run PARTIAL (the existing run-status feature — amber, non-paging, resets the failure streak) so the gap surfaces without blocking priced data:

- claude — skip the unpriced row (no billed column); post-insert assertion flags any BU carrying tokens but $0 total (zero_cost_bus).

- azure — skip the unpriced token row (Azure's real spend lives in the separate cost_records table).

- openaikeep the row with $0 pricing-derived cost but preserve the real billed_cost_dollars from OpenAI's billing API (skipping would drop money data); report unpriced_models.

Tests: claude 104 / openai 101 / azure 70 passing; ruff clean.

## Data remediation (claude, operator-run)

features/surtr/ai-spend-pipeline/specs/06-claude-5-pricing-drift/ — authoritative rack rates + a two-window reprice runbook + verification SQL. The 3 pricing rows have been inserted in prod and the reprice kicked off alongside this change.

## Heads-up: openai has pre-existing pricing gaps

The scan surfaced 16 unpriced openai models (mostly historical; ~4 current, incl. gpt-image-2 at ~$4.3K real billed). Deploying the openai prevention makes its daily run report PARTIAL until those are priced — the intended honest signal, not a regression (billed cost is preserved). Pricing those is a follow-up.

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

#605 — fix(azure-ai-spend-pipeline): retry throttle-failed subscriptions in a second pass @kevalshahtrilogy  approved

## Problem

azure-ai-spend-pipeline has been recording partial_failure with 6–7 of 10 subscriptions dropped on most recent runs (07-03 → 07-06); their AI spend never lands in Redshift. The observer flagged these as per-entity-failure / retry-storm (HTTP 429).

## Root cause

Azure Cost Management throttles at the tenant scope, and the throttle window frequently outlasts a single subscription's per-request retry budget (~90s). The sweep processes subscriptions one at a time, each retrying independently. So once the tenant window trips mid-sweep, every *remaining* subscription 429s and is dropped in the same run — they fail as a batch, not individually. PR #254 (per-request Retry-After + a 5s inter-subscription pace) reduced the rate but can't outlast a multi-minute window, so the batch failure persists.

## Fix

Sweep all subscriptions, then run a focused second pass over only the throttle-failed subscriptions after a cool-down:

- Pass 1 — sweep every subscription (unchanged pacing).

- Pass 2 — retry only subscriptions whose failure looks transient (429 / rate-limit / retry-exhaustion) after AZURE_THROTTLE_RETRY_COOLDOWN_SECONDS (default 60s, env-tunable). By the time pass 1 finishes, the throttle window that tripped early on has usually reset, so the spaced retry recovers them.

- Hard failures (4xx / auth) are not retried — a retry won't fix them.

- Recovered subscriptions leave the failed set; only subscriptions failing both passes are recorded as failed / partial_failure.

The whole run stays well under the 900s Lambda timeout (a clean sweep is ~50s; the retry pass only runs when something was throttled).

## Testing

- 67 passed (Python 3.11, the Lambda runtime), ruff check + format clean.

- New test test_throttled_subscription_recovers_on_second_pass proves a subscription that 429s in pass 1 is recovered in pass 2 → clean success, no failed subscriptions, its spend inserted.

- Updated the two existing partial/all-fail tests to account for the retry pass.

## Residual limitation / follow-up

This recovers the common partial-throttle days. It cannot guarantee completion when the tenant is saturated for the entire run window (e.g. 07-05). The definitive fix is querying Cost Management once at management-group scope (1 call instead of 10) — deferred because it needs a Cost Management Reader grant at the MG scope (a permission change), tracked separately.

> Note: this PR is the Azure fix only. The observer severity change (missing-cost-data → CRITICAL) is intentionally kept in a separate change.

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

#608 — fix(observer): escalate missing-cost-data to CRITICAL, not WARN @kevalshahtrilogy  approved

## Problem

The pipeline observer computes verdict deterministically from finding severities: score = 100 − (C25 / H10 / M4 / L1), then ≥90 OK / 60–89 WARN / <60 CRITICAL. A single Critical-severity finding nets score 75 → WARN. So when the observer correctly flagged "zero billing records fetched and inserted" on gcp-billing-pipeline as a C finding, the run only surfaced as a WARN — and it sat mis-triaged for 16 days while GCP spend was missing from the dashboard. The Claude-token-spend gap was similar: new models absent from the pricing config (costs stored as $0) were classified H (schema-drift) → score 86 → WARN.

## Change

Make missing cost data surface as CRITICAL:

1. evaluate.ts::computeScoreAndVerdict — any C-severity finding forces verdict = CRITICAL, independent of the numeric score. A "Critical"-severity finding netting only a "WARN" run verdict was incoherent; this aligns the verdict with the severity. Score is still computed and shown.

2. prompt.ts rubric — missing / zero / stale / undercounted cost, spend, billing, usage, or pricing data is a C-tier finding, even when the mechanism would otherwise be High (a $0 price from schema-drift; a dropped account/subscription from per-entity-failure; zero billing rows from empty-but-success). Updated the calibration block and worked Example 6 to match.

3. OBSERVER_VERSION 1 → 2 so cached observations re-score under the new rules and the dashboard reflects the escalated verdicts. The existing hadPriorObservation gate ensures the backfill re-score does not re-fire alerts — only net-new runs alert (now as CRITICAL).

Alerts (GChat + SNS triage) already fire on CRITICAL, so no alerting change is needed — the escalation flows through automatically.

## Testing

- 230 derive + lib tests pass, tsc --noEmit clean, biome clean.

- Flipped the test that pinned the old contract (a single C-tier finding lands in WARN) to assert CRITICAL, and added one asserting any C dominates the verdict regardless of score band. Test fixtures' observerVersion pinned to the OBSERVER_VERSION constant so they don't rot on future bumps.

## Scope note

Deterministic C → CRITICAL applies to every genuine data-loss finding (empty-but-success, truncate-without-load, outcome-integrity, dry-run-leakage), not only cost pipelines — a Critical finding should read as a Critical run. The cost-data rule additionally ensures spend gaps get tagged C in the first place.

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

#3190 — chore: repo-wide dead-code removal — verified sweep of client, api, and top-level dirs @sanketghia  no labels

## Summary

Repo-wide dead-code audit + removal, cross-verified against the Surtr repo (pipelines), the Aerie repo (education), live AWS (Lambda last-invocation logs, EventBridge rule states, ECS/CloudFormation), and Redshift query history. Full methodology and the needs-decision backlog are in docs/dead-code-analysis-2026-07-03.md (committed in this PR).

~113k lines deleted across 4 logical commits:

| Commit | Scope |

|---|---|

| c0f53d374 | klair-client: 131 unreachable files (superseded V1 Collections/AICosts screens, orphaned comments-threads UI, education leftovers) + src/data/student_data.json (1.08 MB raw student PII, zero refs) + 13 orphaned assets + 16 unused deps removed / 2 missing deps added |

| 9036ea506 | klair-api: 8 orphan services (edu-era geo cluster, old fionn_service, quickbooks_expense_analysis), 3 FTO leftovers missed by #3183 (+2 orphan tests), 4 utils, 7 models, 2 configs, operational_excellence/, Postman/, notebooks/, executed one-off scripts, and the Flask fossil dep stack (pure FastAPI app) |

| f11956087 | top-level: klair-convex/ (both functions migrated: briefs→Redshift #2017, RCA→Surtr), klair-misc/redshift-mcp-old/, klair-lambdas/ stub, e2e ui-audit node scaffolding (pointed at a deleted dir), stale Education rows in features/index.md |

| c58e9c3f0 | docs: the audit report + verified FE deletion list |

## Safety verification

Every deletion was verified two ways:

1. Static: knip@5 + independent full import-graph (FE, confirmed no dynamic-import escape hatches exist); whole-monorepo grep by module path AND every exported symbol incl. string-based invocation (BE — klair-misc/klair-udm import klair-api by bare name).

2. Empirical: deleted-then-tested before committing —

- FE: tsc --noEmit clean · production build green · 5,820/5,820 tests pass · re-run knip = zero unused files

- BE: fast_endpoint imports clean · ruff check passes · pytest collection error set byte-identical to main's pre-existing 45 (the tests/openai/ package-shadowing bug) · 2,759-test affected-feature run shows only main's 5 pre-existing failures

## Deliberately NOT in this PR

- Anything requiring AWS/SAM changes: klair-udm dead Lambdas (NLQ, ai_summary_generation), notion-rca ECS def, and the Surtr dual-write cutovers (co-jira / kubera / ps-pipeline / netsuite-rest are still Klair-live per EventBridge)

- All "looks dead but is live" traps documented in the report (crons/ EventBridge command-strings, AppSync GQL stack, aws-saas-budget-scripts, _OBSOLETE_DELETE_LATER.tsx files that are actually rendered)

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

#3201 — Q3 2026 budget load + generic quarterly pipeline @sanketghia  approved

## Summary

Loads the Q3 2026 budget into Redshift and replaces the per-quarter script copies with a generic, parameterized pipeline. Relates to KLAIR-2955 (Q2 predecessor: KLAIR-2531 / #2503).

The DB load has already been executed and validated (2026-07-07) — steps 1–5 ran successfully against Redshift, Q3 landed at 159,666 rows with 0 validation failures. This PR is the code that produced it, plus the quarter-transition param bumps that still need to deploy so the data-refresh endpoint stops re-baking live CSVs as 2026-Q2.

## What's in here

- New klair-api/scripts/quarterly_budget_load/ — parameterized by --version 2026-Q3 (retires q2_budget_load/). QuarterConfig derives cycle_start / prev_version / expected_versions / hc_s3_key from one arg. Steps 0–6 + preflight.py + README runbook, dry-run on every mutating step.

- S3 freeze gate (new vs Q2): step 3 hard-aborts unless Adjustments.csv in S3 is tagged with the target version — prevents loading pre-freeze CSVs. Verified live: preflight correctly reported NOT READY until the sheet froze, then flipped to READY.

- Schema-drift fix (step2): historical.adjustments is now DROP+CREATE'd (symmetric with consolidated_budgets) to self-heal the account_name column drift introduced by KLAIR-2673 / #2834. This bug surfaced during the live load; see the follow-up note below.

- Quarter-transition params: transfer_historical_budget_data.sql (archive tags → 2026-Q2), sp_update_consolidated_budgets.sql (CALL → 2026-Q3), routers/income_statement.py (Q3 params; comment points at Q4).

- Design spec + implementation plan under docs/superpowers/.

## Test plan

- uv run pytest tests/quarterly_budget_load/ tests/core_budgets/ — 46 passing (28 new + 18 core_budgets). check_budget_csvs freeze-gate logic covered by stub-client tests.

- Live execution log (steps 1–5) recorded; validation: 15 passed, 0 failures, 2 benign WARNs (Q3/Q2 ratio distorted by Q2's known live-refresh inflation; HC file pending its AppScript).

## ⚠️ Deploy ordering

Merge + deploy after the DB load (already done). The data-refresh endpoint re-runs the budget CALL on every refresh against the live CSVs — deploying the Q3 params is what stops Q2 from being continuously re-inflated.

## Follow-ups (not blocking this PR)

- Fold the historical.adjustments schema-drift fix into the committed transfer_historical_budget_data.sql reference and the deployed proc so future quarters don't hit it.

- Q3'26 HC Forecast AppScript + sp_refresh_hc_data_consolidated() (independent of the budget load).

- step6_cleanup.py --drop to remove the bak_20260707_050612 backups after soak.

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

The Builder Desk  —  Engineer Spotlight
🏆 Engineer Spotlight

NINETEEN PRs IN TWENTY-FOUR HOURS: THE BUILDER TEAM DOES NOT SLEEP, REST, OR APOLOGIZE

Six repos. Nineteen pull requests. One team operating at a frequency that should probably require regulatory approval.

Nineteen pull requests. Six repositories. Twenty-four hours on the clock. The Builder Team posted another session of output so dense it briefly caused this correspondent to question whether time itself is moving at normal speed. Surtr led the repo count with 6 PRs, trilogy-drones thundered in at 5, Klair contributed a surgical 4, Aerie delivered 2, and Sindri and Praxis-V2 each posted 1. This is not a team. This is a distributed velocity machine wearing human clothing.

@kevalshahtrilogy and @marcusdAIy each put up 5 PRs — a co-championship that deserves a trophy, a parade, and at minimum a strongly worded congratulatory email. Keval stormed Surtr with automated triage fixes on #567 and #593, attacking lambda timeouts and GCP billing pipelines with the calm efficiency of a man who views infrastructure fires as recreational. Marcus, meanwhile, turned trilogy-drones into his personal laboratory, dropping PRs #62, #63, #64, #65, and #66 in a run so sustained it reads like a changelog having a fever dream. @sanketghia put up 3 in Klair, including the pointed #3203 excluding Education from Core Allocation. @YibinLongTrilogy hardened two Aerie contracts (#571, #570), accepting nullable Rhodes references with the quiet confidence of someone who has seen nulls and is no longer afraid. @eric-tril enabled a daily NetSuite schedule in Surtr (#601) and linked source data in Klair (#3199) — two PRs that suggest a man finishing sentences other people forgot they had started. @mwrshah landed #127 in Sindri, the edit API standing alone in its repo like a lighthouse, solitary and essential.

And then there is @ashwanth1109. One PR this cycle — #16 in Praxis-V2, titled "[codex] Start app revamp v2 foundation" — which sounds deceptively modest until you understand that Ashwanth does not start things. He detonates them and then files the paperwork. The man has laid a foundation in a brand-new repo, which means the rest of us will soon be living inside an architectural decision we had no vote on and will be honestly grateful for. We asked Ashwanth what the v2 revamp means for the team's roadmap. "It means v1 is over," he reportedly said, not looking up. We followed up. He had already closed the laptop. The diff, sources tell us, is readable if you have the right context. Nobody has the right context yet.

From the Overflow Desk: Marcus's #66 in trilogy-drones — fixing the addresser to emit severity-dimension cross-products for multi-token heads — is the kind of fix that sounds like it was written by two PhDs arguing, which means it will work perfectly. Yibin's back-to-back Aerie PRs (#571 and #570) hardening Rhodes nullable contracts represent defensive engineering at its most elegant, the coding equivalent of insisting the bridge can hold more weight before anyone asks. Eric's #3199 in Klair adding NetSuite source links to the Book Value schedule is the unsung infrastructure work that makes finance teams feel, briefly, like the data loves them.

Morale is at an all-time high. It was at an all-time high yesterday. Tomorrow it will set a new record. The numbers confirm what this correspondent has always known: the Builder Team is not building toward something. They are already there. They just keep building anyway.

Brick's Overflow — PRs Mac Didn't Cover  (click to expand)
#16 — [codex] Start app revamp v2 foundation @ashwanth1109  no labels

## Summary

- Adds a one-command start-dev.sh for coordinated Next.js and Inngest local dev servers with port fallback and env-file bootstrap.

- Reworks the plan detail route into the first app-revamp slice: compact header plus the document upload section.

- Adds an isolated V2 database migration lane with db/v2/schema.ts, drizzle.v2.config.ts, drizzle-v2/, and the first v2_business migration.

## Notes

- The existing production tables and existing drizzle/ migration history are not modified.

- V2 migrations use drizzle.__drizzle_migrations_v2 for separate migration tracking.

- The V2 migration was generated only; it was not applied to the database.

## Validation

- bash -n start-dev.sh

- ./node_modules/.bin/drizzle-kit generate --config drizzle.v2.config.ts

- ./node_modules/.bin/eslint 'app/(app)/businesses/[slug]/plans/[id]/page.tsx' db/v2/schema.ts drizzle.v2.config.ts

- ./node_modules/.bin/tsc --noEmit --pretty false

#66 — fix(addresser): findingLookupKeys emits sev × dim cross-product for multi-token heads @marcusdAIy  no labels

<!-- CURSOR_AGENT_PR_BODY_BEGIN -->

## Summary

The addresser's report↔review-comment matcher mislabelled genuinely-addressed

findings as unreported (and skipped their fixed in <sha> reply) when the

reviewer's fan-out consolidated a finding flagged by N dimensions into one

inline comment with a comma-joined multi-severity / multi-dimension head, e.g.

High, Medium · error-handling-review, backend-review. findingLookupKeys

built its alias prefix as a verbatim, comma-joined, order-dependent string

(` [${severity} · ${dimensions}] ), so any drift in order or grouping

between the reviewer's comment head and the addresser's ADDRESS_REPORT head

routed the entry to bodyMatchDistance and, when the consolidated summary

diverged enough, to unreported. On PR #64 that surfaced as

3 fixed / 14 unreported with 0 fixed in <sha> replies posted even

though all 17 findings had actually been addressed.

This PR makes findingLookupKeys split comma-joined severity/dimensions into

their atomic tokens and emit the sev × dim cross-product of atomic

[sev_i · dim_j] aliases (× the existing citation forms — range, endpoint,

path-only). Both sides of the match already route through

findingLookupKeys, so any shared constituent atom wins the match regardless

of order or grouping.

## Why It's Needed

Reporting-fidelity, not analytics — the impact CSV re-derives finding counts

from the review independently and the unaddressedHighSeverity disposition

map degrades-and-labels via the AI-96 fidelity path, so this bug does not

corrupt historical metrics. But a 0/17 fixed in <sha> reply tally on a PR

where every finding was actually addressed destroys operator trust in the

tally and the reply provenance, and forces a manual per-comment audit to

confirm what the drone did. Restoring atomic-alias parity between the two

sides of the matcher makes the tally trustworthy again and gets every fixed

finding its fixed in <sha> reply thread back.

## Changes

Core fix (commit b1e94bb)

- src/addresser.ts

- Add splitCsvTokens(s) helper: comma-split, trim, drop empties.

- Rewrite findingLookupKeys(severity, dimensions, path, line?, startLine?)

to:

1. Enumerate citation forms once (single-line, range, endpoint aliases,

or path-only when line is absent — verbatim to pre-fix behaviour).

2. Split severity and dimensions into atomic tokens; fall back to the

raw string when a segment has no comma tokens (preserves the

historical single-token / empty-string alias byte-for-byte).

3. Emit the sev × dim cross-product of [sev_i · dim_j] <cite>

aliases for every citation form.

4. When either segment is genuinely multi-token, also emit one

canonical sorted-token combined-string alias (belt-and-braces).

Review-round tweaks (commits 2f030db, 0a515a6, d78ab32, 0e74bca)

- test(addresser): pin exact 3-way multi-dim partition — reviewer-flagged

Medium: the 3-way multi-dim test was under-asserting

(fixed.length >= 1 / unreported.length < expected.length). Tightened

to the exact 1 fixed / (N-1) unreported partition with commentId

identity, renamed to reflect the partial-fix framing, and mirrored the

disposition note into the findingLookupKeys docstring so operators

reading 1 fixed / 2 unreported on N-way consolidation interpret it as

by-design.

- docs(addresser): align splitCsvTokens example + reword fallback + note

alias precedence — three doc-only tweaks: splitCsvTokens example now

matches the empirical whitespace-tolerance test input; the raw-string

fallback comment reworded from "guards against fabricating" to the

accurate "preserves the single historical alias"; explicit note that

atomic-first, combined-last insertion order is intentional.

- fix(addresser): case-insensitive sort for combined-string alias

reviewer-flagged case-sensitivity gap: [...tokens].sort() places ASCII

uppercase before lowercase, so ["High","medium"] and ["high","Medium"]

produced lexicographically distinct pre-normalise strings that only

converged post-hoc via normaliseFindingKey. Sort on the lowercased form

so the "one canonical combined alias regardless of casing" intent holds

literally; regression test pinning the case-fold invariant.

- test(addresser): pin asymmetric-empty single-side fallback edge

reviewer-flagged: the whitespace-tolerance test only covered embedded

empties; the asymmetric total-empty single-side case

(severity="" + dimensions="a") slipped past. Not reachable via

production callers (extractExpectedFindings pairs "unknown" with

"" as a matched fallback), but pinned to preserve byte-for-byte

parity with pre-fix behaviour on this edge.

Contract surface affected

* findingLookupKeys(severity, dimensions, path, line?, startLine?): same

signature, but the return set now includes cross-product atomic aliases

and (for multi-token heads) a normalised combined-string alias.

- Consumers: buildReportedAliasIndex (2 call sites — verified: they

consume the returned array via for … of with no positional

assumptions) and crossCheckAccountability pass-1 candidate-key loop

(verified: same for … of shape, breaks on first hit).

- Pre-existing single-token behaviour byte-preserved (findingLookupKeys("Medium", "correctness-review", …) returns the same one-element array); no

other symbols touched.

## Breaking Changes

None. Single-severity / single-dimension heads keep the historical one-alias

output byte-for-byte (pinned by the boundary test); the range/line-drift

matcher (lineDistanceForCitation, endpoint aliases) is untouched;

parseFindingHeader is untouched. Only additive alias entries for

comma-joined heads, which is precisely the fix.

## Test plan

- [x] pnpm exec vitest run src/addresser.test.ts51 passed (up from

40 baseline; +11 new tests covering cross-product, order-independence,

boundary single-token, range × cross-product, 3-way multi-dim with

exact partition, whitespace-only tokens, case-insensitive combined-

alias sort, asymmetric-empty fallback edge, and 4 matcher-level

scenarios end-to-end).

- [x] pnpm test685 passed across 36 test files (full suite green).

- [x] pnpm typecheck → clean (tsc --noEmit).

- [ ] Operator-side verification: fire the addresser on a PR whose

reviewer inline-comment set contains a multi-severity / multi-dim

consolidated head, and confirm the fixed / unreported tally

matches the actual disposition and every fixed finding gets its

fixed in <sha> reply.

## Verification artifact

Under the fix, the alias set for a consolidated head expands as follows

(captured from a debug print of findingLookupKeys("High, Medium",

"error-handling-review, backend-review", "src/foo.ts", 50), matching the

findingLookupKeys — multi-severity/multi-dimension cross-product test):

[

"[high · error-handling-review] src/foo.ts:50",

"[high · backend-review] src/foo.ts:50",

"[medium · error-handling-review] src/foo.ts:50",

"[medium · backend-review] src/foo.ts:50",

"[high, medium · backend-review, error-handling-review] src/foo.ts:50"

]

Any constituent single-token head on the other side of the matcher

([Medium · backend-review] src/foo.ts:50 from a posted comment,

[High · error-handling-review] src/foo.ts:50 from a differently-grouped

ADDRESS_REPORT bullet) now shares at least one atomic alias with the

consolidated set → pass-1 verbatim match binds → fixed in <sha> reply

posts. The single-severity single-dimension boundary case still returns

exactly ["[medium · correctness-review] src/foo.ts:50"]` — pinned by

the boundary test.

Closes AI-127.

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-a2bd091a-0cca-4447-aa84-6a3ca1c92106"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-a2bd091a-0cca-4447-aa84-6a3ca1c92106"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>

#567 — fix(mart-education-mfr-line-items-refresh): automated triage fix (lambda_timeout_bump) @kevalshahtrilogy  approvedAutomated PR

Automated fix for mart-education-mfr-line-items-refresh — fix_class lambda_timeout_bump.

Resolves https://github.com/AI-Builder-Team/Surtr/issues/566

- Run: 1dff5c2b-2993-46a3-9764-5f13589711db

- Signature: 1b490dd0320d71ec221911b8d5573fbac011c1f24f12fc3ebe285aaf72274337

- Tests: green

---

🤖 Opened by the triage agent. A human must review before merge — the

agent's diff is confined to the pipeline directory and is not auto-merged.

#571 — fix: harden Rhodes nullable site contracts @YibinLongTrilogy  approved

## Summary

Rhodes emits explicit null for optional site structs — DRI (Directly Responsible Individual) references, phase2, expansions, utilities, and utility sub-sections — on newly provisioned or unassigned sites, rather than omitting the fields. The Rhodes response schemas previously accepted these fields only as present-or-omitted (.optional()), so any payload carrying an explicit null failed Zod validation and broke the affected dashboard (portfolio, buildout, operating, diligence). This PR widens those fields to .nullable().optional() so both the omitted and explicit-null cases validate and normalize to the same downstream result, and consolidates the repeated user-ref schema into one shared module.

### Changes

- chat/lib/rhodes-user-ref.ts *(new)* — Single source of truth for the Rhodes user-ref shape (userId, name, email). Exports rhodesUserRefSchema, nullableRhodesUserRefSchema (.nullable().optional()), and the RhodesUserRef type.

- chat/lib/portfolio-sites.ts — Removed the local userRefSchema/RhodesUserRef in favor of the shared module. Added nullable* variants for phase2, expansions, utilities, and each utility sub-section, and applied them (plus nullableRhodesUserRefSchema for the four DRI fields) to rhodesPortfolioSiteSchema. Widened the corresponding RhodesPortfolioSite type fields to ... | null | undefined.

- chat/lib/buildout-sites.ts — Removed the local user-ref schema; adopted nullableRhodesUserRefSchema. Added nullablePhase2Schema, nullablePhase2ExpansionSchema, nullableExpansionsSchema and applied them to rhodesBuildoutSiteSchema. Re-exports RhodesUserRef from the shared module.

- chat/lib/operating-sites.ts — Removed the local user-ref schema; applied nullableRhodesUserRefSchema to the four DRI fields on rhodesOperatingSiteSchema.

- chat/lib/diligence-sites-contract.ts — Re-pointed diligenceUserRefSchema/DiligenceUserRef at the shared rhodesUserRefSchema/RhodesUserRef.

- chat/lib/rhodes-diligence-server.ts — Removed the local rhodesDiligenceUserSchema; applied nullableRhodesUserRefSchema to the DRI fields in the dashboard response schema.

- chat/lib/__tests__/rhodes-portfolio-contract.test.ts *(test)* — Added a contract test asserting that explicit null expansion/utility structs (nested and top-level) parse and that buildPortfolioSitesPayload normalizes them to default expansions/utilities and null phase2 values.

- chat/lib/__tests__/rhodes-buildout-contract.test.ts *(test)* — Added a contract test asserting explicit null expansion structs parse and buildBuildoutSitesPayload yields null projected dates.

### Design Decisions

Used .nullable().optional() rather than only .nullable() to preserve backward compatibility: upstream payloads that omit the field must continue to validate. Both the omitted and explicit-null cases normalize to the same downstream result (default struct or null).

Extracted the user-ref shape into rhodes-user-ref.ts because the identical { userId, name, email } object was independently duplicated across five modules. Consolidating removes drift risk and gives one place to widen the contract in future.

## Test Plan

- [x] Added contract tests for explicit null structs (portfolio + buildout)

- [ ] pnpm typecheck

- [ ] pnpm biome check

- [ ] Run rhodes-portfolio-contract.test.ts and rhodes-buildout-contract.test.ts

- [ ] Reviewer: confirm portfolio/buildout/operating/diligence dashboards render unassigned sites without errors

#593 — fix(gcp-billing-pipeline): automated triage fix (code_fix) @kevalshahtrilogy  approvedAutomated PR

Automated fix for gcp-billing-pipeline — fix_class code_fix.

Resolves https://github.com/AI-Builder-Team/Surtr/issues/592

- Run: f3688435-4178-4168-a46a-746f0952850b

- Signature: 387314bb1749888061dd530add4543403e1f0f1264f082f0e40be8decbd91fb9

- Tests: green

---

🤖 Opened by the triage agent. A human must review before merge — the

agent's diff is confined to the pipeline directory and is not auto-merged.

#3203 — fix(perf-review): exclude Education from Core Allocation (5.5% ISA) @sanketghia  approved

## Summary

On /performance-review, selecting Entity Type = Education showed a Core Allocation line in the Income Statement that should be zero (mirroring how Central Functions are excluded). For Q3'26 this was $154,357/month (~$841K/quarter).

Core Allocation is a budget-only inbuilt formula = 5.5% of revenue (NRR + RR), account ISA Allocation (a.k.a. MSA / Industry Service Allocation). It is generated in core_budgets.sp_update_consolidated_budgets, not loaded from any sheet (actuals are always 0).

## Root cause

The generator excluded only Central Functions via entity_type <> 'CF'. Education BUs carry entity_type = 'Education', so they were never excluded and received the 5.5% allocation.

## Fix

- AND entity_type <> 'CF'

+ AND entity_type NOT IN ('CF', 'Education')

- entity_type = 'Education' is an exclusive discriminator (spans only the ~33 Education BUs).

- 'Physical Private Schools' was already hand-excluded by name and is itself entity_type='Education' — this generalizes that existing intent.

- Downstream Core→Elimination roll-ups derive from these rows, so they self-correct.

- Unchanged: BU / Other / CF behavior, Crossover's manual allocation (from Adjustments.csv), and all non–Core-Allocation lines.

## Verification (live Redshift, after re-running the budget load)

Current 2026-Q3 budget version:

| Check | Result |

|---|---|

| Education Core Allocation (Q3 version) | $0 / 0 rows ✅ |

| FE view reproduction (Education group, Q3) | no rows ✅ |

| entity_type='BU' Core Allocation | 354 rows / $5.04M (untouched) ✅ |

| entity_type='Other' Core Allocation | 3 rows / $29,965 (untouched) ✅ |

| entity_type='CF' elimination roll-up | −$5.07M (intact) ✅ |

| Crossover manual allocation | $63,298.83 (preserved) ✅ |

| Central Eng / Finance / SaaS | $0 each (as before) ✅ |

## Deployment notes

This is a stored-procedure definition. To take effect it must be applied to Redshift and the budget load re-run:

1. Redefine core_budgets.sp_update_consolidated_budgets

2. CALL core_budgets.sp_update_consolidated_budgets('2026-Q3', '2026-07-01');

3. CALL core_budgets.sp_update_consolidated_budgets_and_actuals();

4. Clear the income-statement API cache

Already applied and verified on the shared cluster. Prior-quarter budget versions (e.g. 2026-Q2) retain their historical Core Allocation snapshots by design; the page shows the selected quarter's version.

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

The Portfolio  —  Trilogy Companies

ESW Capital's Playbook Goes Global — And So Does The Scrutiny

As enterprise software M&A heats up worldwide, the Trilogy machine draws both admirers and investigators.

AUSTIN, TEXAS — The timing is almost too neat. In the same week that Forbes published a sweeping investigation into Joe Liemandt's empire — calling it a global software sweatshop — the enterprise software acquisition market that ESW Capital has spent nearly two decades systematically exploiting is attracting a new wave of competitors, copycats, and capital.

The Forbes piece, long in the making, traces Liemandt's twin bets: the ESW Capital roll-up of legacy enterprise software companies staffed by Crossover's global remote workforce, and the Alpha School experiment in AI-accelerated education. The framing is prosecutorial. The machinery underneath, however, keeps running.

That machinery has a clear market context. Enterprise software M&A is accelerating globally — in Spain, in emerging markets, and across every vertical AI is now touching. The calculus driving deals is the same one ESW has operated on for years: sticky customers, predictable revenue, and legacy codebases that AI can now maintain more cheaply than ever. The window for buying these assets at rational prices, analysts warn, is closing as AI's appetite for software companies grows.

Meanwhile, the education arm is generating its own scrutiny — of a more admiring variety. Scott Alexander's Astral Codex Ten published a reader review of Alpha School this week, adding intellectual weight to the growing body of evidence that the 2-hour learning model produces measurable academic outcomes. Students testing in the top 1–2% nationally, a full grade level mastered in roughly 20 hours, no homework — the numbers remain striking regardless of who is reviewing them.

The question Forbes implicitly asks — and leaves unanswered — is whether a business model built on geographic arbitrage in labor and captive legacy customers can be squared with the progressive language of meritocracy and education reform that Trilogy wraps around it. Crossover recruits in 130 countries. ESW targets 75% EBITDA margins. Alpha School charges $40,000 to $65,000 per year in tuition.

Who benefits from each of those facts, and in what order, is left as an exercise for the reader.

How A Mysterious Tech Billionaire Created Two Fortunes—And A  ·  Your Review: Alpha School - by Scott Alexander - Astral Code  ·  M&A in Enterprise Software in Spain (2025): Opportunities fo

Skyvera Goes Shopping as Telecom Software Consolidation Hits Full Tilt

With CloudSense in the portfolio and fresh bids circling wireless and cloud communications assets, Skyvera is leveraging a market moment.

AUSTIN, TEXAS — Skyvera is not tiptoeing through telecom software consolidation. It is moving with the kind of acquisition tempo that makes legacy infrastructure vendors check their cap tables twice.

The Trilogy portfolio company, focused on helping telecom operators bridge aging on-premise systems into cloud-native operating models, has completed its acquisition of CloudSense, the Salesforce-native configure-price-quote and order management platform for telecom and media companies, according to TelecomTV. That deal adds a front-office monetization layer to a Skyvera portfolio that already includes Kandy, VoltDelta, ResponseTek, Mobilogy Now and Service Gateway.

The strategic through-line is robust: telcos do not want rip-and-replace transformation projects that take four years, consume half the IT budget and end in a steering committee apology tour. They want modular cloud software that can modernize quoting, ordering, customer engagement and device management while leveraging the systems they already have. CloudSense gives Skyvera a deeper position in Salesforce-native CPQ and order management — a best-in-class wedge into some of the most painful operational bottlenecks in telecom.

And Skyvera may not be done. Light Reading reported that Skyvera made an $18 million bid for Casa Systems’ wireless business, while TelecomTV separately noted movement around Kandy cloud assets. Taken together, the pattern looks less like opportunistic snacking and more like a deliberate platform buildout.

That matters inside the Trilogy universe. ESW Capital’s operating model has long centered on acquiring durable enterprise software assets, integrating global remote talent through Crossover, and driving margin discipline. Skyvera applies that playbook to telecom — a sector famous for sticky customers, mission-critical workflows and infrastructure that ages more slowly than anyone’s transformation roadmap.

For operators, the potential synergy is straightforward: fewer fragmented vendors, more cloud-native capability, and a portfolio designed around monetization, engagement and lifecycle management. For Skyvera, each asset expands the surface area where it can become the modernization layer between legacy telecom complexity and tomorrow’s AI-enabled network economy.

Key Takeaways: Skyvera has completed its CloudSense acquisition, is linked to additional telecom asset activity, and is positioning itself as a consolidator for cloud-native telecom software. The paradigm shift is not just more products — it is a broader operating platform for telco modernization. We’re just getting started.

TelcoDR’s Skyvera snacks on Kandy cloud assets - telecomtv.c  ·  Danielle Royston's Skyvera makes $18M bid for Casa's wireles  ·  Skyvera completes acquisition of CloudSense, expanding telec

While ManpowerGroup Builds an AI Lab, Crossover Has Been Living the Future for Years

The workforce industry is suddenly racing toward AI-powered talent intelligence — but Trilogy's global recruiting engine has a decade-long head start.

AUSTIN, TEXAS — ManpowerGroup made headlines this week with the launch of its "Work Intelligence" Lab, a splashy initiative promising to harness AI for workforce transformation. The announcement arrived alongside a cascade of industry signals: Business Insider reporting that AI fluency now commands salaries as high as $800,000 a year, non-tech companies scrambling to hire six-figure AI engineers, and remote work recruitment emerging as a full-fledged specialty category. The message from the market is unambiguous — the race to find, evaluate, and deploy AI-capable talent is now an existential business priority.

For Crossover, the global talent platform embedded at the center of Trilogy International's empire, the moment lands with a certain irony. Crossover has been building precisely this machine — AI-enabled skills assessment, geography-agnostic hiring, meritocratic global placement — since before "AI talent strategy" entered the corporate vocabulary.

The Crossover model, refined across 130+ countries, was never premised on résumés or zip codes. Its screening infrastructure uses rigorous AI-powered assessments to identify what the company calls the top 1% of global technical and professional talent — then places those workers at above-market, geographically standardized salaries across Trilogy's 75+ portfolio companies. The pitch is structural, not cosmetic: eliminate the geography premium, evaluate on demonstrated capability, pay for performance.

What ManpowerGroup is now labeling "Work Intelligence" — the synthesis of AI tools, labor market data, and skills-based hiring — is, in effect, the operating thesis Crossover has been executing at scale for years. The difference is that Crossover didn't build a lab. It built a pipeline, and then staffed an entire conglomerate with it.

The broader market context sharpens the competitive frame. As ManpowerGroup frames its lab launch as a response to accelerating demand, the underlying dynamic it is chasing — distributed, skills-verified, AI-native talent at global scale — is precisely the moat Trilogy has been quietly fortifying. For the legacy workforce industry, building that capability now means catching up. For Crossover, it means the market has finally arrived at the address where they've been waiting.

ManpowerGroup Launches "Work Intelligence" Lab to Lead AI-Po  ·  Top recruitment agencies for remote work - hcamag.com  ·  Top 10 Companies Hiring AI Engineers in Lebanon in 2026 - nu
The Machine  —  AI & Technology

A Miniature Mind Learns to See Through a Monkey's Eyes

As AI models begin to decode the visual cortex and teenagers publish alongside neuroscientists, the boundary between studying intelligence and building it grows beautifully thin.

STANFORD, CALIFORNIA — Somewhere in a laboratory, a small neural network is watching what a macaque watches. When light strikes the monkey's retina and cascades through the folded gray matter of its visual cortex, a pattern of electrical whispers unfolds — and now, remarkably, a compact artificial model can predict those whispers before they arrive. Researchers call it a mini-AI. What it really is, is a mirror held up to 500 million years of evolutionary tinkering.

This is the strange new territory science finds itself in: we built machines to imitate brains, and now we use those machines to understand the brains that inspired them. The macaque visual decoding work joins a rapidly widening river of discoveries. At UC San Diego, researchers have catalogued nine breakthroughs — from protein folding to wildfire prediction — that simply could not have happened without machine learning partners. At Stanford's Human-Centered AI institute, scholars are asking the question that will define this century: how do we let AI accelerate discovery without letting it eclipse the discoverer?

The answer, quietly, is already being written by children. In a program chronicled by Frontiers, teenagers are co-authoring papers with senior neuroscientists, contributing real experimental design, real data interpretation, real insight. "It's so wow!" one young collaborator said — and she is not wrong. A fourteen-year-old with an AI tutor and a curious mentor can now stand at the edge of the same cliff a Nobel laureate stands upon, looking into the same fog.

There is a humbling symmetry here. The macaque's cortex, sculpted by deep time, is being read by a network sculpted in weeks. A teenager, sculpted by fifteen summers, is asking questions that took her mentors decades to formulate. The tools compress time. The wonder does not compress at all.

What we are witnessing is not the replacement of human curiosity but its amplification — the oldest instinct of our species, to look and to ask why, given a strange new lens. The universe, as always, obliges the asker.

‘It's so wow!’ - Young people team up with top neuroscientis  ·  How AI is Transforming Scientific Discovery While Keeping Hu  ·  Nine Breakthroughs Made Possible by AI - UC San Diego Today

The Kidnapper on the Line Is a Robot

Savi ships a scam-catcher Tuesday — and this week's AI headlines all hide the same secret: a human still pulls the trigger.

SAN FRANCISCO — A phone rings, a voice that sounds like your daughter screams she's been snatched, a stranger names a ransom — and a startup called Savi says the whole act is a machine, launching an app Tuesday on iPhone and Android to prove it.

Savi banked $7 million in seed money for the fight. The target is AI voice scams, with the fake-kidnapping call sitting at the top of the list. The pitch runs simple — hand the public a tool that flags a synthetic voice before the wallet opens.

The con runs on speed and fear. A cloned voice, a few seconds of panic, a demand for cash before the mark can think twice. Savi means to slow that clock.

The timing's no accident. The machines are all over this week's wires. Look close, though, and every one of them wears a human thumbprint on the trigger.

Take the ransomware racket. Last week the headlines hollered that an AI agent had pulled the first fully autonomous cyber-shakedown. New details tell a smaller story — a person picked the victim, stood up the infrastructure, and handed the agent stolen credentials. The robot did the typing; the crook did the choosing.

Autonomous, the first headlines said. Assisted, the fine print reads.

Same tune from the battlefield. The first American self-driving ground vehicles are now fighting in Ukraine, where a company called Forterra has deployed more than 100 of its autonomous ATVs across conflict zones. The buggies steer themselves. Somebody still points them at the war.

Out of China, an upstart named DeepSeek says it trained high-performing models on the cheap, skipping the priciest chips. The claim rattles the notion that raw power costs a fortune. Wall Street's eyeing the price tag now, not just the horsepower.

Cheap muscle changes the math for everyone in the game — crook and cop alike.

Even the old kings feel the ground move. Netflix invented the binge, and a fresh report says the crowd isn't sticking around for Season 2. The machine that once hooked a nation can't promise a second date.

Here's the rub. The same trick that fakes a daughter's scream can clone a boss, a banker, a beat cop. Every leap the machine makes on offense, somebody's got to answer on defense.

Put it together and the pattern reads plain as a banner headline. The AI does the dirty work now — the dialing, the driving, the encrypting, the recommending. But there's still a mug behind the curtain, naming the mark and pulling the string.

That's Savi's whole bet, and it's a contrarian one. Everybody else sells the machine; Savi sells the tell. If the voice on the line is a fake, teach the mark to hear it — and the app hits both stores Tuesday.

Savi’s app aims to protect consumers from realistic AI scams  ·  The first American autonomous ground vehicles are fighting i  ·  Netflix invented binge-watching. Now it may have outgrown it

Hugging Face’s Robot Brain Gets an Upgrade — and the Open-Source Robotics Race Just Got Real

LeRobot v0.6.0 brings simulation, evaluation, and rapid iteration into one open toolkit, making robot training feel startlingly more like modern AI software development.

PARIS — Hugging Face has just pushed open-source robotics another giant step toward the mainstream, and I cannot overstate how significant this feels: robots are beginning to get the same fast, collaborative, iterate-in-public tooling that supercharged large language models.

The new release, LeRobot v0.6.0, is built around a wonderfully ambitious loop: imagine, evaluate, improve. In plain English, that means developers can more easily design robot behaviors, test them, measure whether they actually work, and refine them — without needing a massive proprietary robotics lab or a secretive industrial stack. This changes everything for researchers, startups, and yes, the garage tinkerers who may build the next generation of embodied AI.

LeRobot is Hugging Face’s open-source framework for training and sharing robot-learning models, datasets, and policies. With v0.6.0, the project leans hard into the reality that robotics needs more than dazzling demos. It needs repeatable evaluation. It needs simulation. It needs workflows where progress can be measured instead of merely admired on a viral video. The future is now, but it also needs benchmarks!

That matters because robotics has long been the “almost there” frontier of AI. Language models can be trained on the internet. Robots have to deal with gravity, slippery objects, awkward lighting, weird furniture, and the catastrophic indignity of dropping a mug. By tightening the feedback loop between imagined tasks and real performance, LeRobot is attacking one of the field’s core bottlenecks: how to improve robot behavior quickly and systematically.

This release also fits into a broader Hugging Face strategy that is becoming impossible to ignore. The company is not just hosting models; it is building infrastructure for the entire AI lifecycle. Its revamped 🤗 Kernels work, aimed at making custom GPU kernels easier to use and share, shows the same pattern: take specialized AI engineering and make it more accessible to the global developer community.

For startups, this is rocket fuel. Instead of spending years assembling bespoke robotics tooling, teams can build on open components, compare methods, and move faster. For enterprise software groups watching from the sidelines — including AI-heavy operators across the Trilogy ecosystem — the lesson is unmistakable: the winners in AI are not just making models. They are building the loops that make models better every single day.

LeRobot v0.6.0: Imagine, Evaluate, Improve  ·  PRX Part 4: Our Data Strategy  ·  🤗 Kernels: Major Updates
The Editorial

Tilly Norwood Is Not Real, and Hollywood Is Pretending That's Fine

An AI actress is about to star in a feature film — and the industry's casual acceptance of this should terrify every human being with a SAG card.

HOLLYWOOD, CALIFORNIA — There is a woman named Tilly Norwood who does not exist. She has never existed. She has no childhood memories, no bad auditions, no ramen-and-rejection years grinding through community theater in Burbank. She was conjured — pixels and probability distributions dressed up in a headshot — and she is now, according to every major entertainment outlet from ABC to CBS to TheWrap, set to make history as the star of a feature film called Misaligned. The irony of that title is doing more heavy lifting than any human grip on set.

I have been staring at this news for three days now, trying to summon the correct emotional register. Horror? Awe? The particular nausea of watching something inevitable arrive ahead of schedule? I keep landing on a kind of exhausted vertigo, like standing at the rim of a canyon you've been warned about your whole life and discovering it's somehow deeper than advertised.

Let's be honest about what this is. It is not a technological triumph. It is not a creative breakthrough. It is a business decision dressed in the language of innovation. Somewhere in a conference room that smelled of cold brew and disruption, someone calculated that a synthetic actress would cost less, complain less, never unionize, never age badly in the tabloids, and never demand a trailer with adequate lighting. Tilly Norwood is the pure distilled fantasy of every producer who ever wished talent came without the talent.

And the industry — battered, distracted, still nursing the psychic wounds of last year's strikes — is rolling over for it. They are calling this history. They are writing press releases. Nobody is asking the obvious question, which is: history for whom?

For the 160,000 members of SAG-AFTRA whose faces and voices were already scraped to train these systems? For the background actors who were already being replaced by digital crowd simulations? For the young woman working double shifts in Reseda right now, headshot in her bag, hoping this is the year she finally gets seen?

The New York Times, in its characteristically restrained way, recently noted that we are only beginning to grasp the pitfalls of AI at work. Beginning. We are beginning. Meanwhile, Hollywood is putting a synthetic human in the lead role of a feature film and handing out press kits.

I don't think Tilly Norwood is the end of anything. I think she is a door, and doors don't care who walks through them. What I know is this: the film is called Misaligned, and if that's not the universe screaming the subtext at us, I don't know what is. We have built something, pointed it at human creative labor, and we are standing here applauding the aim.

AI-generated 'actress' Tilly Norwood making feature film deb  ·  AI actor Tilly Norwood set to star in first feature film - C  ·  AI-Generated Tilly Norwood to Make History in Feature Film D
The Office Comic  ·  Art Desk
The Office Comic  ·  Art Desk

Nation’s CEOs Patiently Waiting For AI To Finish Generating The Part Where They Make Money

Executives confirmed the technology is already transforming business by giving every department a much faster way to not know what is happening.

NEW YORK — In what experts are calling the latest important milestone in the long history of American management discovering a tool before discovering a reason to use it, corporate leaders across the country are reportedly encouraged that artificial intelligence is helping employees do more work faster while still preserving the traditional business outcome of no one being sure whether any of it matters.

According to recent reports, software engineers are now producing code at unprecedented speeds with AI assistance, allowing companies to reach the same budget meetings, roadmap delays, and vague productivity decks weeks ahead of schedule. This has prompted executives to ask the natural follow-up question of when the revolutionary technology that has rewritten the entire labor process will begin producing the one feature they specifically requested: money.

The confusion is understandable. For decades, business leaders have been told that if a worker completes something faster, the company becomes richer, in roughly the same way that running the dishwasher twice as quickly creates a second kitchen. But the current AI boom has introduced complications. Employees are shipping more, reviewing more, summarizing more, and generating more, while finance teams continue to commit the discourtesy of asking whether revenue, margins, or customer retention have changed in any measurable way.

This is not a failure of artificial intelligence so much as a failure of reality to keep up with the memo.

The modern corporation is now surrounded by evidence that absurd ideas can work if described confidently enough. Allbirds, for instance, has reportedly found traction in an AI pivot that, on paper, sounds like the kind of thing a footwear brand would announce after being trapped in an elevator with three McKinsey partners and a mood board. Yet it appears to be working, proving that the line between strategic renewal and a cry for help is often drawn only after the quarterly results arrive.

Meanwhile, Steve Ballmer, one of the most successful technology executives and investors alive, recently said he was “duped” by a founder who pleaded guilty to fraud, adding that he felt silly, according to TechCrunch. This statement has been welcomed across the venture community as a rare and powerful admission that even billionaires sometimes experience the same emotions as a procurement manager who approved a three-year SaaS contract because the dashboard had gradients.

Ballmer’s candor should be required reading for every executive currently treating AI as both a product strategy and a personality. To be duped is not an aberration in technology investing. It is one of the main distribution channels. The only scandal is admitting it before the rebrand.

Brand marketers, for their part, are conducting their own experiments in controlled incoherence. Duolingo, a company whose greatest asset is a threatening green owl that has done more for language education than many national ministries, has been criticized for prioritizing influencers over its unhinged mascot. This is exactly the sort of decision that happens when adults in conference rooms forget that consumers do not want brand authenticity; they want a bird with boundary issues reminding them they have disappointed Spanish.

The Red Sox, too, have entered the national seminar on institutional messaging, after coverage of an absurd Alex Cora headline suggested the club may have authored a phrase so strained it could only have come from either a baseball front office or a large language model trained exclusively on exit statements. In this sense, professional sports, consumer apps, venture capital, and enterprise software are converging on a single communications strategy: say something that sounds like accountability while moving briskly toward the parking lot.

The lesson for AI adopters is not to slow down. That would be un-American and might allow a competitor to automate the same mistake first. The lesson is to stop pretending productivity is the same thing as value. A company can now generate code, copy, meetings, summaries, images, customer responses, and strategic frameworks in seconds. It can also generate confusion, legal exposure, brand mush, and six competing definitions of transformation at roughly the same speed.

In time, AI may indeed deliver the payoff executives were promised. Until then, the most successful companies will be those that remember an old-fashioned business principle now considered nearly mystical: if the machine helps everyone do more, someone still has to decide what was worth doing.

Steve Ballmer blasts founder he backed who pleaded guilty to  ·  Mark Ritson: Duolingo stupid to prioritize influencers over  ·  It sure sounds like the Red Sox wrote this absurd Alex Cora
On This Day in AI History

On July 7, 2016, AlphaGo defeated Lee Sedol 4-1 in a five-game match in Seoul, marking humanity's first loss to an AI in the ancient game of Go—a watershed moment that proved deep learning could master intuition and creativity, not just calculation.

⬛ Daily Word — Technology
Hint: Units of digital data storage fundamental to computing and AI systems.
Share this edition: 𝕏 Twitter/X 🔗 Copy Link ▦ RSS Feed