← All frameworks AI Collaboration

Underspecification Diagnostic

When a generative model returns something bland, the reflex is to blame the model and reach for a different one. This framework says the output was correct and the question was not. A model asked an underspecified question returns the centre of its training distribution, because the centre is the answer with the lowest expected error across every possible person who could have asked. Generic is not a malfunction. It is the optimum for a question that never said who was asking or what would make the answer right.

Built with the Framework Builder methodology

Download .framework.json

Layer 1 · Principles

Layer 2 · Systematic Approach

Gate on whether specification is the right move, recover the three missing inputs in writing, then prove the file earns its place by comparison rather than by belief.

  1. Gate: does the thing you want exist to be captured?. Three cases, three routes. Exists and looks like everyone else's: generate, and specification finishes the job. Exists and is specifically yours: capture it instead, because no prompt closes a gap in what the model was never shown. Cannot be captured at all: generation is the only route and the best case available. Only the first and third cases continue.
  2. Pick the repeated task, not the interesting one. Choose a task you have run enough times to be right about. A task done twice yields a preference, not a standard.
  3. Write the standard. What makes an output right or wrong, written so a competent stranger could apply it without asking you a question. The test is portability. 'Make it professional' fails, because two strangers would apply it differently. 'Every claim about the client's business traces to something they said on the intake call, and anything I inferred is marked as an inference' passes, because it can be checked.
  4. Write the context. What is permanently true about your customer, constraint and market that the model has no route to. The three objections you always get. The regulator, the season, the price ceiling. Permanence is the filter.
  5. Write the reasoning. Not what you decide, how you decide. The order you weigh things in, the tiebreaker, the condition under which you would do the opposite. Most people skip this layer, and it is what separates a style guide from a decision procedure.
  6. Run the task twice and set the outputs side by side. Once cold, once with the file in front of the model. Do not judge the constrained run alone: an output read in isolation is judged against your memory of what you wanted, which is the thing you failed to write down.
  7. Read the comparison as a diagnostic, not a result. Better means the file is real. Not better means the file describes something you have not actually decided, and that is the finding. Do not fix it by adding words; return to step 2.
  8. Put reading the file into the run order. A specification nobody is required to consult reproduces the problem it was built to solve, quietly, because the file still exists and still looks like a control. The artifact is not the control; the requirement to read it is.

Layer 3 · Force Multipliers

Layer 4 · Success Metrics

Leading indicators

Lagging indicators

Failure modes

Layer 5 · Implementation

Required to start

Works best with

You are done when

Built with the Framework Builder methodology. Get the skill →