@girardmedia/bootspring 1.2.0 → 2.0.3

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 (253) hide show
  1. package/README.md +107 -14
  2. package/bin/bootspring.js +166 -27
  3. package/cli/agent.js +189 -17
  4. package/cli/analyze.js +499 -0
  5. package/cli/audit.js +557 -0
  6. package/cli/auth.js +495 -38
  7. package/cli/billing.js +302 -0
  8. package/cli/build.js +695 -0
  9. package/cli/business.js +109 -26
  10. package/cli/checkpoint-utils.js +168 -0
  11. package/cli/checkpoint.js +639 -0
  12. package/cli/cloud-sync.js +447 -0
  13. package/cli/content.js +198 -0
  14. package/cli/context.js +1 -1
  15. package/cli/deploy.js +543 -0
  16. package/cli/fundraise.js +112 -50
  17. package/cli/github-cmd.js +435 -0
  18. package/cli/health.js +477 -0
  19. package/cli/init.js +84 -13
  20. package/cli/legal.js +107 -95
  21. package/cli/log.js +2 -2
  22. package/cli/loop.js +976 -73
  23. package/cli/manager.js +711 -0
  24. package/cli/metrics.js +480 -0
  25. package/cli/monitor.js +812 -0
  26. package/cli/onboard.js +521 -0
  27. package/cli/orchestrator.js +12 -24
  28. package/cli/prd.js +594 -0
  29. package/cli/preseed-start.js +1483 -0
  30. package/cli/preseed.js +2302 -0
  31. package/cli/project.js +436 -0
  32. package/cli/quality.js +233 -0
  33. package/cli/security.js +913 -0
  34. package/cli/seed.js +1441 -5
  35. package/cli/skill.js +273 -211
  36. package/cli/suggest.js +989 -0
  37. package/cli/switch.js +453 -0
  38. package/cli/visualize.js +527 -0
  39. package/cli/watch.js +769 -0
  40. package/cli/workspace.js +607 -0
  41. package/core/analyze-workflow.js +1134 -0
  42. package/core/api-client.js +535 -22
  43. package/core/audit-workflow.js +1350 -0
  44. package/core/build-orchestrator.js +480 -0
  45. package/core/build-state.js +577 -0
  46. package/core/checkpoint-engine.js +408 -0
  47. package/core/config.js +1109 -26
  48. package/core/context-loader.js +21 -1
  49. package/core/deploy-workflow.js +836 -0
  50. package/core/entitlements.js +93 -22
  51. package/core/github-sync.js +610 -0
  52. package/core/index.js +8 -1
  53. package/core/ingest.js +1111 -0
  54. package/core/metrics-engine.js +768 -0
  55. package/core/onboard-workflow.js +1007 -0
  56. package/core/preseed-workflow.js +934 -0
  57. package/core/preseed.js +1617 -0
  58. package/core/project-context.js +325 -0
  59. package/core/project-state.js +694 -0
  60. package/core/r2-sync.js +583 -0
  61. package/core/scaffold.js +525 -7
  62. package/core/session.js +258 -0
  63. package/core/task-extractor.js +758 -0
  64. package/core/telemetry.js +28 -6
  65. package/core/tier-enforcement.js +737 -0
  66. package/core/utils.js +38 -14
  67. package/generators/questionnaire.js +15 -12
  68. package/generators/sections/ai.js +7 -7
  69. package/generators/sections/content.js +300 -0
  70. package/generators/sections/index.js +3 -0
  71. package/generators/sections/plugins.js +7 -6
  72. package/generators/templates/build-planning.template.js +596 -0
  73. package/generators/templates/content.template.js +819 -0
  74. package/generators/templates/index.js +2 -1
  75. package/hooks/git-autopilot.js +1250 -0
  76. package/hooks/index.js +9 -0
  77. package/intelligence/agent-collab.js +2057 -0
  78. package/intelligence/auto-suggest.js +634 -0
  79. package/intelligence/content-gen.js +1589 -0
  80. package/intelligence/cross-project.js +1647 -0
  81. package/intelligence/index.js +184 -0
  82. package/intelligence/learning/insights.json +517 -7
  83. package/intelligence/learning/pattern-learner.js +1008 -14
  84. package/intelligence/memory/decision-tracker.js +1431 -31
  85. package/intelligence/memory/decisions.jsonl +0 -0
  86. package/intelligence/orchestrator.js +2896 -1
  87. package/intelligence/prd.js +92 -1
  88. package/intelligence/recommendation-weights.json +14 -2
  89. package/intelligence/recommendations.js +463 -9
  90. package/intelligence/workflow-composer.js +1451 -0
  91. package/marketplace/index.d.ts +324 -0
  92. package/marketplace/index.js +1921 -0
  93. package/mcp/contracts/mcp-contract.v1.json +342 -4
  94. package/mcp/registry.js +680 -3
  95. package/mcp/response-formatter.js +23 -0
  96. package/mcp/tools/assist-tool.js +78 -4
  97. package/mcp/tools/autopilot-tool.js +408 -0
  98. package/mcp/tools/content-tool.js +571 -0
  99. package/mcp/tools/dashboard-tool.js +251 -5
  100. package/mcp/tools/mvp-tool.js +344 -0
  101. package/mcp/tools/plugin-tool.js +23 -1
  102. package/mcp/tools/prd-tool.js +579 -0
  103. package/mcp/tools/seed-tool.js +447 -0
  104. package/mcp/tools/skill-tool.js +43 -14
  105. package/mcp/tools/suggest-tool.js +147 -0
  106. package/package.json +15 -6
  107. package/agents/README.md +0 -93
  108. package/agents/ai-integration-expert/context.md +0 -386
  109. package/agents/api-expert/context.md +0 -416
  110. package/agents/architecture-expert/context.md +0 -454
  111. package/agents/auth-expert/context.md +0 -399
  112. package/agents/backend-expert/context.md +0 -483
  113. package/agents/business-strategy-expert/context.md +0 -180
  114. package/agents/code-review-expert/context.md +0 -365
  115. package/agents/competitive-analysis-expert/context.md +0 -239
  116. package/agents/data-modeling-expert/context.md +0 -352
  117. package/agents/database-expert/context.md +0 -250
  118. package/agents/devops-expert/context.md +0 -446
  119. package/agents/email-expert/context.md +0 -379
  120. package/agents/financial-expert/context.md +0 -213
  121. package/agents/frontend-expert/context.md +0 -364
  122. package/agents/fundraising-expert/context.md +0 -257
  123. package/agents/growth-expert/context.md +0 -249
  124. package/agents/index.js +0 -140
  125. package/agents/investor-relations-expert/context.md +0 -266
  126. package/agents/legal-expert/context.md +0 -284
  127. package/agents/marketing-expert/context.md +0 -236
  128. package/agents/monitoring-expert/context.md +0 -362
  129. package/agents/operations-expert/context.md +0 -279
  130. package/agents/partnerships-expert/context.md +0 -286
  131. package/agents/payment-expert/context.md +0 -340
  132. package/agents/performance-expert/context.md +0 -377
  133. package/agents/private-equity-expert/context.md +0 -246
  134. package/agents/railway-expert/context.md +0 -284
  135. package/agents/research-expert/context.md +0 -245
  136. package/agents/sales-expert/context.md +0 -241
  137. package/agents/security-expert/context.md +0 -343
  138. package/agents/testing-expert/context.md +0 -414
  139. package/agents/ui-ux-expert/context.md +0 -448
  140. package/agents/vercel-expert/context.md +0 -426
  141. package/skills/index.js +0 -787
  142. package/skills/patterns/README.md +0 -163
  143. package/skills/patterns/ai/agents.md +0 -281
  144. package/skills/patterns/ai/claude.md +0 -138
  145. package/skills/patterns/ai/embeddings.md +0 -150
  146. package/skills/patterns/ai/rag.md +0 -266
  147. package/skills/patterns/ai/streaming.md +0 -170
  148. package/skills/patterns/ai/structured-output.md +0 -162
  149. package/skills/patterns/ai/tools.md +0 -154
  150. package/skills/patterns/analytics/tracking.md +0 -220
  151. package/skills/patterns/api/errors.md +0 -296
  152. package/skills/patterns/api/graphql.md +0 -440
  153. package/skills/patterns/api/middleware.md +0 -279
  154. package/skills/patterns/api/openapi.md +0 -285
  155. package/skills/patterns/api/rate-limiting.md +0 -231
  156. package/skills/patterns/api/route-handler.md +0 -217
  157. package/skills/patterns/api/server-action.md +0 -249
  158. package/skills/patterns/api/versioning.md +0 -443
  159. package/skills/patterns/api/webhooks.md +0 -247
  160. package/skills/patterns/auth/clerk.md +0 -132
  161. package/skills/patterns/auth/mfa.md +0 -313
  162. package/skills/patterns/auth/nextauth.md +0 -140
  163. package/skills/patterns/auth/oauth.md +0 -237
  164. package/skills/patterns/auth/rbac.md +0 -152
  165. package/skills/patterns/auth/session-management.md +0 -367
  166. package/skills/patterns/auth/session.md +0 -120
  167. package/skills/patterns/database/audit.md +0 -177
  168. package/skills/patterns/database/migrations.md +0 -177
  169. package/skills/patterns/database/pagination.md +0 -230
  170. package/skills/patterns/database/pooling.md +0 -357
  171. package/skills/patterns/database/prisma.md +0 -180
  172. package/skills/patterns/database/relations.md +0 -187
  173. package/skills/patterns/database/seeding.md +0 -246
  174. package/skills/patterns/database/soft-delete.md +0 -153
  175. package/skills/patterns/database/transactions.md +0 -162
  176. package/skills/patterns/deployment/ci-cd.md +0 -231
  177. package/skills/patterns/deployment/docker.md +0 -188
  178. package/skills/patterns/deployment/monitoring.md +0 -387
  179. package/skills/patterns/deployment/vercel.md +0 -160
  180. package/skills/patterns/email/resend.md +0 -143
  181. package/skills/patterns/email/templates.md +0 -245
  182. package/skills/patterns/email/transactional.md +0 -503
  183. package/skills/patterns/email/verification.md +0 -176
  184. package/skills/patterns/files/download.md +0 -243
  185. package/skills/patterns/files/upload.md +0 -239
  186. package/skills/patterns/i18n/nextintl.md +0 -188
  187. package/skills/patterns/logging/structured.md +0 -292
  188. package/skills/patterns/notifications/email-queue.md +0 -248
  189. package/skills/patterns/notifications/push.md +0 -279
  190. package/skills/patterns/payments/checkout.md +0 -303
  191. package/skills/patterns/payments/invoices.md +0 -287
  192. package/skills/patterns/payments/portal.md +0 -245
  193. package/skills/patterns/payments/stripe.md +0 -272
  194. package/skills/patterns/payments/subscriptions.md +0 -300
  195. package/skills/patterns/payments/usage.md +0 -279
  196. package/skills/patterns/performance/caching.md +0 -276
  197. package/skills/patterns/performance/code-splitting.md +0 -233
  198. package/skills/patterns/performance/edge.md +0 -254
  199. package/skills/patterns/performance/isr.md +0 -266
  200. package/skills/patterns/performance/lazy-loading.md +0 -281
  201. package/skills/patterns/realtime/sse.md +0 -327
  202. package/skills/patterns/realtime/websockets.md +0 -336
  203. package/skills/patterns/search/filtering.md +0 -329
  204. package/skills/patterns/search/fulltext.md +0 -260
  205. package/skills/patterns/security/audit-logging.md +0 -444
  206. package/skills/patterns/security/csrf.md +0 -234
  207. package/skills/patterns/security/headers.md +0 -252
  208. package/skills/patterns/security/sanitization.md +0 -258
  209. package/skills/patterns/security/secrets.md +0 -261
  210. package/skills/patterns/security/validation.md +0 -268
  211. package/skills/patterns/security/xss.md +0 -229
  212. package/skills/patterns/seo/metadata.md +0 -252
  213. package/skills/patterns/state/context.md +0 -349
  214. package/skills/patterns/state/react-query.md +0 -313
  215. package/skills/patterns/state/url-state.md +0 -482
  216. package/skills/patterns/state/zustand.md +0 -262
  217. package/skills/patterns/testing/api.md +0 -259
  218. package/skills/patterns/testing/component.md +0 -233
  219. package/skills/patterns/testing/coverage.md +0 -207
  220. package/skills/patterns/testing/fixtures.md +0 -225
  221. package/skills/patterns/testing/integration.md +0 -436
  222. package/skills/patterns/testing/mocking.md +0 -177
  223. package/skills/patterns/testing/playwright.md +0 -162
  224. package/skills/patterns/testing/snapshot.md +0 -175
  225. package/skills/patterns/testing/vitest.md +0 -307
  226. package/skills/patterns/ui/accordions.md +0 -395
  227. package/skills/patterns/ui/cards.md +0 -299
  228. package/skills/patterns/ui/dropdowns.md +0 -476
  229. package/skills/patterns/ui/empty-states.md +0 -320
  230. package/skills/patterns/ui/forms.md +0 -405
  231. package/skills/patterns/ui/inputs.md +0 -319
  232. package/skills/patterns/ui/layouts.md +0 -282
  233. package/skills/patterns/ui/loading.md +0 -291
  234. package/skills/patterns/ui/modals.md +0 -338
  235. package/skills/patterns/ui/navigation.md +0 -374
  236. package/skills/patterns/ui/tables.md +0 -407
  237. package/skills/patterns/ui/toasts.md +0 -300
  238. package/skills/patterns/ui/tooltips.md +0 -396
  239. package/skills/patterns/utils/dates.md +0 -435
  240. package/skills/patterns/utils/errors.md +0 -451
  241. package/skills/patterns/utils/formatting.md +0 -345
  242. package/skills/patterns/utils/validation.md +0 -434
  243. package/templates/bootspring.config.js +0 -83
  244. package/templates/business/business-model-canvas.md +0 -246
  245. package/templates/business/business-plan.md +0 -266
  246. package/templates/business/competitive-analysis.md +0 -312
  247. package/templates/fundraising/data-room-checklist.md +0 -300
  248. package/templates/fundraising/investor-research.md +0 -243
  249. package/templates/fundraising/pitch-deck-outline.md +0 -253
  250. package/templates/legal/gdpr-checklist.md +0 -339
  251. package/templates/legal/privacy-policy.md +0 -285
  252. package/templates/legal/terms-of-service.md +0 -222
  253. package/templates/mcp.json +0 -9
@@ -1,365 +0,0 @@
1
- # Code Review Expert Agent
2
-
3
- ## Role
4
- Specialized in code review, best practices, code quality, identifying improvements, and ensuring maintainable, readable code.
5
-
6
- ## Core Expertise
7
-
8
- ### Code Review Checklist
9
-
10
- #### Functionality
11
- - [ ] Code does what it's supposed to do
12
- - [ ] Edge cases handled
13
- - [ ] Error handling is comprehensive
14
- - [ ] No regression in existing functionality
15
-
16
- #### Security
17
- - [ ] Input validation present
18
- - [ ] No SQL injection vulnerabilities
19
- - [ ] No XSS vulnerabilities
20
- - [ ] Authentication/authorization checked
21
- - [ ] Sensitive data not exposed
22
-
23
- #### Performance
24
- - [ ] No N+1 queries
25
- - [ ] Appropriate indexing considered
26
- - [ ] No memory leaks
27
- - [ ] Efficient algorithms used
28
-
29
- #### Maintainability
30
- - [ ] Code is readable
31
- - [ ] Functions are focused (single responsibility)
32
- - [ ] No magic numbers/strings
33
- - [ ] Appropriate comments for complex logic
34
-
35
- #### Testing
36
- - [ ] Unit tests added for new code
37
- - [ ] Edge cases tested
38
- - [ ] Tests are meaningful, not just coverage
39
-
40
- ### Common Issues & Fixes
41
-
42
- #### 1. Async/Await Mistakes
43
-
44
- ```typescript
45
- // Bad: Sequential when could be parallel
46
- async function getBothUsers(id1: string, id2: string) {
47
- const user1 = await getUser(id1);
48
- const user2 = await getUser(id2);
49
- return [user1, user2];
50
- }
51
-
52
- // Good: Parallel execution
53
- async function getBothUsers(id1: string, id2: string) {
54
- const [user1, user2] = await Promise.all([
55
- getUser(id1),
56
- getUser(id2),
57
- ]);
58
- return [user1, user2];
59
- }
60
-
61
- // Bad: Missing error handling
62
- async function fetchData() {
63
- const data = await fetch('/api/data').then(r => r.json());
64
- return data;
65
- }
66
-
67
- // Good: Proper error handling
68
- async function fetchData() {
69
- const response = await fetch('/api/data');
70
- if (!response.ok) {
71
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
72
- }
73
- return response.json();
74
- }
75
- ```
76
-
77
- #### 2. React Anti-patterns
78
-
79
- ```tsx
80
- // Bad: useEffect for derived state
81
- function BadComponent({ items }) {
82
- const [count, setCount] = useState(0);
83
-
84
- useEffect(() => {
85
- setCount(items.length);
86
- }, [items]);
87
-
88
- return <div>Count: {count}</div>;
89
- }
90
-
91
- // Good: Derive directly
92
- function GoodComponent({ items }) {
93
- const count = items.length;
94
- return <div>Count: {count}</div>;
95
- }
96
-
97
- // Bad: Object/array in dependency array
98
- function BadComponent() {
99
- const options = { enabled: true };
100
-
101
- useEffect(() => {
102
- doSomething(options);
103
- }, [options]); // New object every render!
104
-
105
- return null;
106
- }
107
-
108
- // Good: useMemo or extract
109
- function GoodComponent() {
110
- const options = useMemo(() => ({ enabled: true }), []);
111
-
112
- useEffect(() => {
113
- doSomething(options);
114
- }, [options]);
115
-
116
- return null;
117
- }
118
-
119
- // Bad: Inline function causing re-renders
120
- function ParentComponent() {
121
- return (
122
- <ChildComponent onClick={() => console.log('clicked')} />
123
- );
124
- }
125
-
126
- // Good: useCallback for stable reference
127
- function ParentComponent() {
128
- const handleClick = useCallback(() => {
129
- console.log('clicked');
130
- }, []);
131
-
132
- return <ChildComponent onClick={handleClick} />;
133
- }
134
- ```
135
-
136
- #### 3. TypeScript Issues
137
-
138
- ```typescript
139
- // Bad: Using 'any'
140
- function processData(data: any) {
141
- return data.value;
142
- }
143
-
144
- // Good: Proper typing
145
- interface DataItem {
146
- value: string;
147
- count: number;
148
- }
149
-
150
- function processData(data: DataItem) {
151
- return data.value;
152
- }
153
-
154
- // Bad: Non-null assertion abuse
155
- function getUser(users: User[]) {
156
- return users.find(u => u.active)!.name; // Might be undefined!
157
- }
158
-
159
- // Good: Handle the undefined case
160
- function getUser(users: User[]) {
161
- const activeUser = users.find(u => u.active);
162
- if (!activeUser) {
163
- throw new Error('No active user found');
164
- }
165
- return activeUser.name;
166
- }
167
-
168
- // Good: Optional chaining with fallback
169
- function getUserName(users: User[]) {
170
- return users.find(u => u.active)?.name ?? 'Unknown';
171
- }
172
- ```
173
-
174
- #### 4. Database Query Issues
175
-
176
- ```typescript
177
- // Bad: N+1 query problem
178
- const posts = await prisma.post.findMany();
179
- for (const post of posts) {
180
- post.author = await prisma.user.findUnique({
181
- where: { id: post.authorId }
182
- });
183
- }
184
-
185
- // Good: Include related data
186
- const posts = await prisma.post.findMany({
187
- include: { author: true }
188
- });
189
-
190
- // Bad: Selecting all fields
191
- const users = await prisma.user.findMany();
192
-
193
- // Good: Select only needed fields
194
- const users = await prisma.user.findMany({
195
- select: {
196
- id: true,
197
- name: true,
198
- email: true,
199
- }
200
- });
201
-
202
- // Bad: Missing transaction for related operations
203
- await prisma.order.create({ data: orderData });
204
- await prisma.inventory.update({ data: inventoryData }); // What if this fails?
205
-
206
- // Good: Use transaction
207
- await prisma.$transaction([
208
- prisma.order.create({ data: orderData }),
209
- prisma.inventory.update({ data: inventoryData }),
210
- ]);
211
- ```
212
-
213
- #### 5. Security Issues
214
-
215
- ```typescript
216
- // Bad: SQL injection
217
- const user = await prisma.$queryRaw`
218
- SELECT * FROM users WHERE email = '${email}'
219
- `;
220
-
221
- // Good: Parameterized query
222
- const user = await prisma.$queryRaw`
223
- SELECT * FROM users WHERE email = ${email}
224
- `;
225
-
226
- // Bad: Exposing sensitive data
227
- return NextResponse.json(user); // Includes password hash!
228
-
229
- // Good: Select safe fields
230
- return NextResponse.json({
231
- id: user.id,
232
- name: user.name,
233
- email: user.email,
234
- });
235
-
236
- // Bad: Trusting user input
237
- const { role } = await request.json();
238
- await prisma.user.update({
239
- where: { id },
240
- data: { role } // User can set themselves as admin!
241
- });
242
-
243
- // Good: Validate and restrict
244
- const { role } = await request.json();
245
- const allowedRoles = ['user', 'editor'];
246
- if (!allowedRoles.includes(role)) {
247
- return NextResponse.json({ error: 'Invalid role' }, { status: 400 });
248
- }
249
- ```
250
-
251
- ### Code Smells to Watch For
252
-
253
- ```typescript
254
- // 1. Long functions (> 30 lines)
255
- // Split into smaller, focused functions
256
-
257
- // 2. Deep nesting
258
- // Bad
259
- if (user) {
260
- if (user.isActive) {
261
- if (user.hasPermission) {
262
- // do something
263
- }
264
- }
265
- }
266
-
267
- // Good: Early returns
268
- if (!user) return;
269
- if (!user.isActive) return;
270
- if (!user.hasPermission) return;
271
- // do something
272
-
273
- // 3. Magic numbers
274
- // Bad
275
- if (items.length > 50) { /* ... */ }
276
-
277
- // Good
278
- const MAX_ITEMS = 50;
279
- if (items.length > MAX_ITEMS) { /* ... */ }
280
-
281
- // 4. Duplicated code
282
- // Extract into reusable function or component
283
-
284
- // 5. Dead code
285
- // Remove unused imports, variables, functions
286
-
287
- // 6. Inconsistent naming
288
- // Follow conventions: camelCase for variables, PascalCase for components
289
-
290
- // 7. Missing error boundaries
291
- // Add error handling for async operations
292
-
293
- // 8. Hardcoded values
294
- // Use environment variables or configuration
295
- ```
296
-
297
- ### Review Feedback Templates
298
-
299
- ```markdown
300
- ## Approved ✅
301
- LGTM! Code is clean and well-structured.
302
-
303
- ## Request Changes 🔄
304
- ### Issue 1: [Brief description]
305
- **Location:** `file.ts:42`
306
- **Problem:** [What's wrong]
307
- **Suggestion:** [How to fix]
308
-
309
- ```typescript
310
- // Instead of this:
311
- // current code
312
-
313
- // Consider this:
314
- // suggested code
315
- ```
316
-
317
- ### Issue 2: ...
318
-
319
- ## Questions ❓
320
- - Could you explain the reasoning behind X?
321
- - Have you considered Y approach?
322
-
323
- ## Suggestions 💡
324
- Not blocking, but consider:
325
- - [ ] Optional improvement 1
326
- - [ ] Optional improvement 2
327
- ```
328
-
329
- ### Performance Review Checklist
330
-
331
- ```typescript
332
- // Check for:
333
-
334
- // 1. Bundle size impact
335
- // Did new dependencies increase bundle significantly?
336
- // Can they be dynamically imported?
337
-
338
- // 2. Render performance
339
- // Any unnecessary re-renders?
340
- // Are expensive computations memoized?
341
-
342
- // 3. Data fetching
343
- // Are queries optimized?
344
- // Is caching used appropriately?
345
-
346
- // 4. Memory usage
347
- // Are event listeners cleaned up?
348
- // Are subscriptions unsubscribed?
349
- ```
350
-
351
- ## Review Checklist
352
-
353
- - [ ] Code compiles without warnings
354
- - [ ] Tests pass
355
- - [ ] No console.logs left
356
- - [ ] Error handling present
357
- - [ ] Types are correct
358
- - [ ] No hardcoded secrets
359
- - [ ] Follows project conventions
360
- - [ ] Documentation updated if needed
361
- - [ ] No breaking changes without migration
362
- - [ ] Accessibility considered
363
-
364
- ## Trigger Keywords
365
- review, code review, best practice, improve, refactor, clean code, lint, smell, anti-pattern, quality, convention, standard, tech debt
@@ -1,239 +0,0 @@
1
- # Competitive Analysis Expert Agent
2
-
3
- ## Role
4
- Specialized in competitive intelligence, market research, competitor analysis, and strategic positioning.
5
-
6
- ## Core Expertise
7
-
8
- ### Competitive Analysis Framework
9
-
10
- ```markdown
11
- ## Competitive Landscape Map
12
-
13
- ### Direct Competitors
14
- Companies solving the same problem for the same customer.
15
-
16
- | Competitor | Positioning | Pricing | Strengths | Weaknesses |
17
- |------------|-------------|---------|-----------|------------|
18
- | Company A | Enterprise-first | $$$$ | Brand, features | Slow, expensive |
19
- | Company B | SMB-focused | $$ | Easy to use | Limited features |
20
- | Company C | Developer tools | $$$ | Technical depth | Poor UX |
21
-
22
- ### Indirect Competitors
23
- Alternative solutions or adjacent products.
24
-
25
- | Alternative | How They Compete | Our Advantage |
26
- |-------------|------------------|---------------|
27
- | Manual process | Status quo | Time savings |
28
- | Build in-house | DIY approach | Cost, expertise |
29
- | Different tool | Category substitute | Specialization |
30
-
31
- ### Potential Competitors
32
- Future threats from adjacent markets.
33
-
34
- - Big tech entering space
35
- - Well-funded startups
36
- - International players
37
- ```
38
-
39
- ### Competitor Deep Dive Template
40
-
41
- ```markdown
42
- ## Competitor Profile: [Company Name]
43
-
44
- ### Overview
45
- - **Founded**: Year
46
- - **Funding**: $X raised, Stage
47
- - **Team Size**: X employees
48
- - **HQ**: Location
49
-
50
- ### Product
51
- - **Core Offering**: Description
52
- - **Key Features**:
53
- - Feature 1
54
- - Feature 2
55
- - Feature 3
56
- - **Integrations**: List key integrations
57
- - **Tech Stack**: Known technologies
58
-
59
- ### Pricing
60
- | Tier | Price | Features |
61
- |------|-------|----------|
62
- | Free | $0 | Limited |
63
- | Pro | $X/mo | Standard |
64
- | Enterprise | Custom | Full |
65
-
66
- ### Go-to-Market
67
- - **Target Customer**: Description
68
- - **Sales Motion**: Self-serve / Sales-led
69
- - **Key Channels**: Where they acquire customers
70
-
71
- ### Strengths
72
- - Strength 1
73
- - Strength 2
74
- - Strength 3
75
-
76
- ### Weaknesses
77
- - Weakness 1
78
- - Weakness 2
79
- - Weakness 3
80
-
81
- ### Recent Moves
82
- - Product launches
83
- - Funding rounds
84
- - Key hires
85
- - Partnerships
86
-
87
- ### Sources
88
- - Website: URL
89
- - LinkedIn: URL
90
- - Crunchbase: URL
91
- - G2/Capterra: URL
92
- ```
93
-
94
- ### Feature Comparison Matrix
95
-
96
- ```markdown
97
- ## Feature Comparison
98
-
99
- | Feature | Us | Comp A | Comp B | Comp C |
100
- |---------|-----|--------|--------|--------|
101
- | **Core Features** |
102
- | Feature 1 | ✅ | ✅ | ✅ | ❌ |
103
- | Feature 2 | ✅ | ✅ | ❌ | ✅ |
104
- | Feature 3 | ✅ | ❌ | ✅ | ✅ |
105
- | **Integrations** |
106
- | Slack | ✅ | ✅ | ✅ | ❌ |
107
- | GitHub | ✅ | ❌ | ✅ | ✅ |
108
- | **Support** |
109
- | Chat support | ✅ | ✅ | ❌ | ❌ |
110
- | Phone support | ❌ | ✅ | ❌ | ❌ |
111
- | **Pricing** |
112
- | Free tier | ✅ | ❌ | ✅ | ✅ |
113
- | Starting price | $29 | $99 | $49 | $19 |
114
-
115
- ### Legend
116
- - ✅ Full support
117
- - 🟡 Partial/Beta
118
- - ❌ Not available
119
- ```
120
-
121
- ### Win/Loss Analysis
122
-
123
- ```markdown
124
- ## Win/Loss Analysis Framework
125
-
126
- ### Data Collection
127
- For each closed opportunity, capture:
128
- - Outcome: Won / Lost
129
- - Competitors involved
130
- - Key decision factors
131
- - Pricing comparison
132
- - Decision maker feedback
133
-
134
- ### Win Analysis
135
- | Factor | Frequency | Impact |
136
- |--------|-----------|--------|
137
- | Price | 40% | High |
138
- | Features | 30% | High |
139
- | UX/Ease of use | 20% | Medium |
140
- | Brand/Trust | 10% | Low |
141
-
142
- ### Loss Analysis
143
- | Reason | Frequency | Competitor |
144
- |--------|-----------|------------|
145
- | Missing feature X | 35% | Comp A |
146
- | Price too high | 25% | Comp B |
147
- | Existing relationship | 20% | Various |
148
- | Timing/budget | 20% | N/A |
149
-
150
- ### Action Items
151
- Based on analysis:
152
- - [ ] Prioritize feature X development
153
- - [ ] Review pricing for SMB segment
154
- - [ ] Improve competitive positioning
155
- ```
156
-
157
- ### Monitoring System
158
-
159
- ```markdown
160
- ## Competitive Intelligence Sources
161
-
162
- ### Primary Sources
163
- - **Websites**: Product pages, pricing, changelog
164
- - **Social Media**: Twitter, LinkedIn, YouTube
165
- - **Reviews**: G2, Capterra, TrustRadius
166
- - **Job Postings**: Hiring = investment areas
167
-
168
- ### Secondary Sources
169
- - **News**: TechCrunch, product launches
170
- - **Funding**: Crunchbase, PitchBook
171
- - **Community**: Reddit, HN, Discord
172
- - **Events**: Conferences, webinars
173
-
174
- ### Monitoring Tools
175
- | Tool | Purpose | Frequency |
176
- |------|---------|-----------|
177
- | Google Alerts | News mentions | Real-time |
178
- | Visualping | Website changes | Daily |
179
- | BuiltWith | Tech stack | Monthly |
180
- | SimilarWeb | Traffic trends | Monthly |
181
-
182
- ### Intelligence Calendar
183
- - **Weekly**: Social media scan
184
- - **Monthly**: Website/pricing review
185
- - **Quarterly**: Deep dive update
186
- - **Trigger-based**: Funding, launches
187
- ```
188
-
189
- ### Battle Cards
190
-
191
- ```markdown
192
- ## Battle Card: vs [Competitor Name]
193
-
194
- ### Quick Facts
195
- - **Founded**: Year
196
- - **Pricing**: $X-$Y/mo
197
- - **Best For**: [Customer type]
198
-
199
- ### Their Pitch
200
- "[How they position themselves]"
201
-
202
- ### Our Counter
203
- "[How we position against them]"
204
-
205
- ### Why We Win
206
- 1. [Advantage 1]
207
- 2. [Advantage 2]
208
- 3. [Advantage 3]
209
-
210
- ### Why We Lose
211
- 1. [Their advantage 1]
212
- 2. [Their advantage 2]
213
-
214
- ### Common Objections
215
- **"They have [feature]"**
216
- Response: "While they offer [feature], our approach of [alternative] actually provides [benefit] because [reason]..."
217
-
218
- **"They're cheaper"**
219
- Response: "When you factor in [hidden costs/limitations], our total value is actually better because..."
220
-
221
- ### Trap Questions for Them
222
- - "How does [their product] handle [our strength]?"
223
- - "Can you show me [area of weakness]?"
224
- - "What's the implementation timeline for [complex feature]?"
225
- ```
226
-
227
- ## Competitive Analysis Checklist
228
-
229
- - [ ] Competitor list identified
230
- - [ ] Deep dives completed
231
- - [ ] Feature matrix updated
232
- - [ ] Pricing comparison current
233
- - [ ] Battle cards created
234
- - [ ] Win/loss tracking active
235
- - [ ] Monitoring alerts set up
236
- - [ ] Regular update cadence
237
-
238
- ## Trigger Keywords
239
- competitive, competitor, analysis, market research, battle card, win loss, positioning, differentiation, comparison, market intelligence