@@ -9,7 +9,7 @@ To get the best results from Codegen, treat it like a skilled teammate: provide
9
9
10
10
<Tip >
11
11
Codegen is based on Anthropic's Claude 3.7. You can prompt it similarly to
12
- ChatGPT or other LLM-based assistants
12
+ ChatGPT or other LLM-based assistants, but with access to powerful development tools.
13
13
</Tip >
14
14
15
15
## The Core Principle: Specificity
@@ -30,7 +30,191 @@ If there are specific implementation details you want included, make sure to spe
30
30
4 . ** Context/Patterns:** Are there existing patterns, examples, or documentation to reference? (e.g., ` ProductService ` , ` ProductRepository ` )
31
31
5 . ** Success Criteria:** How will you know the task is done correctly? (e.g., Tests pass, 90%+ coverage, diagram updated)
32
32
33
+ ## Platform-Specific Guidance
34
+
35
+ ### Slack Integration
36
+ When prompting Codegen in Slack:
37
+ - ** Use threads** for complex, multi-step requests to keep context organized
38
+ - ** Tag specific repos** early in the conversation: "In the ` frontend ` repo..."
39
+ - ** Reference PR numbers** directly: "Review PR #123 and suggest improvements"
40
+ - ** Ask for status updates** on long-running tasks: "What's the progress on the refactoring?"
41
+
42
+ Example Slack prompt:
43
+ ```
44
+ @codegen In the `api-server` repo, can you:
45
+ 1. Add input validation to the `/users` endpoint
46
+ 2. Use the same validation pattern as `/products`
47
+ 3. Add tests covering edge cases
48
+ 4. Update the OpenAPI spec
49
+
50
+ Let me know when you have a PR ready! 🚀
51
+ ```
52
+
53
+ ### Linear Integration
54
+ When working with Linear issues:
55
+ - ** Reference issue numbers** for context: "This relates to CG-1234"
56
+ - ** Break down large tasks** into sub-issues when appropriate
57
+ - ** Specify acceptance criteria** clearly in the issue description
58
+ - ** Use @codegen ** to assign implementation tasks directly
59
+
60
+ Example Linear prompt:
61
+ ```
62
+ @codegen Please implement the user authentication feature described in this issue.
63
+
64
+ Requirements:
65
+ - JWT-based auth with refresh tokens
66
+ - Follow the security patterns in `auth/oauth.ts`
67
+ - Add middleware for protected routes
68
+ - Include comprehensive tests
69
+ - Update the API documentation
70
+
71
+ This should integrate with the existing user management system.
72
+ ```
73
+
74
+ ### GitHub Integration
75
+ When requesting PR reviews or code changes:
76
+ - ** Link to specific files** and line numbers when possible
77
+ - ** Reference related issues** or previous PRs for context
78
+ - ** Specify review criteria** : security, performance, maintainability
79
+ - ** Request specific types of feedback** : "Focus on error handling"
80
+
81
+ Example GitHub prompt:
82
+ ```
83
+ @codegen Please review this PR focusing on:
84
+ 1. Security implications of the new auth flow
85
+ 2. Performance impact of the database queries
86
+ 3. Test coverage for edge cases
87
+
88
+ Also check if the error handling follows our patterns in `utils/errors.ts`.
89
+ ```
90
+
91
+ ## Common Task Types
92
+
93
+ ### Code Review
94
+ ```
95
+ Review PR #456 in the `backend` repo and check for:
96
+ - SQL injection vulnerabilities
97
+ - Proper error handling
98
+ - Performance bottlenecks
99
+ - Test coverage gaps
100
+ - Documentation updates needed
101
+ ```
102
+
103
+ ### Bug Fixing
104
+ ```
105
+ There's a memory leak in the `data-processor` service when handling large files.
106
+ - Investigate the issue in `src/processors/file-handler.ts`
107
+ - Look at similar fixes in `image-processor.ts`
108
+ - Add monitoring to prevent future occurrences
109
+ - Include regression tests
110
+ ```
111
+
112
+ ### Feature Development
113
+ ```
114
+ Implement a real-time notification system:
115
+ - Use WebSockets for live updates
116
+ - Follow the event pattern in `events/user-events.ts`
117
+ - Add rate limiting (max 10 notifications/minute)
118
+ - Support both browser and mobile clients
119
+ - Include end-to-end tests
120
+ ```
121
+
122
+ ### Refactoring
123
+ ```
124
+ Refactor the payment processing module to improve testability:
125
+ - Extract external API calls into separate services
126
+ - Add dependency injection
127
+ - Follow the repository pattern used in `user-service`
128
+ - Maintain backward compatibility
129
+ - Achieve 95%+ test coverage
130
+ ```
131
+
132
+ ## Advanced Techniques
133
+
134
+ ### Providing Context Effectively
135
+ When working with large codebases:
136
+
137
+ ```
138
+ In the `e-commerce` monorepo, I need to add a new payment method.
139
+ Context:
140
+ - Existing payment methods are in `src/payments/methods/`
141
+ - The `PaymentProcessor` interface is in `src/payments/types.ts`
142
+ - Configuration is handled in `config/payments.json`
143
+ - Tests follow the pattern in `tests/payments/stripe.test.ts`
144
+
145
+ Please implement Apple Pay support following these existing patterns.
146
+ ```
147
+
148
+ ### Iterative Prompting
149
+ Build on previous work:
150
+
151
+ ```
152
+ Following up on the authentication PR you created:
153
+ - The security team wants 2FA support added
154
+ - Use the same JWT structure but add a `requires_2fa` claim
155
+ - Integrate with the existing `TwoFactorService`
156
+ - Update the login flow to handle 2FA challenges
157
+ ```
158
+
159
+ ### Handling Complex Dependencies
160
+ For interconnected changes:
161
+
162
+ ```
163
+ I need to update the user model across multiple services:
164
+ 1. Add `preferences` field to User model in `user-service`
165
+ 2. Update the GraphQL schema in `api-gateway`
166
+ 3. Modify the frontend components in `web-app/src/components/user/`
167
+ 4. Add database migration scripts
168
+ 5. Update all related tests
169
+
170
+ Please coordinate these changes and create PRs in the correct order.
171
+ ```
172
+
173
+ ## Troubleshooting Common Issues
174
+
175
+ ### "I don't have enough context"
176
+ ** Problem:** Codegen asks for more information
177
+ ** Solution:** Provide file paths, existing patterns, and specific requirements upfront
178
+
179
+ ### "The changes broke existing functionality"
180
+ ** Problem:** Modifications caused test failures
181
+ ** Solution:** Always specify which tests should continue passing and request regression testing
182
+
183
+ ### "The implementation doesn't match our patterns"
184
+ ** Problem:** Code doesn't follow team conventions
185
+ ** Solution:** Reference specific examples of preferred patterns in your codebase
186
+
187
+ ### "The task is too large"
188
+ ** Problem:** Request is overwhelming or unclear
189
+ ** Solution:** Break down into smaller, specific tasks with clear dependencies
190
+
191
+ ## Best Practices
192
+
193
+ <CardGroup cols = { 2 } >
194
+ <Card title = " Be Specific" icon = " target" >
195
+ Include file paths, function names, and exact requirements rather than general descriptions.
196
+ </Card >
197
+ <Card title = " Provide Examples" icon = " code" >
198
+ Reference existing code patterns, similar implementations, or desired outcomes.
199
+ </Card >
200
+ <Card title = " Set Success Criteria" icon = " check-circle" >
201
+ Define what "done" looks like: passing tests, performance metrics, or specific functionality.
202
+ </Card >
203
+ <Card title = " Consider Dependencies" icon = " link" >
204
+ Mention related systems, APIs, or components that might be affected by changes.
205
+ </Card >
206
+ </CardGroup >
207
+
33
208
<Note >
34
209
Clear, detailed prompts empower Codegen agents to deliver accurate results
35
- faster, significantly streamlining your workflow.
210
+ faster, significantly streamlining your workflow. Remember that Codegen has access
211
+ to your entire codebase and can understand complex relationships between files.
36
212
</Note >
213
+
214
+ ## Getting Help
215
+
216
+ If you're unsure how to structure a prompt for your specific use case:
217
+ - Start with a simple request and iterate based on the results
218
+ - Ask Codegen to suggest how to break down complex tasks
219
+ - Reference the [ capabilities documentation] ( /introduction/capabilities ) to understand available tools
220
+ - Check out real examples in our [ use cases section] ( /use-cases )
0 commit comments