TL;DR
QCR is a technique for reusing an LLM's past experience: instead of pasting the entire history of solving a similar task into the prompt, the model first turns it into a compact four-part note — which action template stays the same, which values need to be re-checked (names, dates, numbers — anything that changed), when this template doesn't apply at all, and how to verify the final result.
The key finding: the longer the past history you copy into the prompt for a new similar task, the worse the result. The model starts literally copying old details — the previous client's name, an old order number, an outdated date — instead of finding the current values for the new task. The full history doesn't help so much through its volume as it contaminates the context with stale facts, and that outweighs the benefit of having more information.
QCR solves this with an explicit split: before showing the model a past success, it's turned into a short note with four fields — what to always do the same way, what needs to be found out again, when not to use this template, how to check that everything was done right. The model works with this note, not with the raw history.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
STEP 1 (separate request): Give the model a past successful example of solving a similar task
→ ask it to break it down into 4 fields:
1. Workflow — the unchanging sequence of actions
2. Bindings — specific values that must be RE-checked/found out again
3. Applicability — conditions under which this template does NOT fit
4. Verification — how to check the final result
→ output format: a short note (half the length of the original history)
STEP 2 (new request): Give the model this note + a description of the new task
→ the model solves the new task using the template, but doesn't drag in old values
→ output format: the solution to the new task + an explicit check against the guardrail
Example in Action
Task: A recruiter negotiated with a candidate for a manager role and closed the deal: agreed on salary, start date, and discussed relocation. Now they need to run the same kind of negotiation with a new candidate for a similar role, but with different terms.
Prompt (step 1):
Here's a thread where I successfully reached an agreement with a candidate, Jake, to hire him as a
sales manager ($95k salary, start date March 1, no relocation):
{paste the thread}
Break this successful case down into 4 parts:
1. Workflow — which sequence of negotiation steps worked (regardless of the details)
2. Bindings — which specific values (salary, dates, terms)
I'll need to find out/discuss again with a new candidate rather than take from this case
3. Applicability — in which situations this negotiation approach won't work
4. Verification — how to check that the negotiation with the new candidate went just as well
Give me a short note, without quoting the old thread.
Result: The model produces a compact 4-point note: for example, workflow — "first state the salary range, then discuss non-monetary terms, then lock in the start date in writing"; bindings — "salary, start date, relocation — all of these need to be discussed from scratch with the new candidate"; applicability — "the approach won't work if the candidate already has a competing offer with a deadline"; verification — "the negotiation succeeded if the candidate confirmed the start date in writing." You can then paste this note into a new conversation about negotiating with the next candidate — with no risk that the model accidentally offers the new person Jake's salary or start date.
Why It Works
An LLM's weakness: when the context holds a long past history with specific names, dates and figures, the model tends to literally repeat those values for the new task — they're "right there" and look like a ready-made answer, even if they're no longer relevant. This isn't a logic error; it's the effect of every detail in the context looking equally important, so old specific numbers are indistinguishable from current ones for the model.
An LLM's strength: the model is great at separating the general from the specific if you ask it explicitly — pulling out a pattern separately from the specific numbers is a standard structure-extraction task that LLMs handle well.
QCR uses this: it makes the model first explicitly name what in the past case is a rule and what is a temporary value that needs re-checking. From then on the model works not with the full text but with this markup, and it has no temptation to copy an old number, because right next to it is the explicit note "this needs to be found out again."
Control levers: - Number of fields (4) → for simple repetitive tasks you can trim to 2 (workflow + bindings); for high-risk tasks (legal documents, finance) add more verification conditions. - The Verification field → rephrase it for your task ("check that the amount matches the contract" instead of a generic "check the result"). - Applicability → explicitly add your own conditions for not reusing the template — this protects against blindly copying the approach where it doesn't fit.
Prompt Template
Here is a successful past case of solving a similar task:
{text of the past thread/solution}
New task:
{description of the new task}
Break the past case into 4 parts and give a short note (without quoting the original text):
1. Workflow — which sequence of actions/approach worked and is still relevant
2. Bindings — which specific values (names, dates, numbers, terms) from the past case
do NOT fit the new task and must be obtained/clarified again
3. Applicability — under what conditions this approach doesn't apply to the new task at all
(when it's better not to use this template)
4. Verification — how to check that the new task was solved as successfully as the past one
Use this note to solve the new task — don't copy values from the past case.
Fill in: {text of the past thread/solution} — any past successful result (a negotiation, an email, a report, code, a plan); {description of the new task} — a new similar situation with different details.
🚀 Quick start — paste into a chat:
Here is the QCR template (reusing past experience). Adapt it to my task:
{your task}. Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask which past case to use and what exactly changed in the new task — because without that it can't separate the "rule" from the "values to re-check." It will take the structure from the template and adapt it to your situation.
Limitations
⚠️ You need a genuinely similar past example: if you don't have a successful past case with a similar task structure, QCR has nothing to extract a template from — the method doesn't create experience from scratch, it only repackages what already exists.
⚠️ Doesn't work if the tasks are structurally different: the method helps when the details change (names, dates, numbers) but the approach to the task stays the same. If the new task needs different solution logic, the note won't save you.
⚠️ You have to find the past example by hand: in the study, an automated search over a database did this. In a chat, you'll have to decide yourself which past conversation is relevant to the new task — the model won't do it for you.
Resources
Yifei Li, Heng Wang, Lingling Zhang et al. (Xi'an Jiaotong University), "Beyond Retrieval: Query-Conditioned Reuse of Long-Horizon Agent Trajectories." Tested on the agent benchmarks WebArena, WorkArena, AppWorld.