vibes-plug 2.14.1 → 3.9.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.
Files changed (151) hide show
  1. package/.claude/rules/vibes-plug-core.md +5 -0
  2. package/.cursor/rules/vibes-plug-core.mdc +7 -2
  3. package/.cursorrules +8 -2
  4. package/AGENTS.md +23 -2
  5. package/CHANGELOG.md +114 -0
  6. package/CLAUDE.md +10 -3
  7. package/README.md +216 -611
  8. package/bin/vibes.mjs +1104 -0
  9. package/package.json +11 -3
  10. package/plugin.json +4 -3
  11. package/scripts/check-anti-slop.mjs +53 -0
  12. package/scripts/install.js +3 -1
  13. package/scripts/update_skills.js +1 -1
  14. package/scripts/update_skills.mjs +86 -0
  15. package/scripts/validate-skills.mjs +111 -0
  16. package/skills/accessibility-testing-expert/SKILL.md +117 -116
  17. package/skills/affective-computing-emotion-ai/SKILL.md +83 -0
  18. package/skills/agentic-coding-workflow-expert/SKILL.md +297 -0
  19. package/skills/agentic-memory-architect/SKILL.md +52 -0
  20. package/skills/agentic-micro-economy-architect/SKILL.md +92 -0
  21. package/skills/ai-llm-integration-expert/SKILL.md +330 -194
  22. package/skills/ai-media-generation-expert/SKILL.md +173 -172
  23. package/skills/ai-prompt-engineering-expert/SKILL.md +204 -134
  24. package/skills/ai-safety-governance-expert/SKILL.md +223 -0
  25. package/skills/angular-expert/SKILL.md +149 -148
  26. package/skills/anti-slop/SKILL.md +134 -133
  27. package/skills/api-design-expert/SKILL.md +4 -3
  28. package/skills/api-gateway-proxy-expert/SKILL.md +3 -2
  29. package/skills/app-analyzer-optimizer/SKILL.md +4 -3
  30. package/skills/apple-ecosystem-expert/SKILL.md +6 -5
  31. package/skills/astro-framework-expert/SKILL.md +201 -200
  32. package/skills/async-queue-temporal-expert/SKILL.md +218 -217
  33. package/skills/authentication-identity-expert/SKILL.md +174 -173
  34. package/skills/autonomous-red-teamer/SKILL.md +338 -203
  35. package/skills/autonomous-tdd-debugger/SKILL.md +6 -5
  36. package/skills/biome-linter-formatter-expert/SKILL.md +90 -89
  37. package/skills/blockchain-web3-expert/SKILL.md +116 -115
  38. package/skills/brainstorming/SKILL.md +392 -377
  39. package/skills/browser-automation-expert/SKILL.md +260 -222
  40. package/skills/bun-runtime-expert/SKILL.md +5 -4
  41. package/skills/chatbot-messaging-expert/SKILL.md +115 -114
  42. package/skills/ci-cd-devops-architect/SKILL.md +3 -2
  43. package/skills/cloud-hosting-expert/SKILL.md +5 -4
  44. package/skills/coderabbit/SKILL.md +5 -4
  45. package/skills/compliance-gdpr-privacy-expert/SKILL.md +3 -2
  46. package/skills/composable-mach-architect/SKILL.md +338 -0
  47. package/skills/cron-scheduler-expert/SKILL.md +5 -4
  48. package/skills/data-pipeline-etl-expert/SKILL.md +3 -2
  49. package/skills/data-telemetry-expert/SKILL.md +5 -4
  50. package/skills/data-visualization-expert/SKILL.md +155 -154
  51. package/skills/database-orm-expert/SKILL.md +166 -165
  52. package/skills/deep-research-analyst/SKILL.md +182 -136
  53. package/skills/dependency-upgrade-migrator/SKILL.md +11 -10
  54. package/skills/design-system-architect/SKILL.md +4 -3
  55. package/skills/desktop-electron-expert/SKILL.md +129 -128
  56. package/skills/documentation-site-expert/SKILL.md +60 -59
  57. package/skills/doku-mcp-server/SKILL.md +5 -4
  58. package/skills/doku-payment-gateway/SKILL.md +250 -232
  59. package/skills/domain-driven-design-expert/SKILL.md +3 -2
  60. package/skills/e2e-testing-expert/SKILL.md +5 -4
  61. package/skills/ecommerce-expert/SKILL.md +88 -87
  62. package/skills/email-notification-expert/SKILL.md +5 -4
  63. package/skills/ephemeral-generative-ui-architect/SKILL.md +88 -0
  64. package/skills/error-resilience-expert/SKILL.md +14 -13
  65. package/skills/event-driven-architect/SKILL.md +5 -4
  66. package/skills/feature-flag-analytics-expert/SKILL.md +3 -2
  67. package/skills/file-upload-media-expert/SKILL.md +5 -4
  68. package/skills/firebase-security-expert/SKILL.md +5 -4
  69. package/skills/form-validation-expert/SKILL.md +7 -6
  70. package/skills/frontier-ai-models-expert/SKILL.md +116 -0
  71. package/skills/fullstack-expert/SKILL.md +185 -184
  72. package/skills/gemini-agent-booster/SKILL.md +248 -172
  73. package/skills/geospatial-maps-expert/SKILL.md +81 -80
  74. package/skills/global-a11y-i18n-expert/SKILL.md +5 -4
  75. package/skills/glsl-shader-expert/SKILL.md +191 -190
  76. package/skills/go-programming-expert/SKILL.md +5 -4
  77. package/skills/graph-rag-knowledge-expert/SKILL.md +201 -200
  78. package/skills/graphql-apollo-expert/SKILL.md +5 -4
  79. package/skills/headless-cms-expert/SKILL.md +182 -181
  80. package/skills/hig/SKILL.md +5 -4
  81. package/skills/js-backend-expert/SKILL.md +219 -218
  82. package/skills/legacy-code-translator/SKILL.md +6 -5
  83. package/skills/llm-finops-router/SKILL.md +52 -0
  84. package/skills/local-slm-edge-ai-expert/SKILL.md +168 -167
  85. package/skills/logging-error-tracking-expert/SKILL.md +5 -4
  86. package/skills/mcp-server-architect/SKILL.md +315 -307
  87. package/skills/micro-frontend-architect/SKILL.md +5 -4
  88. package/skills/mobile-expo-expert/SKILL.md +5 -4
  89. package/skills/modern-css-native-expert/SKILL.md +190 -189
  90. package/skills/monorepo-architect/SKILL.md +5 -4
  91. package/skills/mpa-orchestrator/SKILL.md +41 -4
  92. package/skills/multi-agent-orchestration/SKILL.md +388 -254
  93. package/skills/mvc-expert/SKILL.md +5 -4
  94. package/skills/n8n-automation-expert/SKILL.md +90 -89
  95. package/skills/nextjs-app-router-expert/SKILL.md +3 -2
  96. package/skills/openapi-swagger-codegen-expert/SKILL.md +4 -3
  97. package/skills/payment-gateway-expert/SKILL.md +131 -128
  98. package/skills/pdf-document-generation-expert/SKILL.md +92 -91
  99. package/skills/performance-web-vitals/SKILL.md +5 -4
  100. package/skills/post-quantum-crypto-migrator/SKILL.md +3 -2
  101. package/skills/prd-architect/SKILL.md +183 -182
  102. package/skills/proactive-background-watcher/SKILL.md +5 -4
  103. package/skills/production-ready-hardener/SKILL.md +10 -9
  104. package/skills/pwa-offline-first-expert/SKILL.md +227 -226
  105. package/skills/pydantic-ai-expert/SKILL.md +162 -161
  106. package/skills/python-programming-expert/SKILL.md +5 -4
  107. package/skills/rate-limit-abuse-prevention/SKILL.md +5 -4
  108. package/skills/realtime-collaboration-expert/SKILL.md +3 -2
  109. package/skills/rich-text-editor-expert/SKILL.md +178 -177
  110. package/skills/rust-programming-expert/SKILL.md +5 -4
  111. package/skills/saas-architect/SKILL.md +155 -154
  112. package/skills/saas-billing/SKILL.md +394 -382
  113. package/skills/saas-multi-tenant/SKILL.md +7 -6
  114. package/skills/scalability-clean-code/SKILL.md +5 -4
  115. package/skills/search-engine-expert/SKILL.md +90 -89
  116. package/skills/self-healing-cloud-orchestrator/SKILL.md +3 -2
  117. package/skills/senior-frontend/SKILL.md +14 -9
  118. package/skills/seo/SKILL.md +4 -4
  119. package/skills/session-memory-manager/SKILL.md +129 -128
  120. package/skills/solidjs-expert/SKILL.md +81 -80
  121. package/skills/spa-orchestrator/SKILL.md +5 -4
  122. package/skills/sse-websocket-streaming-expert/SKILL.md +3 -2
  123. package/skills/state-management-expert/SKILL.md +5 -4
  124. package/skills/supabase-security-expert/SKILL.md +5 -4
  125. package/skills/svelte-sveltekit-expert/SKILL.md +92 -91
  126. package/skills/svg-animation-motion-expert/SKILL.md +3 -2
  127. package/skills/synthetic-data-finetuning-expert/SKILL.md +156 -155
  128. package/skills/tailwind-expert/SKILL.md +62 -5
  129. package/skills/tanstack-query-expert/SKILL.md +5 -4
  130. package/skills/tauri-expert/SKILL.md +5 -4
  131. package/skills/typescript-expert/SKILL.md +5 -4
  132. package/skills/ui-ux-pro-max/SKILL.md +7 -6
  133. package/skills/vector-db-rag-expert/SKILL.md +209 -208
  134. package/skills/vercel-ai-sdk-expert/SKILL.md +226 -181
  135. package/skills/voice-ai-realtime-agent/SKILL.md +243 -242
  136. package/skills/vue-frontend-expert/SKILL.md +5 -4
  137. package/skills/wasm-edge-computing-expert/SKILL.md +3 -2
  138. package/skills/web-3d-graphics-expert/SKILL.md +314 -313
  139. package/skills/web-game-engine-expert/SKILL.md +330 -329
  140. package/skills/web-scraper/SKILL.md +158 -157
  141. package/skills/website-design-cloner/SKILL.md +5 -4
  142. package/skills/webxr-ar-vr-expert/SKILL.md +163 -162
  143. package/skills/wordpress-headless-expert/SKILL.md +145 -144
  144. package/skills/zero-tech-debt-auditor/SKILL.md +115 -0
  145. package/skills/zero-to-prod-orchestrator/SKILL.md +281 -229
  146. package/skills/zero-trust-secret-vault/SKILL.md +3 -2
  147. package/BLUEPRINT.md +0 -319
  148. package/skills/bootstrap-to-modern/SKILL.md +0 -94
  149. package/skills/multiple-entry-points/SKILL.md +0 -91
  150. package/skills/secure-fuzz-testing/SKILL.md +0 -207
  151. package/skills/visual-qa-vision-agent/SKILL.md +0 -71
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "vibes-plug",
3
- "version": "2.14.1",
4
- "description": "Universal AI plugin with 125 specialized skills for Antigravity, Claude, and Cursor. Updated for the modern 2026 tech stack (React 19, Tailwind v4, Bun, Hono, Supabase Auth v3). Designed to support software development, UI/UX design, SEO optimization, and SaaS business strategies",
3
+ "version": "3.9.0",
4
+ "description": "Universal AI plugin with 131 specialized skills for Antigravity, Claude, and Cursor. Updated for the modern 2026 tech stack (React 19, Tailwind v4, Bun, Hono, AI Safety, CUA). Designed to support software development, UI/UX design, SEO optimization, and SaaS business strategies",
5
5
  "main": "index.js",
6
6
  "bin": {
7
- "vibes-plug": "./scripts/install.js"
7
+ "vibes-plug": "scripts/install.js",
8
+ "vibes": "bin/vibes.mjs"
8
9
  },
9
10
  "files": [
10
11
  "index.js",
@@ -27,10 +28,15 @@
27
28
  "scripts": {
28
29
  "test": "echo \"Error: no test specified\" && exit 1",
29
30
  "generate:gif": "python scripts/generate_swarm_gif.py",
31
+ "update-skills": "node scripts/update_skills.mjs",
32
+ "audit": "node scripts/check-anti-slop.mjs",
30
33
  "install-all": "node scripts/install.js --all",
31
34
  "install-claude": "node scripts/install.js --claude",
32
35
  "install-cursor": "node scripts/install.js --cursor"
33
36
  },
37
+ "dependencies": {
38
+ "@inquirer/prompts": "^7.0.0"
39
+ },
34
40
  "repository": {
35
41
  "type": "git",
36
42
  "url": "git+https://github.com/roedyrustam/vibes-plug.git"
@@ -59,3 +65,5 @@
59
65
  },
60
66
  "homepage": "https://github.com/roedyrustam/vibes-plug#readme"
61
67
  }
68
+
69
+
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vibes-plug",
3
- "version": "2.14.0",
4
- "description": "Universal AI plugin with 125 specialized skills for Antigravity, Claude, and Cursor.",
3
+ "version": "3.9.0",
4
+ "description": "Universal AI plugin with 131 specialized skills for Antigravity, Claude, and Cursor.",
5
5
  "author": "Roedy Rustam",
6
6
  "license": "MIT",
7
7
  "repository": "https://github.com/roedyrustam/vibes-plug.git",
@@ -22,4 +22,5 @@
22
22
  "skillsDir": "skills/"
23
23
  }
24
24
  }
25
- }
25
+ }
26
+
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * scripts/check-anti-slop.mjs
4
+ * Automated Anti-AI Slop Validator for vibes-plug & user codebases.
5
+ */
6
+
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+
10
+ const SLOP_PATTERNS = [
11
+ { name: 'Lazy Truncation Placeholder', regex: /\/\/\s*\.\.\.\s*(rest|code|implement|logic)/i },
12
+ { name: 'Unfinished TODO Stub', regex: /\/\/\s*TODO:\s*(implement|add logic|fill in|later)/i },
13
+ { name: 'Mock Data in Production', regex: /\/\/\s*mock data for now/i },
14
+ { name: 'Syntax Narration Comment', regex: /\/\/\s*(increment\s+\w+|return\s+(the\s+)?\w+|import\s+\w+\s+from)/i },
15
+ ];
16
+
17
+ const IGNORE_DIRS = ['node_modules', '.git', '.next', 'dist', 'build', 'artifacts', '.gemini'];
18
+
19
+ let slopCount = 0;
20
+
21
+ function scanDir(dir) {
22
+ if (!fs.existsSync(dir)) return;
23
+ const files = fs.readdirSync(dir);
24
+ for (const file of files) {
25
+ if (IGNORE_DIRS.includes(file)) continue;
26
+ const fullPath = path.join(dir, file);
27
+ const stat = fs.statSync(fullPath);
28
+ if (stat.isDirectory()) {
29
+ scanDir(fullPath);
30
+ } else if (/\.(ts|tsx|js|jsx|mjs|py|go|rs)$/.test(file) && !file.includes('check-anti-slop')) {
31
+ const content = fs.readFileSync(fullPath, 'utf8');
32
+ const lines = content.split('\n');
33
+ lines.forEach((line, index) => {
34
+ SLOP_PATTERNS.forEach(({ name, regex }) => {
35
+ if (regex.test(line)) {
36
+ console.error(`🚨 [AI SLOP DETECTED] ${fullPath}:${index + 1} (${name}) -> ${line.trim()}`);
37
+ slopCount++;
38
+ }
39
+ });
40
+ });
41
+ }
42
+ }
43
+ }
44
+
45
+ console.log('🔍 Scanning repository for AI slop and placeholder code...');
46
+ scanDir(process.cwd());
47
+
48
+ if (slopCount > 0) {
49
+ console.error(`\n❌ Failed: ${slopCount} AI slop violations detected. Purge placeholders before commit.`);
50
+ process.exit(1);
51
+ } else {
52
+ console.log('✅ Anti-Slop Audit Passed: Clean code, zero AI slop detected.');
53
+ }
@@ -195,7 +195,9 @@ Examples:
195
195
  console.log('');
196
196
  }
197
197
 
198
- console.log('✨ Installation complete!\n');
198
+ console.log('✨ Installation complete!');
199
+ console.log('⚡ Vibes-Plug is now configured as the PRIMARY TRIGGER (Pemicu Utama).');
200
+ console.log('🔗 All 127+ skills are automatically synchronized across Antigravity, Claude, and Cursor!\n');
199
201
  }
200
202
 
201
203
  main();
@@ -62,7 +62,7 @@ function updateSkills() {
62
62
  content = content.replace(/Tailwind CSS(?: |\\u0026nbsp;| )v3/g, (match) => match.replace('v3', 'v4'));
63
63
  content = content.replace(/Tailwind(?: |\\u0026nbsp;| )v3/g, (match) => match.replace('v3', 'v4'));
64
64
  content = content.replace(/TanStack Query(?: |\\u0026nbsp;| )v4/g, (match) => match.replace('v4', 'v5'));
65
- content = content.replace(/Bun(?: |\\u0026nbsp;| )v1\.0/g, (match) => match.replace('v1.0', 'v1.1+'));
65
+ content = content.replace(/Bun(?: |\\u0026nbsp;| )v1\.0/g, (match) => match.replace('v1.0', 'v1.2+'));
66
66
 
67
67
  if (content !== originalContent) {
68
68
  fs.writeFileSync(filePath, content, 'utf-8');
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * scripts/update_skills.mjs
4
+ * Batch update skill files: fix encoding, standardize headers, bump tech versions.
5
+ */
6
+
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+ import { fileURLToPath } from 'url';
10
+
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+ const skillsDir = path.join(__dirname, '../skills');
14
+
15
+ function walk(dir) {
16
+ let results = [];
17
+ const list = fs.readdirSync(dir);
18
+ list.forEach(file => {
19
+ const fullPath = path.join(dir, file);
20
+ const stat = fs.statSync(fullPath);
21
+ if (stat && stat.isDirectory()) {
22
+ results = results.concat(walk(fullPath));
23
+ } else {
24
+ results.push(fullPath);
25
+ }
26
+ });
27
+ return results;
28
+ }
29
+
30
+ function updateSkills() {
31
+ const files = walk(skillsDir);
32
+
33
+ files.forEach(filePath => {
34
+ const ext = path.extname(filePath);
35
+ if (ext === '.md' || ext === '.csv' || ext === '.py') {
36
+ let content = fs.readFileSync(filePath, 'utf-8');
37
+ const originalContent = content;
38
+
39
+ if (ext === '.md') {
40
+ // Only clean frontmatter if it exists at the top of the file
41
+ if (content.startsWith('---')) {
42
+ const parts = content.split('---');
43
+ if (parts.length >= 3) {
44
+ let frontmatter = parts[1];
45
+ frontmatter = frontmatter.replace(/github:.*?\n/g, '');
46
+ frontmatter = frontmatter.replace(/risk:.*?\n/g, '');
47
+ frontmatter = frontmatter.replace(/source:.*?\n/g, '');
48
+ frontmatter = frontmatter.replace(/date_added:.*?\n/g, '');
49
+ parts[1] = frontmatter;
50
+ content = parts.join('---');
51
+ }
52
+ }
53
+
54
+ // Standardize headers
55
+ content = content.replace(/^## When to Use$/gm, '## Kondisi Pemicu / Trigger Conditions');
56
+
57
+ // Fix encoding issues from ui_ux_expert
58
+ content = content.replace(/🎯/g, '🎯');
59
+ content = content.replace(/🧠/g, '🧠');
60
+ content = content.replace(/🎨/g, '🎨');
61
+ content = content.replace(/ðŸ"±/g, '📱');
62
+ content = content.replace(/🧩/g, '🧩');
63
+ content = content.replace(/âš™ï¸ /g, '⚙️');
64
+ content = content.replace(/🚀/g, '🚀');
65
+ content = content.replace(/â Œ/g, '❌');
66
+ }
67
+
68
+ // Update technologies to keep them current
69
+ content = content.replace(/React(?: |\\u0026nbsp;| )18/g, m => m.replace('18', '19'));
70
+ content = content.replace(/Next\.js(?: |\\u0026nbsp;| )14/g, m => m.replace('14', '15'));
71
+ content = content.replace(/Tailwind CSS(?: |\\u0026nbsp;| )v3/g, m => m.replace('v3', 'v4'));
72
+ content = content.replace(/Tailwind(?: |\\u0026nbsp;| )v3/g, m => m.replace('v3', 'v4'));
73
+ content = content.replace(/TanStack Query(?: |\\u0026nbsp;| )v4/g, m => m.replace('v4', 'v5'));
74
+ content = content.replace(/Bun(?: |\\u0026nbsp;| )v1\.0/g, m => m.replace('v1.0', 'v1.2+'));
75
+
76
+ if (content !== originalContent) {
77
+ fs.writeFileSync(filePath, content, 'utf-8');
78
+ console.log(`✅ Updated: ${path.relative(skillsDir, filePath)}`);
79
+ }
80
+ }
81
+ });
82
+
83
+ console.log('\n🎉 Skills update complete.');
84
+ }
85
+
86
+ updateSkills();
@@ -0,0 +1,111 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+
4
+ const SKILLS_DIR = path.join(process.cwd(), 'skills');
5
+
6
+ const DEPRECATED_REFS = [
7
+ 'project-context-mapper',
8
+ 'ui-components-expert',
9
+ 'database-migration-versioning-expert',
10
+ 'supabase-migration',
11
+ 'auto-doc-updater',
12
+ 'session-handoff-resume',
13
+ 'session-context-loader'
14
+ ];
15
+
16
+ async function validateSkills() {
17
+ console.log('🔍 Starting Vibes-Plug Ecosystem Validation...\n');
18
+
19
+ try {
20
+ const entries = await fs.readdir(SKILLS_DIR, { withFileTypes: true });
21
+ const skillDirs = entries.filter(e => e.isDirectory());
22
+
23
+ let totalSkills = 0;
24
+ let passedSkills = 0;
25
+ let failedSkills = 0;
26
+ const errors = [];
27
+
28
+ for (const dir of skillDirs) {
29
+ totalSkills++;
30
+ const skillName = dir.name;
31
+ const skillPath = path.join(SKILLS_DIR, skillName, 'SKILL.md');
32
+
33
+ try {
34
+ const content = await fs.readFile(skillPath, 'utf8');
35
+ const skillErrors = [];
36
+
37
+ // 1. Check Frontmatter existence (ignore BOM)
38
+ const frontmatterMatch = content.match(/---\r?\n([\s\S]*?)\r?\n---/);
39
+ if (!frontmatterMatch) {
40
+ skillErrors.push('Missing YAML frontmatter');
41
+ } else {
42
+ const fm = frontmatterMatch[1];
43
+ if (!fm.includes('name:')) skillErrors.push('Missing "name" in frontmatter');
44
+ if (!fm.includes('description:')) skillErrors.push('Missing "description" in frontmatter');
45
+
46
+ const versionMatch = fm.match(/version:\s*"([^"]+)"/);
47
+ if (!versionMatch) {
48
+ skillErrors.push('Missing "version" tag (Rule: All skills must be 3.0.0+)');
49
+ } else {
50
+ const version = versionMatch[1];
51
+ const major = parseInt(version.split('.')[0], 10);
52
+ if (isNaN(major) || major < 3) {
53
+ skillErrors.push(`Version outdated: ${version} (expected >= 3.0.0)`);
54
+ }
55
+ }
56
+ }
57
+
58
+ // 2. Check for deprecated references
59
+ for (const ref of DEPRECATED_REFS) {
60
+ if (content.includes(ref)) {
61
+ skillErrors.push(`Contains deprecated reference: ${ref}`);
62
+ }
63
+ }
64
+
65
+ // 3. Check for Bilingual structure
66
+ const lowerContent = content.toLowerCase();
67
+ const hasEnglish = lowerContent.includes('english') || lowerContent.includes('inggris');
68
+ const hasIndo = lowerContent.includes('bahasa indonesia') || lowerContent.includes('indonesia');
69
+
70
+ if (!hasEnglish || !hasIndo) {
71
+ skillErrors.push('Missing bilingual sections (English & Bahasa Indonesia)');
72
+ }
73
+
74
+ if (skillErrors.length > 0) {
75
+ failedSkills++;
76
+ errors.push(`❌ ${skillName}:\n - ${skillErrors.join('\n - ')}`);
77
+ } else {
78
+ passedSkills++;
79
+ }
80
+
81
+ } catch (err) {
82
+ failedSkills++;
83
+ errors.push(`❌ ${skillName}:\n - Missing SKILL.md file`);
84
+ }
85
+ }
86
+
87
+ console.log(`📊 Validation Summary:`);
88
+ console.log(`----------------------`);
89
+ console.log(`Total Skills : ${totalSkills}`);
90
+ console.log(`✅ Passed : ${passedSkills}`);
91
+ console.log(`❌ Failed : ${failedSkills}\n`);
92
+
93
+ if (errors.length > 0) {
94
+ console.log('🚨 Issues Found:');
95
+ // Just print first 5 errors to avoid terminal spam
96
+ errors.slice(0, 10).forEach(e => console.log(e));
97
+ if(errors.length > 10) console.log(`... and ${errors.length - 10} more skills failed.`);
98
+ console.log('\n❌ CI Pipeline Failed! Please fix the errors above.');
99
+ process.exit(1);
100
+ } else {
101
+ console.log(`🎉 All ${totalSkills} skills passed strict validation! Ecosystem is perfectly healthy.`);
102
+ process.exit(0);
103
+ }
104
+
105
+ } catch (error) {
106
+ console.error('Failed to read skills directory:', error);
107
+ process.exit(1);
108
+ }
109
+ }
110
+
111
+ validateSkills();
@@ -1,116 +1,117 @@
1
- ---
2
- name: accessibility-testing-expert
3
- description: "Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web."
4
- author: "Roedy Rustam"
5
- ---
6
-
7
- # Accessibility Testing Expert (2026 Edition)
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Orchestration & Integration
17
- - **`global-a11y-i18n-expert`**: Core WCAG rules, ARIA patterns, and internationalization standards.
18
- - **`e2e-testing-expert`**: Integrating automated accessibility assertions into Playwright/Vitest CI suites.
19
- - **`ui-components-expert`**: Accessible component primitives (Radix UI, Base UI, ARIA patterns).
20
- - **`visual-qa-vision-agent`**: Visual audits for focus rings, contrast ratios, and layout flow.
21
-
22
- ### Description
23
- Production guide for automated, semi-automated, and manual web accessibility (a11y) testing. Covers WCAG 2.2 Level AA/AAA compliance validation using `@axe-core/playwright`, Pa11y, Google Lighthouse CI, screen reader verification (NVDA, VoiceOver), keyboard navigation audits, focus management, and color contrast compliance.
24
-
25
- ### Trigger Conditions
26
- - Running automated accessibility test suites in CI/CD pipelines.
27
- - Auditing web apps for WCAG 2.1 / 2.2 Level AA compliance and legal accessibility requirements (ADA, EAA).
28
- - Debugging keyboard traps, missing ARIA labels, or broken screen reader navigation.
29
- - Writing test cases for focus trapping in modals and custom dialogs.
30
-
31
- ---
32
-
33
- ### Core Testing Workflows
34
-
35
- #### 1. Automated A11y Testing with Playwright & Axe-Core
36
- ```typescript
37
- import { test, expect } from '@playwright/test';
38
- import AxeBuilder from '@axe-core/playwright';
39
-
40
- test.describe('Accessibility Automated Audits', () => {
41
- test('homepage should have zero critical or serious a11y violations', async ({ page }) => {
42
- await page.goto('/');
43
-
44
- const accessibilityScanResults = await new AxeBuilder({ page })
45
- .withTags(['wcag2a', 'wcag2aa', 'wcag22aa'])
46
- .disableRules(['color-contrast']) // If tested separately
47
- .analyze();
48
-
49
- expect(accessibilityScanResults.violations).toEqual([]);
50
- });
51
-
52
- test('modal dialog should trap focus and pass a11y audit', async ({ page }) => {
53
- await page.goto('/dashboard');
54
- await page.click('button#open-modal');
55
-
56
- // Verify modal is open and focused
57
- const modal = page.locator('[role="dialog"]');
58
- await expect(modal).toBeVisible();
59
-
60
- const modalAudit = await new AxeBuilder({ page })
61
- .include('[role="dialog"]')
62
- .analyze();
63
-
64
- expect(modalAudit.violations).toEqual([]);
65
-
66
- // Verify keyboard escape closes modal
67
- await page.keyboard.press('Escape');
68
- await expect(modal).toBeHidden();
69
- });
70
- });
71
- ```
72
-
73
- #### 2. Automated Pa11y CI Configuration (`.pa11yci.json`)
74
- ```json
75
- {
76
- "defaults": {
77
- "standard": "WCAG2AA",
78
- "timeout": 15000,
79
- "runners": ["axe", "htmlcs"],
80
- "ignore": [
81
- "WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Abs"
82
- ]
83
- },
84
- "urls": [
85
- "http://localhost:3000/",
86
- "http://localhost:3000/login",
87
- "http://localhost:3000/pricing",
88
- "http://localhost:3000/docs"
89
- ]
90
- }
91
- ```
92
-
93
- #### 3. Keyboard & Screen Reader Verification Checklist
94
- - **Tab Navigation**: All interactive elements (`<button>`, `<a>`, `<input>`) can receive focus in logical reading order.
95
- - **Focus Indicators**: Visible, high-contrast focus rings (`outline: 2px solid var(--focus-color)` with `outline-offset`).
96
- - **No Keyboard Traps**: Focus can enter and leave components using only `Tab`, `Shift+Tab`, and `Esc`.
97
- - **Landmarks**: Proper semantic tags (`<header>`, `<nav>`, `<main>`, `<footer>`, `<aside>`).
98
- - **ARIA Attributes**: `aria-expanded`, `aria-controls`, `aria-haspopup`, and `aria-live` updated dynamically.
99
-
100
- ---
101
-
102
- <a name="bahasa-indonesia"></a>
103
- ## Bahasa Indonesia
104
-
105
- ### Integrasi Orkestrasi
106
- - **`global-a11y-i18n-expert`**: Pedoman standar WCAG, pola ARIA, dan aksesibilitas internasional.
107
- - **`e2e-testing-expert`**: Integrasi pengujian aksesibilitas otomatis ke pipeline Playwright CI.
108
- - **`ui-components-expert`**: Validasi aksesibilitas komponen headless dan desain UI.
109
-
110
- ### Deskripsi
111
- Panduan produksi untuk pengujian aksesibilitas web (a11y) otomatis dan manual. Memastikan kepatuhan terhadap standar WCAG 2.2 Level AA/AAA menggunakan `@axe-core/playwright`, Pa11y, Lighthouse CI, pengujian screen reader, navigasi keyboard, dan kontras warna.
112
-
113
- ### Kondisi Pemicu
114
- - Menjalankan audit aksesibilitas otomatis di pipeline CI/CD.
115
- - Memverifikasi kepatuhan hukum aksesibilitas (WCAG 2.2, ADA, EAA).
116
- - Menguji alur keyboard dan pembaca layar (screen reader) pada komponen kompleks seperti modal dan dropdown.
1
+ ---
2
+ name: accessibility-testing-expert
3
+ description: "Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web."
4
+ author: "Roedy Rustam"
5
+ version: "3.0.0"
6
+ ---
7
+
8
+ # Accessibility Testing Expert (2026 Edition)
9
+
10
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
11
+
12
+ ---
13
+
14
+ <a name="english"></a>
15
+ ## English
16
+
17
+ ### Orchestration & Integration
18
+ - **`global-a11y-i18n-expert`**: Core WCAG rules, ARIA patterns, and internationalization standards.
19
+ - **`e2e-testing-expert`**: Integrating automated accessibility assertions into Playwright/Vitest CI suites.
20
+ - **`design-system-architect, senior-frontend`**: Accessible component primitives (Radix UI, Base UI, ARIA patterns).
21
+ - **`visual-qa-vision-agent`**: Visual audits for focus rings, contrast ratios, and layout flow.
22
+
23
+ ### Description
24
+ Production guide for automated, semi-automated, and manual web accessibility (a11y) testing. Covers WCAG 2.2 Level AA/AAA compliance validation using `@axe-core/playwright`, Pa11y, Google Lighthouse CI, screen reader verification (NVDA, VoiceOver), keyboard navigation audits, focus management, and color contrast compliance.
25
+
26
+ ### Trigger Conditions
27
+ - Running automated accessibility test suites in CI/CD pipelines.
28
+ - Auditing web apps for WCAG 2.1 / 2.2 Level AA compliance and legal accessibility requirements (ADA, EAA).
29
+ - Debugging keyboard traps, missing ARIA labels, or broken screen reader navigation.
30
+ - Writing test cases for focus trapping in modals and custom dialogs.
31
+
32
+ ---
33
+
34
+ ### Core Testing Workflows
35
+
36
+ #### 1. Automated A11y Testing with Playwright & Axe-Core
37
+ ```typescript
38
+ import { test, expect } from '@playwright/test';
39
+ import AxeBuilder from '@axe-core/playwright';
40
+
41
+ test.describe('Accessibility Automated Audits', () => {
42
+ test('homepage should have zero critical or serious a11y violations', async ({ page }) => {
43
+ await page.goto('/');
44
+
45
+ const accessibilityScanResults = await new AxeBuilder({ page })
46
+ .withTags(['wcag2a', 'wcag2aa', 'wcag22aa'])
47
+ .disableRules(['color-contrast']) // If tested separately
48
+ .analyze();
49
+
50
+ expect(accessibilityScanResults.violations).toEqual([]);
51
+ });
52
+
53
+ test('modal dialog should trap focus and pass a11y audit', async ({ page }) => {
54
+ await page.goto('/dashboard');
55
+ await page.click('button#open-modal');
56
+
57
+ // Verify modal is open and focused
58
+ const modal = page.locator('[role="dialog"]');
59
+ await expect(modal).toBeVisible();
60
+
61
+ const modalAudit = await new AxeBuilder({ page })
62
+ .include('[role="dialog"]')
63
+ .analyze();
64
+
65
+ expect(modalAudit.violations).toEqual([]);
66
+
67
+ // Verify keyboard escape closes modal
68
+ await page.keyboard.press('Escape');
69
+ await expect(modal).toBeHidden();
70
+ });
71
+ });
72
+ ```
73
+
74
+ #### 2. Automated Pa11y CI Configuration (`.pa11yci.json`)
75
+ ```json
76
+ {
77
+ "defaults": {
78
+ "standard": "WCAG2AA",
79
+ "timeout": 15000,
80
+ "runners": ["axe", "htmlcs"],
81
+ "ignore": [
82
+ "WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Abs"
83
+ ]
84
+ },
85
+ "urls": [
86
+ "http://localhost:3000/",
87
+ "http://localhost:3000/login",
88
+ "http://localhost:3000/pricing",
89
+ "http://localhost:3000/docs"
90
+ ]
91
+ }
92
+ ```
93
+
94
+ #### 3. Keyboard & Screen Reader Verification Checklist
95
+ - **Tab Navigation**: All interactive elements (`<button>`, `<a>`, `<input>`) can receive focus in logical reading order.
96
+ - **Focus Indicators**: Visible, high-contrast focus rings (`outline: 2px solid var(--focus-color)` with `outline-offset`).
97
+ - **No Keyboard Traps**: Focus can enter and leave components using only `Tab`, `Shift+Tab`, and `Esc`.
98
+ - **Landmarks**: Proper semantic tags (`<header>`, `<nav>`, `<main>`, `<footer>`, `<aside>`).
99
+ - **ARIA Attributes**: `aria-expanded`, `aria-controls`, `aria-haspopup`, and `aria-live` updated dynamically.
100
+
101
+ ---
102
+
103
+ <a name="bahasa-indonesia"></a>
104
+ ## Bahasa Indonesia
105
+
106
+ ### Integrasi Orkestrasi
107
+ - **`global-a11y-i18n-expert`**: Pedoman standar WCAG, pola ARIA, dan aksesibilitas internasional.
108
+ - **`e2e-testing-expert`**: Integrasi pengujian aksesibilitas otomatis ke pipeline Playwright CI.
109
+ - **`design-system-architect, senior-frontend`**: Validasi aksesibilitas komponen headless dan desain UI.
110
+
111
+ ### Deskripsi
112
+ Panduan produksi untuk pengujian aksesibilitas web (a11y) otomatis dan manual. Memastikan kepatuhan terhadap standar WCAG 2.2 Level AA/AAA menggunakan `@axe-core/playwright`, Pa11y, Lighthouse CI, pengujian screen reader, navigasi keyboard, dan kontras warna.
113
+
114
+ ### Kondisi Pemicu
115
+ - Menjalankan audit aksesibilitas otomatis di pipeline CI/CD.
116
+ - Memverifikasi kepatuhan hukum aksesibilitas (WCAG 2.2, ADA, EAA).
117
+ - Menguji alur keyboard dan pembaca layar (screen reader) pada komponen kompleks seperti modal dan dropdown.
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: affective-computing-emotion-ai
3
+ description: "Expert guide for Affective Computing, emotional AI, and real-time sentiment analysis through native multimodal tokens (voice intonation and facial micro-expressions) / Panduan ahli komputasi afektif, AI emosional, dan analisis sentimen real-time melalui token multimodal native."
4
+ author: "vibes-plug-swarm"
5
+ version: "3.8.0"
6
+ ---
7
+
8
+ # Affective Computing & Emotion AI Expert (2026 Edition)
9
+
10
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
11
+
12
+ ---
13
+
14
+ <a name="english"></a>
15
+ ## English
16
+
17
+ ### Orchestration & Integration
18
+ Connects and orchestrates with `voice-ai-realtime-agent`, `ephemeral-generative-ui-architect`, `ai-llm-integration-expert`, and `ui-ux-pro-max`.
19
+
20
+ ### Description
21
+ Standard AI agents process semantics (text meaning) but often ignore pragmatics (tone, tension, emotion). In the era of Native Any-to-Any Multimodal models (like Gemini 4 Pro), agents directly process raw audio and visual tokens. The **Affective Computing Expert** designs systems that interpret vocal intonation, breathing rates, speech pacing, and facial micro-expressions in real-time. It maps this data to emotional vectors (Valence-Arousal models) and dynamically alters the agent's personality, UI presentation, and response cadence.
22
+
23
+ ### Trigger Conditions
24
+ - Designing empathetic customer service or mental health triage bots.
25
+ - Building intelligent tutoring systems that detect user frustration and dynamically lower the difficulty or offer encouragement.
26
+ - Developing interactive gaming or narrative simulations where characters react to the player's actual tone of voice.
27
+ - Adapting the UI in real-time (e.g., calming color palettes, slower animations) when high user cognitive load or stress is detected.
28
+
29
+ ### Core Architecture (2026 Standard)
30
+ 1. **Multimodal Native Empathy**: Bypassing text transcripts entirely. The LLM's system prompt instructs it to evaluate the *sound* and *visuals* of the input token stream.
31
+ 2. **Dynamic UI Adaptation (Affective UI)**: Upon detecting stress (high arousal, negative valence), the UI automatically shifts to reduced-clutter mode, uses softer colors, and slows down generative UI animations.
32
+ 3. **Persona Shifting**: The agent fluidly shifts its persona parameters (e.g., `formality`, `empathy`, `conciseness`) per interaction turn based on the user's emotional state vector.
33
+
34
+ ### Implementation Recipe (TypeScript)
35
+ ```typescript
36
+ import { MultimodalLiveClient } from 'gemini-live-sdk';
37
+ import { updateGenerativeUI } from '@/lib/ui-orchestrator';
38
+
39
+ const client = new MultimodalLiveClient({
40
+ model: 'gemini-4-pro',
41
+ systemInstruction: 'You are an empathetic companion. Analyze the user\'s vocal tension and facial expressions natively. Prefix your responses with a JSON affect vector: {"valence": -1 to 1, "arousal": -1 to 1}.',
42
+ });
43
+
44
+ client.on('turnComplete', async (response) => {
45
+ const { affectVector, textAudio } = parseAffectiveResponse(response);
46
+
47
+ // Dynamic UI alteration based on emotional state
48
+ if (affectVector.arousal > 0.7 && affectVector.valence < -0.5) {
49
+ // User is highly stressed or angry
50
+ updateGenerativeUI({
51
+ theme: 'calm-minimalist',
52
+ animationSpeed: 'slow',
53
+ cognitiveLoad: 'low',
54
+ widgetDisplay: 'essential-only'
55
+ });
56
+ }
57
+
58
+ // Play agent's empathetic audio response
59
+ await playAudioStream(textAudio);
60
+ });
61
+ ```
62
+
63
+ ---
64
+
65
+ <a name="bahasa-indonesia"></a>
66
+ ## Bahasa Indonesia
67
+
68
+ ### Integrasi Orkestrasi
69
+ Terhubung dan mengorkestrasi bersama `voice-ai-realtime-agent`, `ephemeral-generative-ui-architect`, `ai-llm-integration-expert`, dan `ui-ux-pro-max`.
70
+
71
+ ### Deskripsi
72
+ Agen AI standar memproses semantik (makna teks) namun sering mengabaikan pragmatik (nada, ketegangan, emosi). Di era model Multimodal Any-to-Any (seperti Gemini 4 Pro), agen langsung memproses token audio dan visual mentah tanpa terjemahan teks. Skill **Komputasi Afektif** ini memandu perancangan sistem yang menafsirkan intonasi vokal, tempo bicara, dan mikro-ekspresi wajah secara *real-time*. Sistem kemudian memetakan data tersebut ke vektor emosional (model *Valence-Arousal*) dan secara dinamis mengubah kepribadian agen, antarmuka pengguna (UI), dan tempo respons.
73
+
74
+ ### Kondisi Pemicu
75
+ - Merancang layanan pelanggan empatik atau bot pendamping psikologis.
76
+ - Membangun sistem tutor cerdas (EdTech) yang mendeteksi frustrasi pengguna, lalu secara dinamis menurunkan tingkat kesulitan atau memberikan dorongan motivasi.
77
+ - Mengembangkan game interaktif atau simulasi naratif di mana karakter NPC bereaksi terhadap nada suara asli pemain.
78
+ - Mengadaptasi UI secara real-time (misal: beralih ke palet warna yang menenangkan, animasi yang lebih lambat) saat beban kognitif atau tingkat stres pengguna terdeteksi tinggi.
79
+
80
+ ### Arsitektur Inti (Standar 2026)
81
+ 1. **Empati Multimodal Native**: Menghindari penggunaan transkrip teks (STT) sebagai satu-satunya input. Instruksi sistem (System Prompt) LLM difokuskan untuk mengevaluasi *suara* dan *visual* dari aliran token.
82
+ 2. **Adaptasi UI Dinamis (Affective UI)**: Saat mendeteksi stres (arousal tinggi, valence negatif), UI secara otomatis beralih ke mode bebas gangguan, menggunakan warna pastel/lembut, dan memperlambat kecepatan render UI generatif.
83
+ 3. **Pergeseran Persona**: Agen dengan luwes menggeser parameter kepribadiannya (misal: `formalitas`, `empati`, `keringkasan`) di setiap giliran berdasarkan vektor keadaan emosi pengguna.