The Coding Mandate
Warp’s coding mandate: start every coding task with Warp
- Every coding task should start with a prompt in Warp.
- If the coding task succeeds, great! Share the success in #warped-it
- If, after ten minutes, you feel like you are wasting time by prompting…
- Please share feedback with the relevant #feedback- channel on what failed
- Please also share your prompt, conversation id, and so on so we can learn where the issue was and possibly build an eval around it
- This is also a chance for folks to give each other tips on how best to use Warp to code
- Next, you are encouraged to try another AI coding tool (e.g. Cursor, Claude) and see if you have more luck – if you do, please report what went well and what didn’t.
- Finally, just code by hand…we need to actually ship software and if that’s still fastest, you should do it.
Warp’s coding mandate: the “why”
- Coding in Warp by prompt is actually faster for many tasks and should increase our overall engineering output.
- it saves you time from having to handwrite code
- it allows for multi-threaded development
- it’s especially useful when working on areas of code you are less familiar with, which, as our codebase grows, is likely a lot – Warp can really help you learn these new parts of the codebase quickly
- Dogfooding our product is the best way to improve it.
- A big part of the reasoning for the mandate is to use and give feedback on what we are building.
- We are asking our users to work this way and betting our business on it, so we had better believe enough in the workflow that we are willing to use it ourselves
- Using competitor products builds our intuition on where our product might improve and what is possible.
Guidelines for coding with Warp
DO NOT DO OUTCOME-BASED PROMPTING
- The number one rule we have is that you must tell the agent how to build whatever you want it to build.
- That means you, as the engineer, will first have to understand how the feature or bug fix should be built.
- Fortunately, Warp’s agent is very good at helping you understand the options here and you are encouraged to do agentic code exploration before starting coding.
- When you tell the agent how to build the feature, you should be very specific…
- What should the data model look like
- What is the api we want
- Where should the code live
- What tests should it write
- The reason for this rule is that if you just tell the agent “I want a feature that works like X” the agent is likely to produce code that isn’t up to our standards
- Just letting the agent goal seek based on the outcome will end up wasting a lot of time by producing code that may “work” but that isn’t maintainable, testable, composable, etc
- It also runs the risk of producing code you don’t understand — see below on why this is unacceptable
- Finally, this rule makes it so that Warp engineers must still learn our codebase and its conventions.
You are responsible for the code you submit for review
- You must understand all code that you submit for review at the same level as if you had written it by yourself
- Any code generated by agent mode must be at the same quality we expect for hand-written code…
- It must be well-factored
- It must be well-tested
- It must follow our coding conventions wrt comments, apis, imports, test file location, etc
- And so on…
- It is never an excuse for a bug or poor code quality to say “AI wrote this” – AI is a tool, not a responsible party on our software team
- All of the guidelines in our regular How We Code still apply when coding by prompt (small PRs, feature flags, and so on)