create-xani-agentic-app 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/README.md +237 -0
- package/index.js +219 -0
- package/package.json +46 -0
- package/template/.agents/skills/ai-sdk/SKILL.md +78 -0
- package/template/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/template/.agents/skills/ai-sdk/references/common-errors.md +443 -0
- package/template/.agents/skills/ai-sdk/references/devtools.md +52 -0
- package/template/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
- package/template/.agents/skills/better-auth-best-practices/SKILL.md +175 -0
- package/template/.agents/skills/checkpoint/SKILL.md +82 -0
- package/template/.agents/skills/create-spec/SKILL.md +132 -0
- package/template/.agents/skills/create-spec/references/action-required-template.md +53 -0
- package/template/.agents/skills/create-spec/references/readme-template.md +53 -0
- package/template/.agents/skills/create-spec/references/requirements-template.md +54 -0
- package/template/.agents/skills/create-spec/references/task-template.md +79 -0
- package/template/.agents/skills/find-skills/SKILL.md +142 -0
- package/template/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/template/.agents/skills/frontend-design/SKILL.md +42 -0
- package/template/.agents/skills/implement-feature/SKILL.md +189 -0
- package/template/.agents/skills/implement-feature/references/coder-prompt-template.md +46 -0
- package/template/.agents/skills/implement-feature/references/fix-prompt-template.md +38 -0
- package/template/.agents/skills/implement-feature/references/review-prompt-template.md +50 -0
- package/template/.agents/skills/mcp-builder/LICENSE.txt +202 -0
- package/template/.agents/skills/mcp-builder/SKILL.md +236 -0
- package/template/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
- package/template/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/template/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/template/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/template/.agents/skills/mcp-builder/scripts/connections.py +151 -0
- package/template/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/template/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/template/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/template/.agents/skills/nextjs/SKILL.md +434 -0
- package/template/.agents/skills/nextjs/overlay.yaml +284 -0
- package/template/.agents/skills/nextjs/references/app-router-files.md +94 -0
- package/template/.agents/skills/nextjs/references/async-patterns.md +87 -0
- package/template/.agents/skills/nextjs/references/bundling.md +180 -0
- package/template/.agents/skills/nextjs/references/data-patterns.md +297 -0
- package/template/.agents/skills/nextjs/references/debug-tricks.md +105 -0
- package/template/.agents/skills/nextjs/references/directives.md +73 -0
- package/template/.agents/skills/nextjs/references/error-handling.md +227 -0
- package/template/.agents/skills/nextjs/references/file-conventions.md +140 -0
- package/template/.agents/skills/nextjs/references/font.md +245 -0
- package/template/.agents/skills/nextjs/references/functions.md +108 -0
- package/template/.agents/skills/nextjs/references/hydration-error.md +91 -0
- package/template/.agents/skills/nextjs/references/image.md +173 -0
- package/template/.agents/skills/nextjs/references/metadata.md +301 -0
- package/template/.agents/skills/nextjs/references/parallel-routes.md +287 -0
- package/template/.agents/skills/nextjs/references/route-handlers.md +146 -0
- package/template/.agents/skills/nextjs/references/rsc-boundaries.md +159 -0
- package/template/.agents/skills/nextjs/references/runtime-selection.md +39 -0
- package/template/.agents/skills/nextjs/references/scripts.md +141 -0
- package/template/.agents/skills/nextjs/references/self-hosting.md +371 -0
- package/template/.agents/skills/nextjs/references/suspense-boundaries.md +67 -0
- package/template/.agents/skills/nextjs/upstream/SKILL.md +153 -0
- package/template/.agents/skills/nextjs/upstream/references/app-router-files.md +94 -0
- package/template/.agents/skills/nextjs/upstream/references/async-patterns.md +87 -0
- package/template/.agents/skills/nextjs/upstream/references/bundling.md +180 -0
- package/template/.agents/skills/nextjs/upstream/references/data-patterns.md +297 -0
- package/template/.agents/skills/nextjs/upstream/references/debug-tricks.md +105 -0
- package/template/.agents/skills/nextjs/upstream/references/directives.md +73 -0
- package/template/.agents/skills/nextjs/upstream/references/error-handling.md +227 -0
- package/template/.agents/skills/nextjs/upstream/references/file-conventions.md +140 -0
- package/template/.agents/skills/nextjs/upstream/references/font.md +245 -0
- package/template/.agents/skills/nextjs/upstream/references/functions.md +108 -0
- package/template/.agents/skills/nextjs/upstream/references/hydration-error.md +91 -0
- package/template/.agents/skills/nextjs/upstream/references/image.md +173 -0
- package/template/.agents/skills/nextjs/upstream/references/metadata.md +301 -0
- package/template/.agents/skills/nextjs/upstream/references/parallel-routes.md +287 -0
- package/template/.agents/skills/nextjs/upstream/references/route-handlers.md +146 -0
- package/template/.agents/skills/nextjs/upstream/references/rsc-boundaries.md +159 -0
- package/template/.agents/skills/nextjs/upstream/references/runtime-selection.md +39 -0
- package/template/.agents/skills/nextjs/upstream/references/scripts.md +141 -0
- package/template/.agents/skills/nextjs/upstream/references/self-hosting.md +371 -0
- package/template/.agents/skills/nextjs/upstream/references/suspense-boundaries.md +67 -0
- package/template/.agents/skills/playwright-cli/SKILL.md +344 -0
- package/template/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/template/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/template/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/template/.agents/skills/playwright-cli/references/running-code.md +231 -0
- package/template/.agents/skills/playwright-cli/references/session-management.md +169 -0
- package/template/.agents/skills/playwright-cli/references/storage-state.md +275 -0
- package/template/.agents/skills/playwright-cli/references/test-generation.md +88 -0
- package/template/.agents/skills/playwright-cli/references/tracing.md +139 -0
- package/template/.agents/skills/playwright-cli/references/video-recording.md +143 -0
- package/template/.agents/skills/review-pr/SKILL.md +97 -0
- package/template/.agents/skills/security-scanner/SKILL.md +157 -0
- package/template/.agents/skills/security-scanner/references/A01-broken-access-control.md +136 -0
- package/template/.agents/skills/security-scanner/references/A02-security-misconfiguration.md +130 -0
- package/template/.agents/skills/security-scanner/references/A03-software-supply-chain-failures.md +117 -0
- package/template/.agents/skills/security-scanner/references/A04-cryptographic-failures.md +141 -0
- package/template/.agents/skills/security-scanner/references/A05-injection.md +155 -0
- package/template/.agents/skills/security-scanner/references/A06-insecure-design.md +145 -0
- package/template/.agents/skills/security-scanner/references/A07-authentication-failures.md +150 -0
- package/template/.agents/skills/security-scanner/references/A08-software-data-integrity-failures.md +132 -0
- package/template/.agents/skills/security-scanner/references/A09-security-logging-alerting-failures.md +130 -0
- package/template/.agents/skills/security-scanner/references/A10-mishandling-exceptional-conditions.md +154 -0
- package/template/.agents/skills/security-scanner/references/report-template.md +148 -0
- package/template/.agents/skills/shadcn/SKILL.md +246 -0
- package/template/.agents/skills/shadcn/agents/openai.yml +5 -0
- package/template/.agents/skills/shadcn/assets/shadcn-small.png +0 -0
- package/template/.agents/skills/shadcn/assets/shadcn.png +0 -0
- package/template/.agents/skills/shadcn/cli.md +276 -0
- package/template/.agents/skills/shadcn/customization.md +209 -0
- package/template/.agents/skills/shadcn/evals/evals.json +47 -0
- package/template/.agents/skills/shadcn/mcp.md +94 -0
- package/template/.agents/skills/shadcn/rules/base-vs-radix.md +306 -0
- package/template/.agents/skills/shadcn/rules/composition.md +195 -0
- package/template/.agents/skills/shadcn/rules/forms.md +192 -0
- package/template/.agents/skills/shadcn/rules/icons.md +101 -0
- package/template/.agents/skills/shadcn/rules/styling.md +162 -0
- package/template/.agents/skills/ship-it/SKILL.md +174 -0
- package/template/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/template/.agents/skills/skill-creator/SKILL.md +485 -0
- package/template/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/template/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/template/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/template/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/template/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/template/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/template/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/template/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/template/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/template/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/template/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/template/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/template/.agents/skills/vercel-react-best-practices/AGENTS.md +3750 -0
- package/template/.agents/skills/vercel-react-best-practices/README.md +123 -0
- package/template/.agents/skills/vercel-react-best-practices/SKILL.md +148 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/template/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/template/.agents/skills/web-design-guidelines/SKILL.md +39 -0
- package/template/.claude/agents/better-auth-expert.md +189 -0
- package/template/.claude/agents/code-review.md +147 -0
- package/template/.claude/agents/coder.md +139 -0
- package/template/.claude/agents/deep-dive.md +133 -0
- package/template/.claude/agents/polar-payments-expert.md +140 -0
- package/template/.claude/agents/security-scanner.md +214 -0
- package/template/.claude/settings.local.json +15 -0
- package/template/.claude/skills/ai-sdk/SKILL.md +78 -0
- package/template/.claude/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/template/.claude/skills/ai-sdk/references/common-errors.md +443 -0
- package/template/.claude/skills/ai-sdk/references/devtools.md +52 -0
- package/template/.claude/skills/ai-sdk/references/type-safe-agents.md +204 -0
- package/template/.claude/skills/better-auth-best-practices/SKILL.md +175 -0
- package/template/.claude/skills/caveman/SKILL.md +49 -0
- package/template/.claude/skills/checkpoint/SKILL.md +82 -0
- package/template/.claude/skills/create-spec/SKILL.md +132 -0
- package/template/.claude/skills/create-spec/references/action-required-template.md +53 -0
- package/template/.claude/skills/create-spec/references/readme-template.md +53 -0
- package/template/.claude/skills/create-spec/references/requirements-template.md +54 -0
- package/template/.claude/skills/create-spec/references/task-template.md +79 -0
- package/template/.claude/skills/d3-visualization/SKILL.md +62 -0
- package/template/.claude/skills/find-skills/SKILL.md +142 -0
- package/template/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/template/.claude/skills/frontend-design/SKILL.md +42 -0
- package/template/.claude/skills/grill-me/SKILL.md +10 -0
- package/template/.claude/skills/grill-with-docs/ADR-FORMAT.md +47 -0
- package/template/.claude/skills/grill-with-docs/CONTEXT-FORMAT.md +63 -0
- package/template/.claude/skills/grill-with-docs/SKILL.md +88 -0
- package/template/.claude/skills/gsap-core/SKILL.md +267 -0
- package/template/.claude/skills/implement-feature/SKILL.md +189 -0
- package/template/.claude/skills/implement-feature/references/coder-prompt-template.md +46 -0
- package/template/.claude/skills/implement-feature/references/fix-prompt-template.md +38 -0
- package/template/.claude/skills/implement-feature/references/review-prompt-template.md +50 -0
- package/template/.claude/skills/mcp-builder/LICENSE.txt +202 -0
- package/template/.claude/skills/mcp-builder/SKILL.md +236 -0
- package/template/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/template/.claude/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/template/.claude/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/template/.claude/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/template/.claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/template/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/template/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/template/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/template/.claude/skills/nextjs/SKILL.md +434 -0
- package/template/.claude/skills/nextjs/overlay.yaml +284 -0
- package/template/.claude/skills/nextjs/references/app-router-files.md +94 -0
- package/template/.claude/skills/nextjs/references/async-patterns.md +87 -0
- package/template/.claude/skills/nextjs/references/bundling.md +180 -0
- package/template/.claude/skills/nextjs/references/data-patterns.md +297 -0
- package/template/.claude/skills/nextjs/references/debug-tricks.md +105 -0
- package/template/.claude/skills/nextjs/references/directives.md +73 -0
- package/template/.claude/skills/nextjs/references/error-handling.md +227 -0
- package/template/.claude/skills/nextjs/references/file-conventions.md +140 -0
- package/template/.claude/skills/nextjs/references/font.md +245 -0
- package/template/.claude/skills/nextjs/references/functions.md +108 -0
- package/template/.claude/skills/nextjs/references/hydration-error.md +91 -0
- package/template/.claude/skills/nextjs/references/image.md +173 -0
- package/template/.claude/skills/nextjs/references/metadata.md +301 -0
- package/template/.claude/skills/nextjs/references/parallel-routes.md +287 -0
- package/template/.claude/skills/nextjs/references/route-handlers.md +146 -0
- package/template/.claude/skills/nextjs/references/rsc-boundaries.md +159 -0
- package/template/.claude/skills/nextjs/references/runtime-selection.md +39 -0
- package/template/.claude/skills/nextjs/references/scripts.md +141 -0
- package/template/.claude/skills/nextjs/references/self-hosting.md +371 -0
- package/template/.claude/skills/nextjs/references/suspense-boundaries.md +67 -0
- package/template/.claude/skills/nextjs/upstream/SKILL.md +153 -0
- package/template/.claude/skills/nextjs/upstream/references/app-router-files.md +94 -0
- package/template/.claude/skills/nextjs/upstream/references/async-patterns.md +87 -0
- package/template/.claude/skills/nextjs/upstream/references/bundling.md +180 -0
- package/template/.claude/skills/nextjs/upstream/references/data-patterns.md +297 -0
- package/template/.claude/skills/nextjs/upstream/references/debug-tricks.md +105 -0
- package/template/.claude/skills/nextjs/upstream/references/directives.md +73 -0
- package/template/.claude/skills/nextjs/upstream/references/error-handling.md +227 -0
- package/template/.claude/skills/nextjs/upstream/references/file-conventions.md +140 -0
- package/template/.claude/skills/nextjs/upstream/references/font.md +245 -0
- package/template/.claude/skills/nextjs/upstream/references/functions.md +108 -0
- package/template/.claude/skills/nextjs/upstream/references/hydration-error.md +91 -0
- package/template/.claude/skills/nextjs/upstream/references/image.md +173 -0
- package/template/.claude/skills/nextjs/upstream/references/metadata.md +301 -0
- package/template/.claude/skills/nextjs/upstream/references/parallel-routes.md +287 -0
- package/template/.claude/skills/nextjs/upstream/references/route-handlers.md +146 -0
- package/template/.claude/skills/nextjs/upstream/references/rsc-boundaries.md +159 -0
- package/template/.claude/skills/nextjs/upstream/references/runtime-selection.md +39 -0
- package/template/.claude/skills/nextjs/upstream/references/scripts.md +141 -0
- package/template/.claude/skills/nextjs/upstream/references/self-hosting.md +371 -0
- package/template/.claude/skills/nextjs/upstream/references/suspense-boundaries.md +67 -0
- package/template/.claude/skills/playwright-cli/SKILL.md +344 -0
- package/template/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
- package/template/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/template/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
- package/template/.claude/skills/playwright-cli/references/running-code.md +231 -0
- package/template/.claude/skills/playwright-cli/references/session-management.md +169 -0
- package/template/.claude/skills/playwright-cli/references/storage-state.md +275 -0
- package/template/.claude/skills/playwright-cli/references/test-generation.md +88 -0
- package/template/.claude/skills/playwright-cli/references/tracing.md +139 -0
- package/template/.claude/skills/playwright-cli/references/video-recording.md +143 -0
- package/template/.claude/skills/react-three-fiber/SKILL.md +180 -0
- package/template/.claude/skills/remotion/SKILL.md +43 -0
- package/template/.claude/skills/review-pr/SKILL.md +97 -0
- package/template/.claude/skills/security-scanner/SKILL.md +157 -0
- package/template/.claude/skills/security-scanner/references/A01-broken-access-control.md +136 -0
- package/template/.claude/skills/security-scanner/references/A02-security-misconfiguration.md +130 -0
- package/template/.claude/skills/security-scanner/references/A03-software-supply-chain-failures.md +117 -0
- package/template/.claude/skills/security-scanner/references/A04-cryptographic-failures.md +141 -0
- package/template/.claude/skills/security-scanner/references/A05-injection.md +155 -0
- package/template/.claude/skills/security-scanner/references/A06-insecure-design.md +145 -0
- package/template/.claude/skills/security-scanner/references/A07-authentication-failures.md +150 -0
- package/template/.claude/skills/security-scanner/references/A08-software-data-integrity-failures.md +132 -0
- package/template/.claude/skills/security-scanner/references/A09-security-logging-alerting-failures.md +130 -0
- package/template/.claude/skills/security-scanner/references/A10-mishandling-exceptional-conditions.md +154 -0
- package/template/.claude/skills/security-scanner/references/report-template.md +148 -0
- package/template/.claude/skills/shadcn/SKILL.md +246 -0
- package/template/.claude/skills/shadcn/agents/openai.yml +5 -0
- package/template/.claude/skills/shadcn/assets/shadcn-small.png +0 -0
- package/template/.claude/skills/shadcn/assets/shadcn.png +0 -0
- package/template/.claude/skills/shadcn/cli.md +276 -0
- package/template/.claude/skills/shadcn/customization.md +209 -0
- package/template/.claude/skills/shadcn/evals/evals.json +47 -0
- package/template/.claude/skills/shadcn/mcp.md +94 -0
- package/template/.claude/skills/shadcn/rules/base-vs-radix.md +306 -0
- package/template/.claude/skills/shadcn/rules/composition.md +195 -0
- package/template/.claude/skills/shadcn/rules/forms.md +192 -0
- package/template/.claude/skills/shadcn/rules/icons.md +101 -0
- package/template/.claude/skills/shadcn/rules/styling.md +162 -0
- package/template/.claude/skills/ship-it/SKILL.md +174 -0
- package/template/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/template/.claude/skills/skill-creator/SKILL.md +485 -0
- package/template/.claude/skills/skill-creator/agents/analyzer.md +274 -0
- package/template/.claude/skills/skill-creator/agents/comparator.md +202 -0
- package/template/.claude/skills/skill-creator/agents/grader.md +223 -0
- package/template/.claude/skills/skill-creator/assets/eval_review.html +146 -0
- package/template/.claude/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/template/.claude/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/template/.claude/skills/skill-creator/references/schemas.md +430 -0
- package/template/.claude/skills/skill-creator/scripts/__init__.py +0 -0
- package/template/.claude/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/template/.claude/skills/skill-creator/scripts/generate_report.py +326 -0
- package/template/.claude/skills/skill-creator/scripts/improve_description.py +247 -0
- package/template/.claude/skills/skill-creator/scripts/package_skill.py +136 -0
- package/template/.claude/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/template/.claude/skills/skill-creator/scripts/run_eval.py +310 -0
- package/template/.claude/skills/skill-creator/scripts/run_loop.py +328 -0
- package/template/.claude/skills/skill-creator/scripts/utils.py +47 -0
- package/template/.claude/skills/svelte/SKILL.md +284 -0
- package/template/.claude/skills/tdd/SKILL.md +109 -0
- package/template/.claude/skills/tdd/deep-modules.md +33 -0
- package/template/.claude/skills/tdd/interface-design.md +31 -0
- package/template/.claude/skills/tdd/mocking.md +59 -0
- package/template/.claude/skills/tdd/refactoring.md +10 -0
- package/template/.claude/skills/tdd/tests.md +61 -0
- package/template/.claude/skills/threejs/SKILL.md +43 -0
- package/template/.claude/skills/to-issues/SKILL.md +83 -0
- package/template/.claude/skills/to-prd/SKILL.md +76 -0
- package/template/.claude/skills/vercel-react-best-practices/AGENTS.md +3750 -0
- package/template/.claude/skills/vercel-react-best-practices/README.md +123 -0
- package/template/.claude/skills/vercel-react-best-practices/SKILL.md +148 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/template/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/template/.claude/skills/video-downloader/SKILL.md +42 -0
- package/template/.claude/skills/web-design-guidelines/SKILL.md +39 -0
- package/template/.claude/skills/webgpu-threejs-tsl/REFERENCE.md +371 -0
- package/template/.claude/skills/webgpu-threejs-tsl/SKILL.md +93 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/compute-shaders.md +578 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/core-concepts.md +497 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/device-loss.md +359 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/limits-and-features.md +133 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/materials.md +353 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/post-processing.md +515 -0
- package/template/.claude/skills/webgpu-threejs-tsl/docs/wgsl-integration.md +324 -0
- package/template/.claude/skills/webgpu-threejs-tsl/examples/basic-setup.js +87 -0
- package/template/.claude/skills/webgpu-threejs-tsl/examples/custom-material.js +170 -0
- package/template/.claude/skills/webgpu-threejs-tsl/examples/earth-shader.js +292 -0
- package/template/.claude/skills/webgpu-threejs-tsl/examples/particle-system.js +259 -0
- package/template/.claude/skills/webgpu-threejs-tsl/examples/post-processing.js +199 -0
- package/template/.claude/skills/webgpu-threejs-tsl/templates/compute-shader.js +343 -0
- package/template/.claude/skills/webgpu-threejs-tsl/templates/webgpu-project.js +276 -0
- package/template/.claude/skills/zoom-out/SKILL.md +7 -0
- package/template/.mcp.json +5 -0
- package/template/.nvmrc +1 -0
- package/template/.prettierignore +25 -0
- package/template/.prettierrc +11 -0
- package/template/.vscode/settings.json +1 -0
- package/template/.vscode/tasks.json.example +85 -0
- package/template/AGENTS.md +37 -0
- package/template/CLAUDE.md +75 -0
- package/template/CONTEXT.md +29 -0
- package/template/DESIGN.md +451 -0
- package/template/README.md +394 -0
- package/template/_gitignore +48 -0
- package/template/components.json +21 -0
- package/template/docker-compose.yml +9 -0
- package/template/docs/business/starter-prompt.md +94 -0
- package/template/docs/technical/ai/streaming.md +520 -0
- package/template/docs/technical/ai/structured-data.md +409 -0
- package/template/docs/technical/betterauth/polar.md +476 -0
- package/template/docs/technical/react-markdown.md +123 -0
- package/template/drizzle/0000_chilly_the_phantom.sql +50 -0
- package/template/drizzle/0001_last_warpath.sql +5 -0
- package/template/drizzle/meta/0000_snapshot.json +326 -0
- package/template/drizzle/meta/0001_snapshot.json +410 -0
- package/template/drizzle/meta/_journal.json +20 -0
- package/template/drizzle.config.ts +10 -0
- package/template/env.example +26 -0
- package/template/eslint.config.mjs +75 -0
- package/template/next-env.d.ts +6 -0
- package/template/next.config.ts +57 -0
- package/template/package.json +79 -0
- package/template/postcss.config.mjs +5 -0
- package/template/public/file.svg +1 -0
- package/template/public/globe.svg +1 -0
- package/template/public/next.svg +1 -0
- package/template/public/vercel.svg +1 -0
- package/template/public/window.svg +1 -0
- package/template/scripts/setup.ts +277 -0
- package/template/skills-lock.json +61 -0
- package/template/specs/ui-polish-responsive/README.md +59 -0
- package/template/specs/ui-polish-responsive/action-required.md +3 -0
- package/template/specs/ui-polish-responsive/requirements.md +53 -0
- package/template/specs/ui-polish-responsive/tasks/task-01-globals-css.md +144 -0
- package/template/specs/ui-polish-responsive/tasks/task-02-layout.md +66 -0
- package/template/specs/ui-polish-responsive/tasks/task-03-site-header.md +79 -0
- package/template/specs/ui-polish-responsive/tasks/task-04-site-footer.md +63 -0
- package/template/specs/ui-polish-responsive/tasks/task-05-home-page.md +215 -0
- package/template/specs/ui-polish-responsive/tasks/task-06-dashboard.md +222 -0
- package/template/specs/ui-polish-responsive/tasks/task-07-chat-page.md +225 -0
- package/template/specs/ui-polish-responsive/tasks/task-08-profile-page.md +192 -0
- package/template/specs/ui-polish-responsive/tasks/task-09-auth-pages.md +97 -0
- package/template/specs/ui-polish-responsive/tasks/task-10-setup-checklist.md +120 -0
- package/template/specs/ui-polish-responsive/tasks/task-11-starter-prompt-modal.md +87 -0
- package/template/src/app/(auth)/forgot-password/page.tsx +35 -0
- package/template/src/app/(auth)/layout.tsx +7 -0
- package/template/src/app/(auth)/login/page.tsx +44 -0
- package/template/src/app/(auth)/register/page.tsx +33 -0
- package/template/src/app/(auth)/reset-password/page.tsx +36 -0
- package/template/src/app/api/auth/[...all]/route.ts +4 -0
- package/template/src/app/api/chat/route.ts +80 -0
- package/template/src/app/api/diagnostics/route.ts +162 -0
- package/template/src/app/chat/error.tsx +46 -0
- package/template/src/app/chat/loading.tsx +42 -0
- package/template/src/app/chat/page.tsx +348 -0
- package/template/src/app/dashboard/loading.tsx +63 -0
- package/template/src/app/dashboard/page.tsx +79 -0
- package/template/src/app/error.tsx +44 -0
- package/template/src/app/favicon.ico +0 -0
- package/template/src/app/globals.css +175 -0
- package/template/src/app/layout.tsx +108 -0
- package/template/src/app/manifest.ts +21 -0
- package/template/src/app/not-found.tsx +28 -0
- package/template/src/app/page.tsx +152 -0
- package/template/src/app/profile/page.tsx +416 -0
- package/template/src/app/robots.ts +16 -0
- package/template/src/app/sitemap.ts +26 -0
- package/template/src/components/auth/forgot-password-form.tsx +83 -0
- package/template/src/components/auth/reset-password-form.tsx +107 -0
- package/template/src/components/auth/sign-in-button.tsx +97 -0
- package/template/src/components/auth/sign-out-button.tsx +31 -0
- package/template/src/components/auth/sign-up-form.tsx +121 -0
- package/template/src/components/auth/user-profile.tsx +91 -0
- package/template/src/components/setup-checklist.tsx +180 -0
- package/template/src/components/site-footer.tsx +24 -0
- package/template/src/components/site-header.tsx +46 -0
- package/template/src/components/starter-prompt-modal.tsx +202 -0
- package/template/src/components/theme-provider.tsx +11 -0
- package/template/src/components/ui/avatar.tsx +52 -0
- package/template/src/components/ui/badge.tsx +35 -0
- package/template/src/components/ui/button.tsx +58 -0
- package/template/src/components/ui/card.tsx +78 -0
- package/template/src/components/ui/dialog.tsx +142 -0
- package/template/src/components/ui/dropdown-menu.tsx +256 -0
- package/template/src/components/ui/github-stars.tsx +53 -0
- package/template/src/components/ui/input.tsx +20 -0
- package/template/src/components/ui/label.tsx +23 -0
- package/template/src/components/ui/mode-toggle.tsx +38 -0
- package/template/src/components/ui/separator.tsx +23 -0
- package/template/src/components/ui/skeleton.tsx +13 -0
- package/template/src/components/ui/sonner.tsx +42 -0
- package/template/src/components/ui/spinner.tsx +21 -0
- package/template/src/components/ui/textarea.tsx +17 -0
- package/template/src/hooks/use-diagnostics.ts +86 -0
- package/template/src/lib/auth-client.ts +16 -0
- package/template/src/lib/auth.ts +25 -0
- package/template/src/lib/db.ts +12 -0
- package/template/src/lib/env.ts +117 -0
- package/template/src/lib/schema.ts +82 -0
- package/template/src/lib/session.ts +48 -0
- package/template/src/lib/storage.ts +225 -0
- package/template/src/lib/utils.ts +6 -0
- package/template/src/proxy.ts +25 -0
- package/template/tsconfig.json +48 -0
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
# Xani Agentic Starter Kit
|
|
2
|
+
|
|
3
|
+
Um starter kit orientado para produção que permite criar aplicações web com inteligência artificial através de um fluxo de desenvolvimento agêntico. Inclui uma aplicação Next.js funcional, autenticação, PostgreSQL, Drizzle ORM, integração com o AI SDK, componentes shadcn/ui e instruções de projeto que ajudam os agentes de programação a planear, dividir, implementar, rever e verificar alterações.
|
|
4
|
+
|
|
5
|
+
O objetivo é simples: instalar o starter, descrever o produto que pretende construir e deixar o seu agente de programação ajudar a transformar o boilerplate na sua POC, MVP ou ferramenta interna real.
|
|
6
|
+
|
|
7
|
+
## O Que Recebe
|
|
8
|
+
|
|
9
|
+
- **Next.js 16 e React 19** com o App Router
|
|
10
|
+
- **TypeScript** e uma configuração de projeto rigorosa
|
|
11
|
+
- **Better Auth** com autenticação por email/palavra-passe ativada por predefinição
|
|
12
|
+
- **PostgreSQL e Drizzle ORM** para esquema e migrações
|
|
13
|
+
- **AI SDK e OpenRouter** para chat e funcionalidades de IA
|
|
14
|
+
- **shadcn/ui, Tailwind CSS e Ãcones Lucide** como base da interface
|
|
15
|
+
- **Armazenamento de ficheiros local ou Vercel Blob** através de uma única abstração de armazenamento
|
|
16
|
+
- **Instruções para agentes** através de `AGENTS.md` e `CLAUDE.md`
|
|
17
|
+
- **Skills para agentes** para especificações, implementação, revisões, análises de segurança, trabalho de interface e publicação
|
|
18
|
+
|
|
19
|
+
## InÃcio Rápido
|
|
20
|
+
|
|
21
|
+
Crie uma nova aplicação com a CLI:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx create-xani-agentic-app@latest my-app
|
|
25
|
+
cd my-app
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Ou crie a aplicação no diretório atual:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx create-xani-agentic-app@latest .
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
De seguida, configure e execute a aplicação:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
cp env.example .env
|
|
38
|
+
docker compose up -d
|
|
39
|
+
pnpm db:migrate
|
|
40
|
+
pnpm dev
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Abra [http://localhost:3000](http://localhost:3000).
|
|
44
|
+
|
|
45
|
+
A CLI copia os ficheiros do starter, instala as dependências com o gestor de pacotes que selecionou e prepara o ficheiro de ambiente. Se utilizar o `npm`, substitua os comandos `pnpm` acima por `npm run`.
|
|
46
|
+
|
|
47
|
+
## Configuração Guiada com o Claude Code (Opcional)
|
|
48
|
+
|
|
49
|
+
Se utilizar o Claude Code, pode instalar a skill `create-xani-agentic-app` e deixar o Claude conduzi-lo por toda a configuração — estratégia de pastas, gestor de pacotes, PostgreSQL (Docker / Neon / Vercel / próprio), configuração do `.env`, migrações, integrações opcionais (OpenRouter, Vercel Blob, Polar, email), verificação de build e validação do servidor de desenvolvimento — terminando num `http://localhost:3000` verificado.
|
|
50
|
+
|
|
51
|
+
Instale a skill:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx skills add AlexandreXavier/xani-agentic-starter-kit@create-xani-agentic-app --agent claude-code
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
A flag `--agent claude-code` é obrigatória. Sem ela, o instalador coloca a skill em mais de 37 pastas de adaptadores de IDE na raiz do projeto.
|
|
58
|
+
|
|
59
|
+
Depois de instalada, peça algo ao Claude como:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
Scaffold a new Xani Agentic Starter Kit project here.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
O Claude executará a skill de ponta a ponta e fará apenas as poucas decisões que realmente precisa de tomar.
|
|
66
|
+
|
|
67
|
+
## Pré-requisitos
|
|
68
|
+
|
|
69
|
+
- Node.js 18 ou mais recente
|
|
70
|
+
- Git
|
|
71
|
+
- PostgreSQL, através do ficheiro Docker Compose incluÃdo ou de um fornecedor alojado
|
|
72
|
+
- Um gestor de pacotes: `pnpm`, `npm` ou `yarn`
|
|
73
|
+
- Opcional: uma chave de API do OpenRouter para as funcionalidades de chat com IA
|
|
74
|
+
- Opcional: uma conta Vercel para implementação, Postgres alojado e armazenamento Blob
|
|
75
|
+
|
|
76
|
+
## Variáveis de Ambiente
|
|
77
|
+
|
|
78
|
+
Comece a partir de `env.example` e atualize os valores para o seu ambiente:
|
|
79
|
+
|
|
80
|
+
```env
|
|
81
|
+
# Database
|
|
82
|
+
POSTGRES_URL=postgresql://dev_user:dev_password@localhost:5432/postgres_dev
|
|
83
|
+
|
|
84
|
+
# Authentication - Better Auth
|
|
85
|
+
BETTER_AUTH_SECRET=your-random-secret
|
|
86
|
+
|
|
87
|
+
# AI Integration via OpenRouter
|
|
88
|
+
OPENROUTER_API_KEY=
|
|
89
|
+
OPENROUTER_MODEL="openai/gpt-5-mini"
|
|
90
|
+
|
|
91
|
+
# Optional - for vector search only
|
|
92
|
+
OPENAI_EMBEDDING_MODEL="text-embedding-3-large"
|
|
93
|
+
|
|
94
|
+
# App URL
|
|
95
|
+
NEXT_PUBLIC_APP_URL="http://localhost:3000"
|
|
96
|
+
|
|
97
|
+
# File storage
|
|
98
|
+
BLOB_READ_WRITE_TOKEN=
|
|
99
|
+
|
|
100
|
+
# Polar payment processing
|
|
101
|
+
POLAR_WEBHOOK_SECRET=polar_
|
|
102
|
+
POLAR_ACCESS_TOKEN=polar_
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Para desenvolvimento local, o URL de base de dados predefinido funciona com o `docker-compose.yml` incluÃdo. Para produção, utilize o URL de base de dados do seu fornecedor de alojamento.
|
|
106
|
+
|
|
107
|
+
Gere um `BETTER_AUTH_SECRET` forte antes de implementar. O starter inclui apenas um valor de desenvolvimento para que possa começar rapidamente.
|
|
108
|
+
|
|
109
|
+
## Autenticação Predefinida
|
|
110
|
+
|
|
111
|
+
O starter passa agora a utilizar por predefinição a **autenticação por email e palavra-passe** através do Better Auth. Isto mantém a primeira configuração simples e ajuda-o a começar a construir POCs e MVPs sem criar credenciais OAuth à partida.
|
|
112
|
+
|
|
113
|
+
A configuração de autenticação atual inclui:
|
|
114
|
+
|
|
115
|
+
- registo de utilizadores
|
|
116
|
+
- inÃcio de sessão por email/palavra-passe
|
|
117
|
+
- rotas protegidas
|
|
118
|
+
- fluxo de reposição de palavra-passe
|
|
119
|
+
- fluxo de verificação de email
|
|
120
|
+
|
|
121
|
+
Em desenvolvimento, as ligações de verificação e de reposição de palavra-passe são registadas no terminal em vez de serem enviadas através de um fornecedor de email. Quando estiver pronto para produção, peça ao seu agente de programação para ligar um serviço de email e atualizar os callbacks de email do Better Auth.
|
|
122
|
+
|
|
123
|
+
### Adicionar o Google OAuth
|
|
124
|
+
|
|
125
|
+
O Google OAuth já não é a predefinição, mas voltar a adicioná-lo é simples. Peça ao seu agente de programação:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
Add Google OAuth to this Better Auth setup. Keep email/password login enabled, add the Google provider, update the auth UI, and document the required Google environment variables.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
O seu agente deverá atualizar a configuração do Better Auth, adicionar as variáveis `GOOGLE_CLIENT_ID` e `GOOGLE_CLIENT_SECRET` necessárias e ajustar a interface de inÃcio de sessão.
|
|
132
|
+
|
|
133
|
+
## Construir com um Agente
|
|
134
|
+
|
|
135
|
+
Este starter foi concebido para ser utilizado com agentes de programação. O projeto gerado inclui instruções que dizem aos agentes como planear, fazer perguntas, dividir o trabalho, utilizar sub-agentes quando útil, seguir o sistema de design e verificar as alterações.
|
|
136
|
+
|
|
137
|
+
- `AGENTS.md` é o ficheiro de instruções principal para o Codex, o Cursor e outras ferramentas compatÃveis com agentes.
|
|
138
|
+
- `CLAUDE.md` encaminha os utilizadores do Claude para a mesma orientação de projeto.
|
|
139
|
+
- `.agents/skills/` e `.claude/skills/` incluem fluxos de trabalho opcionais para tarefas mais especializadas.
|
|
140
|
+
- `DESIGN.md` define o sistema de design da interface que os agentes devem seguir.
|
|
141
|
+
|
|
142
|
+
O fluxo de trabalho predefinido não requer comandos de barra (slash commands) nem um ficheiro de especificação separado.
|
|
143
|
+
|
|
144
|
+
### Fluxo de Trabalho Predefinido Recomendado
|
|
145
|
+
|
|
146
|
+
1. Instale o starter e abra o projeto no ambiente do seu agente de programação.
|
|
147
|
+
2. Coloque a sua ferramenta de agente em modo de planeamento.
|
|
148
|
+
3. Descreva a aplicação que pretende construir em linguagem simples.
|
|
149
|
+
4. Deixe o agente fazer perguntas de esclarecimento e dar forma a um plano claro.
|
|
150
|
+
5. Confirme o plano assim que o objetivo, o âmbito, as restrições e os critérios de sucesso estiverem claros.
|
|
151
|
+
6. Coloque a sua ferramenta de agente em modo de edição.
|
|
152
|
+
7. Peça ao agente para implementar o plano aprovado.
|
|
153
|
+
8. O agente principal deve dividir o trabalho em fluxos paralelos, silos ou blocos de funcionalidades que caibam no contexto.
|
|
154
|
+
9. O agente deve utilizar sub-agentes para implementar esses blocos em paralelo, quando útil, e depois coordenar os resultados.
|
|
155
|
+
10. O agente deve executar verificações de qualidade como lint, typecheck e build.
|
|
156
|
+
11. Reveja o resultado no navegador e itere.
|
|
157
|
+
|
|
158
|
+
Não necessita de um comando especial para este fluxo de trabalho predefinido. As instruções do projeto já dizem ao agente como planear, dividir o trabalho de implementação, utilizar sub-agentes e verificar o resultado.
|
|
159
|
+
|
|
160
|
+
## Prompt Inicial
|
|
161
|
+
|
|
162
|
+
Utilize isto como primeira mensagem para o seu agente de programação após instalar o starter:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
I am using the Xani Agentic Starter Kit. Treat the existing app as boilerplate that should be replaced by the product I describe.
|
|
166
|
+
|
|
167
|
+
Use the project instructions in AGENTS.md or CLAUDE.md. During planning, ask clarifying questions before making assumptions. During implementation, split the work into small chunks, use sub-agents where useful, follow DESIGN.md for UI, preserve the existing tech stack unless there is a good reason to change it, and run lint, typecheck, and build before finishing.
|
|
168
|
+
|
|
169
|
+
What I want to build:
|
|
170
|
+
[Describe your app here]
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Por exemplo:
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
What I want to build:
|
|
177
|
+
A lightweight CRM for solo consultants. It should let users manage clients, track deals, write notes, set follow-up reminders, and view a simple dashboard of open opportunities.
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Quando Utilizar Especificações
|
|
181
|
+
|
|
182
|
+
Para a maioria das POCs e MVPs, o fluxo de trabalho normal do agente é suficiente. Utilize uma especificação quando a funcionalidade for grande, de longa duração, arriscada ou tiver de ser dividida por várias sessões de implementação.
|
|
183
|
+
|
|
184
|
+
O starter inclui duas skills para esse fluxo de trabalho:
|
|
185
|
+
|
|
186
|
+
- `create-spec`: transforma uma conversa de planeamento em `specs/{feature}/` com requisitos, ficheiros de tarefas, ondas de dependências e notas de ações manuais.
|
|
187
|
+
- `implement-feature`: lê uma pasta de especificação e coordena a implementação onda a onda com pontos de controlo de revisão.
|
|
188
|
+
|
|
189
|
+
Utilize este fluxo de trabalho quando:
|
|
190
|
+
|
|
191
|
+
- a funcionalidade abrange muitos ficheiros ou módulos
|
|
192
|
+
- vários agentes devem trabalhar em paralelo
|
|
193
|
+
- a implementação pode demorar mais do que uma sessão
|
|
194
|
+
- precisa de acompanhamento de progresso retomável
|
|
195
|
+
- pretende um registo de implementação escrito antes de começar a programar
|
|
196
|
+
|
|
197
|
+
Exemplo de pedido ao agente:
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
Create a spec for the billing and subscriptions feature we just planned. Break it into parallel implementation waves and include any manual setup steps.
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Depois:
|
|
204
|
+
|
|
205
|
+
```text
|
|
206
|
+
Implement the billing and subscriptions spec from specs/billing-subscriptions.
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Estrutura do Projeto
|
|
210
|
+
|
|
211
|
+
```text
|
|
212
|
+
src/
|
|
213
|
+
├── app/
|
|
214
|
+
│ ├── (auth)/
|
|
215
|
+
│ │ ├── forgot-password/
|
|
216
|
+
│ │ ├── login/
|
|
217
|
+
│ │ ├── register/
|
|
218
|
+
│ │ └── reset-password/
|
|
219
|
+
│ ├── api/
|
|
220
|
+
│ │ ├── auth/
|
|
221
|
+
│ │ ├── chat/
|
|
222
|
+
│ │ └── diagnostics/
|
|
223
|
+
│ ├── chat/
|
|
224
|
+
│ ├── dashboard/
|
|
225
|
+
│ ├── profile/
|
|
226
|
+
│ ├── layout.tsx
|
|
227
|
+
│ └── page.tsx
|
|
228
|
+
├── components/
|
|
229
|
+
│ ├── auth/
|
|
230
|
+
│ ├── ui/
|
|
231
|
+
│ ├── site-footer.tsx
|
|
232
|
+
│ └── site-header.tsx
|
|
233
|
+
├── hooks/
|
|
234
|
+
└── lib/
|
|
235
|
+
├── auth.ts
|
|
236
|
+
├── auth-client.ts
|
|
237
|
+
├── db.ts
|
|
238
|
+
├── env.ts
|
|
239
|
+
├── schema.ts
|
|
240
|
+
├── session.ts
|
|
241
|
+
├── storage.ts
|
|
242
|
+
└── utils.ts
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Ficheiros importantes na raiz:
|
|
246
|
+
|
|
247
|
+
- `AGENTS.md`: regras de comportamento dos agentes de programação
|
|
248
|
+
- `CLAUDE.md`: ponto de entrada do Claude para a mesma orientação
|
|
249
|
+
- `DESIGN.md`: sistema de design da interface e orientação sobre componentes
|
|
250
|
+
- `drizzle.config.ts`: configuração das migrações do Drizzle
|
|
251
|
+
- `docker-compose.yml`: serviço PostgreSQL local
|
|
252
|
+
- `env.example`: modelo das variáveis de ambiente
|
|
253
|
+
- `components.json`: configuração do shadcn/ui
|
|
254
|
+
|
|
255
|
+
## Scripts DisponÃveis
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
pnpm dev # Start the development server with Turbopack
|
|
259
|
+
pnpm build # Run migrations, then build for production
|
|
260
|
+
pnpm build:ci # Build without running migrations
|
|
261
|
+
pnpm start # Start the production server
|
|
262
|
+
pnpm lint # Run ESLint
|
|
263
|
+
pnpm typecheck # Run TypeScript without emitting files
|
|
264
|
+
pnpm check # Run lint and typecheck
|
|
265
|
+
pnpm format # Format the repository
|
|
266
|
+
pnpm format:check # Check formatting
|
|
267
|
+
pnpm setup # Run the setup script
|
|
268
|
+
pnpm db:generate # Generate Drizzle migrations
|
|
269
|
+
pnpm db:migrate # Run Drizzle migrations
|
|
270
|
+
pnpm db:studio # Open Drizzle Studio
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
O repositório também contém scripts auxiliares de push/reset do Drizzle para experimentação local. Para alterações de esquema que pretenda manter, prefira:
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
pnpm db:generate
|
|
277
|
+
pnpm db:migrate
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Não utilize o schema push como substituto das migrações em trabalho de projeto real.
|
|
281
|
+
|
|
282
|
+
## Fluxo de Trabalho da Base de Dados
|
|
283
|
+
|
|
284
|
+
Para desenvolvimento local:
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
docker compose up -d
|
|
288
|
+
pnpm db:migrate
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Quando a sua aplicação necessitar de alterações de esquema, peça ao seu agente para atualizar `src/lib/schema.ts`, gerar uma migração e executá-la:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
pnpm db:generate
|
|
295
|
+
pnpm db:migrate
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Se implementar na Vercel ou noutro ambiente alojado, defina `POSTGRES_URL` nesse ambiente antes de executar as migrações ou compilar a aplicação.
|
|
299
|
+
|
|
300
|
+
## Funcionalidades de IA
|
|
301
|
+
|
|
302
|
+
O starter utiliza o Vercel AI SDK com o OpenRouter. Defina estas variáveis para ativar o chat com IA:
|
|
303
|
+
|
|
304
|
+
```env
|
|
305
|
+
OPENROUTER_API_KEY=sk-or-v1-your-key
|
|
306
|
+
OPENROUTER_MODEL="openai/gpt-5-mini"
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
O OpenRouter permite-lhe trocar de modelo sem alterar o código da aplicação. Atualize `OPENROUTER_MODEL` quando quiser experimentar um modelo diferente.
|
|
310
|
+
|
|
311
|
+
## Armazenamento de Ficheiros
|
|
312
|
+
|
|
313
|
+
O starter inclui uma abstração de armazenamento que pode utilizar armazenamento local em desenvolvimento ou o Vercel Blob em produção.
|
|
314
|
+
|
|
315
|
+
Para desenvolvimento local, deixe `BLOB_READ_WRITE_TOKEN` vazio. Os ficheiros são guardados em `public/uploads/`.
|
|
316
|
+
|
|
317
|
+
Para o Vercel Blob:
|
|
318
|
+
|
|
319
|
+
1. Crie um Blob store na Vercel.
|
|
320
|
+
2. Copie o `BLOB_READ_WRITE_TOKEN`.
|
|
321
|
+
3. Adicione-o às variáveis de ambiente de produção.
|
|
322
|
+
|
|
323
|
+
A aplicação escolhe o backend de armazenamento consoante o `BLOB_READ_WRITE_TOKEN` esteja ou não configurado.
|
|
324
|
+
|
|
325
|
+
## Implementação
|
|
326
|
+
|
|
327
|
+
A Vercel é o destino de implementação recomendado.
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
npm install -g vercel
|
|
331
|
+
vercel --prod
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Defina as variáveis de ambiente de produção necessárias:
|
|
335
|
+
|
|
336
|
+
- `POSTGRES_URL`
|
|
337
|
+
- `BETTER_AUTH_SECRET`
|
|
338
|
+
- `NEXT_PUBLIC_APP_URL`
|
|
339
|
+
- `OPENROUTER_API_KEY`, se utilizar funcionalidades de IA
|
|
340
|
+
- `OPENROUTER_MODEL`, se utilizar funcionalidades de IA
|
|
341
|
+
- `BLOB_READ_WRITE_TOKEN`, se utilizar o Vercel Blob
|
|
342
|
+
- `POLAR_WEBHOOK_SECRET` e `POLAR_ACCESS_TOKEN`, se utilizar pagamentos Polar
|
|
343
|
+
|
|
344
|
+
O script `pnpm build` predefinido executa as migrações da base de dados antes do `next build`. Se a sua CI ou alojamento não deve executar migrações durante o build, utilize `pnpm build:ci` e execute as migrações como um passo de implementação separado.
|
|
345
|
+
|
|
346
|
+
## Resolução de Problemas
|
|
347
|
+
|
|
348
|
+
### A aplicação não consegue ligar-se ao Postgres
|
|
349
|
+
|
|
350
|
+
Confirme que o Docker está a correr e inicie a base de dados:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
docker compose up -d
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Depois verifique que o `POSTGRES_URL` no `.env` corresponde à string de ligação da base de dados.
|
|
357
|
+
|
|
358
|
+
### Os emails de reposição ou verificação de autenticação não chegam
|
|
359
|
+
|
|
360
|
+
Em desenvolvimento, as ligações são registadas no terminal. Isto é intencional. Ligue um fornecedor de email antes de utilizar a reposição de palavra-passe ou a verificação em produção.
|
|
361
|
+
|
|
362
|
+
### O chat com IA não funciona
|
|
363
|
+
|
|
364
|
+
Defina `OPENROUTER_API_KEY` e reinicie o servidor de desenvolvimento. Confirme também que `OPENROUTER_MODEL` é um modelo disponÃvel na sua conta OpenRouter.
|
|
365
|
+
|
|
366
|
+
### O meu agente está a preservar demasiado boilerplate
|
|
367
|
+
|
|
368
|
+
Diga ao agente diretamente que a interface do starter é andaime (scaffolding) e deve ser substituÃda:
|
|
369
|
+
|
|
370
|
+
```text
|
|
371
|
+
Replace the starter UI with the actual product UI. Do not keep setup checklists, placeholder navigation, demo content, or boilerplate copy unless I explicitly ask for it.
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### Preciso de inÃcio de sessão com a Google
|
|
375
|
+
|
|
376
|
+
Peça ao seu agente para adicionar o Google OAuth através do Better Auth, mantendo o email/palavra-passe ativado. Vai precisar de credenciais OAuth da Google e de URLs de callback de produção.
|
|
377
|
+
|
|
378
|
+
## Contribuir
|
|
379
|
+
|
|
380
|
+
1. Faça fork deste repositório.
|
|
381
|
+
2. Crie um branch de funcionalidade.
|
|
382
|
+
3. Faça as suas alterações.
|
|
383
|
+
4. Execute as verificações relevantes.
|
|
384
|
+
5. Abra um pull request.
|
|
385
|
+
|
|
386
|
+
## Licença
|
|
387
|
+
|
|
388
|
+
Este projeto está licenciado sob a Licença MIT.
|
|
389
|
+
|
|
390
|
+
## Precisa de Ajuda?
|
|
391
|
+
|
|
392
|
+
- Consulte os issues do repositório: [github.com/AlexandreXavier/xani-agentic-starter-kit/issues](https://github.com/AlexandreXavier/xani-agentic-starter-kit/issues)
|
|
393
|
+
- Reveja `AGENTS.md`, `CLAUDE.md` e `DESIGN.md`
|
|
394
|
+
- Abra um novo issue com os passos exatos de configuração, o output do erro e os detalhes do ambiente
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
|
2
|
+
|
|
3
|
+
# dependencies
|
|
4
|
+
/node_modules
|
|
5
|
+
/.pnp
|
|
6
|
+
.pnp.*
|
|
7
|
+
.yarn/*
|
|
8
|
+
!.yarn/patches
|
|
9
|
+
!.yarn/plugins
|
|
10
|
+
!.yarn/releases
|
|
11
|
+
!.yarn/versions
|
|
12
|
+
.pnpm-lock.yaml
|
|
13
|
+
|
|
14
|
+
# testing
|
|
15
|
+
/coverage
|
|
16
|
+
/.playwright-mcp
|
|
17
|
+
|
|
18
|
+
# next.js
|
|
19
|
+
/.next/
|
|
20
|
+
/out/
|
|
21
|
+
|
|
22
|
+
# production
|
|
23
|
+
/build
|
|
24
|
+
|
|
25
|
+
# misc
|
|
26
|
+
.DS_Store
|
|
27
|
+
*.pem
|
|
28
|
+
|
|
29
|
+
# debug
|
|
30
|
+
npm-debug.log*
|
|
31
|
+
yarn-debug.log*
|
|
32
|
+
yarn-error.log*
|
|
33
|
+
.pnpm-debug.log*
|
|
34
|
+
|
|
35
|
+
# env files (can opt-in for committing if needed)
|
|
36
|
+
.env*
|
|
37
|
+
|
|
38
|
+
# vercel
|
|
39
|
+
.vercel
|
|
40
|
+
|
|
41
|
+
# typescript
|
|
42
|
+
*.tsbuildinfo
|
|
43
|
+
next-env.d.ts
|
|
44
|
+
|
|
45
|
+
# uploads
|
|
46
|
+
public/uploads
|
|
47
|
+
|
|
48
|
+
nul
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
+
"style": "new-york",
|
|
4
|
+
"rsc": true,
|
|
5
|
+
"tsx": true,
|
|
6
|
+
"tailwind": {
|
|
7
|
+
"config": "",
|
|
8
|
+
"css": "src/app/globals.css",
|
|
9
|
+
"baseColor": "neutral",
|
|
10
|
+
"cssVariables": true,
|
|
11
|
+
"prefix": ""
|
|
12
|
+
},
|
|
13
|
+
"aliases": {
|
|
14
|
+
"components": "@/components",
|
|
15
|
+
"utils": "@/lib/utils",
|
|
16
|
+
"ui": "@/components/ui",
|
|
17
|
+
"lib": "@/lib",
|
|
18
|
+
"hooks": "@/hooks"
|
|
19
|
+
},
|
|
20
|
+
"iconLibrary": "lucide"
|
|
21
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
I'm working with an agentic coding boilerplate project that includes authentication, database integration, and AI capabilities. Here's what's already set up:
|
|
2
|
+
|
|
3
|
+
## Current Xani Agentic Starter Kit Structure
|
|
4
|
+
|
|
5
|
+
- **Authentication**: Better Auth with Google OAuth integration
|
|
6
|
+
- **Database**: Drizzle ORM with PostgreSQL setup
|
|
7
|
+
- **AI Integration**: Vercel AI SDK with OpenAI integration
|
|
8
|
+
- **UI**: shadcn/ui components with Tailwind CSS
|
|
9
|
+
- **Current Routes**:
|
|
10
|
+
- `/` - Home page with setup instructions and feature overview
|
|
11
|
+
- `/dashboard` - Protected dashboard page (requires authentication)
|
|
12
|
+
- `/chat` - AI chat interface (requires OpenAI API key)
|
|
13
|
+
|
|
14
|
+
## Important Context
|
|
15
|
+
|
|
16
|
+
This is an **agentic coding boilerplate/starter template** - all existing pages and components are meant to be examples and should be **completely replaced** to build the actual AI-powered application.
|
|
17
|
+
|
|
18
|
+
### CRITICAL: You MUST Override All Boilerplate Content
|
|
19
|
+
|
|
20
|
+
**DO NOT keep any boilerplate components, text, or UI elements unless explicitly requested.** This includes:
|
|
21
|
+
|
|
22
|
+
- **Remove all placeholder/demo content** (setup checklists, welcome messages, boilerplate text)
|
|
23
|
+
- **Replace the entire navigation structure** - don't keep the existing site header or nav items
|
|
24
|
+
- **Override all page content completely** - don't append to existing pages, replace them entirely
|
|
25
|
+
- **Remove or replace all example components** (setup-checklist, starter-prompt-modal, etc.)
|
|
26
|
+
- **Replace placeholder routes and pages** with the actual application functionality
|
|
27
|
+
|
|
28
|
+
### Required Actions:
|
|
29
|
+
|
|
30
|
+
1. **Start Fresh**: Treat existing components as temporary scaffolding to be removed
|
|
31
|
+
2. **Complete Replacement**: Build the new application from scratch using the existing tech stack
|
|
32
|
+
3. **No Hybrid Approach**: Don't try to integrate new features alongside existing boilerplate content
|
|
33
|
+
4. **Clean Slate**: The final application should have NO trace of the original boilerplate UI or content
|
|
34
|
+
|
|
35
|
+
The only things to preserve are:
|
|
36
|
+
|
|
37
|
+
- **All installed libraries and dependencies** (DO NOT uninstall or remove any packages from package.json)
|
|
38
|
+
- **Authentication system** (but customize the UI/flow as needed)
|
|
39
|
+
- **Database setup and schema** (but modify schema as needed for your use case)
|
|
40
|
+
- **Core configuration files** (next.config.ts, tsconfig.json, tailwind.config.ts, etc.)
|
|
41
|
+
- **Build and development scripts** (keep all npm/pnpm scripts in package.json)
|
|
42
|
+
|
|
43
|
+
## Tech Stack
|
|
44
|
+
|
|
45
|
+
- Next.js 16 with App Router
|
|
46
|
+
- TypeScript
|
|
47
|
+
- Tailwind CSS
|
|
48
|
+
- Better Auth for authentication
|
|
49
|
+
- Drizzle ORM + PostgreSQL
|
|
50
|
+
- Vercel AI SDK
|
|
51
|
+
- shadcn/ui components
|
|
52
|
+
- Lucide React icons
|
|
53
|
+
|
|
54
|
+
## Component Development Guidelines
|
|
55
|
+
|
|
56
|
+
**Always prioritize shadcn/ui components** when building the application:
|
|
57
|
+
|
|
58
|
+
1. **First Choice**: Use existing shadcn/ui components from the project
|
|
59
|
+
2. **Second Choice**: Install additional shadcn/ui components using `pnpm dlx shadcn@latest add <component-name>`
|
|
60
|
+
3. **Last Resort**: Only create custom components or use other libraries if shadcn/ui doesn't provide a suitable option
|
|
61
|
+
|
|
62
|
+
The project already includes several shadcn/ui components (button, dialog, avatar, etc.) and follows their design system. Always check the [shadcn/ui documentation](https://ui.shadcn.com/docs/components) for available components before implementing alternatives.
|
|
63
|
+
|
|
64
|
+
## What I Want to Build
|
|
65
|
+
|
|
66
|
+
Basic todo list app with the ability for users to add, remove, update, complete and view todos.
|
|
67
|
+
|
|
68
|
+
## Request
|
|
69
|
+
|
|
70
|
+
Please help me transform this boilerplate into my actual application. **You MUST completely replace all existing boilerplate code** to match my project requirements. The current implementation is just temporary scaffolding that should be entirely removed and replaced.
|
|
71
|
+
|
|
72
|
+
## Final Reminder: COMPLETE REPLACEMENT REQUIRED
|
|
73
|
+
|
|
74
|
+
🚨 **IMPORTANT**: Do not preserve any of the existing boilerplate UI, components, or content. The user expects a completely fresh application that implements their requirements from scratch. Any remnants of the original boilerplate (like setup checklists, welcome screens, demo content, or placeholder navigation) indicate incomplete implementation.
|
|
75
|
+
|
|
76
|
+
**Success Criteria**: The final application should look and function as if it was built from scratch for the specific use case, with no evidence of the original boilerplate template.
|
|
77
|
+
|
|
78
|
+
## Post-Implementation Documentation
|
|
79
|
+
|
|
80
|
+
After completing the implementation, you MUST document any new features or significant changes in the `/docs/features/` directory:
|
|
81
|
+
|
|
82
|
+
1. **Create Feature Documentation**: For each major feature implemented, create a markdown file in `/docs/features/` that explains:
|
|
83
|
+
|
|
84
|
+
- What the feature does
|
|
85
|
+
- How it works
|
|
86
|
+
- Key components and files involved
|
|
87
|
+
- Usage examples
|
|
88
|
+
- Any configuration or setup required
|
|
89
|
+
|
|
90
|
+
2. **Update Existing Documentation**: If you modify existing functionality, update the relevant documentation files to reflect the changes.
|
|
91
|
+
|
|
92
|
+
3. **Document Design Decisions**: Include any important architectural or design decisions made during implementation.
|
|
93
|
+
|
|
94
|
+
This documentation helps maintain the project and assists future developers working with the codebase.
|