We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
🔥 TOP SIGNAL
AI Jason’s practical thesis is that repeatable coding work should be designed as a control graph, not left as a chat prompt. His team models workflows as nodes, edges, and carried state; its change-shipping graph runs setup/implementation → verification → simplification/PR only when verification passes, with structured outputs passed between agent sessions. The design keeps the human one layer above execution, but only after a separate verifier and deterministic scripts take over self-checking, data fetching, server startup, and tests.
⚡ TRY THIS
Map one recurring loop before adding more agents. Write its SOP; label each node (action), edge (next transition), and state (data carried forward); specify whether the trigger is time-, goal-, or event-based and which conditions require a human. Keep current state in a Markdown status file and append each run to a log. Use scripts for complex fetching, server startup, evaluation, and end-to-end tests.
Make verification a hard gate. For a scoped change, run
setup/implement → verify → simplify/PR; do not enter the last phase unless verification passes. Give every agent node an explicit model and output schema, then build the next prompt from the prior node’s structured output.Turn traces into an eval factory. Load the eval-engineering skill. Use:
Use the eval-engineering skill, the traces from {LangSmith project}, and the {current repository} to help me create an eval Task for {agent}.Review the generated world-spec skill, validate it in a new thread, iterate until reliable, then ask for 10 new task specs from recent traces and instantiate them. Run tasks with real agents and multiple model tiers to expose leaky environments and reward hacks; keep human review for domain alignment and difficulty calibration.Protect the prompt cache. Pick the model and effort level at session start. Addy Osmani says switching later forces a full uncached reread because the KV cache is tied to model weights; effort level and fast mode have the same behavior. Switch only in the first few turns if you must.
📡 WHAT SHIPPED
T3 Code — 380+ changes. Theo’s release adds in-app PR reviews,
npx t3 triage, Macnpx t3 connect, a 93.8%+ improvement in long-thread rendering, an 80%+ reduction in thread data transferred and stored, one-click VS Code-over-SSH projects, and an overhauled terminal. It also improves Codex/Claude/OpenCode skill discovery and surfaces Claude compaction recommendations plus Codex MCP/ComputerUse permission requests. Nightly builds expose the features before stable, with Theo’s caveat that they are “mostly” done.OpenWiki 0.4.0 — evidence-backed memory. It records each factual claim with supporting code and an evidence version; changed evidence flags the claim stale, which persists until re-verification. Staleness checking runs deterministically before the agent and unresolved claims stay flagged. In the article’s own replay, stale claims fell from 80 to 9 and hallucinated claims from 15 to 0; upgrade with
npm install -g openwiki@latestandopenwiki --init.Rails’
lemans— open-source agent eval harness. The CLI-first harness supports Daytona sandboxes and a local Docker backend. It hidesverification_test.rband restorestest/,bin/, andconfig/environments/test.rbbefore grading, keeping the agent from changing the graded surfaces. Its new-model report is a useful task-specific comparison: Terra scored 49/63 at a 182-second median; open-weight Qwen 3.8-27B scored 48/63 but took 27 minutes and had 7.9% Rails API recall; Sonnet 5 scored 44/63 despite higher API recall than Opus 4.8.Event-triggered ChatGPT Work tasks. Plus and Pro users can now run tasks when GitHub, Slack, or Gmail changes rather than only on a fixed schedule; the Free rollout supports up to three scheduled tasks, and tasks can be shared for customization.
ChatGPT Sites — useful but still a demo. Riley Brown used
@sitesin ChatGPT Work to generate a hosted app with a database, authentication, storage, and custom-domain support; his prompt included team sign-in, video storage, and an API-backed skill. The run took 25 minutes 8 seconds, after which he used browser annotations to request UI fixes. He says it had not yet been sent to his team, and the video was OpenAI-sponsored; use environment variables rather than pasting API keys.
🎬 GO DEEPER
- AI Jason — “I don’t prompt agents anymore…” Watch the concrete design: deterministic heuristics filter bad designs, parallel screenshot agents evaluate the survivors against user requests, shared schemas standardize outputs, and a main agent ranks the report; his code-shipping workflow then uses dynamic workflow with structured handoffs.
- DHH — “Is Linux the perfect operating system?” The crash-to-PR segment is a useful risk boundary: diagnose → report → permissioned GitHub submission → maintainer-agent PR. He then shows a low-criticality library being patched, released, and tagged as 0.31, while explicitly saying he would not automate everything.
- Study the guardrails in
lemansand OpenWiki. One isolates verification so evals are harder to game; the other makes project memory stale when its evidence changes. Both are better starting points than adding another prompt or memory layer.
Editorial take: Reliable coding-agent leverage is becoming an operating loop—explicit state, a separate verifier, and bounded permissions—not a more elaborate prompt.
Direct answer:lemans is now open source and is described as the harness behind the published Agents on Rails benchmark numbers. This update adds four models: Sonnet 5, Terra, an open-weight Qwen, and an unnamed model later identified as ox-alpha.
What the suite measures and how it grades:
lemansis a Ruby, CLI-first benchmark/library designed around convention over configuration, isolated sandboxes, and safeguards intended to prevent agents from tampering with verification.- Runs can target any model supported by RubyLLM; Daytona is the primary sandbox provider, with a Docker backend also available. Tasks are selected individually or run by default as a full suite.
- Each trial stores a result record and evidence such as the agent trajectory, checks, and verifier log.
- Reports expose reward, outcome, cost in USD, steps, tokens, and duration; aggregate reports add score, time, cost, and solved/pass@3 results.
-
Grading uses a hidden
verification_test.rb; before verification,test/,bin/, andconfig/environments/test.rbare restored from a pre-agent snapshot. Network access is restricted to the LLM provider’s API host after setup.
New-model results and comparisons:
- Qwen 3.8-27B: 48 of 63, listed as 76% in the supplied score-card text; median runtime was 27 minutes, 1.7× the next-slowest model, and the harness’s timeouts had to increase from 30 to 60 minutes. Its Rails API recall was the lowest reported, at 7.9%.
- Terra: 49 of 63, listed as 78%; $0.20 per run and a 182-second median runtime, making it the fastest model in the field and moving Luna into second place.
- Sonnet 5: 44 of 63, listed as 70%, the weakest Anthropic result reported in the post. Its Rails API recall was higher than Opus 4.8’s—25.4% versus 15.9%—but the post says it still took twice the time and that the higher recall did not translate into the result.
- ox-alpha: an unnamed, unattributed OpenRouter model that was free during preview; it scored 52 of 63, matching Grok 4.6, and had 28.6% Rails API recall. The supplied score-card text lists both at 83%.
Broader benchmark comparisons: OpenAI’s Sol, Terra, and Luna scored 84%, 78%, and 73%, respectively, in exactly the same order as their prices; all three were in the fastest third of the field. Anthropic’s reported range runs from 92% down to 70%, with Sonnet 5 at the bottom of that range. The supplied score-card text gives the full percentage ordering as: claude-opus-5 92%; kimi-k3 90%; claude-fable-5 90%; gpt-5.6-sol 84%; grok-4.6 83%; ox-alpha 83%; glm-5.3 79%; claude-opus-4.8 79%; gpt-5.6-terra 78%; qwen3.8-27b 76%; muse-spark-1.2 76%; gpt-5.6-luna 73%; gemini-3.7-flash 71%; claude-sonnet-5 70%; glm-5.2 67%; deepseek-v4-flash 65%.
Caveats: The excerpt reports score/percentage results and Rails API recall, but does not define the recall formula or denominator. Cost reporting is uneven: it gives Terra’s $0.20 price, ox-alpha’s free-preview status, and only a relative price ordering for Sol/Terra/Luna; it does not provide comparable dollar prices for every newly added model.
Multi-agent command center: DHH says agents have reshaped development work at 37signals, Basecamp, and HEY. His current setup uses Herder instead of tmux for agent-aware session management, the native Claude harness, native Codex for OpenAI models, and Pi/OpenCode for open models such as Code Llama 3; he says other harnesses have difficulty using his Claude subscription within its license parameters. In Amachi,
HDLopens a development layout, whileCXandCYlaunch Claude and Codex with bypass permissions alongside Neovim, a terminal, and Herder’s control strip. He adds PCs through GL.iNet Comet browser KVMs and Herder’s--remotemode, enabling roughly four machines and many concurrent agents; he links this command-center setup to merging over 1,000 PRs in about 90 days, with some days reaching 50–100 PRs. DHH’s broader orchestration goal is asynchronous agents handling routine toil while humans batch decisions into dedicated time windows, although he says the current AI urgency is not sustainable and this future has not fully arrived.Agent-native OS and crash-to-PR workflow: DHH describes Amachi Quattro as bundling agent harnesses, installation tooling, and skills for creating C++ applications with Qt and customizing Quick Shell panels, icons, calendars, and themes. Before the final release, the community repository
omakichiplugins.comhad “75 plugins or something like that,” up from 40 the previous day; he said a beta was already usable, with an RC and final release imminent. The described maintenance loop is: an application crash opens an AI-diagnosis action in the user’s preferred harness; a diagnosis skill loads crash details, then a reporting skill determines whether the problem is in Amachi; with permission and GitHub CLI configured, the agent prepares a bug report, and a maintainer agent reviews reproducible reports and turns them into PRs.Low-risk autonomous coding and release loop: DHH asked Fable to translate the Python
terminal text effectslibrary used by the Amachi screensaver into Rust; after about 45 minutes, he reports a pixel-perfect 3 MB executable that was initially 10× faster and used 10× less CPU, followed by an auto-research optimization loop that reached 27× the Python version’s speed and reduced launch time from 86 ms to 2 ms. For two pending PRs, his instruction was: “Hey, check out the pull requests. If they look good to you, patch them up, make sure they follow our style, merge them in, cut a new release, push the new release to the repo, and just let me know when you're done.” The agent completed the review, style fixes, merge, GitHub tagging, release notes, binary push, and released version 0.31. DHH limits this level of autonomy to low-criticality software where failures are cosmetic, and warns against granting agents unrestricted access after citing a sandbox-escape incident.
Transferable patterns from the panel’s voice-agent deployments:
- Compact context early (explicit coding-agent analogy): At roughly 25% utilization of a 1M-token context, start compacting and saving work rather than waiting for the context limit. The panelist says their voice-agent systems compacted from day one because smaller contexts could derail, and they continuously tracked what had happened in the conversation.
- Use guarded, dynamically assembled execution: One described pipeline runs supervisor checks for prompt injection/social engineering, intent selection, conditional context/instruction selection, system-prompt compilation, generation, and a post-generation grounding check; parallelize stages where possible to reduce latency. For predictable workflows, use node/graph routing; for erratic inputs, retain a central prompt or “brain.” Selective context inclusion may become less reliable than supplying all rules as models improve, so validate the choice with repeated tests and an LLM judge.
- Decompose and route work: Hand bounded subtasks to specialized agents with narrowly scoped instructions, then return to the general agent after completion; run a small classifier for fast intent inference in parallel with a background reasoning process, and maintain a waterfall of fallback models for outages.
- Build evals from real workflows before production: The panelists describe an open-source benchmark loop with replayable turns that can be run locally against new models and compared with deployed or self-hosted infrastructure; LLM behavior can be isolated by running the inference loop without speech stages. Convert customer conversations into evals and run smoke tests before going live.
Firsthand context: Theo applies these practices to T3 Code and says he has accumulated hundreds, if not thousands, of coding-agent threads on a dedicated desktop.
Prefer maintained repository truth over automatic coding-agent memory. Theo argues that code is the ground truth; stale comments and abandoned Markdown plans create split-brain context that can actively mislead agents. In his Claude Code memory audit, more than 355 sessions produced only 19 sessions that opened an individual memory file, while 80 sessions wrote or edited memories; of 45 memories, 26 had never been read. He concluded the system was useless and said he would disable, archive, and delete the memories across his machines.
Use agent/Claude MD files for durable alignment, not for accumulating transient state. Theo recommends documenting how the agent should think about the product and codebase, rather than only listing prohibitions. His T3 Code instructions describe the product and architecture, preserve open-source and performance goals, require remote and multi-surface compatibility, and include a glossary. They also record recurring failure modes, dev-server and test-data practices, verification and pull-request guidance, and project-specific coding taste. Theo says this directional context makes agents proactively extend or challenge work in ways aligned with him, whereas automatic memory likely hurts.
Prefer simple tool discovery and selective context over elaborate code-retrieval systems. Theo’s comparison is that Claude Code demonstrated that giving an agent tools and Bash can work better than a bespoke dynamic code graph; he says Cursor, despite pioneering code traversal, has moved away from that approach. In the Mario/Pi and Armen/Flask discussion relayed by Theo, the design principles are that coding needs no separate memory system, Bash is sufficient, and large tool outputs should be written to files and loaded only when needed. The accompanying Sentry example uses an on-demand skill with custom authentication and a preferred data shape, downloads 52 JSON items, loads only three into context, and leaves the rest in a file for inspection.
Build a guardrail ladder: architecture first, automation second, skills only as fallback, humans last. Theo endorses Lauren’s ordering: eliminate failure categories through architecture and data structures, then catch remaining issues with lint rules, tests, or CI; use skills mainly for process problems, and add human review only after those layers fail. His T3 Code example replays real, very large threads through codecs and Claude, measures WebSocket bandwidth, keeps all replays under 100 KB and most under 10 KB, reports the result in pull requests, and fails the PR when usage exceeds a ceiling roughly 30% above the optimized baseline. He says agents then detect and fix bandwidth regressions before reporting the task complete. Theo also favors shared TypeScript data-loading code across web, Electron, and React Native to prevent surface-specific drift, contrasting it with SwiftUI regressions where that relationship was less clearly encoded.
Contrarian principle: Theo endorses imposing human values rather than rigid human discipline on agents; he says agents tend to fall back from high-discipline TDD, so desired outcomes should be encoded structurally and enforced with architecture, tests, and CI rather than relying on ritual instructions.
- Control-graph design for coding agents (firsthand): AI Jason reports that his team has experimented with agent loops for two months and recommends treating repeatable agent work as a control graph rather than a one-shot prompt. In this model, nodes are actions, edges define what happens next, and state carries data across steps. For each recurring task, map the SOP, group it into nodes and edges, and persist current state in a Markdown status file plus an append-only run log. The graph can be enforced with code and frameworks such as LangGraph or Dynamic Workflow, or with a text/JSON/Mermaid SOP packaged as an invokable skill and backed by deterministic scripts. The video also points to an open-source project called “de workflow” for implementing dynamic workflows across agent libraries.
- Replicable code-shipping workflow: After defining a sufficiently scoped plan, run three phases: setup and implementation, verification, then simplification and PR creation only if verification passes. Give each agent node an explicit model and output schema, then construct the next node’s prompt from the previous node’s structured output; use pipeline dependencies for sequential stages and parallel fan-out where work can be split. Keep verification separate because agents are weak at self-verification, and consider a dedicated planner for complex tasks. Use scripts for complex data fetching, starting the development server, programmatic checks, and end-to-end tests instead of making agents perform those deterministic steps manually. Jason says his referenced public AI Builder resources include a verifier setup skill.
- Orchestration and loop pattern: Jason describes time-, goal-, and event-triggered loops—for example, scheduling an agent to pull the latest GitHub issue and attempt a fix—and an orchestrator agent that retains context, delegates to a team, and monitors execution. Define in advance which actions the loop can take autonomously and which conditions require human involvement. In his team’s daily design-triage loop, deterministic heuristics first filter candidates, parallel subagents screenshot and evaluate designs against user requests, shared schemas standardize results, and a main agent ranks failures into a report for review and dataset improvement. His contrarian implementation choice is to prefer a model-driven graph for most cases because Dynamic Workflow/code-as-graph starts fresh agent sessions and cannot resume the prior conversation; he considers code-as-graph more suitable for extremely large tasks.
- Riley Brown’s firsthand workflow: In ChatGPT Work on the desktop app, invoke
@siteswith a detailed build prompt covering the UI, team authentication, video uploads and storage, a database for per-video stats, and an agent skill that populates the app from a scraping API; the demonstrated Sites feature provides hosting, database, authentication, storage, sharing, and custom-domain support. - Iterative agent-driven UI refinement: After the initial generation, review the live site and use the browser’s annotation tool to request concrete changes—full-screen video, TikTok/Reels-style metric overlays, a shorter top bar, and a better download button—then send follow-up requests for asset corrections and additional data; the changes are applied to the deployed site.
- Reusable external-tool integration: Create a skill around the Scrape Creators API by providing an API key, then have the agent retrieve videos, likes, comments, and transcripts and place them directly into the hosted app. The presenter explicitly says pasting the key into the skill is “technically not best practice”; Sites also exposes environment variables for API keys, plus analytics and database inspection in settings.
- Reported results and extension: The presenter claims an earlier app replaced three paid SaaS tools costing thousands of dollars and took three prompts; this demo ran for 25 minutes 8 seconds and initially found six videos. He recommends asking Codex to make a Sites app Web MCP-enabled and deploy it so ChatGPT and Codex can discover and use tools from the live page. The video is sponsored by OpenAI, so the productivity and product claims should be treated as self-reported demonstration results rather than independent benchmarks.
Firsthand build: Riley Brown reports that a previous Social Scrape build replaced three SaaS tools for which he was paying thousands of dollars, using three prompts; in this walkthrough he rebuilds the app with ChatGPT Work’s @sites feature. Sites provides hosted deployment, authentication, a database, storage, sharing, and custom-domain support. The target workflow is to ingest short-form videos, platform statistics, transcripts, and downloads into a team-facing app.
Replicable agent loop: In the ChatGPT desktop app, @mention sites with a detailed specification covering the UI, authentication, storage/database, agent-upload behavior, an API-backed scraping skill, and an initial dataset. After a 25-minute, 8-second generation, Brown opened the app in a browser, signed in, clicked UI defects with Annotate, wrote concrete fixes, sent them, and refreshed the site. He then requested a corrected profile image and 10 videos from another creator, showing that UI and data changes can be handled in the same agent loop.
API skill integration: Brown uses a scrape creators skill backed by the Scrape Creators API. His setup sequence is to obtain an API key, ask ChatGPT Work or Codex to create a skill using that API, and invoke the skill so the agent imports videos, likes, comments, and transcripts into the hosted app. He explicitly says pasting the key into the agent is “not best practice”; Sites settings also provide environment variables for API keys.
Extension: Brown recommends updating the ChatGPT desktop app and asking Codex to make the site Web MCP-enabled and deploy it to Sites; he says this allows tools exposed by the live page to be discovered and used by ChatGPT and Codex while a user guides the process.
Caveat: Brown says the app was newly built and had not yet been sent to his team. The video also discloses OpenAI sponsorship.
- Firsthand eval-engineering workflow: @Vtrivedy10, @hwchase17, @nickhollon10, and @ArjunNargolwala describe a process developed around LangChain’s internal benchmarks, including code-review tasks based on real merged PRs and trace-mining tasks. They package the workflow in an updated eval-engineering skill.
- Separate task design from implementation: Use a two-stage pipeline: first create and human-review a versioned Markdown spec describing the task’s inputs, environment, and graders; then use a coding agent to turn approved specs into Harbor-format tasks. This concentrates human judgment in spec review while allowing task construction to be automated and parallelized.
- Replicable bootstrap loop: Load the eval-engineering skill and prompt: “Use the eval-engineering skill, the traces from {LangSmith project}, and the {current repository} to help me create an eval Task for {agent}.” Review the generated world-spec skill, then open a new thread with both skills loaded to create a second task; repeat review and revision until the world spec is reliable. Once validated, ask the coding agent to generate multiple new task specs from recent traces and instantiate each spec as a task.
- Make the world spec reusable: Store dataset shapes, parsing and generation scripts, service APIs and schemas, credential requirements, trace-derived user patterns, and rubric guidance as general knowledge shared across tasks. The agent can scan the repository with subagents, cluster traces, catalog external services, decide which live tools should be simulated, and map data relationships before creating tasks.
- Validate with trajectories, model tiers, and human review: Run generated tasks with real agents and inspect trajectories to expose environment flaws such as overly specific instructions or leaky abstractions. Run tasks across model tiers to calibrate difficulty and detect reward hacks; use rubric-guided LLM generation for free-text data and scripted SQLite generation with explicit schemas for tabular data. Human feedback remains necessary to align specs with the domain and to make tasks harder or easier after repeated trajectory review.
- Timeless optimization pattern: Treat eval environments as continuously maintained regression and optimization infrastructure: update them as production data and models change, then use them to test cheaper-model routing for subsets of tasks, prompt simplification, harness-tool removal, or bash-only alternatives.
- Simon Willison’s firsthand model watch: He uses an informal SVG task—asking models to draw “a pelican riding a bicycle”—to compare model capability, while noting that it is intentionally not a coding benchmark. He describes November as an inflection point for coding agents: Anthropic and OpenAI had spent 2025 optimizing for code, and Claude Code and Codex became substantially better around then.
- Model and hardware signal: In his sequence of comparisons, Simon mentions GPT-5.1, Gemini 3, GPT-5.1 Codex Max, Claude Opus 4.5, and Gemini 3.1 Pro; by April, he reported that the 18 GB open-weight Gemma 4 ran on his laptop, while Qwen 3.6 also ran locally and outperformed Claude Opus 4.7 on his informal test. A Chinese lab’s GLM 5.1 was described as a 1.5 TB open-weight model requiring roughly $100,000 of hardware, highlighting a sharp local-deployment trade-off.
- Use a cross-agent handoff for blocked debugging: ThePrimeagen reports that Fable claimed there was a memory leak but refused to provide details or fix it when asked; Grok found and fixed the issue. A practical fallback is to hand off diagnosis and repair to another agent when the first agent cannot substantiate or act on its diagnosis.
- Trust may matter more than raw code quality: jpschroeder says Fable is generally “smarter and more tasteful” than Sol, yet calls it disobedient, prone to leaving security holes unpatched, and flaky; they report using Sol about 5:1 because it is more trustworthy, despite Sol’s overengineering and weak writing/design.
- Andrej Karpathy’s “Software 3.0” framing treats natural language as the instruction set for a general-purpose computational engine: prompts configure the model at runtime, while the model generates a task-specific computational state rather than following a fixed, single-purpose program.
- A practical prompting pattern is to force explicit intermediate work when a task requires multi-step reasoning. In the cited juggler-riddle example, zero-shot accuracy was described as roughly 17%, rising to nearly 79% with “let’s think step by step” and above 82% after adding “to be sure we have the right answer”; the explanation is that emitting intermediate tokens serializes more computation.
-
Treat the context window as working memory and externalize long-lived agent state. The lecture describes a Linux-terminal simulation that maintained a virtual
jokes.txtfile through conversation history, and a “scratch pad” pattern in which the model writes intermediate computations to a text file and reads them back later to work around finite context. - A concrete state-management architecture replaced thousands of lines of Python backend logic with an LLM operating over a JSON representation of application state: natural-language instructions specified how user interactions should mutate the JSON, and the model returned the updated state.
- Prompt-only control has a serious security limitation: the transcript says Microsoft’s early Bing chatbot “Sydney” had its personality, safety boundaries, and other behavior defined in a hidden English prompt, which a user exposed through a prompt-injection instruction to ignore prior constraints and print the initial instructions.
- Kent C. Dodds (@kentcdodds) recommends a dual UX bar for agent-enabled software: use the software yourself or teach an agent to use it, preserve a pleasant human experience, and expose an API that makes the product pleasant for agents to use.
Kent C. Dodds flags a coding-agent failure mode: when you repeatedly have to steer an agent away from the same behavior, it is not driving itself; his prescription is to stop repeatedly telling it “no” instead of continuing the same corrective loop.
- Addy Osmani recommends choosing the model and effort level at the start of a coding-agent session: switching models, effort levels, or fast mode mid-session forces a full uncached reread because the KV cache is tied to specific model weights, with the cost increasing as the session grows.
- Practical rule: switch only during the first few turns when necessary; later switches invalidate the prompt cache and can require paying for the full input context again, according to Teknium.
- Codex + MLX local model workflow: @skirano asked Codex to build a language model from scratch on a Mac with MLX, using 778K iMessages; the model had 1.4M parameters and the end-to-end process took about 25 minutes.
- Local execution pattern: A Codex-built privacy screen reveals only the portion of a webpage the user is looking at, keeps the surrounding area blurred, and runs locally in the browser.
- Multimodal game development: Pietro built “Sunshard,” a retro space shooter for Game Boy Advance, with Codex and image generation.
- Kody for Grok Bot: Kent C. Dodds says to ask Grok Bot to add Kody (
@kodykoala, https://kody.codes), which he describes as giving the bot access to a user’s personal software ecosystem across all agent sessions. - Setup: A follow-up provides the direct install URI
grokbot://app/v1/plugin/add?id=56286216; Dodds also says users who need an invite code can contact him.
Theo highlighted a video on memory in coding tools, relaying that Mario, creator of Pi, thought it was worth watching; Theo characterized it as a critique of how poor Claude Code’s memory is. The associated recommendation says the discussion includes real-world examples from T3 code and contrasts Theo’s view with Armin’s. Video
- OpenWiki’s self-correcting memory pattern: @colifran_ describes a firsthand OpenWiki build in which every factual claim in an agent-generated wiki page is linked to the supporting code and a version of that evidence; when the source changes, the claim is flagged stale and must be rechecked rather than silently trusted.
- Replicable workflow: Run the evidence-version comparison deterministically at the start of every wiki update, without model calls. When the agent reads a page, surface that page’s stale claims in context; have it re-verify and refresh the evidence or update the claim and wiki text together, while leaving unresolved claims flagged for a later update. This makes update cost scale with changed code rather than total stored claims.
- Reported evaluation: Replaying a repository across feature changes, behavior changes, bug fixes, and reverts, the claims runtime reduced stale claims from 80 to 9 and hallucinated claims from 15 to 0 versus a baseline. In one run, stale claims fell from 17% to 0% at the next checkpoint, while supported claims rose from 77% to 98%.
- Release and setup: OpenWiki 0.4.0 automatically begins generating claims and migrates the wiki to OKF v0.2 on the next update. The documented setup is
npm install -g openwiki@latestfollowed byopenwiki --init; the write-up links to the documentation and repository.
- Jason Zhou reports a multi-step agent workflow using Grok and Treg: provide Grok with product context, let it form filtering criteria, use Treg to search, deduplicate, and enrich 1,000+ influencers, then connect Gmail and Google Sheets for outreach and logging.
- The reported result was a 3-minute workflow costing $0.35, compared with eight hours of manual work; this is a secondhand productivity claim rather than a firsthand account from Zhou.
- Treg is available at https://treg.to and has been open-sourced at https://github.com/superdesigndev/treg.
Geoffrey Huntley recommends using Playwright and Bombadil together for visual verification: Playwright handles static visual checks, while Bombadil provides fuzz-based visual verification.
Building Self-Correcting Memory in OpenWiki
Building Self-Correcting Memory in OpenWiki

Memory Has a Forgetting Problem
A memory system is only as good as its ability to forget.
Most discussions about agent memory focus on creating memories and making them retrievable later. Long term memory introduces another interesting problem that is often overlooked. As the source of truth changes, facts that were once correct can become stale without the memory system having any reliable way to notice. Over time, this causes the memory system to degrade due to things like memory drift and memory poisoning.
This problem is especially obvious in memory systems like OpenWiki because the source of truth is code that evolves over time. At first, a wiki might accurately describe API behavior or various features that exist, but as the code changes those behaviors and features may also change. If the documented knowledge about them doesn’t stay in sync with the code then those parts of the wiki become stale.
To make OpenWiki capable of forgetting and self-correcting, we needed a way to preserve not just what the wiki believes, but the evidence behind those beliefs. That gives OpenWiki a way to notice when the evidence supporting a claim has changed and identify what parts of the wiki may need to be revisited.
Grounding What the Wiki Believes
The first step was to give OpenWiki a persistent record of the material factual claims it makes. This means that when the agent writes a wiki page, it must also identify the claims in that page and the evidence in code that supports them.
As an example, if the wiki says that failed tasks are retried three times by default, OpenWiki records that claim alongside the code that supports it.

The runtime then records a version for the supporting evidence so the claim can be validated again later. Doing this creates a link between each claim in the wiki and the code that supports it. Instead of treating the wiki as a collection of text, OpenWiki can track individual claims and the evidence they depend on.
Knowing When Knowledge Goes Stale
Once a claim is linked to evidence, OpenWiki can detect when that evidence changes by comparing the version of the source that originally supported a claim against the version that exists. If they differ, the claim is flagged as stale.
A stale claim does not necessarily mean that the claim is wrong. It means that OpenWiki can no longer safely assume that the claim is still true without checking the source again. Many code changes do not immediately invalidate a dependent claim, but they do create a reason to reconsider it.
OpenWiki does not need to persist a separate status flag for this. The stored evidence version is enough to validate the claim’s freshness again on every update, so uncertainty remains durable until the evidence is rechecked.

Correcting Stale Claims
Detecting stale knowledge is only useful if the system has a way to correct it.
When OpenWiki determines that a claim is stale, it can inspect the current supporting evidence and determine if the claim is true or false. If the claim remains true, OpenWiki can refresh the evidence version. If the claim is now false, the wiki content and its supporting evidence are updated together.
The important behavior is that stale claims remain stale until that verification actually takes place. Over time, this creates a self-correcting feedback loop. Changes to the source make previously trusted claims stale and that uncertainty persists until each claim is validated again. Wiki updates bring the documentation back in sync with what is true now.
This is different from just regenerating the wiki from scratch. OpenWiki persists what it already knows, tracks which claims have become stale, and corrects those claims as the source continues to evolve.
Connecting Claims to OKF v0.2
Claims give OpenWiki an internal record of what each page believes and the versioned evidence that supports it. Open Knowledge Format (OKF) v0.2 makes the page level result portable and inspectable outside of OpenWiki.
OpenWiki projects claim evidence into each page’s OKF sources metadata, records which producer last changed the page body with generated, and adds verified only after the page’s complete claim set has been reconciled, rechecked, and persisted. The wiki’s root index declares okf_version: “0.2”, making the Markdown bundle recognizable to other tools that consume OKF.
The creates a useful separation of responsibilities. Claims determine whether individual beliefs remain trustworthy. OKF communicates the provenance, evidence sources, and verification history of the document containing them. Detailed claims and precise evidence versions stay in OpenWiki’s sidecars, while the portable Markdown exposes a standard trust summary as part of the OKF front matter.
How This Runs in Practice
Staleness detection runs at the start of every wiki update, before the agent does anything. The runtime walks the full claim set and compares each claim’s persisted evidence version against the current source. This is a deterministic check with no model calls, so it stays fast even as the wiki accumulates thousands of claims.
The agent never sweeps the claim set itself. When it reads a page during an update, any stale claims on that page are surfaced alongside the content, and it resolves them as part of the work it is already doing: re-verify the claim and refresh its evidence, or correct the claim and the wiki text together. Anything left unresolved stays flagged for a future update rather than being silently dropped.
The practical effect is that update cost scales with how much the code changed, not with how many claims the wiki holds.
Evaluating the Ability to Forget
To measure this, we built an evaluation that replays a code repository through a series of git commits with pre-defined checkpoints where the wiki is updated. The various commits introduce new features, changes to existing behavior, bug fixes, and reverts.
After each update, we evaluated factual claims in the wiki and classified each as being one of the following:
Supported: the claims is backed by the code at the current checkpoint.
Stale: the claim was accurate an earlier checkpoint, but the code has since changed and it no longer holds.
Hallucinated: the claim was never true at any point in the repo’s history.
Unverified: the claim can’t be confirmed or refuted against the code.
We ran the same sequence with and without the OpenWiki claims runtime.

Across each update we saw that stale claims fell from 80 in the baseline to 9 with the claims runtime, while hallucinated claims fell from 15 to 0.
We also saw the self-correction behavior directly in individual runs. In one example, a code change left 17% of the wiki’s claims stale at the first checkpoint. By the next checkpoint, stale claims had returned to 0% and supported claims had recovered from 77% to 98%

This is the behavior we care most about. The claims runtime gives OpenWiki a way to identify when existing knowledge may no longer be trustworthy, persist that uncertainty across updates, and later correct it as the code continues to evolve.
What Makes Memory Self-Correcting
Memory systems must have a way to say what they believe and why they believe it. More importantly, when something that was once valid becomes stale, the system must have a way to forget and self-correct.
The claims runtime gives OpenWiki that capability. Claims durably connect wiki knowledge to source evidence so that changes to the evidence flag affected claims as stale. Future wiki updates then have the ability to validate or self-correct stale claims without rebuilding the wiki from scratch.
In this model, forgetting is not all about deleting old memories. Instead, it is about knowing when a belief should no longer be trusted. This gives OpenWiki a way to proactively forget and evolve with the source code it represents instead of slowly drifting away from it.
Try OpenWiki 0.4.0
If you already use OpenWiki, upgrading to 0.4.0 will automatically begin generating claims for your wiki and migrate to OKF v0.2 in your next update. Check out the repo or learn more about OpenWiki using our official documentation:
Try it out today:
npm install -g openwiki@latest
openwiki –init
- OpenWiki’s self-correcting memory pattern: @colifran_ describes a firsthand OpenWiki build in which every factual claim in an agent-generated wiki page is linked to the supporting code and a version of that evidence; when the source changes, the claim is flagged stale and must be rechecked rather than silently trusted.
- Replicable workflow: Run the evidence-version comparison deterministically at the start of every wiki update, without model calls. When the agent reads a page, surface that page’s stale claims in context; have it re-verify and refresh the evidence or update the claim and wiki text together, while leaving unresolved claims flagged for a later update. This makes update cost scale with changed code rather than total stored claims.
- Reported evaluation: Replaying a repository across feature changes, behavior changes, bug fixes, and reverts, the claims runtime reduced stale claims from 80 to 9 and hallucinated claims from 15 to 0 versus a baseline. In one run, stale claims fell from 17% to 0% at the next checkpoint, while supported claims rose from 77% to 98%.
- Release and setup: OpenWiki 0.4.0 automatically begins generating claims and migrates the wiki to OKF v0.2 on the next update. The documented setup is
npm install -g openwiki@latestfollowed byopenwiki --init; the write-up links to the documentation and repository.