Exogenesis / Field Notes / EXP-003

EXP-0032026-03-09

The Journal That Became a Filing Cabinet

greenfield-comparisonpractice-to-tool-driftproduct-identity-drift

One agent built a note manager with search, edit, and delete. The other built a blank page that opens to today. Both were 'markdown journals for daily reflections' — but only one understood what a journal is for.

Context

Build a markdown journal for daily reflections.

This prompt has a subtle trap. "Journal" describes a *practice* — a daily ritual of writing. But "markdown" describes a *format* — a technical capability. An agent that latches onto the format will build a different product than one that latches onto the practice.

We gave this to two isolated agents to see which concept would win.

Hypothesis

The prompt-only agent would build a markdown-capable note-taking app and add management features — search, edit, delete, export. The intent-driven agent, having analyzed the prompt's actual meaning, would optimize for the daily writing ritual and resist management overhead.

Initial Intent Artifact

The intent artifact defined the core interaction as: open the app, write today's reflection, close the app. It identified "daily reflections" as the product's center of gravity, with markdown as the format, not the purpose.

Protected value PV1: "Writing friction must be near zero." Protected value PV4: "Simplicity as restraint" — with the note: "Every feature not serving the daily writing ritual is a distraction. The blank page is the design."

The artifact explicitly excluded search and tags.

Method

Both agents received only the raw prompt. The intent-driven agent generated a structured intent artifact before implementation. Both produced single-file HTML apps and written summaries.

What each branch built

Prompt-only

App built from prompt only

Intent-driven

App built with intent artifact

Observation

What each app does on launch

This is the finding in one sentence: the prompt-only branch opens to a list of entries. The intent-driven branch opens to today's blank page.

That single difference — what the user sees first — reveals everything about how each agent interpreted the prompt.

The prompt-only branch built a filing cabinet

Entries can be searched, edited, deleted, and exported. It includes a custom markdown parser (~80 lines) written from scratch. The UI centers on a list of entries with management controls. The summary acknowledged the result was "over-featured relative to the terse prompt."

This is a competent note-management app. It happens to store entries with dates. But the product question it answers is: "How do I organize my notes?"

The intent-driven branch built a blank page

The app opens to today's entry with the cursor already in the textarea — zero clicks to start writing. Auto-save with debounce replaces explicit save buttons. No search. No tags. No delete. It uses marked.js from CDN instead of writing a custom parser. The agent described the product as "closer to a blank notebook than to Notion."

The data model tells the story too. The prompt-only branch allows multiple entries per day with timestamps — a note-taking model. The intent-driven branch enforces one entry per day, keyed by date — a daily practice model.

Drift Analysis

Practice-to-tool drift (primary)

The prompt-only branch drifted from "journal for daily reflections" toward "markdown note app." Search, edit, and delete are note-management features, not journaling features. You don't search a journal. You don't delete a reflection. You write today's entry and close the book.

This is a textbook case of practice-to-tool drift: a prompt describing a human ritual gets reframed as an information management tool. The implementation optimizes for managing entries instead of supporting the lived activity.

Product-identity drift (secondary)

The product shifted from "journal" (a practice) to "note-taking app" (a tool category). The right-looking feature set was built, but organized around the wrong concept.

Legitimate Divergence

  • Markdown rendering approach: Custom parser (~80 lines) vs marked.js from CDN. The artifact didn't specify rendering implementation. Both are valid.
  • Visual styling: Different color schemes and typography. Neither constrained by the artifact beyond "minimal."
  • Entry navigation: Sidebar list vs date-based lookup. Different valid approaches to accessing past entries.

Result

The hypothesis held cleanly. The prompt-only branch added management features consistent with a note-taking app. The intent-driven branch optimized for the daily writing ritual and resisted management overhead.

The most telling evidence is what each app does on launch. The prompt-only branch shows you your files. The intent-driven branch shows you today's blank page with a blinking cursor.

One app asks: "Which note do you want to work on?" The other asks: "What happened today?"

The difference between a note manager and a journal is what the app assumes you came to do.

Principle

Prompts that describe practices — "daily reflections," "meditation timer," "reading log" — are at high risk of being implemented as feature-rich tools rather than ritual-supporting surfaces. Intent discovery can distinguish between "what features does this category of app usually have?" and "what is this specific app actually for?" — the difference between a filing cabinet and a blank page.

Follow-Up

  • Would real users prefer the ritual-optimized version or the management-capable version? They might want search after 30 days of entries.
  • Does the practice-to-tool drift pattern recur with "workout log" or "meditation tracker"?
  • Is the one-entry-per-day model the right default, or is it too restrictive for people who reflect more than once?

Limitations

  • Both branches used the same model family. The tendency to add management features might be model-specific.
  • "Journal" is genuinely ambiguous — some people do search their journals. The drift classification assumes the "daily ritual" interpretation is correct, but a case could be made for the note-management interpretation.
  • Single run per branch. The prompt-only agent might resist management features on another run.
  • The intent-driven branch received more structured input, which could contribute to its restraint through context volume rather than intent structure.
  • We're comparing the agents' *interpretations* of "journal." We don't know which interpretation actual journal users would prefer without user testing.