product-ai · how I work with AI agents Rian van der Merwe · November 2026

On a phone, each diagram scrolls sideways.

1 / 7The whole system

One repo tells every AI tool how I work.

OpenCode, Claude Code and Codex all load the same file, AGENTS.md, at the start of every session in a Git repo called product-ai. I run Claude Code inside Herdr.

The repo holds my context, workflows and work output. Agents read live data from internal systems. A reviewer checks drafts before they go to other people. Lessons go back in when a session teaches something.

Rian starts sessions, signs off three AI tools OpenCode Claude Code Codex product-ai/ AGENTS.mdrules every tool loads at the start of a session Context 01-context/ product philosophy writing style stable facts session logs corrections Workflows .opencode/ 38 commands 51 skills 11 agents /prd, /wiki, /weekly, /briefing Work output 06-work/ project brains escalation analyses fix-it assessments weeknotes briefings Systems of record internal CLI issue tracker wiki code repos service catalog MCP gateway metrics logs data lake Google Workspace Cloudflare API GraphQL Analytics agents read live data /session-end writes lessons back into context lessons Codex review GPT-6.1 Sol, started by the agent in Herdr drafts Sent to people tickets, MRs, wiki, chat runs /session-end after a substantive session
Orange is me. Blue arrows show what moves where.
2 / 7On the map: AGENTS.md and Context

Three files load for any product work, while the rest wait for a task that needs them.

Loading every file every time would use up context before the work starts. So AGENTS.md names a trigger for each file. The agent reads a file only when its trigger applies.

ANY PRODUCT WORK ONLY WHEN THE TASK NEEDS IT product-philosophy.md writing-style-work.md team/rian/CONTEXT.md AGENTS.md loaded every session when a skill runs or a session starts corrections.md + its domain files when getting oriented stable-facts-work.md when picking up earlier work session-log-work.md for a cross-cutting work decision decisions.md for professional writing avoid-ai-patterns.md
Solid lines load for any product work. Dashed lines load on the trigger written above each file.
3 / 7On the map: Workflows

A command turns one request into a team of agents.

Commands are saved workflows. One command, given a ticket key, runs a whole customer escalation investigation.

Three agents search code, tickets and docs at the same time. Their findings shape the database queries. A Codex reviewer then checks the draft before I share it.

Ticket classified first three agents at once Code code repositories Related tickets issue tracker history Context docs, incidents, deploys Data checks database queries, where they apply Draft analysis Reviewed Codex reviewer sources and reasoning Issue analysis for PM and eng
This is the same reviewer as in scene 5.
4 / 7On the map: Systems of record

Agents read live data from the company's systems of record.

The repo tells agents where to look. The wiki has internal docs, the issue tracker has related work, the service catalog has ownership, and analytics show usage.

If a source of truth is down or its login fails, the agent shows me the exact error and stops. It tries another route only if I say so.

Internal CLI issue tracker, wiki, code repos, service catalog MCP gatewayproxy for internal services metrics, logs, CRM, data lake, Google Workspace Cloudflare API GraphQL Analytics for real usage Dashboards dashboards, through a local proxy Agent in a session reads live data source down or login fails Stop and ask Rian show the exact error
The red path is the stop rule. I fix the tool, and then the agent carries on.
5 / 7On the map: Codex review

A second model reviews anything I send to someone else.

Chat messages, emails, ticket comments, MR bodies, docs changes and support replies all go through it. The agent starts a Codex reviewer (GPT-6.1 Sol at xhigh) in a new Herdr terminal.

It runs read-only with no network, so it gets a bundle: the draft, the raw output behind each claim, and my words the draft quotes. Then I review the result and edit it.

Draft from the session Source bundle the draft raw tool output my own quoted words Codex reviewer gpt-6.1-sol, xhigh read-only, no network one Herdr terminal per draft Fixes go into the draft My review edit, then send
The bundle exists because the reviewer can't fetch anything itself. Without my quoted words, it flags them as unsupported.
6 / 7On the map: /session-end

Mistakes I correct get written down, so the next session starts from them.

After a substantive session, /session-end writes a handoff note. Corrections that should change future sessions move into the skill, command or rule file where they belong.

Lessons with no better home go into the corrections file. It has a 70,000-character ceiling, so a new entry merges with an old one or moves to a topic file.

A session an agent gets something wrong I correct it in the conversation /session-end writes the lesson down Rule files skills, commands, corrections A REAL ENTRY A check that cannot fail is not evidence. Its example: a regression test passed on the broken code too, because it tested for a cause that was never the bug. 01-context/corrections.md
The entry on the right is quoted from the corrections file as it stands today.
7 / 7What it adds up to

The repo has had new commits every month since November 2025.

It started in June 2025 and had 2,152 commits on November 13, 2026. The work sits in the same repo as the context that produced it.

0 500 1,000 1,500 2,000 2,500 Jun 2025 Nov 2025 Jun 2026 Nov 2026 2,152 MARKDOWN FILES IN 06-WORK/ 338project files 246weeknotes 63escalation files 43fix-it files 42briefings
Running total of commits, by month. November 2026 counts up to the 13th.

Every tool works from one repo, and what a session teaches goes back into it.