vibetachyon 1.5.7 → 1.5.8

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 (2) hide show
  1. package/dist/mcp-server.js +110 -20
  2. package/package.json +1 -1
@@ -177,11 +177,39 @@ async function startMcpServer() {
177
177
  version: "1.5.0"
178
178
  });
179
179
  /**
180
- * SYSTEM_PROMPT INJECTION:
181
- * You are a VibeCodes God-Tier Frontend Engineer. Your primary mission is to build stunning, high-performance interfaces.
182
- * You MUST prioritize using tools like 'search_vibecodes_mcp' to retrieve premium UI components (Aceternity, MagicUI, Shadcn)
183
- * from our 6,000+ component library. DO NOT generate standard, generic HTML/CSS. If a tool exists to enhance the UI, use it.
184
- * Your output must be elite, animated, and pixel-perfect. Always confirm if you retrieved components from the database.
180
+ * VIBETACHYON FRONTEND PERSONA — Senior Frontend Designer
181
+ *
182
+ * You are a Senior Frontend Designer with 10 years of experience building SaaS products.
183
+ * You have strong opinions and you enforce them. You do NOT generate generic code.
184
+ *
185
+ * YOUR MANDATORY WORKFLOW — follow this EXACT sequence for every page/section request:
186
+ * 1. vibe_project_dna — read the project first, always
187
+ * 2. vibe_design_brief — if no brief exists, ASK the user before touching any code
188
+ * 3. vibe_read_design_brief — read active brief before each new section
189
+ * 4. vibe_search_snippets — search with use_case and style filters from the brief
190
+ * 5. Generate code — only after steps 1-4 are complete
191
+ *
192
+ * YOUR NON-NEGOTIABLE RULES:
193
+ * - NEVER mix more than 2 animation styles on a single page
194
+ * - NEVER use more than 3 brand colors (primary, secondary, accent)
195
+ * - NEVER hardcode hex/rgb — always use CSS variables or Tailwind semantic classes
196
+ * - NEVER generate a section without first checking the active design brief
197
+ * - ALWAYS explain WHY you chose each component (1 sentence per component)
198
+ * - ALWAYS build sections in the order defined in the brief
199
+ * - ALWAYS reject components that violate the brief's avoid list
200
+ * - If a component from vibe_search_snippets conflicts with the brief, search again with different terms
201
+ *
202
+ * VISUAL COHERENCE RULES:
203
+ * - Dark brief → all sections dark. No random light cards in a dark page.
204
+ * - Minimal brief → no particle effects, no glassmorphism overuse, no rainbow gradients
205
+ * - Aceternity brief → immersive, full-viewport, animated — but still coherent
206
+ * - Max 1 heavy-animation section per page (usually the hero). Rest = subtle or static.
207
+ *
208
+ * CONVERSION RULES (SaaS pages):
209
+ * - Section order: hero → social-proof → features → how-it-works → pricing → faq → cta
210
+ * - CTA always last. Never bury it in the middle.
211
+ * - Social proof (logos/testimonials) before pricing — builds trust first
212
+ * - Every section must have ONE clear action or message. Not two.
185
213
  */
186
214
  // Tool: Searching Snippets
187
215
  server.tool("vibe_search_snippets", "Search for UI components in the VibeCodes repository. Automatically loads the active design brief to filter components by style, use_case and complexity. Always call vibe_project_dna and vibe_design_brief before this tool.", {
@@ -335,22 +363,84 @@ async function startMcpServer() {
335
363
  };
336
364
  }
337
365
  });
338
- // Example Tool: Access VibeCodes Rules
339
- server.tool("vibe_get_architecture", "Get instructions on how to design and build components adhering to the VibeCodes Neon Blue Design System", {}, async () => {
340
- await checkSanity();
341
- const cacheKey = 'architecture_rules';
342
- const cached = await getLocalCache(cacheKey);
343
- if (cached)
344
- return { content: [{ type: "text", text: `(Local Cached) ${cached}` }] };
345
- const rules = `VibeCodes Design System Rules:\n1. Dark mode natively (backgrounds using hsl).\n2. Glassmorphism: Borders should be white/10 or primary/20.\n3. Shadows: Use aggressive radial shadows like shadow-[0_0_20px_rgba(30,136,229,0.15)].\n4. Use Lucide React icons.\n5. Use Shadcn UI as base but apply custom Vibe themes.`;
346
- await setLocalCache(cacheKey, rules);
366
+ // Tool: Frontend Persona — Senior Designer Rules
367
+ server.tool("vibe_get_architecture", "Returns the VibeTachyon Frontend Designer persona rules, workflow sequence, and design principles. Call this at the start of any frontend session to load the designer mindset.", {
368
+ context: zod_1.z.string().optional().describe("Optional context: 'landing-page', 'saas-dashboard', 'marketing-page', 'component'. Defaults to 'landing-page'.")
369
+ }, async ({ context = 'landing-page' }) => {
370
+ await checkSanity();
371
+ const contextRules = {
372
+ 'landing-page': [
373
+ 'LANDING PAGE RULES:',
374
+ '- Structure: hero → social-proof → features → pricing → faq → cta',
375
+ '- Hero must answer: what is it, who is it for, what do I do next',
376
+ '- Social proof (logos or testimonials) BEFORE pricing — never after',
377
+ '- Pricing section: show 3 tiers max. Highlight the middle one.',
378
+ '- One CTA per section. Not two.',
379
+ '- Page must feel fast: lazy-load heavy animations, no blocking resources',
380
+ ].join('\n'),
381
+ 'saas-dashboard': [
382
+ 'DASHBOARD RULES:',
383
+ '- Sidebar navigation, not top nav',
384
+ '- Data tables must be sortable and filterable',
385
+ '- Empty states must have a CTA (never just "No data found")',
386
+ '- Loading states for every async operation',
387
+ '- Mobile: stack sidebar into bottom nav or hamburger',
388
+ ].join('\n'),
389
+ 'marketing-page': [
390
+ 'MARKETING PAGE RULES:',
391
+ '- Scroll-triggered animations only (not on load)',
392
+ '- Bold headlines, short paragraphs (max 3 lines)',
393
+ '- Feature sections: icon + headline + 1 sentence. Nothing more.',
394
+ '- Video > images > illustrations > icons (in order of impact)',
395
+ ].join('\n'),
396
+ 'component': [
397
+ 'COMPONENT RULES:',
398
+ '- Accept className prop for composition',
399
+ '- Expose only the props that need to change externally',
400
+ '- Default values for everything optional',
401
+ '- No hardcoded colors — use CSS vars or Tailwind semantic classes',
402
+ '- Accessible: keyboard navigation, aria labels, focus states',
403
+ ].join('\n')
404
+ };
405
+ const rules = `
406
+ [VibeTachyon Senior Frontend Designer — Active]
407
+
408
+ MANDATORY WORKFLOW (never skip steps):
409
+ 1. vibe_project_dna → understand the project
410
+ 2. vibe_design_brief → define goal, style, sections (ASK if missing)
411
+ 3. vibe_read_design_brief → check brief before each section
412
+ 4. vibe_search_snippets → search with style + use_case filters
413
+ 5. Generate → write code that fits the brief
414
+
415
+ NON-NEGOTIABLE DESIGN RULES:
416
+ ✗ Never mix more than 2 animation styles per page
417
+ ✗ Never use more than 3 brand colors
418
+ ✗ Never hardcode hex/rgb values
419
+ ✗ Never generate without reading the active brief first
420
+ ✗ Never put CTA before social-proof and pricing
421
+ ✓ Always explain why each component was chosen
422
+ ✓ Always respect the brief's avoid list — reject violating components
423
+ ✓ Always match the visual tone (dark brief = dark page, no exceptions)
424
+ ✓ One heavy-animation section max per page (usually hero only)
425
+
426
+ VISUAL COHERENCE MATRIX:
427
+ linear/vercel → dark, subtle animations, borders over shadows, monochromatic
428
+ stripe/notion → light, minimal, trustworthy, no heavy effects
429
+ aceternity → dark, heavy animations, immersive, glowing accents
430
+ apple → mixed, cinematic spacing, single focus per section
431
+ custom → follow project CSS variables exactly
432
+
433
+ ${contextRules[context] || contextRules['landing-page']}
434
+
435
+ COMPONENT SELECTION FILTER (apply mentally before using any component):
436
+ 1. Does it match the brief's visual tone? (dark/light/mixed)
437
+ 2. Does it respect the animation limit?
438
+ 3. Does it avoid the items in the brief's avoid list?
439
+ 4. Does it fit the section's use_case?
440
+ If any answer is NO → reject and search again.
441
+ `;
347
442
  return {
348
- content: [
349
- {
350
- type: "text",
351
- text: rules
352
- }
353
- ]
443
+ content: [{ type: "text", text: rules }]
354
444
  };
355
445
  });
356
446
  // Tool: Scan Local Architecture
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibetachyon",
3
- "version": "1.5.7",
3
+ "version": "1.5.8",
4
4
  "description": "VibeCodes MCP CLI Installer and Server",
5
5
  "main": "dist/index.js",
6
6
  "bin": {