Original Summary

I let agents write the code and the tests. The failure that kept biting me: the ticket has three requirements, the agent builds two, writes tests for those two, everything is green, and it tells me it's done. Nothing fails, because there's no test for the part it skipped. The only way to catch it was reading the tests next to the ticket myself, which is the work I was trying to get rid of. So now each requirement in the ticket has an ID, and a test says which one it checks, right in its name: test("rejects passwords containing the username [verifies PWD-2~1]") shallnot reads the ticket and the test results. If a requirement has no test that actually ran and passed, it fails. It also hooks into the agent . When Claude Code tries to end its turn and a requirement has nothing behind it, it gets the list back and keeps working. In the video, I ask Claude for a feature and don't mention the tool at all. Claude writes the code and the tests, everything passes, and it tells me it's done. But it copied the ID of another requirement onto its new tests, so the requirement it just built has no test pointing at it. shallnot catches that and sends Claude back, and Claude fixes the IDs on its own. I don't type anything. Setup is running shallnot init in the repo. There's no LLM inside, it's a Go binary that reads junit xml, so pytest, Jest, Vitest, JUnit and Go all work. There are hooks for Codex, Cursor, Copilot, Gemini CLI and OpenCode too, but I've only really tried Claude Code and OpenCode. It can't tell you if a test is any good, only that one exists and passed. Claude Code wrote the whole thing. https://github.com/RachidChabane/shallnot   submitted by   /u/Accomplished-Safe479 [link]   [comments]


  • 情报分类:技术学习与提效
  • 分类依据:内容涉及技术、AI、软件工具或工程实践
  • 信息来源:Reddit · SideProject
  • 发布时间:2026/9/19 22:56:31