STACK

The instrument list. Judgment over inventory: one line each on why a thing earned its place. Retired gear stays on the record with a cause, same rule as the graveyard.

LAST UPDATED AUG 26, 2026

HOW I USE AI

Agents get the mechanical breadth: migrations, backfills, fifty-similar-edits, first drafts of anything with a verifiable definition of done. Architecture, taste, and the merge button stay human. Every delegated task ends in a verification loop the agent can run itself — typecheck, lint, test, build, screenshot — because 'the change is done when the check passes' produces a different class of work than 'please make the change'. The loop runs Scout, Plan, Implement, Doubt, and the Doubt pass is read-only on purpose: an auditor that can edit the tests will eventually edit a test instead of a bug. Nothing ships unreviewed.

AI · MODELS

MODELS CHECKED AUG 27, 2026

Named versions with roles. This block rots fastest, so it gets its own freshness stamp.

  • Claude Opusthe build and the deep reasoning — anything where being wrong is expensiveSINCE 2025
  • Claude Sonnetplan, test and deploy stages, where speed of iteration beats depthSINCE 2025
  • GPT (via ChatGPT / codex)the Doubt pass, deliberately from a different provider — a second opinion from the same model is not oneSINCE 2025
  • Claude Haikutried as the cheap tier for mechanical passes — retired: the routing table is Sonnet for speed and Opus for depth; a third tier added a decision without adding a capability, and the cheap pass was usually the one that needed judgment

AI · AGENTS & TOOLS

The harness around the models. Most of the leverage lives here, not in the model choice.

  • Claude Codethe daily driver — skills, subagents and hooks are the parts that changed how work gets done agent harnessSINCE 2025
  • Model Context Protocolhow every tool reaches every model — this site serves its own MCP server zckr.devSINCE 2025
  • GitHub Copilotstill the fastest at the next line; it is a different job from the agent loopSINCE 2023
  • Wispr Flowdictation that keeps up with thinking out loud — most prompts start as speechSINCE 2026

WORKDAY

The day job. Integrations at enterprise scale, which is where the patience for XML came from.

  • Workday Studiothe heavy integrations — orchestration when an EIB is not enoughSINCE 2019
  • EIB + RaaSthe right answer far more often than Studio; reach for the simple one firstSINCE 2019
  • XSLTunfashionable and still the correct tool for transforming a document into another documentSINCE 2019
  • Oxygen XMLwhere the XSLT actually gets debugged — the editor earns its licence on schema-aware validationSINCE 2020
  • BIRTWorkday's reporting layer; the format constraints shape the integration more than anyone expectsSINCE 2020

DEV

What the editor is pointed at most days.

  • TypeScriptstrict, always — the types are the design document that cannot go staleSINCE 2019
  • pnpm + Turborepoworkspace and cache; every project here is one command from running zckr.devSINCE 2024
  • zodcontent is data and bad data fails the build — this is the thing enforcing that zckr.devSINCE 2023
  • Next.jsApp Router, server components first; the site is statically generated end to end zckr.devSINCE 2022
  • Swift + SwiftUIevery iOS thing — Core Data and CloudKit when it needs to survive a reinstall collect.SINCE 2022
  • Xcodeon the beta channel, because the iOS work targets the next release rather than the last twothingsSINCE 2022
  • Pythonscripting and anything that normalises one API shape into anotherSINCE 2018
  • Ghosttythe terminal — fast enough that the agent loop never feels like it is waiting on the shellSINCE 2025
  • VS Codestill where diffs get read, even when the writing happens in an agentSINCE 2018
  • Playwrightthe browser gates — accessibility, structure, and the visual baselines a unit test cannot reach zckr.devSINCE 2025
  • Astroa second front-end for this site, meant to take over the domain — retired: deleted rather than finished — it served no traffic, carried its own seeded content, and held every one of the repo's ten security advisories; its Playwright suites and Lighthouse gate were ported into the Next.js app first, which is the whole reason that app has browser coverage zckr.dev

INFRA

Where things run, and how they get reached.

  • Vercelpushing main deploys production; the gates before the push are what replace review zckr.devSINCE 2023
  • GitHub ActionsCI plus a production gate that fires on deployment_status rather than on someone remembering zckr.devSINCE 2022
  • Proxmoxthe box at home that runs everything not worth paying a cloud for proxmox serverSINCE 2024
  • Tailscalehow the home box is reachable from anywhere without opening a port proxmox serverSINCE 2023
  • Dockercontainers on the box; not part of the web deploy path at allSINCE 2021

HARDWARE

Modest on purpose. The constraint is real and it shapes what gets built.

  • Mac mini · M4 · 16GBthe whole development machine — 16GB is the binding constraint, and it is why local inference sits in the backlog instead of the stackSINCE 2025
  • Proxmox home serverwhere anything long-running lives, so the desktop does not have to stay awake for it proxmox serverSINCE 2024

EVERYDAY

Not code, but load-bearing.

  • Linearone team, one project per repo; issues carry decisions, commits carry the diffSINCE 2025
  • Notionthe longer-form thinking that is not ready to be a note yetSINCE 2021
  • Raindrop.iobookmarks that survive tab bankruptcySINCE 2022
  • Figmadesign when a decision needs to be seen before it is builtSINCE 2021
  • Godot + Blenderthe game side — one-button design as a constraint discipline vroomSINCE 2025

no affiliate links, ever.

also answers at /uses