Production site for a flag print shop: header, search, banner slider
WordPress
Elementor
WooCommerce
04/04
Tavlo: fintech landing
Budgeting app landing page that shrinks down to phone width as you scroll
React
Container Queries
Fluid type
Working with AI
The model writes the draft. What ships is MY code.
I split the task into microtasks and hand the model exactly one piece at a time. Every fragment then runs through 12 checks. Scroll the block: this is my actual pipeline, step by step.
The pipeline runs on scroll
01Done by me
Decomposition
The task is cut into microtasks. Each one fits in my head whole and can be verified in a single pass.
02Done by me
Context boundaries
The model gets exactly one piece plus the project rules, never a "here is the repo, figure it out".
03Done by me
Architecture and contracts
Layers, module boundaries and signatures are designed before the first prompt is ever sent.
04Done by the model
Draft from the model
The one stage where the model does the work. What comes back is a draft, not a solution.
05Done by me
Line by line
I read every line and explain to myself why it is there. A line I cannot explain does not move on.
06Done by me
Logic and types
Invariants, types and states get checked. Code that compiles is not the same as code that is correct.
07Done by me
Edge cases
Empty data, races, dropped connections, double clicks. Exactly what a model tends to forget about.
08Done by me
Tests
First a failing test for the bug I caught by eye, then a green run.
09Done by me
Performance
Extra re-renders, per-frame allocations, queries in a loop. Cleaned up before the merge, not after complaints.
10Done by me
Security and dependencies
Input validation, secrets, new packages. A dependency I can avoid is a dependency I do not add.
11Done by me
Refactor into the project
Naming, structure, style. After this step the code is indistinguishable from the rest of the repo.
12Done by me
Ownership
My name is on the commit. Defending any line in review is my job, not the model’s.
Decomposition: The task is cut into microtasks. Each one fits in my head whole and can be verified in a single pass.
Context boundaries: The model gets exactly one piece plus the project rules, never a "here is the repo, figure it out".
Architecture and contracts: Layers, module boundaries and signatures are designed before the first prompt is ever sent.
Draft from the model: The one stage where the model does the work. What comes back is a draft, not a solution.
Line by line: I read every line and explain to myself why it is there. A line I cannot explain does not move on.
Logic and types: Invariants, types and states get checked. Code that compiles is not the same as code that is correct.
Edge cases: Empty data, races, dropped connections, double clicks. Exactly what a model tends to forget about.
Tests: First a failing test for the bug I caught by eye, then a green run.
Performance: Extra re-renders, per-frame allocations, queries in a loop. Cleaned up before the merge, not after complaints.
Security and dependencies: Input validation, secrets, new packages. A dependency I can avoid is a dependency I do not add.
Refactor into the project: Naming, structure, style. After this step the code is indistinguishable from the rest of the repo.
Ownership: My name is on the commit. Defending any line in review is my job, not the model’s.
What this means in practice
The model speeds up drafts and routine work. Everything that decides quality (decomposition, architecture, review, ownership) stays with me. Nothing lands in a project that I cannot explain line by line.