Recommendations on AI Workflow

Recently I’ve been playing around with AI-generated code to create some simple prototypes. Mainly, I’ve used Gemini 3 pro (web interface, no API), for one-shot code generation and for the first time I’ve been impressed. Additionally, in the last VSCode update, I left copilot active, and I must say it is somewhat helpful (although at times also annoying). Now, I’m wondering, from those of you that have developed a workflow where you have AI-code-generation integrated, what tools do you use? What LLM providers delivers you the best results? I have no GPU, and programming is not my main job (that is, every few weeks or so, I need to write code for several days), so I prefer something that does not require any heavy upfront investment in time/infrastructure. Anyone using Helix editor?

1 Like

I have not really tried any of the AI integrations into editors or IDE's so cannot make comparative statements. Rather I have been using the Warp terminal that has an AI "mode", as it were. Basically you chat with your AI in the same terminal you use to interact with your OS. You can select from a bunch of different models to use.

I started playing with Warp terminal because I heard it was written in Rust and was super fast, turned out to be an excellent terminal, the AI integration is a bonus that turns out to work really well.

2 Likes

I heard that "Gemini-CLI" and GPT Codex are useful for working with larger projects in the terminal. Now there is also Gemini Conductor. I think ClaudeAI has a similar tool, but it uses not their latest AI Opus 4.5 for the cheap 20 $ subscription. I am subscribed only to Gemini and OpenAI (20$ each), and intend to test them soon. I think the Zed editor has also AI integration.

1 Like

As a terminal-centric user, Claude Code works very well. The £15/month Pro plan provides access to both the Sonnet (faster) and Opus (smarter) models. A year ago coding models struggled with Rust compared to Python or JS, but the current generation can work effectively with it.

2 Likes

Are you sure that Claude code supports their latest and biggest model Opus 4.5? Some weeks ago I was going to subscribe additional to the Claude $20 plan. But I finally have not done it, as it was reported that Opus 4.5 needs the $100 subscription. Claude code is really good, but GPT 5.2 and Gemini 3.0 should be close. And I think Gemini-CLI can be used without a paid subscription!

I’m sure because I’ve been using it yesterday and today on the Pro plan.

2 Likes

So, you are all basically using CLI tools, nothing like roo code or similar. And you are using the “big boys” models, no DeepSeek, Mistral, etc. Interesting.

I have been using claude code, it's pretty helpful for generating trivial code, even non-trivial things too if you know what you want it to do (I mostly just use it to generate tests/benches/docs etc because I am too lazy, and don't have enough time to add these anyway :'D). But gets very confused when working on more complex problems (like concurrency, proc-macros etc). It's noticeably better at writing python, js, ts, go etc compared to rust. But seems to be getting better at rust too, but uses older patterns that aren't idiomatic/current anymore.

1 Like

I personally use Claude Code or Codex from the terminal. I find that Claude is \much better with slightly more ambiguous prompts because it asks follow-up questions, but if I write 5 KB of a detailed plan and just throw it at Codex, it'll probably spit out some very good code in about 20 minutes.

1 Like

I use Aider, in watch files mode. When you save a file it looks for comments starting with "AI!" or "AI?" and uses the comments as instructions, then does a commit with the changes. Open source and works with any model. You see in the terminal what is happening in real time and can interrupt or undo if needed.

Only annoying points is that it is currently difficult to work on something else while waiting for AI commit.

1 Like

So the workflow is roughly :

  • Write some docs (including maths, etc.) or outlines of functions or structs that I want to implement. If I need to add implementation directives I put that in regular comments (two slashes) inside the empty function or above the struct.
  • Write a one-line short comment asking to implement and/or write tests. Sometimes also ask to translate the docs on the fly if I did not write it in english initially.
  • Review the AI commit, fix what I need on the fly and fix compilation and tests at the same time.

Some findings

  • I prefer to use a "simpler" model, which responds faster, but then it is less smart about rust so I regularly have to fix small things to make it compile. But since I find it important to review all code anyway, I find this is a good balance.
  • AI is good for writing commit messages, writing lots of boilerplate code or tests at once,
  • Less good when the complexity of what you ask it to implement grows.
  • Working in a large codebase is ok if code is well organized into small modules. (I find that it nudges me into refactoring more often, so that complexity stays manageable for AI.)
  • If instructions are not clear enough or some types are missing, it will invent APIs of the other structs of the project, in this case I undo and add the appropriate files to give it more context, or refine the comment.
2 Likes

Expanding on what I said above a bit. My work flow as I have been playing with AI is:

  1. I'm using Warp so I write a warp.md file giving as much detail of the required programs functionality as possible. Including:
    What the inputs are with examples of JSON messages or whatever. Command line arguments etc.
    What the.expected outputs are, perhaps with examples. That is a bit tricky if the output is a graphical display but some how it seems to have done what I want from descriptions.
    The language and other crates/tools one wants to use.
    And of course whatever processing is required. So far that has not been very complex or unusual in my experiments.

  2. Prompt the AI to read that and tell me what it thinks of it and if it has any suggestions. Amazingly it does some times. Warp will often then suggest a plan of attack, in small stages.

  3. Prompt to go ahead.

  4. Then we are in a loop of running the thing, seeing what is wrong and prompting for fixes.

  5. When something is in a reasonable working state be sure to commit to git. I don't allow Warp to access my git repos. I want to do that manually and be sure of what is in there.

  6. Sometime sit happens that after iterating on 4) a few times I get the impression things have gone badly wrong. At which point I revert to the last sort of working commit, tell the AI he's obviously totally confused and start over from there. So fat that has had good results...

  7. Along the way make updates to that warp.md file. Even let the AI do it. Adding clarifications or additions to the requirements etc. That way there is some record, a context, of what we have and why we have it. With that one can continue work on the project in a completely new session.

So far the biggest thing. we have made is just an experiment using WGPU for rendering a 3d animated scene at about 4000 lines of Rust and shader code. That was a struggle because warp cannot see what I can see in the resulting rendering. So describing how you want the lighting or bump mapping changed is difficult. Hardest was explain how it had applied to textures to a loaded .obj object completely wrongly. We got there in the end...

Problem is I now have 10's of thousands of lines of code and no idea how it all works. I rarely looked at the code along the way. The WGPU and shader code is the worst case because I know nothing of that API, which is very complex, or shaders.

I'm starting to think that if I wanted AI to create larger projects I would figure out a way to split the project into parts, define the interfaces between them, then get the AI to work on one small part at time. Rather than expecting it to dream up the whole thing coherently itself. At least that would give me more control, if one part starts to go off the rails it could not damage the other parts and the situation would be recoverable.

All in all like managing a team of actually programmers I guess. Each directed to their own task as part of a bigger system.

1 Like

If you have already working code, it should be no problem for AI tools to do this refactoring :slight_smile:

Yes. I'm sure AI could help with that refactoring.

It's just that I have noticed that when prompting to fix something or add some feature my AI friend sometimes tries to sneak in changes to totally unrelated parts of the code.

I worry about what gets broken when code gets bigger. So my idea was never to have the AI working on large things or the whole code base from the beginning.

3 Likes

Yes, for this reason I have added a CONVENTIONS.md file to the repository and configured to add this file to every prompt I send to an AI. The most useful instruction it contains is to not change any non related code and not move things around.