Optimize local development workflow with Cursor. Triggers on "cursor workflow", "cursor development loop", "cursor productivity", "cursor daily workflow"...
Use Cursor inside the normal local development loop: small scoped change, inspect diff, run focused checks, commit reviewed work, and retain a rollback path.
| Condition | Safe response |
|---|---|
| Generated change is broad | Reject/split it before applying. |
| Test fails | Diagnose and revert or fix within scope; do not disable the test. |
| Working tree is mixed | Stash or commit unrelated user work before continuing. |
Ask Inline Edit to update one function, inspect the diff, run that function's focused test, and commit it separately. If the test fails or unrelated files change, reject/revert and restate the task with tighter constraints.
Establish a productive daily development workflow using Cursor's AI features at each stage of the code-write-test-commit cycle.
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 1. PLAN ā Chat (Cmd+L) with @Codebase, @Docs ā
ā 2. SCAFFOLD ā Composer (Cmd+I) for new files ā
ā 3. IMPLEMENT ā Tab completion for line-by-line coding ā
ā 4. REFINE ā Inline Edit (Cmd+K) for targeted fixes ā
ā 5. TEST ā Chat to generate tests, terminal to run ā
ā 6. COMMIT ā AI-generated commit messages ā
ā 7. REVIEW ā @Git for branch diff review ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Start each task by discussing architecture with Chat:
@Codebase @Docs Prisma
I need to add a "favorites" feature where users can bookmark products.
What's the best approach given our current data model and API structure?
Consider: database schema, API endpoints, and frontend hooks.
Chat excels at:
@CodebaseOnce the plan is clear, use Composer for multi-file generation:
@src/api/users/route.ts @prisma/schema.prisma
Create the favorites feature:
1. prisma/schema.prisma: Favorite model (userId, productId, createdAt)
2. src/api/favorites/route.ts: GET (list user favorites), POST (add), DELETE (remove)
3. src/services/favorite.service.ts: FavoriteService with Prisma operations
4. src/hooks/useFavorites.ts: React hook with optimistic updates
Follow existing patterns from the users API.
Tip: Reference existing files with @ so Composer replicates your patterns instead of inventing new ones.
With scaffolded files open, use Tab for implementation details:
// Open favorite.service.ts and start typing:
async toggleFavorite(userId: string, productId: string
// Tab completes the full method:
async toggleFavorite(userId: string, productId: string): Promise<Favorite | null> {
const existing = await this.prisma.favorite.findUnique({
where: { userId_productId: { userId, productId } },
});
if (existing) {
await this.prisma.favorite.delete({ where: { id: existing.id } });
return null;
}
return this.prisma.favorite.create({ data: { userId, productId } });
}
Workflow tips for Tab:
Cmd+ā when the suggestion is 80% rightFor targeted improvements, select code and use Cmd+K:
Select the toggleFavorite method ā Cmd+K:
"Add input validation: userId and productId must be non-empty strings.
Add error handling for database connection failures.
Return a Result type instead of throwing."
Other common Cmd+K workflows:
"Add JSDoc comments" on a function"Convert to async/await" on a Promise chain"Add null checks" on a code block"Optimize this query" on a database callGenerate tests via Chat:
@src/services/favorite.service.ts @tests/services/user.service.test.ts
Generate vitest tests for FavoriteService following the same patterns as
user.service.test.ts. Cover: addFavorite, removeFavorite, toggleFavorite,
getFavorites with pagination. Mock Prisma client.
Run tests in the integrated terminal:
# Cmd+` to open terminal
npm test -- --watch src/services/favorite.service.test.ts
If tests fail, paste the error into Chat:
@src/services/favorite.service.ts
This test is failing with: "Expected null but received undefined"
[paste test output]
What's wrong?
Use Cursor's Source Control panel (Cmd+Shift+G):
feat: add favorites feature with toggle, pagination, and optimistic updates
- Add Favorite model to Prisma schema with userId/productId unique constraint
- Create REST API endpoints (GET, POST, DELETE) for /api/favorites
- Implement FavoriteService with toggleFavorite and paginated listing
- Add useFavorites React hook with optimistic UI updates
Before pushing, review your full branch diff:
@Git
Review all changes in this branch compared to main.
Check for:
- Missing error handling
- Type safety issues
- Potential N+1 query problems
- Any hardcoded values that should be environment variables
@Git includes the branch diff in context, giving the AI a complete view of all your changes.
Morning startup:
1. cursor . # Open project
2. Wait for "Indexed" in status bar # Indexing complete
3. Cmd+Shift+G ā git pull # Sync with team
4. Cmd+L ā "What changed yesterday? @Git"
Task switching:
- Start a new Chat (Cmd+N) for each task
- Do NOT continue a 20-turn conversation on a new topic
Minimize mouse usage:
Cmd+P ā Open any file by name
Cmd+Shift+P ā Run any command
Cmd+L ā Ask AI anything
Cmd+K ā Edit selected code
Cmd+I ā Multi-file changes
Cmd+` ā Toggle terminal
Cmd+B ā Toggle sidebar
Cmd+Shift+G ā Git panel
Create .cursor/rules/dev-standards.mdc:
---
description: "Development standards for all code"
globs: ""
alwaysApply: true
---
- Run `npm test` before committing
- All new functions need JSDoc comments
- Use Conventional Commits format
- No console.log in committed code (use proper logger)
@Codebase to explore unfamiliar code