Medieval castle at night with green surveillance lights along walls, a red crack visible in the shadows

1,754 Tests All Green, Then a Code Review Found 6 Assassins

Prologue: 1,754 Perfect Green Lights The team watched the test panel late on the night Aristotle v1.6.0 shipped. Green indicators lit up like dominoes. Python side: 1,166 assertions. TypeScript side: 588 checks. Total: 1,754 automated checks. All green. In code terms, that’s like having cameras and infrared sensors on every wall. A fly couldn’t sneak through without setting off alarms. The team leaned back. The system looked like an iron fortress. ...

2026-07-15 · 6 min · Alex Wang
Split architectural structure, left warm amber TypeScript tower, right cool cyan Python engine room, central subprocess bridge with five constraint pillars

One System, Two Languages: The Five Constraints Behind Aristotle v1.6's Architecture

TL;DR: Five constraints shaped the Watchdog-Intervention Bridge’s cross-language architecture. Watchdog must intercept LLM tool calls synchronously, so it runs in TypeScript. Intervention must reuse the existing reflection engine and rule system, so it stays in Python. The Bridge adds zero new infrastructure, so it uses subprocess. Communication can’t block every tool call, so batching replaces real-time streaming. MCP’s subprocess model already handles failure, so cross-language risk stays contained. Each decision was the least bad option under the circumstances. ...

2026-07-08 · 7 min · Alex Wang
Watchdog-Intervention Bridge three-layer architecture transitioning from post-mortem reflection (warm amber) to real-time interception (cool cyan)

From 'Post-Mortem Reflection' to 'Real-Time Interception': Aristotle v1.6.0's Watchdog-Intervention Bridge

TL;DR: Aristotle v1.6.0 introduces the Watchdog-Intervention Bridge, shifting from “reflect after the fact” to “intercept in real time.” A TypeScript watchdog detects 21 signal types before and after tool calls. A Python intervention layer handles 13 violation types, connected via a subprocess bridge. MCP tools expand from 10 stubs to 25 full implementations. Two known bugs remain. Open source on GitHub, MIT license. A Hypothesis Overturned From v1.0 to v1.5, Aristotle answered one question: when AI makes a mistake, how do you make it remember and not repeat it? ...

2026-07-04 · 9 min · Alex Wang
A microscope and a telescope side by side, with a dashed line between them labeled 'the invisible blank layer'

The Invisible Blank Layer

Series: Breaking to Build: TDD Process Iterations (Post 3) Post 1: What a Failed Experiment Got Right · Post 2: Using the Method to Improve the Method TL;DR: Phase 6 already does diagnostics at the integration level — drilling into each bug’s root cause. What it doesn’t do: cross-defect pattern scanning, component gap checking, execution order analysis. Those belong to Phase 7. In small systems, Phase 7 catches a few more bugs. As the system grows, those same three tasks produce something different — building test infrastructure, hardening CI rules, driving architectural evolution. Phase 7 doesn’t make architecture decisions. But it provides the scarcest input for those decisions: evidence-based problem localization. ...

2026-05-21 · 6 min · Alex Wang
A ruler measuring its own scale marks for redundancy, then trimming the excess marks away

Using the Method to Improve the Method

Series: Breaking to Build: TDD Process Iterations (Post 2 of 3) Previous: What a Failed Experiment Got Right · Next: The Invisible Blank Layer TL;DR: The TDD Pipeline taught “give principles, not steps” — but it had grown into a step-driven tool itself. I stripped the operational steps from Phases 1 through 5, keeping only principles, risk hints, and counterexamples. The model independently derived the steps I had deleted. Output quality held. The reason: Phases 1 through 5 are creative phases that need room to diverge. Removing the fixed track actually helped. The same strategy failed on Phase 6 — next post explains why. ...

2026-05-20 · 6 min · Alex Wang
An experiment dashboard where every expected metric shows red, except one gauge in the corner, glowing green

What a Failed Experiment Got Right

Series: Breaking to Build: TDD Process Iterations (first post) TL;DR: I refined Phase 6 (pre-release testing) of the TDD Pipeline from step-driven to principle-driven. The goal was better output. I didn’t get it — the refined version was worse at drilling into individual bugs and building evidence chains. But comparing the two outputs revealed dimensional differences. The refined version was better at component gap checking and cross-bug pattern scanning. Those differences pointed to a judgment call: Phase 6 doesn’t need refining. It needs a layer on top of it. That layer later became Phase 7. ...

2026-05-19 · 5 min · Alex Wang
Three objects on warm cream: a compass, a crossed-out stamp, and a blank card with a hand-drawn arrow

The Upgrade — New Template and Three Transferable Lessons

TL;DR: Before-and-after comparison of the upgraded Why Articulation template, plus three transferable lessons: give principles not examples, lock critical steps with mandatory tone, and trust the model’s self-organization. Experiment limitations included. Series: Why Make AI Articulate Why Before Acting (Article 3) Previous: A 4-Variable A/B Test — Why Positive Examples Harm Prompt Performance Recap Article 1 started from Anthropic’s alignment research: teaching a model why rather than what cut misalignment from 22% to 3% (about 7×), and achieved equivalent results with 1/28 of the data [1]. I adapted this into Why Articulation: a mechanism that forces AI to explain purpose, risks, and approach before writing any code. ...

2026-05-17 · 8 min · Alex Wang
Left: a stamp copying identical patterns. Right: freeform marks for independent thinking. Red X marks the imitation path as wrong

A 4-Variable A/B Test — Why Positive Examples Harm Prompt Performance

TL;DR: A 4-variable A/B test on Why Articulation — structure, tone, position, and examples. Positive examples made output worse. The model imitated instead of reasoning. Open-ended prompts improved quality directionally and cut tokens by 33%. Series: Why Make AI Articulate Why Before Acting (Article 2) Previous: From Anthropic’s Alignment Research to a Prompt Design Insight Where We Left Off Anthropic’s alignment research [1] landed on a sharp insight: teaching a model why beats telling it what. I took that idea and built Why Articulation into my TDD Pipeline: a mechanism that forces the model to explain its understanding before it writes any code. Early results looked good. ...

2026-05-15 · 8 min · Alex Wang
An arched gateway inscribed with WHY, two rods of different length and color on the ground

From Anthropic's Alignment Research to a Prompt Design Insight

TL;DR: Anthropic’s alignment research shows that teaching a model why works better than teaching it what — misalignment dropped from 22% to 3%. This post breaks down four experiments and distills three lessons you can use in prompt design. I ran an A/B test comparing two prompt strategies. One group got positive examples: “do it like this.” The other got no examples. Instead, the AI had to explain why a choice was correct before acting on it. ...

2026-05-14 · 7 min · Alex Wang
Six bug patterns: components correct in isolation, broken after integration, diagnostic clarity emerging from chaos

Green Tests, Broken System: Six Bug Patterns AI Left at the Integration Layer

TL;DR: Before releasing Aristotle v1.1, I found 18 bugs. Unit tests caught four (22%). The other 14 lived at the integration layer — component wiring, config propagation, process startup seams. Root cause analysis revealed six patterns: path/environment mismatch (5), registration omission (3), startup hang (2), silent failure (2), test-production path divergence (2), integration seam errors (4). The root cause isn’t harder problems — it’s AI bypassing the defenses that experience built. Implementation and review rhythms decouple, code appearance misleads quality judgment, and integration shifts from an explicit action to an implicit assumption. Includes an eight-dimension integration checklist and a 16-type bug roadmap at the end. ...

2026-05-07 · 15 min · Alex Wang