The two app model
Denote writes structured files. Claude Code reads them and generates code. Both apps run at the same time, pointed at the same folder on disk. Denote stays a thinking tool; Claude Code stays a building tool.
Why the split
Most AI design tools try to do both jobs at once — capture your idea and render the screen in the same motion. Structure and visuals collapse into one black-box output that's hard to unbundle.
Denote splits them so each tool stays honest:
- Thinking tool — visual and structural. Shows objects, relationships, governance, screen inventory, chip compositions. Lets you shape decisions.
- Building tool — terminal-native and code-aware. Reads decisions, applies them against a real codebase, produces files you can run.
Neither tool pretends to do the other's job. Denote doesn't render code. Claude Code doesn't ask you to fill out wireframes.
What Denote owns
The authoring side of the pipeline:
- The four layers (Vision, Ontology, Architecture, Screens) plus the Spec hand-off.
- The governance schema that maps signals to UI decisions.
- The activity feed and the on-disk history of what has been written.
Everything Denote writes lives under design/ in your project folder — plain JSON and Markdown. Read it, edit it by hand, commit it to git.
What Claude Code owns
The building side:
- Running skills (
/vision,/ontology,/architecture,/screens,/spec) that update the design files. - Reading the design spec — usually from a separate Claude Code session running in the target project — and generating code.
- Applying the governance schema as real constraints on the output.
- Everything a terminal coding agent does: running the dev server, editing files, executing tests.
Claude Code runs inside Denote as an embedded terminal, and it also runs outside Denote on its own when you want it to. The project files are the same either way.
How they share
The filesystem is the integration layer. No sync protocol, no paired session, no export step.
CLAUDE.md at the project root tells Claude Code how to behave:
- Design mode — Claude is a thinking partner. Edits
design/*.jsononly; doesn't write code. - Build mode — Claude is your build partner. Same folder, same files; different rules.
Switch from the top bar. See Design and Build mode.
The loop:
- Edit a layer in Denote → Denote writes to
design/immediately. - Run a skill in the terminal → Claude Code reads
design/, updates it, logs to the activity feed. - Switch layers in Denote → it reads the updated file from disk and renders.
Reverse works too. If Claude Code rewrites a design file on its own, Denote picks it up next time you open that layer.
[Screenshot TODO: split-screen showing Denote on the left with a layer open, the embedded terminal on the right mid-skill, and a Finder window behind showing the files on disk updating.]
What this enables
- Reversibility — every decision is a file. If a skill does the wrong thing, edit the file and move on. Nothing locked inside app state.
- Version control — your project is a folder.
git init, commit, branch, diff. The design history is the commit history. - Hand-off — send someone the folder. They open Claude Code, point it at it, start building. They don't need Denote.
- Edit by hand — change any design file in a code editor; Denote picks it up. The UI is a convenience, not a gatekeeper.
Where to next
- Design and Build mode — the toggle that lets one folder serve both apps.
- The right panel — the agenda surface alongside every layer.
- The four layers overview — what each layer captures and how they connect.
- The governance schema — how decisions become constraints the implementer applies.
- Spec — the design specification that ends up in the target project.
- Project file structure — the full tree of what gets written to disk.