scottparker

AI-Assisted Development Methodology

A way of building with AI agents that keeps the human accountable for every decision

  • Governance and delivery method
  • Developed 2025–2026 across two live projects
  • Documented at v1.0 (about 170 pages) with a companion skill at v1.1
SPECIFICATIONEXECUTIONPRODUCT OWNERa human: sole decision authorityapproves every batchrules on every forkARCHITECT · Claude in chatoptions, specifications,briefings; never decides,never buildsBUILDER · Claude Codeexecutes against the specification,in PR-per-branch increments;escalates ambiguity;never touches governanceThe role is tool-agnostic: another codingagent, or a project’s own pipeline, couldsit here. Claude Code does today.rules onforksbriefing withacceptance criteriaREVIEW FROM SOURCEdiffs, raw test output, CI logsnever builder self-reportOWNER RULES ON EACH DEVIATIONbriefing gap · bad guess · non-compliancePR per branchescalates ambiguitydisposition to the ownerGOVERNANCE lives in the repodecision log · manifest · deferred-items registerthe owner applies every record; the builder never touches it
D-05 · Three roles and the specification → execution → review seam

Context

I build software and structured content as a solo developer, with AI agents doing much of the producing, primarily Claude in chat as the planning layer and Claude Code as the builder. Across two projects (StoryBuilder, an application with an LLM evaluation pipeline, and Content Garden, a content pipeline), I turned the way I work into a written method with its own decision log, versioning, and maturity grades. Its next application is a project whose infrastructure will act as the builder, which is expected to change the briefing form while leaving the lifecycle intact.

The problem

I started experimenting with vibe coding and agentic coding in early 2025, but I quickly ran into limits. The results were fast but unsatisfying, especially an early, loose build of the StoryBuilder project. The agent did excellent infrastructure work and, elsewhere, quietly shipped functionality that didn’t match what I intended. Nothing was wrong with the agent. The specification left room, and the agent filled it with its own choices: some fine, some wrong, and some silently broken. I couldn’t tell which was which until later. Under-specified briefings produced both defects and unintended features that were indistinguishable from the intended functionality until they surfaced downstream. That’s when I took a step back and developed a formal framework and methodology to produce more robust, predictable results with agentic coding tools.

What I did

I made specification quality the primary defect-prevention mechanism and treated everything else as backstop, then cut any ceremony that served neither.

The methodology defines three strictly separated roles. The product owner (me) is the sole decision authority: approving every batch, ruling on every fork, and applying every governance record. The architect (Claude in chat) produces specifications, options papers, briefings, and reviews, and never decides or builds. The builder (Claude Code or similar) executes against specification in PR-per-branch increments, escalates ambiguity, and never touches governance. The builder is an abstraction chosen per project; the seam (specification, execution, then review) is consistent. Deciding and executing never share a context.

Work runs in single-job threads: discussion threads scope and decide and close with a handoff and a thread-start prompt; production threads execute, batch-gated, with my approval before each batch; companion, rework, and review threads propagate and verify. Every thread opens by reconciling state (what has actually run, which document versions are authoritative, whether a handoff has gone stale) and closes by verifying every promised file exists on disk, because the transcript is never the record.

The rules carry evidence grades: settled, provisional, in trial. A rule is promoted when it demonstrably catches something or holds across a second project, not by fiat. Each rule is indexed to an observed failure, and every deviation found in review is sorted into one of three classes (the briefing was silent; the builder guessed instead of escalating; the builder ignored the spec) so the method learns the right lesson.

What was built

The methodology is defined in an approximately 180-page document, developed in conjunction with the architect. The document can be referenced as project knowledge, and the operating rules are also packaged as a skill so a new assistant can act as the architect without loading the full document. A governance layer lives in the repository beside the code: an append-only decision log with errata-only corrections (150+ entries on StoryBuilder, 36+ on Content Garden, 68 on the method itself), a deferred-items register, per-thread dispositions and priming prompts, build-review dispositions per pull request, briefings with acceptance criteria, and archived run evidence.

Discussion threadscope the work,decide the approachHandoffthread-start prompt withinputs and acceptance criteriaPRODUCTION THREADState reconciliationwhat actually ran?which versions are live?Batch 1 · clarificationquestions beforeany executionBatches 2…n · executionone batch, one gate,every timeClose-outfiles verified on disk;decision log, manifest, summaryowner approvesowner approvesCompanion-changes threadpropagate the change acrossthe document setRework threadenrich or refine what shipped;never silently in placeCross-model reviewa different model family,cold, on the gating artifactsOwneradjudicatesgating artifacts
D-06 · Thread lifecycle, batch-gated

From the decision log

DL-149 — Analysis-method errata 001: the age-authenticity cap is two to three times more punitive than §2.2 stated

Date: 2026-09-04 · Thread: Piece 3 · D3-F · run preparation

Decision: An errata addendum is issued to the locked analysis method, correcting four sections and closing one open question. The locked method is not edited in place; the addendum is the instrument the pre-registration provided for. Seven items are corrected, including the cap arithmetic and the aligned-arm age range.

Rationale: The error was found by a zero-spend verification that derived the arithmetic from source and then executed it, the two agreeing cell for cell. It entered because the prior source read paraphrased a code comment rather than the code. The project's own unit-test output had printed the true value on every run since it was written. Standing lesson recorded: any arithmetic a pre-registration depends on is verified by executing the code, and the project's existing test output is the first place to look.

Evidence, supersedes/relates, and type fields omitted here; the full entry is in the repository.

A decision-log entry, lightly abridged: the errata that corrected a locked analysis method before a paid measurement run.

Outcome

The evidence is the failures caught before they cost anything.

  • A zero-spend source read before a $30 measurement run found that the locked analysis method had paraphrased a code comment instead of executing the code, and had the age-authenticity cap two to three times less punitive than the implementation. The method was corrected by a formal errata addendum, the run plan stayed pre-registered, and the run went ahead clean. The standing lesson was written down: any arithmetic a pre-registration depends on is verified by executing the code.
  • A rework thread’s opening reconciliation found two companion threads that had never run, and stopped the work from integrating against a stale baseline.
  • An urgent discussion inserted mid-sequence had silently touched a written handoff’s scope; input reconciliation caught it before the handoff was consumed.
  • A git governance-boundary violation was traced, then codified into a standing rule.

Recent builds have gone right because the briefings were detailed enough that the builder had nothing to guess.

What it shows

Governance design for AI-agent delivery · Specification and briefing standards · Failure-mode analysis and continuous method revision · Evidence and measurement discipline · Right-sizing process for a solo owner

Six of the fifteen failure modes the method defends against

Failure What it looked like Defense
Content stranded in a chat transcript Finished content discussed, never written, lost to context truncation Incremental file writes; close checklist verifies on disk
Execution against a stale baseline Two unrun companion threads found at a rework thread’s start State reconciliation at every thread start
Under-specified briefing The founding failure Briefing standard: buildable without inventing any unstated decision
In-place governance edits A cross-reference error propagated across three entries Append-only log; errata entries only
Inferring behavior from names Material discrepancies caught only by reading source Review from source, never self-report; zero-spend source reads before live calls
A guard never seen to fail Interlocks assumed working Every guard demonstrated red and green; mutation-checked where load-bearing
Known limits, stated plainly

The method assumes one human reads everything and rules on every fork. It does not scale to a team without redesigning the gates, and that redesign is deliberately out of scope. Three copies of the governance documents are synchronized by hand. Whether the cross-model review protocol pays for itself is the open empirical question its pilot is meant to answer. The custom-system builder pattern is untested until the next project.