@punks/cli 0.1.16 → 1.0.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/AGENTS.md +10 -0
- package/README.md +64 -0
- package/dist/data/AGENTS.md +123 -0
- package/dist/data/catalog/lint.ts +349 -0
- package/dist/data/catalog/packs.ts +44 -0
- package/dist/data/catalog/skills.ts +47 -0
- package/dist/data/catalog/tools.ts +22 -0
- package/dist/data/hooks/format-edited-file.mjs +554 -0
- package/dist/data/hooks/format-edited-file.py +157 -0
- package/dist/data/hooks/format-edited-file.sh +37 -0
- package/dist/data/hooks/require-tests-for-pr.mjs +144 -0
- package/dist/data/scripts/sync-subagents.mjs +420 -0
- package/dist/data/subagents/manifest.mjs +253 -0
- package/dist/index.js +46415 -0
- package/dist/skills/agnostic/backend/backend-domain-structure/SKILL.md +50 -0
- package/dist/skills/agnostic/backend/backend-domain-structure/agents/openai.yaml +4 -0
- package/dist/skills/agnostic/backend/backend-domain-structure/references/layout.md +167 -0
- package/dist/skills/agnostic/backend/backend-recoverable-actions/SKILL.md +49 -0
- package/dist/skills/agnostic/backend/backend-recoverable-actions/agents/openai.yaml +4 -0
- package/dist/skills/agnostic/backend/backend-recoverable-actions/references/strategy-matrix.md +34 -0
- package/dist/skills/agnostic/backend/backend-recoverable-actions/references/test-matrix.md +34 -0
- package/dist/skills/agnostic/docs/docs-maintenance/SKILL.md +193 -0
- package/dist/skills/agnostic/docs/docs-maintenance/agents/openai.yaml +4 -0
- package/dist/skills/agnostic/docs/docs-maintenance/references/concept-pages.md +48 -0
- package/dist/skills/agnostic/docs/docs-maintenance/references/flow-pages.md +41 -0
- package/dist/skills/agnostic/frontend/agent-browser/.clawdhub/origin.json +7 -0
- package/dist/skills/agnostic/frontend/agent-browser/SKILL.md +229 -0
- package/dist/skills/agnostic/frontend/agent-browser/references/authentication.md +202 -0
- package/dist/skills/agnostic/frontend/agent-browser/references/commands.md +259 -0
- package/dist/skills/agnostic/frontend/agent-browser/references/proxy-support.md +188 -0
- package/dist/skills/agnostic/frontend/agent-browser/references/session-management.md +193 -0
- package/dist/skills/agnostic/frontend/agent-browser/references/snapshot-refs.md +194 -0
- package/dist/skills/agnostic/frontend/agent-browser/references/video-recording.md +173 -0
- package/dist/skills/agnostic/frontend/agent-browser/templates/authenticated-session.sh +97 -0
- package/dist/skills/agnostic/frontend/agent-browser/templates/capture-workflow.sh +69 -0
- package/dist/skills/agnostic/frontend/agent-browser/templates/form-automation.sh +62 -0
- package/dist/skills/agnostic/frontend/design-taste-frontend/SKILL.md +226 -0
- package/dist/skills/agnostic/frontend/frontend-domain-structure/SKILL.md +55 -0
- package/dist/skills/agnostic/frontend/frontend-domain-structure/agents/openai.yaml +4 -0
- package/dist/skills/agnostic/frontend/frontend-domain-structure/references/react/structure.md +102 -0
- package/dist/skills/agnostic/frontend/frontend-domain-structure/references/structure.md +257 -0
- package/dist/skills/agnostic/frontend/gpt-taste/SKILL.md +74 -0
- package/dist/skills/agnostic/frontend/image-taste-frontend/SKILL.md +1102 -0
- package/dist/skills/agnostic/frontend/redesign-existing-projects/SKILL.md +178 -0
- package/dist/skills/agnostic/planning/create-plan/REFERENCE.md +37 -0
- package/dist/skills/agnostic/planning/create-plan/SKILL.md +69 -0
- package/dist/skills/agnostic/planning/create-plan/references/backlog-sync.md +44 -0
- package/dist/skills/agnostic/planning/create-plan/references/grill-phase.md +86 -0
- package/dist/skills/agnostic/planning/create-plan/references/plan-schema.md +66 -0
- package/dist/skills/agnostic/planning/create-plan/references/planner-phase.md +39 -0
- package/dist/skills/agnostic/planning/create-plan/references/stop-conditions.md +18 -0
- package/dist/skills/agnostic/planning/create-plan/references/tdd-phase.md +26 -0
- package/dist/skills/agnostic/planning/create-spec/SKILL.md +57 -0
- package/dist/skills/agnostic/planning/create-spec/assets/SPEC-TEMPLATE.md +91 -0
- package/dist/skills/agnostic/planning/create-spec/references/discovery.md +44 -0
- package/dist/skills/agnostic/planning/create-spec/references/folder-naming.md +27 -0
- package/dist/skills/agnostic/planning/create-spec/references/handoff.md +47 -0
- package/dist/skills/agnostic/planning/create-spec/references/questioning.md +41 -0
- package/dist/skills/agnostic/planning/create-spec/references/spec-quality-bar.md +58 -0
- package/dist/skills/agnostic/planning/create-spec/references/wiki-bookkeeping.md +26 -0
- package/dist/skills/agnostic/planning/grill-me/SKILL.md +28 -0
- package/dist/skills/agnostic/planning/implement-spec/SKILL.md +72 -0
- package/dist/skills/agnostic/planning/implement-spec/assets/IMPLEMENTATION-NOTES-TEMPLATE.md +47 -0
- package/dist/skills/agnostic/planning/implement-spec/references/lifecycle.md +149 -0
- package/dist/skills/agnostic/planning/implement-spec/references/parallel-orchestration.md +102 -0
- package/dist/skills/agnostic/planning/implement-spec/references/parallel-worker-brief.md +65 -0
- package/dist/skills/agnostic/planning/implement-spec/references/parallel.md +56 -0
- package/dist/skills/agnostic/planning/implement-spec/references/sequential.md +28 -0
- package/dist/skills/agnostic/planning/swarm-planner/SKILL.md +179 -0
- package/dist/skills/agnostic/quality/simplify/SKILL.md +14 -0
- package/dist/skills/agnostic/quality/tdd/SKILL.md +107 -0
- package/dist/skills/agnostic/quality/tdd/deep-modules.md +33 -0
- package/dist/skills/agnostic/quality/tdd/interface-design.md +31 -0
- package/dist/skills/agnostic/quality/tdd/mocking.md +59 -0
- package/dist/skills/agnostic/quality/tdd/refactoring.md +10 -0
- package/dist/skills/agnostic/quality/tdd/tests.md +61 -0
- package/dist/skills/agnostic/requirements/requirements-grill/SKILL.md +42 -0
- package/dist/skills/agnostic/requirements/requirements-grill/references/artifact-output.md +73 -0
- package/dist/skills/agnostic/requirements/requirements-grill/references/grilling-flow.md +57 -0
- package/dist/skills/agnostic/requirements/requirements-grill/references/wiki-output.md +94 -0
- package/dist/skills/agnostic/requirements/write-backlog/EXAMPLES.md +67 -0
- package/dist/skills/agnostic/requirements/write-backlog/REFERENCE.md +253 -0
- package/dist/skills/agnostic/requirements/write-backlog/SKILL.md +68 -0
- package/dist/skills/agnostic/requirements/write-backlog/assets/concepts/backlog-model.md +69 -0
- package/dist/skills/agnostic/requirements/write-backlog/assets/concepts/story-shape.md +66 -0
- package/dist/skills/agnostic/requirements/write-backlog/assets/providers/azure-devops-create-payload.md +63 -0
- package/dist/skills/agnostic/requirements/write-backlog/assets/providers/github-issues-create-payload.md +48 -0
- package/dist/skills/agnostic/requirements/write-backlog/assets/providers/linear-create-payload.md +76 -0
- package/dist/skills/agnostic/research/improve-codebase-architecture/REFERENCE.md +78 -0
- package/dist/skills/agnostic/research/improve-codebase-architecture/SKILL.md +76 -0
- package/dist/skills/agnostic/research/parallel-research/SKILL.md +68 -0
- package/dist/skills/agnostic/research/parallel-research/agents/openai.yaml +4 -0
- package/dist/skills/agnostic/subagents/swarm-planner/SKILL.md +179 -0
- package/dist/skills/agnostic/write-a-skill/SKILL.md +117 -0
- package/dist/skills/frameworks/better-auth/better-auth-best-practices/SKILL.md +166 -0
- package/dist/skills/frameworks/better-auth/better-auth-security-best-practices/SKILL.MD +432 -0
- package/dist/skills/frameworks/effect/effect-authoring/SKILL.md +116 -0
- package/dist/skills/frameworks/effect/effect-authoring/references/branded-types.md +98 -0
- package/dist/skills/frameworks/effect/effect-authoring/references/effect-atom-patterns.md +257 -0
- package/dist/skills/frameworks/effect/effect-authoring/references/effect-primitives.md +144 -0
- package/dist/skills/frameworks/effect/effect-authoring/references/error-patterns.md +156 -0
- package/dist/skills/frameworks/effect/effect-authoring/references/otel-patterns.md +113 -0
- package/dist/skills/frameworks/effect/effect-authoring/references/test-patterns.md +146 -0
- package/dist/skills/frameworks/effect/effect-backend-structure/SKILL.md +96 -0
- package/dist/skills/frameworks/effect/effect-backend-structure/agents/openai.yaml +4 -0
- package/dist/skills/frameworks/effect/effect-backend-structure/references/layout.md +68 -0
- package/dist/skills/frameworks/effect/effect-best-practices/SKILL.md +517 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/anti-patterns.md +392 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/effect-atom-patterns.md +653 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/error-patterns.md +464 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/language-server.md +287 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/layer-patterns.md +495 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/observability-patterns.md +342 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/rpc-cluster-patterns.md +418 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/schema-patterns.md +353 -0
- package/dist/skills/frameworks/effect/effect-best-practices/references/service-patterns.md +299 -0
- package/dist/skills/frameworks/effect/effect-recoverable-actions/SKILL.md +65 -0
- package/dist/skills/frameworks/effect/effect-recoverable-actions/agents/openai.yaml +4 -0
- package/dist/skills/frameworks/effect/effect-recoverable-actions/references/flow-examples.md +154 -0
- package/dist/skills/frameworks/effect/effect-recoverable-actions/references/source-backed-primitives.md +104 -0
- package/dist/skills/frameworks/effect/effect-recoverable-actions/references/strategy-matrix.md +34 -0
- package/dist/skills/frameworks/effect/effect-recoverable-actions/references/test-matrix.md +36 -0
- package/dist/skills/frameworks/elysia/elysiajs/SKILL.md +475 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/basic.ts +9 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/body-parser.ts +33 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/complex.ts +112 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/cookie.ts +45 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/error.ts +38 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/file.ts +10 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/guard.ts +34 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/map-response.ts +15 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/redirect.ts +6 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/rename.ts +32 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/schema.ts +61 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/state.ts +6 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/upload-file.ts +20 -0
- package/dist/skills/frameworks/elysia/elysiajs/examples/websocket.ts +25 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/ai-sdk.md +92 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/astro.md +59 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/better-auth.md +117 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/cloudflare-worker.md +95 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/deno.md +34 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/drizzle.md +258 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/expo.md +95 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/nextjs.md +103 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/nodejs.md +64 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/nuxt.md +67 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/prisma.md +93 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/react-email.md +134 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/sveltekit.md +53 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/tanstack-start.md +87 -0
- package/dist/skills/frameworks/elysia/elysiajs/integrations/vercel.md +55 -0
- package/dist/skills/frameworks/elysia/elysiajs/patterns/mvc.md +380 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/bearer.md +30 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/cors.md +141 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/cron.md +265 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/graphql-apollo.md +90 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/graphql-yoga.md +87 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/html.md +188 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/jwt.md +197 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/openapi.md +246 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/opentelemetry.md +167 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/server-timing.md +71 -0
- package/dist/skills/frameworks/elysia/elysiajs/plugins/static.md +84 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/bun-fullstack-dev-server.md +129 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/cookie.md +187 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/deployment.md +413 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/eden.md +158 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/lifecycle.md +198 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/macro.md +83 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/plugin.md +207 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/route.md +331 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/testing.md +385 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/validation.md +491 -0
- package/dist/skills/frameworks/elysia/elysiajs/references/websocket.md +250 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/.github/workflows/branch-protection.yml +24 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/.github/workflows/deploy.yml +61 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/AGENTS.md +5958 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/SKILL.md +130 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/api-use-dto-serialization.md +182 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/api-use-interceptors.md +202 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/api-use-pipes.md +205 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/api-versioning.md +191 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/arch-avoid-circular-deps.md +80 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/arch-feature-modules.md +82 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/arch-module-sharing.md +141 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/arch-single-responsibility.md +106 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/arch-use-events.md +108 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/arch-use-repository-pattern.md +97 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/db-avoid-n-plus-one.md +139 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/db-use-migrations.md +129 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/db-use-transactions.md +140 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/devops-graceful-shutdown.md +222 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/devops-use-config-module.md +167 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/devops-use-logging.md +232 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/di-avoid-service-locator.md +104 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/di-interface-segregation.md +165 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/di-liskov-substitution.md +221 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/di-prefer-constructor-injection.md +86 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/di-scope-awareness.md +94 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/di-use-interfaces-tokens.md +101 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/error-handle-async-errors.md +125 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/error-throw-http-exceptions.md +114 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/error-use-exception-filters.md +140 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/micro-use-health-checks.md +226 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/micro-use-patterns.md +167 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/micro-use-queues.md +252 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/perf-async-hooks.md +109 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/perf-lazy-loading.md +121 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/perf-optimize-database.md +131 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/perf-use-caching.md +128 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/security-auth-jwt.md +146 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/security-rate-limiting.md +125 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/security-sanitize-output.md +139 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/security-use-guards.md +135 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/security-validate-all-input.md +150 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/test-e2e-supertest.md +178 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/test-mock-external-services.md +179 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/rules/test-use-testing-module.md +153 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/scripts/build-agents.ts +299 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/scripts/build.sh +16 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/scripts/package-lock.json +237 -0
- package/dist/skills/frameworks/nestjs/nestjs-best-practices/scripts/package.json +15 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/SKILL.md +208 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/references/authentication.md +166 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/references/controllers-routing.md +111 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/references/dtos-validation.md +153 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/references/migration-from-express.md +1237 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/references/services-di.md +140 -0
- package/dist/skills/frameworks/nestjs/nestjs-expert/references/testing-patterns.md +186 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/SKILL.md +153 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/async-patterns.md +87 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/bundling.md +180 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/data-patterns.md +297 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/debug-tricks.md +105 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/directives.md +73 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/error-handling.md +227 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/file-conventions.md +140 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/font.md +245 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/functions.md +108 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/hydration-error.md +91 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/image.md +173 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/metadata.md +301 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/parallel-routes.md +287 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/route-handlers.md +146 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/rsc-boundaries.md +159 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/runtime-selection.md +39 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/scripts.md +141 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/self-hosting.md +371 -0
- package/dist/skills/frameworks/nextjs/next-best-practices/suspense-boundaries.md +67 -0
- package/dist/skills/frameworks/nextjs/next-cache-components/SKILL.md +360 -0
- package/dist/skills/frameworks/react/async-react-patterns/SKILL.md +78 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/AGENTS.md +946 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/SKILL.md +89 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/dist/skills/frameworks/react/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/AGENTS.md +3750 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/SKILL.md +148 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/dist/skills/frameworks/react/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/.claude-plugin/plugin.json +12 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/SKILL.md +1058 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/assets/example-template.txt +14 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/best-practices.md +304 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/common-patterns.md +271 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/example-reference.md +26 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/testing.md +282 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/top-errors.md +332 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/typescript-patterns.md +291 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/references/v4-to-v5-migration.md +231 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/rules/tanstack-query.md +126 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/scripts/example-script.sh +15 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/custom-hooks-pattern.tsx +281 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/devtools-setup.tsx +248 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/error-boundary.tsx +243 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/package.json +31 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/provider-setup.tsx +50 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/query-client-config.ts +72 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/use-infinite-query.tsx +214 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/use-mutation-basic.tsx +201 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/use-mutation-optimistic.tsx +234 -0
- package/dist/skills/frameworks/tanstack-query/tanstack-query/templates/use-query-basic.tsx +119 -0
- package/dist/skills/frameworks/trpc/tanstack-query/.claude-plugin/plugin.json +12 -0
- package/dist/skills/frameworks/trpc/tanstack-query/SKILL.md +1058 -0
- package/dist/skills/frameworks/trpc/tanstack-query/assets/example-template.txt +14 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/best-practices.md +304 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/common-patterns.md +271 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/example-reference.md +26 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/testing.md +282 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/top-errors.md +332 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/typescript-patterns.md +291 -0
- package/dist/skills/frameworks/trpc/tanstack-query/references/v4-to-v5-migration.md +231 -0
- package/dist/skills/frameworks/trpc/tanstack-query/rules/tanstack-query.md +126 -0
- package/dist/skills/frameworks/trpc/tanstack-query/scripts/example-script.sh +15 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/custom-hooks-pattern.tsx +281 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/devtools-setup.tsx +248 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/error-boundary.tsx +243 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/package.json +31 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/provider-setup.tsx +50 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/query-client-config.ts +72 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/use-infinite-query.tsx +214 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/use-mutation-basic.tsx +201 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/use-mutation-optimistic.tsx +234 -0
- package/dist/skills/frameworks/trpc/tanstack-query/templates/use-query-basic.tsx +119 -0
- package/dist/skills/frameworks/turborepo/turborepo/SKILL.md +914 -0
- package/dist/skills/frameworks/turborepo/turborepo/command/turborepo.md +70 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/best-practices/RULE.md +241 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/best-practices/dependencies.md +246 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/best-practices/packages.md +335 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/best-practices/structure.md +270 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/boundaries/RULE.md +126 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/caching/RULE.md +107 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/caching/gotchas.md +169 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/caching/remote-cache.md +127 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/ci/RULE.md +79 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/ci/github-actions.md +162 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/ci/patterns.md +145 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/ci/vercel.md +103 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/cli/RULE.md +100 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/cli/commands.md +297 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/configuration/RULE.md +211 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/configuration/global-options.md +187 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/configuration/gotchas.md +348 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/configuration/tasks.md +285 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/environment/RULE.md +96 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/environment/gotchas.md +141 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/environment/modes.md +101 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/filtering/RULE.md +148 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/filtering/patterns.md +152 -0
- package/dist/skills/frameworks/turborepo/turborepo/references/watch/RULE.md +99 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/docs/README.md +20 -0
- package/docs/reference/dp-requirements.md +210 -0
- package/docs/runbooks/dp-cli-scaffolding.md +187 -0
- package/package.json +24 -50
- package/.eslintignore +0 -4
- package/.eslintrc +0 -127
- package/.prettierignore +0 -4
- package/.prettierrc +0 -7
- package/bin/abstractions/builder.d.ts +0 -4
- package/bin/abstractions/builder.js +0 -7
- package/bin/builders/dotnet/base.d.ts +0 -18
- package/bin/builders/dotnet/base.js +0 -47
- package/bin/builders/dotnet/entity-configuration/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-configuration/index.js +0 -29
- package/bin/builders/dotnet/entity-converter/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-converter/index.js +0 -29
- package/bin/builders/dotnet/entity-model-create/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-model-create/index.js +0 -29
- package/bin/builders/dotnet/entity-model-dto/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-model-dto/index.js +0 -29
- package/bin/builders/dotnet/entity-model-list-item-dto/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-model-list-item-dto/index.js +0 -29
- package/bin/builders/dotnet/entity-model-update/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-model-update/index.js +0 -29
- package/bin/builders/dotnet/entity-search-parameters/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-search-parameters/index.js +0 -29
- package/bin/builders/dotnet/entity-search-query-builder/index.d.ts +0 -8
- package/bin/builders/dotnet/entity-search-query-builder/index.js +0 -29
- package/bin/builders/dotnet/firestore-connector/index.d.ts +0 -8
- package/bin/builders/dotnet/firestore-connector/index.js +0 -29
- package/bin/builders/dotnet/firestore-mapper/index.d.ts +0 -8
- package/bin/builders/dotnet/firestore-mapper/index.js +0 -29
- package/bin/builders/dotnet/types.d.ts +0 -10
- package/bin/builders/dotnet/types.js +0 -3
- package/bin/commands/entity-add/__test__/dotnet/common.d.ts +0 -2
- package/bin/commands/entity-add/__test__/dotnet/common.js +0 -11
- package/bin/commands/entity-add/__test__/dotnet/render.configuration.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.configuration.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.converter.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.converter.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.firestore-connector.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.firestore-connector.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.firestore-mapper.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.firestore-mapper.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.model-create.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.model-create.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.model-dto.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.model-dto.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.model-list-item-dto.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.model-list-item-dto.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.model-update.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.model-update.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.search-parameters.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.search-parameters.spec.js +0 -22
- package/bin/commands/entity-add/__test__/dotnet/render.search-query.spec.d.ts +0 -1
- package/bin/commands/entity-add/__test__/dotnet/render.search-query.spec.js +0 -22
- package/bin/commands/entity-add/index.d.ts +0 -26
- package/bin/commands/entity-add/index.js +0 -44
- package/bin/logging/index.d.ts +0 -8
- package/bin/logging/index.js +0 -28
- package/bin/providers/rendering/base.d.ts +0 -3
- package/bin/providers/rendering/base.js +0 -7
- package/bin/providers/rendering/factory.d.ts +0 -5
- package/bin/providers/rendering/factory.js +0 -16
- package/bin/providers/rendering/handlebars.d.ts +0 -4
- package/bin/providers/rendering/handlebars.js +0 -16
- package/bin/renderer/index.d.ts +0 -6
- package/bin/renderer/index.js +0 -27
- package/bin/run.d.ts +0 -2
- package/bin/run.js +0 -70
- package/bin/services/folders.d.ts +0 -1
- package/bin/services/folders.js +0 -31
- package/bin/types/commands.d.ts +0 -5
- package/bin/types/commands.js +0 -3
- package/bin/utils/collections.d.ts +0 -1
- package/bin/utils/collections.js +0 -6
- package/bin/utils/files.d.ts +0 -3
- package/bin/utils/files.js +0 -19
- package/bin/utils/strings.d.ts +0 -4
- package/bin/utils/strings.js +0 -22
- package/bin/utils/text.d.ts +0 -1
- package/bin/utils/text.js +0 -8
- package/em-cli +0 -0
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.configuration.spec.ts.snap +0 -49
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.converter.spec.ts.snap +0 -53
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.firestore-connector.spec.ts.snap +0 -20
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.firestore-mapper.spec.ts.snap +0 -29
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.model-create.spec.ts.snap +0 -10
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.model-dto.spec.ts.snap +0 -9
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.model-list-item-dto.spec.ts.snap +0 -11
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.model-update.spec.ts.snap +0 -11
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.search-parameters.spec.ts.snap +0 -29
- package/src/commands/entity-add/__test__/dotnet/__snapshots__/render.search-query.spec.ts.snap +0 -42
- package/templates/dotnet/NewEntity/Configuration/<PluralizedEntity>Configuration.cs.template +0 -48
- package/templates/dotnet/NewEntity/Connectors/<PluralizedEntity>FirestoreConnector.cs.template +0 -15
- package/templates/dotnet/NewEntity/Converters/<PluralizedEntity>Converter.cs.template +0 -48
- package/templates/dotnet/NewEntity/Mappers/<PluralizedEntity>FirestoreMapper.cs.template +0 -25
- package/templates/dotnet/NewEntity/Models/<Entity>CreateInput.cs.template +0 -6
- package/templates/dotnet/NewEntity/Models/<Entity>Dto.cs.template +0 -5
- package/templates/dotnet/NewEntity/Models/<Entity>ListItemDto.cs.template +0 -6
- package/templates/dotnet/NewEntity/Models/<Entity>UpdateInput.cs.template +0 -6
- package/templates/dotnet/NewEntity/Search/<PluralizedEntity>QueryBuilder.cs.template +0 -38
- package/templates/dotnet/NewEntity/Search/<PluralizedEntity>SearchParameters.cs.template +0 -24
- package/tsconfig.json +0 -25
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-domain-structure
|
|
3
|
+
description: |
|
|
4
|
+
Organize frontend applications into domain-first layers with thin framework composition entrypoints,
|
|
5
|
+
user-facing features, reusable app-local modules, and shared libraries. Use when creating or
|
|
6
|
+
refactoring frontend code, replacing flat components/hooks/lib/utils folders, deciding whether code
|
|
7
|
+
belongs in framework composition, features/, modules/, or shared packages, or reviewing frontend
|
|
8
|
+
import boundaries across React, Vue, Svelte, Solid, or other UI frameworks.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Frontend Domain Structure
|
|
12
|
+
|
|
13
|
+
Use this skill to keep frontend code domain-based instead of folder-type-based.
|
|
14
|
+
Treat `features/*` and `modules/*` as the main app-local domain containers.
|
|
15
|
+
|
|
16
|
+
Read `references/structure.md` before structure decisions or large refactors.
|
|
17
|
+
For React scopes, also read `references/react/structure.md`.
|
|
18
|
+
|
|
19
|
+
## Quick Classifier
|
|
20
|
+
|
|
21
|
+
Place code by responsibility first, framework file type second.
|
|
22
|
+
|
|
23
|
+
- Put route files, screen entrypoints, layout shells, metadata, and framework-owned composition in the framework composition layer.
|
|
24
|
+
- Put user-visible flows, screens, sections, and product orchestration in feature domains under `features/*`.
|
|
25
|
+
- Put reusable app-local concerns such as providers, client wiring, routing helpers, metadata helpers, API clients, form foundations, and UI libraries in module domains under `modules/*`.
|
|
26
|
+
- Put cross-app reusable domains, UI foundations, tokens, primitives, and framework-neutral helpers in shared libraries or packages.
|
|
27
|
+
|
|
28
|
+
Inside each feature or module domain, use local technical folders only when useful.
|
|
29
|
+
|
|
30
|
+
## Boundary Rules
|
|
31
|
+
|
|
32
|
+
- Keep framework composition thin. Compose features and modules there; do not accumulate domain logic.
|
|
33
|
+
- Let `features/*` depend on `modules/*` and shared libraries.
|
|
34
|
+
- Do not let `modules/*` import `features/*`.
|
|
35
|
+
- Do not move app-specific product features into shared libraries.
|
|
36
|
+
- Avoid root-level generic buckets like `components`, `hooks`, `utils`, `helpers`, or `lib` when code can belong to a domain.
|
|
37
|
+
|
|
38
|
+
## Shared Library Rule
|
|
39
|
+
|
|
40
|
+
Use shared libraries for code reused across app boundaries.
|
|
41
|
+
|
|
42
|
+
- Keep app-local reusable domains in `modules/*`.
|
|
43
|
+
- Keep user-facing product domains in `features/*`.
|
|
44
|
+
- Move only truly shared domains, presentation layers, primitives, tokens, or utilities into shared libraries.
|
|
45
|
+
|
|
46
|
+
In a monorepo, shared packages should still be domain-first internally instead of becoming global buckets.
|
|
47
|
+
|
|
48
|
+
## Use This Skill
|
|
49
|
+
|
|
50
|
+
- Read `references/structure.md`.
|
|
51
|
+
- Add framework-specific references only when the current scope uses that framework.
|
|
52
|
+
- Classify each file by responsibility first.
|
|
53
|
+
- Group by domain second.
|
|
54
|
+
- Organize inside each domain by local technical role only when needed.
|
|
55
|
+
- Keep imports flowing downward: framework composition -> `features` -> `modules` -> shared libraries or shared packages.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Frontend Domain Structure"
|
|
3
|
+
short_description: "Domain-first frontend structure"
|
|
4
|
+
default_prompt: "Use $frontend-domain-structure to place frontend code in the correct framework composition, features, modules, or shared-library layer; in React scopes, also apply references/react/structure.md for hooks, context, providers, components, route modules, and Next.js route files."
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# React Domain Structure Addendum
|
|
2
|
+
|
|
3
|
+
Use this after the agnostic frontend structure reference when the current frontend scope is React, Next.js, Remix, TanStack Router, Expo web, tRPC-backed React, or another React-based stack.
|
|
4
|
+
|
|
5
|
+
The agnostic frontend skill owns the shared layer model:
|
|
6
|
+
|
|
7
|
+
- framework composition
|
|
8
|
+
- `features/*`
|
|
9
|
+
- `modules/*`
|
|
10
|
+
- shared libraries and packages
|
|
11
|
+
|
|
12
|
+
This reference owns React-specific placement for hooks, context, providers, components, route modules, and Next.js route files.
|
|
13
|
+
|
|
14
|
+
## Framework Composition
|
|
15
|
+
|
|
16
|
+
React framework entrypoints should stay thin.
|
|
17
|
+
|
|
18
|
+
Common composition folders:
|
|
19
|
+
|
|
20
|
+
- `app/` in Next.js App Router
|
|
21
|
+
- `pages/` in Next.js Pages Router or Remix-style route modules
|
|
22
|
+
- `routes/` in TanStack Router, Remix, or file-route setups
|
|
23
|
+
- `src/app/` in app-shell conventions
|
|
24
|
+
|
|
25
|
+
Good fits:
|
|
26
|
+
|
|
27
|
+
- `page.tsx`
|
|
28
|
+
- `layout.tsx`
|
|
29
|
+
- route modules
|
|
30
|
+
- route-level `loading`, `error`, and `not-found`
|
|
31
|
+
- route metadata
|
|
32
|
+
- tiny route composition wrappers
|
|
33
|
+
|
|
34
|
+
Bad fits:
|
|
35
|
+
|
|
36
|
+
- long client components
|
|
37
|
+
- data orchestration that belongs to a feature
|
|
38
|
+
- reusable product sections
|
|
39
|
+
- provider setup repeated across routes
|
|
40
|
+
- low-level hooks imported directly by routes when a feature entrypoint should own them
|
|
41
|
+
|
|
42
|
+
Route files should import feature entrypoints instead of several low-level hooks, helpers, and components.
|
|
43
|
+
|
|
44
|
+
## React Domain Internals
|
|
45
|
+
|
|
46
|
+
Inside `features/*`, `modules/*`, and shared package domains, React-specific technical folders are allowed when they are local to the domain.
|
|
47
|
+
|
|
48
|
+
Common local folders:
|
|
49
|
+
|
|
50
|
+
- `components/`
|
|
51
|
+
- `hooks/`
|
|
52
|
+
- `context/`
|
|
53
|
+
- `providers/`
|
|
54
|
+
- `state/` or `store/`
|
|
55
|
+
- `queries/`
|
|
56
|
+
- `mutations/`
|
|
57
|
+
- `actions/`
|
|
58
|
+
- `forms/`
|
|
59
|
+
- `lib/`
|
|
60
|
+
- `utils/`
|
|
61
|
+
|
|
62
|
+
Keep these folders under a domain. Avoid root-level `components/`, `hooks/`, `context/`, or `providers/` unless they are temporary migration debt or genuinely global app shell code.
|
|
63
|
+
|
|
64
|
+
## Placement Examples
|
|
65
|
+
|
|
66
|
+
Prefer:
|
|
67
|
+
|
|
68
|
+
- `features/auth/components/LoginForm.tsx`
|
|
69
|
+
- `features/auth/hooks/useLoginForm.ts`
|
|
70
|
+
- `features/settings/context/SettingsDraftContext.tsx`
|
|
71
|
+
- `features/dashboard/queries/useDashboardSummary.ts`
|
|
72
|
+
- `modules/auth/providers/AuthProvider.tsx`
|
|
73
|
+
- `modules/auth/hooks/useCurrentUser.ts`
|
|
74
|
+
- `modules/api/lib/httpClient.ts`
|
|
75
|
+
- `modules/ui/components/Button.tsx`
|
|
76
|
+
- `<shared-ui-root>/src/primitives/button.tsx`
|
|
77
|
+
- `<shared-ui-root>/src/brand/components/Logo.tsx`
|
|
78
|
+
|
|
79
|
+
Avoid:
|
|
80
|
+
|
|
81
|
+
- `src/components/LoginForm.tsx`
|
|
82
|
+
- `src/hooks/useCurrentUser.ts`
|
|
83
|
+
- `src/context/SettingsDraftContext.tsx`
|
|
84
|
+
- `src/providers/AuthProvider.tsx`
|
|
85
|
+
- `src/lib/httpClient.ts`
|
|
86
|
+
|
|
87
|
+
## React Boundary Rules
|
|
88
|
+
|
|
89
|
+
- Route components may import feature entrypoints and app-local modules.
|
|
90
|
+
- Feature components may import hooks, context, providers, and helpers from the same feature, modules, or shared libraries.
|
|
91
|
+
- Module hooks and providers must not import feature components.
|
|
92
|
+
- Shared UI packages must not import app-local modules or features.
|
|
93
|
+
- Context providers should live where their scope lives: feature-scoped context in `features/*`, app-wide reusable providers in `modules/*`, cross-app providers in shared packages.
|
|
94
|
+
- Hooks follow the same ownership rule as the state or side effect they wrap.
|
|
95
|
+
|
|
96
|
+
## React Review Checklist
|
|
97
|
+
|
|
98
|
+
- Is the route file mostly composition?
|
|
99
|
+
- Are React hooks under the domain that owns their state or side effect?
|
|
100
|
+
- Is context scoped to the smallest domain that needs it?
|
|
101
|
+
- Are providers app-local modules unless they are feature-specific or shared across apps?
|
|
102
|
+
- Are root-level React technical folders avoided unless the project has an explicit app-shell convention?
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Frontend Domain Structure Reference
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Organize frontend code by responsibility and domain instead of by file type.
|
|
6
|
+
|
|
7
|
+
Prefer this shape:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
src/
|
|
11
|
+
<framework-composition>/
|
|
12
|
+
features/
|
|
13
|
+
modules/
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Interpret the layers like this:
|
|
17
|
+
|
|
18
|
+
- framework composition layer
|
|
19
|
+
Framework-owned user-land entrypoints such as routes, pages, screens, layouts, loading states, errors, metadata, and navigation shells.
|
|
20
|
+
- `features/*`
|
|
21
|
+
Domain containers for user-visible product logic and page- or screen-facing slices.
|
|
22
|
+
- `modules/*`
|
|
23
|
+
Domain containers for reusable app-local support building blocks, integrations, and root-level dependencies reused by multiple features.
|
|
24
|
+
- shared libraries
|
|
25
|
+
Cross-app or cross-surface domains, primitives, tokens, utilities, and presentation helpers.
|
|
26
|
+
|
|
27
|
+
The exact names of framework composition folders and shared libraries vary by project. The rule does not.
|
|
28
|
+
|
|
29
|
+
`features` and `modules` are both domain layers. They are not flat dumping grounds. Each domain may contain local technical folders when those folders serve that domain.
|
|
30
|
+
|
|
31
|
+
The same principle applies to packages in a monorepo. A package should still be structured by domain internally instead of becoming one flat global `components`, `hooks`, or `utils` bucket.
|
|
32
|
+
|
|
33
|
+
## Why This Shape
|
|
34
|
+
|
|
35
|
+
Flat folders such as `components`, `hooks`, `lib`, and `utils` scale poorly because they group by technical type instead of business purpose.
|
|
36
|
+
|
|
37
|
+
Group around domains first, then use technical subfolders inside the domain when useful.
|
|
38
|
+
|
|
39
|
+
Root-level escape hatches like `utils/` and `lib/` should stay rare. Small truly global helpers can exist, but most code placed there eventually belongs to a feature domain, a module domain, or a shared library.
|
|
40
|
+
|
|
41
|
+
This structure improves:
|
|
42
|
+
|
|
43
|
+
- discoverability
|
|
44
|
+
- ownership
|
|
45
|
+
- reuse boundaries
|
|
46
|
+
- thin route or screen entrypoints
|
|
47
|
+
- resistance to feature leakage across the app
|
|
48
|
+
|
|
49
|
+
## Decision Table
|
|
50
|
+
|
|
51
|
+
Classify each file in this order.
|
|
52
|
+
|
|
53
|
+
1. Is this a framework entrypoint or composition shell?
|
|
54
|
+
Put it in the framework composition layer.
|
|
55
|
+
2. Is this a user-facing business section, screen flow, or product workflow that an entrypoint should import?
|
|
56
|
+
Put it in a feature domain under `features/*`.
|
|
57
|
+
3. Is this reusable inside the app but not itself a page- or screen-facing product slice?
|
|
58
|
+
Put it in a module domain under `modules/*`.
|
|
59
|
+
4. Is this generic enough to reuse across apps, packages, or surfaces?
|
|
60
|
+
Put it in a shared library or shared package.
|
|
61
|
+
|
|
62
|
+
If a file is named by type instead of purpose, rename around the domain or concern when moving it.
|
|
63
|
+
|
|
64
|
+
## Layer Meanings
|
|
65
|
+
|
|
66
|
+
### Framework Composition Layer
|
|
67
|
+
|
|
68
|
+
Keep this layer thin.
|
|
69
|
+
|
|
70
|
+
Good fits:
|
|
71
|
+
|
|
72
|
+
- route files
|
|
73
|
+
- screen entrypoint files
|
|
74
|
+
- layouts and navigation shells
|
|
75
|
+
- loading, error, empty, and not-found boundaries
|
|
76
|
+
- route or screen metadata
|
|
77
|
+
- tiny composition wrappers
|
|
78
|
+
|
|
79
|
+
Bad fits:
|
|
80
|
+
|
|
81
|
+
- domain logic
|
|
82
|
+
- long form flows
|
|
83
|
+
- reusable product sections
|
|
84
|
+
- app client setup scattered across many entrypoints
|
|
85
|
+
- business state orchestration
|
|
86
|
+
|
|
87
|
+
The entrypoint should mostly assemble higher-level pieces.
|
|
88
|
+
|
|
89
|
+
### `features/*`
|
|
90
|
+
|
|
91
|
+
Use features for meaningful user-facing domains.
|
|
92
|
+
|
|
93
|
+
Good fits:
|
|
94
|
+
|
|
95
|
+
- authentication screens and flows
|
|
96
|
+
- dashboard sections
|
|
97
|
+
- account settings areas
|
|
98
|
+
- navigation experiences
|
|
99
|
+
- user-facing forms and workflows
|
|
100
|
+
- domain-specific business state and orchestration
|
|
101
|
+
|
|
102
|
+
A feature domain may contain local UI, state, data access, config, helpers, and sub-sections.
|
|
103
|
+
|
|
104
|
+
Do not create a feature for every tiny component. A feature should represent a coherent user-facing capability.
|
|
105
|
+
|
|
106
|
+
### `modules/*`
|
|
107
|
+
|
|
108
|
+
Use modules for reusable app-local support domains.
|
|
109
|
+
|
|
110
|
+
Good fits:
|
|
111
|
+
|
|
112
|
+
- auth client setup
|
|
113
|
+
- API client wiring
|
|
114
|
+
- providers
|
|
115
|
+
- routes or navigation configuration
|
|
116
|
+
- metadata helpers
|
|
117
|
+
- form foundations reused across several features
|
|
118
|
+
- domain service adapters used by many features
|
|
119
|
+
- UI library domains
|
|
120
|
+
- framework integration layers
|
|
121
|
+
- root-level dependencies shared by several features
|
|
122
|
+
|
|
123
|
+
Modules are reusable inside the app, but they are not page-facing product slices.
|
|
124
|
+
|
|
125
|
+
A `modules/ui` domain is valid when it is effectively the app's local UI library: primitives, brand-styled abstractions, UI behavior, and UI-specific logic reused across many features.
|
|
126
|
+
|
|
127
|
+
### Shared Libraries
|
|
128
|
+
|
|
129
|
+
Use shared libraries for code that is reused across app boundaries.
|
|
130
|
+
|
|
131
|
+
Good fits:
|
|
132
|
+
|
|
133
|
+
- shared domain abstractions
|
|
134
|
+
- UI primitives
|
|
135
|
+
- design tokens
|
|
136
|
+
- framework-neutral helpers
|
|
137
|
+
- icons
|
|
138
|
+
- styling foundations
|
|
139
|
+
- generic presentation helpers
|
|
140
|
+
|
|
141
|
+
Bad fits:
|
|
142
|
+
|
|
143
|
+
- page sections
|
|
144
|
+
- product workflows
|
|
145
|
+
- app-specific domain widgets
|
|
146
|
+
- route- or screen-specific logic
|
|
147
|
+
|
|
148
|
+
If the code is only reusable within one app, keep it inside that app, usually in `modules/*`.
|
|
149
|
+
|
|
150
|
+
In a monorepo, shared packages should still be domain-based internally.
|
|
151
|
+
|
|
152
|
+
Good package patterns:
|
|
153
|
+
|
|
154
|
+
- a package that is itself one coherent shared domain
|
|
155
|
+
- a package with a small number of clearly separated internal domains
|
|
156
|
+
|
|
157
|
+
Examples:
|
|
158
|
+
|
|
159
|
+
- `<shared-ui-root>/src/primitives/*`
|
|
160
|
+
- `<shared-ui-root>/src/brand/*`
|
|
161
|
+
- `<auth-package-root>/src/client/*`
|
|
162
|
+
- `<auth-package-root>/src/server/*`
|
|
163
|
+
- `<forms-package-root>/src/fields/*`
|
|
164
|
+
|
|
165
|
+
Bad package patterns:
|
|
166
|
+
|
|
167
|
+
- a giant `<shared-ui-root>/src/components` folder holding unrelated concerns
|
|
168
|
+
- `<shared-foundation-root>/src/utils` growing without domain ownership
|
|
169
|
+
- a single package collecting every reusable concern just because it is shared
|
|
170
|
+
|
|
171
|
+
If a package contains several unrelated concerns, split the package or introduce internal domain folders.
|
|
172
|
+
|
|
173
|
+
## Import Boundaries
|
|
174
|
+
|
|
175
|
+
Keep dependencies flowing downward.
|
|
176
|
+
|
|
177
|
+
- framework composition layer may import:
|
|
178
|
+
- `features/*`
|
|
179
|
+
- `modules/*`
|
|
180
|
+
- bootstrapping helpers
|
|
181
|
+
- `features/*` may import:
|
|
182
|
+
- sibling files in the same feature
|
|
183
|
+
- `modules/*`
|
|
184
|
+
- shared libraries
|
|
185
|
+
- `modules/*` may import:
|
|
186
|
+
- sibling files in the same module
|
|
187
|
+
- shared libraries
|
|
188
|
+
- external libraries
|
|
189
|
+
- shared packages may import:
|
|
190
|
+
- sibling files inside the same package domain
|
|
191
|
+
- lower-level shared utilities inside that package
|
|
192
|
+
- external libraries
|
|
193
|
+
|
|
194
|
+
Avoid these inversions:
|
|
195
|
+
|
|
196
|
+
- `modules/*` importing `features/*`
|
|
197
|
+
- shared libraries importing app-local code
|
|
198
|
+
- one shared package domain importing unrelated package domains without a clear boundary
|
|
199
|
+
- framework entrypoints importing many low-level helpers instead of a feature-level entrypoint
|
|
200
|
+
|
|
201
|
+
## Refactoring Guide
|
|
202
|
+
|
|
203
|
+
When migrating from flat buckets like `components`, `hooks`, `lib`, and `utils`:
|
|
204
|
+
|
|
205
|
+
- move framework-facing composition into the framework composition layer
|
|
206
|
+
- group page- or screen-facing workflows under domain folders in `features/*`
|
|
207
|
+
- group reusable app-local support code under domain folders in `modules/*`
|
|
208
|
+
- move only truly shared code into shared libraries or shared packages
|
|
209
|
+
|
|
210
|
+
Name folders by domain or responsibility, not by file type.
|
|
211
|
+
|
|
212
|
+
Prefer:
|
|
213
|
+
|
|
214
|
+
- `features/auth`
|
|
215
|
+
- `features/settings`
|
|
216
|
+
- `features/layout`
|
|
217
|
+
- `modules/auth`
|
|
218
|
+
- `modules/providers`
|
|
219
|
+
- `modules/api`
|
|
220
|
+
- `modules/ui`
|
|
221
|
+
|
|
222
|
+
In monorepos, also prefer:
|
|
223
|
+
|
|
224
|
+
- `<shared-ui-root>/src/primitives`
|
|
225
|
+
- `<shared-ui-root>/src/brand`
|
|
226
|
+
- `<auth-package-root>/src/client`
|
|
227
|
+
- `<auth-package-root>/src/server`
|
|
228
|
+
- `<table-package-root>/src/hooks`
|
|
229
|
+
|
|
230
|
+
Then, inside a domain, use local technical folders only when they help:
|
|
231
|
+
|
|
232
|
+
- `features/auth/components`
|
|
233
|
+
- `features/auth/state`
|
|
234
|
+
- `features/auth/api`
|
|
235
|
+
- `modules/auth/config`
|
|
236
|
+
- `modules/api/lib`
|
|
237
|
+
- `<auth-package-root>/src/client`
|
|
238
|
+
- `<shared-ui-root>/src/brand/components`
|
|
239
|
+
|
|
240
|
+
Avoid:
|
|
241
|
+
|
|
242
|
+
- `components/common`
|
|
243
|
+
- `components/shared`
|
|
244
|
+
- `utils/misc`
|
|
245
|
+
- `lib/helpers`
|
|
246
|
+
|
|
247
|
+
When root-level `utils/` already exists, treat it as migration debt unless the helpers are genuinely global and domain-neutral.
|
|
248
|
+
|
|
249
|
+
## Review Checklist
|
|
250
|
+
|
|
251
|
+
When reviewing or designing structure:
|
|
252
|
+
|
|
253
|
+
- Can the framework composition file get thinner?
|
|
254
|
+
- Is the entrypoint importing a feature instead of several low-level files?
|
|
255
|
+
- Is reusable app-local logic living in a module instead of scattered buckets?
|
|
256
|
+
- Is truly shared code kept out of app-local layers?
|
|
257
|
+
- Are shared packages internally domain-based instead of flat dumping grounds?
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gpt-taste
|
|
3
|
+
description: Elite UX/UI & Advanced GSAP Motion Engineer. Enforces Python-driven true randomization for layout variance, strict AIDA page structure, wide editorial typography (bans 6-line wraps), gapless bento grids, strict GSAP ScrollTriggers (pinning, stacking, scrubbing), inline micro-images, and massive section spacing.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CORE DIRECTIVE: AWWWARDS-LEVEL DESIGN ENGINEERING
|
|
7
|
+
You are an elite, award-winning frontend design engineer. Standard LLMs possess severe statistical biases: they generate massive 6-line wrapped headings by using narrow containers, leave ugly empty gaps in bento grids, use cheap meta-labels ("QUESTION 05", "SECTION 01"), output invisible button text, and endlessly repeat the same Left/Right layouts.
|
|
8
|
+
|
|
9
|
+
Your goal is to aggressively break these defaults. Your outputs must be highly creative, perfectly spaced, motion-rich (GSAP), mathematically flawless in grid execution, and heavily rely on varied, high-end assets.
|
|
10
|
+
|
|
11
|
+
DO NOT USE EMOJIS IN YOUR CODE, COMMENTS, OR OUTPUT. Maintain strictly professional formatting.
|
|
12
|
+
|
|
13
|
+
## 1. PYTHON-DRIVEN TRUE RANDOMIZATION (BREAKING THE LOOP)
|
|
14
|
+
LLMs are inherently lazy and always pick the first layout option. To prevent this, you MUST simulate a Python script execution in your `<design_plan>` before writing any UI code.
|
|
15
|
+
Use a deterministic seed (e.g., character count of the user prompt modulo math) to simulate `random.choice()` and strictly select:
|
|
16
|
+
- 1 Hero Architecture (from Section 3)
|
|
17
|
+
- 1 Typography Stack (Satoshi, Cabinet Grotesk, Outfit, or Geist. NEVER Inter)
|
|
18
|
+
- 3 Unique Component Architectures (from Section 6)
|
|
19
|
+
- 2 Advanced GSAP Paradigms (from Section 5)
|
|
20
|
+
You are forbidden from defaulting to the same UI twice. You must follow the exact output of your simulated Python randomization.
|
|
21
|
+
|
|
22
|
+
## 2. AIDA STRUCTURE & SPACING
|
|
23
|
+
Every page MUST begin with a highly creative, premium Navigation Bar (e.g., floating glass pill, or minimal split nav).
|
|
24
|
+
The rest of the page MUST follow the AIDA framework:
|
|
25
|
+
- **Attention (Hero):** Cinematic, clean, wide layout.
|
|
26
|
+
- **Interest (Features/Bento):** High-density, mathematically perfect grid or interactive typographic components.
|
|
27
|
+
- **Desire (GSAP Scroll/Media):** Pinned sections, horizontal scroll, or text-reveals.
|
|
28
|
+
- **Action (Footer/Pricing):** Massive, high-contrast CTA and clean footer links.
|
|
29
|
+
**SPACING RULE:** Add huge vertical padding between all major sections (e.g., `py-32 md:py-48`). Sections must feel like distinct, cinematic chapters. Do not cramp elements together.
|
|
30
|
+
|
|
31
|
+
## 3. HERO ARCHITECTURE & THE 2-LINE IRON RULE
|
|
32
|
+
The Hero must breathe. It must NOT be a narrow, 6-line text wall.
|
|
33
|
+
- **The Container Width Fix:** You MUST use ultra-wide containers for the H1 (e.g., `max-w-5xl`, `max-w-6xl`, `w-full`). Allow the words to flow horizontally.
|
|
34
|
+
- **The Line Limit:** The H1 MUST NEVER exceed 2 to 3 lines. 4, 5, or 6 lines is a catastrophic failure. Make the font size smaller (`clamp(3rem, 5vw, 5.5rem)`) and the container wider to ensure this.
|
|
35
|
+
- **Hero Layout Options (Randomly Assigned via Python):**
|
|
36
|
+
1. *Cinematic Center (Highly Preferred):* Text perfectly centered, massive width. Below the text, exactly two high-contrast CTAs. Below the CTAs or behind everything, a stunning, full-bleed background image with a dark radial wash.
|
|
37
|
+
2. *Artistic Asymmetry:* Text offset to the left, with an artistic floating image overlapping the text from the bottom right.
|
|
38
|
+
3. *Editorial Split:* Text left, image right, but with massive negative space.
|
|
39
|
+
- **Button Contrast:** Buttons must be perfectly legible. Dark background = white text. Light background = dark text. Invisible text is a failure.
|
|
40
|
+
- **BANNED IN HERO:** Do NOT use arbitrary floating stamp/badge icons on the text. Do NOT use pill-tags under the hero. Do NOT place raw data/stats in the hero.
|
|
41
|
+
|
|
42
|
+
## 4. THE GAPLESS BENTO GRID
|
|
43
|
+
- **Zero Empty Space in Grids:** LLMs notoriously leave blank, dead cells in CSS grids. You MUST use Tailwind's `grid-flow-dense` (`grid-auto-flow: dense`) on every Bento Grid. You must mathematically verify that your `col-span` and `row-span` values interlock perfectly. No grid shall have a missing corner or empty void.
|
|
44
|
+
- **Card Restraint:** Do not use too many cards. 3 to 5 highly intentional, beautifully styled cards are better than 8 messy ones. Fill them with a mix of large imagery, dense typography, or CSS effects.
|
|
45
|
+
|
|
46
|
+
## 5. ADVANCED GSAP MOTION & HOVER PHYSICS
|
|
47
|
+
Static interfaces are strictly forbidden. You must write real GSAP (`@gsap/react`, `ScrollTrigger`).
|
|
48
|
+
- **Hover Physics:** Every clickable card and image must react. Use `group-hover:scale-105 transition-transform duration-700 ease-out` inside `overflow-hidden` containers.
|
|
49
|
+
- **Scroll Pinning (GSAP Split):** Pin a section title on the left (`ScrollTrigger pin: true`) while a gallery of elements scrolls upwards on the right side.
|
|
50
|
+
- **Image Scale & Fade Scroll:** Images must start small (`scale: 0.8`). As they scroll into view, they grow to `scale: 1.0`. As they scroll out of view, they smoothly darken and fade out (`opacity: 0.2`).
|
|
51
|
+
- **Scrubbing Text Reveals:** Opacity of central paragraph words starts at 0.1 and scrubs to 1.0 sequentially as the user scrolls.
|
|
52
|
+
- **Card Stacking:** Cards overlap and stack on top of each other dynamically from the bottom as the user scrolls down.
|
|
53
|
+
|
|
54
|
+
## 6. COMPONENT ARSENAL & CREATIVITY
|
|
55
|
+
Select components from this arsenal based on your randomization:
|
|
56
|
+
- **Inline Typography Images:** Embed small, pill-shaped images directly INSIDE massive headings. Example: `I shape <span className="inline-block w-24 h-10 rounded-full align-middle bg-cover bg-center mx-2" style={{backgroundImage: 'url(...)'}}></span> digital spaces.`
|
|
57
|
+
- **Horizontal Accordions:** Vertical slices that expand horizontally on hover to reveal content and imagery.
|
|
58
|
+
- **Infinite Marquee (Trusted Partners):** Smooth, continuously scrolling rows of authentic `@phosphor-icons/react` or large typography.
|
|
59
|
+
- **Feedback/Testimonial Carousel:** Clean, overlapping portrait images next to minimalist typography quotes, controlled by subtle arrows.
|
|
60
|
+
|
|
61
|
+
## 7. CONTENT, ASSETS & STRICT BANS
|
|
62
|
+
- **The Meta-Label Ban:** BANNED FOREVER are labels like "SECTION 01", "SECTION 04", "QUESTION 05", "ABOUT US". Remove them entirely. They look cheap and unprofessional.
|
|
63
|
+
- **Image Context & Style:** Use `https://picsum.photos/seed/{keyword}/1920/1080` and match the keyword to the vibe. Apply sophisticated CSS filters (`grayscale`, `mix-blend-luminosity`, `opacity-90`, `contrast-125`) so they do not look like boring stock photos.
|
|
64
|
+
- **Creative Backgrounds:** Inject subtle, professional ambient design. Use deep radial blurs, grainy mesh gradients, or shifting dark overlays. Avoid flat, boring colors.
|
|
65
|
+
- **Horizontal Scroll Bug:** Wrap the entire page in `<main className="overflow-x-hidden w-full max-w-full">` to absolutely prevent horizontal scrollbars caused by off-screen animations.
|
|
66
|
+
|
|
67
|
+
## 8. MANDATORY PRE-FLIGHT <design_plan>
|
|
68
|
+
Before writing ANY React/UI code, you MUST output a `<design_plan>` block containing:
|
|
69
|
+
1. **Python RNG Execution:** Write a 3-line mock Python output showing the deterministic selection of your Hero Layout, Component Arsenal, GSAP animations, and Fonts based on the prompt's character count.
|
|
70
|
+
2. **AIDA Check:** Confirm the page contains Navigation, Attention (Hero), Interest (Bento), Desire (GSAP), Action (Footer).
|
|
71
|
+
3. **Hero Math Verification:** Explicitly state the `max-w` class you are applying to the H1 to GUARANTEE it will flow horizontally in 2-3 lines. Confirm NO stamp icons or spam tags exist.
|
|
72
|
+
4. **Bento Density Verification:** Prove mathematically that your grid columns and rows leave zero empty spaces and `grid-flow-dense` is applied.
|
|
73
|
+
5. **Label Sweep & Button Check:** Confirm no cheap meta-labels ("QUESTION 05") exist, and button text contrast is perfect.
|
|
74
|
+
Only output the UI code after this rigorous verification is complete.
|