Skip to content
moaz
HOW I WORK

Notice. Prove. Ask why. Build. Measure.

Every problem I've solved followed the same five moves, whether it was a router fault, a spreadsheet, or a database policy. The agents I work with follow them too.

THE METHOD
  1. Notice: Something is slow, manual, or repeated.
  2. Prove: Measure what it costs: time, complaints, money.
  3. Ask why: Usually a constraint nobody re-examined.
  4. Build: The smallest reliable thing that closes the gap.
  5. Architecture and spec: Requirements, interfaces, decomposition.
  6. Implement: Claude Code or Codex types from the spec.
  7. Review and verify: Read every diff, re-run the proof.
  8. Ship: Then write it down for the next person.
  9. Measure again: Before and after, in the numbers ops already track.
WITH AGENTS

I use agentic coding for speed, and I treat it like directing a team. I own requirements, architecture, decomposition and review; the agent owns typing.

  • Spec first: objective, files, interfaces, constraints, and the command that proves it works.
  • Review everything. A report without command output is not done. An empty diff with a clean exit is a refusal.
  • Every mistake becomes a rule. When an agent gets something wrong I ask how to prevent it, and the answer lands in one of three places: a CI test, a skill, or a constitution file the agent reads every session.
  • The harness decides, not the agent.
ONE AUTOMATION, START TO FINISH

From manual labour to end-to-end automation

An hourly operations report was being built by hand, every hour of every shift: someone opened several exports, copied the numbers into a sheet, checked them by eye, sent it out, and started again an hour later. It ate a slice of every shift, it depended on whoever was on duty, and a bad paste could sit unnoticed until the next run. I automated it end to end. A scheduled Power Automate flow pulls the exports, an Office Script reshapes and validates them, anomalies are flagged inside the message, and it goes out on the hour with nobody touching it. That took a repetitive job off the team that never needed a person, and gave the hours back to actual operations work. The same approach then went into five more manual routines: two fully unattended, the rest cut down to one review and send.

HOW I WORKED IT
  1. Measured the damage: Timed the hourly run, counted the sends and the slips.
  2. Looked at what we already had: Existing tools, enterprise licences, what was allowed.
  3. Researched the options: Power Automate, Workflows, Office Scripts; what each could and could not touch.
  4. Planned the architecture: Scheduled trigger, script for the reshaping, checks before anything is sent.
  5. Built it: Flow plus script, small pieces, each one verifiable.
  6. Test loop: Ran it against real exports until every edge case passed; loud failures, never silent ones.
  7. Showed the impact: Before and after with data: hours back per shift, no manual sends, flags instead of a sheet.
  1. Time

    every hourly run, every shift, back to the team

  2. Consistency

    the same output whoever is on duty

  3. Errors

    bad inputs are flagged, not forwarded

  4. Reach

    five more routines automated the same way

Work numbers are my own account; the code stays with the employer.

RULES THAT DON'T BEND
# CLAUDE.md · raptor (excerpt) ALWAYS ship RLS in the same migration as the table ALWAYS run test:rls before opening a PR ASK before touching auth, payments, or policies NEVER use the service role key client-side NEVER store money as floats
  • A claim needs a falsifier.
  • A report without command output is not done.
  • An empty diff with a clean exit is a refusal, not a success.
  • The harness decides, not the agent.
EVIDENCE