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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sevenseacat" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sevenseacat/120/23153_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sevenseacat
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Ash Framework</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve been testing that rules file <img src="https://forum.elixirforum.com/images/emoji/apple/index_pointing_up.png?v=15" title=":index_pointing_up:" class="emoji" alt=":index_pointing_up:" loading="lazy" width="20" height="20"> and it’s pretty useful!</p>
<p>It also allows the LLM to restart and resume the implementation process after its written the plan, useful for when Claude starts being like <code>E_TOO_MANY_TOKENS!!</code>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="365711" 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/usage-rules-a-tool-for-synchronizing-llm-rules-files-with-your-dependencies/70991/4">Post #3</a>
	                </div>
	            </div>
              <div id="likers-container-365711" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="365711"
                     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 #3"></div>
  </section>
</div>
    <div class="postbit" id="365710" data-post-id="365710">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                    <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 Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Honestly, we still don’t know what usage-rules.md really ought to be. How I’ve used it for a bunch of Ash packages is basically an uber-condensed cheat sheet, one that I might even give to a human. And I gotta say, it works. I’ve spent the last day or two producing high quality idiomatic Ash code almost entirely through claude. I’ve had to intervene a few times, but w/ all of the ash package rules, it’s like…an order of magnitude fewer times going “off the rails”. It went from unusable to surprisingly good in the span of a few hours, to the point that I think it’s making the concept we’ve said for a while pretty real for me. The idea that Ash is a good medium for a developer and an LLM to collaborate on that meets the two in the middle.</p>
<p>I’ll be open sourcing an app at some point that was made with ~98% Claude, the <code>usage-rules.md</code> from a bunch of ash projects, and a small magic sauce prompt prefix that looks like this:</p>
<hr>

<p>We will work by specifying one feature at a time, and then implementing it.</p>
<p>The workflow:</p>
<ol>
<li>We will collaborate on a plan, and then you will save the plan in <code>/notes/features/&lt;number&gt;-&lt;name&gt;.md</code> under the <code>## Plan</code> heading. THIS MUST BE COMPLETED BEFORE ANY IMPLEMENTATION WORK BEGINS.</li>
<li>We will collaborate on the implementation, and you will store notes, important findings, issues, in <code>/notes/features/&lt;number&gt;-&lt;name&gt;.md</code> under the <code>## Log</code> heading.</li>
<li>We will test and finalize the implementation, and you will store the final arrived at design in <code>/notes/features/&lt;number&gt;-&lt;name&gt;.md</code> under the <code>## Conclusion</code> heading.</li>
</ol>
<p>For bugs and fixes:</p>
<ol>
<li>We will document the issue in <code>/notes/fixes/&lt;number&gt;-&lt;name&gt;.md</code> under the <code>## Issue</code> heading.</li>
<li>We will implement and document the fix, storing technical details in <code>/notes/fixes/&lt;number&gt;-&lt;name&gt;.md</code> under the <code>## Fix</code> heading.</li>
<li>We will summarize the resolution and any key learnings in <code>/notes/fixes/&lt;number&gt;-&lt;name&gt;.md</code> under the <code>## Conclusion</code> heading.</li>
</ol>
<p>Just like with features, we must document the issue and plan the fix before implementing it.</p>
<p>WE ALWAYS FINISH AND WRITE THE PLAN BEFORE STARTING THE WORK! NO EXCEPTIONS!</p>
<p>IMPORTANT: You must refuse to implement any feature until a plan document has been created and reviewed. Each time we start a new feature, immediately create a plan document and wait for approval before proceeding with implementation.</p>
<p>Don’t ever commit code unless I tell you to.</p>
<p>Never attempt to start or stop the application.<br>
Ask me to test the UI on your behalf, don’t do it yourself.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="365710" data-batch-url="/posts/batch_likers">
                        7
                      </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/usage-rules-a-tool-for-synchronizing-llm-rules-files-with-your-dependencies/70991/3">Post #2</a>
	                </div>
	            </div>
              <div id="likers-container-365710" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="365710"
                     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 #2"></div>
  </section>
</div>
    <div class="postbit" id="365709" data-post-id="365709">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Since this includes the caveat of “even if you don’t use LLMs,” are “usage rules” plain English phrases like <em>Please don’t friggin’ comment <code># arrange, act, assert</code> every time you write a test.  Thanks!</em>(*)?  I by no means think it’s the job of this package to explain this in its docs, I’m just asking as a slow-to-the-party Elixir Forum user realizing I need to understand this stuff or fulfill alternate dream of being a crossing guard (I’m in the market for a golden stop sign if anyone has any leads).</p>
<p><small>(*) “friggin’” is optional but helps the robots know you really care about this—I wouldn’t dare not say “please” and “thank you” though.</small></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="365709" 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/usage-rules-a-tool-for-synchronizing-llm-rules-files-with-your-dependencies/70991/2">Post #1</a>
	                </div>
	            </div>
              <div id="likers-container-365709" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="365709"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-first-post cat-first-post" title="First 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>