Code4Life / Engineering anatomy

Beyond the prompt.

A prompt can make an impressive moment. A product has to survive the next moment. These systems pair AI with durable state, explicit rules, real interfaces, validation, privacy boundaries, and useful failure modes.

See how the systems fit →

The engineering difference

A promptInput → plausible output

Useful for an experiment. Fragile when truth, continuity, recovery, or repeated use matters.

A productIntent → bounded action → verified result

State persists. Rules are explicit. Failures are visible. People retain control.

00 / The method

AI handles ambiguity. Software carries the promises.

The model is never asked to be the database, calculator, workflow engine, safety policy, or source of truth. It is one capable component inside a deliberately shaped system.

01 / Boundaries

Give AI the judgment-shaped work.

Interpret intent, explore possibilities, explain a result, draft language, or compose. Keep arithmetic, permissions, identity, availability, and safety in code and authoritative data.

02 / State

Remember what happened.

Persist projects, messages, artifacts, revisions, runs, source lineage, and user corrections. A second visit should be smarter than the first—not a fresh chat pretending to remember.

03 / Verification

Make correctness inspectable.

Structured outputs, rule files, deterministic engines, revision checks, test suites, and visible status turn model behavior into something the product can accept, reject, and explain.

04 / Resilience

Design the failure path too.

Durable retries, cached work, graceful fallback, local-first operation, and isolated adapters keep a missing model or service from becoming a broken product.

What the model is good at

  • Understanding an imprecise human request
  • Generating and comparing creative candidates
  • Explaining structured facts in useful language
  • Planning a form, story, score, or conversation

What the surrounding system owns

  • Truth, identity, prices, calculations, and safety constraints
  • Persistence, provenance, retries, and human approvals
  • Rendering, export, transport, and external integrations
  • Tests, observability, privacy, and graceful degradation

01 / Story production

StoryCat

Working system

A directing surface over a production line. The model contributes language and judgment; Temporal makes the work durable and a referenced artifact store keeps every stage traceable.

Open StoryCat ↗
DirectionChat + project intent
OrchestrationTemporal workflow
Work unitsNamed activities
StateS3 artifacts by reference
ControlGates, progress, resume

How it fits

Pipes and filters on a durable engine.

Each production step has declared inputs and outputs. Flows are data, activities are composable units, and large artifacts travel by reference instead of bloating prompts or workflow history.

FastAPITemporalPythonS3Config-driven steps

Why it matters

A long creative run can stop without vanishing.

Retries, human gates, per-story isolation, progress visibility, and resumability turn a multi-stage production job into something operable—not a single model call you hope finishes.

Beyond prompting

The prompt is one activity, not the architecture.

Research, writing, voice, image, and publishing are coordinated as explicit work. The system knows what ran, what it produced, and where to continue.

The value: creative automation with memory, lineage, and a recovery path.

02 / Collaborative writing

Margins

Private build

A writer’s room where conversation becomes durable creative structure. AI output remains candidate material until a person promotes it to canon, maybe, rejected, or an open question.

Open Margins ↗
RoomsFocused conversation
ParticipantsEditable AI roles
DecisionHuman canon actions
RecordSQLite + revisions
RecallLanceDB + Markdown

How it fits

Chat is the entrance, not the archive.

Fastify and a Vite interface persist rooms, named participants, role prompts, messages, jobs, artifacts, and revisions. Markdown mirrors keep approved creative knowledge portable and inspectable.

TypeScriptFastifyViteSQLiteLanceDBOllama

Why it matters

Taste stays with the writer.

Different AI roles can propose structure, prose, polish, or tone feedback, but none can silently redefine the project. Rejected ideas are retained so they do not casually return.

Beyond prompting

A learning signal needs a data model.

Canon decisions, revisions, source messages, role-specific memory, semantic recall, and recovery-friendly mirrors transform ephemeral suggestions into governed collaboration.

The value: AI assists the room; the writer owns the world.

03 / Financial intelligence

TaxCat

Auditable engine

A conversational tax-prep pipeline built around one non-negotiable boundary: the agent never does the math. It interviews, routes, reads, and explains; a deterministic engine computes.

IntakeConversation + documents
StructureNormalized tax case
TruthVersioned rule engine
GuardNo-math verification
OutputOfficial draft forms

How it fits

Rules are versioned data, not model memory.

Federal and New York calculations load official year-specific rules. Source documents are retained as hashed evidence, form maps are revision-guarded, and calculators emit the ledger behind each result.

FastAPIPythonRules JSONOfficial PDFs287 tests

Why it matters

Natural conversation without probabilistic arithmetic.

The no-math guard checks every monetary figure in model output against the engine. Server-side document custody is minimized: uploads and prepared forms can be processed in memory and returned to the device.

Beyond prompting

Auditability is designed, not requested.

Provider failover, safe document parsing, manual-entry fallback, source verification, edge-case fixtures, and draft-watermarked forms create enforceable boundaries around the AI.

The value: the warmth of an interview, with the discipline of a calculator and evidence file.

05 / Music sketching

MidiGen

Public app

A musical input instrument that turns touch, typing, humming, and timing into editable symbolic notes. There is no LLM in the critical path.

Open MidiGen ↗
CaptureKeys, hum, rhythm
ModelOne canonical note buffer
ShapeCards edit the same state
HearWeb Audio or Pianoteq
CarryHistory + MIDI export

How it fits

Musical structure stays explicit.

Client-side pitch detection, rhythm quantization, note editing, playback, and a Standard MIDI File writer work from one state model. FastAPI persists phrase history in SQLite and transports optional renders.

Web AudioJavaScriptFastAPISQLiteMIDIPianoteq

Why it matters

Immediate play, without waiting for generation.

The browser synth always works. Real-instrument mode pre-renders a chromatic octave and slices it into cached key samples, replacing a 1.4-second per-key delay with responsive playing.

Beyond prompting

The hard problem is interaction design.

Raw timing is preserved so tempo changes can re-grid a performance. Card edits flow back to the buffer. Pianoteq failure degrades quietly to synth while export remains independent of either sound engine.

The value: an idea becomes portable musical data before AI is ever invited to elaborate it.

06 / AI composition

ScoreCat

Conceptual toy

A conversational composer that works in symbolic music rather than generated audio. The model writes a compact score; deterministic libraries render, play, and export it.

Explore ScoreCat ↗
SeedMidiGen, MIDI, or words
PlanForm + duration
ComposeParallel sections
StructureABC score hygiene
Renderabcjs + MIDI export

How it fits

ABC is the contract between model and product.

ABC notation is compact enough for an LLM, expressive enough for multiple voices, and directly renderable. FastAPI handles MIDI parsing and orchestration; abcjs engraves and plays in the browser.

FastAPIABC notationabcjsMIDIPluggable LLM

Why it matters

Long music needs form, not more tokens.

For longer pieces, ScoreCat plans the form, generates sections concurrently, sizes bars to duration, and assembles aligned voices. Later conversation revises the current score instead of starting over.

Beyond prompting

Generation is wrapped in musical mechanics.

Seed-note extraction, form planning, section assembly, ABC cleanup, browser playback, and export constrain the creative model into a score that can be read and reused.

The value: conversation produces an editable artifact, not an opaque audio blob.

07 / Agent-native email

MailCat

Phase 1 prototype

A real send-and-receive mail substrate with an adaptive retrieval system above it. No folders or labels: ask naturally, correct the agent, and let durable personal memory sharpen the answer.

Read the MailCat idea ↗
ReceiveCloudflare mail edge
NormalizeCanonical message graph
RecallStructured + vector search
LearnWeighted corrections
ActAnswer, draft, or propose

How it fits

Live mail below; provider-neutral intelligence above.

Cloudflare Email Routing and a Worker deliver raw mail through a tunnel to a local Maildir and SQLite index. Resend handles authenticated outbound delivery. Adapter seams keep those transports replaceable.

Cloudflare EmailWorkerMaildirSQLiteResendEmbeddings

Why it matters

Learning lives outside model weights.

A canonical people-and-thread graph, structured query planner, semantic retrieval, reranking, and weighted pick/correction memory make relevance inspectable, account-scoped, and portable across models.

Beyond prompting

Email actions require provenance and control.

Immutable messages, idempotent ingestion, explicit source references, isolated draft storage, and an “AI proposes / human disposes” contract prevent a clever answer from becoming an untraceable side effect.

The value: less inbox administration, without giving an agent unbounded authority.

08 / Daily puzzle

ColorPour

Very beta

A deliberately small counterpoint to the AI systems: a deterministic daily puzzle whose difficulty comes from generation constraints, not generated copy.

Play ColorPour ↗
SeedNew York date
GenerateSeeded inverse moves
SelectMix-quality scoring
PlayDeterministic rule engine
RememberLocal progress + streak

How it fits

A solvable board is built backward.

The generator starts from completed tubes and applies legal inverse moves using a date-seeded random stream. It scores many attempts for transitions, mixture, and run length, then keeps the strongest board.

Vanilla JavaScriptSeeded PRNGLocalStorageStatic NginxNo dependencies

Why it matters

Everyone receives the same challenge.

Date-based generation creates a shared daily ritual without a database or account. Progress, best moves, streak, and bonus boards stay on the device.

Beyond prompting

Sometimes the right AI choice is none.

Legal-pour rules, solvability by construction, deterministic sharing, and a dependency-free static build are better engineering for this experience than introducing a model.

The value: the simplest architecture that can deliver a fair, repeatable, whimsical challenge.

09 / At a glance

Different products. The same discipline.

Each system draws a different line between model judgment and dependable mechanism. That line—not the model name—is the important design choice.

Product
AI contributes
Software guarantees
The value of the split
StoryCat
Research and creative production
Workflow state, retries, gates, lineage
Long jobs become resumable production.
Margins
Role-shaped creative candidates
Canon authority, revisions, recall, mirrors
Collaboration accumulates without stealing authorship.
TaxCat
Interview, intake, explanation
Official math, sources, guards, forms
Friendly guidance remains auditable.
AI Menu
Discovery and conversation
Menu truth, allergens, order and payment state
Hospitality gains intelligence without invented facts.
MidiGen
Nothing in the core loop
Capture, timing, editing, sound, export
The instrument stays immediate and dependable.
ScoreCat
Form and symbolic composition
Parsing, assembly, rendering, playback, export
A generated idea becomes usable notation.
MailCat
Intent, synthesis, drafting
Mail transport, graph, retrieval, memory, approval
The inbox adapts without becoming inscrutable.
ColorPour
Nothing
Solvability, daily seed, rules, local progress
Restraint keeps a small game genuinely small.

Prompts make demos. Systems make promises.

The studio’s work begins with a human idea, then earns its usefulness through architecture: choosing what AI should do, what it must never do, and what the rest of the product must guarantee.

Return to the portfolio →