@birdapi/velinstyle 1.2.1 → 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.
- package/README.de.md +148 -11
- package/README.md +174 -16
- package/cli/__fixtures__/atelier-library/showcases/01-login/app.css +1 -0
- package/cli/__fixtures__/atelier-library/showcases/01-login/app.js +2 -0
- package/cli/__fixtures__/atelier-library/showcases/01-login/index.html +5 -0
- package/cli/__fixtures__/atelier-library/showcases/04-pricing/app.css +1 -0
- package/cli/__fixtures__/atelier-library/showcases/04-pricing/app.js +2 -0
- package/cli/__fixtures__/atelier-library/showcases/04-pricing/index.html +5 -0
- package/cli/__fixtures__/atelier-library/showcases/36-calendar/app.css +1 -0
- package/cli/__fixtures__/atelier-library/showcases/36-calendar/app.js +2 -0
- package/cli/__fixtures__/atelier-library/showcases/36-calendar/index.html +5 -0
- package/cli/atelier-catalog.json +1267 -0
- package/cli/atelier-formats.js +159 -0
- package/cli/atelier.js +382 -0
- package/cli/blueprints/empty-state.html +3 -5
- package/cli/cli-manifest.json +441 -161
- package/cli/docgen/extract-cli.js +2 -1
- package/cli/docs-generate.js +9 -0
- package/cli/experience.js +173 -0
- package/cli/index.js +1384 -361
- package/cli/motion.js +738 -0
- package/cli/production/component-graph.json +166 -0
- package/cli/production/explain.js +52 -0
- package/cli/production/extract.js +278 -0
- package/cli/production/graph.js +102 -0
- package/cli/production/report.js +168 -0
- package/cli/production/run.js +355 -0
- package/cli/production/trim-css.js +177 -0
- package/cli/production/trim-fonts.js +23 -0
- package/cli/production/trim-icons.js +38 -0
- package/cli/production/trim-js.js +48 -0
- package/cli/production/trim-motion.js +22 -0
- package/cli/production/trim-themes.js +50 -0
- package/cli/production/watch.js +38 -0
- package/cli/review.js +48 -1
- package/cli/scripts/write-atelier-fixtures.mjs +33 -0
- package/cli/security.js +190 -0
- package/cli/skills.js +53 -10
- package/cli/transparency.js +140 -41
- package/cli/workflow.js +32 -17
- package/components/index.js +3 -0
- package/components/runtime/component-loaders.js +3 -0
- package/components/velin-drawer.js +43 -4
- package/components/velin-empty-state.js +83 -0
- package/components/velin-modal.js +76 -15
- package/components/velin-otp-input.js +220 -0
- package/components/velin-password-strength.js +147 -0
- package/components/velin-sheet.js +49 -4
- package/components/velin-theme-toggle.js +15 -1
- package/core/a11y/component-contracts.json +391 -255
- package/core/attributes/registry.js +1 -1
- package/core/meta/knowledge/components.json +75 -3
- package/core/motion/analyze.js +38 -0
- package/core/motion/blueprint.js +51 -0
- package/core/motion/composer.js +114 -0
- package/core/motion/data/registry.json +352 -0
- package/core/motion/effects.js +17 -1
- package/core/motion/index.js +112 -9
- package/core/motion/optimize.js +44 -0
- package/core/motion/policy.js +77 -0
- package/core/motion/registry.js +131 -0
- package/core/motion/review.js +59 -0
- package/core/motion/scan.js +150 -0
- package/core/motion/timeline.js +68 -0
- package/core/motion/transitions.js +49 -0
- package/core/motion/triggers.js +168 -0
- package/core/security/checks/fs.js +92 -0
- package/core/security/detect.js +35 -0
- package/core/security/engine.js +116 -0
- package/core/security/index.js +18 -0
- package/core/security/registry.js +85 -0
- package/core/security/report/report.js +113 -0
- package/core/security/rules/ci/index.js +146 -0
- package/core/security/rules/consumer/index.js +174 -0
- package/core/security/rules/deps/index.js +182 -0
- package/core/security/rules/index.js +24 -0
- package/core/security/rules/publish/index.js +230 -0
- package/core/security/rules/repo/index.js +143 -0
- package/core/security/rules/secrets/index.js +133 -0
- package/core/security/score/dependency-health.js +53 -0
- package/core/security/score/release-health.js +66 -0
- package/core/security/score/score.js +102 -0
- package/core/security/timeline/timeline.js +76 -0
- package/dist/chunks/attributes-2ORR27KA.js +404 -0
- package/dist/chunks/attributes-HK7VIOLA.js +1080 -0
- package/dist/chunks/attributes-VRHHVNDO.js +1080 -0
- package/dist/chunks/chunk-MYKUI364.js +116 -0
- package/dist/chunks/chunk-NEVBPD5T.js +116 -0
- package/dist/chunks/chunk-Y6HN7HWX.js +116 -0
- package/dist/chunks/runtime-entry.js +1 -1
- package/dist/chunks/velin-drawer-A7Q7EBOS.js +162 -0
- package/dist/chunks/velin-empty-state-3NTUH2RF.js +81 -0
- package/dist/chunks/velin-modal-3MV4FYBK.js +231 -0
- package/dist/chunks/velin-otp-input-PSK42MM6.js +207 -0
- package/dist/chunks/velin-password-strength-TAXMLSED.js +136 -0
- package/dist/chunks/velin-sheet-N2VVYXFP.js +157 -0
- package/dist/chunks/velin-theme-toggle-J2NHC7IM.js +304 -0
- package/dist/llms.txt +4 -4
- package/dist/search-index.json +232 -5
- package/dist/velin-agent.json +433 -46
- package/dist/velinstyle-components.iife.js +3695 -2272
- package/dist/velinstyle-components.js +3698 -2271
- package/dist/velinstyle-components.min.js +262 -120
- package/dist/velinstyle.css +96 -13
- package/dist/velinstyle.d.ts +3 -0
- package/dist/velinstyle.min.css +1 -1
- package/package.json +19 -4
- package/packages/velinstyle-cli-core/package.json +11 -0
- package/packages/velinstyle-cli-core/src/config.js +84 -0
- package/packages/velinstyle-cli-core/src/contract.js +56 -0
- package/packages/velinstyle-cli-core/src/event-bus.js +50 -0
- package/packages/velinstyle-cli-core/src/index.js +18 -0
- package/packages/velinstyle-cli-core/src/lifecycle.js +33 -0
- package/packages/velinstyle-cli-core/src/runner.js +129 -0
- package/packages/velinstyle-cli-registry/data/commands.json +1216 -0
- package/packages/velinstyle-cli-registry/data/layouts.json +33 -0
- package/packages/velinstyle-cli-registry/data/widgets.json +35 -0
- package/packages/velinstyle-cli-registry/package.json +13 -0
- package/packages/velinstyle-cli-registry/src/index.js +88 -0
- package/packages/velinstyle-cli-renderer/package.json +8 -0
- package/packages/velinstyle-cli-renderer/src/index.js +286 -0
- package/packages/velinstyle-cli-theme/package.json +8 -0
- package/packages/velinstyle-cli-theme/src/index.js +84 -0
- package/packages/velinstyle-cli-ui/package.json +8 -0
- package/packages/velinstyle-cli-ui/src/index.js +34 -0
- package/packages/velinstyle-motion/README.md +81 -0
- package/packages/velinstyle-motion/package.json +37 -0
- package/packages/velinstyle-motion/src/ai/mini-prompt.js +119 -0
- package/packages/velinstyle-motion/src/ai/provider.js +59 -0
- package/packages/velinstyle-motion/src/ai/providers/pixverse-setup.js +402 -0
- package/packages/velinstyle-motion/src/ai/providers/pixverse.js +245 -0
- package/packages/velinstyle-motion/src/config.js +257 -0
- package/packages/velinstyle-motion/src/export/html-clip.js +141 -0
- package/packages/velinstyle-motion/src/index.js +304 -0
- package/packages/velinstyle-motion/src/jobs/cache.js +30 -0
- package/packages/velinstyle-motion/src/jobs/queue.js +69 -0
- package/packages/velinstyle-motion/src/jobs/usage.js +53 -0
- package/packages/velinstyle-motion/src/local/effects.js +139 -0
- package/packages/velinstyle-motion/src/local/engine.js +96 -0
- package/packages/velinstyle-motion/src/providers-catalog.js +44 -0
- package/packages/velinstyle-motion/src/registry/presets.js +25 -0
- package/packages/velinstyle-motion/src/registry/presets.json +85 -0
- package/packages/velinstyle-motion/src/ux/cost-gate.js +37 -0
- package/packages/velinstyle-motion/src/ux/pixverse-gate.js +153 -0
- package/packages/velinstyle-motion/src/ux/wizard.js +171 -0
- package/packages/velinstyle-motion/src/validate-image.js +91 -0
- package/packages/velinstyle-skills/catalog.json +1 -1
- package/packages/velinstyle-skills/registry.json +1 -142
- package/packages/velinstyle-skills/skills/velin-motion-reduced-safe/SKILL.md +1 -1
- package/packages/velinstyle-skills/skills/velin-motion-reveal-feedback/SKILL.md +1 -1
- package/src/components/data-table.css +19 -0
- package/src/components/empty-auth.css +33 -0
- package/src/components/table.css +16 -6
- package/src/tokens/motion.css +7 -0
- package/src/utilities/scroll-animation.css +66 -0
- package/src/velinstyle.css +1 -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"]}]}
|
|
@@ -65,6 +65,25 @@
|
|
|
65
65
|
text-align: center;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
/* Row severity (class + data-severity alias) */
|
|
69
|
+
.velin-data-table__row--danger,
|
|
70
|
+
.velin-data-table tr[data-severity="danger"] {
|
|
71
|
+
background-color: color-mix(in oklch, var(--velin-color-danger) 12%, transparent);
|
|
72
|
+
box-shadow: inset 3px 0 0 var(--velin-color-danger);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.velin-data-table__row--warning,
|
|
76
|
+
.velin-data-table tr[data-severity="warning"] {
|
|
77
|
+
background-color: color-mix(in oklch, var(--velin-color-warning) 12%, transparent);
|
|
78
|
+
box-shadow: inset 3px 0 0 var(--velin-color-warning);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.velin-data-table__row--selected,
|
|
82
|
+
.velin-data-table tr[data-severity="selected"] {
|
|
83
|
+
background-color: color-mix(in oklch, var(--velin-color-primary) 12%, transparent);
|
|
84
|
+
box-shadow: inset 3px 0 0 var(--velin-color-primary);
|
|
85
|
+
}
|
|
86
|
+
|
|
68
87
|
.velin-data-table__pagination {
|
|
69
88
|
display: flex;
|
|
70
89
|
align-items: center;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.velin-otp-input {
|
|
3
|
+
display: block;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.velin-password-strength {
|
|
7
|
+
display: block;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.velin-empty-state {
|
|
11
|
+
display: block;
|
|
12
|
+
text-align: center;
|
|
13
|
+
padding: var(--velin-space-8) var(--velin-space-4);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.velin-empty-state__title {
|
|
17
|
+
margin: 0 0 var(--velin-space-2);
|
|
18
|
+
font-size: var(--velin-text-xl);
|
|
19
|
+
font-weight: var(--velin-weight-bold);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.velin-empty-state__description {
|
|
23
|
+
margin: 0 0 var(--velin-space-4);
|
|
24
|
+
color: var(--velin-color-text-muted);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.velin-empty-state__actions {
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-wrap: wrap;
|
|
30
|
+
gap: var(--velin-space-3);
|
|
31
|
+
justify-content: center;
|
|
32
|
+
}
|
|
33
|
+
}
|
package/src/components/table.css
CHANGED
|
@@ -55,12 +55,22 @@
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
/* Row color variants */
|
|
58
|
-
.velin-table-primary
|
|
59
|
-
.velin-table
|
|
60
|
-
.velin-table-
|
|
61
|
-
.velin-table
|
|
62
|
-
.velin-table-
|
|
63
|
-
.velin-table
|
|
58
|
+
.velin-table-primary,
|
|
59
|
+
.velin-table--primary { background-color: color-mix(in oklch, var(--velin-color-primary) 10%, transparent); }
|
|
60
|
+
.velin-table-secondary,
|
|
61
|
+
.velin-table--secondary { background-color: color-mix(in oklch, var(--velin-color-secondary) 10%, transparent); }
|
|
62
|
+
.velin-table-success,
|
|
63
|
+
.velin-table--success { background-color: color-mix(in oklch, var(--velin-color-success) 10%, transparent); }
|
|
64
|
+
.velin-table-warning,
|
|
65
|
+
.velin-table--warning { background-color: color-mix(in oklch, var(--velin-color-warning) 10%, transparent); }
|
|
66
|
+
.velin-table-danger,
|
|
67
|
+
.velin-table--danger { background-color: color-mix(in oklch, var(--velin-color-danger) 10%, transparent); }
|
|
68
|
+
.velin-table-info,
|
|
69
|
+
.velin-table--info { background-color: color-mix(in oklch, var(--velin-color-info) 10%, transparent); }
|
|
70
|
+
.velin-table--selected {
|
|
71
|
+
background-color: color-mix(in oklch, var(--velin-color-primary) 12%, transparent);
|
|
72
|
+
box-shadow: inset 3px 0 0 var(--velin-color-primary);
|
|
73
|
+
}
|
|
64
74
|
|
|
65
75
|
/* Caption top */
|
|
66
76
|
.velin-table .velin-caption-top {
|
package/src/tokens/motion.css
CHANGED
|
@@ -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);
|