← kamiljan.com
Case studies →CV →

The AI system behind the work

Two runtimes, hardened prompts, event-driven quality gates — counted, not estimated

My CV says AI coding agents write the code while I own the spec, the review and the deploy. That claim deserves evidence, so this page shows the machine itself: what runs, what it enforces, and where its limits are. Everything below is live today, and every number was produced by a shell command on the day this page shipped — counted, not estimated.

1,220logged agent sessions
124skill definitions
61secrets in the vault
63self-audit reports
6gates to production
4scheduled agents
422lines of standing rules
2agent runtimes

The whole machine on one map

KAMILspec · architecture · review · deployClaude Coderepos · CI · production appsGitHub · browser · mail via MCPClaude Desktop (Cowork)mail · documents · researchoutreach · design · opssame rules · same memoryVAULT61 secretskeys injected as env —never visible in chatMEMORY300+ notesloaded at session start,sessions self-documentGATESlint · types · tests · secret scan · CI · AI reviewMAS GroupWorkshop 3.0Flytkamiljan.comclient sitesDirection flows down, evidence flows back up. Nothing reaches the bottom row without passing the gate band.

Two runtimes, one system

  • Claude Code — the terminal runtime for repository work: this site, the production apps behind MAS Group, Flyt and the garage system, plus their CI. It talks to GitHub, mail, the browser and the desktop through MCP servers.
  • Claude Desktop (Cowork) — the operations runtime: mail triage, documents, research, outreach, design. Different tools, same memory and the same rules.
  • 124 skills — versioned instruction packages the system routes tasks to: book typesetting, client pricing, brand contexts, systematic debugging, PDF pipelines, SEO. That count is the coding runtime alone, on the day this page shipped; the desktop runtime carries its own set on top. A router picks the pipeline and announces it before work starts, so a task hits a tested recipe instead of improvisation.
  • Model routing — the strongest model is reserved for hard reasoning; routine tool work and lookups go to cheaper tiers. Capacity is a budget, and the system spends it deliberately.

Every prompt is hardened before the model sees it

Three protocols are injected automatically — the model does not get to skip them on a bad day.

  • Anti-hallucination (PROMPT-GUARD) — ambiguity triggers questions, not execution. Facts require reading the source first — open the file, fetch the page, check the schema. “Done” only exists with proof: an exit code, test output, an observed result.
  • Anti-sycophancy — my own claims get verified before the system agrees with me, and “are you sure?” triggers re-derivation from evidence rather than a polite reversal. Reports end with a status: VERIFIED, UNVERIFIED or FAILED.
  • Compression (CAVEMAN) — reports are what was done, the proof, and what is next. Words get cut; evidence, edge cases and risk warnings never do.

Quality is enforced by events, not willpower

Hard gates fire on what happens, not on anyone remembering to check.

LIVEpromptprotocol injectededitlint+ typechecksession endtests must be greencommitsecret scan+ lintpushpre-push gateCIgitleaks+ AI reviewany red result stops the change right there — bypassing the hooks is banned by standing ruleThe life of a change. Six gates fire on events, not on anyone remembering to check.
  • On every file edit — lint and typecheck run automatically and errors feed straight back to the agent that made the edit, in the same session.
  • On every session end — a stop gate refuses to close a session that leaves tests red.
  • On every commit and push — git hooks run lint, typecheck and a zero-dependency secrets scan. A key physically cannot be committed. Bypassing the hooks is banned by standing rule.
  • On every push to GitHub — CI repeats the same gates plus a gitleaks scan. Red CI means no merge, no exceptions.
  • Before “done” — seven review plugins are wired in, four of them Trail of Bits security suites: differential review, insecure defaults, supply-chain risk, agentic-actions audit. Significant changes get an adversarial pass, not a vibe check.

Secrets the model never sees

VAULT61 secrets · self-hostedBRIDGEinjects as env varsTARGET PROCESSdeploy · API call · CIchat ✕code ✕logs ✕The agent can use a credential it can never read.
  • Self-hosted vault — 61 API keys, tokens and logins live in a vault running on my own hardware. A bridge injects them as environment variables directly into the target process. Values never appear in chat, code or logs — and the commit-time and CI scans exist to keep it that way.

Agents on a schedule

Four scheduled agents; three run on their own, one is deliberately manual.

PR reviewerweekday mornings
Guard healthweekly
CVE watchmonthly
Repo cleanermanual only
  • PR reviewer (weekdays) — reviews open pull requests across the fleet like a senior engineer. Mechanical fixes land as separate commits with proof attached; design and security findings stay comments for me to judge.
  • CVE watch (monthly) — a deterministic dependency scan of the live products first — zero model tokens when clean. The model is only woken on findings, fixes are patch/minor only, and they arrive as pull requests with evidence, never direct pushes.
  • Guard health (weekly) — audits that the quality system itself is still wired: hooks present, gates firing. The system checks the system.
  • Repo cleaner (manual only) — improvement sweeps run only when I point them at a repository. Automation that could “find itself work” is switched off by design.

Memory and self-improvement

  • Persistent memory — a local knowledge vault — 300+ notes across memory, knowledge and session logs — is loaded at the start of every session, and sessions document themselves when they end. The whole vault is also embedded into a vector index, so past decisions are searchable by meaning, not by filename.
  • Self-audit loop — a recurring audit reads raw session transcripts and proposes a handful of fixes, each with cited evidence and a verification command. 63 of those reports exist to date; only the fixes I approve become standing rules.
  • The same method, applied to me — my code-reading practice is built like the rest of the system — daily, verified, public: github.com/kamiljan11/code-reading-quest.

Honest limits

Foundation models via API — I do not train or fine-tune them. There is no formal eval harness yet. Reliability is proven at SME scale, not hyperscale. The point of this page is not that the system is finished — it is that the failure modes of working with AI are engineered against, in the open, instead of being wished away.

This page went through the pipeline it describes: drafted by an agent, pushed through the gates above, reviewed and shipped by me. The numbers came from shell commands, not from memory.