Local Agentic Harness
The workspace I use to build with AI agents without lowering the bar.
- Spec written with scenario ids
- Audit: clear
- Tests written first
- Build
- Review: no blockers
- Live QA with evidence
- Local CI on the head commit
- Merged with a merge commit
Agents start every session with no memory, and rules written in prose are only advice. This harness puts the rules in files, hooks, scripts and gates, so a one-line idea becomes merged, tested pull requests, and the agents stop only for decisions that are genuinely mine.
Measured
- reusable skills, from spec to post-release smoke
- 11
- specialist subagents per project
- 8
- products built on it so far
- 3
Problem
Fast agents are easy. Agents that don't skip tests, don't leak secrets, don't approve their own specs and don't force-push to main are the hard part, and that only works when the rules can't be skipped.
Architecture
- Model
- Service
- Interface
Each change starts as a spec with scenario ids. An auditor agent checks every claim against the code, and the spec can only be approved by a script that refuses while questions are open. Tests are written first and named by scenario, the builder can't edit them, and one combined review covers code, security and privacy. Live QA in a real browser keeps screenshots as evidence, local CI runs on the exact head commit, and after release a smoke sweep opens every route.
Decisions
Rules live in hooks, not prose
Two blocking hooks per project stop pushes to main, force-pushes, skipped git hooks, reads of .env files, secret-looking text in edits and self-written approval lines. Each rule has its own tests.
Coverage is proven, not claimed
A scenario counts as covered only when a test that actually runs names it. Skipped or focused tests don't count.
Generic skills, project overrides
Eleven skills live once in the workspace and load everywhere, and a project's own version of a skill always wins.
Ask the human only what's theirs
Money, legal promises, accounts, production and brand decisions are batched into one message with a recommendation. Everything else is decided, logged and reported.
Hard parts
Honest results
Skipped steps report as skipped, never as passed, and QA failures are labelled as product, fixture or harness problems.
Agents working in parallel
Each change gets its own worktree, a lock allows one heavy job at a time, and agents never share files.
Learning from mistakes
A retro step turns each real mistake into a written lesson and, where possible, into a hook or a test.
Quality
- Used to build AskMyChats, PanelCut and ssTitles.
- Local CI on every pull request runs secret scanning with gitleaks and semgrep.