@birdapi/velinstyle 1.2.2 → 1.3.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 (109) hide show
  1. package/README.de.md +18 -4
  2. package/README.md +42 -7
  3. package/cli/cli-manifest.json +441 -174
  4. package/cli/docgen/extract-cli.js +2 -1
  5. package/cli/docs-generate.js +9 -0
  6. package/cli/experience.js +173 -0
  7. package/cli/index.js +1294 -417
  8. package/cli/motion.js +738 -0
  9. package/cli/production/extract.js +46 -6
  10. package/cli/production/report.js +104 -14
  11. package/cli/production/run.js +44 -1
  12. package/cli/security.js +190 -0
  13. package/cli/skills.js +53 -10
  14. package/cli/transparency.js +140 -41
  15. package/cli/workflow.js +32 -17
  16. package/components/velin-theme-toggle.js +15 -1
  17. package/core/a11y/component-contracts.json +391 -274
  18. package/core/attributes/registry.js +1 -1
  19. package/core/motion/analyze.js +38 -0
  20. package/core/motion/blueprint.js +51 -0
  21. package/core/motion/composer.js +114 -0
  22. package/core/motion/data/registry.json +352 -0
  23. package/core/motion/effects.js +17 -1
  24. package/core/motion/index.js +112 -9
  25. package/core/motion/optimize.js +44 -0
  26. package/core/motion/policy.js +77 -0
  27. package/core/motion/registry.js +131 -0
  28. package/core/motion/review.js +59 -0
  29. package/core/motion/scan.js +150 -0
  30. package/core/motion/timeline.js +68 -0
  31. package/core/motion/transitions.js +49 -0
  32. package/core/motion/triggers.js +168 -0
  33. package/core/security/checks/fs.js +92 -0
  34. package/core/security/detect.js +35 -0
  35. package/core/security/engine.js +116 -0
  36. package/core/security/index.js +18 -0
  37. package/core/security/registry.js +85 -0
  38. package/core/security/report/report.js +113 -0
  39. package/core/security/rules/ci/index.js +146 -0
  40. package/core/security/rules/consumer/index.js +174 -0
  41. package/core/security/rules/deps/index.js +182 -0
  42. package/core/security/rules/index.js +24 -0
  43. package/core/security/rules/publish/index.js +230 -0
  44. package/core/security/rules/repo/index.js +143 -0
  45. package/core/security/rules/secrets/index.js +133 -0
  46. package/core/security/score/dependency-health.js +53 -0
  47. package/core/security/score/release-health.js +66 -0
  48. package/core/security/score/score.js +102 -0
  49. package/core/security/timeline/timeline.js +76 -0
  50. package/dist/chunks/attributes-HK7VIOLA.js +1080 -0
  51. package/dist/chunks/attributes-VRHHVNDO.js +1080 -0
  52. package/dist/chunks/chunk-MYKUI364.js +116 -0
  53. package/dist/chunks/chunk-NEVBPD5T.js +116 -0
  54. package/dist/chunks/runtime-entry.js +1 -1
  55. package/dist/chunks/velin-theme-toggle-J2NHC7IM.js +304 -0
  56. package/dist/llms.txt +2 -2
  57. package/dist/search-index.json +166 -2
  58. package/dist/velin-agent.json +156 -32
  59. package/dist/velinstyle-components.iife.js +862 -17
  60. package/dist/velinstyle-components.js +862 -17
  61. package/dist/velinstyle-components.min.js +126 -126
  62. package/dist/velinstyle.css +42 -7
  63. package/dist/velinstyle.min.css +1 -1
  64. package/package.json +158 -143
  65. package/packages/velinstyle-cli-core/package.json +11 -0
  66. package/packages/velinstyle-cli-core/src/config.js +84 -0
  67. package/packages/velinstyle-cli-core/src/contract.js +56 -0
  68. package/packages/velinstyle-cli-core/src/event-bus.js +50 -0
  69. package/packages/velinstyle-cli-core/src/index.js +18 -0
  70. package/packages/velinstyle-cli-core/src/lifecycle.js +33 -0
  71. package/packages/velinstyle-cli-core/src/runner.js +129 -0
  72. package/packages/velinstyle-cli-registry/data/commands.json +1216 -0
  73. package/packages/velinstyle-cli-registry/data/layouts.json +33 -0
  74. package/packages/velinstyle-cli-registry/data/widgets.json +35 -0
  75. package/packages/velinstyle-cli-registry/package.json +13 -0
  76. package/packages/velinstyle-cli-registry/src/index.js +88 -0
  77. package/packages/velinstyle-cli-renderer/package.json +8 -0
  78. package/packages/velinstyle-cli-renderer/src/index.js +286 -0
  79. package/packages/velinstyle-cli-theme/package.json +8 -0
  80. package/packages/velinstyle-cli-theme/src/index.js +84 -0
  81. package/packages/velinstyle-cli-ui/package.json +8 -0
  82. package/packages/velinstyle-cli-ui/src/index.js +34 -0
  83. package/packages/velinstyle-motion/README.md +81 -0
  84. package/packages/velinstyle-motion/package.json +37 -0
  85. package/packages/velinstyle-motion/src/ai/mini-prompt.js +119 -0
  86. package/packages/velinstyle-motion/src/ai/provider.js +59 -0
  87. package/packages/velinstyle-motion/src/ai/providers/pixverse-setup.js +402 -0
  88. package/packages/velinstyle-motion/src/ai/providers/pixverse.js +245 -0
  89. package/packages/velinstyle-motion/src/config.js +257 -0
  90. package/packages/velinstyle-motion/src/export/html-clip.js +141 -0
  91. package/packages/velinstyle-motion/src/index.js +304 -0
  92. package/packages/velinstyle-motion/src/jobs/cache.js +30 -0
  93. package/packages/velinstyle-motion/src/jobs/queue.js +69 -0
  94. package/packages/velinstyle-motion/src/jobs/usage.js +53 -0
  95. package/packages/velinstyle-motion/src/local/effects.js +139 -0
  96. package/packages/velinstyle-motion/src/local/engine.js +96 -0
  97. package/packages/velinstyle-motion/src/providers-catalog.js +44 -0
  98. package/packages/velinstyle-motion/src/registry/presets.js +25 -0
  99. package/packages/velinstyle-motion/src/registry/presets.json +85 -0
  100. package/packages/velinstyle-motion/src/ux/cost-gate.js +37 -0
  101. package/packages/velinstyle-motion/src/ux/pixverse-gate.js +153 -0
  102. package/packages/velinstyle-motion/src/ux/wizard.js +171 -0
  103. package/packages/velinstyle-motion/src/validate-image.js +91 -0
  104. package/packages/velinstyle-skills/catalog.json +1 -1
  105. package/packages/velinstyle-skills/registry.json +1 -142
  106. package/packages/velinstyle-skills/skills/velin-motion-reduced-safe/SKILL.md +1 -1
  107. package/packages/velinstyle-skills/skills/velin-motion-reveal-feedback/SKILL.md +1 -1
  108. package/src/tokens/motion.css +7 -0
  109. package/src/utilities/scroll-animation.css +66 -0
@@ -1,142 +1 @@
1
- {
2
- "version": "1.0.0",
3
- "adapter": "velinstyle",
4
- "skills": [
5
- { "id": "velin-design-hero-compose", "name": "Hero Compose", "category": "design", "priority": "core", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["build", "review"], "estimatedComplexity": "medium", "estimatedTokens": 1200, "dependsOn": ["velin-dev-plan-first"], "requiresCli": ["plan", "scaffold", "review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode", "claude-code", "windsurf"], "inputs": ["prompt", "html", "screenshot"], "outputs": ["html", "review-json"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Composes first viewport hero following VelinStyle hierarchy and CTA constraints.", "prosePath": "skills/velin-design-hero-compose/SKILL.md" },
6
- { "id": "velin-design-section-rhythm", "name": "Section Rhythm", "category": "design", "priority": "recommended", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["build"], "estimatedComplexity": "medium", "estimatedTokens": 900, "dependsOn": ["velin-design-hero-compose"], "requiresCli": ["scaffold"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["prompt", "html"], "outputs": ["html", "checklist"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Aligns spacing rhythm and section purpose to design rules.", "prosePath": "skills/velin-design-section-rhythm/SKILL.md" },
7
- { "id": "velin-design-surface-roles", "name": "Surface Roles", "category": "design", "priority": "recommended", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["build", "theme"], "estimatedComplexity": "low", "estimatedTokens": 700, "dependsOn": [], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "tokens"], "outputs": ["html", "report"], "onlyIf": ["project.hasTokens"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Maps sections to base/raised/overlay surface roles.", "prosePath": "skills/velin-design-surface-roles/SKILL.md" },
8
- { "id": "velin-dev-plan-first", "name": "Plan First", "category": "development", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["ai-orchestration", "build"], "estimatedComplexity": "low", "estimatedTokens": 500, "dependsOn": [], "requiresCli": ["plan"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["prompt"], "outputs": ["plan-json"], "onlyIf": [], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Creates a plan JSON before implementation to reduce hallucinations.", "prosePath": "skills/velin-dev-plan-first/SKILL.md" },
9
- { "id": "velin-dev-page-scaffold", "name": "Page Scaffold", "category": "development", "priority": "core", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["build"], "estimatedComplexity": "medium", "estimatedTokens": 1000, "dependsOn": ["velin-dev-plan-first"], "requiresCli": ["scaffold", "review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["prompt", "plan-json"], "outputs": ["html", "review-json"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Renders plan-based HTML and runs review gates.", "prosePath": "skills/velin-dev-page-scaffold/SKILL.md" },
10
- { "id": "velin-dev-component-wire", "name": "Component Wire", "category": "development", "priority": "recommended", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["build"], "estimatedComplexity": "medium", "estimatedTokens": 800, "dependsOn": ["velin-components-select-compose"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["html", "docs"], "outputs": ["html", "diff"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Wires selected components with predictable APIs and semantics.", "prosePath": "skills/velin-dev-component-wire/SKILL.md" },
11
- { "id": "velin-components-select-compose", "name": "Select Components", "category": "components", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["build"], "estimatedComplexity": "low", "estimatedTokens": 650, "dependsOn": [], "requiresCli": ["blueprint"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "windsurf"], "inputs": ["prompt", "docs"], "outputs": ["html", "checklist"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Chooses component set that matches page intent and constraints.", "prosePath": "skills/velin-components-select-compose/SKILL.md" },
12
- { "id": "velin-components-api-contract", "name": "API Contract", "category": "components", "priority": "recommended", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["documentation", "review"], "estimatedComplexity": "medium", "estimatedTokens": 900, "dependsOn": ["velin-components-select-compose"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "docs"], "outputs": ["markdown", "report"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Validates component contracts and event/API usage.", "prosePath": "skills/velin-components-api-contract/SKILL.md" },
13
- { "id": "velin-components-recipe", "name": "Component Recipe", "category": "components", "priority": "recommended", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["build", "documentation"], "estimatedComplexity": "low", "estimatedTokens": 700, "dependsOn": ["velin-components-select-compose"], "requiresCli": ["scaffold"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["prompt", "html"], "outputs": ["html", "markdown"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Builds reusable component recipes for recurring UI blocks.", "prosePath": "skills/velin-components-recipe/SKILL.md" },
14
- { "id": "velin-components-accessibility-map", "name": "Component Accessibility Map", "category": "components", "priority": "advanced", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["accessibility", "documentation"], "estimatedComplexity": "medium", "estimatedTokens": 1100, "dependsOn": ["velin-components-api-contract"], "requiresCli": ["docs"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["docs", "html"], "outputs": ["markdown", "report"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Maps every chosen component to a11y expectations and test hooks.", "prosePath": "skills/velin-components-accessibility-map/SKILL.md" },
15
- { "id": "velin-utilities-layout-apply", "name": "Utilities Layout Apply", "category": "utilities", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["build"], "estimatedComplexity": "low", "estimatedTokens": 600, "dependsOn": [], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "windsurf"], "inputs": ["html", "css"], "outputs": ["html", "diff"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Applies utility classes for layout and responsive structure.", "prosePath": "skills/velin-utilities-layout-apply/SKILL.md" },
16
- { "id": "velin-utilities-prefix-fix", "name": "Utilities Prefix Fix", "category": "utilities", "priority": "recommended", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["migrate"], "estimatedComplexity": "low", "estimatedTokens": 500, "dependsOn": [], "requiresCli": ["prefix"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "css"], "outputs": ["diff", "report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Normalizes classes to velin-* naming.", "prosePath": "skills/velin-utilities-prefix-fix/SKILL.md" },
17
- { "id": "velin-utilities-token-map", "name": "Utilities Token Map", "category": "utilities", "priority": "advanced", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["theme", "documentation"], "estimatedComplexity": "medium", "estimatedTokens": 950, "dependsOn": ["velin-utilities-layout-apply"], "requiresCli": ["tokens"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["tokens", "css"], "outputs": ["markdown", "report"], "onlyIf": ["project.hasTokens"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Documents how utility usage maps to token taxonomy.", "prosePath": "skills/velin-utilities-token-map/SKILL.md" },
18
- { "id": "velin-themes-apply-token", "name": "Theme Apply Token", "category": "themes", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["theme", "build"], "estimatedComplexity": "low", "estimatedTokens": 600, "dependsOn": [], "requiresCli": ["themes", "tokens"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["tokens", "html"], "outputs": ["css", "html"], "onlyIf": ["project.hasTokens"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Applies built-in themes through token-safe patterns.", "prosePath": "skills/velin-themes-apply-token/SKILL.md" },
19
- { "id": "velin-themes-contrast-check", "name": "Theme Contrast Check", "category": "themes", "priority": "recommended", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["accessibility", "theme", "review"], "estimatedComplexity": "medium", "estimatedTokens": 1000, "dependsOn": ["velin-themes-apply-token"], "requiresCli": ["review", "scan"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "screenshot", "tokens"], "outputs": ["report", "review-json"], "onlyIf": ["project.hasTokens"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Checks token contrast and theme compatibility for WCAG goals.", "prosePath": "skills/velin-themes-contrast-check/SKILL.md" },
20
- { "id": "velin-motion-reduced-safe", "name": "Motion Reduced Safe", "category": "motion", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["motion", "accessibility"], "estimatedComplexity": "low", "estimatedTokens": 550, "dependsOn": [], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "windsurf"], "inputs": ["html", "css"], "outputs": ["html", "report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Applies motion while honoring prefers-reduced-motion.", "prosePath": "skills/velin-motion-reduced-safe/SKILL.md" },
21
- { "id": "velin-motion-reveal-feedback", "name": "Motion Reveal Feedback", "category": "motion", "priority": "recommended", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["motion", "build"], "estimatedComplexity": "medium", "estimatedTokens": 800, "dependsOn": ["velin-motion-reduced-safe"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["html", "css"], "outputs": ["html", "checklist"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Adds intentional reveal and feedback motion hierarchies.", "prosePath": "skills/velin-motion-reveal-feedback/SKILL.md" },
22
- { "id": "velin-a11y-page-checklist", "name": "A11y Page Checklist", "category": "accessibility", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["accessibility", "review"], "estimatedComplexity": "low", "estimatedTokens": 500, "dependsOn": [], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode", "claude-code"], "inputs": ["html", "docs"], "outputs": ["checklist", "report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Runs page-level accessibility checklist before release.", "prosePath": "skills/velin-a11y-page-checklist/SKILL.md" },
23
- { "id": "velin-a11y-scan-fix", "name": "A11y Scan Fix", "category": "accessibility", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["accessibility", "review"], "estimatedComplexity": "medium", "estimatedTokens": 900, "dependsOn": ["velin-a11y-page-checklist"], "requiresCli": ["scan"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html"], "outputs": ["report", "diff"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Uses scanner output to fix high-confidence accessibility issues.", "prosePath": "skills/velin-a11y-scan-fix/SKILL.md" },
24
- { "id": "velin-a11y-focus-keyboard", "name": "Focus Keyboard", "category": "accessibility", "priority": "recommended", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["accessibility", "test"], "estimatedComplexity": "medium", "estimatedTokens": 850, "dependsOn": ["velin-a11y-page-checklist"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["html", "screenshot"], "outputs": ["report", "checklist"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Validates keyboard navigation and visible focus behavior.", "prosePath": "skills/velin-a11y-focus-keyboard/SKILL.md" },
25
- { "id": "velin-testing-a11y-suite", "name": "Testing A11y Suite", "category": "testing", "priority": "recommended", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["test", "accessibility"], "estimatedComplexity": "medium", "estimatedTokens": 900, "dependsOn": ["velin-a11y-scan-fix"], "requiresCli": ["test:a11y"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html"], "outputs": ["report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Runs accessibility test suite and triages regressions.", "prosePath": "skills/velin-testing-a11y-suite/SKILL.md" },
26
- { "id": "velin-testing-visual-smoke", "name": "Testing Visual Smoke", "category": "testing", "priority": "advanced", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["test", "review"], "estimatedComplexity": "medium", "estimatedTokens": 900, "dependsOn": ["velin-dev-page-scaffold"], "requiresCli": ["test:e2e"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "windsurf"], "inputs": ["html", "screenshot"], "outputs": ["report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Runs visual smoke checks across key breakpoints.", "prosePath": "skills/velin-testing-visual-smoke/SKILL.md" },
27
- { "id": "velin-review-page-gate", "name": "Review Page Gate", "category": "review", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["review"], "estimatedComplexity": "low", "estimatedTokens": 550, "dependsOn": ["velin-a11y-page-checklist"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["html", "prompt"], "outputs": ["review-json"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Runs design/a11y/seo/perf/conversion gate and reports score.", "prosePath": "skills/velin-review-page-gate/SKILL.md" },
28
- { "id": "velin-review-conversion-hero", "name": "Review Conversion Hero", "category": "review", "priority": "recommended", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["review", "seo"], "estimatedComplexity": "medium", "estimatedTokens": 850, "dependsOn": ["velin-design-hero-compose"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "prompt"], "outputs": ["report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Reviews hero conversion quality and CTA hierarchy.", "prosePath": "skills/velin-review-conversion-hero/SKILL.md" },
29
- { "id": "velin-review-seo-meta", "name": "Review SEO Meta", "category": "review", "priority": "recommended", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["review", "seo"], "estimatedComplexity": "low", "estimatedTokens": 700, "dependsOn": [], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "docs"], "outputs": ["report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Checks SEO metadata and content semantics.", "prosePath": "skills/velin-review-seo-meta/SKILL.md" },
30
- { "id": "velin-docs-component-guide", "name": "Docs Component Guide", "category": "documentation", "priority": "recommended", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["documentation"], "estimatedComplexity": "medium", "estimatedTokens": 1000, "dependsOn": ["velin-components-api-contract"], "requiresCli": ["docs"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["markdown", "docs"], "outputs": ["markdown"], "onlyIf": ["project.hasDocumentation"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Writes component-focused documentation with quality checklists.", "prosePath": "skills/velin-docs-component-guide/SKILL.md" },
31
- { "id": "velin-docs-generate-api", "name": "Docs Generate API", "category": "documentation", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["documentation"], "estimatedComplexity": "low", "estimatedTokens": 550, "dependsOn": [], "requiresCli": ["docs"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["docs"], "outputs": ["markdown", "report"], "onlyIf": ["project.hasDocumentation"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Generates API Markdown and verifies documentation footprint.", "prosePath": "skills/velin-docs-generate-api/SKILL.md" },
32
- { "id": "velin-migration-prefix-classes", "name": "Migration Prefix Classes", "category": "migration", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["migrate"], "estimatedComplexity": "low", "estimatedTokens": 500, "dependsOn": [], "requiresCli": ["prefix"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html", "css"], "outputs": ["diff", "report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Migrates class names to velin-* convention.", "prosePath": "skills/velin-migration-prefix-classes/SKILL.md" },
33
- { "id": "velin-migration-legacy-wc", "name": "Migration Legacy WC", "category": "migration", "priority": "recommended", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["migrate", "review"], "estimatedComplexity": "medium", "estimatedTokens": 800, "dependsOn": ["velin-migration-prefix-classes"], "requiresCli": ["review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["html", "docs"], "outputs": ["diff", "report"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Replaces legacy *-wc tags with canonical components.", "prosePath": "skills/velin-migration-legacy-wc/SKILL.md" },
34
- { "id": "velin-release-changelog-sync", "name": "Release Changelog Sync", "category": "release", "priority": "recommended", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["release", "documentation"], "estimatedComplexity": "low", "estimatedTokens": 650, "dependsOn": ["velin-review-page-gate"], "requiresCli": ["docs"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["markdown", "docs"], "outputs": ["markdown", "checklist"], "onlyIf": ["project.hasDocumentation"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Keeps changelog and docs in sync before release.", "prosePath": "skills/velin-release-changelog-sync/SKILL.md" },
35
- { "id": "velin-release-meta-rebuild", "name": "Release Meta Rebuild", "category": "release", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["release", "ai-orchestration"], "estimatedComplexity": "low", "estimatedTokens": 450, "dependsOn": [], "requiresCli": ["meta"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["docs"], "outputs": ["meta-json", "report"], "onlyIf": [], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Rebuilds velin-agent.json and llms.txt before publishing.", "prosePath": "skills/velin-release-meta-rebuild/SKILL.md" },
36
- { "id": "velin-dx-project-init", "name": "DX Project Init", "category": "developer-experience", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["dx", "build"], "estimatedComplexity": "low", "estimatedTokens": 450, "dependsOn": [], "requiresCli": ["init"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["docs"], "outputs": ["checklist"], "onlyIf": [], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Bootstraps VelinStyle projects with sane defaults.", "prosePath": "skills/velin-dx-project-init/SKILL.md" },
37
- { "id": "velin-dx-doctor-setup", "name": "DX Doctor Setup", "category": "developer-experience", "priority": "advanced", "status": "experimental", "confidence": "medium", "origin": "official", "capabilities": ["dx", "review"], "estimatedComplexity": "medium", "estimatedTokens": 850, "dependsOn": ["velin-dx-project-init"], "requiresCli": ["scan"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["docs", "html"], "outputs": ["report"], "onlyIf": [], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Runs setup diagnostics and proposes fixes for dev experience gaps.", "prosePath": "skills/velin-dx-doctor-setup/SKILL.md" },
38
- { "id": "velin-perf-audit-fix", "name": "Perf Audit Fix", "category": "performance", "priority": "recommended", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["performance", "review"], "estimatedComplexity": "medium", "estimatedTokens": 800, "dependsOn": [], "requiresCli": ["perf"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html"], "outputs": ["report", "diff"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Audits performance and applies safe optimization fixes.", "prosePath": "skills/velin-perf-audit-fix/SKILL.md" },
39
- { "id": "velin-perf-runtime-tree-shake", "name": "Perf Runtime Tree Shake", "category": "performance", "priority": "advanced", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["performance", "build"], "estimatedComplexity": "high", "estimatedTokens": 1300, "dependsOn": ["velin-perf-audit-fix"], "requiresCli": ["build"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["html", "css"], "outputs": ["report", "diff"], "onlyIf": ["project.hasComponents"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Reduces runtime payload using explicit component loading strategy.", "prosePath": "skills/velin-perf-runtime-tree-shake/SKILL.md" },
40
- { "id": "velin-security-scan-pii", "name": "Security Scan PII", "category": "security", "priority": "core", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["security", "review"], "estimatedComplexity": "low", "estimatedTokens": 500, "dependsOn": [], "requiresCli": ["scan"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode", "claude-code"], "inputs": ["html", "docs"], "outputs": ["report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Scans for PII exposure and common security mistakes.", "prosePath": "skills/velin-security-scan-pii/SKILL.md" },
41
- { "id": "velin-security-sanitize-html", "name": "Security Sanitize HTML", "category": "security", "priority": "recommended", "status": "stable", "confidence": "high", "origin": "official", "capabilities": ["security", "build"], "estimatedComplexity": "medium", "estimatedTokens": 800, "dependsOn": ["velin-security-scan-pii"], "requiresCli": ["review"], "requiresMeta": false, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "vscode"], "inputs": ["html"], "outputs": ["diff", "report"], "onlyIf": ["project.hasHtml"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Applies safe HTML sanitization guidance for dynamic content.", "prosePath": "skills/velin-security-sanitize-html/SKILL.md" },
42
- { "id": "velin-ai-agent-briefing", "name": "AI Agent Briefing", "category": "ai-workflows", "priority": "core", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["ai-orchestration", "documentation"], "estimatedComplexity": "low", "estimatedTokens": 550, "dependsOn": [], "requiresCli": ["meta"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code", "windsurf"], "inputs": ["docs", "meta-json"], "outputs": ["markdown", "checklist"], "onlyIf": [], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Prepares agent context and guardrails from velin metadata.", "prosePath": "skills/velin-ai-agent-briefing/SKILL.md" },
43
- { "id": "velin-ai-plan-scaffold-review", "name": "AI Plan Scaffold Review", "category": "ai-workflows", "priority": "core", "status": "beta", "confidence": "high", "origin": "official", "capabilities": ["ai-orchestration", "build", "review"], "estimatedComplexity": "medium", "estimatedTokens": 1100, "dependsOn": ["velin-dev-plan-first", "velin-dev-page-scaffold", "velin-review-page-gate"], "requiresCli": ["plan", "scaffold", "review"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor", "claude-code"], "inputs": ["prompt"], "outputs": ["html", "review-json"], "onlyIf": [], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": true, "deprecated": false, "replacement": null }, "description": "Runs the canonical AI workflow from prompt to reviewed HTML.", "prosePath": "skills/velin-ai-plan-scaffold-review/SKILL.md" },
44
- { "id": "velin-ai-skill-authoring", "name": "AI Skill Authoring", "category": "ai-workflows", "priority": "advanced", "status": "beta", "confidence": "medium", "origin": "official", "capabilities": ["ai-orchestration", "documentation"], "estimatedComplexity": "high", "estimatedTokens": 1400, "dependsOn": ["velin-ai-agent-briefing"], "requiresCli": ["docs", "meta"], "requiresMeta": true, "compatibility": { "framework": { "min": "1.2.0", "max": "2.x" }, "cli": { "min": "1.2.0" }, "agent": { "min": "1.0.0" }, "skillEngine": { "min": "1.0.0" } }, "optimizedFor": ["cursor"], "inputs": ["markdown", "docs", "meta-json"], "outputs": ["markdown", "registry-json"], "onlyIf": ["project.hasDocumentation"], "hooks": { "beforeRun": null, "afterRun": null, "onSuccess": null, "onFailure": null }, "telemetry": { "recommended": false, "deprecated": false, "replacement": null }, "description": "Authors new skills with registry-first metadata quality gates.", "prosePath": "skills/velin-ai-skill-authoring/SKILL.md" }
45
- ],
46
- "packs": [
47
- { "id": "frontend", "name": "Frontend Pack", "version": "1.0.0", "priority": "core", "skills": ["velin-dx-project-init", "velin-dev-plan-first", "velin-dev-page-scaffold", "velin-components-select-compose", "velin-utilities-layout-apply"] },
48
- { "id": "design", "name": "Design Pack", "version": "1.0.0", "priority": "recommended", "skills": ["velin-design-hero-compose", "velin-design-section-rhythm", "velin-design-surface-roles", "velin-themes-apply-token", "velin-motion-reduced-safe"] },
49
- { "id": "accessibility", "name": "Accessibility Pack", "version": "1.0.0", "priority": "core", "skills": ["velin-a11y-page-checklist", "velin-a11y-scan-fix", "velin-a11y-focus-keyboard", "velin-testing-a11y-suite"] },
50
- { "id": "documentation", "name": "Documentation Pack", "version": "1.0.0", "priority": "recommended", "skills": ["velin-docs-component-guide", "velin-docs-generate-api", "velin-release-changelog-sync"] },
51
- { "id": "review", "name": "Review Pack", "version": "1.0.0", "priority": "core", "skills": ["velin-review-page-gate", "velin-review-conversion-hero", "velin-review-seo-meta", "velin-security-scan-pii"] },
52
- { "id": "enterprise", "name": "Enterprise Pack", "version": "1.0.0", "priority": "advanced", "skills": ["velin-security-scan-pii", "velin-security-sanitize-html", "velin-perf-audit-fix", "velin-migration-prefix-classes", "velin-release-meta-rebuild"] }
53
- ],
54
- "workflowGraphs": [
55
- {
56
- "id": "landingpage",
57
- "name": "Landing Page Workflow",
58
- "entry": "plan",
59
- "nodes": {
60
- "plan": { "skill": "velin-dev-plan-first" },
61
- "hero": { "skill": "velin-design-hero-compose" },
62
- "sections": { "skill": "velin-design-section-rhythm" },
63
- "components": { "skill": "velin-components-select-compose" },
64
- "a11y": { "skill": "velin-a11y-page-checklist" },
65
- "seo": { "skill": "velin-review-seo-meta" },
66
- "review": { "skill": "velin-review-page-gate" },
67
- "release": { "skill": "velin-release-meta-rebuild" }
68
- },
69
- "edges": [
70
- { "from": "plan", "to": "hero" },
71
- { "from": "hero", "to": "sections" },
72
- { "from": "sections", "to": "components" },
73
- { "from": "components", "to": "a11y" },
74
- { "from": "components", "to": "seo" },
75
- { "from": "a11y", "to": "review" },
76
- { "from": "seo", "to": "review" },
77
- { "from": "review", "to": "release", "when": "review.passed" }
78
- ]
79
- },
80
- {
81
- "id": "component-ship",
82
- "name": "Component Ship Workflow",
83
- "entry": "select",
84
- "nodes": {
85
- "select": { "skill": "velin-components-select-compose" },
86
- "contract": { "skill": "velin-components-api-contract" },
87
- "a11y": { "skill": "velin-components-accessibility-map" },
88
- "docs": { "skill": "velin-docs-component-guide" },
89
- "review": { "skill": "velin-review-page-gate" }
90
- },
91
- "edges": [
92
- { "from": "select", "to": "contract" },
93
- { "from": "contract", "to": "a11y" },
94
- { "from": "a11y", "to": "docs" },
95
- { "from": "docs", "to": "review" }
96
- ]
97
- },
98
- {
99
- "id": "release-gate",
100
- "name": "Release Gate Workflow",
101
- "entry": "review",
102
- "nodes": {
103
- "review": { "skill": "velin-review-page-gate" },
104
- "perf": { "skill": "velin-perf-audit-fix" },
105
- "security": { "skill": "velin-security-scan-pii" },
106
- "changelog": { "skill": "velin-release-changelog-sync" },
107
- "meta": { "skill": "velin-release-meta-rebuild" }
108
- },
109
- "edges": [
110
- { "from": "review", "to": "perf" },
111
- { "from": "review", "to": "security" },
112
- { "from": "perf", "to": "changelog" },
113
- { "from": "security", "to": "changelog" },
114
- { "from": "changelog", "to": "meta" }
115
- ]
116
- }
117
- ],
118
- "bundles": [
119
- { "id": "landing-starter", "origin": "official", "packs": ["frontend", "design", "review"], "graphs": ["landingpage"], "templates": ["landing-page"], "docs": ["docs/guides/ai-skills.html"] },
120
- { "id": "review-suite", "origin": "official", "packs": ["accessibility", "review"], "graphs": ["release-gate"], "templates": [], "docs": ["docs/guides/ai-skills.html"] }
121
- ],
122
- "templates": [
123
- { "id": "landing-page", "workflowGraph": "landingpage", "packs": ["frontend", "design"], "theme": "default", "demo": "samples/landing.html", "docs": ["docs/guides/prompt-scaffolding.html", "docs/guides/landing-15-min.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "marketing-landing", "sections": ["hero", "features", "faq", "contact"] } },
124
- { "id": "marketing-website", "workflowGraph": "landingpage", "packs": ["frontend", "design", "review"], "theme": "default", "demo": "samples/landing.html", "docs": ["docs/guides/prompt-scaffolding.html", "docs/guides/landing-15-min.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "marketing-site", "sections": ["hero", "benefits", "proof", "faq", "contact"] } },
125
- { "id": "documentation-portal", "workflowGraph": "component-ship", "packs": ["documentation", "review"], "theme": "default", "demo": "docs/index.html", "docs": ["docs/guides/ai-skills.html", "docs/guides/prompt-scaffolding.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "docs-portal", "sections": ["hero", "toc", "examples", "faq"] } },
126
- { "id": "admin-panel", "workflowGraph": "release-gate", "packs": ["enterprise", "review"], "theme": "midnight", "demo": "samples/dashboard.html", "docs": ["docs/guides/ai-skills.html", "docs/guides/prompt-scaffolding.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "admin-panel", "sections": ["kpis", "table", "forms"] } },
127
- { "id": "blog", "workflowGraph": "landingpage", "packs": ["frontend", "review"], "theme": "default", "demo": "samples/blog.html", "docs": ["docs/guides/ai-skills.html", "docs/guides/prompt-scaffolding.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "blog", "sections": ["hero", "posts", "faq", "contact"] } },
128
- { "id": "ecommerce-shop", "workflowGraph": "landingpage", "packs": ["frontend", "review", "enterprise"], "theme": "default", "demo": "samples/ecommerce.html", "docs": ["docs/guides/ecommerce.html", "docs/guides/prompt-scaffolding.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "shop", "sections": ["hero", "products", "proof", "faq"] } },
129
- { "id": "portfolio", "workflowGraph": "landingpage", "packs": ["design", "frontend"], "theme": "soft", "demo": "samples/portfolio.html", "docs": ["docs/guides/ai-skills.html", "docs/guides/prompt-scaffolding.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "portfolio", "sections": ["hero", "projects", "about", "contact"] } },
130
- { "id": "laravel-dashboard", "workflowGraph": "release-gate", "packs": ["enterprise", "frontend"], "theme": "midnight", "demo": "samples/dashboard.html", "docs": ["docs/guides/laravel.html"], "starterFiles": ["templates/vite-velinstyle/index.html"], "defaults": { "pageIntent": "dashboard", "sections": ["kpis", "table", "forms"] } }
131
- ],
132
- "projects": [
133
- { "id": "marketing-website", "name": "Marketing Website", "priority": "recommended", "workflowGraph": "landingpage", "packs": ["frontend", "design", "review"], "skills": ["velin-ai-plan-scaffold-review", "velin-review-conversion-hero"], "optimizedFor": ["cursor", "claude-code"] },
134
- { "id": "documentation-portal", "name": "Documentation Portal", "priority": "recommended", "workflowGraph": "component-ship", "packs": ["documentation", "review"], "skills": ["velin-docs-generate-api", "velin-ai-agent-briefing"], "optimizedFor": ["cursor", "vscode"] },
135
- { "id": "admin-panel", "name": "Admin Panel", "priority": "recommended", "workflowGraph": "release-gate", "packs": ["enterprise", "review"], "skills": ["velin-perf-audit-fix", "velin-security-scan-pii"], "optimizedFor": ["cursor"] },
136
- { "id": "landing-page", "name": "Landing Page", "priority": "core", "workflowGraph": "landingpage", "packs": ["frontend", "design"], "skills": ["velin-review-conversion-hero"], "optimizedFor": ["cursor", "windsurf"] },
137
- { "id": "blog", "name": "Blog", "priority": "recommended", "workflowGraph": "landingpage", "packs": ["frontend", "review"], "skills": ["velin-review-seo-meta"], "optimizedFor": ["cursor"] },
138
- { "id": "ecommerce-shop", "name": "E-Commerce Shop", "priority": "advanced", "workflowGraph": "landingpage", "packs": ["enterprise", "review"], "skills": ["velin-security-sanitize-html", "velin-review-conversion-hero"], "optimizedFor": ["cursor"] },
139
- { "id": "portfolio", "name": "Portfolio", "priority": "recommended", "workflowGraph": "landingpage", "packs": ["design", "frontend"], "skills": ["velin-motion-reveal-feedback"], "optimizedFor": ["cursor", "vscode"] },
140
- { "id": "laravel-dashboard", "name": "Laravel Dashboard", "priority": "advanced", "workflowGraph": "release-gate", "packs": ["enterprise", "frontend"], "skills": ["velin-dx-project-init"], "optimizedFor": ["cursor", "claude-code"] }
141
- ]
142
- }
1
+ {"version":"1.0.0","adapter":"velinstyle","skills":[{"id":"velin-design-hero-compose","name":"Hero Compose","category":"design","priority":"core","status":"beta","confidence":"high","origin":"official","capabilities":["build","review"],"estimatedComplexity":"medium","estimatedTokens":1200,"dependsOn":["velin-dev-plan-first"],"requiresCli":["plan","scaffold","review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode","claude-code","windsurf"],"inputs":["prompt","html","screenshot"],"outputs":["html","review-json"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Composes first viewport hero following VelinStyle hierarchy and CTA constraints.","prosePath":"skills/velin-design-hero-compose/SKILL.md"},{"id":"velin-design-section-rhythm","name":"Section Rhythm","category":"design","priority":"recommended","status":"beta","confidence":"high","origin":"official","capabilities":["build"],"estimatedComplexity":"medium","estimatedTokens":900,"dependsOn":["velin-design-hero-compose"],"requiresCli":["scaffold"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["prompt","html"],"outputs":["html","checklist"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Aligns spacing rhythm and section purpose to design rules.","prosePath":"skills/velin-design-section-rhythm/SKILL.md"},{"id":"velin-design-surface-roles","name":"Surface Roles","category":"design","priority":"recommended","status":"beta","confidence":"medium","origin":"official","capabilities":["build","theme"],"estimatedComplexity":"low","estimatedTokens":700,"dependsOn":[],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","tokens"],"outputs":["html","report"],"onlyIf":["project.hasTokens"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Maps sections to base/raised/overlay surface roles.","prosePath":"skills/velin-design-surface-roles/SKILL.md"},{"id":"velin-dev-plan-first","name":"Plan First","category":"development","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["ai-orchestration","build"],"estimatedComplexity":"low","estimatedTokens":500,"dependsOn":[],"requiresCli":["plan"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["prompt"],"outputs":["plan-json"],"onlyIf":[],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Creates a plan JSON before implementation to reduce hallucinations.","prosePath":"skills/velin-dev-plan-first/SKILL.md"},{"id":"velin-dev-page-scaffold","name":"Page Scaffold","category":"development","priority":"core","status":"beta","confidence":"high","origin":"official","capabilities":["build"],"estimatedComplexity":"medium","estimatedTokens":1000,"dependsOn":["velin-dev-plan-first"],"requiresCli":["scaffold","review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["prompt","plan-json"],"outputs":["html","review-json"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Renders plan-based HTML and runs review gates.","prosePath":"skills/velin-dev-page-scaffold/SKILL.md"},{"id":"velin-dev-component-wire","name":"Component Wire","category":"development","priority":"recommended","status":"beta","confidence":"medium","origin":"official","capabilities":["build"],"estimatedComplexity":"medium","estimatedTokens":800,"dependsOn":["velin-components-select-compose"],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["html","docs"],"outputs":["html","diff"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Wires selected components with predictable APIs and semantics.","prosePath":"skills/velin-dev-component-wire/SKILL.md"},{"id":"velin-components-select-compose","name":"Select Components","category":"components","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["build"],"estimatedComplexity":"low","estimatedTokens":650,"dependsOn":[],"requiresCli":["blueprint"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","windsurf"],"inputs":["prompt","docs"],"outputs":["html","checklist"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Chooses component set that matches page intent and constraints.","prosePath":"skills/velin-components-select-compose/SKILL.md"},{"id":"velin-components-api-contract","name":"API Contract","category":"components","priority":"recommended","status":"beta","confidence":"high","origin":"official","capabilities":["documentation","review"],"estimatedComplexity":"medium","estimatedTokens":900,"dependsOn":["velin-components-select-compose"],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","docs"],"outputs":["markdown","report"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Validates component contracts and event/API usage.","prosePath":"skills/velin-components-api-contract/SKILL.md"},{"id":"velin-components-recipe","name":"Component Recipe","category":"components","priority":"recommended","status":"beta","confidence":"medium","origin":"official","capabilities":["build","documentation"],"estimatedComplexity":"low","estimatedTokens":700,"dependsOn":["velin-components-select-compose"],"requiresCli":["scaffold"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["prompt","html"],"outputs":["html","markdown"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Builds reusable component recipes for recurring UI blocks.","prosePath":"skills/velin-components-recipe/SKILL.md"},{"id":"velin-components-accessibility-map","name":"Component Accessibility Map","category":"components","priority":"advanced","status":"beta","confidence":"medium","origin":"official","capabilities":["accessibility","documentation"],"estimatedComplexity":"medium","estimatedTokens":1100,"dependsOn":["velin-components-api-contract"],"requiresCli":["docs"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["docs","html"],"outputs":["markdown","report"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Maps every chosen component to a11y expectations and test hooks.","prosePath":"skills/velin-components-accessibility-map/SKILL.md"},{"id":"velin-utilities-layout-apply","name":"Utilities Layout Apply","category":"utilities","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["build"],"estimatedComplexity":"low","estimatedTokens":600,"dependsOn":[],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","windsurf"],"inputs":["html","css"],"outputs":["html","diff"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Applies utility classes for layout and responsive structure.","prosePath":"skills/velin-utilities-layout-apply/SKILL.md"},{"id":"velin-utilities-prefix-fix","name":"Utilities Prefix Fix","category":"utilities","priority":"recommended","status":"stable","confidence":"high","origin":"official","capabilities":["migrate"],"estimatedComplexity":"low","estimatedTokens":500,"dependsOn":[],"requiresCli":["prefix"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","css"],"outputs":["diff","report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Normalizes classes to velin-* naming.","prosePath":"skills/velin-utilities-prefix-fix/SKILL.md"},{"id":"velin-utilities-token-map","name":"Utilities Token Map","category":"utilities","priority":"advanced","status":"beta","confidence":"medium","origin":"official","capabilities":["theme","documentation"],"estimatedComplexity":"medium","estimatedTokens":950,"dependsOn":["velin-utilities-layout-apply"],"requiresCli":["tokens"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["tokens","css"],"outputs":["markdown","report"],"onlyIf":["project.hasTokens"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Documents how utility usage maps to token taxonomy.","prosePath":"skills/velin-utilities-token-map/SKILL.md"},{"id":"velin-themes-apply-token","name":"Theme Apply Token","category":"themes","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["theme","build"],"estimatedComplexity":"low","estimatedTokens":600,"dependsOn":[],"requiresCli":["themes","tokens"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["tokens","html"],"outputs":["css","html"],"onlyIf":["project.hasTokens"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Applies built-in themes through token-safe patterns.","prosePath":"skills/velin-themes-apply-token/SKILL.md"},{"id":"velin-themes-contrast-check","name":"Theme Contrast Check","category":"themes","priority":"recommended","status":"beta","confidence":"high","origin":"official","capabilities":["accessibility","theme","review"],"estimatedComplexity":"medium","estimatedTokens":1000,"dependsOn":["velin-themes-apply-token"],"requiresCli":["review","scan"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","screenshot","tokens"],"outputs":["report","review-json"],"onlyIf":["project.hasTokens"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Checks token contrast and theme compatibility for WCAG goals.","prosePath":"skills/velin-themes-contrast-check/SKILL.md"},{"id":"velin-motion-reduced-safe","name":"Motion Reduced Safe","category":"motion","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["motion","accessibility"],"estimatedComplexity":"low","estimatedTokens":550,"dependsOn":[],"requiresCli":["review","motion"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.6"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","windsurf"],"inputs":["html","css"],"outputs":["html","report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Applies motion while honoring prefers-reduced-motion.","prosePath":"skills/velin-motion-reduced-safe/SKILL.md"},{"id":"velin-motion-reveal-feedback","name":"Motion Reveal Feedback","category":"motion","priority":"recommended","status":"beta","confidence":"medium","origin":"official","capabilities":["motion","build"],"estimatedComplexity":"medium","estimatedTokens":800,"dependsOn":["velin-motion-reduced-safe"],"requiresCli":["review","motion"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.6"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["html","css"],"outputs":["html","checklist"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Adds intentional reveal and feedback motion hierarchies.","prosePath":"skills/velin-motion-reveal-feedback/SKILL.md"},{"id":"velin-a11y-page-checklist","name":"A11y Page Checklist","category":"accessibility","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["accessibility","review"],"estimatedComplexity":"low","estimatedTokens":500,"dependsOn":[],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode","claude-code"],"inputs":["html","docs"],"outputs":["checklist","report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Runs page-level accessibility checklist before release.","prosePath":"skills/velin-a11y-page-checklist/SKILL.md"},{"id":"velin-a11y-scan-fix","name":"A11y Scan Fix","category":"accessibility","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["accessibility","review"],"estimatedComplexity":"medium","estimatedTokens":900,"dependsOn":["velin-a11y-page-checklist"],"requiresCli":["scan"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html"],"outputs":["report","diff"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Uses scanner output to fix high-confidence accessibility issues.","prosePath":"skills/velin-a11y-scan-fix/SKILL.md"},{"id":"velin-a11y-focus-keyboard","name":"Focus Keyboard","category":"accessibility","priority":"recommended","status":"beta","confidence":"high","origin":"official","capabilities":["accessibility","test"],"estimatedComplexity":"medium","estimatedTokens":850,"dependsOn":["velin-a11y-page-checklist"],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["html","screenshot"],"outputs":["report","checklist"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Validates keyboard navigation and visible focus behavior.","prosePath":"skills/velin-a11y-focus-keyboard/SKILL.md"},{"id":"velin-testing-a11y-suite","name":"Testing A11y Suite","category":"testing","priority":"recommended","status":"stable","confidence":"high","origin":"official","capabilities":["test","accessibility"],"estimatedComplexity":"medium","estimatedTokens":900,"dependsOn":["velin-a11y-scan-fix"],"requiresCli":["test:a11y"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html"],"outputs":["report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Runs accessibility test suite and triages regressions.","prosePath":"skills/velin-testing-a11y-suite/SKILL.md"},{"id":"velin-testing-visual-smoke","name":"Testing Visual Smoke","category":"testing","priority":"advanced","status":"beta","confidence":"medium","origin":"official","capabilities":["test","review"],"estimatedComplexity":"medium","estimatedTokens":900,"dependsOn":["velin-dev-page-scaffold"],"requiresCli":["test:e2e"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","windsurf"],"inputs":["html","screenshot"],"outputs":["report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Runs visual smoke checks across key breakpoints.","prosePath":"skills/velin-testing-visual-smoke/SKILL.md"},{"id":"velin-review-page-gate","name":"Review Page Gate","category":"review","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["review"],"estimatedComplexity":"low","estimatedTokens":550,"dependsOn":["velin-a11y-page-checklist"],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["html","prompt"],"outputs":["review-json"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Runs design/a11y/seo/perf/conversion gate and reports score.","prosePath":"skills/velin-review-page-gate/SKILL.md"},{"id":"velin-review-conversion-hero","name":"Review Conversion Hero","category":"review","priority":"recommended","status":"beta","confidence":"medium","origin":"official","capabilities":["review","seo"],"estimatedComplexity":"medium","estimatedTokens":850,"dependsOn":["velin-design-hero-compose"],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","prompt"],"outputs":["report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Reviews hero conversion quality and CTA hierarchy.","prosePath":"skills/velin-review-conversion-hero/SKILL.md"},{"id":"velin-review-seo-meta","name":"Review SEO Meta","category":"review","priority":"recommended","status":"stable","confidence":"high","origin":"official","capabilities":["review","seo"],"estimatedComplexity":"low","estimatedTokens":700,"dependsOn":[],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","docs"],"outputs":["report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Checks SEO metadata and content semantics.","prosePath":"skills/velin-review-seo-meta/SKILL.md"},{"id":"velin-docs-component-guide","name":"Docs Component Guide","category":"documentation","priority":"recommended","status":"beta","confidence":"high","origin":"official","capabilities":["documentation"],"estimatedComplexity":"medium","estimatedTokens":1000,"dependsOn":["velin-components-api-contract"],"requiresCli":["docs"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["markdown","docs"],"outputs":["markdown"],"onlyIf":["project.hasDocumentation"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Writes component-focused documentation with quality checklists.","prosePath":"skills/velin-docs-component-guide/SKILL.md"},{"id":"velin-docs-generate-api","name":"Docs Generate API","category":"documentation","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["documentation"],"estimatedComplexity":"low","estimatedTokens":550,"dependsOn":[],"requiresCli":["docs"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["docs"],"outputs":["markdown","report"],"onlyIf":["project.hasDocumentation"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Generates API Markdown and verifies documentation footprint.","prosePath":"skills/velin-docs-generate-api/SKILL.md"},{"id":"velin-migration-prefix-classes","name":"Migration Prefix Classes","category":"migration","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["migrate"],"estimatedComplexity":"low","estimatedTokens":500,"dependsOn":[],"requiresCli":["prefix"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html","css"],"outputs":["diff","report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Migrates class names to velin-* convention.","prosePath":"skills/velin-migration-prefix-classes/SKILL.md"},{"id":"velin-migration-legacy-wc","name":"Migration Legacy WC","category":"migration","priority":"recommended","status":"beta","confidence":"high","origin":"official","capabilities":["migrate","review"],"estimatedComplexity":"medium","estimatedTokens":800,"dependsOn":["velin-migration-prefix-classes"],"requiresCli":["review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["html","docs"],"outputs":["diff","report"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Replaces legacy *-wc tags with canonical components.","prosePath":"skills/velin-migration-legacy-wc/SKILL.md"},{"id":"velin-release-changelog-sync","name":"Release Changelog Sync","category":"release","priority":"recommended","status":"stable","confidence":"high","origin":"official","capabilities":["release","documentation"],"estimatedComplexity":"low","estimatedTokens":650,"dependsOn":["velin-review-page-gate"],"requiresCli":["docs"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["markdown","docs"],"outputs":["markdown","checklist"],"onlyIf":["project.hasDocumentation"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Keeps changelog and docs in sync before release.","prosePath":"skills/velin-release-changelog-sync/SKILL.md"},{"id":"velin-release-meta-rebuild","name":"Release Meta Rebuild","category":"release","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["release","ai-orchestration"],"estimatedComplexity":"low","estimatedTokens":450,"dependsOn":[],"requiresCli":["meta"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["docs"],"outputs":["meta-json","report"],"onlyIf":[],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Rebuilds velin-agent.json and llms.txt before publishing.","prosePath":"skills/velin-release-meta-rebuild/SKILL.md"},{"id":"velin-dx-project-init","name":"DX Project Init","category":"developer-experience","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["dx","build"],"estimatedComplexity":"low","estimatedTokens":450,"dependsOn":[],"requiresCli":["init"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["docs"],"outputs":["checklist"],"onlyIf":[],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Bootstraps VelinStyle projects with sane defaults.","prosePath":"skills/velin-dx-project-init/SKILL.md"},{"id":"velin-dx-doctor-setup","name":"DX Doctor Setup","category":"developer-experience","priority":"advanced","status":"experimental","confidence":"medium","origin":"official","capabilities":["dx","review"],"estimatedComplexity":"medium","estimatedTokens":850,"dependsOn":["velin-dx-project-init"],"requiresCli":["scan"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["docs","html"],"outputs":["report"],"onlyIf":[],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Runs setup diagnostics and proposes fixes for dev experience gaps.","prosePath":"skills/velin-dx-doctor-setup/SKILL.md"},{"id":"velin-perf-audit-fix","name":"Perf Audit Fix","category":"performance","priority":"recommended","status":"stable","confidence":"high","origin":"official","capabilities":["performance","review"],"estimatedComplexity":"medium","estimatedTokens":800,"dependsOn":[],"requiresCli":["perf"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html"],"outputs":["report","diff"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Audits performance and applies safe optimization fixes.","prosePath":"skills/velin-perf-audit-fix/SKILL.md"},{"id":"velin-perf-runtime-tree-shake","name":"Perf Runtime Tree Shake","category":"performance","priority":"advanced","status":"beta","confidence":"medium","origin":"official","capabilities":["performance","build"],"estimatedComplexity":"high","estimatedTokens":1300,"dependsOn":["velin-perf-audit-fix"],"requiresCli":["build"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["html","css"],"outputs":["report","diff"],"onlyIf":["project.hasComponents"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Reduces runtime payload using explicit component loading strategy.","prosePath":"skills/velin-perf-runtime-tree-shake/SKILL.md"},{"id":"velin-security-scan-pii","name":"Security Scan PII","category":"security","priority":"core","status":"stable","confidence":"high","origin":"official","capabilities":["security","review"],"estimatedComplexity":"low","estimatedTokens":500,"dependsOn":[],"requiresCli":["scan"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode","claude-code"],"inputs":["html","docs"],"outputs":["report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Scans for PII exposure and common security mistakes.","prosePath":"skills/velin-security-scan-pii/SKILL.md"},{"id":"velin-security-sanitize-html","name":"Security Sanitize HTML","category":"security","priority":"recommended","status":"stable","confidence":"high","origin":"official","capabilities":["security","build"],"estimatedComplexity":"medium","estimatedTokens":800,"dependsOn":["velin-security-scan-pii"],"requiresCli":["review"],"requiresMeta":false,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","vscode"],"inputs":["html"],"outputs":["diff","report"],"onlyIf":["project.hasHtml"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Applies safe HTML sanitization guidance for dynamic content.","prosePath":"skills/velin-security-sanitize-html/SKILL.md"},{"id":"velin-ai-agent-briefing","name":"AI Agent Briefing","category":"ai-workflows","priority":"core","status":"beta","confidence":"high","origin":"official","capabilities":["ai-orchestration","documentation"],"estimatedComplexity":"low","estimatedTokens":550,"dependsOn":[],"requiresCli":["meta"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code","windsurf"],"inputs":["docs","meta-json"],"outputs":["markdown","checklist"],"onlyIf":[],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Prepares agent context and guardrails from velin metadata.","prosePath":"skills/velin-ai-agent-briefing/SKILL.md"},{"id":"velin-ai-plan-scaffold-review","name":"AI Plan Scaffold Review","category":"ai-workflows","priority":"core","status":"beta","confidence":"high","origin":"official","capabilities":["ai-orchestration","build","review"],"estimatedComplexity":"medium","estimatedTokens":1100,"dependsOn":["velin-dev-plan-first","velin-dev-page-scaffold","velin-review-page-gate"],"requiresCli":["plan","scaffold","review"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor","claude-code"],"inputs":["prompt"],"outputs":["html","review-json"],"onlyIf":[],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":true,"deprecated":false,"replacement":null},"description":"Runs the canonical AI workflow from prompt to reviewed HTML.","prosePath":"skills/velin-ai-plan-scaffold-review/SKILL.md"},{"id":"velin-ai-skill-authoring","name":"AI Skill Authoring","category":"ai-workflows","priority":"advanced","status":"beta","confidence":"medium","origin":"official","capabilities":["ai-orchestration","documentation"],"estimatedComplexity":"high","estimatedTokens":1400,"dependsOn":["velin-ai-agent-briefing"],"requiresCli":["docs","meta"],"requiresMeta":true,"compatibility":{"framework":{"min":"1.2.0","max":"2.x"},"cli":{"min":"1.2.0"},"agent":{"min":"1.0.0"},"skillEngine":{"min":"1.0.0"}},"optimizedFor":["cursor"],"inputs":["markdown","docs","meta-json"],"outputs":["markdown","registry-json"],"onlyIf":["project.hasDocumentation"],"hooks":{"beforeRun":null,"afterRun":null,"onSuccess":null,"onFailure":null},"telemetry":{"recommended":false,"deprecated":false,"replacement":null},"description":"Authors new skills with registry-first metadata quality gates.","prosePath":"skills/velin-ai-skill-authoring/SKILL.md"}],"packs":[{"id":"frontend","name":"Frontend Pack","version":"1.0.0","priority":"core","skills":["velin-dx-project-init","velin-dev-plan-first","velin-dev-page-scaffold","velin-components-select-compose","velin-utilities-layout-apply"]},{"id":"design","name":"Design Pack","version":"1.0.0","priority":"recommended","skills":["velin-design-hero-compose","velin-design-section-rhythm","velin-design-surface-roles","velin-themes-apply-token","velin-motion-reduced-safe"]},{"id":"accessibility","name":"Accessibility Pack","version":"1.0.0","priority":"core","skills":["velin-a11y-page-checklist","velin-a11y-scan-fix","velin-a11y-focus-keyboard","velin-testing-a11y-suite"]},{"id":"documentation","name":"Documentation Pack","version":"1.0.0","priority":"recommended","skills":["velin-docs-component-guide","velin-docs-generate-api","velin-release-changelog-sync"]},{"id":"review","name":"Review Pack","version":"1.0.0","priority":"core","skills":["velin-review-page-gate","velin-review-conversion-hero","velin-review-seo-meta","velin-security-scan-pii"]},{"id":"enterprise","name":"Enterprise Pack","version":"1.0.0","priority":"advanced","skills":["velin-security-scan-pii","velin-security-sanitize-html","velin-perf-audit-fix","velin-migration-prefix-classes","velin-release-meta-rebuild"]}],"workflowGraphs":[{"id":"landingpage","name":"Landing Page Workflow","entry":"plan","nodes":{"plan":{"skill":"velin-dev-plan-first"},"hero":{"skill":"velin-design-hero-compose"},"sections":{"skill":"velin-design-section-rhythm"},"components":{"skill":"velin-components-select-compose"},"a11y":{"skill":"velin-a11y-page-checklist"},"seo":{"skill":"velin-review-seo-meta"},"review":{"skill":"velin-review-page-gate"},"release":{"skill":"velin-release-meta-rebuild"}},"edges":[{"from":"plan","to":"hero"},{"from":"hero","to":"sections"},{"from":"sections","to":"components"},{"from":"components","to":"a11y"},{"from":"components","to":"seo"},{"from":"a11y","to":"review"},{"from":"seo","to":"review"},{"from":"review","to":"release","when":"review.passed"}]},{"id":"component-ship","name":"Component Ship Workflow","entry":"select","nodes":{"select":{"skill":"velin-components-select-compose"},"contract":{"skill":"velin-components-api-contract"},"a11y":{"skill":"velin-components-accessibility-map"},"docs":{"skill":"velin-docs-component-guide"},"review":{"skill":"velin-review-page-gate"}},"edges":[{"from":"select","to":"contract"},{"from":"contract","to":"a11y"},{"from":"a11y","to":"docs"},{"from":"docs","to":"review"}]},{"id":"release-gate","name":"Release Gate Workflow","entry":"review","nodes":{"review":{"skill":"velin-review-page-gate"},"perf":{"skill":"velin-perf-audit-fix"},"security":{"skill":"velin-security-scan-pii"},"changelog":{"skill":"velin-release-changelog-sync"},"meta":{"skill":"velin-release-meta-rebuild"}},"edges":[{"from":"review","to":"perf"},{"from":"review","to":"security"},{"from":"perf","to":"changelog"},{"from":"security","to":"changelog"},{"from":"changelog","to":"meta"}]}],"bundles":[{"id":"landing-starter","origin":"official","packs":["frontend","design","review"],"graphs":["landingpage"],"templates":["landing-page"],"docs":["docs/guides/ai-skills.html"]},{"id":"review-suite","origin":"official","packs":["accessibility","review"],"graphs":["release-gate"],"templates":[],"docs":["docs/guides/ai-skills.html"]}],"templates":[{"id":"landing-page","workflowGraph":"landingpage","packs":["frontend","design"],"theme":"default","demo":"samples/landing.html","docs":["docs/guides/prompt-scaffolding.html","docs/guides/landing-15-min.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"marketing-landing","sections":["hero","features","faq","contact"]}},{"id":"marketing-website","workflowGraph":"landingpage","packs":["frontend","design","review"],"theme":"default","demo":"samples/landing.html","docs":["docs/guides/prompt-scaffolding.html","docs/guides/landing-15-min.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"marketing-site","sections":["hero","benefits","proof","faq","contact"]}},{"id":"documentation-portal","workflowGraph":"component-ship","packs":["documentation","review"],"theme":"default","demo":"docs/index.html","docs":["docs/guides/ai-skills.html","docs/guides/prompt-scaffolding.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"docs-portal","sections":["hero","toc","examples","faq"]}},{"id":"admin-panel","workflowGraph":"release-gate","packs":["enterprise","review"],"theme":"midnight","demo":"samples/dashboard.html","docs":["docs/guides/ai-skills.html","docs/guides/prompt-scaffolding.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"admin-panel","sections":["kpis","table","forms"]}},{"id":"blog","workflowGraph":"landingpage","packs":["frontend","review"],"theme":"default","demo":"samples/blog.html","docs":["docs/guides/ai-skills.html","docs/guides/prompt-scaffolding.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"blog","sections":["hero","posts","faq","contact"]}},{"id":"ecommerce-shop","workflowGraph":"landingpage","packs":["frontend","review","enterprise"],"theme":"default","demo":"samples/ecommerce.html","docs":["docs/guides/ecommerce.html","docs/guides/prompt-scaffolding.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"shop","sections":["hero","products","proof","faq"]}},{"id":"portfolio","workflowGraph":"landingpage","packs":["design","frontend"],"theme":"soft","demo":"samples/portfolio.html","docs":["docs/guides/ai-skills.html","docs/guides/prompt-scaffolding.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"portfolio","sections":["hero","projects","about","contact"]}},{"id":"laravel-dashboard","workflowGraph":"release-gate","packs":["enterprise","frontend"],"theme":"midnight","demo":"samples/dashboard.html","docs":["docs/guides/laravel.html"],"starterFiles":["templates/vite-velinstyle/index.html"],"defaults":{"pageIntent":"dashboard","sections":["kpis","table","forms"]}}],"projects":[{"id":"marketing-website","name":"Marketing Website","priority":"recommended","workflowGraph":"landingpage","packs":["frontend","design","review"],"skills":["velin-ai-plan-scaffold-review","velin-review-conversion-hero"],"optimizedFor":["cursor","claude-code"]},{"id":"documentation-portal","name":"Documentation Portal","priority":"recommended","workflowGraph":"component-ship","packs":["documentation","review"],"skills":["velin-docs-generate-api","velin-ai-agent-briefing"],"optimizedFor":["cursor","vscode"]},{"id":"admin-panel","name":"Admin Panel","priority":"recommended","workflowGraph":"release-gate","packs":["enterprise","review"],"skills":["velin-perf-audit-fix","velin-security-scan-pii"],"optimizedFor":["cursor"]},{"id":"landing-page","name":"Landing Page","priority":"core","workflowGraph":"landingpage","packs":["frontend","design"],"skills":["velin-review-conversion-hero"],"optimizedFor":["cursor","windsurf"]},{"id":"blog","name":"Blog","priority":"recommended","workflowGraph":"landingpage","packs":["frontend","review"],"skills":["velin-review-seo-meta"],"optimizedFor":["cursor"]},{"id":"ecommerce-shop","name":"E-Commerce Shop","priority":"advanced","workflowGraph":"landingpage","packs":["enterprise","review"],"skills":["velin-security-sanitize-html","velin-review-conversion-hero"],"optimizedFor":["cursor"]},{"id":"portfolio","name":"Portfolio","priority":"recommended","workflowGraph":"landingpage","packs":["design","frontend"],"skills":["velin-motion-reveal-feedback"],"optimizedFor":["cursor","vscode"]},{"id":"laravel-dashboard","name":"Laravel Dashboard","priority":"advanced","workflowGraph":"release-gate","packs":["enterprise","frontend"],"skills":["velin-dx-project-init"],"optimizedFor":["cursor","claude-code"]}]}
@@ -13,7 +13,7 @@ Use this skill when capability targets include: motion, accessibility.
13
13
 
14
14
  ## Prerequisites
15
15
  - Framework compatibility: 1.2.0 to 2.x
16
- - CLI: review
16
+ - CLI: review, motion
17
17
  - Dependencies: none
18
18
 
19
19
  ## Workflow
@@ -13,7 +13,7 @@ Use this skill when capability targets include: motion, build.
13
13
 
14
14
  ## Prerequisites
15
15
  - Framework compatibility: 1.2.0 to 2.x
16
- - CLI: review
16
+ - CLI: review, motion
17
17
  - Dependencies: velin-motion-reduced-safe
18
18
 
19
19
  ## Workflow
@@ -9,6 +9,13 @@
9
9
  --velin-duration-slowest: 800ms;
10
10
  --velin-duration-cinematic: 1200ms;
11
11
 
12
+ /* Motion Design System aliases */
13
+ --velin-motion-fast: var(--velin-duration-fast);
14
+ --velin-motion-normal: var(--velin-duration-normal);
15
+ --velin-motion-slow: var(--velin-duration-slow);
16
+ --velin-bounce: var(--velin-ease-bounce);
17
+ --velin-spring: var(--velin-ease-spring);
18
+
12
19
  /* Easing curves */
13
20
  --velin-ease-default: cubic-bezier(0.4, 0, 0.2, 1);
14
21
  --velin-ease-in: cubic-bezier(0.4, 0, 1, 1);
@@ -19,6 +19,24 @@
19
19
  animation-range: entry 0% entry 60%;
20
20
  }
21
21
 
22
+ .velin-animate-on-scroll--slide-down {
23
+ animation: velin-slide-down linear both;
24
+ animation-timeline: view();
25
+ animation-range: entry 0% entry 60%;
26
+ }
27
+
28
+ .velin-animate-on-scroll--slide-left {
29
+ animation: velin-slide-left linear both;
30
+ animation-timeline: view();
31
+ animation-range: entry 0% entry 60%;
32
+ }
33
+
34
+ .velin-animate-on-scroll--slide-right {
35
+ animation: velin-slide-right linear both;
36
+ animation-timeline: view();
37
+ animation-range: entry 0% entry 60%;
38
+ }
39
+
22
40
  .velin-animate-on-scroll--scale {
23
41
  animation: velin-scale-in linear both;
24
42
  animation-timeline: view();
@@ -59,6 +77,36 @@
59
77
  to { opacity: 1; transform: translateY(0); }
60
78
  }
61
79
 
80
+ @keyframes velin-slide-up {
81
+ from { opacity: 0; transform: translateY(2rem); }
82
+ to { opacity: 1; transform: translateY(0); }
83
+ }
84
+
85
+ @keyframes velin-slide-down {
86
+ from { opacity: 0; transform: translateY(-2rem); }
87
+ to { opacity: 1; transform: translateY(0); }
88
+ }
89
+
90
+ @keyframes velin-slide-left {
91
+ from { opacity: 0; transform: translateX(2rem); }
92
+ to { opacity: 1; transform: translateX(0); }
93
+ }
94
+
95
+ @keyframes velin-slide-right {
96
+ from { opacity: 0; transform: translateX(-2rem); }
97
+ to { opacity: 1; transform: translateX(0); }
98
+ }
99
+
100
+ @keyframes velin-fade-in {
101
+ from { opacity: 0; }
102
+ to { opacity: 1; }
103
+ }
104
+
105
+ @keyframes velin-scale-in {
106
+ from { opacity: 0; transform: scale(0.92); }
107
+ to { opacity: 1; transform: scale(1); }
108
+ }
109
+
62
110
  @keyframes velin-scroll-progress-grow {
63
111
  from { transform: scaleX(0); }
64
112
  to { transform: scaleX(1); }
@@ -88,6 +136,18 @@
88
136
  opacity: 0;
89
137
  transform: translateY(2rem);
90
138
  }
139
+ .velin-animate-on-scroll--slide-down:not(.velin-in-view) {
140
+ opacity: 0;
141
+ transform: translateY(-2rem);
142
+ }
143
+ .velin-animate-on-scroll--slide-left:not(.velin-in-view) {
144
+ opacity: 0;
145
+ transform: translateX(2rem);
146
+ }
147
+ .velin-animate-on-scroll--slide-right:not(.velin-in-view) {
148
+ opacity: 0;
149
+ transform: translateX(-2rem);
150
+ }
91
151
  .velin-animate-on-scroll--scale:not(.velin-in-view) {
92
152
  opacity: 0;
93
153
  transform: scale(0.92);
@@ -95,6 +155,9 @@
95
155
  .velin-animate-on-scroll.velin-in-view,
96
156
  .velin-animate-on-scroll--fade.velin-in-view,
97
157
  .velin-animate-on-scroll--slide-up.velin-in-view,
158
+ .velin-animate-on-scroll--slide-down.velin-in-view,
159
+ .velin-animate-on-scroll--slide-left.velin-in-view,
160
+ .velin-animate-on-scroll--slide-right.velin-in-view,
98
161
  .velin-animate-on-scroll--scale.velin-in-view {
99
162
  opacity: 1;
100
163
  transform: none;
@@ -112,6 +175,9 @@
112
175
  .velin-animate-on-scroll,
113
176
  .velin-animate-on-scroll--fade,
114
177
  .velin-animate-on-scroll--slide-up,
178
+ .velin-animate-on-scroll--slide-down,
179
+ .velin-animate-on-scroll--slide-left,
180
+ .velin-animate-on-scroll--slide-right,
115
181
  .velin-animate-on-scroll--scale,
116
182
  .velin-parallax,
117
183
  .velin-parallax--slow {