<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: Nizoss</title><link>https://news.ycombinator.com/user?id=Nizoss</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 04 Jul 2026 10:55:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Nizoss" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Nizoss in "My Agent Skill for Test-Driven Development"]]></title><description><![CDATA[
<p>I use a different approach, I enforce TDD using hooks. Think of it this way: You interact with your agent and ask it to implement a feature. Now every change it wants to make will have to be approved by a separate agent. This second agent is spawned using the SDK and can see the pending change, recent session history for context, instructions on how to interpret the information in relation to TDD, and any project custom instructions.<p>This setup works great especially when you work with multiple agents or sessions in parallel and don’t want to be babysitting TDD. You just know that no TDD shortcuts or violations will be made and can focus on the solution instead. Agents are good at internally justifying shortcuts and lowering what’s good enough as the session goes. You can notice this when you ask them to review their own work compared to when asking a new session to review the changes. The difference is stark.<p>What’s interesting about the TDD instructions I dogfooded for this is that there is a lot that is implicit about how to interpret operations in terms of TDD violations. For example, earlier versions of the instructions had the validation agent block multi-step refactor changes because there was no guarantee to them that further changes will follow. It would also block changes when a definition is removed while it is still being called. The reasoning is that the code will no longer build and thereby not fulfill the ”refactoring is allowed under green”. Improving the wording and clarifying the process helped from this unwanted false blocks.<p>If you want to give this approach a try, you’ll find it here. I’m the author and I’m happy to and any further questions:
<a href="https://github.com/nizos/probity" rel="nofollow">https://github.com/nizos/probity</a></p>
]]></description><pubDate>Sat, 06 Jun 2026 17:28:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48427068</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48427068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48427068</guid></item><item><title><![CDATA[New comment by Nizoss in "The Website Specification"]]></title><description><![CDATA[
<p>Good resource and nicely organized. I took the opportunity to apply a couple new things.</p>
]]></description><pubDate>Sun, 31 May 2026 11:31:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48344896</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48344896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48344896</guid></item><item><title><![CDATA[New comment by Nizoss in "Ask HN: What are you working on? (May 2026)"]]></title><description><![CDATA[
<p>I’m working on a project that blocks agents from breaking rules. The rules are enforced through hooks and work across Claude Code, Codex, and GitHub Copilot.<p><a href="https://github.com/nizos/probity" rel="nofollow">https://github.com/nizos/probity</a></p>
]]></description><pubDate>Sun, 10 May 2026 20:05:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48087360</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48087360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48087360</guid></item><item><title><![CDATA[New comment by Nizoss in "Agents need control flow, not more prompts"]]></title><description><![CDATA[
<p>Exactly! I have said this a couple of times but it was taken literally as in no capital letters or strong language. Glad to see someone else who shares this perspective.</p>
]]></description><pubDate>Thu, 07 May 2026 21:39:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48055464</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48055464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48055464</guid></item><item><title><![CDATA[New comment by Nizoss in "Agents need control flow, not more prompts"]]></title><description><![CDATA[
<p>Not throwing shade at anyone here but the thought has definitely crossed my mind that we are recreating SAFe but for agents when looking at some of the orchestration setups out there. I think that it is better to not force the same hierarchical processes that worked for humans in large organizations onto agents and instead look at what they need to give better results and what their failure modes look like.</p>
]]></description><pubDate>Thu, 07 May 2026 21:37:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48055434</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48055434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48055434</guid></item><item><title><![CDATA[New comment by Nizoss in "Agents need control flow, not more prompts"]]></title><description><![CDATA[
<p>I fully agree. Also started using husky before expanding further and created my own hooks. I can’t imagine myself using agents today without them, it would require a lot of babysitting.</p>
]]></description><pubDate>Thu, 07 May 2026 21:33:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48055388</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48055388</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48055388</guid></item><item><title><![CDATA[New comment by Nizoss in "Agents need control flow, not more prompts"]]></title><description><![CDATA[
<p>Sounds interesting, can you elaborate on your thinking? Got me curious.</p>
]]></description><pubDate>Thu, 07 May 2026 21:30:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48055346</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48055346</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48055346</guid></item><item><title><![CDATA[New comment by Nizoss in "Agents need control flow, not more prompts"]]></title><description><![CDATA[
<p>Exactly! I don’t babysit TDD anymore. I have another agent that does that for me and honestly sometimes catches things I would have missed if I was the babysitting.<p>Hooks do wonders here. The payload contains a lot of information about the pending action the agent wants to make. Combine that with the most recent n events from the agent’s session history and you have a rich enough context to pass to another agent to validate the action through the SDK.<p>This way the validation uses the same subscription you’re logged in to, whether you’re using Claude Code, Codex, or Copilot. The validation agent responds with a json format that you can easily parse and return, allowing you to let the action through or block it with direction and guidance. I’m genuinely impressed by how well this works considering how simple it is.<p>You can find my approach here:
<a href="https://github.com/nizos/probity" rel="nofollow">https://github.com/nizos/probity</a></p>
]]></description><pubDate>Thu, 07 May 2026 21:15:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48055164</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48055164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48055164</guid></item><item><title><![CDATA[New comment by Nizoss in "Agents need control flow, not more prompts"]]></title><description><![CDATA[
<p>If you’re interested in such deterministic scaffolding/control flow, check out Probity.<p>I created it to address this exact issue. It is a vendor-neutral ESLint-style policy engine and currently supports Claude Code, Codex, and Copilot.<p>It uses the agents hooks payloads and session history to enforce the policies. Allowing it to be setup to block commits if a file has been modified since the checks were last run, disallow content or commands using string or regex matching, and enforce TDD without the need of any extra reporter setup and it works with any language.<p>Feedback welcome:
<a href="https://github.com/nizos/probity" rel="nofollow">https://github.com/nizos/probity</a></p>
]]></description><pubDate>Thu, 07 May 2026 20:49:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48054764</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=48054764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48054764</guid></item><item><title><![CDATA[New comment by Nizoss in "EvanFlow – A TDD driven feedback loop for Claude Code"]]></title><description><![CDATA[
<p>Creator of TDD Guard here, thanks for the mention!<p>TDD Guard was built when Claude Code was the only one to offer hooks. Plugins didn't exist and the models were weaker, so the validation context and instructions took more work to get right. This is why it ended up requiring test reporters for different languages.<p>I have started a new project that does the same TDD enforcement, also through hooks, but without reporters. It works with any test runner, and it is vendor-agnostic, it works with Claude Code, Codex, and GitHub Copilot. The validator also sees recent session history which helps it handle cases like refactoring better.<p>The TDD instructions are still pretty basic compared to TDD Guard's, which have been dogfooded for a year. One thing I noticed while testing across agents is that some follow TDD a lot better than others, Codex struggled the most with the basic instructions.<p>Feedback welcome:<p><a href="https://github.com/nizos/conduct" rel="nofollow">https://github.com/nizos/conduct</a></p>
]]></description><pubDate>Mon, 27 Apr 2026 13:44:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47921476</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=47921476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47921476</guid></item><item><title><![CDATA[New comment by Nizoss in "Your job is to deliver code you have proven to work"]]></title><description><![CDATA[
<p>This is how I would also love to work but not all teams prefer this way. How many are you in your team? Was it easy to switch?</p>
]]></description><pubDate>Thu, 18 Dec 2025 18:24:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46316503</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=46316503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46316503</guid></item><item><title><![CDATA[New comment by Nizoss in "Your job is to deliver code you have proven to work"]]></title><description><![CDATA[
<p>I would love to hear your thoughts on TDD-Guard. An open source plugin I created to enfore Test-Driven Development practices on agents:<p><a href="https://github.com/nizos/tdd-guard" rel="nofollow">https://github.com/nizos/tdd-guard</a></p>
]]></description><pubDate>Thu, 18 Dec 2025 18:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46316467</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=46316467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46316467</guid></item><item><title><![CDATA[New comment by Nizoss in "Your job is to deliver code you have proven to work"]]></title><description><![CDATA[
<p>Yes! This is something that I also value. Having demo gifs of before and after helps a lot. I have encountered situations where what I thought was a minor finishing clean up had an effect that I didn't anticipate. By including demos in the PR it becomes a kind of guardrail against those situations for me. I also think it is neat and generally helpful for everyone.</p>
]]></description><pubDate>Thu, 18 Dec 2025 18:05:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46316256</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=46316256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46316256</guid></item><item><title><![CDATA[New comment by Nizoss in "Your job is to deliver code you have proven to work"]]></title><description><![CDATA[
<p>If you write your tests the Test-Driven Development way in that they first fail before production changes are introduced, you will be able to trust them a lot more. Especially if they are well-written tests that test behavior or contracts, not implementation details. I find that dependency injection helps a lot with this. I try to avoid mocking and complex dependencies as much as possible. This also allows me to easily refactor the code without having to worry about breaking anything if all the tests still pass.<p>When it comes to agentic coding. I created an open source tool that enforces those practices. The agent gets blocked by a hook if it tries to do anything that violates those principles. I think it helps a lot if I may say so myself.<p><a href="https://github.com/nizos/tdd-guard" rel="nofollow">https://github.com/nizos/tdd-guard</a><p>Edit: I realize now that I misunderstood your comment. I was quick to respond.</p>
]]></description><pubDate>Thu, 18 Dec 2025 17:51:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46316071</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=46316071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46316071</guid></item><item><title><![CDATA[New comment by Nizoss in "Show HN: Next AI Draw.io – Interactive Diagrams Creating with LLMs"]]></title><description><![CDATA[
<p>This looks really useful! Great work!</p>
]]></description><pubDate>Mon, 01 Dec 2025 12:21:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46106544</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=46106544</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46106544</guid></item><item><title><![CDATA[New comment by Nizoss in "Claude Code 2.0"]]></title><description><![CDATA[
<p>If you're on Windows and using vscode, add thiss to keybinds.json<p>[
    {
        "key": "shift+enter",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
            "text": "\u001b\n"
        },
        "when": "terminalFocus"
    },
]<p>It will allow you to get new lines without any strange output.</p>
]]></description><pubDate>Tue, 30 Sep 2025 15:22:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45426692</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=45426692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45426692</guid></item><item><title><![CDATA[New comment by Nizoss in "ChatGPT Developer Mode: Full MCP client access"]]></title><description><![CDATA[
<p>And here I am still waiting for some kind of hooks support for ChatGPT/Codex.</p>
]]></description><pubDate>Wed, 10 Sep 2025 19:08:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45202254</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=45202254</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45202254</guid></item><item><title><![CDATA[New comment by Nizoss in "Claude for Chrome"]]></title><description><![CDATA[
<p>Same issue here, dark mode on mobile.</p>
]]></description><pubDate>Tue, 26 Aug 2025 19:36:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45031224</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=45031224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45031224</guid></item><item><title><![CDATA[New comment by Nizoss in "My experience creating software with LLM coding agents – Part 2 (Tips)"]]></title><description><![CDATA[
<p>Yeah, this is a no brainer for certain use cases.</p>
]]></description><pubDate>Sat, 23 Aug 2025 11:12:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44995100</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=44995100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44995100</guid></item><item><title><![CDATA[New comment by Nizoss in "Show HN: TDD-Guard – Test-Driven Development for Claude Code"]]></title><description><![CDATA[
<p>Not that I'm aware of. I'll check what possibilities exist with Opencode on their Discord.</p>
]]></description><pubDate>Wed, 20 Aug 2025 16:32:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=44963408</link><dc:creator>Nizoss</dc:creator><comments>https://news.ycombinator.com/item?id=44963408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44963408</guid></item></channel></rss>