CascadingDev/assets/templates
rob 188f6b3b16 fix: Handle empty AI diffs gracefully instead of raising errors
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>
2025-11-01 02:33:31 -03:00
..
process 1st commit 2025-10-28 21:23:08 -03:00
rules fix: Handle empty AI diffs gracefully instead of raising errors 2025-11-01 02:33:31 -03:00
USER_GUIDE.md 1st commit 2025-10-28 11:56:01 -03:00
design_doc.md 1st commit 2025-10-25 13:34:20 -03:00
feature.discussion.md 1st commit 2025-10-29 01:22:40 -03:00
feature.discussion.sum.md 1st commit 2025-10-29 01:22:40 -03:00
feature_request.md 1st commit 2025-10-29 01:22:40 -03:00
root_gitignore 1st commit 2025-10-29 01:22:40 -03:00