Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save Reegan01/8d3ce78e743067aecb9da8d624064415 to your computer and use it in GitHub Desktop.

Select an option

Save Reegan01/8d3ce78e743067aecb9da8d624064415 to your computer and use it in GitHub Desktop.
A Practical Framework for AI-Driven Software Development #ai #ai-coding #vs-code

A Practical Framework for AI-Driven Software Development

This framework formalizes a workflow that consistently produces clean, professional, and maintainable software when working with AI coding agents. It is designed to minimize hallucinations, scope drift, and “AI slop” while preserving velocity and creative leverage.

The core idea is simple: treat AI as a highly capable but short-term contractor that must be re-briefed from first principles at every meaningful phase of work.


Foundational Documents (Non-Negotiable)

Every successful AI-assisted project I’ve run converges on the same prerequisite structure. Skipping or weakening any of these documents reliably degrades output quality.

1. Project Technical Specifications (Source of Truth)

This is a single, long-form, monolithic Markdown document that defines the project in exhaustive detail.

Characteristics:

  • Structured, hierarchical, and explicit
  • Written for machines and humans
  • Free of ambiguity, hand-waving, or implied logic
  • Stable over time, evolving only through controlled edits

Purpose:

  • Serves as the global source of truth
  • Anchors all AI behavior across every sprint
  • Eliminates the need for agents to “infer intent”

This document is always attached to AI interactions. It is never summarized, paraphrased, or partially re-expressed for the agent.

2. Plan of Action (Sprint Translation Layer)

The Plan of Action is derived from the spec, not parallel to it.

It translates the monolithic spec into:

  • A chronological sequence of narrowly scoped coding sprints
  • Each sprint small enough to complete in a single focused session
  • Each sprint large enough to produce tangible progress

Key properties:

  • Explicit boundaries (“do X, do not touch Y”)
  • References specific sections of the spec when context is required
  • Optimized to prevent hallucinations caused by long-context reasoning

The Plan of Action is not creative. It is procedural.


Project Creation Phase (Sprint Execution)

Development proceeds strictly sprint-by-sprint using AI coding agents inside Visual Studio Code.

Sprint Initialization Protocol (Critical)

Every sprint must begin the same way. Deviations here are one of the fastest ways to corrupt a project.

  1. Start a fresh chat

    • Never reuse a prior sprint conversation
    • Context carryover causes subtle contradictions and scope bleed
  2. Attach required documents

    • Project Technical Specifications
    • Plan of Action
  3. Paste the sprint instructions verbatim

    • Do not paraphrase
    • Do not summarize
    • Treat the sprint text as executable instructions
  4. Explicitly instruct the AI to:

    • Implement only the current sprint
    • Update the root README.md to reflect changes
    • Commit all changes via git with a clear, intentional commit message

This framing positions the agent as a deterministic executor, not a collaborator guessing intent.

Sprint Completion Criteria

A sprint is considered complete only when:

  • The requested functionality exists and works
  • Documentation reflects reality
  • The repository is in a clean, committed state

No “I’ll do that next sprint” debt is allowed inside a sprint.

Repeat this process until the project reaches MVP status.


Transition to Maintenance Mode

Once an MVP exists, development shifts from creation to controlled evolution.

The rules become stricter, not looser.


Project Maintenance Phase (Controlled Iteration)

Maintenance cycles reuse the same mental model but operate on differences, not greenfield intent.

1. Versioned Specification Updates

The original Technical Specification document is never replaced.

Instead:

  • Ambiguities are clarified
  • Bugs and flawed assumptions are corrected
  • New requirements are appended with precision

Hard rules:

  • Strict versioning is mandatory
  • Every edit must be intentional and traceable
  • The spec remains the canonical artifact

The diff between spec versions becomes the primary driver of work.

2. Diff-Driven Action Plans

For each spec revision:

  • AI is used to analyze the delta between versions
  • Only those deltas are translated into a new Plan of Action
  • The Action Plan version matches the spec version exactly

This ensures:

  • No accidental re-implementation of stable components
  • No silent scope expansion
  • Clear auditability of why changes exist

3. Maintenance Sprint Execution

Each maintenance sprint follows the exact same execution protocol as initial development:

  • Fresh chat per sprint
  • Attach updated spec and matching action plan
  • Paste sprint text verbatim
  • Enforce documentation and git hygiene

The only difference is what the sprint targets—not how it is run.


Why This Works

This framework succeeds because it aligns with how AI systems actually behave:

  • They are strong executors, weak historians
  • They respect explicit structure more than implied intent
  • They degrade rapidly under long, meandering conversations
  • They perform best when treated as stateless specialists

By externalizing memory into documents and resetting conversational context at every sprint, you prevent entropy from accumulating inside the model.

The result is software that feels intentionally designed rather than statistically assembled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment