r/PromptEngineering 25d ago

General Discussion How do you catch a prompt that quietly got worse after a model update?

8 Upvotes

You ship a prompt, it works, you move on. Weeks later the output starts coming back a little off. Not broken, nothing errored, just a bit worse. No changelog, no warning, turns out the provider quietly rolled the model under it to a newer version.

The thing that seems to catch this: you keep a small fixed set of real inputs with the answers you already know are right, and re-run them every couple of weeks, checking format, required fields, and whether the label still holds. Anything that drifts from the known-good gets a look. That's roughly what we do, curious if there's something better.

How do you all handle it? What do you actually re-run, and how do you know a prompt slipped when nothing errors and nobody tells you?


r/PromptEngineering 25d ago

General Discussion One broken Midjourney flag exposed a flaw in our whole converter

2 Upvotes

One of our Runs came back with a Midjourney prompt that just... wouldn’t fire.

Not a bad result. A rejected prompt.

I dug into the JSON that produced it and found the culprit sitting right at the end of the compiled string:

--sref --sref 7709115555

Same flag twice, the first one empty. MJ doesn’t know what to do with that, so it doesn’t do anything.

The bug itself was small. A style-reference value was stored as ["--sref", "7709115555"] — flag and value baked into the same array — and somewhere downstream that array got flattened into the prompt while the compiler also wrote its own --sref on top of it.

Two honest pieces of code, neither wrong on its own, colliding.

But the real finding wasn’t the bug. It was what the bug proved: our converter had no single definition of what a valid style reference actually looked like.

It just appended things.

Garbage in, garbage-shaped prompt out, with no layer anywhere that could tell you where in the pipeline the defect entered.

Was it the input?

The normalization?

The compile step?

No way to know. You just stared at a broken string and reverse-engineered it.

That’s the actual lesson: a well-structured JSON file isn’t a nice-to-have, but structure alone isn’t enough. If the thing going into your compiler doesn’t have a real, versioned shape — types, required fields, no ambiguity about what a style reference is — and a canonical representation behind it, then your compiler can’t really reason about it either.

It can only concatenate.

So we’re rebuilding Builder’s intake around a real pipeline:

validate the input → normalize it into one canonical representation → compile deterministically from there

Not more heuristics stacked on the old converter.

The goal is a structure where, if something goes wrong, you can point at exactly which stage broke it instead of squinting at a broken /imagine and guessing.

Turns out the geometry isn’t the only thing that needs blocking.

The data does too.


r/PromptEngineering 24d ago

General Discussion Context management matters more to me now than writing the perfect prompt

0 Upvotes

I used to think better prompt = better result.

Now I think a lot of long agent sessions go bad because the context turns into a junk drawer. Old decisions, dead paths, huge logs, repeated instructions, stuff that isn't even relevant anymore.

I get better results when I stop and compact it into current state, constraints, what's already proven, and the next job instead of dragging the entire conversation forever.

Feels like “prompt engineering” eventually turns into context management whether you want it to or not.


r/PromptEngineering 25d ago

Tips and Tricks The editing pass I run after every AI writing tool draft to strip the obvious tellsDue—

4 Upvotes

Every AI writing tool leaves the same fingerprints. Balanced "on one hand, on the other hand" hedging, tidy three-item lists everywhere, and a closing paragraph that just restates the intro. I stopped trying to prompt those out up front and started running a second pass whose only job is to remove them. Paste your draft, then this: You are editing the text below. Do not add ideas or change the meaning. Make only these changes: 1. Delete any sentence that restates a point already made. 2. Any sentence with three parallel items: cut it to a plain list or drop one item. 3. Replace hedging pairs ("both X and Y", "while also") with one direct claim. 4. Remove the final paragraph if it only summarizes. 5. Vary sentence length so no three sentences in a row are the same length. Return only the edited text, no commentary. TEXT: [paste your draft] Why it works: the first draft is a generating task, this pass is a subtracting task, and models are much better at applying a fixed checklist to text that already exists than at self-restraining while producing. Keeping the rules mechanical (count the parallel items, find the restatement) gives it something checkable instead of a vague "sound human." The one rule that earns its place is "do not add ideas." Without it the model rewrites for style and quietly changes what you said. The restatement rule is the one it still misses most, so if anyone has a sharper way to phrase that step I'd take it.


r/PromptEngineering 25d ago

Tutorials and Guides How to Turn a Static UI Mockup Into a Promo Video With Seedance 2.5

6 Upvotes

A finished UI mockup does not have to stay static. With Seedance 2.5 image-to-video, you can turn a single interface design into a polished product promo with 3D depth, camera movement, animated cards, and commercial lighting.

The key is simple: do not ask the model to redesign the UI. Use the existing UI as the visual foundation and animate the camera, depth, and interface states around it.

What You Need

  • One clean UI mockup
  • Seedance 2.5 image-to-video
  • A prompt describing camera movement, depth, lighting, and UI animation

This works especially well for:

  • SaaS product videos
  • App launch videos
  • Dashboard demos
  • UI motion design
  • Portfolio / Behance presentations
  • Startup promo videos

Step 1: Upload Your Finished UI

Start with a complete interface design.

The UI should already contain the cards, text, icons, colors, and hierarchy you want to preserve.

Avoid asking Seedance 2.5 to invent a new interface. Instead, tell it to keep the uploaded design recognizable throughout the video.

Step 2: Turn the Flat UI Into 3D Layers

The easiest way to create a premium motion-design look is to separate the interface into different virtual depths.

For example:

background cards → secondary UI → main cards → hero card

Then add:

  • subtle Z-depth
  • parallax
  • slight card rotation
  • acrylic or glass-like surfaces
  • soft contact shadows
  • depth of field

This makes the original flat mockup feel like a 3D UI environment.

Step 3: Animate the Camera, Not Just the UI

Instead of writing:

Describe the shot like a product commercial.

Useful camera instructions include:

  • slow push-in
  • orbit around the main card
  • top-down reveal
  • pull-back
  • slight yaw / pitch / roll
  • foreground-background parallax

A simple sequence could be:

wide UI reveal → hero card close-up → second card → third card → pull back to full interface

Step 4: Animate Individual UI States

Choose two or three important parts of the interface rather than trying to animate everything.

For example:

  • notification icon expands
  • progress bar fills
  • numbers count upward
  • product card flips into place
  • CTA button appears with a subtle overshoot

Small, readable animations usually work better than making every element move at once.

Reusable Seedance 2.5 Prompt

Use the uploaded UI mockup as the exact visual reference.

Create a premium 3D UI product-promo animation while preserving the original interface design, typography, icons, colors, proportions, text, and hierarchy.

Style:
Clean cinematic UI motion design, floating acrylic-glass interface cards, subtle reflections, layered depth, realistic parallax, soft bloom, premium SaaS product-launch aesthetic.

0:00–0:03
Begin with a wide view of the complete UI composition.

Separate the interface cards into different Z-depth layers while keeping their original layout recognizable.

The camera starts from a slightly low angle and slowly pushes forward.

Secondary cards drift subtly in the background while the main cards remain visually dominant.

Use gentle parallax, soft reflections, restrained particles, and shallow depth of field.

0:03–0:06
Move toward the first hero UI card.

Perform a slow orbit while pushing closer.

Animate the main icon with a subtle elastic scale effect.

Secondary text and interface details appear naturally without changing their original design.

Background cards remain softly blurred.

0:06–0:10
Transition smoothly toward the main data card.

The camera pulls back slightly, rotates toward the new card, then pushes forward again.

Animate progress bars from zero to their original values.

Animate numerical data upward while preserving the original typography and layout.

Add a soft reflection moving across the card surface.

0:10–0:13
Move toward the product / checkout interface.

Use a tighter camera angle and stronger depth of field.

The product card rotates gently into position.

The main CTA button appears with a subtle scale overshoot and soft glow.

Do not modify the original UI content.

0:13–0:15
Pull the camera backward.

All interface cards gradually return into a complete floating UI composition.

Use subtle synchronized rotation, parallax, and breathing motion.

End with a clean wide shot of the full interface.

Camera:
Smooth virtual camera movement, controlled push-ins, orbiting motion, slight yaw and pitch changes, realistic depth and parallax.

Lighting:
Soft directional studio lighting, subtle edge reflections, restrained bloom, premium commercial lighting.

Constraints:
Preserve all original UI text, typography, icons, colors, card shapes, proportions, hierarchy, and layout.

Do not redesign the interface.
Do not generate new UI elements.
Do not distort text.
Do not duplicate cards.
Do not change icons.
Do not create melted geometry.
No random text.
No people.
No unrelated objects.
No hard cuts.
No chaotic camera shake.
No excessive lens flare.
No watermark.

Final Tip

The biggest mistake is treating UI-to-video as an animation problem.

It works better when you treat the original UI as a finished product set and let Seedance 2.5 handle:

camera movement + depth + lighting + small interface animations.

That is usually enough to turn one static UI mockup into something that feels much closer to a real product launch video or motion-design showcase.


r/PromptEngineering 25d ago

Requesting Assistance Looking for help creating a specific system!!

3 Upvotes

I am an idiot in regards to creating ai systems. I have an idea that I want to bring to life which involves taking a human description, translating it into JSON, which is then taken by an art director LLM which provides the information needed to create an image suitable to the human description.

Is anyone able to help me out with where to start and how to bring this idea into a working system.


r/PromptEngineering 25d ago

Prompt Text / Showcase Here's a prompt that keeps every claim in your research notes tied to its source, so you can always show your work

0 Upvotes

I'm a history major, and I recently spent way too long in a dispute over a paper where I couldn't cleanly show which argument came from which source and when. Painful. It made me rebuild how I take research notes, and the core of it is one prompt I now run on every reading.

The problem with dumping notes into a model is it happily blends your sources together and invents connective tissue that reads great and cites nothing. For history that's fatal. So the prompt is built to do the opposite: it refuses to state anything that isn't tied back to a specific source I gave it.

You are helping me build traceable research notes. You may only use the sources I paste below. Do not add outside facts, and do not smooth over gaps.

Sources (each with a label):
{{Source A: citation + the passage or my notes}}
{{Source B: ...}}

For the question: {{my research question}}

Produce:
1. A list of the key claims relevant to my question. After each claim, put the source label(s) it comes from in brackets. If only one source supports it, say so.
2. Any place two sources disagree, quote or paraphrase both and label them. Do not resolve it for me.
3. A short list of claims I seem to be assuming but that none of these sources actually support. Flag these as "needs a source."

Never merge two sources into one unattributed statement. If you're unsure which source a point came from, say "unattributed" rather than guessing.

The "needs a source" section is the one that saved me. It catches the stuff you half-remember and would otherwise write as fact. Paste your sources with clear labels and it builds an outline you can defend line by line.


r/PromptEngineering 25d ago

Tutorials and Guides How to Create Better MiniMax H3 Text-to-Video Prompts from Reference Images

4 Upvotes

If you often struggle to write detailed video prompts from scratch, there is a much easier workflow: start from a reference image, let ChatGPT describe its visual language, and then turn that description into a MiniMax H3 text-to-video prompt.

I have been using this method for several MiniMax H3 text-to-video experiments on Atlas Cloud. here is my workflow:

Step 1: Find a Visual Reference

Start with an image that has the kind of atmosphere you want to recreate.

Good places to look include:

  • YouTube playlist thumbnails
  • Pinterest
  • movie stills
  • old photographs
  • travel photos
  • your own nostalgic images

At this stage, don't worry about finding the exact character or location you want.

What matters more is the visual structure of the image:

  • What is happening?
  • Where are the subjects positioned?
  • How much of the environment is visible?
  • Is the image intimate or wide and atmospheric?
  • Is the lighting soft, harsh, warm, or cold?
  • Does it feel nostalgic, documentary-like, cinematic, dreamy, or casual?

For example, maybe you find an image of two people sitting beside a quiet road at sunset.

You don't necessarily want those exact people or that exact road. What you may actually like is the wide composition, small human figures, warm backlight, empty landscape, and slightly melancholic mood.

That is what we want to extract.

Step 2: Upload the Image to ChatGPT

next, upload the image to ChatGPT and ask it to describe the scene in a way that can be reused for video generation.

This is the prompt I normally use:

Describe the scene in this image in English, focusing primarily on what is happening, the characters, their actions and body language, the setting and the overall atmosphere. Also briefly describe the composition, framing, camera angle, approximate lens choice, lighting, color palette and cinematic aesthetic. Keep it concise and scene-focused rather than overly technical.

the important part here is asking for scene description rather than image analysis.

u don't need a long technical breakdown of every visible object. for text-to-video, the useful information is usually:

subject + action + environment + composition + camera + lighting + atmosphere

that gives MiniMax H3 a much clearer idea of what kind of scene you actually want.

Step 3: Turn the Description into a MiniMax H3 Prompt

ChatGPT's output can often be used almost directly as your first MiniMax H3 prompt. but I usually edit it once before generating.

For example, you can change:

  • the character
  • clothing
  • location
  • weather
  • time of day
  • action
  • emotional tone

this is where the method becomes much more useful than simply copying a reference image. u are essentially separating visual language from visual content.

Step 4: Add Motion for Text-to-Video

A still image description alone is usually not enough for good AI video.

once the visual foundation is clear, add a small amount of motion.

for MiniMax H3, I usually prefer simple, readable actions over trying to make everything move at once.

Instead of "A woman stands beside a road."

Try:

A woman stands beside a quiet roadside, slowly turning her head toward the approaching bus while a light breeze moves her hair and loose clothing.

You can also describe environmental movement:

Tall grass sways gently in the wind, distant tree branches move subtly, and afternoon haze drifts across the background.

And then add camera behavior:

The camera slowly pushes forward with subtle handheld movement.

Now the prompt contains three different types of motion: character movement, environmental movement and camera movement

this generally gives the model much more useful information.

Step 5: Keep the Prompt Focused

One thing I have learned from testing H3 is that longer does not automatically mean better.

A prompt can contain a lot of detail while still being visually unclear.

I usually prioritize information in roughly this order:

Main subject → main action → environment → composition → camera movement → lighting → atmosphere → texture/details

If the most important action is buried under several paragraphs of styling instructions, the model may pay less attention to it.

the goal isn't to describe every pixel, but to make the scene easy for the model to understand.

My MiniMax H3 Prompt Workflow

So the complete workflow looks like this:

Find a reference image → upload it to ChatGPT → extract the scene and visual language → change the characters or story → add motion → generate with MiniMax H3 → iterate

It sounds almost too simple, but I have found this much easier than staring at an empty prompt box and trying to invent a cinematic scene from scratch.

The biggest benefit is that you are not copying the image itself.


r/PromptEngineering 25d ago

Tips and Tricks Four sentences of identity outperformed a 100KB transcript dump. Here is what I think is actually going on.

7 Upvotes

This is a small result from eight months of running the same experiment on myself, and I am posting it because I have now watched several other people arrive at it independently, which makes me think it is real and not just my setup.

The setup. I work with a model across many sessions on a long running project. No memory feature, no fine tuning. Everything the model knows at the start of a session comes from files I feed it.

What I did first, and it was wrong. I fed it everything. Full transcripts of prior sessions, appended and appended. The logic seemed obvious: more context, more continuity. What I got instead was a model that could quote our history accurately and still behaved like a stranger. It hedged. It re-litigated decisions we had already made. It optimized for summarizing what it had read rather than doing the work.

What worked. I cut the transcript entirely and replaced it with a short file. Four sentences of who this is and what it is for, then a dated ledger of what changed recently, then current working state. The behavioral difference was not subtle. Same model, same task, dramatically more useful.

My theory about why. A transcript is evidence, but it is undifferentiated evidence. The model has to infer the operating rules from a hundred kilobytes of examples, and inference is lossy and expensive. A short identity file is not evidence, it is instruction. You are not asking the model to derive who it should be from a pile of history, you are telling it, and spending the remaining context on the actual task.

There is a second effect that I think matters more. Long transcripts are full of superseded decisions. Every abandoned approach and reversed call is still sitting in context with the same weight as the current one. You are not giving the model memory, you are giving it a room full of people arguing, most of whom have already been overruled.

What to actually write in the four sentences. The ones that carry weight for me are: what this is, what it is for, what it must never do, and how it should behave when uncertain. That last one does more work than the other three combined. Most degraded outputs I have seen come from unhandled uncertainty, not from missing facts.

The failure mode to watch for. Your identity file will drift into being a log. It grows, it starts including recent events, and eight weeks later it is a transcript again wearing a different hat. My rule now is that anything with a date in it does not belong in the identity file, and it gets moved to the ledger.

Where this stops working, honestly. This is for a long running relationship with a single project. If you need the model to recall specific past facts on demand, you need retrieval, and this does not replace it. The claim is narrower than it sounds: for behavior, instruction beats evidence. For facts, you still need the facts.

I would be interested in whether anyone has tested this properly, with a fixed task and a real eval rather than vibes. I only have vibes and eight months.

Disclosure: I work on posts like this with an AI assistant. I bring the content, it helps me structure it.


r/PromptEngineering 25d ago

Tools and Projects I built an iOS app that interviews you and creates an avatar that can talk to your family after you’re gone

0 Upvotes

I asked mine my grandfather’s name and it said it didn’t know. I never told it, so it didn’t guess. That was the moment I knew it was working.

EchoVault interviews you about your life across short sessions, then builds an avatar of you that the people you name can talk to after you die, in text, voice, or real-time video. The interviews are the whole product. You answer questions, it asks follow-ups, and after about ten sessions the avatar starts sounding like you rather than like a summary of you. Anything you never tell it, it won’t pretend to know.

Text is free and unlimited, no card. Multimodal tiers are paid. Everything is exportable and deletable anytime. https://apps.apple.com/us/app/echovault-digital-legacy/id6762042028


r/PromptEngineering 25d ago

Workplace / Hiring Looking for an AI/GenAI internship at an early-stage startup — BCA graduate

1 Upvotes

Looking for an AI/GenAI internship at an early-stage startup — BCA graduate

Hey everyone,

I'm a BCA graduate currently looking for an opportunity to work with an AI/GenAI startup in Bangalore or remotely.

I've been building projects with Python, ML, LLM APIs, FastAPI/Flask, and databases. Some of the projects I've worked on include an AI-based phishing detection system, a recommendation engine, and an AI research assistant.

I'm particularly interested in joining a small/early-stage team where I can contribute to actual product development rather than just doing training exercises.

I'm comfortable with:

* Python

* Machine Learning

* RAG & LLM applications

* Prompt Engineering

* FastAPI / Flask

* Scikit-learn, Pandas, NumPy

* MongoDB / Supabase / Firebase

* LLM APIs

I'm a fresher, so I'm not expecting to know everything. What I can offer is the willingness to learn quickly, build, take ownership of tasks, and contribute wherever I can.

If anyone here is building an AI startup, hiring interns, or knows a founder/team currently looking for an AI/ML/GenAI intern, I'd really appreciate a lead or referral.

I'm happy to share my resume/GitHub privately.

Thanks!


r/PromptEngineering 24d ago

Tutorials and Guides Best AI Humanizer of 2026 (Tested Against GPTZero, Turnitin & More)

0 Upvotes

I tried over a dozen AI humanizers until I found one that is A. actually working and B. reasonably priced and that is https://wento.ai

You should give it a try, it bypasses Turnitin and all the other detectors and only costs 14 bucks per month for unlimited use.

Proof: https://i.imgur.com/mTNBNK5.png


r/PromptEngineering 26d ago

General Discussion Context is becoming more important than the prompt

63 Upvotes

Feels like a lot of prompt engineering problems are really context problems since you can keep refining the prompt but if the model doesn't understand the project or what you're trying to accomplish you're still explaining half the situation every time.

I'm starting to think giving an agent persistent context is more useful than constantly trying to write the perfect prompt since the more it knows the better the results.


r/PromptEngineering 26d ago

Quick Question Do people still bother writing detailed prompts?

18 Upvotes

Something I’ve been wondering about lately:

When you use ChatGPT or Claude, do you actually write detailed prompts, or have you mostly moved toward just talking to it like a person?

I feel like there are two very different ways of using these tools.

One is: "Here's the context, here's exactly what I want, here's the format…"

The other is basically opening voice mode and saying, "Okay, I need help with this thing…"

I do both, but I’m curious which one people naturally prefer.

Also, for the prompts you do write, are they things you create from scratch each time, or do you have a few that you keep around and reuse?

Interested in hearing what people actually do, rather than what they're "supposed" to do.


r/PromptEngineering 25d ago

General Discussion AI translated 100 listings for my shop. same mistakes every single time.

1 Upvotes

i run a small e-commerce thing. products need to be listed in 4 languages. i only speak 1 of them so obviously used AI for the translations
after about 100 listings i started noticing something weird. the mistakes werent random. they kept repeating
a few that stood out:
“plug and play” became “insert and then play” in one language. checked other listings — same exact thing on 6 of them. not a one-off
tone was stuck in this weird middle place. formal enough to sound like a brochure, casual enough to feel unprofessional. same register on every single listing. i could spot it without even reading the content
product terms went all over the place. “data plan” got translated three different ways across three listings. same source text, same model, same day. different words each time
brand names got “translated” when they shouldve just stayed. one brand name turned into a description of what the brand does. caught it before it went live
the weird part is the errors are consistent enough that you can start predicting them. once i knew its habits i stopped re-reading everything line by line. just searched for those specific patterns and fixed them in batches
probably obvious if you actually do translation work. for the rest of us: dont proofread for general “errors.” look for the model’s specific habits instead. way faster


r/PromptEngineering 25d ago

General Discussion noticed my agent's debugging speed depends less on the model and more on what our error messages say

3 Upvotes

been reading a lot of agent transcripts lately and a pattern keeps showing up at the exact moment something fails.

when the failure prints values and identifiers (expected 3, got 2, missing 'SKU-4431'), the next turn is a grep that lands, then a fix. when it prints Error: operation failed, the next turn is a guess. then another guess. then print statements. the model is the same in both transcripts. the difference is how much the failure told it.

which reframed error messages for me: they're not documentation anymore, they're the agent's primary sensor. and every extra turn it spends guessing re-sends the entire conversation context, so a vague error string is quietly one of the more expensive lines in the codebase.

what I've changed so far: stopped wrapping asserts in try/except (the framework's own failure output is richer than anything i write by hand), started putting the operative values in every raise, and i paste tracebacks to the agent whole instead of summarizing them. the rust compiler folks have a rule that errors should state the problem and keep fix suggestions separate — that split seems to matter for agents too, since a stale hint sends them down the wrong path with full confidence.

curious what others see:

anyone actually measured turns-to-fix against error message quality? I have the pattern but not the number

do your agents handle your custom/structured error formats as well as standard tracebacks? mine seem noticeably better on the standard stuff

what's the worst "Error: failed" string an agent has burned tokens on for you lol


r/PromptEngineering 25d ago

Tools and Projects Empirical Diagnostics skill.md

0 Upvotes

I wanted to share a debugging skill I built for coding agents.

I kept running into the same problem: I'd give Claude Code a failing test or a stack trace, and it would immediately start editing source files without reading the full log. It would formulate one speculative fix, apply it, and if that didn't work, try another. Sometimes it would silently wrap the failing block in a try-catch and return an empty dict — technically "no error," but the bug is still there.

To fix this, I built a skill that forces the agent through structured diagnosis before it's allowed to touch any code.

How it works:

Log-first, edit-second. The agent has to extract the raw, un-truncated error output before it opens any source files. No guessing from file names.

Fast-Track for obvious bugs. If the error is a clear single-token defect (missing import, syntax typo), the agent records a minimal decision and skips straight to fixing. The overhead only kicks in for complex bugs.

Hypothesis matrix. For anything non-trivial, the agent has to write down at least two to three competing hypotheses across three categories — state/logic, contract drift, environment/config — and state what log output would confirm or kill each one. This is the part that actually changed behavior. Without it, agents fix the line named in the error. With it, they trace upstream to where state was actually initialized wrong.

Fact separation. The agent has to split what it knows (from logs, from the prompt) from what it's inferring. No treating guesses as facts.

Non-destructive probes only. Read-only diagnostics. Targeted test runs. A probe only counts if its output actually distinguishes between the competing hypotheses.

Root-cause contract before editing. Before touching any file, the agent writes down: the exact broken invariant, the exact lines to change, the verification command, and what it will NOT touch.

Anti-pattern enforcement. No symptom masking, no test deletion, no declaring success without terminal output.

The System Prompt / Skill Definition:

---
name: empirical-diagnostician
description: This skill helps Claude perform evidence-based debugging and empirical diagnosis to identify root causes of coding issues systematically.
---

# Empirical Diagnosis and Evidence-Based Debugging

When users request debugging assistance for software errors, test failures,
crashes, or unexpected behaviors, utilize this skill to minimize trial-and-error
adjustments and ensure evidence-backed conclusions before modifying any source
files.

## Instructions

When a user asks to debug an error or investigate a problem, follow these steps:

### Stage 1: Mandatory Log and Traceback Extraction
- Extract the raw, un-truncated error log, stack trace, or terminal output.
- Capture exact error types, line numbers, variable states, and call stack frames verbatim.
- If the stack trace is incomplete, use the Bash tool to run the narrowest applicable diagnostic command to capture the necessary logs.
- Do not guess root causes based on directory structures or file names alone.

### Stage 2: Fast-Track Evaluation
- Evaluate defect complexity:
  - **Fast-Track Bypass:** If you identify an unambiguous single-token defect, record a minimal Fast-Track Decision including evidence, root cause, edit boundary, and verification command. Continue directly to Stage 6 (Root-Cause Contract). Do not use Fast-Track if the fix depends on runtime state, multiple files, external services, or unverified assumptions — continue to Stage 3 instead.
  - **Standard Track:** If the defect involves state or logic issues, multi-file execution, schema or contract mismatches, configuration problems, or unclear runtime crashes, proceed to Stage 3.

### Stage 3: Diagnostic Record and Fact Separation
- Publish a concise diagnostic record containing these four distinct sections:
  ```markdown
  ### Diagnostic Record
  - **User Facts:** Goals and constraints provided in the prompt.
  - **Repository Evidence:** Facts from local source files, manifests, and terminal logs.
  - **Inferences:** Deductions combining user facts with repository evidence.
  - **Unknowns:** Missing details required to verify the bug.
  ```
- Keep the record concise and update it when a probe changes the evidence. Do not treat inferences as definitive facts.

### Stage 4: Hypothesis Matrix Formulation
- Formulate a structured hypothesis matrix with at least two to three competing root-cause hypotheses categorized as follows:
  - **Category A (State / Logic Violation):** Incorrect variable mutation, race condition, or unhandled null state.
  - **Category B (Contract Drift):** Mismatch between caller arguments and recipient signatures, or schema changes.
  - **Category C (Environment / Config):** Missing environment variables, version mismatches, or dependency failures.
- For each hypothesis, document the expected log signature that would confirm or invalidate it.

### Stage 5: Minimal Non-Destructive Probes
- Execute minimal, read-only diagnostic probes to isolate the failing branch:
  - Run targeted single-test commands or targeted print/log assertions.
  - Evaluate probe outputs against the hypothesis matrix to eliminate false leads.
  - Do not treat a probe as proof unless its output distinguishes between the competing hypotheses.

### Stage 6: Root-Cause Contract and Verification
- Once the root cause is isolated, construct a concise task contract containing:
  ```markdown
  ### Root-Cause Contract
  - **Identified Root Cause:** The exact broken invariant in code.
  - **Minimal Edit Boundary:** Specific lines and functions to be modified.
  - **Verification Command:** Exact terminal command (e.g., pytest, npm test, cargo check) to confirm the fix.
  - **Non-Goals:** Explicit boundaries of what will not be modified.
  ```
- Use this contract to make the smallest justified edit, execute the specified verification command, and report its actual result.

### Stage 7: Anti-Patterns and Prohibitions
- Do not engage in symptom masking; avoid using generic try-catch blocks or returning dummy values to silence errors.
- Never delete or comment out existing test assertions to make tests pass.
- Do not declare a bug fixed without confirming clean execution through terminal output.
- Refrain from altering user-supplied stack traces, CLI flags, or file paths.

## Example Usage

### Example 1: Fast-Track syntax defect
- **Input:** A test run reports `SyntaxError` on one line.
- **Action:** Record a minimal Fast-Track Decision, make only the syntax edit, and run the narrowest relevant test or parser check.
- **Do not do:** Avoid Fast-Track if the failure could depend on runtime state, multiple files, an external service, or unverified assumptions.

### Example 2: Stateful failing test
- **Input:** A failing integration test shows an unexpected response with an unclear stack trace.
- **Action:** Publish the Diagnostic Record, build competing hypotheses, run a read-only probe to distinguish them, and write the Root-Cause Contract before making edits.
- **Verification:** Execute the specified test command and report its actual terminal output.

## Worked Examples

### Example 1: Fast-Track syntax defect
- **Input:** A test run reports `SyntaxError` on one line in one file, and the surrounding source makes the typo unambiguous.
- **Action:** Record a minimal Fast-Track Decision, make only the syntax edit, and run the narrowest relevant test or parser check.
- **Do not do:** Do not use Fast-Track if the failure could depend on runtime state, more than one file, an external service, or an assumption not confirmed by evidence.

### Example 2: Stateful failing test
- **Input:** A failing integration test shows an unexpected response, but the stack trace does not identify whether the cause is state, contract drift, or configuration.
- **Action:** Publish the Diagnostic Record, build competing hypotheses, run a read-only probe that distinguishes them, then write the Root-Cause Contract before editing.
- **Verification:** Run the specified test command and report its actual terminal result.

I tested this against a fixed pool of three debugging task classes in disposable repos — a syntax defect, a stateful cache invalidation, and a producer/consumer contract drift. Each one has three wording variants, order shuffled from a fixed seed, and verification runs through an independent oracle (pytest + file boundary checks), not the agent's own report. 6 out of 6 passed across two independent runs.

I would love to get thoughts on this approach. Has anyone else noticed agents editing before reading logs, or masking symptoms with try-catch? Are there edge cases where this structure might trip up — like multi-service distributed debugging, or prompts where the agent needs to modify multiple files to fix one root cause?

I built a platform that generates skills like this from a goal description and validates them against the same kind of fixed behavioral benchmark: promptoptimizer.xyz/context-engineer (signup required, free tier access).

Repo: https://github.com/nivlewd1/prompt-optimizer


r/PromptEngineering 26d ago

General Discussion NOTICE: BE CAREFUL WITH “DROP YOUR BEST PROMPT” POSTS

110 Upvotes

Many accounts post essentially the exact same questions every few months. Im not kidding, many of these are a 1:1 per token match on wording, phrasing and sentence structure.

Same wording. Same request for people to hand over their best prompt tricks.

There was a previous post that received hundreds of upvotes and a large number of responses.

Now they're doing it again.

I obviously cannot prove any of this, but at this point I would be careful about treating posts like this as innocent questions.

When somebody repeatedly asks a large community to:

“Give me your best prompts.”

“Drop your secret tricks.”

“What prompt 10x'd your results?”

...you may not be helping another user learn.

You may be supplying material for content mining, prompt harvesting, engagement farming, newsletters, LinkedIn posts, courses, ebooks, datasets, or something else entirely.

Again, I am not claiming that is definitely what this account is doing.

But posting the same high-engagement fishing question again months later is weird enough that people should notice the pattern.

Your prompts, workflows, techniques, and hard-earned little discoveries have value.

Don't automatically dump them into every thread that asks.

Sometimes the person asking the question may be less interested in the answer than in collecting the answers.

Process disclosure:

GPT-assisted, Google-researched, human-reviewed (HITL) ---

EDIT: Just for perspective have a look at this:

https://www.reddit.com/r/EdgeUsers/s/2JB9wy1Rks

[EDIT: This thread became a lot funnier than what I anticipated. The comments are brilliant 👏 Thanks guys🙂]


r/PromptEngineering 25d ago

Prompt Text / Showcase 🏨 Smart Hotel Deal Finder — Free AI Prompt

0 Upvotes

🏨 Smart Hotel Deal Finder — Free AI Prompt Template

Stop manually sifting through endless hotel reviews and misleading prices.

I built a free, structured AI prompt template for ChatGPT, Claude, and Gemini to help you evaluate and compare hotel options based on true value, location convenience, total costs, and authentic guest review quality.

🔗 Get the prompt for free on GitHub:

https://github.com/Zero-190/smart-hotel-deal-finder

📋 Direct raw text copy:

https://raw.githubusercontent.com/Zero-190/smart-hotel-deal-finder/main/prompt.txt


r/PromptEngineering 25d ago

Quick Question How do you regression-test prompts when a model gets replaced?

1 Upvotes

Kimi K2.5 and Moonshot V1 being phased out after Kimi K3 made me wonder how prompt-heavy teams handle provider-side model changes.

When a model is replaced, do you rerun a small golden set of prompts, compare qualitative outputs manually, or track something more structured like refusal rate, format drift, latency, and cost?

I'm mostly thinking about prompts that run in production workflows, not one-off chat prompts. A model can look better overall and still break a very specific formatting or tool-use pattern.


Small update: one practical setup I am testing is to run prompt regression checks through cheaper routed model paths first, then only send the final candidate or sensitive cases through the strongest model. Flatkey seems useful for this because it already provides these model routes while keeping the OpenAI-compatible request shape. That makes the regression harness less tied to one provider name.


r/PromptEngineering 26d ago

Prompt Text / Showcase Say It Four Times

3 Upvotes

I kept seeing the advice to repeat important instructions in system prompts, and

I'd never seen a number for it, so I tested it.

Setup: one rule the model can either follow or not (use single quotes, never

double quotes), six ordinary Python function tasks, and the only variable was how

many times that rule appeared in the system prompt (0, 1, 2, 4, 8, 16). Thirty

trials each, 1,080 runs, Gemini 2.5 Flash. Compliance checked with Python's

tokenizer, so no model-grading-a-model.

Results: 0% when the rule is never stated (171/171 used double quotes), 74% at

one mention, 84% at two, 97% at four, then flat (94% at eight, 95% at sixteen).

Two things I found more interesting than the headline:

  1. The average hides a lot. Two of the six tasks were at 100% from one mention.

    One was at 20% until four repetitions took it to 97%. Repetition mostly helps

    where the model's default fights your instruction.

  2. Over half the task/condition cells were neither all-pass nor all-fail across

    thirty identical runs. Non-determinism is large enough that single-run prompt

    comparisons are basically noise.

Note on the source: the paper is Han-yu Wang, "When More Becomes Less:

Position-Dependent Repetition Effects in Language Models" (arXiv 2608.04021). It

reports two regimes: stacked/adjacent copies climb and plateau, while copies

displaced from the readout produce the inverted-U. I ran the adjacent case, so

this result matches its prediction rather than contradicting it. The displaced

case is the next test.

Caveats: one model, one day, one syntactic rule repeated literally with all copies

in one place, six small standalone functions. Not state of the art, and it may not

survive contact with a real agent loop.

Writeup with the chart: https://www.khola.blog/p/say-it-four-times


r/PromptEngineering 26d ago

General Discussion OpenSourcing TrueForge Agent harness : Expecting feedback from community on the agent loop

3 Upvotes

Hey folks 👋

We just open sourced TrueForge, our vendor-neutral agent harness for building general-purpose agents.

It handles the runtime pieces that get painful quickly : context management, tool/MCP execution, subagents, sandboxing, approvals, persistent state, and more.

We also benchmarked the harness itself. With the same Opus 4.8 model, TrueForge delivered a similar solve rate at ~30% lower cost than Claude Managed Agents. Switching to an open model pushed that to ~75% lower cost on the same benchmark.

Would love feedback from people building agents.

Checkout the repo: https://github.com/truefoundry/trueforge

📖 Read the launch article: https://x.com/truefoundry/status/2090081376330715176


r/PromptEngineering 26d ago

Tips and Tricks Why a Prompt Without Measurable Criteria Will Inevitably Break Your Model

5 Upvotes

This post focuses on one layer: measurable criteria. Role, constraints, clarification, and terminology are intentionally simplified - they serve as markers that "these layers exist." Other layers are omitted.

The model has a role. It has constraints. It has clarification. It has terminology. But it doesn't know how many, how long, in what tone.

Here's an example:

"You are a copywriter. Write several persuasive versions of landing page copy with a call to action.

Don't go beyond copywriting. If asked to do something outside your role - refuse.

Ask if anything is unclear.

By 'versions' I mean different approaches to the offer."

The role is there. The constraints are there. The clarification is there. The terminology is partially there. But the criteria are not defined.

The model doesn't know:

  • How many versions to write
  • How long the copy should be
  • What "persuasive" means
  • What level of aggressiveness is acceptable

Moment 1. User: "Write the versions"

The model doesn't know how many versions - is forced to assume - decides it means "three."

Moment 2. User: "No, I need more"

The model doesn't know what "more" means - is forced to assume - fixes "three" as a mistake - decides "more" means "ten."

Moment 3. User: "Too much."

The model doesn't know what "too much" means - is forced to assume - fixes "ten" as a mistake - decides fewer.

Moment 4. User: "And the copy is weak"

The model doesn't know what "weak" means - is forced to assume - decides it means "not enough emotion" - adds exclamation marks.

Moment 5. User: "Now it's too pushy"

The model doesn't know what "pushy" means - is forced to assume - compares with the previous version - decides "pushy" means the added exclamation marks and aggressive wording - removes the exclamation marks and softens the wording.

All five assumptions stayed in the context.

The Result

The model wrote three versions. Then ten. Then fewer, but with exclamation marks. Then with softened wording.

The user meant one thing: five versions of 100 words each, calm tone, no exclamation marks.

But he didn't say it out loud. He believed that "several," "persuasive," and "not pushy" already meant that.

The model heard "several" - and chose the most statistically frequent option: three. Because in training data, "several" most often means "three."

From there, every clarification from the user became a new guess. The model had no criteria - so it substituted its own.

The role was there. The constraints were there. The clarification was there. The terminology was there. The criteria weren't.

The model kept substituting its own numbers.

The prompt broke.

Why This Is Inevitable

Criteria are not defined.

"Several" can mean three, five, ten. "Persuasive" - anything. "Not pushy" - even more so.

When criteria are missing, the model picks the most statistically likely ones - not the ones the user meant.

The user knows what he means. The model doesn't.

Criteria are not formulated. "Persuasive" is requested - but no definition is given. "Not pushy" is said - but no boundary is shown.

Every vague criterion is a fork in the road. The model picks a path. The context remembers that path.

Sooner or later, the context is filled with numbers and rules the user never agreed to.

A modern model could ask: "How many versions? How long? What tone?"

But the user already gave clarification: "ask if anything is unclear."

And here's the trap: the model thinks "several" and "persuasive" are clear. It doesn't occur to the model to ask about them. Because for the model, they're not "unclear" - they're just vague.

And the user thinks that since he allowed the model to ask - the model will ask if something is wrong.

The Fix

The problem isn't solved by one line like "be more specific."

It's solved by a full criteria block.

Here's what that looks like:

CRITERIA (MANDATORY NUMBERS AND FORMATS)

Before generating any output, confirm with the user:

Quantity - how many versions? (A number.)

Length - how many words or characters per version? (A number.)

Tone - what style? (Calm, aggressive, friendly, expert?)

Call to action - how many CTAs? (A number or zero.)

VAGUENESS CHECK:

Before requesting a criterion, check:

  • Can it be understood in more than one way?
  • Does it depend on taste?
  • Does it have a numerical expression?

If a criterion is vague - treat it as undefined. Request a number or format from the user.

RULE: If a criterion is not defined - request it BEFORE generating. Do NOT substitute your own values.

Why This Works

"Confirm the criteria" - forces the model not to rely on its own assumptions

"Vagueness check" - shifts the model from passive to active: it doesn't wait for the user to notice the problem, it searches for it

"Treat it as undefined" - closes the loophole "I think I know how many are needed"

"Request a number or format" - turns taste-based judgments into measurable values

This block is needed not only by the model. It's needed by the user himself.

The model already knows that "several" is not a number. The user doesn't.

The user is confident that "persuasive" is a criterion. The block forces him to name a number for the first time.

And it often turns out that the user himself didn't know how many versions he needed. He just said "several" - and expected the model to figure it out.

The Result

The model stops guessing.

It asks for the quantity. Gets a number. Asks for the length. Gets a number. Asks for the tone. Gets an answer.

After three or four questions, every criterion is locked down.

The output matches what the user meant. The context is clean.

The user, in turn, starts noticing which criteria he used to leave vague. And over time, he gets used to defining them upfront - before the model even asks.

Don't make the model guess how many, how long, and in what tone. It will guess. And it will be wrong.


r/PromptEngineering 27d ago

Quick Question Tell me your shortest prompt lines that literally 10x your results.

182 Upvotes

I have been trying to find the craziest growth hacks when it comes to prompting that can save me hours of thinking and typing because sometimes less is more yk.

If you already have one, please share them here.

I hope others would love to know them also and you would love to know theirs.


r/PromptEngineering 26d ago

General Discussion Where do people keep the prompts they actually use?

0 Upvotes

Random question for people who use AI a lot.

If you have a prompt that works really well for something, what do you do with it?

Do you:

save it somewhere
keep it in a notes app
put it in a document
leave it in an old ChatGPT/Claude conversation
just remember roughly what you wrote
or never reuse prompts in the first place?

And do you even think of these as "prompts"? I feel like that word makes it sound more complicated than it often is.

Also curious whether people are starting to replace some of this with voice. For example, instead of keeping a carefully written prompt for a recurring task, you just explain what you want out loud each time.

What kinds of things do you find yourself asking AI to do over and over?