Treat it like a Real Conversation
A. Talk UP to the Model
The quality of the answer often matches the quality of the question—and your tone matters more than you think.
1. Setting Tone and Expectations
Start your prompt with high-level framing: "I want you to act as a senior developer."
Explicitly state the level of depth you want: "Be concise" vs. "Explain in depth with edge cases."
Declare context clearly: "Assume we’re using TypeScript with strict null checks."
This tells the model how serious or rigorous it should be.
2. Asking for Critique and Verification
Tabnine Chat isn't just a code generator—it's a peer reviewer.
Try prompts like:
"Is there anything wrong with this approach?"
"What assumptions might break this implementation?"
"What would you change in this to make it more testable?"
These make the model your second set of eyes—and often reveal subtle issues you may have missed.
B. Avoiding "Vibe Coding"
“Vibe coding” is what happens when you let the model riff, and you nod along. It feels fast. It feels fluent. But it’s a trap.
When working with an AI assistant, it's tempting to feed it a quick prompt and accept whatever output it returns. But this can quickly devolve into vibe coding—an undisciplined, speculative style of development where code gets generated without structure, review, or reuse.
What does vibe coding look like?
Prompts are too vague: “Can you help with this?” or “Write the code for this idea.”
Output is too big: monolithic functions or entire modules generated without planning.
There's no reuse: the assistant keeps reinventing helpers or structures instead of building on earlier code.
Generated code is undocumented: no comments, no docstrings, no references to where logic came from.
There are no tests or validations: you’re pasting code that “seems to work” without checking behavior.
There’s little to no review: results aren’t questioned, modularized, or checked for correctness.
Technical debt builds fast: now you have code that works—maybe—but doesn’t integrate cleanly and is hard to maintain.
How to break the habit
Think of each prompt as a design spec, not a wish. You’re not asking the AI to take over—you’re asking it to collaborate with clear intent.
Break big prompts into smaller, testable pieces.
Reference existing files or class names to encourage reuse.
Ask for docstrings, comments, or TODO markers in the response.
Use structure-first prompts: “Write a helper method that takes X, returns Y, and fits into FooService.”
Follow up critically: “What edge cases would break this?” or “What should I test next?”
A Mindset Shift
You are the lead engineer. Tabnine is your coding agent. Treat its output like code from a junior dev embedded in your repo—fast and helpful, but always operating under your direction and review.
Last updated
Was this helpful?
