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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah, same page. The piece this thread has been circling without quite naming is what those specifications actually look like.</p>
<p>I think I’ve nailed it down. The contract needs to be a BDD spec. The BDD spec needs to be based on actual business rules and domain invariants. It needs to be approved by a human. It needs to have specific boundaries and constraints that keep the LLM from fudging the tests to make them pass.</p>
<p>“Is this the right contract?” is upstream of the code. It’s totally subjective. It’s largely matters of taste, business judgment, and user research. Just like in traditional software development.</p>
<p>“Does the code satisfy the contract?” is downstream. The buckets sit downstream. Get the contract right and the buckets get measurable targets.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388733" 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-to-measure-ai-code-quality/75168/52">Post #51</a>
	                </div>
	            </div>
              <div id="likers-container-388733" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388733"
                     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 #51"></div>
  </section>
</div>
    <div class="postbit" id="388767" data-post-id="388767">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Vidar" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Vidar
                    <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>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That defines the what should be made. There are many ways to get there though, and how it is done and what is prioritized is a large part of code quality. So while that does provide targets critera for success/ failure at complying with BDD specifications, and that is a key metric of course, that in itself can be done with slow or fast code, safe or unsafe, spaghetti or well organized, and so on.</p>
<p>There is also a divide of somewhat different concerns between code quality at a runtime or non-runtime. Performance, security, dependability with subtopics are runtime quality metrics, while I consider non-runtime metrics more code as such topics like testability, readability, adaptability, extendability and complexity.</p>
<p>What I’m looking for are meaningful quality metrics to use with code generation so we can get feedback loops that can optimize for code quality. I believe some keys to that are:</p>
<ol>
<li>Can be measured with consistent meaning and precision across different projects and coding styles.</li>
<li>The measurement is aligned with the actual goals. We get optimizations for what we measure.</li>
<li>It should be actionable with a way clear path to improvement.</li>
</ol>
<p>Then there is the key question of which quality axis or buckets should be measured and optimized for, and whether it is a question of finding the tradeoff along some quality axis or just a plain maximizing/ minimizing goal. For instance failure risk minimizing is on a tradeoff axis with performance, redundancy and cost. While complexity should just be minimized. (At least I can’t think of a reason why one should chose more complexity over less if less does the job).</p>
<p>The topic of code quality is very deep rabbit hole so there are lots of giants shoulders and sore toes to stand on. The ones I’m currently looking the most at:</p>
<ul>
<li>Testing. If anything even more important with automated code generation, but also a gradual axis where the balance of enough should be found.</li>
<li>Complexity index. Can a simpler/ idiomatic/ proven construct do the same job? There are many quality complexity indexes but from an actionable viewpoint moving towards simpler and or proven solutions is the goal.</li>
<li>Purity ratio extended to models and contexts. Code that can be locked down as verified to work takes less headspace, likely also less tokens spent. And leaves more room to focus for the remaining code surface.</li>
<li>Architectural ratio and separation. Can the architectural configuration be seperated and considered without the implementation details? Allowing LLMs to consider the architecture level by itself, at a fraction of the size of the entire code, give a smaller code surface with possible sharper focus and less token use.</li>
<li>Architectural suitability. This should clearly be optimized, but have many axis on its own. My current best plan is comparing variations, but that is quite resource intensive.</li>
<li>Changeability. How difficult is to change or extend the code? How difficult is it to replace a module or context? This plays on a lot of metrics and boundary checks.</li>
<li>Single source of truth. If there are duplications of code or values that should be concious choices for good reasons. More a check than an axis.</li>
<li>Size. For a given solution less code, at an equal or less complexity level, is better. (Not thinking in terms of cutting name lenghts etc).</li>
<li>Hot spots, critical paths, performance traps, and dead code. Static analysis and profiling. Check for and optimize extra, or remove for dead code.</li>
<li>Documentation. I find that LLMs make inconsistent documentation. Some parts might be too fine grained with irrelevant details, while major parts might be missing. How to consistently measure though? Then there are comments, where LLMs seem to be overly vocal in general.</li>
<li>Review friendly. Aiming to minimize the active code surface by making large parts known pure. Readability and low complexity or idiomatic standard solutions is also positive.</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388767" 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-to-measure-ai-code-quality/75168/53">Post #52</a>
	                </div>
	            </div>
              <div id="likers-container-388767" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388767"
                     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 #52"></div>
  </section>
</div>
    <div class="postbit" id="388792" data-post-id="388792">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Several of your dimensions belong in different buckets, and that re-bucketing changes how work composes around them.</p>
<p>Code quality (I think): complexity, purity, changeability, single source of truth, size, readability. That’s a coherent bucket.</p>
<p>Architecture is its own bucket: architectural ratio and separation, architectural suitability. Code can be beautifully crafted inside a bad architecture, or vice versa. Not the same axis.</p>
<p>Testing is its own bucket: tests are a different layer from the code under test. Not a code-quality property.</p>
<p>Documentation is its own bucket: LLMs do specific weird things here (doc gaps + comment overproduction) that need their own tools.</p>
<p>Hot spots and performance traps belong in performance, which folds into correctness when SLOs cross thresholds. Dead code is code quality.</p>
<p>Where this matters: if the community converges on per-bucket work, each bucket becomes tractable. Right now most of the substantial tooling here (Archdo, Ragex, gtcode’s substrate, the elixir-vibe org) is trying to cover multiple buckets at once. If we instead converged on, say, a standard architectural-linting Credo pack for Phoenix bounded contexts, the problem space would collapse.</p>
<p>Selfishly: I’m partly making this case because I’m a customer of this work, not a builder of it. My lane is contract-form and code generation, not quality measurement. I’d love a standardized architectural Credo pack for Phoenix that I can plug into my harness without rebuilding it. Same for code-quality lint, security lint, doc lint. The buckets give us the convergence targets.</p>
<p>Architectural separation is the most interesting of your list. If we take your approach (separating architecture from implementation), it opens up a more easily measurable axis.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388792" 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-to-measure-ai-code-quality/75168/54">Post #53</a>
	                </div>
	            </div>
              <div id="likers-container-388792" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388792"
                     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 #53"></div>
  </section>
</div>
    <div class="postbit" id="388807" data-post-id="388807">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Vidar" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Vidar
                    <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>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes, I consider most point listed as their own optimization or axis where it is a tradeoff. It is a starting point, and I’m sure it will change or more get added.</p>
<p>Testing and documentation are clearly their own buckets, and somewhat to the side of the code itself. Testing however is key to make an automated code generation feedback loop so I need really need that included in depth.</p>
<p>Changeability cover both changing code and changing entire modules or contexts. Some traits helps are common, but I agree one would be related to code quality than architecture.</p>
<p>I do have architecture as its own set of axis. That said it is so integral to the code, or the other way around, that I think optimizing a software solution without including architecture concerns would be meaningless. But yes, I should keep a clearer distinction.</p>
<p>Architectural seperation has proven a bit of a challenge. About 95% to 99% of repos goes smoothly, but then there are sharp edges and one offs. To be expected as none of the repos were made with this in mind, but I still aim for a a consistent 100%.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388807" 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-to-measure-ai-code-quality/75168/55">Post #54</a>
	                </div>
	            </div>
              <div id="likers-container-388807" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388807"
                     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 #54"></div>
  </section>
</div>
    <div class="postbit" id="388813" data-post-id="388813">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m really interested in the idea of architectural separation. If you can achieve that, it’s a huge win in terms of breaking the problem down because you can TRULY measure each separately, and code quality and architecture become totally disjoint. I should probably read around in archdo some more to understand how you’re acheiving that.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388813" 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-to-measure-ai-code-quality/75168/56">Post #55</a>
	                </div>
	            </div>
              <div id="likers-container-388813" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388813"
                     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 #55"></div>
  </section>
</div>
    <div class="postbit" id="388817" data-post-id="388817">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Vidar" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Vidar
                    <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>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Archdo is not doing that as it is in another project. At least for now.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388817" 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-to-measure-ai-code-quality/75168/57">Post #56</a>
	                </div>
	            </div>
              <div id="likers-container-388817" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388817"
                     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 #56"></div>
  </section>
</div>
    <div class="postbit" id="388826" data-post-id="388826">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’d like to see it if you’ve got a link.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388826" 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-to-measure-ai-code-quality/75168/58">Post #57</a>
	                </div>
	            </div>
              <div id="likers-container-388826" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388826"
                     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 #57"></div>
  </section>
</div>
    <div class="postbit" id="388827" data-post-id="388827">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Vidar" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Vidar
                    <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>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I will do a more proper write up if and when I get the kinks worked out. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388827" 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-to-measure-ai-code-quality/75168/59">Post #58</a>
	                </div>
	            </div>
              <div id="likers-container-388827" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388827"
                     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 #58"></div>
  </section>
</div>
    <div class="postbit" id="388844" data-post-id="388844">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Vidar" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Vidar
                    <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>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That is like a documentary!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="388844" 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-to-measure-ai-code-quality/75168/61">Post #60</a>
	                </div>
	            </div>
              <div id="likers-container-388844" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388844"
                     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 #60"></div>
  </section>
</div>
    <div class="postbit" id="388852" data-post-id="388852">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="johns10davenport" data-post="40" data-topic="75168">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/johns10davenport/48/22251_2.png" class="avatar"> johns10davenport:</div>
<blockquote>
<p>If we’re directly measuring the output of large language models, it needs to fall into several different categories</p>
</blockquote>
</aside>
<p>this is a great observation, has anyone attempted to describe a taxonomy of this? just curious haven’t looked to hard, but would be a good read if it was short and concise and roughly generalized enough for praxis</p>
<aside class="quote no-group quote-modified" data-username="mikehostetler" data-post="32" data-topic="75168">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mikehostetler/48/20620_2.png" class="avatar"> mikehostetler:</div>
<blockquote>
<p>I’ve attempted to do this here for Jido Packages: <a href="https://jido.run/docs/contributors/package-quality-standards" rel="noopener nofollow ugc">Package Quality Standards · Agent Jido</a></p>
</blockquote>
</aside>
<p>Thank you for sharing this, very good read, definitely bookmarked, and for sharing the reference to <code>ex_slop</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="388852" 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-to-measure-ai-code-quality/75168/62">Post #61</a>
	                </div>
	            </div>
              <div id="likers-container-388852" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="388852"
                     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 #61"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/75168/load_more?page=7">Load more posts (10 remaining)</a>
</div></template></turbo-stream>