ahaqqu.com / agentic engineering

a field guide · ahaqqu.com

Agentic Engineering

How I build software with AI agents.

a clear thought put into words working verified software

← → to move · F fullscreen

the shift

The job is no longer typing code.

before

the bottleneck: how fast you can write it

now

“A visitor asks a question and gets an answer they can trace.”

the bottleneck: how clearly you can say it

Your leverage moved from typing speed to clarity of intent.

01 build your workflow 02 communicate 03 self-improvement 04 self-verification 05 adapt + under the hood + case study: KajianQ

The hottest new programming language is English.— Andrej Karpathy, 2023

principle 01 · your workflow

Build your own workflow. Start small.

✗ Adopt a whole workflow you copied — ceremony for pains you never had.

✓ Grow it from the smallest thing that works — every addition earned by a pain you actually hit.

the agent works verifies itself improves without you in the middle
you still decide what needs to be done — and what ships self-sufficient: good quality without human monitoring the loop is the smallest goal — the workflow keeps growing

principle 02 · shared language

Talk in user flows, not in code.

1 2 3 4 the visitor asks the agent drafts answer cites its source the visitor verifies

✗ dictating code“set the button to #16a34a, call the API in a useEffect, store it in state…”

✓ describing a flow“A visitor asks a question; the answer shows where every claim came from.”

your picture the agent's picture shared understanding

Be honest when you don't understand.

“I don't understand — walk me through it” is a feature, not a failure.

Then close the loop: ask the agent to replay the plan in its own words. Same picture in both heads — or no code yet. Find out how each of you understands the other.

If you're thinking without writing, you only think you're thinking.— Leslie Lamport

principle 03 · feedback

Ask the agent what can be improved.

build a slice “what would you improve?” apply the good parts keep the rule, not the patch compounds
it reviews its own work without ego answers become rules — AGENTS.md, not memory also ask: “what would you do differently?”

principle 04 · proof

Give the agent a place to prove itself.

the agent's workshop — the real environment, not a screenshot

run the tests curl the local API read the logs git diff open the browser
make a change run it for real read the output fix & run again until the proof passes

“Done” must be something the agent can demonstrate — not something you hope for.

Beware of bugs in the above code; I have only proved it correct, not tried it.— Donald Knuth, 1977

principle 05 · context

Every project resets the rules.

Same agent, four different worlds on this domain — what worked in one shipped wrong in another.

KajianQ

strict-citation guardrails; accuracy beats speed

GUNBATTE ROYALE

game feel, netcode, shareable replays

TepuQ & TariQ

toddler-proof taps; zero reading required

RumaQ

shopping flows; AI grouping by store

what changes between projects:

philosophy architecture guardrails development flows developer knowledge

Copy the judgment, not the checklist — re-tune the workflow to the project.

under the hood 01 · context

The context window is the agent's only reality.

Models are stateless: everything the agent knows about your project is whatever sits in the window right now. Every piece of it is paid for in tokens — one token is roughly ¾ of a word, and the window is finite.

the context window your instructions — the prompt AGENTS.md — the project's standing rules the files it opens tool output — tests, logs, pages the conversation so far one shared budget — when it fills up, something must go

how to spend it well:

point, don't pastename the file and let the agent open it — pasted dumps rot the window
keep outputs shorttest runs and logs enter the window too — ask for summaries, not walls
compact long sessionsdistill what matters before the window fills with stale detail

More context is not better context — stale windows rot attention and cost real money.

under the hood 02 · memory

Chat evaporates. Files persist.

Two mechanisms turn what you want into the agent's default behavior — AGENTS.md rides in context from the first second; skills load only when the task calls for them.

AGENTS.md · repo root

# what this project is

KajianQ — classical Islamic Q&A in Indonesian. Strict citations: Qur'an, hadith, pre-600 H classics.

# commands

npm test · npm run dev · merge to main = deploy

# guardrails

every claim carries a source — or say you couldn't find it. never paraphrase a verse.

# definition of done

tests pass · citations verified · CI green

always in context — AGENTS.mdidentity, commands, conventions, guardrails. A few hundred tokens, paid every turn — keep it lean, nest one per folder in monorepos.
loaded on demand — skillsa folder whose SKILL.md carries a name, a description and when-to-use; the instructions enter the window only when relevant — progressive disclosure.
never in context — scriptsskill scripts execute directly; only their short output enters the window.
write the rule once — every session starts knowing it skills are expertise on tap, not in RAM improvements belong in files — that closes loop 03

under the hood 03 · machinery

The model thinks. The harness acts.

The model is the brain — stateless, no hands. The harness is the body: it assembles the context, hands over tools, enforces guardrails. The same brain in a different body behaves like a different animal.

the harness — the body read & edit files run commands & tests browser & screenshots permissions & guardrails context compaction sub-agents hooks · MCP · skills session memory the model the brain · stateless your repo your terminal the live site
picking the model frontier brains (GLM, Claude, GPT…) for design, review & debugging — fast, cheap ones for mechanical edits. Check context window, tool-use reliability, cost.
picking the harness real tools — precise edits, command exec (ZCode, Codex, Cursor…) — guardrails you can trust, compaction & sub-agents, and room to verify: tests, browser, logs.

A great harness makes a good model shippable — a poor one wastes a frontier brain. Matching both to the task is Adapt (05) in practice.

case study · kajianq.ahaqqu.com

KajianQ: the whole loop on a real project.

KajianQ answers classical Islamic questions in Indonesian — strictly sourced from the Qur'an, hadith, and pre-600 H classical texts.

kajianq.ahaqqu.com — early access

Kasih dalil tentang sabar.

“Wahai orang-orang yang beriman! Mohonlah pertolongan (kepada Allah) dengan sabar dan salat.” QS Al-Baqarah 2:153hadith · Bukhari & Muslim

guardrail — no source, no claim: if the agent can't verify a citation, it says so instead of guessing.

build your workflowslice one: one question, one cited answer — every addition after was earned by a pain

flows, not codethe user flow was the spec: ask → answer → show the source

honest gaps“strict citations” was vague — we asked until both sides could state the exact rule

self-improvementthe agent re-reviews its answers, its prompts, its own retrieval quality

self-verificationit runs the tests, curls the local API, and checks each citation before calling it done

adaptreligious content set the hardest guardrails of any project here

your turn

Run one lap tonight.

Pick one small task

a page, a script, a bug — one evening-sized thing

Describe it as a user flow

who does what, what proves it worked — no code

Hand over tools & environment

tests, local URL, logs — let it check itself

Close with a question

“what would you improve?” — then keep the rule

The first lap is the only hard one — start it tonight.

closing

Software development has changed: The machine will do anything you tell it. The only thing left between you and what you want is whether you can form a clear thought and put it into words.

— lauren (@poteto)

terima kasihahaqqu.comgithub.com/ahaqqu