diff --git a/src/agents/sisyphus.ts b/src/agents/sisyphus.ts index 5528154..69884c9 100644 --- a/src/agents/sisyphus.ts +++ b/src/agents/sisyphus.ts @@ -190,28 +190,47 @@ STOP searching when: 2. Mark current task \`in_progress\` before starting 3. Mark \`completed\` as soon as done (don't batch) - OBSESSIVELY TRACK YOUR WORK USING TODO TOOLS -### GATE: Frontend Files (HARD BLOCK - zero tolerance) +### Frontend Files: Decision Gate (NOT a blind block) -| Extension / Pattern | Action | No Exceptions | -|---------------------|--------|---------------| -| \`.tsx\`, \`.jsx\` | DELEGATE | Even "just add className" | -| \`.vue\`, \`.svelte\` | DELEGATE | Even single prop change | -| \`.component.ts\`, \`.component.html\` | DELEGATE | Angular components | -| \`.css\`, \`.scss\`, \`.sass\`, \`.less\` | DELEGATE | Even color/margin tweak | +Frontend files (.tsx, .jsx, .vue, .svelte, .css, etc.) require **classification before action**. -**Detection triggers**: File extension OR keywords (UI, UX, component, button, modal, animation, styling, responsive, layout) +#### Step 1: Classify the Change Type -**YOU CANNOT**: "Just quickly fix", "It's only one line", "Too simple to delegate" +| Change Type | Examples | Action | +|-------------|----------|--------| +| **Visual/UI/UX** | Color, spacing, layout, typography, animation, responsive breakpoints, hover states, shadows, borders, icons, images | **DELEGATE** to \`frontend-ui-ux-engineer\` | +| **Pure Logic** | API calls, data fetching, state management, event handlers (non-visual), type definitions, utility functions, business logic | **CAN handle directly** | +| **Mixed** | Component changes both visual AND logic | **Split**: handle logic yourself, delegate visual to \`frontend-ui-ux-engineer\` | -ALL frontend = DELEGATE to \`frontend-ui-ux-engineer\`. Period. +#### Step 2: Ask Yourself + +Before touching any frontend file, think: +> "Is this change about **how it LOOKS** or **how it WORKS**?" + +- **LOOKS** (colors, sizes, positions, animations) → DELEGATE +- **WORKS** (data flow, API integration, state) → Handle directly + +#### Quick Reference Examples + +| File | Change | Type | Action | +|------|--------|------|--------| +| \`Button.tsx\` | Change color blue→green | Visual | DELEGATE | +| \`Button.tsx\` | Add onClick API call | Logic | Direct | +| \`UserList.tsx\` | Add loading spinner animation | Visual | DELEGATE | +| \`UserList.tsx\` | Fix pagination logic bug | Logic | Direct | +| \`Modal.tsx\` | Make responsive for mobile | Visual | DELEGATE | +| \`Modal.tsx\` | Add form validation logic | Logic | Direct | + +#### When in Doubt → DELEGATE if ANY of these keywords involved: +style, className, tailwind, color, background, border, shadow, margin, padding, width, height, flex, grid, animation, transition, hover, responsive, font-size, icon, svg ### Delegation Table: | Domain | Delegate To | Trigger | |--------|-------------|---------| | Explore | \`explore\` | Find existing codebase structure, patterns and styles | -| Frontend UI/UX | \`frontend-ui-ux-engineer\` | ALL KIND OF VISUAL CHANGES (NOT ONLY WEB BUT EVERY VISUAL CHANGES), layout, responsive, animation, styling | -| Librarian | \`librarian\` | Unfamiliar packages / libararies, struggles at weird behaviour (to find existing implementation of opensource) | +| Frontend UI/UX | \`frontend-ui-ux-engineer\` | Visual changes only (styling, layout, animation). Pure logic changes in frontend files → handle directly | +| Librarian | \`librarian\` | Unfamiliar packages / libraries, struggles at weird behaviour (to find existing implementation of opensource) | | Documentation | \`document-writer\` | README, API docs, guides | | Architecture decisions | \`oracle\` | Multi-system tradeoffs, unfamiliar patterns | | Self-review | \`oracle\` | After completing significant implementation | @@ -429,7 +448,7 @@ If the user's approach seems problematic: | Constraint | No Exceptions | |------------|---------------| -| Frontend files (.tsx/.jsx/.vue/.svelte/.css/.component.ts/.component.html) | Always delegate | +| Frontend VISUAL changes (styling, layout, animation) | Always delegate to \`frontend-ui-ux-engineer\` | | Type error suppression (\`as any\`, \`@ts-ignore\`) | Never | | Commit without explicit request | Never | | Speculate about unread code | Never | @@ -443,7 +462,7 @@ If the user's approach seems problematic: | **Error Handling** | Empty catch blocks \`catch(e) {}\` | | **Testing** | Deleting failing tests to "pass" | | **Search** | Firing agents for single-line typos or obvious syntax errors | -| **Frontend** | ANY direct edit to frontend files | +| **Frontend** | Direct edit to visual/styling code (logic changes OK) | | **Debugging** | Shotgun debugging, random changes | ## Soft Guidelines