claude-skill-lord 1.5.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/.claude-plugin/marketplace.json +19 -0
- package/.claude-plugin/plugin.json +54 -0
- package/CLAUDE.md +81 -0
- package/LICENSE +33 -0
- package/LICENSE-ui-ux-pro-max.txt +21 -0
- package/README.md +294 -0
- package/agents/architect.md +211 -0
- package/agents/brainstormer.md +103 -0
- package/agents/build-error-resolver.md +114 -0
- package/agents/chief-of-staff.md +151 -0
- package/agents/code-reviewer.md +285 -0
- package/agents/copywriter.md +111 -0
- package/agents/database-admin.md +91 -0
- package/agents/debugger.md +135 -0
- package/agents/docs-manager.md +119 -0
- package/agents/e2e-runner.md +107 -0
- package/agents/git-manager.md +199 -0
- package/agents/harness-optimizer.md +35 -0
- package/agents/loop-operator.md +36 -0
- package/agents/planner.md +245 -0
- package/agents/project-manager.md +117 -0
- package/agents/quality-gate.md +173 -0
- package/agents/refactor-cleaner.md +85 -0
- package/agents/scout.md +105 -0
- package/agents/security-reviewer.md +108 -0
- package/agents/skill-router.md +112 -0
- package/agents/tdd-guide.md +91 -0
- package/agents/ui-ux-designer.md +220 -0
- package/assets/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/assets/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/assets/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/assets/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/assets/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/assets/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/assets/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/assets/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/assets/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/assets/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/assets/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/assets/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/assets/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/assets/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/assets/canvas-fonts/DMMono-OFL.txt +93 -0
- package/assets/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/assets/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/assets/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/assets/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/assets/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/assets/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/assets/canvas-fonts/Gloock-OFL.txt +93 -0
- package/assets/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/assets/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/assets/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/assets/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/assets/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/assets/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/assets/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/assets/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/assets/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/assets/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/assets/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/assets/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/assets/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/assets/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/assets/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/assets/canvas-fonts/Italiana-OFL.txt +93 -0
- package/assets/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/assets/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/assets/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/assets/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/assets/canvas-fonts/Jura-Light.ttf +0 -0
- package/assets/canvas-fonts/Jura-Medium.ttf +0 -0
- package/assets/canvas-fonts/Jura-OFL.txt +93 -0
- package/assets/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/assets/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/assets/canvas-fonts/Lora-Bold.ttf +0 -0
- package/assets/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/assets/canvas-fonts/Lora-Italic.ttf +0 -0
- package/assets/canvas-fonts/Lora-OFL.txt +93 -0
- package/assets/canvas-fonts/Lora-Regular.ttf +0 -0
- package/assets/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/assets/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/assets/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/assets/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/assets/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/assets/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/assets/canvas-fonts/Outfit-OFL.txt +93 -0
- package/assets/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/assets/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/assets/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/assets/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/assets/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/assets/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/assets/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/assets/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/assets/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/assets/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/assets/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/assets/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/assets/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/assets/canvas-fonts/Tektur-OFL.txt +93 -0
- package/assets/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/assets/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/assets/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/assets/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/assets/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/assets/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/assets/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/assets/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/commands/ask.md +56 -0
- package/commands/audit.md +25 -0
- package/commands/bootstrap/auto/fast.md +111 -0
- package/commands/bootstrap/auto.md +115 -0
- package/commands/bootstrap.md +137 -0
- package/commands/brainstorm.md +69 -0
- package/commands/build-fix.md +66 -0
- package/commands/code-review.md +44 -0
- package/commands/code.md +93 -0
- package/commands/commit_gen.md +44 -0
- package/commands/content/cro.md +43 -0
- package/commands/content/enhance.md +14 -0
- package/commands/content/fast.md +13 -0
- package/commands/content/good.md +16 -0
- package/commands/cook/auto/fast.md +26 -0
- package/commands/cook/auto.md +15 -0
- package/commands/cook.md +105 -0
- package/commands/debug.md +13 -0
- package/commands/design/3d.md +74 -0
- package/commands/design/describe.md +21 -0
- package/commands/design/fast.md +22 -0
- package/commands/design/good.md +26 -0
- package/commands/design/screenshot.md +32 -0
- package/commands/design/video.md +32 -0
- package/commands/docs/init.md +15 -0
- package/commands/docs/summarize.md +22 -0
- package/commands/docs/update.md +23 -0
- package/commands/e2e.md +365 -0
- package/commands/evolve.md +178 -0
- package/commands/fix/ci.md +20 -0
- package/commands/fix/fast.md +19 -0
- package/commands/fix/hard.md +43 -0
- package/commands/fix/logs.md +20 -0
- package/commands/fix/test.md +20 -0
- package/commands/fix/types.md +9 -0
- package/commands/fix/ui.md +35 -0
- package/commands/fix.md +12 -0
- package/commands/git/cm.md +11 -0
- package/commands/git/cp.md +9 -0
- package/commands/git/pr.md +15 -0
- package/commands/integrate/polar.md +28 -0
- package/commands/integrate/sepay.md +28 -0
- package/commands/journal.md +5 -0
- package/commands/learn.md +74 -0
- package/commands/loop-start.md +36 -0
- package/commands/loop-status.md +28 -0
- package/commands/model-route.md +30 -0
- package/commands/plan.md +115 -0
- package/commands/prompt-optimize.md +38 -0
- package/commands/quality-gate.md +33 -0
- package/commands/refactor-clean.md +84 -0
- package/commands/review/codebase.md +49 -0
- package/commands/route.md +28 -0
- package/commands/scout/ext.md +35 -0
- package/commands/scout.md +28 -0
- package/commands/skill/add.md +29 -0
- package/commands/skill/create.md +22 -0
- package/commands/skill/fix-logs.md +21 -0
- package/commands/skill/optimize.md +28 -0
- package/commands/skill-create.md +174 -0
- package/commands/tdd.md +328 -0
- package/commands/test.md +8 -0
- package/commands/verify.md +63 -0
- package/commands/watzup.md +8 -0
- package/hooks/hooks.json +86 -0
- package/hooks/scripts/block-no-verify.js +19 -0
- package/hooks/scripts/check-console-log.js +71 -0
- package/hooks/scripts/check-hook-enabled.js +12 -0
- package/hooks/scripts/config-protection.js +125 -0
- package/hooks/scripts/post-edit-console-warn.js +54 -0
- package/hooks/scripts/post-edit-format.js +109 -0
- package/hooks/scripts/post-edit-typecheck.js +96 -0
- package/hooks/scripts/quality-gate.js +168 -0
- package/hooks/scripts/run-with-flags-shell.sh +32 -0
- package/hooks/scripts/run-with-flags.js +120 -0
- package/hooks/scripts/session-end.js +301 -0
- package/hooks/scripts/session-start.js +98 -0
- package/manifests/install-modules.json +96 -0
- package/manifests/install-profiles.json +17 -0
- package/package.json +52 -0
- package/scripts/install.js +144 -0
- package/scripts/lib/hook-flags.js +74 -0
- package/scripts/lib/profile-utils.js +97 -0
- package/scripts/lib/resolve-formatter.js +185 -0
- package/scripts/lib/resolve-root.js +89 -0
- package/scripts/lib/utils.js +564 -0
- package/scripts/sl.js +677 -0
- package/skills/manifest.json +493 -0
- package/skills/tier-1/api-design/SKILL.md +523 -0
- package/skills/tier-1/backend-development/SKILL.md +95 -0
- package/skills/tier-1/backend-development/references/backend-api-design.md +495 -0
- package/skills/tier-1/backend-development/references/backend-architecture.md +454 -0
- package/skills/tier-1/backend-development/references/backend-authentication.md +338 -0
- package/skills/tier-1/backend-development/references/backend-code-quality.md +659 -0
- package/skills/tier-1/backend-development/references/backend-debugging.md +904 -0
- package/skills/tier-1/backend-development/references/backend-devops.md +494 -0
- package/skills/tier-1/backend-development/references/backend-mindset.md +387 -0
- package/skills/tier-1/backend-development/references/backend-performance.md +397 -0
- package/skills/tier-1/backend-development/references/backend-security.md +290 -0
- package/skills/tier-1/backend-development/references/backend-technologies.md +256 -0
- package/skills/tier-1/backend-development/references/backend-testing.md +429 -0
- package/skills/tier-1/code-review/SKILL.md +143 -0
- package/skills/tier-1/code-review/references/code-review-reception.md +209 -0
- package/skills/tier-1/code-review/references/requesting-code-review.md +105 -0
- package/skills/tier-1/code-review/references/verification-before-completion.md +139 -0
- package/skills/tier-1/databases/SKILL.md +232 -0
- package/skills/tier-1/databases/references/mongodb-aggregation.md +447 -0
- package/skills/tier-1/databases/references/mongodb-atlas.md +465 -0
- package/skills/tier-1/databases/references/mongodb-crud.md +408 -0
- package/skills/tier-1/databases/references/mongodb-indexing.md +442 -0
- package/skills/tier-1/databases/references/postgresql-administration.md +594 -0
- package/skills/tier-1/databases/references/postgresql-performance.md +527 -0
- package/skills/tier-1/databases/references/postgresql-psql-cli.md +467 -0
- package/skills/tier-1/databases/references/postgresql-queries.md +475 -0
- package/skills/tier-1/databases/scripts/.coverage +0 -0
- package/skills/tier-1/databases/scripts/db_backup.py +502 -0
- package/skills/tier-1/databases/scripts/db_migrate.py +414 -0
- package/skills/tier-1/databases/scripts/db_performance_check.py +444 -0
- package/skills/tier-1/databases/scripts/requirements.txt +20 -0
- package/skills/tier-1/databases/scripts/tests/coverage-db.json +1 -0
- package/skills/tier-1/databases/scripts/tests/requirements.txt +4 -0
- package/skills/tier-1/databases/scripts/tests/test_db_backup.py +340 -0
- package/skills/tier-1/databases/scripts/tests/test_db_migrate.py +277 -0
- package/skills/tier-1/databases/scripts/tests/test_db_performance_check.py +370 -0
- package/skills/tier-1/debugging/SKILL.md +84 -0
- package/skills/tier-1/debugging/references/defense-in-depth.md +124 -0
- package/skills/tier-1/debugging/references/root-cause-tracing.md +122 -0
- package/skills/tier-1/debugging/references/systematic-debugging.md +102 -0
- package/skills/tier-1/debugging/references/verification.md +123 -0
- package/skills/tier-1/debugging/scripts/find-polluter.sh +63 -0
- package/skills/tier-1/debugging/scripts/find-polluter.test.md +102 -0
- package/skills/tier-1/devops/.env.example +76 -0
- package/skills/tier-1/devops/SKILL.md +285 -0
- package/skills/tier-1/devops/references/browser-rendering.md +305 -0
- package/skills/tier-1/devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/tier-1/devops/references/cloudflare-platform.md +271 -0
- package/skills/tier-1/devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/tier-1/devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/tier-1/devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/tier-1/devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/tier-1/devops/references/docker-basics.md +297 -0
- package/skills/tier-1/devops/references/docker-compose.md +292 -0
- package/skills/tier-1/devops/references/gcloud-platform.md +297 -0
- package/skills/tier-1/devops/references/gcloud-services.md +304 -0
- package/skills/tier-1/devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/tier-1/devops/scripts/docker_optimize.py +320 -0
- package/skills/tier-1/devops/scripts/requirements.txt +20 -0
- package/skills/tier-1/devops/scripts/tests/requirements.txt +3 -0
- package/skills/tier-1/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/skills/tier-1/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/skills/tier-1/frontend-development/SKILL.md +399 -0
- package/skills/tier-1/frontend-development/resources/common-patterns.md +331 -0
- package/skills/tier-1/frontend-development/resources/complete-examples.md +872 -0
- package/skills/tier-1/frontend-development/resources/component-patterns.md +502 -0
- package/skills/tier-1/frontend-development/resources/data-fetching.md +767 -0
- package/skills/tier-1/frontend-development/resources/file-organization.md +502 -0
- package/skills/tier-1/frontend-development/resources/loading-and-error-states.md +501 -0
- package/skills/tier-1/frontend-development/resources/performance.md +406 -0
- package/skills/tier-1/frontend-development/resources/routing-guide.md +364 -0
- package/skills/tier-1/frontend-development/resources/styling-guide.md +428 -0
- package/skills/tier-1/frontend-development/resources/typescript-standards.md +418 -0
- package/skills/tier-1/react-best-practices/AGENTS.md +2410 -0
- package/skills/tier-1/react-best-practices/README.md +123 -0
- package/skills/tier-1/react-best-practices/SKILL.md +125 -0
- package/skills/tier-1/react-best-practices/metadata.json +15 -0
- package/skills/tier-1/react-best-practices/rules/_sections.md +46 -0
- package/skills/tier-1/react-best-practices/rules/_template.md +28 -0
- package/skills/tier-1/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/tier-1/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/skills/tier-1/react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/tier-1/react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/tier-1/react-best-practices/rules/async-dependencies.md +36 -0
- package/skills/tier-1/react-best-practices/rules/async-parallel.md +28 -0
- package/skills/tier-1/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/tier-1/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/tier-1/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/tier-1/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/tier-1/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/tier-1/react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/tier-1/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/tier-1/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/tier-1/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/tier-1/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/tier-1/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/skills/tier-1/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/tier-1/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/tier-1/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/tier-1/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/tier-1/react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/tier-1/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/tier-1/react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/tier-1/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/tier-1/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/tier-1/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/tier-1/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/tier-1/react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/tier-1/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/tier-1/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/tier-1/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/tier-1/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/tier-1/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/tier-1/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/tier-1/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/tier-1/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/tier-1/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/tier-1/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/tier-1/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/tier-1/react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/tier-1/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/tier-1/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/tier-1/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/tier-1/react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/tier-1/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/tier-1/react-best-practices/rules/server-serialization.md +38 -0
- package/skills/tier-1/research/SKILL.md +168 -0
- package/skills/tier-1/security-review/SKILL.md +495 -0
- package/skills/tier-1/security-review/cloud-infrastructure-security.md +361 -0
- package/skills/tier-1/sequential-thinking/.env.example +8 -0
- package/skills/tier-1/sequential-thinking/README.md +183 -0
- package/skills/tier-1/sequential-thinking/SKILL.md +94 -0
- package/skills/tier-1/sequential-thinking/package.json +31 -0
- package/skills/tier-1/sequential-thinking/references/advanced-strategies.md +79 -0
- package/skills/tier-1/sequential-thinking/references/advanced-techniques.md +76 -0
- package/skills/tier-1/sequential-thinking/references/core-patterns.md +95 -0
- package/skills/tier-1/sequential-thinking/references/examples-api.md +88 -0
- package/skills/tier-1/sequential-thinking/references/examples-architecture.md +94 -0
- package/skills/tier-1/sequential-thinking/references/examples-debug.md +90 -0
- package/skills/tier-1/sequential-thinking/scripts/format-thought.js +159 -0
- package/skills/tier-1/sequential-thinking/scripts/process-thought.js +236 -0
- package/skills/tier-1/sequential-thinking/tests/format-thought.test.js +133 -0
- package/skills/tier-1/sequential-thinking/tests/process-thought.test.js +215 -0
- package/skills/tier-1/tdd-workflow/SKILL.md +410 -0
- package/skills/tier-1/testing/SKILL.md +56 -0
- package/skills/tier-1/ui-styling/LICENSE.txt +202 -0
- package/skills/tier-1/ui-styling/SKILL.md +321 -0
- package/skills/tier-1/ui-styling/references/canvas-design-system.md +320 -0
- package/skills/tier-1/ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/tier-1/ui-styling/references/shadcn-components.md +424 -0
- package/skills/tier-1/ui-styling/references/shadcn-theming.md +373 -0
- package/skills/tier-1/ui-styling/references/tailwind-customization.md +483 -0
- package/skills/tier-1/ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/tier-1/ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/tier-1/ui-styling/scripts/.coverage +0 -0
- package/skills/tier-1/ui-styling/scripts/requirements.txt +17 -0
- package/skills/tier-1/ui-styling/scripts/shadcn_add.py +292 -0
- package/skills/tier-1/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/skills/tier-1/ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/skills/tier-1/ui-styling/scripts/tests/requirements.txt +3 -0
- package/skills/tier-1/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/skills/tier-1/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/skills/tier-1/ui-ux-pro-max/SKILL.md +659 -0
- package/skills/tier-1/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/skills/tier-1/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/skills/tier-1/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/tier-1/ui-ux-pro-max/data/colors.csv +162 -0
- package/skills/tier-1/ui-ux-pro-max/data/design.csv +1776 -0
- package/skills/tier-1/ui-ux-pro-max/data/draft.csv +1779 -0
- package/skills/tier-1/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/skills/tier-1/ui-ux-pro-max/data/icons.csv +106 -0
- package/skills/tier-1/ui-ux-pro-max/data/landing.csv +35 -0
- package/skills/tier-1/ui-ux-pro-max/data/products.csv +162 -0
- package/skills/tier-1/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/tier-1/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/tier-1/ui-ux-pro-max/data/styles.csv +85 -0
- package/skills/tier-1/ui-ux-pro-max/data/typography.csv +74 -0
- package/skills/tier-1/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/skills/tier-1/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/tier-1/ui-ux-pro-max/scripts/core.py +247 -0
- package/skills/tier-1/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/tier-1/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/tier-1/ui-ux-pro-max/templates/base/quick-reference.md +297 -0
- package/skills/tier-1/ui-ux-pro-max/templates/base/skill-content.md +358 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/agent.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/claude.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/codebuddy.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/codex.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/continue.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/copilot.json +18 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/cursor.json +18 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/droid.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/gemini.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/kiro.json +18 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/opencode.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/qoder.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/roocode.json +18 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/trae.json +21 -0
- package/skills/tier-1/ui-ux-pro-max/templates/platforms/windsurf.json +18 -0
- package/skills/tier-1/web-frameworks/SKILL.md +324 -0
- package/skills/tier-1/web-frameworks/references/nextjs-app-router.md +465 -0
- package/skills/tier-1/web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/skills/tier-1/web-frameworks/references/nextjs-optimization.md +511 -0
- package/skills/tier-1/web-frameworks/references/nextjs-server-components.md +495 -0
- package/skills/tier-1/web-frameworks/references/remix-icon-integration.md +603 -0
- package/skills/tier-1/web-frameworks/references/turborepo-caching.md +551 -0
- package/skills/tier-1/web-frameworks/references/turborepo-pipelines.md +517 -0
- package/skills/tier-1/web-frameworks/references/turborepo-setup.md +542 -0
- package/skills/tier-1/web-frameworks/scripts/.coverage +0 -0
- package/skills/tier-1/web-frameworks/scripts/__init__.py +0 -0
- package/skills/tier-1/web-frameworks/scripts/nextjs_init.py +547 -0
- package/skills/tier-1/web-frameworks/scripts/requirements.txt +16 -0
- package/skills/tier-1/web-frameworks/scripts/tests/coverage-web.json +1 -0
- package/skills/tier-1/web-frameworks/scripts/tests/requirements.txt +3 -0
- package/skills/tier-1/web-frameworks/scripts/tests/test_nextjs_init.py +319 -0
- package/skills/tier-1/web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -0
- package/skills/tier-1/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/skills/tier-2/ai-multimodal/.env.example +97 -0
- package/skills/tier-2/ai-multimodal/SKILL.md +353 -0
- package/skills/tier-2/ai-multimodal/references/audio-processing.md +373 -0
- package/skills/tier-2/ai-multimodal/references/image-generation.md +558 -0
- package/skills/tier-2/ai-multimodal/references/video-analysis.md +498 -0
- package/skills/tier-2/ai-multimodal/references/vision-understanding.md +479 -0
- package/skills/tier-2/ai-multimodal/scripts/.coverage +0 -0
- package/skills/tier-2/ai-multimodal/scripts/document_converter.py +395 -0
- package/skills/tier-2/ai-multimodal/scripts/gemini_batch_process.py +480 -0
- package/skills/tier-2/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/skills/tier-2/ai-multimodal/scripts/requirements.txt +26 -0
- package/skills/tier-2/ai-multimodal/scripts/tests/.coverage +0 -0
- package/skills/tier-2/ai-multimodal/scripts/tests/requirements.txt +20 -0
- package/skills/tier-2/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
- package/skills/tier-2/ai-multimodal/scripts/tests/test_failures.log +258 -0
- package/skills/tier-2/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
- package/skills/tier-2/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
- package/skills/tier-2/autonomous-loops/SKILL.md +610 -0
- package/skills/tier-2/backend-patterns/SKILL.md +598 -0
- package/skills/tier-2/better-auth/SKILL.md +204 -0
- package/skills/tier-2/better-auth/references/advanced-features.md +553 -0
- package/skills/tier-2/better-auth/references/database-integration.md +577 -0
- package/skills/tier-2/better-auth/references/email-password-auth.md +416 -0
- package/skills/tier-2/better-auth/references/oauth-providers.md +430 -0
- package/skills/tier-2/better-auth/scripts/.coverage +0 -0
- package/skills/tier-2/better-auth/scripts/better_auth_init.py +521 -0
- package/skills/tier-2/better-auth/scripts/requirements.txt +15 -0
- package/skills/tier-2/better-auth/scripts/tests/.coverage +0 -0
- package/skills/tier-2/better-auth/scripts/tests/test_better_auth_init.py +421 -0
- package/skills/tier-2/brand/SKILL.md +97 -0
- package/skills/tier-2/brand/references/approval-checklist.md +169 -0
- package/skills/tier-2/brand/references/asset-organization.md +157 -0
- package/skills/tier-2/brand/references/brand-guideline-template.md +140 -0
- package/skills/tier-2/brand/references/color-palette-management.md +186 -0
- package/skills/tier-2/brand/references/consistency-checklist.md +94 -0
- package/skills/tier-2/brand/references/logo-usage-rules.md +185 -0
- package/skills/tier-2/brand/references/messaging-framework.md +85 -0
- package/skills/tier-2/brand/references/typography-specifications.md +214 -0
- package/skills/tier-2/brand/references/update.md +118 -0
- package/skills/tier-2/brand/references/visual-identity.md +96 -0
- package/skills/tier-2/brand/references/voice-framework.md +88 -0
- package/skills/tier-2/brand/scripts/extract-colors.cjs +341 -0
- package/skills/tier-2/brand/scripts/inject-brand-context.cjs +349 -0
- package/skills/tier-2/brand/scripts/sync-brand-to-tokens.cjs +266 -0
- package/skills/tier-2/brand/scripts/validate-asset.cjs +387 -0
- package/skills/tier-2/brand/templates/brand-guidelines-starter.md +275 -0
- package/skills/tier-2/claude-code/SKILL.md +188 -0
- package/skills/tier-2/claude-code/references/advanced-features.md +399 -0
- package/skills/tier-2/claude-code/references/agent-skills.md +399 -0
- package/skills/tier-2/claude-code/references/api-reference.md +498 -0
- package/skills/tier-2/claude-code/references/best-practices.md +447 -0
- package/skills/tier-2/claude-code/references/cicd-integration.md +428 -0
- package/skills/tier-2/claude-code/references/configuration.md +480 -0
- package/skills/tier-2/claude-code/references/enterprise-features.md +472 -0
- package/skills/tier-2/claude-code/references/getting-started.md +252 -0
- package/skills/tier-2/claude-code/references/hooks-and-plugins.md +441 -0
- package/skills/tier-2/claude-code/references/ide-integration.md +316 -0
- package/skills/tier-2/claude-code/references/mcp-integration.md +386 -0
- package/skills/tier-2/claude-code/references/slash-commands.md +489 -0
- package/skills/tier-2/claude-code/references/troubleshooting.md +456 -0
- package/skills/tier-2/codebase-onboarding/SKILL.md +233 -0
- package/skills/tier-2/coding-standards/SKILL.md +530 -0
- package/skills/tier-2/continuous-learning/SKILL.md +365 -0
- package/skills/tier-2/continuous-learning/agents/observer-loop.sh +191 -0
- package/skills/tier-2/continuous-learning/agents/observer.md +198 -0
- package/skills/tier-2/continuous-learning/agents/session-guardian.sh +150 -0
- package/skills/tier-2/continuous-learning/agents/start-observer.sh +240 -0
- package/skills/tier-2/continuous-learning/config.json +8 -0
- package/skills/tier-2/continuous-learning/hooks/observe.sh +412 -0
- package/skills/tier-2/continuous-learning/scripts/detect-project.sh +228 -0
- package/skills/tier-2/continuous-learning/scripts/instinct-cli.py +1426 -0
- package/skills/tier-2/continuous-learning/scripts/test_parse_instinct.py +984 -0
- package/skills/tier-2/database-migrations/SKILL.md +429 -0
- package/skills/tier-2/deployment-patterns/SKILL.md +427 -0
- package/skills/tier-2/design/SKILL.md +302 -0
- package/skills/tier-2/design/data/cip/deliverables.csv +51 -0
- package/skills/tier-2/design/data/cip/industries.csv +21 -0
- package/skills/tier-2/design/data/cip/mockup-contexts.csv +21 -0
- package/skills/tier-2/design/data/cip/styles.csv +21 -0
- package/skills/tier-2/design/data/icon/styles.csv +16 -0
- package/skills/tier-2/design/data/logo/colors.csv +56 -0
- package/skills/tier-2/design/data/logo/industries.csv +56 -0
- package/skills/tier-2/design/data/logo/styles.csv +56 -0
- package/skills/tier-2/design/references/banner-sizes-and-styles.md +118 -0
- package/skills/tier-2/design/references/cip-deliverable-guide.md +95 -0
- package/skills/tier-2/design/references/cip-design.md +121 -0
- package/skills/tier-2/design/references/cip-prompt-engineering.md +84 -0
- package/skills/tier-2/design/references/cip-style-guide.md +68 -0
- package/skills/tier-2/design/references/design-routing.md +207 -0
- package/skills/tier-2/design/references/icon-design.md +122 -0
- package/skills/tier-2/design/references/logo-color-psychology.md +101 -0
- package/skills/tier-2/design/references/logo-design.md +92 -0
- package/skills/tier-2/design/references/logo-prompt-engineering.md +158 -0
- package/skills/tier-2/design/references/logo-style-guide.md +109 -0
- package/skills/tier-2/design/references/slides-copywriting-formulas.md +84 -0
- package/skills/tier-2/design/references/slides-create.md +4 -0
- package/skills/tier-2/design/references/slides-html-template.md +295 -0
- package/skills/tier-2/design/references/slides-layout-patterns.md +137 -0
- package/skills/tier-2/design/references/slides-strategies.md +94 -0
- package/skills/tier-2/design/references/slides.md +42 -0
- package/skills/tier-2/design/references/social-photos-design.md +329 -0
- package/skills/tier-2/design/scripts/cip/core.py +215 -0
- package/skills/tier-2/design/scripts/cip/generate.py +484 -0
- package/skills/tier-2/design/scripts/cip/render-html.py +424 -0
- package/skills/tier-2/design/scripts/cip/search.py +127 -0
- package/skills/tier-2/design/scripts/icon/generate.py +487 -0
- package/skills/tier-2/design/scripts/logo/core.py +175 -0
- package/skills/tier-2/design/scripts/logo/generate.py +362 -0
- package/skills/tier-2/design/scripts/logo/search.py +114 -0
- package/skills/tier-2/design-system/SKILL.md +244 -0
- package/skills/tier-2/design-system/data/slide-backgrounds.csv +11 -0
- package/skills/tier-2/design-system/data/slide-charts.csv +26 -0
- package/skills/tier-2/design-system/data/slide-color-logic.csv +14 -0
- package/skills/tier-2/design-system/data/slide-copy.csv +26 -0
- package/skills/tier-2/design-system/data/slide-layout-logic.csv +16 -0
- package/skills/tier-2/design-system/data/slide-layouts.csv +26 -0
- package/skills/tier-2/design-system/data/slide-strategies.csv +16 -0
- package/skills/tier-2/design-system/data/slide-typography.csv +15 -0
- package/skills/tier-2/design-system/references/component-specs.md +236 -0
- package/skills/tier-2/design-system/references/component-tokens.md +214 -0
- package/skills/tier-2/design-system/references/primitive-tokens.md +203 -0
- package/skills/tier-2/design-system/references/semantic-tokens.md +215 -0
- package/skills/tier-2/design-system/references/states-and-variants.md +241 -0
- package/skills/tier-2/design-system/references/tailwind-integration.md +251 -0
- package/skills/tier-2/design-system/references/token-architecture.md +224 -0
- package/skills/tier-2/design-system/scripts/embed-tokens.cjs +99 -0
- package/skills/tier-2/design-system/scripts/fetch-background.py +317 -0
- package/skills/tier-2/design-system/scripts/generate-slide.py +753 -0
- package/skills/tier-2/design-system/scripts/generate-tokens.cjs +205 -0
- package/skills/tier-2/design-system/scripts/html-token-validator.py +327 -0
- package/skills/tier-2/design-system/scripts/search-slides.py +218 -0
- package/skills/tier-2/design-system/scripts/slide-token-validator.py +35 -0
- package/skills/tier-2/design-system/scripts/slide_search_core.py +453 -0
- package/skills/tier-2/design-system/scripts/validate-tokens.cjs +251 -0
- package/skills/tier-2/design-system/templates/design-tokens-starter.json +143 -0
- package/skills/tier-2/docker-patterns/SKILL.md +364 -0
- package/skills/tier-2/e2e-testing/SKILL.md +326 -0
- package/skills/tier-2/eval-harness/SKILL.md +270 -0
- package/skills/tier-2/frontend-patterns/SKILL.md +642 -0
- package/skills/tier-2/google-adk-python/SKILL.md +242 -0
- package/skills/tier-2/mcp-management/README.md +219 -0
- package/skills/tier-2/mcp-management/SKILL.md +209 -0
- package/skills/tier-2/mcp-management/assets/tools.json +3146 -0
- package/skills/tier-2/mcp-management/references/configuration.md +114 -0
- package/skills/tier-2/mcp-management/references/gemini-cli-integration.md +215 -0
- package/skills/tier-2/mcp-management/references/mcp-protocol.md +116 -0
- package/skills/tier-2/mcp-management/scripts/.env.example +10 -0
- package/skills/tier-2/mcp-management/scripts/cli.ts +195 -0
- package/skills/tier-2/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/skills/tier-2/mcp-management/scripts/dist/cli.js +127 -0
- package/skills/tier-2/mcp-management/scripts/dist/mcp-client.js +115 -0
- package/skills/tier-2/mcp-management/scripts/mcp-client.ts +230 -0
- package/skills/tier-2/mcp-management/scripts/package.json +20 -0
- package/skills/tier-2/mcp-management/scripts/tsconfig.json +15 -0
- package/skills/tier-2/mcp-server-patterns/SKILL.md +67 -0
- package/skills/tier-2/media-processing/SKILL.md +358 -0
- package/skills/tier-2/media-processing/references/ffmpeg-encoding.md +358 -0
- package/skills/tier-2/media-processing/references/ffmpeg-filters.md +503 -0
- package/skills/tier-2/media-processing/references/ffmpeg-streaming.md +403 -0
- package/skills/tier-2/media-processing/references/format-compatibility.md +375 -0
- package/skills/tier-2/media-processing/references/imagemagick-batch.md +612 -0
- package/skills/tier-2/media-processing/references/imagemagick-editing.md +623 -0
- package/skills/tier-2/media-processing/scripts/batch_resize.py +342 -0
- package/skills/tier-2/media-processing/scripts/media_convert.py +311 -0
- package/skills/tier-2/media-processing/scripts/requirements.txt +24 -0
- package/skills/tier-2/media-processing/scripts/tests/.coverage +0 -0
- package/skills/tier-2/media-processing/scripts/tests/requirements.txt +2 -0
- package/skills/tier-2/media-processing/scripts/tests/test_batch_resize.py +372 -0
- package/skills/tier-2/media-processing/scripts/tests/test_media_convert.py +259 -0
- package/skills/tier-2/media-processing/scripts/tests/test_video_optimize.py +397 -0
- package/skills/tier-2/media-processing/scripts/video_optimize.py +414 -0
- package/skills/tier-2/mobile-development/SKILL.md +212 -0
- package/skills/tier-2/mobile-development/references/mobile-android.md +604 -0
- package/skills/tier-2/mobile-development/references/mobile-best-practices.md +545 -0
- package/skills/tier-2/mobile-development/references/mobile-debugging.md +1089 -0
- package/skills/tier-2/mobile-development/references/mobile-frameworks.md +465 -0
- package/skills/tier-2/mobile-development/references/mobile-ios.md +496 -0
- package/skills/tier-2/mobile-development/references/mobile-mindset.md +544 -0
- package/skills/tier-2/payment-integration/README.md +185 -0
- package/skills/tier-2/payment-integration/SKILL.md +118 -0
- package/skills/tier-2/payment-integration/references/polar/benefits.md +396 -0
- package/skills/tier-2/payment-integration/references/polar/best-practices.md +482 -0
- package/skills/tier-2/payment-integration/references/polar/checkouts.md +266 -0
- package/skills/tier-2/payment-integration/references/polar/overview.md +184 -0
- package/skills/tier-2/payment-integration/references/polar/products.md +244 -0
- package/skills/tier-2/payment-integration/references/polar/sdk.md +436 -0
- package/skills/tier-2/payment-integration/references/polar/subscriptions.md +340 -0
- package/skills/tier-2/payment-integration/references/polar/webhooks.md +405 -0
- package/skills/tier-2/payment-integration/references/sepay/api.md +140 -0
- package/skills/tier-2/payment-integration/references/sepay/best-practices.md +337 -0
- package/skills/tier-2/payment-integration/references/sepay/overview.md +138 -0
- package/skills/tier-2/payment-integration/references/sepay/qr-codes.md +228 -0
- package/skills/tier-2/payment-integration/references/sepay/sdk.md +213 -0
- package/skills/tier-2/payment-integration/references/sepay/webhooks.md +208 -0
- package/skills/tier-2/payment-integration/scripts/.env.example +20 -0
- package/skills/tier-2/payment-integration/scripts/checkout-helper.js +244 -0
- package/skills/tier-2/payment-integration/scripts/package.json +17 -0
- package/skills/tier-2/payment-integration/scripts/polar-webhook-verify.js +202 -0
- package/skills/tier-2/payment-integration/scripts/sepay-webhook-verify.js +193 -0
- package/skills/tier-2/payment-integration/scripts/test-scripts.js +237 -0
- package/skills/tier-2/planning/SKILL.md +88 -0
- package/skills/tier-2/planning/references/codebase-understanding.md +62 -0
- package/skills/tier-2/planning/references/output-standards.md +87 -0
- package/skills/tier-2/planning/references/plan-organization.md +100 -0
- package/skills/tier-2/planning/references/research-phase.md +49 -0
- package/skills/tier-2/planning/references/solution-design.md +63 -0
- package/skills/tier-2/postgres-patterns/SKILL.md +147 -0
- package/skills/tier-2/problem-solving/SKILL.md +96 -0
- package/skills/tier-2/problem-solving/references/attribution.md +69 -0
- package/skills/tier-2/problem-solving/references/collision-zone-thinking.md +79 -0
- package/skills/tier-2/problem-solving/references/inversion-exercise.md +91 -0
- package/skills/tier-2/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/skills/tier-2/problem-solving/references/scale-game.md +95 -0
- package/skills/tier-2/problem-solving/references/simplification-cascades.md +80 -0
- package/skills/tier-2/problem-solving/references/when-stuck.md +72 -0
- package/skills/tier-2/strategic-compact/SKILL.md +131 -0
- package/skills/tier-2/strategic-compact/suggest-compact.sh +54 -0
- package/skills/tier-2/verification-loop/SKILL.md +126 -0
- package/skills/tier-3/agentic-engineering/SKILL.md +63 -0
- package/skills/tier-3/banner-design/SKILL.md +192 -0
- package/skills/tier-3/banner-design/references/banner-sizes-and-styles.md +118 -0
- package/skills/tier-3/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/skills/tier-3/django-patterns/SKILL.md +734 -0
- package/skills/tier-3/golang-patterns/SKILL.md +674 -0
- package/skills/tier-3/kotlin-patterns/SKILL.md +711 -0
- package/skills/tier-3/laravel-patterns/SKILL.md +415 -0
- package/skills/tier-3/prompt-optimizer/SKILL.md +397 -0
- package/skills/tier-3/python-patterns/SKILL.md +750 -0
- package/skills/tier-3/pytorch-patterns/SKILL.md +396 -0
- package/skills/tier-3/rust-patterns/SKILL.md +499 -0
- package/skills/tier-3/shopify/README.md +66 -0
- package/skills/tier-3/shopify/SKILL.md +319 -0
- package/skills/tier-3/shopify/references/app-development.md +470 -0
- package/skills/tier-3/shopify/references/extensions.md +493 -0
- package/skills/tier-3/shopify/references/themes.md +498 -0
- package/skills/tier-3/shopify/scripts/.coverage +0 -0
- package/skills/tier-3/shopify/scripts/requirements.txt +19 -0
- package/skills/tier-3/shopify/scripts/shopify_init.py +423 -0
- package/skills/tier-3/shopify/scripts/tests/.coverage +0 -0
- package/skills/tier-3/shopify/scripts/tests/test_shopify_init.py +385 -0
- package/skills/tier-3/slides/SKILL.md +42 -0
- package/skills/tier-3/slides/references/copywriting-formulas.md +84 -0
- package/skills/tier-3/slides/references/create.md +4 -0
- package/skills/tier-3/slides/references/html-template.md +295 -0
- package/skills/tier-3/slides/references/layout-patterns.md +137 -0
- package/skills/tier-3/slides/references/slide-strategies.md +94 -0
- package/skills/tier-3/springboot-patterns/SKILL.md +314 -0
- package/skills/tier-3/swiftui-patterns/SKILL.md +259 -0
- package/skills/tier-3/threejs/SKILL.md +89 -0
- package/skills/tier-3/threejs/references/01-getting-started.md +177 -0
- package/skills/tier-3/threejs/references/02-loaders.md +169 -0
- package/skills/tier-3/threejs/references/03-textures.md +170 -0
- package/skills/tier-3/threejs/references/04-cameras.md +195 -0
- package/skills/tier-3/threejs/references/05-lights.md +183 -0
- package/skills/tier-3/threejs/references/06-animations.md +214 -0
- package/skills/tier-3/threejs/references/07-math.md +260 -0
- package/skills/tier-3/threejs/references/08-interaction.md +267 -0
- package/skills/tier-3/threejs/references/09-postprocessing.md +240 -0
- package/skills/tier-3/threejs/references/10-controls.md +259 -0
- package/skills/tier-3/threejs/references/11-materials-advanced.md +270 -0
- package/skills/tier-3/threejs/references/12-performance.md +269 -0
- package/skills/tier-3/threejs/references/13-node-materials.md +298 -0
- package/skills/tier-3/threejs/references/14-physics-vr.md +304 -0
- package/skills/tier-3/threejs/references/15-specialized-loaders.md +333 -0
- package/skills/tier-3/threejs/references/16-webgpu.md +302 -0
- package/skills/tier-3/vercel-deploy/SKILL.md +112 -0
- package/skills/tier-3/vercel-deploy/scripts/deploy.sh +249 -0
- package/workflows/development-rules.md +49 -0
- package/workflows/orchestration-protocol.md +16 -0
- package/workflows/primary-workflow.md +52 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
# WebGPU Rendering
|
|
2
|
+
|
|
3
|
+
Modern GPU API for next-generation graphics.
|
|
4
|
+
|
|
5
|
+
## WebGPU Renderer
|
|
6
|
+
|
|
7
|
+
Next-generation rendering backend:
|
|
8
|
+
|
|
9
|
+
```javascript
|
|
10
|
+
import WebGPU from 'three/addons/capabilities/WebGPU.js';
|
|
11
|
+
import WebGPURenderer from 'three/addons/renderers/webgpu/WebGPURenderer.js';
|
|
12
|
+
|
|
13
|
+
// Check support
|
|
14
|
+
if (WebGPU.isAvailable()) {
|
|
15
|
+
const renderer = new WebGPURenderer();
|
|
16
|
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
|
17
|
+
document.body.appendChild(renderer.domElement);
|
|
18
|
+
|
|
19
|
+
// Use setAnimationLoop (not requestAnimationFrame)
|
|
20
|
+
renderer.setAnimationLoop(() => {
|
|
21
|
+
renderer.render(scene, camera);
|
|
22
|
+
});
|
|
23
|
+
} else {
|
|
24
|
+
const warning = WebGPU.getErrorMessage();
|
|
25
|
+
document.body.appendChild(warning);
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Benefits of WebGPU
|
|
30
|
+
|
|
31
|
+
- Better performance (lower CPU overhead)
|
|
32
|
+
- Compute shaders
|
|
33
|
+
- Modern GPU features
|
|
34
|
+
- Unified shading language (WGSL)
|
|
35
|
+
- Better multi-threading support
|
|
36
|
+
- More predictable behavior
|
|
37
|
+
|
|
38
|
+
## Compute Shaders
|
|
39
|
+
|
|
40
|
+
GPU-accelerated computation:
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
import { storageBuffer, uniform, Fn } from 'three/nodes';
|
|
44
|
+
import { StorageBufferAttribute } from 'three/addons/renderers/common/StorageBufferAttribute.js';
|
|
45
|
+
|
|
46
|
+
// Create storage buffer
|
|
47
|
+
const particleCount = 10000;
|
|
48
|
+
const positionBuffer = new StorageBufferAttribute(particleCount * 3, 3);
|
|
49
|
+
|
|
50
|
+
// Fill initial positions
|
|
51
|
+
for (let i = 0; i < particleCount; i++) {
|
|
52
|
+
positionBuffer.setXYZ(
|
|
53
|
+
i,
|
|
54
|
+
Math.random() * 10 - 5,
|
|
55
|
+
Math.random() * 10 - 5,
|
|
56
|
+
Math.random() * 10 - 5
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Create compute shader
|
|
61
|
+
const computeParticles = Fn(() => {
|
|
62
|
+
const position = storageBuffer(positionBuffer);
|
|
63
|
+
const time = uniform('time', 0);
|
|
64
|
+
const index = instanceIndex;
|
|
65
|
+
|
|
66
|
+
// Update position
|
|
67
|
+
const pos = position.element(index);
|
|
68
|
+
pos.y.addAssign(sin(time.add(index)).mul(0.01));
|
|
69
|
+
|
|
70
|
+
// Wrap around
|
|
71
|
+
If(pos.y.greaterThan(5), () => {
|
|
72
|
+
pos.y.assign(-5);
|
|
73
|
+
});
|
|
74
|
+
})();
|
|
75
|
+
|
|
76
|
+
// Create compute node
|
|
77
|
+
const computeNode = computeParticles.compute(particleCount);
|
|
78
|
+
|
|
79
|
+
// Execute in render loop
|
|
80
|
+
renderer.setAnimationLoop(() => {
|
|
81
|
+
renderer.compute(computeNode);
|
|
82
|
+
renderer.render(scene, camera);
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Storage Buffers
|
|
87
|
+
|
|
88
|
+
GPU-accessible memory:
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
import { storage, Fn, vec3, float } from 'three/nodes';
|
|
92
|
+
|
|
93
|
+
// Define storage buffer structure
|
|
94
|
+
const particleData = storage(
|
|
95
|
+
new THREE.StorageBufferAttribute(count * 7, 7), // 7 floats per particle
|
|
96
|
+
'vec3', // position
|
|
97
|
+
'vec3', // velocity
|
|
98
|
+
'float' // life
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
// Access in compute shader
|
|
102
|
+
const updateParticle = Fn(() => {
|
|
103
|
+
const data = particleData.element(instanceIndex);
|
|
104
|
+
const position = data.xyz;
|
|
105
|
+
const velocity = data.toVec3(3); // offset 3
|
|
106
|
+
const life = data.element(6);
|
|
107
|
+
|
|
108
|
+
// Update
|
|
109
|
+
position.addAssign(velocity.mul(deltaTime));
|
|
110
|
+
life.subAssign(deltaTime);
|
|
111
|
+
})();
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## WebGPU Node Materials
|
|
115
|
+
|
|
116
|
+
Use TSL (Three Shading Language) with WebGPU:
|
|
117
|
+
|
|
118
|
+
```javascript
|
|
119
|
+
import { MeshStandardNodeMaterial, texture, normalMap } from 'three/nodes';
|
|
120
|
+
|
|
121
|
+
const material = new MeshStandardNodeMaterial();
|
|
122
|
+
|
|
123
|
+
// Node-based material definition
|
|
124
|
+
material.colorNode = texture(diffuseTexture);
|
|
125
|
+
material.normalNode = normalMap(normalTexture);
|
|
126
|
+
material.roughnessNode = float(0.5);
|
|
127
|
+
material.metalnessNode = float(0.8);
|
|
128
|
+
|
|
129
|
+
// Works with both WebGL and WebGPU automatically
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Indirect Drawing
|
|
133
|
+
|
|
134
|
+
Efficient rendering with compute-generated draw calls:
|
|
135
|
+
|
|
136
|
+
```javascript
|
|
137
|
+
import { IndirectStorageBufferAttribute } from 'three/addons/renderers/common/IndirectStorageBufferAttribute.js';
|
|
138
|
+
|
|
139
|
+
// Create indirect buffer
|
|
140
|
+
const indirectBuffer = new IndirectStorageBufferAttribute(count, 5);
|
|
141
|
+
// 5 elements: count, instanceCount, first, baseInstance, (padding)
|
|
142
|
+
|
|
143
|
+
// Update with compute shader
|
|
144
|
+
const updateIndirect = Fn(() => {
|
|
145
|
+
const indirect = storage(indirectBuffer);
|
|
146
|
+
// Compute visibility and update instance count
|
|
147
|
+
const visible = computeVisibility();
|
|
148
|
+
If(visible, () => {
|
|
149
|
+
indirect.element(1).addAssign(1); // increment instanceCount
|
|
150
|
+
});
|
|
151
|
+
})();
|
|
152
|
+
|
|
153
|
+
// Render using indirect buffer
|
|
154
|
+
renderer.drawIndirect(mesh, indirectBuffer);
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Multi-Render-Target (MRT)
|
|
158
|
+
|
|
159
|
+
Render to multiple textures simultaneously:
|
|
160
|
+
|
|
161
|
+
```javascript
|
|
162
|
+
import { WebGPURenderTarget } from 'three/addons/renderers/webgpu/WebGPURenderTarget.js';
|
|
163
|
+
|
|
164
|
+
const renderTarget = new WebGPURenderTarget(width, height, {
|
|
165
|
+
count: 3, // number of render targets
|
|
166
|
+
format: THREE.RGBAFormat
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
// Access individual textures
|
|
170
|
+
const albedoTexture = renderTarget.textures[0];
|
|
171
|
+
const normalTexture = renderTarget.textures[1];
|
|
172
|
+
const depthTexture = renderTarget.textures[2];
|
|
173
|
+
|
|
174
|
+
// Use in deferred rendering pipeline
|
|
175
|
+
renderer.setRenderTarget(renderTarget);
|
|
176
|
+
renderer.render(scene, camera);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Async Shader Compilation
|
|
180
|
+
|
|
181
|
+
Avoid frame drops:
|
|
182
|
+
|
|
183
|
+
```javascript
|
|
184
|
+
// Compile materials ahead of time
|
|
185
|
+
await renderer.compileAsync(scene, camera);
|
|
186
|
+
|
|
187
|
+
// Start rendering after compilation
|
|
188
|
+
renderer.setAnimationLoop(() => {
|
|
189
|
+
renderer.render(scene, camera);
|
|
190
|
+
});
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Performance Monitoring
|
|
194
|
+
|
|
195
|
+
GPU timestamp queries:
|
|
196
|
+
|
|
197
|
+
```javascript
|
|
198
|
+
// Query GPU timing
|
|
199
|
+
const timestampQuery = renderer.getTimestampQuery();
|
|
200
|
+
|
|
201
|
+
timestampQuery.begin();
|
|
202
|
+
renderer.render(scene, camera);
|
|
203
|
+
timestampQuery.end();
|
|
204
|
+
|
|
205
|
+
timestampQuery.getResult().then((duration) => {
|
|
206
|
+
console.log(`GPU time: ${duration}ms`);
|
|
207
|
+
});
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## WebGPU-Specific Features
|
|
211
|
+
|
|
212
|
+
### Texture Compression
|
|
213
|
+
|
|
214
|
+
```javascript
|
|
215
|
+
// BC7 compression (higher quality)
|
|
216
|
+
const texture = new THREE.CompressedTexture(
|
|
217
|
+
mipmaps,
|
|
218
|
+
width,
|
|
219
|
+
height,
|
|
220
|
+
THREE.RGBA_BPTC_Format
|
|
221
|
+
);
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Depth Textures
|
|
225
|
+
|
|
226
|
+
```javascript
|
|
227
|
+
const depthTexture = new THREE.DepthTexture(width, height);
|
|
228
|
+
depthTexture.type = THREE.FloatType; // 32-bit depth
|
|
229
|
+
depthTexture.format = THREE.DepthFormat;
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Storage Textures
|
|
233
|
+
|
|
234
|
+
```javascript
|
|
235
|
+
import { storageTexture } from 'three/nodes';
|
|
236
|
+
|
|
237
|
+
// Read-write texture in compute shader
|
|
238
|
+
const writeableTexture = storageTexture(texture);
|
|
239
|
+
|
|
240
|
+
const computeShader = Fn(() => {
|
|
241
|
+
const coord = vec2(instanceIndex % width, instanceIndex / width);
|
|
242
|
+
const color = vec4(1, 0, 0, 1);
|
|
243
|
+
writeableTexture.store(coord, color);
|
|
244
|
+
})();
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Migration from WebGL
|
|
248
|
+
|
|
249
|
+
Most Three.js code works with both:
|
|
250
|
+
|
|
251
|
+
```javascript
|
|
252
|
+
// WebGL
|
|
253
|
+
const renderer = new THREE.WebGLRenderer();
|
|
254
|
+
|
|
255
|
+
// WebGPU (drop-in replacement for most cases)
|
|
256
|
+
const renderer = new WebGPURenderer();
|
|
257
|
+
|
|
258
|
+
// Exceptions:
|
|
259
|
+
// - Custom shaders: need to use Node materials or WGSL
|
|
260
|
+
// - Some extensions not available
|
|
261
|
+
// - Compute shaders only in WebGPU
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## WGSL (WebGPU Shading Language)
|
|
265
|
+
|
|
266
|
+
Native shader language for WebGPU:
|
|
267
|
+
|
|
268
|
+
```wgsl
|
|
269
|
+
@group(0) @binding(0) var<storage, read_write> positions: array<vec3f>;
|
|
270
|
+
@group(0) @binding(1) var<uniform> time: f32;
|
|
271
|
+
|
|
272
|
+
@compute @workgroup_size(64)
|
|
273
|
+
fn main(@builtin(global_invocation_id) global_id: vec3u) {
|
|
274
|
+
let index = global_id.x;
|
|
275
|
+
if (index >= arrayLength(&positions)) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
var pos = positions[index];
|
|
280
|
+
pos.y += sin(time + f32(index)) * 0.01;
|
|
281
|
+
positions[index] = pos;
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## Browser Support
|
|
286
|
+
|
|
287
|
+
As of 2025:
|
|
288
|
+
- ✅ Chrome 113+
|
|
289
|
+
- ✅ Edge 113+
|
|
290
|
+
- ✅ Safari 18+ (macOS/iOS)
|
|
291
|
+
- ❌ Firefox (in development)
|
|
292
|
+
|
|
293
|
+
Check support: `WebGPU.isAvailable()`
|
|
294
|
+
|
|
295
|
+
## Best Practices
|
|
296
|
+
|
|
297
|
+
- Use compute shaders for particle systems, physics
|
|
298
|
+
- Leverage storage buffers for large datasets
|
|
299
|
+
- Async compile before rendering
|
|
300
|
+
- Use Node materials instead of custom GLSL
|
|
301
|
+
- Test on both WebGL and WebGPU
|
|
302
|
+
- Provide WebGL fallback for unsupported browsers
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-deploy
|
|
3
|
+
description: Deploy applications and websites to Vercel. Use this skill when the user requests deployment actions such as "Deploy my app", "Deploy this to production", "Create a preview deployment", "Deploy and give me the link", or "Push this live". No authentication required - returns preview URL and claimable deployment link.
|
|
4
|
+
metadata:
|
|
5
|
+
author: vercel
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Vercel Deploy
|
|
10
|
+
|
|
11
|
+
Deploy any project to Vercel instantly. No authentication required.
|
|
12
|
+
|
|
13
|
+
## How It Works
|
|
14
|
+
|
|
15
|
+
1. Packages your project into a tarball (excludes `node_modules` and `.git`)
|
|
16
|
+
2. Auto-detects framework from `package.json`
|
|
17
|
+
3. Uploads to deployment service
|
|
18
|
+
4. Returns **Preview URL** (live site) and **Claim URL** (transfer to your Vercel account)
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
bash .claude/skills/vercel-deploy/scripts/deploy.sh [path]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Arguments:**
|
|
27
|
+
- `path` - Directory to deploy, or a `.tgz` file (defaults to current directory)
|
|
28
|
+
|
|
29
|
+
**Examples:**
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Deploy current directory
|
|
33
|
+
bash .claude/skills/vercel-deploy/scripts/deploy.sh
|
|
34
|
+
|
|
35
|
+
# Deploy specific project
|
|
36
|
+
bash .claude/skills/vercel-deploy/scripts/deploy.sh /path/to/project
|
|
37
|
+
|
|
38
|
+
# Deploy existing tarball
|
|
39
|
+
bash .claude/skills/vercel-deploy/scripts/deploy.sh /path/to/project.tgz
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Output
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Preparing deployment...
|
|
46
|
+
Detected framework: nextjs
|
|
47
|
+
Creating deployment package...
|
|
48
|
+
Deploying...
|
|
49
|
+
✓ Deployment successful!
|
|
50
|
+
|
|
51
|
+
Preview URL: https://skill-deploy-abc123.vercel.app
|
|
52
|
+
Claim URL: https://vercel.com/claim-deployment?code=...
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The script also outputs JSON to stdout for programmatic use:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"previewUrl": "https://skill-deploy-abc123.vercel.app",
|
|
60
|
+
"claimUrl": "https://vercel.com/claim-deployment?code=...",
|
|
61
|
+
"deploymentId": "dpl_...",
|
|
62
|
+
"projectId": "prj_..."
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Framework Detection
|
|
67
|
+
|
|
68
|
+
The script auto-detects frameworks from `package.json`. Supported frameworks include:
|
|
69
|
+
|
|
70
|
+
- **React**: Next.js, Gatsby, Create React App, Remix, React Router
|
|
71
|
+
- **Vue**: Nuxt, Vitepress, Vuepress, Gridsome
|
|
72
|
+
- **Svelte**: SvelteKit, Svelte, Sapper
|
|
73
|
+
- **Other Frontend**: Astro, Solid Start, Angular, Ember, Preact, Docusaurus
|
|
74
|
+
- **Backend**: Express, Hono, Fastify, NestJS, Elysia, h3, Nitro
|
|
75
|
+
- **Build Tools**: Vite, Parcel
|
|
76
|
+
- **And more**: Blitz, Hydrogen, RedwoodJS, Storybook, Sanity, etc.
|
|
77
|
+
|
|
78
|
+
For static HTML projects (no `package.json`), framework is set to `null`.
|
|
79
|
+
|
|
80
|
+
## Static HTML Projects
|
|
81
|
+
|
|
82
|
+
For projects without a `package.json`:
|
|
83
|
+
- If there's a single `.html` file not named `index.html`, it gets renamed automatically
|
|
84
|
+
- This ensures the page is served at the root URL (`/`)
|
|
85
|
+
|
|
86
|
+
## Present Results to User
|
|
87
|
+
|
|
88
|
+
Always show both URLs:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
✓ Deployment successful!
|
|
92
|
+
|
|
93
|
+
Preview URL: https://skill-deploy-abc123.vercel.app
|
|
94
|
+
Claim URL: https://vercel.com/claim-deployment?code=...
|
|
95
|
+
|
|
96
|
+
View your site at the Preview URL.
|
|
97
|
+
To transfer this deployment to your Vercel account, visit the Claim URL.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Troubleshooting
|
|
101
|
+
|
|
102
|
+
### Network Egress Error
|
|
103
|
+
|
|
104
|
+
If deployment fails due to network restrictions (common on claude.ai), tell the user:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Deployment failed due to network restrictions. To fix this:
|
|
108
|
+
|
|
109
|
+
1. Go to https://claude.ai/settings/capabilities
|
|
110
|
+
2. Add *.vercel.com to the allowed domains
|
|
111
|
+
3. Try deploying again
|
|
112
|
+
```
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Vercel Deployment Script (via claimable deploy endpoint)
|
|
4
|
+
# Usage: ./deploy.sh [project-path]
|
|
5
|
+
# Returns: JSON with previewUrl, claimUrl, deploymentId, projectId
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
DEPLOY_ENDPOINT="https://claude-skills-deploy.vercel.com/api/deploy"
|
|
10
|
+
|
|
11
|
+
# Detect framework from package.json
|
|
12
|
+
detect_framework() {
|
|
13
|
+
local pkg_json="$1"
|
|
14
|
+
|
|
15
|
+
if [ ! -f "$pkg_json" ]; then
|
|
16
|
+
echo "null"
|
|
17
|
+
return
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
local content=$(cat "$pkg_json")
|
|
21
|
+
|
|
22
|
+
# Helper to check if a package exists in dependencies or devDependencies
|
|
23
|
+
has_dep() {
|
|
24
|
+
echo "$content" | grep -q "\"$1\""
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# Order matters - check more specific frameworks first
|
|
28
|
+
|
|
29
|
+
# Blitz
|
|
30
|
+
if has_dep "blitz"; then echo "blitzjs"; return; fi
|
|
31
|
+
|
|
32
|
+
# Next.js
|
|
33
|
+
if has_dep "next"; then echo "nextjs"; return; fi
|
|
34
|
+
|
|
35
|
+
# Gatsby
|
|
36
|
+
if has_dep "gatsby"; then echo "gatsby"; return; fi
|
|
37
|
+
|
|
38
|
+
# Remix
|
|
39
|
+
if has_dep "@remix-run/"; then echo "remix"; return; fi
|
|
40
|
+
|
|
41
|
+
# React Router (v7 framework mode)
|
|
42
|
+
if has_dep "@react-router/"; then echo "react-router"; return; fi
|
|
43
|
+
|
|
44
|
+
# TanStack Start
|
|
45
|
+
if has_dep "@tanstack/start"; then echo "tanstack-start"; return; fi
|
|
46
|
+
|
|
47
|
+
# Astro
|
|
48
|
+
if has_dep "astro"; then echo "astro"; return; fi
|
|
49
|
+
|
|
50
|
+
# Hydrogen (Shopify)
|
|
51
|
+
if has_dep "@shopify/hydrogen"; then echo "hydrogen"; return; fi
|
|
52
|
+
|
|
53
|
+
# SvelteKit
|
|
54
|
+
if has_dep "@sveltejs/kit"; then echo "sveltekit-1"; return; fi
|
|
55
|
+
|
|
56
|
+
# Svelte (standalone)
|
|
57
|
+
if has_dep "svelte"; then echo "svelte"; return; fi
|
|
58
|
+
|
|
59
|
+
# Nuxt
|
|
60
|
+
if has_dep "nuxt"; then echo "nuxtjs"; return; fi
|
|
61
|
+
|
|
62
|
+
# Vue with Vitepress
|
|
63
|
+
if has_dep "vitepress"; then echo "vitepress"; return; fi
|
|
64
|
+
|
|
65
|
+
# Vue with Vuepress
|
|
66
|
+
if has_dep "vuepress"; then echo "vuepress"; return; fi
|
|
67
|
+
|
|
68
|
+
# Gridsome
|
|
69
|
+
if has_dep "gridsome"; then echo "gridsome"; return; fi
|
|
70
|
+
|
|
71
|
+
# SolidStart
|
|
72
|
+
if has_dep "@solidjs/start"; then echo "solidstart-1"; return; fi
|
|
73
|
+
|
|
74
|
+
# Docusaurus
|
|
75
|
+
if has_dep "@docusaurus/core"; then echo "docusaurus-2"; return; fi
|
|
76
|
+
|
|
77
|
+
# RedwoodJS
|
|
78
|
+
if has_dep "@redwoodjs/"; then echo "redwoodjs"; return; fi
|
|
79
|
+
|
|
80
|
+
# Hexo
|
|
81
|
+
if has_dep "hexo"; then echo "hexo"; return; fi
|
|
82
|
+
|
|
83
|
+
# Eleventy
|
|
84
|
+
if has_dep "@11ty/eleventy"; then echo "eleventy"; return; fi
|
|
85
|
+
|
|
86
|
+
# Angular / Ionic Angular
|
|
87
|
+
if has_dep "@ionic/angular"; then echo "ionic-angular"; return; fi
|
|
88
|
+
if has_dep "@angular/core"; then echo "angular"; return; fi
|
|
89
|
+
|
|
90
|
+
# Ionic React
|
|
91
|
+
if has_dep "@ionic/react"; then echo "ionic-react"; return; fi
|
|
92
|
+
|
|
93
|
+
# Create React App
|
|
94
|
+
if has_dep "react-scripts"; then echo "create-react-app"; return; fi
|
|
95
|
+
|
|
96
|
+
# Ember
|
|
97
|
+
if has_dep "ember-cli" || has_dep "ember-source"; then echo "ember"; return; fi
|
|
98
|
+
|
|
99
|
+
# Dojo
|
|
100
|
+
if has_dep "@dojo/framework"; then echo "dojo"; return; fi
|
|
101
|
+
|
|
102
|
+
# Polymer
|
|
103
|
+
if has_dep "@polymer/"; then echo "polymer"; return; fi
|
|
104
|
+
|
|
105
|
+
# Preact
|
|
106
|
+
if has_dep "preact"; then echo "preact"; return; fi
|
|
107
|
+
|
|
108
|
+
# Stencil
|
|
109
|
+
if has_dep "@stencil/core"; then echo "stencil"; return; fi
|
|
110
|
+
|
|
111
|
+
# UmiJS
|
|
112
|
+
if has_dep "umi"; then echo "umijs"; return; fi
|
|
113
|
+
|
|
114
|
+
# Sapper (legacy Svelte)
|
|
115
|
+
if has_dep "sapper"; then echo "sapper"; return; fi
|
|
116
|
+
|
|
117
|
+
# Saber
|
|
118
|
+
if has_dep "saber"; then echo "saber"; return; fi
|
|
119
|
+
|
|
120
|
+
# Sanity
|
|
121
|
+
if has_dep "sanity"; then echo "sanity-v3"; return; fi
|
|
122
|
+
if has_dep "@sanity/"; then echo "sanity"; return; fi
|
|
123
|
+
|
|
124
|
+
# Storybook
|
|
125
|
+
if has_dep "@storybook/"; then echo "storybook"; return; fi
|
|
126
|
+
|
|
127
|
+
# NestJS
|
|
128
|
+
if has_dep "@nestjs/core"; then echo "nestjs"; return; fi
|
|
129
|
+
|
|
130
|
+
# Elysia
|
|
131
|
+
if has_dep "elysia"; then echo "elysia"; return; fi
|
|
132
|
+
|
|
133
|
+
# Hono
|
|
134
|
+
if has_dep "hono"; then echo "hono"; return; fi
|
|
135
|
+
|
|
136
|
+
# Fastify
|
|
137
|
+
if has_dep "fastify"; then echo "fastify"; return; fi
|
|
138
|
+
|
|
139
|
+
# h3
|
|
140
|
+
if has_dep "h3"; then echo "h3"; return; fi
|
|
141
|
+
|
|
142
|
+
# Nitro
|
|
143
|
+
if has_dep "nitropack"; then echo "nitro"; return; fi
|
|
144
|
+
|
|
145
|
+
# Express
|
|
146
|
+
if has_dep "express"; then echo "express"; return; fi
|
|
147
|
+
|
|
148
|
+
# Vite (generic - check last among JS frameworks)
|
|
149
|
+
if has_dep "vite"; then echo "vite"; return; fi
|
|
150
|
+
|
|
151
|
+
# Parcel
|
|
152
|
+
if has_dep "parcel"; then echo "parcel"; return; fi
|
|
153
|
+
|
|
154
|
+
# No framework detected
|
|
155
|
+
echo "null"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
# Parse arguments
|
|
159
|
+
INPUT_PATH="${1:-.}"
|
|
160
|
+
|
|
161
|
+
# Create temp directory for packaging
|
|
162
|
+
TEMP_DIR=$(mktemp -d)
|
|
163
|
+
TARBALL="$TEMP_DIR/project.tgz"
|
|
164
|
+
CLEANUP_TEMP=true
|
|
165
|
+
|
|
166
|
+
cleanup() {
|
|
167
|
+
if [ "$CLEANUP_TEMP" = true ]; then
|
|
168
|
+
rm -rf "$TEMP_DIR"
|
|
169
|
+
fi
|
|
170
|
+
}
|
|
171
|
+
trap cleanup EXIT
|
|
172
|
+
|
|
173
|
+
echo "Preparing deployment..." >&2
|
|
174
|
+
|
|
175
|
+
# Check if input is a .tgz file or a directory
|
|
176
|
+
FRAMEWORK="null"
|
|
177
|
+
|
|
178
|
+
if [ -f "$INPUT_PATH" ] && [[ "$INPUT_PATH" == *.tgz ]]; then
|
|
179
|
+
# Input is already a tarball, use it directly
|
|
180
|
+
echo "Using provided tarball..." >&2
|
|
181
|
+
TARBALL="$INPUT_PATH"
|
|
182
|
+
CLEANUP_TEMP=false
|
|
183
|
+
# Can't detect framework from tarball, leave as null
|
|
184
|
+
elif [ -d "$INPUT_PATH" ]; then
|
|
185
|
+
# Input is a directory, need to tar it
|
|
186
|
+
PROJECT_PATH=$(cd "$INPUT_PATH" && pwd)
|
|
187
|
+
|
|
188
|
+
# Detect framework from package.json
|
|
189
|
+
FRAMEWORK=$(detect_framework "$PROJECT_PATH/package.json")
|
|
190
|
+
|
|
191
|
+
# Check if this is a static HTML project (no package.json)
|
|
192
|
+
if [ ! -f "$PROJECT_PATH/package.json" ]; then
|
|
193
|
+
# Find HTML files in root
|
|
194
|
+
HTML_FILES=$(find "$PROJECT_PATH" -maxdepth 1 -name "*.html" -type f)
|
|
195
|
+
HTML_COUNT=$(echo "$HTML_FILES" | grep -c . || echo 0)
|
|
196
|
+
|
|
197
|
+
# If there's exactly one HTML file and it's not index.html, rename it
|
|
198
|
+
if [ "$HTML_COUNT" -eq 1 ]; then
|
|
199
|
+
HTML_FILE=$(echo "$HTML_FILES" | head -1)
|
|
200
|
+
BASENAME=$(basename "$HTML_FILE")
|
|
201
|
+
if [ "$BASENAME" != "index.html" ]; then
|
|
202
|
+
echo "Renaming $BASENAME to index.html..." >&2
|
|
203
|
+
mv "$HTML_FILE" "$PROJECT_PATH/index.html"
|
|
204
|
+
fi
|
|
205
|
+
fi
|
|
206
|
+
fi
|
|
207
|
+
|
|
208
|
+
# Create tarball of the project (excluding node_modules and .git)
|
|
209
|
+
echo "Creating deployment package..." >&2
|
|
210
|
+
tar -czf "$TARBALL" -C "$PROJECT_PATH" --exclude='node_modules' --exclude='.git' .
|
|
211
|
+
else
|
|
212
|
+
echo "Error: Input must be a directory or a .tgz file" >&2
|
|
213
|
+
exit 1
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
if [ "$FRAMEWORK" != "null" ]; then
|
|
217
|
+
echo "Detected framework: $FRAMEWORK" >&2
|
|
218
|
+
fi
|
|
219
|
+
|
|
220
|
+
# Deploy
|
|
221
|
+
echo "Deploying..." >&2
|
|
222
|
+
RESPONSE=$(curl -s -X POST "$DEPLOY_ENDPOINT" -F "file=@$TARBALL" -F "framework=$FRAMEWORK")
|
|
223
|
+
|
|
224
|
+
# Check for error in response
|
|
225
|
+
if echo "$RESPONSE" | grep -q '"error"'; then
|
|
226
|
+
ERROR_MSG=$(echo "$RESPONSE" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
|
|
227
|
+
echo "Error: $ERROR_MSG" >&2
|
|
228
|
+
exit 1
|
|
229
|
+
fi
|
|
230
|
+
|
|
231
|
+
# Extract URLs from response
|
|
232
|
+
PREVIEW_URL=$(echo "$RESPONSE" | grep -o '"previewUrl":"[^"]*"' | cut -d'"' -f4)
|
|
233
|
+
CLAIM_URL=$(echo "$RESPONSE" | grep -o '"claimUrl":"[^"]*"' | cut -d'"' -f4)
|
|
234
|
+
|
|
235
|
+
if [ -z "$PREVIEW_URL" ]; then
|
|
236
|
+
echo "Error: Could not extract preview URL from response" >&2
|
|
237
|
+
echo "$RESPONSE" >&2
|
|
238
|
+
exit 1
|
|
239
|
+
fi
|
|
240
|
+
|
|
241
|
+
echo "" >&2
|
|
242
|
+
echo "Deployment successful!" >&2
|
|
243
|
+
echo "" >&2
|
|
244
|
+
echo "Preview URL: $PREVIEW_URL" >&2
|
|
245
|
+
echo "Claim URL: $CLAIM_URL" >&2
|
|
246
|
+
echo "" >&2
|
|
247
|
+
|
|
248
|
+
# Output JSON for programmatic use
|
|
249
|
+
echo "$RESPONSE"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Development Rules
|
|
2
|
+
|
|
3
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
4
|
+
**IMPORTANT:** You ALWAYS follow these principles: **YANGI (You Aren't Gonna Need It) - KISS (Keep It Simple, Stupid) - DRY (Don't Repeat Yourself)**
|
|
5
|
+
|
|
6
|
+
## General
|
|
7
|
+
- **File Naming**: Use kebab-case for file names with a meaningful name that describes the purpose of the file, doesn't matter if the file name is long, just make sure when LLMs read the file names while using Grep or other tools, they can understand the purpose of the file right away without reading the file content.
|
|
8
|
+
- **File Size Management**: Keep individual code files under 200 lines for optimal context management
|
|
9
|
+
- Split large files into smaller, focused components/modules
|
|
10
|
+
- Use composition over inheritance for complex widgets
|
|
11
|
+
- Extract utility functions into separate modules
|
|
12
|
+
- Create dedicated service classes for business logic
|
|
13
|
+
- Use `docs-seeker` skill for exploring latest docs of plugins/packages if needed
|
|
14
|
+
- Use `gh` bash command to interact with Github features if needed
|
|
15
|
+
- Use `psql` bash command to query Postgres database for debugging if needed
|
|
16
|
+
- Use `ai-multimodal` skill for describing details of images, videos, documents, etc. if needed
|
|
17
|
+
- Use `ai-multimodal` skill and `imagemagick` skill for generating and editing images, videos, documents, etc. if needed
|
|
18
|
+
- Use `sequential-thinking` skill and `debugging` skills for sequential thinking, analyzing code, debugging, etc. if needed
|
|
19
|
+
- **[IMPORTANT]** Follow the codebase structure and code standards in `./docs` during implementation.
|
|
20
|
+
- **[IMPORTANT]** Do not just simulate the implementation or mocking them, always implement the real code.
|
|
21
|
+
|
|
22
|
+
## Code Quality Guidelines
|
|
23
|
+
- Read and follow codebase structure and code standards in `./docs`
|
|
24
|
+
- Don't be too harsh on code linting, but make sure there are no syntax errors and code are compilable
|
|
25
|
+
- Prioritize functionality and readability over strict style enforcement and code formatting
|
|
26
|
+
- Use reasonable code quality standards that enhance developer productivity
|
|
27
|
+
- Use try catch error handling & cover security standards
|
|
28
|
+
- Use `code-reviewer` agent to review code after every implementation
|
|
29
|
+
|
|
30
|
+
## Pre-commit/Push Rules
|
|
31
|
+
- Run linting before commit
|
|
32
|
+
- Run tests before push (DO NOT ignore failed tests just to pass the build or github actions)
|
|
33
|
+
- Keep commits focused on the actual code changes
|
|
34
|
+
- **DO NOT** commit and push any confidential information (such as dotenv files, API keys, database credentials, etc.) to git repository!
|
|
35
|
+
- Create clean, professional commit messages without AI references. Use conventional commit format.
|
|
36
|
+
|
|
37
|
+
## Coding Standards (ECC-aligned)
|
|
38
|
+
- Follow consistent naming conventions: camelCase for variables/functions, PascalCase for classes/components
|
|
39
|
+
- Prefer relative imports and keep module boundaries clean
|
|
40
|
+
- Use conventional commit messaging (fix, feat, docs, test, refactor, chore)
|
|
41
|
+
- Validate risky config changes in PRs — never weaken linter/formatter configs to bypass errors
|
|
42
|
+
- Keep hook and script files cross-platform compatible (Node.js preferred over shell scripts)
|
|
43
|
+
|
|
44
|
+
## Code Implementation
|
|
45
|
+
- Write clean, readable, and maintainable code
|
|
46
|
+
- Follow established architectural patterns
|
|
47
|
+
- Implement features according to specifications
|
|
48
|
+
- Handle edge cases and error scenarios
|
|
49
|
+
- **DO NOT** create new enhanced files, update to the existing files directly.
|