---
title: "How I work · Marco Dong"
description: "How Marco Dong works with AI agents: the rules they work under and the hooks that enforce them."
canonical_url: "https://madong.me/how"
meta:
  "og:description": "How Marco Dong works with AI agents: the rules they work under and the hooks that enforce them."
  "og:image": "https://madong.me/_og/s/o_02788e931efea3ea.png"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "How I work · Marco Dong"
  "twitter:image": "https://madong.me/_og/s/o_02788e931efea3ea.png"
---

> Index of every page on this site: [llms.txt](https://madong.me/llms.txt)

# How I work

Agents write a lot of my code. I wrote the rules they work under, I review what they ship, and nothing goes out under my name that I can't explain.

## Eight rules, eight gates

Hover a gate for its rule. Click a change to stop it yourself. Tap a gate for its rule. Tap a change to stop it yourself.

1 2 3 4 5 6 7 8

1. 1 ### The board goes up before the first edit.

   I run several agents at once, and the board is how I see what each one is doing.
2. 2 ### Never guess a fact a lookup could settle.

   Every claim rests on something read in that session.
3. 3 ### A comment says why, or it doesn't exist.

   A comment that narrates the code is the first thing to go stale.
4. 4 ### Files change through file tools, never the shell.

   So every change is one I can read before it lands.
5. 5 ### Nothing is created under my name unless I asked for it.

   No ticket, merge request or pushed branch shows up as a side effect.
6. 6 ### Fix the cause, not the symptom.

   Cleaning up the damage is step one. The fix is whatever made it possible.
7. 7 ### Whether it looks right is my call.

   Agents prove the logic with types, builds and tests, and I look at what people will see.
8. 8 ### A rule I keep breaking is a missing hook.

   A rule that matters gets a script that stops the agent, not another sentence.

## From the ask to shipped

The agent reads what I typed, what I meant and what it forces. It puts the board up, builds in small steps, and proves each one with a check that could disagree. I review it before anything leaves.

1. Read what I typed, what I meant, what it forces
2. Board #4 \[AI] Crossfade the sequence frames
3. Build fix(scroll): crossfade the two frames around the scroll position
4. Prove check.ts: 0 failures
5. Review
6. Ship merged into main

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://madong.me/#website","@type":"WebSite","description":"Marco Dong, AI product engineer in Milan. I build AI products end to end: Sidecar, Sage and AI Shell at Cela, and agents at Klarna and Moneyfarm.","name":"Marco Dong","url":"https://madong.me/","publisher":{"@id":"https://madong.me/#identity"}},{"@id":"https://madong.me/how#webpage","@type":"WebPage","description":"How Marco Dong works with AI agents: the rules they work under and the hooks that enforce them.","name":"How I work","url":"https://madong.me/how","isPartOf":{"@id":"https://madong.me/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://madong.me/how"]}]},{"@id":"https://madong.me/#identity","@type":"Person","jobTitle":"AI Product Engineer","name":"Marco Dong","url":"https://madong.me","address":{"addressLocality":"Milan","addressCountry":"IT"},"alumniOf":[{"@type":"CollegeOrUniversity","name":"University of Bologna"},{"@type":"CollegeOrUniversity","name":"Bologna Business School"}],"knowsLanguage":["it","en"],"sameAs":["https://www.linkedin.com/in/marcodong-838453","https://github.com/EthanITA"],"worksFor":{"@type":"Organization","name":"Klarna"}}]}
```

## Sitemap

See the full [sitemap](https://madong.me/sitemap.md) for all pages.
