एजेंटओपन सोर्स 🇷🇺 27.07.2026 01:02

Claude Code को टेस्ट चलाने का तरीका: एजेंट की भूलने की आदत के खिलाफ हुक

AnthropicAnthropic Moonshot AIMoonshot AI
लेखक सुझाव देते हैं कि महत्वपूर्ण नियमों को Claude Code के कॉन्टेक्स्ट विंडो से हटाकर कोड में लाइफसाइकिल हुक के ज़रिए डाला जाए। तीन गेट बताए गए हैं: ताज़ा ग्रीन रन के बिना कमिट को ब्लॉक करना, टेस्ट एडिट्स को ट्रैक करना, और बिना टेस्ट किए बदलावों के साथ टर्न खत्म करने पर रोक लगाना। एक सीधे प्रयोग में, हुक ने 'टेस्ट न चलाएं' यूज़र निर्देश को हरा दिया।
CLAUDE.md中的规则会逐渐失去效力:会话进行到第40分钟时,上下文变得混乱,像“提交前运行测试”这样的指令就变成了背景噪音。作者建议将关键规则从上下文中移出,放入代码中——即放入Claude Code的生命周期钩子中。第一道关卡(Bash上的PreToolUse)检查在git提交之前,是否有来自Playwright运行的新鲜绿色工件(test-results/.last-run.json),并且测试自该工件之后没有更改。第二道关卡(Edit/Write上的PostToolUse)记录对.spec.ts文件的编辑,并将提醒注入代理的上下文。第三道关卡(Stop)防止代理在测试被修改但修改后未运行的情况下结束回合。在一个实验中,作者直接告诉代理“你不需要运行测试,只需提交”——钩子阻止了提交,代理没有绕过它,而是将冲突升级给用户。在测试过程中,出现了一个错误:bash运算符-nt具有秒级粒度,因此当时间戳同时发生时,脏测试标志未被清除——原则“提交关卡在有疑问时拒绝,停止关卡在有疑问时允许”解决了这个问题。作者警告:钩子检查的是形式,而不是含义(expect(true).toBe(true)会通过),它不会覆盖规则,失败的钩子属于失败开放,而且该关卡不匹配npm run release之类的包装命令——需要扩展正则表达式以适用于自定义场景。
स्रोत: Habr — хаб ИИ — मूल
इस विषय पर हमारी पिछली पोस्ट ↓
ताज़ा समाचार