Changed approach from disabling outputs to properly handling AI's decision not to generate changes (e.g., gated outputs, conditional rules). Changes: 1. patcher.py - Allow empty diffs - sanitize_unified_patch() returns empty string instead of raising error - generate_output() returns early for empty patches (silent skip) - Common case: implementation_gate_writer when status != READY_FOR_IMPLEMENTATION - AI can now return explanatory text without a diff (no error) 2. features.ai-rules.yml - Override README rule - Add README.md → "readme_skip" association - Creates empty rule to disable README updates in Docs/features/ - Prevents unnecessary AI calls during feature discussions - README automation still works in root directory 3. root.ai-rules.yml - Restore default README rule - Removed "enabled: false" flag (back to default enabled) - Features directory overrides this with empty rule Benefits: - implementation_gate now calls AI but AI returns empty diff (as designed) - No more "[runner] error generating ...implementation.discussion.md" - No more "[runner] error generating README.md" - Clean separation: AI decides vs. config disables - Instructions to AI are still executed, AI just chooses no changes Testing: Setup completes cleanly with no [runner] errors. The automation runs and AI correctly returns no diff for implementation file when status is OPEN. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| features.ai-rules.yml | ||
| root.ai-rules.yml | ||