<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Github on The Chaotic Architect</title><link>https://lucabotti.github.io/tags/github/</link><description>Recent content in Github on The Chaotic Architect</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 15 Aug 2026 00:27:35 +0100</lastBuildDate><atom:link href="https://lucabotti.github.io/tags/github/index.xml" rel="self" type="application/rss+xml"/><item><title>An AI Experience</title><link>https://lucabotti.github.io/posts/reflections-on-ai/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://lucabotti.github.io/posts/reflections-on-ai/</guid><description>&lt;h1 id="an-ai-experience"&gt;An AI Experience&#10;&lt;/h1&gt;&lt;p&gt;For the past few months, I have been trying to find my natural workflow and tools (&lt;strong&gt;harnesses&lt;/strong&gt;) in the AI space.&lt;/p&gt;&#10;&lt;p&gt;In the past, I mostly chatted with Gemini and built a couple of tools, leveraging Go&amp;rsquo;s parallel capabilities (&lt;strong&gt;goroutines&lt;/strong&gt;) to move data around. Through a client, I was exposed to Claude Code, and while these tools are impressive, their output still requires careful human review.&lt;/p&gt;&#10;&lt;p&gt;I’ve also grown interested in Spec-Driven Development (SDD), which I find particularly useful for longer projects. SDD doesn&amp;rsquo;t strictly mandate a specific framework, but having a structured system provides reassurance throughout the execution steps.&lt;/p&gt;&#10;&lt;p&gt;After experimenting with various options (Gemini, Claude, OpenCode), I decided to stabilize on Junie, as it integrates natively into my daily toolchain. While JetBrains&amp;rsquo; AI strategy initially appeared erratic, they now seem to be moving in the right direction—both for individual developers (via agent integration) and enterprise environments (with cost control tools).&lt;/p&gt;&#10;&lt;p&gt;My core philosophy is to &lt;strong&gt;stay in the loop&lt;/strong&gt;: I want to actively review and understand what the model generates.&lt;/p&gt;&#10;&lt;p&gt;When putting SDD into practice, I settled (for now) on &lt;a class="link" href="https://github.com/github/spec-kit" target="_blank" rel="noopener"&#10; &gt;GitHub&amp;rsquo;s Spec-Kit&lt;/a&gt;, which hits the sweet spot between features, token consumption, and complexity. I am aware of alternatives like &lt;a class="link" href="https://github.com/Fission-AI/OpenSpec" target="_blank" rel="noopener"&#10; &gt;Fission AI’s OpenSpec&lt;/a&gt; and the &lt;a class="link" href="https://github.com/bmad-code-org/bmad-method" target="_blank" rel="noopener"&#10; &gt;BMAD Method&lt;/a&gt;, but after comparing them, Spec-Kit remains my preferred choice.&lt;/p&gt;&#10;&lt;p&gt;The problem was that the version I installed (v0.16.2) didn&amp;rsquo;t work properly with Junie. As detailed in &lt;a class="link" href="https://github.com/github/spec-kit/issues/4067" target="_blank" rel="noopener"&#10; &gt;issue #4067&lt;/a&gt;, the bug was related to custom command naming and file handling for Junie.&lt;/p&gt;&#10;&lt;p&gt;Two minutes after filing the issue, I realized I could probably fix it myself. I forked the repo, opened PyCharm, and started digging into the codebase. It took about 40 minutes to understand the structure, locate the right hook point, validate my hypothesis against similar logic, and patch the bug. I opened a pull request, addressed a quick review comment, and merged it.&lt;/p&gt;&#10;&lt;p&gt;Maintainer Manfred Riem merged the PR—all within two or three hours, without asking AI to analyze the codebase or suggest a fix. A couple of releases later, the patch is now live.&lt;/p&gt;&#10;&lt;p&gt;Interestingly, after the PR was validated, I received an automated comment on my original issue from a GitHub bot. Triggered by Manfred&amp;rsquo;s comment, the bot analyzed the bug, validated it, and suggested the exact same solution path I had taken manually.&lt;/p&gt;&#10;&lt;p&gt;What did I learn from this experience?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, agentic AI tools are becoming remarkably capable. The bot&amp;rsquo;s automated issue analysis and proposed fix were genuinely impressive.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, remaining &amp;ldquo;in the loop&amp;rdquo; adds real value. To the &amp;ldquo;vibe coding&amp;rdquo; crowd, manually reading a codebase might look like a waste of time, but it builds deep comprehension and allows you to appreciate someone else&amp;rsquo;s architecture. Without that context, I wouldn&amp;rsquo;t have been able to critically evaluate the bot&amp;rsquo;s suggestion.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt;, the automated pull request reviewer comments were surprisingly context-aware, providing solid feedback based on the whole repository.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Fourth&lt;/strong&gt;, experienced developers still have plenty of value to add when it comes to hands-on coding and critical oversight.&lt;/p&gt;&#10;&lt;p&gt;I still harbor doubts about the long-term economic and structural sustainability of AI as a whole (Ed Zitron&amp;rsquo;s newsletter &lt;a class="link" href="https://www.wheresyoured.at/" target="_blank" rel="noopener"&#10; &gt;Where&amp;rsquo;s Your Ed At&lt;/a&gt; is a great read on this subject). The whole &amp;ldquo;AI will replace developers&amp;rdquo; debate feels largely overblown, but learning how to work effectively with these tools is non-negotiable.&lt;/p&gt;&#10;</description></item><item><title>TIL - Using UV in GitHub Actions</title><link>https://lucabotti.github.io/posts/using-uv-in-github-actions/</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate><guid>https://lucabotti.github.io/posts/using-uv-in-github-actions/</guid><description>&lt;!--&#10;Checklist:&#10;- [ ] Outline&#10;- [ ] Draft 1&#10;- [ ] Edit&#10; - [ ] Check trouble / vale&#10; - [ ] One sentence per line&#10; - [ ] Check preview in browser&#10; - [ ] Put in all links&#10;- [ ] Create summary&#10;- [ ] Tidy up&#10; - [ ] Set publishDate&#10; - [ ] Toggle draft&#10; - [ ] Check tags&#10; - [ ] Remove checklist&#10; - [ ] Remove outline&#10;- [ ] Publish to hosting&#10;&#10;Outline:&#10;- &#10;--&gt;&#10;&lt;h1 id="github-actions-and-uv"&gt;GitHub Actions and UV&#10;&lt;/h1&gt;&lt;p&gt;I have been using &lt;a class="link" href="https://docs.astral.sh/uv/" target="_blank" rel="noopener"&#10; &gt;uv&lt;/a&gt; for my python projects. I do not need to talk about the impact that the tools is having on the Python ecosystem.&lt;/p&gt;&#10;&lt;p&gt;Since I decided to release more and more of the small (in)utilities I create as open source, because, why not, I need to provide some of the best practices in my repositories.&lt;/p&gt;&#10;&lt;p&gt;Of course, continous delivery is one of them, and I am willing to embrace uv in this area too. Luckily &lt;a class="link" href="https://docs.astral.sh/uv/guides/integration/github/" target="_blank" rel="noopener"&#10; &gt;astral provides a nice github action&lt;/a&gt; to work with.&lt;/p&gt;&#10;&lt;p&gt;Since I released my small &lt;a class="link" href="https://github.com/RedSoftwareSystems/vault-search-replace" target="_blank" rel="noopener"&#10; &gt;vault-search-replace&lt;/a&gt; to PyPi, this is the first draft of the worflow.&lt;/p&gt;&#10;&lt;p&gt;This is the kind of value that the &lt;a class="link" href="https://lucabotti.github.io/posts/delivering-value/" &gt;Delivering Value&lt;/a&gt; post was talking about - you give value to your users.&lt;/p&gt;&#10;&lt;p&gt;In this example, the value is for me, first, potentially others, second.&lt;/p&gt;&#10;&lt;p&gt;Enjoy!&lt;/p&gt;&#10;</description></item></channel></rss>