namnam-skills 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +223 -0
- package/package.json +63 -0
- package/src/cli.js +460 -0
- package/src/index.js +1 -0
- package/src/postinstall.js +162 -0
- package/src/templates/bmad/bmb/agents/agent-builder.md +14 -0
- package/src/templates/bmad/bmb/agents/module-builder.md +14 -0
- package/src/templates/bmad/bmb/agents/workflow-builder.md +14 -0
- package/src/templates/bmad/bmb/workflows/agent.md +5 -0
- package/src/templates/bmad/bmb/workflows/module.md +5 -0
- package/src/templates/bmad/bmb/workflows/workflow.md +5 -0
- package/src/templates/bmad/bmgd/agents/game-architect.md +14 -0
- package/src/templates/bmad/bmgd/agents/game-designer.md +14 -0
- package/src/templates/bmad/bmgd/agents/game-dev.md +14 -0
- package/src/templates/bmad/bmgd/agents/game-qa.md +14 -0
- package/src/templates/bmad/bmgd/agents/game-scrum-master.md +14 -0
- package/src/templates/bmad/bmgd/agents/game-solo-dev.md +14 -0
- package/src/templates/bmad/bmgd/workflows/brainstorm-game.md +13 -0
- package/src/templates/bmad/bmgd/workflows/code-review.md +13 -0
- package/src/templates/bmad/bmgd/workflows/correct-course.md +13 -0
- package/src/templates/bmad/bmgd/workflows/create-game-brief.md +5 -0
- package/src/templates/bmad/bmgd/workflows/create-gdd.md +5 -0
- package/src/templates/bmad/bmgd/workflows/create-story.md +13 -0
- package/src/templates/bmad/bmgd/workflows/dev-story.md +13 -0
- package/src/templates/bmad/bmgd/workflows/game-architecture.md +13 -0
- package/src/templates/bmad/bmgd/workflows/game-brief.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gametest-automate.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gametest-framework.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gametest-performance.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gametest-playtest-plan.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gametest-test-design.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gametest-test-review.md +13 -0
- package/src/templates/bmad/bmgd/workflows/gdd.md +13 -0
- package/src/templates/bmad/bmgd/workflows/generate-project-context.md +5 -0
- package/src/templates/bmad/bmgd/workflows/narrative.md +13 -0
- package/src/templates/bmad/bmgd/workflows/quick-dev.md +13 -0
- package/src/templates/bmad/bmgd/workflows/quick-prototype.md +13 -0
- package/src/templates/bmad/bmgd/workflows/quick-spec.md +13 -0
- package/src/templates/bmad/bmgd/workflows/retrospective.md +13 -0
- package/src/templates/bmad/bmgd/workflows/sprint-planning.md +13 -0
- package/src/templates/bmad/bmgd/workflows/sprint-status.md +13 -0
- package/src/templates/bmad/bmgd/workflows/workflow-init.md +13 -0
- package/src/templates/bmad/bmgd/workflows/workflow-status.md +13 -0
- package/src/templates/bmad/bmm/agents/analyst.md +14 -0
- package/src/templates/bmad/bmm/agents/architect.md +14 -0
- package/src/templates/bmad/bmm/agents/dev.md +14 -0
- package/src/templates/bmad/bmm/agents/pm.md +14 -0
- package/src/templates/bmad/bmm/agents/quick-flow-solo-dev.md +14 -0
- package/src/templates/bmad/bmm/agents/sm.md +14 -0
- package/src/templates/bmad/bmm/agents/tea.md +14 -0
- package/src/templates/bmad/bmm/agents/tech-writer.md +14 -0
- package/src/templates/bmad/bmm/agents/ux-designer.md +14 -0
- package/src/templates/bmad/bmm/workflows/check-implementation-readiness.md +5 -0
- package/src/templates/bmad/bmm/workflows/code-review.md +13 -0
- package/src/templates/bmad/bmm/workflows/correct-course.md +13 -0
- package/src/templates/bmad/bmm/workflows/create-architecture.md +5 -0
- package/src/templates/bmad/bmm/workflows/create-epics-and-stories.md +5 -0
- package/src/templates/bmad/bmm/workflows/create-excalidraw-dataflow.md +13 -0
- package/src/templates/bmad/bmm/workflows/create-excalidraw-diagram.md +13 -0
- package/src/templates/bmad/bmm/workflows/create-excalidraw-flowchart.md +13 -0
- package/src/templates/bmad/bmm/workflows/create-excalidraw-wireframe.md +13 -0
- package/src/templates/bmad/bmm/workflows/create-product-brief.md +5 -0
- package/src/templates/bmad/bmm/workflows/create-story.md +13 -0
- package/src/templates/bmad/bmm/workflows/create-ux-design.md +5 -0
- package/src/templates/bmad/bmm/workflows/dev-story.md +13 -0
- package/src/templates/bmad/bmm/workflows/document-project.md +13 -0
- package/src/templates/bmad/bmm/workflows/generate-project-context.md +5 -0
- package/src/templates/bmad/bmm/workflows/prd.md +5 -0
- package/src/templates/bmad/bmm/workflows/quick-dev.md +5 -0
- package/src/templates/bmad/bmm/workflows/quick-spec.md +5 -0
- package/src/templates/bmad/bmm/workflows/research.md +5 -0
- package/src/templates/bmad/bmm/workflows/retrospective.md +13 -0
- package/src/templates/bmad/bmm/workflows/sprint-planning.md +13 -0
- package/src/templates/bmad/bmm/workflows/sprint-status.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-atdd.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-automate.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-ci.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-framework.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-nfr.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-test-design.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-test-review.md +13 -0
- package/src/templates/bmad/bmm/workflows/testarch-trace.md +13 -0
- package/src/templates/bmad/bmm/workflows/workflow-init.md +13 -0
- package/src/templates/bmad/bmm/workflows/workflow-status.md +13 -0
- package/src/templates/bmad/cis/agents/brainstorming-coach.md +14 -0
- package/src/templates/bmad/cis/agents/creative-problem-solver.md +14 -0
- package/src/templates/bmad/cis/agents/design-thinking-coach.md +14 -0
- package/src/templates/bmad/cis/agents/innovation-strategist.md +14 -0
- package/src/templates/bmad/cis/agents/presentation-master.md +14 -0
- package/src/templates/bmad/cis/agents/storyteller.md +14 -0
- package/src/templates/bmad/cis/workflows/design-thinking.md +13 -0
- package/src/templates/bmad/cis/workflows/innovation-strategy.md +13 -0
- package/src/templates/bmad/cis/workflows/problem-solving.md +13 -0
- package/src/templates/bmad/cis/workflows/storytelling.md +13 -0
- package/src/templates/bmad/core/agents/bmad-master.md +14 -0
- package/src/templates/bmad/core/tasks/index-docs.md +9 -0
- package/src/templates/bmad/core/tasks/shard-doc.md +9 -0
- package/src/templates/bmad/core/workflows/brainstorming.md +5 -0
- package/src/templates/bmad/core/workflows/party-mode.md +5 -0
- package/src/templates/claudekit/agents/ai-sdk-expert.md +135 -0
- package/src/templates/claudekit/agents/cli-expert.md +135 -0
- package/src/templates/claudekit/agents/code-review-expert.md +132 -0
- package/src/templates/claudekit/agents/code-search.md +83 -0
- package/src/templates/claudekit/agents/nestjs-expert.md +128 -0
- package/src/templates/claudekit/agents/oracle.md +120 -0
- package/src/templates/claudekit/agents/research-expert.md +115 -0
- package/src/templates/claudekit/agents/triage-expert.md +116 -0
- package/src/templates/claudekit/commands/checkpoint-create.md +54 -0
- package/src/templates/claudekit/commands/checkpoint-list.md +40 -0
- package/src/templates/claudekit/commands/checkpoint-restore.md +50 -0
- package/src/templates/claudekit/commands/create-command.md +107 -0
- package/src/templates/claudekit/commands/create-subagent.md +96 -0
- package/src/templates/core/code-review.md +70 -0
- package/src/templates/core/git-commit.md +57 -0
- package/src/templates/core/git-push.md +53 -0
- package/src/templates/core/git-status.md +48 -0
- package/src/templates/core/namnam.md +324 -0
- package/src/templates/core/validate-and-fix.md +69 -0
- package/src/templates/cursor-rules/data-science-ml.md +54 -0
- package/src/templates/cursor-rules/devops-infrastructure.md +59 -0
- package/src/templates/cursor-rules/golang-expert.md +61 -0
- package/src/templates/cursor-rules/nestjs-expert.md +60 -0
- package/src/templates/cursor-rules/python-expert.md +53 -0
- package/src/templates/cursor-rules/react-native-expo.md +51 -0
- package/src/templates/cursor-rules/rust-expert.md +61 -0
- package/src/templates/cursor-rules/solidity-web3.md +54 -0
- package/src/templates/cursor-rules/typescript-expert.md +42 -0
- package/src/templates/cursor-rules/vue-nuxt-expert.md +50 -0
- package/src/templates/official-plugins/claude-opus-migration.md +33 -0
- package/src/templates/official-plugins/commit-push-pr.md +55 -0
- package/src/templates/official-plugins/commit.md +60 -0
- package/src/templates/official-plugins/feature-dev.md +65 -0
- package/src/templates/official-plugins/frontend-design.md +53 -0
- package/src/templates/official-plugins/hookify.md +52 -0
- package/src/templates/official-plugins/new-sdk-app.md +45 -0
- package/src/templates/official-plugins/plugin-dev.md +53 -0
- package/src/templates/official-plugins/pr-review-toolkit.md +68 -0
- package/src/templates/official-plugins/ralph-loop.md +51 -0
- package/src/templates/official-plugins/security-guidance.md +36 -0
- package/src/templates/platforms/AGENTS.md +326 -0
- package/src/templates/platforms/aider/aider-template.md +75 -0
- package/src/templates/platforms/cline/clinerules-template.md +205 -0
- package/src/templates/platforms/codex/codex-template.md +74 -0
- package/src/templates/platforms/cursor/cursorrules-template.md +124 -0
- package/src/templates/platforms/gemini/gemini-template.md +93 -0
- package/src/templates/platforms/windsurf/windsurfrules-template.md +166 -0
- package/src/templates/system-prompts/cline-agent-patterns.md +286 -0
- package/src/templates/system-prompts/cursor-agent-patterns.md +177 -0
- package/src/templates/system-prompts/google-antigravity-patterns.md +274 -0
- package/src/templates/system-prompts/industry-best-practices.md +334 -0
- package/src/templates/system-prompts/multi-platform-engineering.md +343 -0
- package/src/templates/system-prompts/vscode-agent-patterns.md +288 -0
- package/src/templates/system-prompts/windsurf-cascade-patterns.md +264 -0
- package/src/templates/vercel-skills/react-best-practices.md +117 -0
- package/src/templates/vercel-skills/web-design-guidelines.md +88 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# VSCode Agent Patterns
|
|
2
|
+
|
|
3
|
+
> Best practices extracted from VSCode Agent with model-specific adaptations
|
|
4
|
+
|
|
5
|
+
## Core Philosophy
|
|
6
|
+
|
|
7
|
+
VSCode Agent is designed to work like a **pair programmer**:
|
|
8
|
+
- Friendly and helpful
|
|
9
|
+
- Proactive solutions
|
|
10
|
+
- Think about user needs
|
|
11
|
+
- Implement beyond minimum
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Key Patterns
|
|
16
|
+
|
|
17
|
+
### 1. Model-Specific Adaptation
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
# Multi-Model Support
|
|
21
|
+
|
|
22
|
+
VSCode Agent has prompts for:
|
|
23
|
+
- Claude Sonnet 4
|
|
24
|
+
- Gemini 2.5 Pro
|
|
25
|
+
- GPT-4.1
|
|
26
|
+
- GPT-4o
|
|
27
|
+
- GPT-5
|
|
28
|
+
- GPT-5 mini
|
|
29
|
+
|
|
30
|
+
## Adaptation Strategy
|
|
31
|
+
- Same core instructions
|
|
32
|
+
- Model-specific optimizations
|
|
33
|
+
- Tool schema adjustments
|
|
34
|
+
- Response formatting differences
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. Todo List System (CRITICAL)
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
# Task Tracking - NEVER SKIP
|
|
41
|
+
|
|
42
|
+
## ALWAYS Start With Todo List
|
|
43
|
+
- Multi-step tasks REQUIRE todo list
|
|
44
|
+
- Track progress visibly
|
|
45
|
+
- Update as you work
|
|
46
|
+
|
|
47
|
+
## Todo Actions
|
|
48
|
+
- Create todos immediately
|
|
49
|
+
- Mark in_progress when starting
|
|
50
|
+
- Mark completed when done
|
|
51
|
+
- Remove obsolete items
|
|
52
|
+
|
|
53
|
+
## Format
|
|
54
|
+
- Clear item descriptions
|
|
55
|
+
- Status tracking
|
|
56
|
+
- Logical ordering
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 3. Tool Batching
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
# Parallel Execution
|
|
63
|
+
|
|
64
|
+
## Batch Preamble Required
|
|
65
|
+
"One-sentence why/what/outcome preamble"
|
|
66
|
+
|
|
67
|
+
## Progress Checkpoints
|
|
68
|
+
After 3-5 tool calls OR >3 file edits:
|
|
69
|
+
- Pause and post compact checkpoint
|
|
70
|
+
- Summarize progress
|
|
71
|
+
- State what's next
|
|
72
|
+
|
|
73
|
+
## Semantic Search Exception
|
|
74
|
+
- Do NOT call semantic_search in parallel
|
|
75
|
+
- Always sequential for search
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 4. Requirements Coverage
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
# No Requirement Left Behind
|
|
82
|
+
|
|
83
|
+
## Process
|
|
84
|
+
1. Read user's ask in FULL
|
|
85
|
+
2. Extract EACH requirement to checklist
|
|
86
|
+
3. Keep checklist visible
|
|
87
|
+
4. Do NOT omit any requirement
|
|
88
|
+
|
|
89
|
+
## If Cannot Complete
|
|
90
|
+
- Note WHY briefly
|
|
91
|
+
- Propose viable alternative
|
|
92
|
+
- Don't just skip it
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 5. Notebook Support
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
# Jupyter Notebook Handling
|
|
99
|
+
|
|
100
|
+
## Tools
|
|
101
|
+
- edit_notebook_file: Edit cells
|
|
102
|
+
- run_notebook_cell: Execute cells
|
|
103
|
+
- copilot_getNotebookSummary: Get cell overview
|
|
104
|
+
|
|
105
|
+
## Rules
|
|
106
|
+
- Use cell NUMBER, not Cell ID in messages
|
|
107
|
+
- Markdown cells cannot be executed
|
|
108
|
+
- Never run jupyter commands in terminal
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Implementation Examples
|
|
114
|
+
|
|
115
|
+
### Todo List Usage
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
// Example: Proper todo list management
|
|
119
|
+
|
|
120
|
+
const todoList = {
|
|
121
|
+
items: [
|
|
122
|
+
{ id: 1, content: "Analyze requirements", status: "completed" },
|
|
123
|
+
{ id: 2, content: "Create database schema", status: "in_progress" },
|
|
124
|
+
{ id: 3, content: "Implement API endpoints", status: "pending" },
|
|
125
|
+
{ id: 4, content: "Add authentication", status: "pending" },
|
|
126
|
+
{ id: 5, content: "Write tests", status: "pending" }
|
|
127
|
+
],
|
|
128
|
+
|
|
129
|
+
// Merge updates (don't replace all)
|
|
130
|
+
update: function(changes) {
|
|
131
|
+
return this.items.map(item => {
|
|
132
|
+
const change = changes.find(c => c.id === item.id);
|
|
133
|
+
return change ? { ...item, ...change } : item;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Requirement Extraction
|
|
140
|
+
|
|
141
|
+
```javascript
|
|
142
|
+
// Example: Extract all requirements from user request
|
|
143
|
+
|
|
144
|
+
const userRequest = `
|
|
145
|
+
Add authentication with:
|
|
146
|
+
- Email/password login
|
|
147
|
+
- OAuth (Google, GitHub)
|
|
148
|
+
- Password reset via email
|
|
149
|
+
- Remember me functionality
|
|
150
|
+
- Rate limiting
|
|
151
|
+
`;
|
|
152
|
+
|
|
153
|
+
const requirements = [
|
|
154
|
+
{ id: 1, text: "Email/password login", done: false },
|
|
155
|
+
{ id: 2, text: "OAuth - Google", done: false },
|
|
156
|
+
{ id: 3, text: "OAuth - GitHub", done: false },
|
|
157
|
+
{ id: 4, text: "Password reset via email", done: false },
|
|
158
|
+
{ id: 5, text: "Remember me functionality", done: false },
|
|
159
|
+
{ id: 6, text: "Rate limiting", done: false }
|
|
160
|
+
];
|
|
161
|
+
|
|
162
|
+
// Keep visible throughout implementation
|
|
163
|
+
// Check off as completed
|
|
164
|
+
// Don't drop any
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Progress Checkpoint
|
|
168
|
+
|
|
169
|
+
```javascript
|
|
170
|
+
// Example: Checkpoint after significant work
|
|
171
|
+
|
|
172
|
+
const checkpoint = `
|
|
173
|
+
## Progress Checkpoint
|
|
174
|
+
|
|
175
|
+
### Completed (3/6)
|
|
176
|
+
✅ Email/password login
|
|
177
|
+
✅ OAuth - Google
|
|
178
|
+
✅ OAuth - GitHub
|
|
179
|
+
|
|
180
|
+
### In Progress
|
|
181
|
+
🔄 Password reset via email
|
|
182
|
+
|
|
183
|
+
### Remaining
|
|
184
|
+
⬜ Remember me functionality
|
|
185
|
+
⬜ Rate limiting
|
|
186
|
+
|
|
187
|
+
### Next Steps
|
|
188
|
+
1. Complete email reset flow
|
|
189
|
+
2. Add remember me checkbox
|
|
190
|
+
3. Implement rate limiter middleware
|
|
191
|
+
`;
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Best Practices Summary
|
|
197
|
+
|
|
198
|
+
| Area | VSCode Agent Approach |
|
|
199
|
+
|------|----------------------|
|
|
200
|
+
| Todo List | MANDATORY, never skip |
|
|
201
|
+
| Models | Adapt to specific model |
|
|
202
|
+
| Batching | Preamble + checkpoints |
|
|
203
|
+
| Requirements | Extract ALL, don't omit |
|
|
204
|
+
| Notebooks | Use dedicated tools |
|
|
205
|
+
| Identity | Never reveal model name |
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Communication Rules
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
# Response Format
|
|
213
|
+
|
|
214
|
+
## Skip Filler
|
|
215
|
+
Bad: "Sounds good, I'll..."
|
|
216
|
+
Good: "Searching for auth modules..."
|
|
217
|
+
|
|
218
|
+
## Opening
|
|
219
|
+
- Purposeful one-liner
|
|
220
|
+
- What you're doing next
|
|
221
|
+
- No acknowledgements
|
|
222
|
+
|
|
223
|
+
## Delta Updates
|
|
224
|
+
- Don't repeat unchanged sections
|
|
225
|
+
- Show only what changed
|
|
226
|
+
- Avoid verbose todo restating
|
|
227
|
+
|
|
228
|
+
## Setup Commands
|
|
229
|
+
- Fenced code blocks
|
|
230
|
+
- Correct language tags
|
|
231
|
+
- Copyable on separate lines
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Important Reminders (from prompt)
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
# Critical Rules
|
|
240
|
+
|
|
241
|
+
1. Before starting, review:
|
|
242
|
+
- responseModeHints
|
|
243
|
+
- engineeringMindsetHints
|
|
244
|
+
- requirementsUnderstanding
|
|
245
|
+
|
|
246
|
+
2. Start response with:
|
|
247
|
+
- Brief task receipt
|
|
248
|
+
- Concise high-level plan
|
|
249
|
+
|
|
250
|
+
3. Use todo list tool to:
|
|
251
|
+
- Plan tasks
|
|
252
|
+
- Track progress
|
|
253
|
+
- NEVER skip this step
|
|
254
|
+
|
|
255
|
+
4. Verify before claiming:
|
|
256
|
+
- Don't assume build/runtime setup
|
|
257
|
+
- Test runnable code yourself
|
|
258
|
+
- State what's known from context
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Applying to Your Projects
|
|
264
|
+
|
|
265
|
+
1. **Implement Todo Tracking**:
|
|
266
|
+
```javascript
|
|
267
|
+
// Always track multi-step tasks
|
|
268
|
+
if (isMultiStepTask(request)) {
|
|
269
|
+
await createTodoList(extractRequirements(request));
|
|
270
|
+
await markInProgress(firstTodo);
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
2. **In AGENTS.md**:
|
|
275
|
+
```markdown
|
|
276
|
+
## Task Management
|
|
277
|
+
- Use todo list for 3+ step tasks
|
|
278
|
+
- Mark progress in real-time
|
|
279
|
+
- Extract ALL requirements
|
|
280
|
+
- Don't omit any
|
|
281
|
+
|
|
282
|
+
## Checkpoints
|
|
283
|
+
- After 3-5 tool calls
|
|
284
|
+
- After >3 file edits
|
|
285
|
+
- Before ending turn
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Source**: VSCode Agent System Prompt (Claude Sonnet 4 variant)
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Windsurf Cascade Patterns
|
|
2
|
+
|
|
3
|
+
> Best practices extracted from Windsurf Wave 11 - The world's first agentic coding assistant
|
|
4
|
+
|
|
5
|
+
## Identity & Philosophy
|
|
6
|
+
|
|
7
|
+
Cascade operates on the **AI Flow paradigm**:
|
|
8
|
+
- Work both independently AND collaboratively
|
|
9
|
+
- Prioritize user requests always
|
|
10
|
+
- Be the first agentic coding assistant
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Key Innovations
|
|
15
|
+
|
|
16
|
+
### 1. Memory System
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
# Persistent Memory Database
|
|
20
|
+
|
|
21
|
+
## Proactive Memory
|
|
22
|
+
- Save important context immediately
|
|
23
|
+
- Don't wait for user permission
|
|
24
|
+
- Don't wait until task completion
|
|
25
|
+
- Create memories liberally
|
|
26
|
+
|
|
27
|
+
## Types of Memories
|
|
28
|
+
- Project context
|
|
29
|
+
- User preferences
|
|
30
|
+
- Important decisions
|
|
31
|
+
- Codebase patterns
|
|
32
|
+
|
|
33
|
+
## Automatic Retrieval
|
|
34
|
+
- Relevant memories retrieved automatically
|
|
35
|
+
- Always pay attention to memories
|
|
36
|
+
- Build on existing knowledge
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. Code Research First
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
# Research Before Action
|
|
43
|
+
|
|
44
|
+
## Rules
|
|
45
|
+
- Never guess or make up answers
|
|
46
|
+
- Root answers in research
|
|
47
|
+
- Don't ask user permission to research
|
|
48
|
+
- Proactively call research tools
|
|
49
|
+
|
|
50
|
+
## When to Research
|
|
51
|
+
- Unsure about file content
|
|
52
|
+
- Unclear codebase structure
|
|
53
|
+
- Need to understand patterns
|
|
54
|
+
- Before making changes
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Planning System
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
# Plan Maintenance
|
|
61
|
+
|
|
62
|
+
## When to Update Plan
|
|
63
|
+
- Receive new user instructions
|
|
64
|
+
- Complete items from plan
|
|
65
|
+
- Learn new information
|
|
66
|
+
- Scope or direction changes
|
|
67
|
+
|
|
68
|
+
## Update Timing
|
|
69
|
+
- Before committing to significant action
|
|
70
|
+
- After completing a lot of work
|
|
71
|
+
- Before ending conversation turn
|
|
72
|
+
|
|
73
|
+
## Philosophy
|
|
74
|
+
"Better to update plan when it didn't need to
|
|
75
|
+
than to miss the opportunity to update it"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 4. Web Development Excellence
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
# Design Philosophy
|
|
82
|
+
|
|
83
|
+
## Aesthetics Priority
|
|
84
|
+
- User should be WOWED at first glance
|
|
85
|
+
- Use modern design patterns
|
|
86
|
+
- Premium, state-of-the-art feel
|
|
87
|
+
- NO simple minimum viable products
|
|
88
|
+
|
|
89
|
+
## Visual Excellence
|
|
90
|
+
- Avoid generic colors
|
|
91
|
+
- Use curated color palettes
|
|
92
|
+
- Modern typography (Google Fonts)
|
|
93
|
+
- Smooth gradients
|
|
94
|
+
- Micro-animations
|
|
95
|
+
|
|
96
|
+
## Dynamic Design
|
|
97
|
+
- Hover effects
|
|
98
|
+
- Interactive elements
|
|
99
|
+
- Responsive feel
|
|
100
|
+
- Micro-animations for engagement
|
|
101
|
+
|
|
102
|
+
## Never
|
|
103
|
+
- Use placeholders (generate real images)
|
|
104
|
+
- Create basic/simple designs
|
|
105
|
+
- Skip animations
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 5. Command Safety
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
# Terminal Command Safety
|
|
112
|
+
|
|
113
|
+
## Never Auto-Run If Unsafe
|
|
114
|
+
- Deleting files
|
|
115
|
+
- Mutating state
|
|
116
|
+
- Installing system dependencies
|
|
117
|
+
- Making external requests
|
|
118
|
+
- Potentially destructive actions
|
|
119
|
+
|
|
120
|
+
## Always Safe
|
|
121
|
+
- Reading files/directories
|
|
122
|
+
- Running dev servers
|
|
123
|
+
- Building projects
|
|
124
|
+
- Non-destructive operations
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Implementation Patterns
|
|
130
|
+
|
|
131
|
+
### Memory Implementation
|
|
132
|
+
|
|
133
|
+
```javascript
|
|
134
|
+
// Example: Windsurf-style memory system
|
|
135
|
+
|
|
136
|
+
class MemorySystem {
|
|
137
|
+
// Create memory immediately when encountering important info
|
|
138
|
+
async createMemory(context, knowledge) {
|
|
139
|
+
// Don't wait for permission
|
|
140
|
+
// Don't wait until task end
|
|
141
|
+
await this.database.save({
|
|
142
|
+
context,
|
|
143
|
+
knowledge,
|
|
144
|
+
timestamp: Date.now()
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Retrieve relevant memories automatically
|
|
149
|
+
async getRelevantMemories(currentTask) {
|
|
150
|
+
return this.database.query({
|
|
151
|
+
relevantTo: currentTask,
|
|
152
|
+
limit: 10
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Plan Management
|
|
159
|
+
|
|
160
|
+
```javascript
|
|
161
|
+
// Example: Plan update logic
|
|
162
|
+
|
|
163
|
+
function shouldUpdatePlan(event) {
|
|
164
|
+
const updateTriggers = [
|
|
165
|
+
'new_user_instruction',
|
|
166
|
+
'task_completed',
|
|
167
|
+
'new_information_learned',
|
|
168
|
+
'scope_change',
|
|
169
|
+
'direction_change'
|
|
170
|
+
];
|
|
171
|
+
|
|
172
|
+
return updateTriggers.includes(event.type);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Update before significant actions
|
|
176
|
+
async function beforeSignificantAction() {
|
|
177
|
+
await updatePlan();
|
|
178
|
+
await executeAction();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Update after completing work
|
|
182
|
+
async function afterWorkComplete() {
|
|
183
|
+
await updatePlan();
|
|
184
|
+
return respondToUser();
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Web Design Workflow
|
|
191
|
+
|
|
192
|
+
```markdown
|
|
193
|
+
# Implementation Steps
|
|
194
|
+
|
|
195
|
+
1. **Plan and Understand**
|
|
196
|
+
- Fully understand requirements
|
|
197
|
+
- Draw inspiration from modern designs
|
|
198
|
+
- Outline initial features
|
|
199
|
+
|
|
200
|
+
2. **Build Foundation**
|
|
201
|
+
- Create/modify index.css first
|
|
202
|
+
- Implement design system
|
|
203
|
+
- Define tokens and utilities
|
|
204
|
+
|
|
205
|
+
3. **Create Components**
|
|
206
|
+
- Use design system styles
|
|
207
|
+
- No ad-hoc utilities
|
|
208
|
+
- Focused and reusable
|
|
209
|
+
|
|
210
|
+
4. **Assemble Pages**
|
|
211
|
+
- Incorporate design and components
|
|
212
|
+
- Proper routing/navigation
|
|
213
|
+
- Responsive layouts
|
|
214
|
+
|
|
215
|
+
5. **Polish and Optimize**
|
|
216
|
+
- Review UX
|
|
217
|
+
- Smooth interactions/transitions
|
|
218
|
+
- Performance optimization
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Best Practices Summary
|
|
224
|
+
|
|
225
|
+
| Area | Windsurf Approach |
|
|
226
|
+
|------|-------------------|
|
|
227
|
+
| Memory | Proactive, liberal creation |
|
|
228
|
+
| Research | Always before guessing |
|
|
229
|
+
| Planning | Update frequently |
|
|
230
|
+
| Design | Premium, wow-worthy |
|
|
231
|
+
| Safety | Never auto-run destructive |
|
|
232
|
+
| Commands | Always explain why |
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Applying to Your Projects
|
|
237
|
+
|
|
238
|
+
1. **Add to .windsurfrules**:
|
|
239
|
+
```
|
|
240
|
+
# Memory Behavior
|
|
241
|
+
- Create memories proactively
|
|
242
|
+
- Don't wait for permission
|
|
243
|
+
- Build on existing knowledge
|
|
244
|
+
|
|
245
|
+
# Design Standards
|
|
246
|
+
- Premium aesthetic required
|
|
247
|
+
- No simple/basic designs
|
|
248
|
+
- Micro-animations essential
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
2. **In AGENTS.md**:
|
|
252
|
+
```markdown
|
|
253
|
+
## Memory System
|
|
254
|
+
- Store important context immediately
|
|
255
|
+
- Retrieve relevant memories automatically
|
|
256
|
+
- Build on previous knowledge
|
|
257
|
+
|
|
258
|
+
## Design Philosophy
|
|
259
|
+
- Wow users at first glance
|
|
260
|
+
- Modern, premium aesthetics
|
|
261
|
+
- Dynamic, interactive elements
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Source**: Windsurf Wave 11 System Prompt
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# React Best Practices - Vercel Engineering
|
|
2
|
+
|
|
3
|
+
> From Vercel Labs: 51 performance rules for React and Next.js applications
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
This skill provides comprehensive React and Next.js performance optimization guidelines from Vercel Engineering. It covers async patterns, bundle optimization, client-side performance, server components, and rendering optimizations.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/react-best-practices review src/components
|
|
13
|
+
/react-best-practices check App.tsx
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Instructions
|
|
17
|
+
|
|
18
|
+
When the user invokes this skill or asks about React/Next.js best practices:
|
|
19
|
+
|
|
20
|
+
### Categories of Rules
|
|
21
|
+
|
|
22
|
+
#### 1. Async Patterns (async-*)
|
|
23
|
+
- **defer-await**: Defer awaits to avoid waterfalls
|
|
24
|
+
- **parallel**: Use Promise.all for parallel fetches
|
|
25
|
+
- **suspense-boundaries**: Proper Suspense boundary placement
|
|
26
|
+
- **dependencies**: Minimize async dependencies
|
|
27
|
+
|
|
28
|
+
#### 2. Bundle Optimization (bundle-*)
|
|
29
|
+
- **barrel-imports**: Avoid barrel file imports, use direct imports
|
|
30
|
+
- **dynamic-imports**: Use dynamic imports for code splitting
|
|
31
|
+
- **conditional**: Conditionally load heavy components
|
|
32
|
+
- **defer-third-party**: Defer third-party scripts
|
|
33
|
+
- **preload**: Preload critical resources
|
|
34
|
+
|
|
35
|
+
#### 3. Client-Side Performance (client-*)
|
|
36
|
+
- **event-listeners**: Proper event listener cleanup
|
|
37
|
+
- **passive-event-listeners**: Use passive event listeners
|
|
38
|
+
- **swr-dedup**: Deduplicate SWR/fetch requests
|
|
39
|
+
- **localstorage-schema**: Version localStorage data
|
|
40
|
+
|
|
41
|
+
#### 4. JavaScript Optimization (js-*)
|
|
42
|
+
- **set-map-lookups**: Use Set/Map for O(1) lookups
|
|
43
|
+
- **cache-function-results**: Memoize expensive computations
|
|
44
|
+
- **early-exit**: Return early from functions
|
|
45
|
+
- **combine-iterations**: Combine array iterations
|
|
46
|
+
- **tosorted-immutable**: Use toSorted for immutability
|
|
47
|
+
|
|
48
|
+
#### 5. Rendering (rendering-*)
|
|
49
|
+
- **content-visibility**: Use content-visibility for offscreen content
|
|
50
|
+
- **hoist-jsx**: Hoist static JSX outside components
|
|
51
|
+
- **usetransition-loading**: Use useTransition for loading states
|
|
52
|
+
- **conditional-render**: Optimize conditional rendering
|
|
53
|
+
|
|
54
|
+
#### 6. Re-render Prevention (rerender-*)
|
|
55
|
+
- **memo**: Proper use of React.memo
|
|
56
|
+
- **lazy-state-init**: Lazy state initialization
|
|
57
|
+
- **functional-setstate**: Use functional setState
|
|
58
|
+
- **derived-state**: Avoid derived state
|
|
59
|
+
- **dependencies**: Minimize useEffect dependencies
|
|
60
|
+
|
|
61
|
+
#### 7. Server Components (server-*)
|
|
62
|
+
- **auth-actions**: Authenticate in Server Actions
|
|
63
|
+
- **parallel-fetching**: Parallel data fetching
|
|
64
|
+
- **cache-react**: Use React cache
|
|
65
|
+
- **dedup-props**: Deduplicate props
|
|
66
|
+
- **serialization**: Minimize serialized data
|
|
67
|
+
|
|
68
|
+
### Review Process
|
|
69
|
+
|
|
70
|
+
1. **Analyze the code** for violations of each category
|
|
71
|
+
2. **Prioritize findings** by impact level:
|
|
72
|
+
- CRITICAL: Performance degradation >100ms
|
|
73
|
+
- HIGH: Noticeable performance impact
|
|
74
|
+
- MEDIUM: Best practice violation
|
|
75
|
+
- LOW: Minor optimization opportunity
|
|
76
|
+
|
|
77
|
+
3. **Output format**:
|
|
78
|
+
```
|
|
79
|
+
file.tsx:42 - [HIGH] Avoid barrel imports, use direct import
|
|
80
|
+
file.tsx:58 - [CRITICAL] Async waterfall detected, use Promise.all
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
4. **Provide fix examples** for each issue
|
|
84
|
+
|
|
85
|
+
### Example Fixes
|
|
86
|
+
|
|
87
|
+
**Bad - Barrel Import:**
|
|
88
|
+
```tsx
|
|
89
|
+
import { Button, Card, Modal } from '@/components';
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Good - Direct Import:**
|
|
93
|
+
```tsx
|
|
94
|
+
import { Button } from '@/components/Button';
|
|
95
|
+
import { Card } from '@/components/Card';
|
|
96
|
+
import { Modal } from '@/components/Modal';
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Bad - Async Waterfall:**
|
|
100
|
+
```tsx
|
|
101
|
+
const user = await getUser();
|
|
102
|
+
const posts = await getPosts(user.id);
|
|
103
|
+
const comments = await getComments(posts[0].id);
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Good - Parallel Fetch:**
|
|
107
|
+
```tsx
|
|
108
|
+
const user = await getUser();
|
|
109
|
+
const [posts, profile] = await Promise.all([
|
|
110
|
+
getPosts(user.id),
|
|
111
|
+
getProfile(user.id)
|
|
112
|
+
]);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Source
|
|
116
|
+
|
|
117
|
+
Based on [vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices)
|