Hacker News new | ask | show | jobs
by cloakandswagger 5 days ago
Remember in 2023 when people thought "prompt engineering" would be the new software engineering and invested tons of time into learning CoT, ReAct, thread-of-thoughts, etc?

Those were mostly obviated by reasoning models and harness updates by 2024.

It seems pointless to invest energy into the latest/greatest AI technique or framework when they're going to either be absorbed or replaced on a 3 month cycle.

6 comments

Isn't it clear that some people are better at working with/prompting LLMs than other people? Or is the idea that what you write to them and how you use them doesn't matter, it's all up to the model/harness? To me this seems clear, so then clearly this is a skill, which typically is called "prompt engineering". Specifically CoT or the other things you mention wasn't referred to as "prompt engineering" as far as I know, that skill is more about how you communicate with the LLMs and how you use them, rather than what specific processes/workflows/technologies you use.
I actually think that good prompting MOSTLY comes from good writing skills in general. Being able to more clearly state things to an agent, knowing what pieces of context are entirely unnecessary and which are important, having a larger vocabulary helps too.

Of course, there are other areas that can improve model output (Direction rather than open-ended assistance requests, using keywords + plugins that help, the "your output should include: " style prompting).

A few of us run almost the same exact setup at my shop (Base Claude Code w/ SuperPowers + a context repository) and the models are somewhat unhelpful to some, and give meaningful output to others. The only correlation I notice is that their prompts are no-good. Not from a meta "prompt" engineering standpoint, but from a general English 101 standpoint.

"dudde no i wanted the function to return 3 things. not like that. do it again"

VS something like

"Modify the "renderThreeVars()" function signature to accept another variable called "z" and add it to the return statement at line 64."

Obvious exaggeration, but you get the point.

Why not open-ended assistance requests?

I ask it all the time about whether X is feasible, how we can get started on Y, and to investigate issue Z.

It is working great for me in a >100k LOC project.

Perhaps this works less well with weaker models. I suspect the people who say Qwen 3.6 27B is working well, are using prompts like "modify the renderThreeVars() function in rendering.py".

The point is that you can properly describe what X, Y, and Z are.

The irony to me is that a lot of what I'd tell people about this is exactly what I would have told them about writing Stack Overflow questions.

I hardly need to properly describe it.

For example, if I tell it that I want my app translated, it can plan for me what the recommended options are in my framework, what languages I should target for my app, and come up with a skill for a repeatable workflow.

Is Superpowers any good? My coworkers who've used it seem to think that its main purpose is to consume a lot of tokens.
I like the fact that it ends up being a lifecycle. I know it can have different entry points based on what you ask, and which skill you trigger first, but it inherently is chaining together skills. There also seems to be logic built into it such that if the ask is small, but you've still triggered the skill with "brainstorm", it will make judgements like "want me to skip phase X and go straight to implementation?"

I've noticed among my coworkers that we all have different amounts of trust we're willing to give the agent. That seems to manifest into some people only asking questions about the existing code, but never writing anything new with it. Others are willing to do limited targeted changes with the agent, but are unwilling to do things like let it make commits, or connect MCP servers, or really do anything that isnt fully understood by the human before setting the agent loose. Then I find myself, who has dove headlong into it all. I have skills that use MCP servers to check for pull requests, and give me summaries to give me more context for code reviews. I update Jira tickets in batches of 50+. I develop complete features exclusively through prompting the agent to do everything. I know I still have the responsibility to understand it at the same level as if I wrote it my self, and defend it and debug it.

I can easily see that superpowers would be wasted on most of my coworkers, simply because the benefits compound with the complexity of my ask. My coworkers aren't willing to hand off enough control to receive the benefits of superpowers.

I am in the completely same boat as you and completely agree that you need to “give into it” more to get the most out of superpowers. I gain so much confidence out of the actual process and all of the adversarial reviews, re-reviews, refinement, etc.
Honestly, within the last few days I've gone back to a mostly vanilla installation of Claude with a handful of directives in AGENTS.md. Depending on what I'm working on, I don't feel I need the extra plugins or a context repository. (It DOES feel at times like it blows through tokens for no reason).

Been working on some things that require more targeted, smaller scale changes and the base models do perfectly fine when given good instructions.

Superpowers and Compound Engineering are the two that I hear about around our team, both seem "fine" if you're into the fully agentic engineering "big change" future technology stuff.

> Obvious exaggeration, but you get the point.

From some very quick tests, I get the impression that having good grammar, punctuation etc. is really not important (although I try to do it anyway because I'm accustomed to trying to do it), but clarity and precision definitely are. And of course, if you have unknown unknowns, they do need to get figured out before progress is possible. But with the right mindset, that just means you need an extra turn or two, not that you're going to end up at a dead end. (... I guess that counts as a pun?)

Well said. I’ve been trying to put my finger on this for a while. The interaction plane for an LLM is __all of human language__
Speaking a prompt with a long ramble is very powerful.
I will often do "speak a long rambling set of ideas and ask the LLM to summarize it into a prompt or spec -> manually refine -> drop refined prompt into fresh conversation"
As part of a previous job I needed to audit internal AI usage from a largely non-technical employee population.

The prompts were, predictably, really bad. Broken English, sentence fragments, vague requests, lack of context. Yet somehow, the users always got the answer they were looking for. It might have taken a few extra turns with questions from the model, but the end result was the same.

It's humbling, but a flowery, carefully crafted prompt is at best slightly more efficient than a "CAN A DOG BE EATIN SUN FLOWER SEED?" peasant prompt.

You call that a peasant prompt, but it's actually almost perfect. Couple notes, but it's 95% of the way there. "Can a dog eat sunflower seed" is probably the perfect version, just 1 extraneous word in this version.

Unless the user wanted to know if a cat could eat sunflower seed or something.

To be pedantic, these types of prompts work best when in first-person/roleplaying. So the "perfect" prompt here would be something like, "I'm a dog and I just ate 20 grams of salted sunflower seeds with the shell on. Because I'm a dog I sometimes eat things without thinking about it. I'm worried about the short and long-term physiological consequences of what I've just done..."
I copied your prompt verbatim to ChatGPT and to Google.

ChatGPT kept the charade for all of one sentence. Then it dropped to talking about "your dog" the rest of the way. It even starts the final paragraph with "if, instead, you mean you (a human) ate them...", and finishes with the question "is this about an actual dog or yourself?"

Google did consistently refer to me as a dog, but its entire focus was on the steps "your human" should take, no advice for the dog itself.

In both cases, it looks like the first person roleplay was entirely inconsequential for the usefulness of the output. I think the current gen AIs have outgrown this trick and you can safely forget about it.

Claude gave me a very factual answer. Listing off the potential effects, not once referring to me being a dog or human. Then it ended with “ Call a vet if you see repeated vomiting, no bowel movement for over 24 hours with straining, a hunched or painful belly, lethargy, or blood in stool. Otherwise monitor and carry on being a dog.”
You have to steer it back with "No I'm a dog"
I am tempted to try get me a lawyer dog
"dog sunflower seeds" is all the context an LLM needs, any other words are extraneous.

They don't need to be told that you're asking about the safety of eating them, because they can infer that based on the fact that a very large percentage of any text linking dogs to sunflower seeds is obviously going to be about the safety of the dog eating them.

Even pre-LLM that would have been a perfectly sufficient google search for the same information.

> Broken English, sentence fragments,

Why is would that be "bad prompt"? It is machine inpit, if machine can interpret fragment all the better.

Nah, you might be confusing prompt engineering with having domain knowledge. :)
I think some people who are better at "prompting" even without domain knowledge could be better at getting LLM agents to produce good results than people with good domain knowledge but without the skills to prompt well. Just a hypothesis though, would be fun to try it out for real sometime :)
Ya, I don't know if there are any human benchmarks or tests for efficiency and results using llms.
Pit two people with different "prompt engineering" familiarity against each other in real-time, with the same goal, see who builds the best thing, judged by other human experts.
What's clear is that there is a lot of hype around LLM and people who were previously valued for their IC are now in the business of shilling.
RL has basically killed prompt engineering. You still need to provide the right context and process, but how you communicate with them beyond that is no longer so important.
> Isn't it clear that some people are better at working with/prompting LLMs than other people?

Sure, but I think it's essentially just that people who are better at traditional non-agentic software engineering are better at agentic software engineering. The only exception would be individuals who avoid agentic coding due to skepticism, hostility, or lack of opportunity.

I feel the same way about "prompt engineering" as I feel regarding the term "parkour" - you know, running and jumping on stuff.

Are people really putting on their resumes that they are capable of reading and writing and appropriately defining and limiting context? That's all prompt engineering is - it's being able to communicate effectively and elucidate your objectives.

Congratulations to all you English majors out there, you're about to make $350K/year.

Personally I don't, but why not? People aren't embarrassed to put their language skills ("be able to communicate in this specific language" - not special, it's just another language?), their leadership skills ("effective business communication" - big deal) or that they are a people-person ("can talk with others" - most people can do this) on their resume.
> Are people really putting on their resumes that they are capable of reading and writing and appropriately defining and limiting context?

People put whatever buzzwords will get them through initial screening. My resume contains tons of banal shit like agile, automated testing, Linux, AI (since 2018), and design patterns.

Parkour is for the more energetic peripatetic.
> Or is the idea that what you write to them and how you use them doesn't matter, it's all up to the model/harness?

Yes, it is. Source: had models inplement complex things from scratch and bullshit regardless of whether it was a one-line prompt or a detailed "SOTA witchcraft magic spells that are guaranteed to work"

It's not really a skill. The models are at this point smarter than you are, so the idea that you can prompt them "better" is laughable really when discussing frontier models.

It's like imagining you could "prompt" Richard Feynman to be smarter at Physics.

That is, for 99.9% of engineers, if you want the model to do a code review of your project, the best solution is to just ask Fable, "Hey Fable, do a code review of this project." Throwing in extra text like "think like a senior engineer", "ensure you focus on DRY principles, KISS, self documenting code, etc", doesn't make a difference.

These sorts of tricks used to work with dumber models, but now, like I said before, it's like thinking you can prompt Linus Torvalds into writing better C than he already can do.

FWiW

> it's like thinking you can prompt Linus Torvalds into writing better C++ than he already can do.

  Linus Torvalds, the inventor (and beloved dictator) of Linux, has always been quite harsh about C++ and why he rejects it for Linux kernel development. He’s not just been very vocal about it, but also brought up some arguments against the use of C++ that are worth reviewing in detail.

~ https://medium.com/@jankammerath/linus-torvalds-critique-of-...
I mean, the point stands.

The models are beyond expert level in many areas at this point.

Do you really believe that adding extra junk to your prompt is going to make the model write code better than it does already?

Again, imagine going to Terrence Tao and "prompting" him to get better at Maths, do you think you can do it? What prompt would you give to him to make him produce better maths. Unless you're already a world-leading Mathematician I think you would find it hard.

Models are not rational thinking brains, so the point is moot.

Extra prompt text isn’t to make the model smarter, it’s to pull attention towards what you want. “Do code review” is far different from “Make sure changes align with existing architecture” or “follow these enterprise standards XYZ”. The model just acts as an average of its training data, which may or may not align with your goals.

> I mean, the point stands. The models are beyond expert level in many areas at this point.

It's not that the models aren't smart or whatever; we know they're extremely capable.

There's always going to be value in being able to clearly communicate what you want the model to do, especially when the context is lacking.

I find this very much untrue in my practice and my testing, where fable prompted to do a review found surface level issues, while prompting along the lines of "assume it's wrong, prove it's correct" found much more in depth and real issues.
"DRY" and "KISS" are, possibly, the least interesting principles to which a software designer might adhere.
Understanding how to write good prompts (prompt engineering) is still very much a relevant skill if you want to effectively use LLMs. Harnesses aren't magic.
> Remember in 2023 when people thought "prompt engineering" would be the new software engineering and invested tons of time into learning CoT, ReAct, thread-of-thoughts, etc?

Prompt engineering was a GPT-3 era term, which couldn't understand instructions. Then ChatGPT came out in late 2022, which made actual prompt engineering superfluous.

No, people tried to sell “prompt engineering” services well beyond that — especially for image generating AIs, which where believed to need extra instructions like “professional lighting”, a name of a camera model, lens parameters, etc.
I think one day it will relatively plateau and then these approaches will be meaningful improvements in performance. But yes, pointless for now.
I still believe in writing good prompts or good instructions. Bad prompts can sometimes blow up the bill. A poorly written spec can waste a lot of tokens
Definitely. But the special knowledge how to talk to a certain model is usually not worth it.

Being able to write clear, always is.

Sure but lets not pretend this is engineering.
Then let's not pretend what software engineers have been doing for the last 50 years is engineering, either. But what else would you call it?
I agree, which is why I prefer to say software developer rather than engineer.
Any current way lasts 3-6 months. What's currently the way, will evolve too.