bobs-workshop 0.3.3 → 3.1.1

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.
Files changed (200) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +199 -210
  3. package/bin/bobs-workshop.js +109 -0
  4. package/config/agents.json +27 -0
  5. package/dist/plugins/bobs-workshop.js +34 -0
  6. package/dist/tools/background-agent/cancel.d.ts +3 -0
  7. package/dist/tools/background-agent/cancel.d.ts.map +1 -0
  8. package/dist/tools/background-agent/cancel.js +52 -0
  9. package/dist/tools/background-agent/concurrency.d.ts +15 -0
  10. package/dist/tools/background-agent/concurrency.d.ts.map +1 -0
  11. package/dist/tools/background-agent/concurrency.js +61 -0
  12. package/dist/tools/background-agent/index.d.ts +8 -0
  13. package/dist/tools/background-agent/index.d.ts.map +1 -0
  14. package/dist/tools/background-agent/index.js +7 -0
  15. package/dist/tools/background-agent/launch.d.ts +6 -0
  16. package/dist/tools/background-agent/launch.d.ts.map +1 -0
  17. package/dist/tools/background-agent/launch.js +33 -0
  18. package/dist/tools/background-agent/list.d.ts +7 -0
  19. package/dist/tools/background-agent/list.d.ts.map +1 -0
  20. package/dist/tools/background-agent/list.js +40 -0
  21. package/dist/tools/background-agent/manager.d.ts +29 -0
  22. package/dist/tools/background-agent/manager.d.ts.map +1 -0
  23. package/dist/tools/background-agent/manager.js +388 -0
  24. package/dist/tools/background-agent/output.d.ts +3 -0
  25. package/dist/tools/background-agent/output.d.ts.map +1 -0
  26. package/dist/tools/background-agent/output.js +41 -0
  27. package/dist/tools/background-agent/types.d.ts +46 -0
  28. package/dist/tools/background-agent/types.d.ts.map +1 -0
  29. package/dist/tools/background-agent/types.js +1 -0
  30. package/dist/tools/index.d.ts +9 -0
  31. package/dist/tools/index.d.ts.map +1 -0
  32. package/dist/tools/index.js +8 -0
  33. package/dist/tools/manual/index.d.ts +3 -0
  34. package/dist/tools/manual/index.d.ts.map +1 -0
  35. package/dist/tools/manual/index.js +2 -0
  36. package/dist/tools/manual/manual-update.d.ts +4 -0
  37. package/dist/tools/manual/manual-update.d.ts.map +1 -0
  38. package/dist/tools/manual/manual-update.js +190 -0
  39. package/dist/tools/manual/verify-manual.d.ts +4 -0
  40. package/dist/tools/manual/verify-manual.d.ts.map +1 -0
  41. package/dist/tools/manual/verify-manual.js +51 -0
  42. package/package.json +34 -66
  43. package/postinstall.js +193 -0
  44. package/src/agents/alice.md +466 -0
  45. package/src/agents/bob-rev.md +493 -0
  46. package/src/agents/bob-send.md +277 -0
  47. package/src/agents/bob.md +442 -0
  48. package/src/agents/trace.md +451 -0
  49. package/src/plugins/bobs-workshop.ts +45 -0
  50. package/src/skills/api-patterns/SKILL.md +376 -0
  51. package/src/skills/architecture/SKILL.md +271 -0
  52. package/src/skills/bobs-workshop/performance/icon.svg +3 -0
  53. package/src/skills/brainstorming/SKILL.md +210 -0
  54. package/src/skills/clean-code/SKILL.md +151 -0
  55. package/src/skills/code-review-checklist/SKILL.md +220 -0
  56. package/src/skills/database-design/SKILL.md +271 -0
  57. package/src/skills/exploration/SKILL.md +257 -0
  58. package/src/skills/frontend-ui-ux/SKILL.md +78 -0
  59. package/src/skills/git-master/SKILL.md +1105 -0
  60. package/src/skills/performance/SKILL.md +144 -0
  61. package/src/skills/performance/icon.svg +3 -0
  62. package/src/skills/plan-writing/SKILL.md +225 -0
  63. package/src/skills/security/SKILL.md +410 -0
  64. package/src/skills/simplification/SKILL.md +238 -0
  65. package/src/skills/systematic-debugging/SKILL.md +175 -0
  66. package/src/skills/testing-patterns/SKILL.md +305 -0
  67. package/src/skills/verification/SKILL.md +286 -0
  68. package/src/tools/background-agent/cancel.ts +67 -0
  69. package/src/tools/background-agent/concurrency.ts +71 -0
  70. package/src/tools/background-agent/index.ts +7 -0
  71. package/src/tools/background-agent/launch.ts +39 -0
  72. package/src/tools/background-agent/list.ts +50 -0
  73. package/src/tools/background-agent/manager.ts +466 -0
  74. package/src/tools/background-agent/output.ts +57 -0
  75. package/src/tools/background-agent/types.ts +55 -0
  76. package/src/tools/index.ts +8 -0
  77. package/src/tools/manual/index.ts +2 -0
  78. package/src/tools/manual/manual-update.ts +197 -0
  79. package/src/tools/manual/verify-manual.ts +60 -0
  80. package/uninstall.js +64 -0
  81. package/Claude.md +0 -162
  82. package/bin/bobs-mcp-server.js +0 -11
  83. package/bin/bobs-mcp.js +0 -130
  84. package/dist/api/taskLogger.js +0 -106
  85. package/dist/api/taskLogger.js.map +0 -1
  86. package/dist/cli/checker.js +0 -401
  87. package/dist/cli/checker.js.map +0 -1
  88. package/dist/cli/cleanup.js +0 -131
  89. package/dist/cli/cleanup.js.map +0 -1
  90. package/dist/cli/debug.js +0 -157
  91. package/dist/cli/debug.js.map +0 -1
  92. package/dist/cli/health.js +0 -97
  93. package/dist/cli/health.js.map +0 -1
  94. package/dist/cli/setup.js +0 -81
  95. package/dist/cli/setup.js.map +0 -1
  96. package/dist/cli/workshop.js +0 -42
  97. package/dist/cli/workshop.js.map +0 -1
  98. package/dist/dashboard/server.js +0 -1203
  99. package/dist/dashboard/server.js.map +0 -1
  100. package/dist/index.js +0 -960
  101. package/dist/index.js.map +0 -1
  102. package/dist/prompts/architect.js +0 -221
  103. package/dist/prompts/architect.js.map +0 -1
  104. package/dist/prompts/debugger.js +0 -257
  105. package/dist/prompts/debugger.js.map +0 -1
  106. package/dist/prompts/engineer.js +0 -249
  107. package/dist/prompts/engineer.js.map +0 -1
  108. package/dist/prompts/orchestrator.js +0 -304
  109. package/dist/prompts/orchestrator.js.map +0 -1
  110. package/dist/prompts/reviewer.js +0 -289
  111. package/dist/prompts/reviewer.js.map +0 -1
  112. package/dist/services/activitySummarizer.js +0 -388
  113. package/dist/services/activitySummarizer.js.map +0 -1
  114. package/dist/services/changeValidator.js +0 -396
  115. package/dist/services/changeValidator.js.map +0 -1
  116. package/dist/services/claudeOrchestrator.js +0 -343
  117. package/dist/services/claudeOrchestrator.js.map +0 -1
  118. package/dist/services/fileMonitor.js +0 -250
  119. package/dist/services/fileMonitor.js.map +0 -1
  120. package/dist/services/implementationSummarizer.js +0 -306
  121. package/dist/services/implementationSummarizer.js.map +0 -1
  122. package/dist/services/liveMonitor.js +0 -315
  123. package/dist/services/liveMonitor.js.map +0 -1
  124. package/dist/services/mcpAuditLogger.js +0 -104
  125. package/dist/services/mcpAuditLogger.js.map +0 -1
  126. package/dist/services/mcpLogger.js +0 -223
  127. package/dist/services/mcpLogger.js.map +0 -1
  128. package/dist/services/tmuxManager.js +0 -541
  129. package/dist/services/tmuxManager.js.map +0 -1
  130. package/dist/tools/approvalTools.js +0 -244
  131. package/dist/tools/approvalTools.js.map +0 -1
  132. package/dist/tools/autoDebugger.js +0 -147
  133. package/dist/tools/autoDebugger.js.map +0 -1
  134. package/dist/tools/cleanupService.js +0 -221
  135. package/dist/tools/cleanupService.js.map +0 -1
  136. package/dist/tools/dashboardTools.js +0 -342
  137. package/dist/tools/dashboardTools.js.map +0 -1
  138. package/dist/tools/developmentNudges.js +0 -336
  139. package/dist/tools/developmentNudges.js.map +0 -1
  140. package/dist/tools/gitTools.js +0 -741
  141. package/dist/tools/gitTools.js.map +0 -1
  142. package/dist/tools/orchestratorTools.js +0 -832
  143. package/dist/tools/orchestratorTools.js.map +0 -1
  144. package/dist/tools/searchCache.js +0 -64
  145. package/dist/tools/searchCache.js.map +0 -1
  146. package/dist/tools/searchTools.js +0 -1107
  147. package/dist/tools/searchTools.js.map +0 -1
  148. package/dist/tools/semgrep-patterns.js +0 -296
  149. package/dist/tools/semgrep-patterns.js.map +0 -1
  150. package/dist/tools/specTools.js +0 -332
  151. package/dist/tools/specTools.js.map +0 -1
  152. package/dist/tools/structural/__tests__/orchestrator.test.js +0 -61
  153. package/dist/tools/structural/__tests__/orchestrator.test.js.map +0 -1
  154. package/dist/tools/structural/cache.js +0 -226
  155. package/dist/tools/structural/cache.js.map +0 -1
  156. package/dist/tools/structural/engines/python/index.js +0 -118
  157. package/dist/tools/structural/engines/python/index.js.map +0 -1
  158. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +0 -97
  159. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +0 -1
  160. package/dist/tools/structural/engines/typescript/analyzer.js +0 -433
  161. package/dist/tools/structural/engines/typescript/analyzer.js.map +0 -1
  162. package/dist/tools/structural/engines/typescript/index.js +0 -381
  163. package/dist/tools/structural/engines/typescript/index.js.map +0 -1
  164. package/dist/tools/structural/engines/typescript/utils.js +0 -279
  165. package/dist/tools/structural/engines/typescript/utils.js.map +0 -1
  166. package/dist/tools/structural/index.js +0 -248
  167. package/dist/tools/structural/index.js.map +0 -1
  168. package/dist/tools/structural/types.js +0 -18
  169. package/dist/tools/structural/types.js.map +0 -1
  170. package/dist/tools/tmuxTools.js +0 -100
  171. package/dist/tools/tmuxTools.js.map +0 -1
  172. package/dist/tools/workRecorder.js +0 -215
  173. package/dist/tools/workRecorder.js.map +0 -1
  174. package/dist/tools/worktreeTools.js +0 -705
  175. package/dist/tools/worktreeTools.js.map +0 -1
  176. package/dist/utils/__tests__/integration.test.js +0 -57
  177. package/dist/utils/__tests__/integration.test.js.map +0 -1
  178. package/dist/utils/__tests__/serverDetection.test.js +0 -151
  179. package/dist/utils/__tests__/serverDetection.test.js.map +0 -1
  180. package/dist/utils/errorHandling.js +0 -336
  181. package/dist/utils/errorHandling.js.map +0 -1
  182. package/dist/utils/processManager.js +0 -172
  183. package/dist/utils/processManager.js.map +0 -1
  184. package/dist/utils/reliability.js +0 -263
  185. package/dist/utils/reliability.js.map +0 -1
  186. package/dist/utils/responseFormatter.js +0 -250
  187. package/dist/utils/responseFormatter.js.map +0 -1
  188. package/dist/utils/serverDetection.js +0 -133
  189. package/dist/utils/serverDetection.js.map +0 -1
  190. package/dist/utils/specMigration.js +0 -105
  191. package/dist/utils/specMigration.js.map +0 -1
  192. package/dist/validation/schemas.js +0 -299
  193. package/dist/validation/schemas.js.map +0 -1
  194. package/public/.well-known/mcp/manifest.json +0 -473
  195. package/public/index.html +0 -3157
  196. package/public/index.html.backup +0 -2805
  197. package/public/index.html.backup2 +0 -1292
  198. package/scripts/cleanup-system-logs.ts +0 -121
  199. package/scripts/init-workspace.js +0 -63
  200. package/scripts/install-search-tools.js +0 -116
@@ -0,0 +1,271 @@
1
+ ---
2
+ name: database-design
3
+ description: Database design principles and decision-making. Schema design, indexing strategy, ORM selection, serverless databases.
4
+ ---
5
+
6
+ # Database Design
7
+
8
+ > Data modeling principles and best practices for relational and non-relational databases.
9
+
10
+ ---
11
+
12
+ ## Database Selection Framework
13
+
14
+ ### When to Use Each Type
15
+
16
+ | Database Type | Best For | Examples |
17
+ |---------------|-----------|-----------|
18
+ | **Relational (SQL)** | Structured data, complex queries, ACID requirements | PostgreSQL, MySQL, SQLite |
19
+ | **Document (NoSQL)** | Flexible schema, hierarchical data, rapid iteration | MongoDB, CouchDB |
20
+ | **Key-Value** | High-speed lookups, caching, simple queries | Redis, DynamoDB |
21
+ | **Graph** | Complex relationships, social networks, recommendations | Neo4j, ArangoDB |
22
+ | **Time-Series** | Metrics, monitoring, IoT data | InfluxDB, TimescaleDB |
23
+ | **Serverless** | Low-traffic apps, pay-per-use, no maintenance | Neon, PlanetScale, Supabase |
24
+
25
+ ### Selection Questions
26
+
27
+ 1. **Data Structure**: Structured (SQL) vs. flexible (NoSQL)?
28
+ 2. **Query Complexity**: Simple lookups (NoSQL) vs. complex joins (SQL)?
29
+ 3. **ACID Requirements**: Need transactions (SQL) vs. eventual consistency OK (NoSQL)?
30
+ 4. **Scale**: Small-medium (SQL) vs. massive scale (NoSQL)?
31
+ 5. **Team Expertise**: What does the team know?
32
+
33
+ ---
34
+
35
+ ## Schema Design Principles
36
+
37
+ ### Normalization vs. Denormalization
38
+
39
+ | Approach | When to Use | Pros | Cons |
40
+ |----------|-------------|-------|-------|
41
+ | **Normalized** | OLTP systems, data integrity, frequent writes | No redundancy, consistent | More joins, slower reads |
42
+ | **Denormalized** | OLAP systems, read-heavy, fast queries needed | Fast reads, simple | Redundant data, updates hard |
43
+
44
+ **Rule**: Start normalized, denormalize when you have data proving it helps.
45
+
46
+ ---
47
+
48
+ ### Table Design Best Practices
49
+
50
+ | Principle | Rule | Example |
51
+ |-----------|------|---------|
52
+ | **Primary Keys** | Always have one, prefer UUIDs over auto-increment | `id UUID PRIMARY KEY` |
53
+ | **Foreign Keys** | Use for relationships, add indexes | `user_id UUID REFERENCES users(id)` |
54
+ | **Timestamps** | Always track created_at, updated_at | `created_at TIMESTAMP DEFAULT NOW()` |
55
+ | **Soft Deletes** | Use deleted_at instead of DELETE | `deleted_at TIMESTAMP NULL` |
56
+ | **Not NULL** | Use when data is required | `name VARCHAR(255) NOT NULL` |
57
+ | **Defaults** | Use for common values | `status VARCHAR(20) DEFAULT 'active'` |
58
+
59
+ ---
60
+
61
+ ### Naming Conventions
62
+
63
+ | Element | Convention | Example |
64
+ |---------|-------------|---------|
65
+ | **Tables** | snake_case, plural | `users`, `user_sessions` |
66
+ | **Columns** | snake_case, singular | `user_id`, `created_at` |
67
+ | **Primary Keys** | `id` | `id UUID PRIMARY KEY` |
68
+ | **Foreign Keys** | `{table}_id` | `user_id`, `post_id` |
69
+ | **Indexes** | `idx_{table}_{columns}` | `idx_users_email` |
70
+ | **Constraints** | `chk_{table}_{rule}` | `chk_users_email_format` |
71
+
72
+ ---
73
+
74
+ ## Indexing Strategy
75
+
76
+ ### When to Add Indexes
77
+
78
+ | Scenario | Action |
79
+ |----------|--------|
80
+ | WHERE clause column | Add index |
81
+ | JOIN column | Add index |
82
+ | ORDER BY column | Add index |
83
+ | Frequently queried column | Add index |
84
+
85
+ ### Index Types
86
+
87
+ | Type | Best For | Example |
88
+ |-------|-----------|---------|
89
+ | **B-Tree** | Most queries (default) | `CREATE INDEX idx_users_email ON users(email)` |
90
+ | **Hash** | Exact equality only | `CREATE INDEX idx_cache ON cache USING HASH (key)` |
91
+ | **Composite** | Multiple columns together | `CREATE INDEX idx_posts_user_date ON posts(user_id, created_at)` |
92
+ | **Partial** | Filtered index | `CREATE INDEX idx_active ON users(id) WHERE status = 'active'` |
93
+ | **Full-Text** | Text search | `CREATE INDEX idx_search ON posts USING GIN (content)` |
94
+
95
+ ### Index Best Practices
96
+
97
+ | Principle | Rule |
98
+ |-----------|------|
99
+ | **Don't over-index** | Indexes slow down writes |
100
+ | **Index foreign keys** | Always index `user_id`, `post_id`, etc. |
101
+ | **Composite order matters** | Put most selective column first |
102
+ | **Analyze slow queries** | Use `EXPLAIN ANALYZE` to find missing indexes |
103
+
104
+ ---
105
+
106
+ ## ORM Selection
107
+
108
+ ### When to Use ORM
109
+
110
+ | Tool | Best For | Pros | Cons |
111
+ |-------|----------|-------|-------|
112
+ | **Prisma** | TypeScript, type-safe, migrations | Type-safe, great DX | Learning curve, build step |
113
+ | **TypeORM** | TypeScript, flexible, decorators | Flexible, mature | Performance overhead |
114
+ | **Sequelize** | JavaScript, Promise-based | Mature, battle-tested | TypeScript support limited |
115
+ | **Drizzle** | TypeScript, SQL-like, no magic | Fast, minimal | Manual migrations |
116
+ | **Raw SQL** | Performance critical, complex queries | Max control, fastest | No safety, verbose |
117
+
118
+ ### Selection Guide
119
+
120
+ - **TypeScript + Type Safety**: Prisma, Drizzle
121
+ - **JavaScript + Flexibility**: Sequelize, TypeORM
122
+ - **Performance Critical**: Raw SQL, Drizzle
123
+ - **Rapid Prototyping**: Prisma (best DX)
124
+
125
+ ---
126
+
127
+ ## Migration Strategy
128
+
129
+ ### Migration Tools
130
+
131
+ | Tool | Database | Features |
132
+ |------|----------|-----------|
133
+ | **Liquibase** | Any DB | Version control, rollback support |
134
+ | **Flyway** | Any DB | Simple, SQL-based |
135
+ | **Prisma Migrate** | PostgreSQL, MySQL | Type-safe, auto-generate |
136
+ | **Alembic** | Python/PostgreSQL | Flexible, widely used |
137
+
138
+ ### Best Practices
139
+
140
+ | Practice | Rule |
141
+ |----------|------|
142
+ | **Version control migrations** | Always commit migration files |
143
+ | **Reversible migrations** | Always write `up` and `down` |
144
+ | **Test migrations** | Run on test DB before prod |
145
+ | **Never edit committed migrations** | Create new migration instead |
146
+ | **Rollback plan** | Know how to rollback every migration |
147
+
148
+ ---
149
+
150
+ ## Performance Optimization
151
+
152
+ ### Query Optimization
153
+
154
+ | Issue | Solution |
155
+ |-------|----------|
156
+ | Slow SELECT | Add index, use EXPLAIN ANALYZE |
157
+ | N+1 queries | Use eager loading (JOIN/include) |
158
+ | Large result sets | Use pagination (LIMIT/OFFSET or cursor) |
159
+ | Full table scans | Add index, optimize WHERE clause |
160
+ | Complex joins | Consider denormalization or materialized views |
161
+
162
+ ### Connection Pooling
163
+
164
+ | Tool | Recommended Pool Size |
165
+ |-------|---------------------|
166
+ | PostgreSQL (pg) | 10-20 per app instance |
167
+ | MySQL (mysql2) | 10-20 per app instance |
168
+ | MongoDB | 10-50 per app instance |
169
+
170
+ ---
171
+
172
+ ## Data Integrity
173
+
174
+ ### Constraints
175
+
176
+ | Constraint | Purpose | Example |
177
+ |------------|----------|---------|
178
+ | **NOT NULL** | Data must have value | `email VARCHAR(255) NOT NULL` |
179
+ | **UNIQUE** | No duplicates | `email VARCHAR(255) UNIQUE` |
180
+ | **CHECK** | Validation rules | `CHECK (age >= 18)` |
181
+ | **FOREIGN KEY** | Referential integrity | `FOREIGN KEY (user_id) REFERENCES users(id)` |
182
+ | **EXCLUDE** | Advanced exclusions | `EXCLUDE USING gist (period WITH &&)` |
183
+
184
+ ### Transactions
185
+
186
+ ```sql
187
+ BEGIN;
188
+ -- Multiple operations
189
+ INSERT INTO orders (...) VALUES (...);
190
+ UPDATE inventory SET quantity = quantity - 1 WHERE ...;
191
+ COMMIT; -- or ROLLBACK on error
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Bob's Workshop Integration
197
+
198
+ This skill is used by **alice (architect)** agent during PLAN phase and **bob-eng (engineer)** during BUILD phase.
199
+
200
+ ### MANUAL Integration
201
+
202
+ Add database section to MANUAL:
203
+ ```markdown
204
+ ## 🏗️ Architecture Analysis
205
+
206
+ ### Database Design
207
+
208
+ #### Database Selection
209
+ - **Type:** [PostgreSQL / MongoDB / Redis / etc.]
210
+ - **Rationale:** [Why this database?]
211
+ - **ORM:** [Prisma / TypeORM / Raw SQL / etc.]
212
+ - **Migration Tool:** [Prisma Migrate / Liquibase / Flyway / etc.]
213
+
214
+ #### Schema Overview
215
+
216
+ ```
217
+ [ER Diagram]
218
+ ┌─────────────┐ ┌─────────────┐
219
+ │ users │ │ posts │
220
+ ├─────────────┤ ├─────────────┤
221
+ │ id (PK) │◀──────│ id (PK) │
222
+ │ email │ │ user_id (FK) │
223
+ │ ... │ │ title │
224
+ └─────────────┘ │ ... │
225
+ └─────────────┘
226
+ ```
227
+
228
+ #### Tables
229
+
230
+ **users**
231
+ | Column | Type | Constraints | Index |
232
+ |--------|------|-------------|--------|
233
+ | id | UUID | PRIMARY KEY | idx_users_id |
234
+ | email | VARCHAR(255) | UNIQUE, NOT NULL | idx_users_email |
235
+ | ... | ... | ... | ... |
236
+
237
+ #### Relationships
238
+ - `users.id` ← `posts.user_id` (One-to-Many)
239
+ - `users.id` ← `comments.user_id` (One-to-Many)
240
+ ```
241
+
242
+ ### Implementation Tasks
243
+
244
+ ```markdown
245
+ #### DB-001: Database Schema
246
+ - [ ] Create `users` table → Verify: Schema matches design
247
+ - [ ] Create `posts` table → Verify: Has foreign key to users
248
+ - [ ] Add indexes → Verify: Queries run efficiently
249
+ - [ ] Write migration → Verify: `npm run migrate` succeeds
250
+ - [ ] Add rollback migration → Verify: `npm run migrate:down` works
251
+ ```
252
+
253
+ ### Testing Strategy
254
+
255
+ ```markdown
256
+ #### DB-TEST-001: Database Tests
257
+ - [ ] Test CRUD operations → Verify: Insert/read/update/delete work
258
+ - [ ] Test constraints → Verify: NOT NULL, UNIQUE enforced
259
+ - [ ] Test foreign keys → Verify: Cascade delete works
260
+ - [ ] Test indexes → Verify: Queries use indexes (EXPLAIN)
261
+ - [ ] Test transactions → Verify: Rollback works on error
262
+ ```
263
+
264
+ ### Handoff Format
265
+
266
+ ```markdown
267
+ ## 🤝 Agent Handoffs
268
+
269
+ 🤝 alice: Database schema designed - PostgreSQL + Prisma
270
+ 🤝 alice → bob-eng: Schema ready, proceeding to implementation
271
+ ```
@@ -0,0 +1,257 @@
1
+ ---
2
+ name: exploration
3
+ description: LSP-powered codebase exploration covering all architectural layers. Use for systematic code navigation, definition tracing, and architectural understanding.
4
+ ---
5
+
6
+ # Exploration Skill
7
+
8
+ Comprehensive LSP and search-based codebase exploration for understanding architecture across all layers: Database, Backend, Integrations, Frontend, and UI/UX.
9
+
10
+ ## When to Use
11
+
12
+ - Before implementing new features (bob-arc)
13
+ - When navigating unfamiliar code (bob-eng)
14
+ - During debugging to trace execution paths (bob-fix)
15
+ - When reviewing code for architectural compliance (bob-rev)
16
+
17
+ ## Core Tools
18
+
19
+ ### LSP Navigation
20
+ ```
21
+ LspDefinition: Jump to where a symbol is defined
22
+ LspReferences: Find all places a symbol is used
23
+ LspHover: Get type information and documentation
24
+ ```
25
+
26
+ ### Search Tools
27
+ ```
28
+ grep: Pattern search across codebase (use rg for speed)
29
+ glob: Find files by path pattern
30
+ Semantic Search: Find code by meaning when exact text unknown
31
+ ```
32
+
33
+ ### MCP Tools (if available)
34
+ ```
35
+ grep-app: High-speed grep across entire project
36
+ context7: Documentation lookup for frameworks
37
+ ```
38
+
39
+ ## Layer-Specific Exploration
40
+
41
+ ### 🗄️ Database Layer
42
+
43
+ **Find schemas and migrations**:
44
+ ```bash
45
+ glob("**/migrations/**", "**/schema/**", "**/*.sql")
46
+ glob("**/prisma/**", "**/drizzle/**", "**/typeorm/**")
47
+ ```
48
+
49
+ **Find models/entities**:
50
+ ```bash
51
+ grep("Model|Entity|Schema|Table|@Entity|@Table", "src/")
52
+ grep("createTable|alterTable|addColumn", "migrations/")
53
+ ```
54
+
55
+ **Trace relationships**:
56
+ ```bash
57
+ grep("@ManyToOne|@OneToMany|@ManyToMany|references|foreignKey", "src/")
58
+ LspReferences on entity classes
59
+ ```
60
+
61
+ ### 🔧 Backend Layer
62
+
63
+ **Find services and controllers**:
64
+ ```bash
65
+ grep("Service|Controller|Handler|@Injectable", "src/")
66
+ glob("**/services/**", "**/controllers/**", "**/handlers/**")
67
+ ```
68
+
69
+ **Find API routes**:
70
+ ```bash
71
+ grep("router\.|app\.(get|post|put|delete|patch)", "src/")
72
+ grep("@Get|@Post|@Put|@Delete|@Controller", "src/")
73
+ ```
74
+
75
+ **Find middleware and auth**:
76
+ ```bash
77
+ grep("middleware|authenticate|authorize|guard", "src/")
78
+ grep("jwt|token|session|passport", "src/")
79
+ ```
80
+
81
+ **Trace service dependencies**:
82
+ ```bash
83
+ LspDefinition on service imports
84
+ LspReferences on service methods
85
+ ```
86
+
87
+ ### 🔗 Integration Layer
88
+
89
+ **Find external API clients**:
90
+ ```bash
91
+ grep("fetch|axios|http|request|client", "src/")
92
+ glob("**/lib/**", "**/clients/**", "**/api/**")
93
+ ```
94
+
95
+ **Find configuration**:
96
+ ```bash
97
+ glob("**/.env*", "**/config/**", "**/*.config.*")
98
+ grep("process\.env|config\.", "src/")
99
+ ```
100
+
101
+ **Find deployment files**:
102
+ ```bash
103
+ glob("**/Dockerfile", "**/docker-compose*", "**/*.yml")
104
+ glob("**/.github/workflows/**", "**/ci/**")
105
+ ```
106
+
107
+ ### 🎨 Frontend Layer
108
+
109
+ **Find components**:
110
+ ```bash
111
+ glob("**/components/**", "**/pages/**", "**/views/**")
112
+ glob("**/*.tsx", "**/*.vue", "**/*.svelte")
113
+ ```
114
+
115
+ **Find state management**:
116
+ ```bash
117
+ grep("useState|useReducer|useContext|createContext", "src/")
118
+ grep("createStore|createSlice|atom|store", "src/")
119
+ glob("**/store/**", "**/stores/**", "**/state/**")
120
+ ```
121
+
122
+ **Find routing**:
123
+ ```bash
124
+ grep("Route|router|navigate|Link|useRouter", "src/")
125
+ glob("**/routes/**", "**/pages/**")
126
+ ```
127
+
128
+ **Trace component hierarchy**:
129
+ ```bash
130
+ LspReferences on component names
131
+ grep("import.*from.*components", "src/")
132
+ ```
133
+
134
+ ### 🎯 UI/UX Layer
135
+
136
+ **Find styles**:
137
+ ```bash
138
+ glob("**/*.css", "**/*.scss", "**/*.less")
139
+ glob("**/styles/**", "**/css/**")
140
+ grep("className|styled|css|tw", "src/")
141
+ ```
142
+
143
+ **Find design tokens**:
144
+ ```bash
145
+ glob("**/theme/**", "**/tokens/**")
146
+ grep("colors|spacing|typography|breakpoints", "src/")
147
+ ```
148
+
149
+ **Find assets**:
150
+ ```bash
151
+ glob("**/assets/**", "**/public/**", "**/images/**")
152
+ glob("**/*.svg", "**/*.png", "**/*.ico")
153
+ ```
154
+
155
+ ## Exploration Patterns
156
+
157
+ ### Pattern 1: Trace a Feature End-to-End
158
+
159
+ ```markdown
160
+ 1. Start at UI: Find component handling user interaction
161
+ glob("**/components/**/*Button*")
162
+
163
+ 2. Trace to handler: Find what the button calls
164
+ LspDefinition on onClick handler
165
+
166
+ 3. Follow to service: Find API call
167
+ LspDefinition on service method
168
+
169
+ 4. Trace to backend: Find API endpoint
170
+ grep("POST /api/feature", "src/")
171
+
172
+ 5. Follow to database: Find data operations
173
+ LspDefinition on repository/model methods
174
+ ```
175
+
176
+ ### Pattern 2: Understand a Module
177
+
178
+ ```markdown
179
+ 1. Find module entry point
180
+ glob("**/[module]/index.ts")
181
+
182
+ 2. List all exports
183
+ grep("export", "[module]/index.ts")
184
+
185
+ 3. Find all usages
186
+ LspReferences on module exports
187
+
188
+ 4. Understand dependencies
189
+ grep("import.*from", "[module]/")
190
+ ```
191
+
192
+ ### Pattern 3: Find Integration Points
193
+
194
+ ```markdown
195
+ 1. Find where module is imported
196
+ grep("from.*[module]", "src/")
197
+
198
+ 2. Find interface definitions
199
+ grep("interface.*[Module]", "src/")
200
+
201
+ 3. Find implementations
202
+ LspReferences on interface
203
+
204
+ 4. Find tests (show expected behavior)
205
+ glob("**/*.test.*", "**/*.spec.*")
206
+ grep("[module]", "tests/")
207
+ ```
208
+
209
+ ## Best Practices
210
+
211
+ ### Be Systematic
212
+ - Start broad, narrow down
213
+ - Explore all layers, not just the obvious one
214
+ - Document what you find
215
+
216
+ ### Be Thorough
217
+ - Trace symbols to their definitions
218
+ - Find all references, not just the first
219
+ - Check test files for behavior documentation
220
+
221
+ ### Understand Intent
222
+ - Read function/class comments
223
+ - Look at test descriptions
224
+ - Check commit history for context
225
+
226
+ ### Identify Patterns
227
+ - Note recurring coding styles
228
+ - Identify architectural decisions
229
+ - Document conventions for consistency
230
+
231
+ ## Output Format
232
+
233
+ When reporting exploration findings:
234
+
235
+ ```markdown
236
+ ## Exploration: [What was explored]
237
+
238
+ ### Files Discovered
239
+ - `path/to/file.ts` - [Purpose/Role]
240
+ - `path/to/file.ts` - [Purpose/Role]
241
+
242
+ ### Key Patterns Identified
243
+ 1. [Pattern name]: [Description]
244
+ 2. [Pattern name]: [Description]
245
+
246
+ ### Dependencies Mapped
247
+ - [Module A] → [Module B]: [Relationship]
248
+ - [Module A] → [Module C]: [Relationship]
249
+
250
+ ### Insights for Implementation
251
+ - [Insight 1]
252
+ - [Insight 2]
253
+ ```
254
+
255
+ ---
256
+
257
+ **Remember**: Good exploration prevents bad implementation. Time spent understanding the codebase pays dividends in code that fits naturally with existing patterns.
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: frontend-ui-ux
3
+ description: Designer-turned-developer who crafts stunning UI/UX even without design mockups
4
+ ---
5
+
6
+ # Role: Designer-Turned-Developer
7
+
8
+ You are a designer who learned to code. You see what pure developers miss—spacing, color harmony, micro-interactions, that indefinable "feel" that makes interfaces memorable. Even without mockups, you envision and create beautiful, cohesive interfaces.
9
+
10
+ **Mission**: Create visually stunning, emotionally engaging interfaces users fall in love with. Obsess over pixel-perfect details, smooth animations, and intuitive interactions while maintaining code quality.
11
+
12
+ ---
13
+
14
+ # Work Principles
15
+
16
+ 1. **Complete what's asked** — Execute the exact task. No scope creep. Work until it works. Never mark work complete without proper verification.
17
+ 2. **Leave it better** — Ensure the project is in a working state after your changes.
18
+ 3. **Study before acting** — Examine existing patterns, conventions, and commit history (git log) before implementing. Understand why code is structured the way it is.
19
+ 4. **Blend seamlessly** — Match existing code patterns. Your code should look like the team wrote it.
20
+ 5. **Be transparent** — Announce each step. Explain reasoning. Report both successes and failures.
21
+
22
+ ---
23
+
24
+ # Design Process
25
+
26
+ Before coding, commit to a **BOLD aesthetic direction**:
27
+
28
+ 1. **Purpose**: What problem does this solve? Who uses it?
29
+ 2. **Tone**: Pick an extreme—brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian
30
+ 3. **Constraints**: Technical requirements (framework, performance, accessibility)
31
+ 4. **Differentiation**: What's the ONE thing someone will remember?
32
+
33
+ **Key**: Choose a clear direction and execute with precision. Intentionality > intensity.
34
+
35
+ Then implement working code (HTML/CSS/JS, React, Vue, Angular, etc.) that is:
36
+ - Production-grade and functional
37
+ - Visually striking and memorable
38
+ - Cohesive with a clear aesthetic point-of-view
39
+ - Meticulously refined in every detail
40
+
41
+ ---
42
+
43
+ # Aesthetic Guidelines
44
+
45
+ ## Typography
46
+ Choose distinctive fonts. **Avoid**: Arial, Inter, Roboto, system fonts, Space Grotesk. Pair a characterful display font with a refined body font.
47
+
48
+ ## Color
49
+ Commit to a cohesive palette. Use CSS variables. Dominant colors with sharp accents outperform timid, evenly-distributed palettes. **Avoid**: purple gradients on white (AI slop).
50
+
51
+ ## Motion
52
+ Focus on high-impact moments. One well-orchestrated page load with staggered reveals (animation-delay) > scattered micro-interactions. Use scroll-triggering and hover states that surprise. Prioritize CSS-only. Use Motion library for React when available.
53
+
54
+ ## Spatial Composition
55
+ Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
56
+
57
+ ## Visual Details
58
+ Create atmosphere and depth—gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, grain overlays. Never default to solid colors.
59
+
60
+ ---
61
+
62
+ # Anti-Patterns (NEVER)
63
+
64
+ - Generic fonts (Inter, Roboto, Arial, system fonts, Space Grotesk)
65
+ - Cliched color schemes (purple gradients on white)
66
+ - Predictable layouts and component patterns
67
+ - Cookie-cutter design lacking context-specific character
68
+ - Converging on common choices across generations
69
+
70
+ ---
71
+
72
+ # Execution
73
+
74
+ Match implementation complexity to aesthetic vision:
75
+ - **Maximalist** → Elaborate code with extensive animations and effects
76
+ - **Minimalist** → Restraint, precision, careful spacing and typography
77
+
78
+ Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. You are capable of extraordinary creative work—don't hold back.