Add Ralph Wiggum agent setup and project specifications

- Add project constitution with vision, principles, and autonomy settings
- Add 15 feature specifications covering full app scope
- Configure agent entry points (AGENTS.md, CLAUDE.md)
- Add build prompt and speckit command for spec creation
- Include comprehensive .gitignore for iOS development

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-23 23:19:41 -05:00
parent c64aa4b8ac
commit 1049057d7d
24 changed files with 1092 additions and 0 deletions

36
specs/11-wire-removal.md Normal file
View File

@@ -0,0 +1,36 @@
# Wire & Line Removal Feature
## Description
Remove power lines and wires using contour detection with line brush fallback.
## Acceptance Criteria
- [ ] User taps near wire with Wire tool selected
- [ ] `VNDetectContoursRequest` returns all detected contours
- [ ] ContourService scores contours and selects best wire-like match:
- Proximity to tap point
- Thin/elongated aspect ratio
- Straightness (low curvature)
- Length
- [ ] Best contour highlighted for preview
- [ ] Mask width configurable: default 6px, range 2-20px via slider
- [ ] User confirms, mask expanded to configured width, inpaint executes
- [ ] Line brush fallback when no contour detected:
- User switches to "Line brush" mode
- User draws along wire
- Consistent stroke width maintained
- Stroke becomes mask for inpainting
- [ ] Multiple wires can be removed sequentially
- [ ] Performance: contour detection < 300ms
## Technical Notes
- Power lines against sky have strong edges - ideal case
- Scoring weights: proximity 0.3, aspect 0.3, straightness 0.2, length 0.2
- Line brush should use touch velocity for smooth strokes
- Consider Catmull-Rom spline for smooth line brush paths
## Edge Cases
- No wire-like contours found: "No lines detected. Use line brush" prompt
- Wire against busy background (buildings, trees): likely needs line brush
- Curved wires (drooping power lines): scoring allows moderate curvature
- Wire crosses entire image: may need to process in segments
- Multiple parallel wires: each tap selects one, remove sequentially