The rule
AI is an input, not the final. Recruiter language for the same idea is “your work must not look like it was generated by AI.” I treat that as an acceptance test, not a slogan. If a still, a frame, or a page would pass as a raw model dump, it is not shipped.
I use AI where it is faster than staring: exploring options, drafting structure, generating a first still, or writing boilerplate I will immediately rewrite. Taste, composition, compositing, and the decision to ship stay mine.
Which models
Only tools I actually use on shipped work are listed. The daily harness is Cursor and Codex. I stay current with the latest AI tools and news, so this table is what I ship with today — not a frozen stack.
| Tool | What I use it for | What I do not use it for |
|---|---|---|
| Cursor | Shipped product builds: IceDraft, Ember Cathedral, Rent360, this site. HTML, CSS, JavaScript, TypeScript, Python, and live API wiring. | Blind paste. I read the diff, run the page, and keep the commit. |
| Codex | The other half of the harness: multi-file implementation, refactors, and agent runs against the same written brief. | Unreviewed output. Same rule as Cursor: I read the diff, run the page, and keep the commit. |
| Claude | A model inside those sessions: structure, first-pass copy, and implementation against a written brief. | Voice. Published sentences are rewritten until they sound like me. |
| Midjourney | Still exploration for dark atmospheric art and campaign starts. | The file a client or a store buyer receives. That file is composited and graded in Photoshop. |
| Runway | Motion tests when a still needs to move before I finish in Premiere or After Effects. | A finished spot. Timing, type, and grade stay in an editor. |
| Photoshop / Figma | Compositing, crop, type, tokens, and reconstructed UI systems after I design in the browser. | They are not generators. They are where the work stops looking generated. |
Where AI enters
- Product builds The brief and the constraint come first. Then Cursor and Codex. IceDraft, Ember Cathedral, and Rent360 were designed and shipped this way: I set the rule (private leagues, fail-closed metrics, labelled sample data), the model drafts against that rule, and I keep what survives a real browser and a git diff.
- Images A prompt is a sketch, not a delivery. I generate options, pick the one that has the right atmosphere, then rebuild it: mask, grade, crop for desktop and mobile, remove the tells. The store file and any campaign hero have to survive the “does this look generated?” test.
- Copy and names I ask for volume — twenty titles, ten objections, three bad versions of a paragraph — then throw most of it out. Rent360 used this on purpose: AI for divergence, human judgement for the line that ships.
What stays hand-finished
Composition, colour, type, motion timing, and whether the thing is true. If a dashboard number cannot be proven, it is not shown. If a landing-page metric is invented, it is labelled. If a still still looks like a prompt, it goes back into Photoshop.
Photography on this site is photographed, not generated. Product UI is coded, not a mock pasted from a chat. Those two facts matter more than any model name.
Generation logs
I keep a log so I can do the work again on brief, not so I can decorate a case study. For images the row is: date, project, model, prompt, seed if the tool gives one, settings, output filename, and what I changed by hand. For code the log is the git history plus the Cursor or Codex transcript for that session.
A ComfyUI node graph with LoRA and batch export is the next production pipeline, not something I am pretending is already installed. Until that ships, this is the record I actually keep.
| Field | Example |
|---|---|
| Date | 2026-08-11 |
| Project | Glace Noire Art / Stone Sanctuary — Crypt Stairs |
| Model | Midjourney |
| Prompt | gothic stone stairwell, wet crypt, single shaft of top light, no figures, cinematic still, dark grain |
| Seed | kept when the tool returns one |
| Output | crypt-stairs.jpg · 4K desktop + mobile crop |
| Hand finish | Grade, dust removal, crop for the contact page frame, watermarked store preview. |
Where this is visible
- IceDraft Pool — product designed and built in the browser, then reconstructed in Figma.
- Ember Cathedral — AI-assisted build; fail-closed metrics that a model is not allowed to invent.
- Rent360 — AI for ideation; every invented number labelled on the page.