BOLT / lib /edit-examples.ts
legends810's picture
Upload folder using huggingface_hub
d83e271 verified
/**
* Example-based prompts for teaching AI proper edit behavior
*/
export const EDIT_EXAMPLES = `
## Edit Strategy Examples
### Example 1: Update Header Color
USER: "Make the header background black"
CORRECT APPROACH:
1. Identify Header component location
2. Edit ONLY Header.jsx
3. Change background color class/style
INCORRECT APPROACH:
- Regenerating entire App.jsx
- Creating new Header.jsx from scratch
- Modifying unrelated files
EXPECTED OUTPUT:
<file path="src/components/Header.jsx">
// Only the Header component with updated background
// Preserving all existing functionality
</file>
### Example 2: Add New Page
USER: "Add a videos page"
CORRECT APPROACH:
1. Create Videos.jsx component
2. Update routing in App.jsx or Router component
3. Add navigation link if needed
INCORRECT APPROACH:
- Regenerating entire application
- Recreating all existing pages
EXPECTED OUTPUT:
<file path="src/components/Videos.jsx">
// New Videos component
</file>
<file path="src/App.jsx">
// ONLY the routing update, preserving everything else
</file>
### Example 3: Fix Styling Issue
USER: "Fix the button styling on mobile"
CORRECT APPROACH:
1. Identify which component has the button
2. Update only that component's Tailwind classes
3. Add responsive modifiers (sm:, md:, etc)
INCORRECT APPROACH:
- Regenerating all components
- Creating new CSS files
- Modifying global styles unnecessarily
### Example 4: Add Feature to Component
USER: "Add a search bar to the header"
CORRECT APPROACH:
1. Modify Header.jsx to add search functionality
2. Preserve all existing header content
3. Integrate search seamlessly
INCORRECT APPROACH:
- Creating Header.jsx from scratch
- Losing existing navigation/branding
### Example 5: Add New Component
USER: "Add a newsletter signup to the footer"
CORRECT APPROACH:
1. Create Newsletter.jsx component
2. UPDATE Footer.jsx to import Newsletter
3. Add <Newsletter /> in the appropriate place in Footer
EXPECTED OUTPUT:
<file path="src/components/Newsletter.jsx">
// New Newsletter component
</file>
<file path="src/components/Footer.jsx">
// Updated Footer with Newsletter import and usage
import Newsletter from './Newsletter';
// ... existing code ...
// Add <Newsletter /> in the render
</file>
### Example 6: Add External Library
USER: "Add animations with framer-motion to the hero"
CORRECT APPROACH:
1. Import framer-motion in Hero.jsx
2. Use motion components
3. System will auto-install framer-motion
EXPECTED OUTPUT:
<file path="src/components/Hero.jsx">
import { motion } from 'framer-motion';
// ... rest of Hero with motion animations
</file>
### Example 7: Remove Element
USER: "Remove start deploying button"
CORRECT APPROACH:
1. Search for "start deploying" in all component files
2. Find it in Hero.jsx
3. Edit ONLY Hero.jsx to remove that button
INCORRECT APPROACH:
- Creating a new file
- Editing multiple files
- Redesigning the entire Hero
EXPECTED OUTPUT:
<file path="src/components/Hero.jsx">
// Hero component with "start deploying" button removed
// All other content preserved
</file>
### Example 8: Delete Section
USER: "Delete the testimonials section"
CORRECT APPROACH:
1. Find which file contains testimonials
2. Remove only that section from the file
3. Keep all other content intact
INCORRECT APPROACH:
- Deleting the entire file
- Recreating the page without testimonials
### Example 9: Change a Single Style (CRITICAL EXAMPLE)
USER: "update the hero to bg blue"
CORRECT APPROACH:
1. Identify the Hero component file: 'src/components/Hero.jsx'.
2. Locate the outermost 'div' or container element.
3. Find the existing background color class (e.g., 'bg-gray-900').
4. Replace ONLY that class with 'bg-blue-500'.
5. Return the entire file, completely unchanged except for that single class modification.
**Original File Content (BEFORE):**
<file path="src/components/Hero.jsx">
import React from 'react';
export default function Hero() {
return (
<div className="w-full bg-gray-900 text-white py-20 px-4">
<h1 className="text-5xl font-bold">Welcome to the App</h1>
<p className="mt-4 text-lg">This is the original hero section.</p>
<button className="mt-6 px-6 py-3 bg-blue-600 hover:bg-blue-700 rounded-lg">
Get Started
</button>
</div>
);
}
</file>
**Expected Output (AFTER):**
<file path="src/components/Hero.jsx">
import React from 'react';
export default function Hero() {
return (
<div className="w-full bg-blue-500 text-white py-20 px-4">
<h1 className="text-5xl font-bold">Welcome to the App</h1>
<p className="mt-4 text-lg">This is the original hero section.</p>
<button className="mt-6 px-6 py-3 bg-blue-600 hover:bg-blue-700 rounded-lg">
Get Started
</button>
</div>
);
}
</file>
NOTICE: Everything remains EXACTLY the same except 'bg-gray-900' β†’ 'bg-blue-500'.
- The button still has bg-blue-600 (unchanged)
- All text, structure, imports are identical
- No reformatting, no "improvements", no cleanup
## Key Principles
1. **Minimal Changes**: Only modify what's necessary
2. **Preserve Functionality**: Keep all existing features
3. **Respect Structure**: Follow existing patterns
4. **Target Precision**: Edit specific files, not everything
5. **Context Awareness**: Use imports/exports to understand relationships
## File Identification Patterns
- "header" β†’ src/components/Header.jsx
- "navigation" β†’ src/components/Nav.jsx or Header.jsx
- "footer" β†’ src/components/Footer.jsx
- "home page" β†’ src/App.jsx or src/pages/Home.jsx
- "styling" β†’ Component files (Tailwind) or index.css
- "routing" β†’ App.jsx or Router component
- "layout" β†’ Layout components or App.jsx
## Edit Intent Classification
UPDATE_COMPONENT: Modify existing component
- Keywords: update, change, modify, edit, fix
- Action: Edit single file
ADD_FEATURE: Add new functionality
- Keywords: add, create, implement, build
- Action: Create new files + minimal edits
FIX_ISSUE: Resolve problems
- Keywords: fix, resolve, debug, repair
- Action: Targeted fixes
UPDATE_STYLE: Change appearance
- Keywords: style, color, theme, design
- Action: Update Tailwind classes
REFACTOR: Improve code quality
- Keywords: refactor, clean, optimize
- Action: Restructure without changing behavior
`;
export function getEditExamplesPrompt(): string {
return EDIT_EXAMPLES;
}
export function getComponentPatternPrompt(fileStructure: string): string {
return `
## Current Project Structure
${fileStructure}
## Component Naming Patterns
Based on your file structure, here are the patterns to follow:
1. Component files are in: src/components/
2. Page components might be in: src/pages/ or src/components/
3. Utility functions are in: src/utils/ or src/lib/
4. Styles use Tailwind classes inline
5. Main app entry is: src/App.jsx
When the user mentions a component by name, look for:
- Exact matches first (Header β†’ Header.jsx)
- Partial matches (nav β†’ Navigation.jsx, NavBar.jsx)
- Semantic matches (top bar β†’ Header.jsx)
`;
}