Defer the Details
Intent
Don't try to fix everything in one sitting. Tell the model to record open questions so you can focus on a single problem.
Motivation
Getting accurate results from an LLM-augmented code assistant can feel like an exercise in detailed specification. You write guidance on architecture and code organisation, technology choice, instructions for what tests to create, how to run the test suite, user interface patterns that your product uses… the list goes on.
You then prompt the assistant to generate code, providing comprehensive instructions on the expected outcome, and there’s a chance that it gets it wrong. Not only might the generated code display behavior that diverges from your expectations, but the agent might not follow all those guides and specifications you created.
The comprehensive guidance you create overwhelms the model’s attention layer, so even if it and your existing code fit in the model’s context window, the model can’t treat every instruction as equally important.
Additionally, you might notice some issues that you didn't think of when you created your initial prompt. Some of them are decisions you need to make, and others are discussions you need to have with stakeholders. These issues don’t all need immediate attention, and trying to solve them all in one session might represent too much work.
Identify the things you need to resolve now, and the things you can leave for later. If the solution is clear, get the model to Write Down TODOs that you return to. Otherwise, generate a list of questions that you review and address at another time, if at all.
Applicability
Defer the Details when you make a complex change, or start a large project.
You can Defer the Details at any stage in the process, including when you Stop and Plan to define your problem statement: don’t specify information about things you can solve later. Defer the Details when You Review the model’s output, or when the coding assistant asks you questions about your preferred approach. You can Defer the Details on questions that come up when you Disclose Ambiguity, if you don’t need to resolve the questions now.
Consequences
Defer the Details offers the following benefits:
- Deconstruct large, complex problems into smaller, tractable ones.
- Manage context and attention by taking Baby Steps towards a solution.
- Make progress without getting indundated by details.
Example
Deferring Feature Details
Consider a project plan that includes this feature description:
# Epic: Music File Loading
- As a DJ, I want to open a local music file into Deck 1 using a file picker, so that I can load a track onto the first deck.
- As a DJ, I want to open a local music file into Deck 2 using a file picker, so that I can load a track onto the second deck.
- As a DJ, I want to see the name of the loaded track displayed on each deck, so that I know which track is cued up.
The source file is available at music-file-loading.md.
A prompt to Devstral 2 running in Mistral Vibe that expands this description into a detailed task breakdown can already Defer the Details by explicitly including instructions to put off some decisions:
Create task definitions for user stories that fulfil the @music-file-loading.md epic. Don't make assumptions about what music file formats the app supports.
The agent generates task descriptions that explicitly leave out the choice of file format, for example:
# Task: Load Music File into Deck 1
**Epic**: Music File Loading
**User Story**: As a DJ, I want to open a local music file into Deck 1 using a file picker, so that I can load a track onto the first deck.
**Acceptance Criteria**:
- A file picker dialog is available for Deck 1
- The user can select a local music file from their filesystem
- The selected file loads into Deck 1
- The track name is displayed on Deck 1's UI
**Notes**:
- Support any music file format that the browser's audio API can handle
- No assumptions about specific file formats
The source file is available at music-file-loading-deck1.md.
Applying Disclose Ambiguity to address any ambiguities in the task description at implementation time also offers an opportunity to Defer the Details:
Implement the user story @music-file-loading-deck1.md. If there are any ambiguities in the task description, ask the user how to resolve them and update the task description with the answer.
The model generates the question “Should the playlist show additional metadata like file size or duration when available?”, which I decide to defer by replying “Record that question to decide later.”
Related Patterns
Stop and Plan to prioritize tasks to complete now, and tasks to put off until later.
Write Down TODOs when you know what you need to do, and that you don't need to do it yet.
Save Output to File to record a log of the open questions you still need to answer.
No comments to display
No comments to display