AI-Assisted Programming: Lattice, SPDD, and the Double Feedback Loop

By ⚡ min read

Recent advances in AI-assisted programming have sparked new frameworks, methodologies, and reflections among developers. Rahul Garg's Lattice framework tackles common friction points in AI coding, while Wei Zhang and Jessie Jie Xia's Structured-Prompt-Driven Development (SPDD) draws massive attention. Meanwhile, developer Jessica Kerr highlights the powerful double feedback loop that emerges when we adapt our tools alongside our products. This Q&A explores these ideas, including the concept of internal reprogrammability—a long-lost joy of software craftsmanship. Dive into the details below.

1. What is Lattice and how does it reduce friction in AI-assisted programming?

Lattice is an open-source framework created by Rahul Garg to operationalize patterns that minimize friction when working with AI coding assistants. Traditional AI tools often jump straight to code, silently make design decisions, forget constraints mid-conversation, and produce output that escapes proper engineering review. Lattice addresses these issues by embedding composable skills into a structured layer that enforces proven engineering disciplines. It captures battle-tested practices such as Clean Architecture, Domain-Driven Design (DDD), design-first methodology, and secure coding. By introducing these guardrails, Lattice ensures that AI-generated code aligns with real-world standards rather than generic suggestions. The framework becomes increasingly valuable over time as it learns from project history, gradually applying your specific rules instead of generic ones.

AI-Assisted Programming: Lattice, SPDD, and the Double Feedback Loop
Source: martinfowler.com

2. What are the three tiers of composable skills in Lattice?

Lattice organizes its capabilities into three distinct tiers: atoms, molecules, and refiners. Atoms are the smallest, most basic building blocks—simple, single-purpose operations that handle fundamental tasks like validation or formatting. Molecules combine multiple atoms to form more complex workflows, such as generating a complete module or performing a cross-cutting concern check. Refiners are high-level processes that iterate over existing output, improving quality based on accumulated standards and review insights. This hierarchical structure allows developers to compose custom skills without reinventing the wheel, while each tier benefits from the living context stored in the project .lattice/ folder. Over time, molecules and refiners become finely tuned to the team's conventions, drastically reducing the need for manual corrections.

3. How does Lattice's living context layer work?

The living context layer is a dedicated .lattice/ folder that Lattice maintains within a project. This folder accumulates and evolves the project's standards, design decisions, and insights from code reviews. As the team works through feature cycles, Lattice logs which architectural patterns were preferred, which security guidelines were enforced, and which refinements were applied. The next time an atom or molecule executes, it consults this folder to apply rules that are specific to the project rather than generic defaults. For example, after a few iterations, an atom for input validation won't simply sanitize data generically—it will apply your team's exact validation rules, perhaps even referencing past decisions. This persistent learning mechanism ensures that the AI assistant becomes smarter with use, gradually mirroring the team's unique engineering culture.

4. How can developers install and use Lattice?

Lattice offers flexible installation options to suit different workflows. It can be installed as a plugin for Claude Code, integrating directly into Anthropic's AI coding assistant. Alternatively, developers can download it as a standalone tool to use with any AI system of their choice—whether it's GitHub Copilot, ChatGPT, or other large language models. Once installed, Lattice operates by intercepting the AI's output, applying its skill tiers and living context to ensure the generated code meets your project's engineering standards. The framework is open source, so the community can inspect, modify, and extend its capabilities. This plug-and-play nature makes Lattice accessible to teams already using AI coding assistants while also appealing to those who prefer to experiment with custom setups.

5. What is Structured-Prompt-Driven Development (SPDD) and why did it attract attention?

Structured-Prompt-Driven Development (SPDD) is an approach introduced by Wei Zhang and Jessie Jie Xia that provides a systematic methodology for crafting prompts in AI-assisted software development. The article detailing SPDD generated enormous traffic and sparked numerous questions from developers eager to refine their prompt engineering skills. In response to the high interest, Zhang and Xia added a comprehensive Q&A section to their original article, addressing a dozen of the most common queries. SPDD essentially treats prompt design as a structured development activity, breaking it into phases that align with traditional software engineering practices. This pragmatic, step-by-step framework resonated with developers looking for more control and consistency when working with AI assistants. The methodology emphasizes clarity, iteration, and testability—helping teams move beyond ad-hoc prompting to a repeatable process.

6. What is the double feedback loop Jessica Kerr describes in AI-assisted development?

Jessica Kerr (Jessitron) observed that using AI tools like Claude creates two intertwined feedback loops. The first is the development loop: the AI performs a task, and the developer checks whether the output matches their intent. This is the familiar cycle of generate, review, and refine. The second is a meta-level feedback loop that operates whenever the developer feels resistance, frustration, or annoyance. Those emotions signal that the current tool or process might need adjustment—prompting the developer to change the very system used to build the software. Kerr built a tool specifically to work with conversation logs, allowing her to analyze where friction arises. This dual-loop perspective is powerful because it encourages developers to not only improve the product but also improve the development environment itself. As she notes, with AI making software change superfast, investing in tooling pays off immediately—and it's fun.

7. How does AI-assisted programming bring back the joy of internal reprogrammability?

The concept of internal reprogrammability refers to the ability to mold one's development environment to perfectly suit the problem at hand and personal tastes. Dating back to communities around Smalltalk and Lisp, this practice was largely lost with the rise of complex, polished IDEs—though the Unix command line preserved some of it. AI-assisted programming, particularly through agents and tools like Lattice, is rekindling this lost joy. Developers can now rapidly adapt prompts, workflows, and even the AI's behavior to match their exact needs. As Jessica Kerr points out, frustration or tedium signals an opportunity to reshape the toolset. This meta-level flexibility lets engineers treat their development environment as a living system they can tweak, extend, and optimize. The result is not just faster coding but a more engaging, creative experience—where programming itself becomes an act of continual customization.

Recommended

Discover More

Your Ultimate Guide to Streaming Paramount+ New Releases This Week (May 4–10)Meta Reveals Post-Quantum Cryptography Blueprint: Urgent Migration Lessons for IndustryThe Day Canada's 'Emoji Lake' Vanished: A Satellite View of a Catastrophic Bank CollapseUnmasking JanelaRAT: 10 Key Insights into the Latin American Financial MalwareHow to Overcome the Top 5 Sales Challenges and Boost MSP Cybersecurity Revenue