<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="393521" data-post-id="393521">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Damirados" data-post="10" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/damirados/48/36402_2.png" class="avatar"> Damirados:</div>
<blockquote>
<p>generating code with patterns that I have spend years scolding people not to use when doing code reviews</p>
</blockquote>
</aside>
<p>This is something I solved with <a href="https://oeditus-credo.hexdocs.pm/Mix.Tasks.OeditusAssistantRules.html" class="inline-onebox" rel="noopener nofollow ugc">mix oeditus_assistant_rules — OeditusCredo v0.11.2</a> and my own harness (link’s above.) I mean, solved. And I am very nitty on that matter.</p>
<p>Thanks a ton for sharing your workflow, I think I got two important ideas from there. ① My harness must provide a <code>/mode chat | …</code> to allow your “open answers in neovim” assuming <code>export EDITOR=nvim</code>, and ② Introduce my own level or reasoning in harness itself, to suit both people who are after a longreads and those who are after the result no matter what.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393521" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-393521" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393521"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="393522" data-post-id="393522">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="itzmidinesh" data-post="11" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/itzmidinesh/48/34350_2.png" class="avatar"> itzmidinesh:</div>
<blockquote>
<p>I just have a toxic relationship with the command line</p>
</blockquote>
</aside>
<p>Thanks for sharing! I, on the contrary, feel good in CLI <em>only</em>, I hate GUI.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393522" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-393522" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393522"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="393524" data-post-id="393524">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="webofbits" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/webofbits/120/39173_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  webofbits
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am on the same boat. I even wish we needed no GUIs. Like a computer where you just use a bare terminal even for browsing the web lol</p>
<p>It was a pain to keep moving the mouse pointer while programming.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393524" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-393524" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393524"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="393525" data-post-id="393525">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="plcholder" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/plcholder/120/38919_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  plcholder
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>web chat, gui (for codex) and then some harnesses oh my pi is my daily driver</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393525" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-393525" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393525"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="393526" data-post-id="393526">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="mudasobwa" data-post="1" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/48/5298_2.png" class="avatar"> mudasobwa:</div>
<blockquote>
<p>Since there is no ability to insert an actionable poll (or I am banned from it),..</p>
</blockquote>
</aside>
<p>Should be fixed now - have added the poll to your post too <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"> (was a CSS issue)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393526" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-393526" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393526"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="393527" data-post-id="393527">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="plcholder" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/plcholder/120/38919_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  plcholder
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I agree with you on this , but my main gripe is more to do with token costs,  Im actively dumbing myself down by not writing or reading code, but then to get a decent codebase or project up to an mvp or milestone it feels like I need to spend a few hundred bucks. In a world before llm all I would trade is my time and a few programming books &amp; courses I can consume for life and at the end of it all, Ive gotten scars that have taught me how to be a better programmer. I just hope we reach a point where I can run a frontier locally , it feels depressing</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393527" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-393527" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393527"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="393532" data-post-id="393532">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Damirados" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Damirados/120/36402_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Damirados
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>What I meant there by coding patterns is not something that can be encoded in Credo rules. I know we all wish there war a golden book of thumb rules to follow, but precisely because there isn’t I think we will be able to hold on to our jobs for a lot longer and why hand coding is still very much a thing. LLMs are bad at programming almost as they are bad at writing.</p>
<p>There are 2 sides to programming, first the easy one, getting computer to do something. Second is doing it in a way that explains people who will be reading that code and expanding on it what the program is doing.</p>
<p>LLMs are decent at the first one, terrible at the second one.</p>
<p>I think that most important thing for the harness is how simple is the architecture and how easy it is to extend and modify. It is the thing pi does better than any other harness. I think pi is beatable there with elixir as it’s more suitable for the task than Typescript. So basically, make a good plugin system, document internal architecture and have a basic pointers on how harness works and where to find more documentation, included in the system prompt. Superpower of pi i that I can say to LLM “Change behavior of harness in  way, search pi packages if there is already adequate solution” and 10 minutes later I have a new feature or workflow most of the time.</p>
<p>For me personally /mode chat you have proposed would not bring anything as my harness is not aware of my neovim since it is running in container and neovim isn’t. But once file is on filesystem it is way faster for me to open it from running neovim than it is to type something in the harness window.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393532" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-393532" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393532"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="393542" data-post-id="393542">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Damirados" data-post="18" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/damirados/48/36402_2.png" class="avatar"> Damirados:</div>
<blockquote>
<p>What I meant there by coding patterns is not something that can be encoded in Credo rules</p>
</blockquote>
</aside>
<p>Show me the example of that “bad coding” and I’ll show how to mitigate it. If the rule cannot be formalized, it’s not a rule, it’s a personal preference.</p>
<aside class="quote no-group quote-modified" data-username="Damirados" data-post="18" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/damirados/48/36402_2.png" class="avatar"> Damirados:</div>
<blockquote>
<p>LLMs are […] terrible at [doing it in a way that explains people who will be reading that code and expanding on it what the program is doing].</p>
</blockquote>
</aside>
<p>Depends on the prompt (20%) and the harness (80%.) If one has a pile of the hand-written code, there is no issue to feed the LLM with it and make it write in that manner. Works for writing, too. It obviously requires the review and nitpicking corrections, but my own code/writing requires it as well.</p>
<aside class="quote no-group quote-modified" data-username="Damirados" data-post="18" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/damirados/48/36402_2.png" class="avatar"> Damirados:</div>
<blockquote>
<p>Superpower of pi i that I can say to LLM “Change behavior of harness in way […]</p>
</blockquote>
</aside>
<p>The harness is the last thing I would allow the LLM to change on the fly. What I do, I rely on static analysis more than on anything else, I instruct the model to not use silly text tools <code>grep</code>/<code>awk</code>/<code>sed</code> and rather work with AST whenever possible (I aim 100%,) I validate each code change in many different ways, and I call LLM if and only if absolutely necessary. Until then I do local. Basically my harness is a thin layer asking LLM to perform small tasks without choices, validatable by the static analysis in local. Although I have a plugin system with hot reload of plugins. It just turns out it’s of no use.</p>
<aside class="quote no-group" data-username="Damirados" data-post="18" data-topic="76569">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/damirados/48/36402_2.png" class="avatar"> Damirados:</div>
<blockquote>
<p>But once file is on filesystem it is way faster for me to open it from running neovim than it is to type something in the harness window.</p>
</blockquote>
</aside>
<p>Good for you. I am talking about features, needed by <em>users</em> who vote above, not about you explicitly.</p>
<p>Thanks again for the detailed and thoughtful comments.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393542" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-do-you-use-ai-assistants/76569/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-393542" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393542"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>