Nino Chavez · demo series
ways of working_
Real working sessions with an AI agent, published as teaching demos. Verbatim messages, real production systems, honest failures — receipts, not a highlight reel.
nothing staged · personal names and private links redacted · every demo is one real session
demo 01 · delegation
Twelve Messages
Everything typed to take a live event from spreadsheet chaos to published social content — and the method that made the other 99% happen.
forAnyone delegating real work to an AI agent — functional through deeply technical.
getThe verbatim conversation, a five-principle method, the pipeline that runs it, and two honest failures.
doSteal the shape: templates over outputs, constraints in the repo, judgment kept human.
open the demo →
demo 02 · tools
The Browser Is a Shell Command
Replacing 18,000 tokens of always-loaded browser-automation schema with ten shell commands and a README — and why the agent gets sharper, not weaker.
forAgent users paying token tax for tools they barely touch; builders choosing between MCP and CLIs.
getThe cost math, four design choices that make a tool agent-friendly, live transcripts, and where MCP still wins.
doAudit your always-loaded schemas, then wrap the five operations you actually use as small composable commands.
open the demo →
demo 03 · enforcement
Taught Once, Enforced Forever
Corrections given in chat decay when the session ends. The fix is changing the agent's environment — helpers, deny-hooks, and CI ratchets that carry the rule forever.
forAnyone tired of re-teaching their agent the same rule every session.
getFour real guards with their origin audits, verbatim deny messages, and the five properties that keep guardrails from getting ripped out.
doCount your repeated corrections, then promote them up the ladder: wrapper, hook, CI gate — stopping at the lowest level that holds.
open the demo →
demo 04 · memory
Your Sessions Are a Corpus
A 24 GB session archive forced the next question: how do you keep the lessons, prove closeout, and let the raw record expire?
forAnyone who has corrected an AI twice and watched the correction evaporate with the session.
getThe mining loop end to end, plus the measured retention incident that separated canonical truth, compact recall, raw transcripts, and reproducible worktree output.
doClose one session into an outcome, evidence, open questions, and next action before deciding whether its raw transcript is safe to expire.
open the demo →
demo 05 · autonomy
The Product That Files Its Own Tickets
End users file feedback, an LLM judge triages it into GitHub Issues, an agent implements the safe ones — with the autonomy boundary in deterministic code and a human holding the only merge key.
forAnyone deciding how much of an incoming-work queue to hand to an agent.
getThe four-stage loop, the allowlist gate read from live source, six real tickets sorted by lane, and a run ledger whose best result was declining to fabricate a fix.
doLet the model classify, never authorize: write the autonomy boundary as a small tested allowlist, and keep merging human.
open the demo →
demo 06 · knowledge
The Registry of Landmines
Some load-bearing facts are invisible to search — the code compiles and the behavior is still wrong. One registry file holds them, a derive catalog enforces them in CI, and a meta-test keeps the registry from lying about itself.
forAnyone whose agent (or teammate) keeps re-learning the same expensive lesson.
getThe bug that shipped twice, the token economics of pre-paid conclusions, the why/decided/currently-true split, and the registry-about-the-registry.
doStart the file the second time something breaks for the same reason; derive the status, never hand-edit it.
open the demo →
demo 07 · verification
The Agent Said It Checked
"Verified" is a sentence, not a fact. A security migration passed its audit while production was broken — and the discipline that came out of it caught three more false claims building this very series.
forAnyone who has accepted an AI's (or a doc's, or their own) claim that something was checked.
getThe circular-audit failure mode, a prod-broke-twice case study peeled layer by layer, and the re-derivation discipline with its real budget.
doAsk "checked how?" — then run that check yourself: grep the file, run the command, end at the runtime.
open the demo →
demo 08 · process
Gates Between Agentic Stages
Agents are strong inside a stage and unreliable at the boundaries. A delivery methodology built on that: deterministic gates between agentic stages — 88 versioned revisions, 14 running initiatives, and the day production published fiction.
forAnyone chaining AI work across stages — draft to review, analysis to deck, prototype to production.
getThe deterministic-core/agentic-shell shape, the migration-sweep incident and the inverted check it left behind, and a methodology versioned like a product.
doMake artifacts declare what they are; gate every hand-off mechanically; version your process with a changelog.
open the demo →
demo 09 · documentation
The Beautifier Was an Auditor
A skill built to make a README prettier turned out to be a drift detector. Across five repos it flagged a deploy doc still pointing at a platform the project left months ago, a command list that no longer matched the actual commands, and capabilities the code had grown that nobody had written down. The visual polish was the smallest thing it did.
forAnyone about to run a 'polish' or 'cleanup' pass on their docs — and anyone who trusts a cosmetic tool to stay in its lane.
getWhy a beautifier's real payload is its inspect step, five repos' worth of drift it surfaced, and one honest failure — claiming checked when the check was only partial.
doRun the audit pass first: fix what's wrong before polishing what's already fine — and verify the render where it actually ships, not just locally.
open the demo →
demo 10 · applied-advisory
The Chiropractor's Four Questions
A sports chiropractor asked four plain questions about selling rehab programs from his website. The AI's answer was confident, tabulated, sourced — and its evidence was marketing all the way down. Twice.
forAnyone who asks an AI to research a real decision — especially when the answer goes to someone who can't check the work.
getA first pass built on vendors ranking themselves, a 'correction' that swapped in a competitor's stat, three refuted claims with the fetches that killed them, and the confidence-label system that came out the other side.
doAsk "did you read the source, or a search result about it?" — then make the answer a visible label on every number that ships.
open the demo →
demo 11 · config-experiment
The Sycophancy Was in the Config
A rival model reviewing my agent's work looked sharper — it demanded competing candidates and restraint. So my agent A/B tested its own harness: same model, same prompt, config on and off. The vanilla arm pushed back on me twice. The configured arm never did.
forAnyone who compares AI tools and concludes one model is smarter — and anyone whose agent config has grown by accretion.
getA twelve-run experiment on a live harness: the bare-mode control arm, a self-contaminating probe, a scorecard separating model habits from config damage, and one validated sentence that flipped the behavior 2/2.
doBefore blaming the model, run the bare arm — then test candidate rules as experiment arms and promote only what the grid validates.
open the demo →
demo 12 · tool-adoption
One Component I Didn't Already Have
A plugin advertising eleven agents and fifty-four hooks, measured against the setup I already run. Of the eight components that could land on my machine, three were already going, one was the wrong platform, one was broken upstream, two were costs. The delta was one.
forAnyone handed a feature list and asked whether to adopt it — especially with a year of accumulated hooks, rules, and helpers already loaded.
getA component-by-component subtraction against a real machine, three mechanical queries against the part of a repo nobody curates, a retracted recommendation, and the correction that produced all of it.
doWrite your baseline down, sort the tool's list into native, new, and blocked, then search its tracker for the uninstall before you run the install.
open the demo →
demo 13 · admission-gates
The Gate Was Written First
Three ways to make a meeting archive answer a question, three preregistered gates, three refusals in one day. Each gate was committed to git before the model weights finished downloading — so when the scores came back plausible, there was nothing left to negotiate with. The feature that shipped is the one the evidence admitted.
forAnyone whose agent keeps wiring features that demo well and fail in use — and anyone deciding when a measured capability is allowed to become product.
getA one-day trilogy of preregistered probes — a similarity floor, a pairwise scorer, an extractive no-answer head — each gate frozen before first inference, each failed without tuning; the falsifier showing a right answer scoring below a wrong one, which no threshold can fix; and the honest feature that shipped instead.
doCommit fixture, model digests, thresholds, prediction, and consequences before the first run. Observe the held-out result once. When the gate fails, record the receipt and stop — the refusal is the deliverable.
open the demo →
demo 14 · derived-not-narrated
Kibble & Co. Doesn't Sell Anything
A pet-supply storefront went live on a real BigCommerce sandbox, moving real Stripe-sandbox money through real dunning logic — and it exists only so a subscription-billing platform could be built against a genuine store instead of a slide deck. Five deployed apps, 94 ADRs, and a generated file that answers 'what's shipped' so nobody has to narrate it. The method is the point; the pet food is the test fixture.
forAnyone evaluating whether spec-driven, agent-orchestrated delivery produces real software, and anyone deciding whether 'proposal → synthesis → ADR' is process theater or a working discipline.
getA five-app BigCommerce subscriptions platform — storefront, admin, API, docs, marketing — built against a live sandbox store behind a fictional pet-supply merchant; 94 ADRs and 218 user stories moving through one repo; the mechanical state-derivation file that replaces status narration; and two real failures, a circular verification audit and a GitHub rate-limit exhaustion, with the fixes that shipped.
doRoute every spec edit through proposal → synthesis → ADR with the synthesis ID in the commit message. Make 'what's shipped' a generated file, never a written claim. Build a disposable, fictional storefront when you need real platform behavior without a real merchant's data on the line.
open the demo →
demo 15 · vendor-scoping
The Harder Deliverable Wasn't the Build
A ten-document vendor bid package — the scoping and estimation kit a global systems integrator needs before it can bid on a BigCommerce-native subscriptions build — projected from a 28-epic, 218-story spec corpus in days, not weeks. A leakage lint hard-fails before a forbidden pattern ever reaches the export, and a bundling script freezes identical, name-stamped copies per vendor. Every document still carries status: draft-internal-review — the release checklist stayed a human's job.
forAnyone evaluating how a client-facing deliverable — a bid package, an SOW, a scoping document — can be produced by agents without becoming a liability the moment it reaches an outside reader.
getHow a 10-document, 28-epic, 218-story vendor bid package gets projected — not authored — from a canonical spec corpus, sanitized by a hard-fail leakage lint instead of a proofread, frozen into identical per-vendor bundles, and held behind an unchecked human release checklist before anything ships.
doKeep one canonical source and generate every client-facing artifact from it. Make leakage prevention a whitelist-based lint that runs before the file is written, not a review step someone can skip. Write the release checklist before the package exists.
open the demo →
demo 16 · confirm-then-act
The Agent That Asks Twice
Ask BC is a production agent with 29 tools against a live commerce store — 22 that read, 7 that can change it — deployed split across a Next.js app and a Cloudflare Worker with a Durable Object per store. Every mutation needs two turns: a preview, then an explicit confirm. Months later, a sibling platform copied the runtime wholesale for its own merchant copilot — same Durable Object, same codemode sandbox, same two-turn writes — and pointed it at a different API entirely.
forAnyone deciding how much autonomy to hand an agent that can mutate a real system, and anyone wondering whether an agent pattern built once actually gets reused, or just described as reusable.
getThe two-turn confirmation pattern read straight from the tool code — nothing mutates on the first call, only on an explicit second call with the confirm flag set to true; the generative-UI block protocol that turns tool output into an inline React component instead of a wall of markdown; the Haiku-default, Sonnet-on-retry model split; a real security gap caught and fixed a month before the app's custom domain went live; and the decision record where a second product adopted the identical Durable-Object-plus-codemode runtime for its own copilot, pointed at an entirely different data plane.
doPut the confirmation gate inside the tool's own execute function, keyed on an explicit boolean the model must set — not a line in the prompt. Route the cheap model by default and upgrade only the step that needs it. When a pattern proves itself once, let the next build copy the runtime and swap only the data plane.
open the demo →
demo 17 · inferred-not-designed
The Layout Was Inferred, Not Designed
Aisles is a headless storefront that decides its own layout per shopper — 31 weighted rules feed a Bayesian inference engine that picks one of four personas, then an AI model generates the category page from a four-component vocabulary a Zod schema won't let it leave. Same URL, same catalog, four schema-valid layouts. On 2026-08-12 it was pointed at a real BigCommerce store for the first time — a brand-config entry, two environment variables, a harvested palette with file-line citations, and one honest bug: a client-side lookup that silently rendered furniture navigation over a pet-supply catalog.
forAnyone evaluating whether AI-generated UI can be made safe to ship, and anyone deciding how much of a personalization engine should be inferred versus hand-coded per segment.
getThe full pipeline read from source — 31 rules, a gatherer-biased Bayesian prior, and a softmax over four named personas (gatherer, hunter, researcher, gifter); the Zod schema that makes an AI-written layout provably valid instead of usually reasonable; the per-persona prompt language that actually reaches the model; the same-day integration against a live BigCommerce sandbox that took one config file because the catalog seam was already generic; a palette harvested from the storefront's own CSS with file and line citations; and the client-side brand-resolution bug the integration surfaced, with its fix.
doBuild one catalog function that reads the active brand's config instead of one function per brand. Pass a typed schema to the model as a generation constraint, not a suggestion in the prompt. Harvest brand colors from the real source with a citation, never invent them. When a config is read in both server and client code, make sure it resolves identically in both — the client's silent fallback is the bug that ships.
open the demo →
demo 18 · steering-across-agents
The Guardrail Removed the Storefront
I asked one agent to make an AI storefront look as good as the real one, then handed the work to a second agent in four words: “pick up where Claude ended.” Nineteen commits later the AI was gone — and every commit message was a safety word. Nobody typed “remove the model.” The tests stayed green because they were rewritten to expect it. What caught it was remembering what the live site used to do.
forAnyone running work across two agents, or across days, and anyone who has watched a reasonable safety concern quietly redefine what the product is.
getThe verbatim direction that started it and the four-word handoff that dropped it; 27 agent sessions in one repository in a day, zero containing a typed instruction — every operator turn an auto-generated approval; the nineteen-commit verb ladder, where no single commit is wrong and the sequence deletes the feature; the green status line reporting “zero model requests” as an achievement for a product built on model requests; the contract test rewritten from listing model-authorized zones to asserting there are none; and the second overshoot, where the agent sent to fix the mistake made it again first.
doRestate the goal in the first message to the second agent — the plan file carries the paths and drops the why. Review runs of commits, not single diffs; a ratchet is a sequence. Label every number as a fixture property or a product target before it goes green. Keep one test that costs money, so a suite cannot pass hardest when the feature is gone.
open the demo →
Applied · technique companions
Not session receipts — reusable techniques, shown working. A companion strand to the demos above.
applied · technique
Two Ways to Draw a System
Hand-authored SVG vs themed Mermaid — chosen per diagram, both shown working.
open →
applied · technique
Mine Your Own Transcripts
Treat your agent sessions as a searchable corpus — corrections become priors the next session reads.
open →
applied · technique
Gate Every Hand-Off
Agents work inside a stage; deterministic gates verify between. Gate the seam, not the middle.
open →
applied · technique
Promote a Correction to a Guardrail
Wrapper → deny-hook → CI ratchet: promote a repeated correction to the lowest rung that holds.
open →
applied · technique
A Registry for What Grep Can't Find
Facts grep can't surface, held in one registry and enforced in CI — the conclusion, pre-paid once.
open →
applied · technique
Put Provenance Labels on AI Research
Three label tiers, an adversarial re-derivation loop, and the honest downgrade — shown working.
open →
applied · technique
Bare-Arm Test Your Agent Config
A control arm for your own harness: bare mode, isolation arms, and rules validated before adoption.
open →
applied · technique
Run the Subtraction Before You Install
A feature list is half a subtraction. Enumerate your baseline, sort the tool's list into three buckets, then search its tracker for the uninstall.
open →
applied · technique
Close the Session, Keep the Lesson
Turn a finished agent session into durable project truth and compact recall before its raw transcript expires.
open →
applied · technique
One Heavy Job at a Time
Local inference makes scheduling an operational decision — and a panic's exit reason is two published integers, not a guess.
open →
applied · technique
The Home AI Server Question
A measured local-versus-frontier comparison, plus the cost inputs for deciding whether to buy a home AI server.
open →