Autonomous engineering, under review
Autonomous software, orchestrated.
We run a disciplined fleet of specialized AI engineers that plan, build, review, and ship production code. Every change is planned, built and reviewed by separate agents, tested in a real browser, and shipped only when it passes. You set the rules; deterministic code enforces them.
Alex Fox, Principal: a technology director who has shipped and operated agent systems in production, inside a real organization with real constraints. Background and history.
Start a conversation See how it works
- Risk-tiered approvals
- Browser-tested changes
- Reviewer ≠ author
Mission control, representative run
The Fleet
- Architect , status: active
- Engineer , status: active
- QA , status: active
- SEO , status: active
This run
This fleet maintains and operates pna.agency itself. The cards above are real, shipped changes to this site — not client work.
-
Plan
1Architect
card hover contrast fix merged
PlanFix the card-hover text contrast regression by correcting the token.
Checks4.88:1 ratio verified manually for the corrected --bg-card-hover token; the automated check-contrast.mjs hover-pair check was first added in PR #29.
Reviewer--bg-card-hover moved to #0d110e, lifting hover-state body text from a regressed 4.24:1 to 4.88:1.
PRs PR #28
-
Build
1Engineer
LinkedIn sameAs in schema verified on live site
PlanAdd the company LinkedIn URL to the Organization schema's sameAs array.
ChecksRendered page source on pna.agency checked for the LinkedIn URL in sameAs.
ReviewersameAs now lists the company LinkedIn profile alongside the existing identity links, confirmed live.
PRs PR #17
-
Review
1QA
security headers: allowlist scaffold merged
PlanStand up the security-headers allowlist and filter, with header values held back for later PRs.
ChecksReviewed the agent-owned src/data/security-headers.ts data file and the allowlist/filter kept in worker/index.ts.
ReviewerPR #18 shipped SECURITY_HEADERS as an empty object, an ALLOWED_SECURITY_HEADERS allowlist and a withSecurityHeaders() filter in worker/index.ts — no header values yet. nosniff shipped in PR #19. CSP was deliberately held back pending contact-form/Turnstile QA, and followed in PR #26.
PRs PR #18, PR #19, PR #26
-
Ship
1SEO
per-page sitemap lastmod verified on live site
PlanGive each page in the sitemap its own lastmod instead of one build-time date for the whole site.
ChecksChecked astro.config.mjs's pageLastmod() against git history and the generated sitemap.xml.
Reviewerlastmod is conservative, not exact: it's the latest commit to that page's own src/pages file, or to any file under the shared src/layouts, src/components, src/data or src/styles directories — whichever is newer. A shared-component change bumps every page's lastmod, so it isn't an independent per-page content date.
PRs PR #20
-
Gate history
2QA
card-hover contrast: regression, fix, hardened gate merged
PlanFix the card-hover contrast regression, then harden the gate that didn't check that pair yet.
ChecksPR #28's token fix was verified manually (4.88:1), since the hover pair wasn't in scripts/check-contrast.mjs's checked list yet; PR #29 added it to the automated gate.
ReviewerCard-hover body text had regressed to 4.24:1 and passed the contrast gate, because the hover pair wasn't checked yet. PR #28 fixed the token (--bg-card-hover to #0d110e), reaching 4.88:1. PR #29 then added the hover pair to scripts/check-contrast.mjs, so the same regression would now fail the build.
PRs PR #28, PR #29
How we engage
Three ways we put agents to work
From identifying the right opportunity to deploying a production-grade system, and keeping it running.
Claude Workshops: zero to effective
We run hands-on sessions for teams and individuals. Not a demo. Structured for the actual people in the room, using real workflows from your organization.
See how BuildYour own AI chief of staff
Custom AI assistants and multi-agent systems built around your workflow, voice, and context. Built for individuals and small leadership teams who need leverage, not software.
See how OperationWe build things. Then we run them.
We don't hand off a prototype and disappear. Every system we build, we are prepared to run. That is how we know it actually works.
See howWhy us
Built by a principal who runs systems like yours
Not a lab. Not a research team. Our principal has shipped AI agents into production inside a real organization, with real constraints: procurement, audit, identity, on-call, and people who did not ask for a new tool. The systems we build for you are the ones we run ourselves.
The best agent is one your team doesn't have to think about. It runs, it reports, and it makes the next problem easier to solve, not harder. Alex Fox, on why we build this way
Ready to put AI agents to work?
Tell us what you are trying to build. If it is a fit, in thirty minutes we will identify one high-impact automation opportunity together.