create-inox-app 0.1.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 +110 -0
- package/dist/cli.js +22196 -0
- package/dist/prompt-Bp8saGVV.js +852 -0
- package/dist/templates/base/.gitignore.hbs +9 -0
- package/dist/templates/base/package.json.hbs +29 -0
- package/dist/templates/base/packages/typescript-config/base.json +17 -0
- package/dist/templates/base/packages/typescript-config/nextjs.json +8 -0
- package/dist/templates/base/packages/typescript-config/package.json +10 -0
- package/dist/templates/base/packages/typescript-config/react-library.json +7 -0
- package/dist/templates/base/turbo.json.hbs +32 -0
- package/dist/templates/ci/.gitlab-ci.yml.hbs +70 -0
- package/dist/templates/ci/scripts/build.sh.hbs +94 -0
- package/dist/templates/ci/scripts/prebuild.sh.hbs +11 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/SKILL.md +325 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/authentication.md +202 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/commands.md +259 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/proxy-support.md +188 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/session-management.md +193 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/snapshot-refs.md +194 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/video-recording.md +173 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/templates/authenticated-session.sh +100 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/templates/capture-workflow.sh +69 -0
- package/dist/templates/claude-config/app/.agents/skills/agent-browser/templates/form-automation.sh +62 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/SKILL.md +150 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/agent.md +131 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/artifact.md +84 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/attachments.md +190 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/audio-player.md +134 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/canvas.md +32 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/checkpoint.md +163 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/code-block.md +170 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/commit.md +177 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/confirmation.md +252 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/connection.md +32 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/context.md +126 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/controls.md +30 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/conversation.md +210 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/edge.md +50 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/environment-variables.md +102 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/file-tree.md +72 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/image.md +143 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/inline-citation.md +293 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/jsx-preview.md +101 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/message.md +256 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/mic-selector.md +186 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/model-selector.md +112 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/node.md +71 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/package-info.md +95 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/panel.md +31 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/persona.md +158 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/plan.md +79 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/prompt-input.md +555 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/queue.md +172 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/reasoning.md +219 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/sandbox.md +126 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/schema-display.md +102 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/shimmer.md +48 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/snippet.md +64 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/sources.md +193 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/speech-input.md +160 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/stack-trace.md +218 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/suggestion.md +121 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/task.md +215 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/terminal.md +103 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/test-results.md +157 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/tool.md +275 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/toolbar.md +30 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/transcription.md +120 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/voice-selector.md +241 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/web-preview.md +197 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/artifact.tsx +111 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/attachments-inline.tsx +117 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/attachments-list.tsx +88 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/attachments.tsx +78 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/audio-player.tsx +69 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +74 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/checkpoint.tsx +90 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/code-block.tsx +115 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +35 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +35 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation.tsx +53 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/context.tsx +45 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/conversation.tsx +176 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/environment-variables.tsx +55 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +14 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +17 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +20 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree.tsx +38 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/image.tsx +20 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/inline-citation.tsx +95 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/jsx-preview.tsx +99 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/message.tsx +324 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/mic-selector.tsx +46 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/model-selector.tsx +362 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/package-info.tsx +46 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-command.tsx +96 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-glint.tsx +96 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-halo.tsx +96 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-mana.tsx +96 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +96 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-opal.tsx +96 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/plan.tsx +63 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +459 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +40 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/prompt-input.tsx +247 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +367 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/queue.tsx +276 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/reasoning.tsx +67 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/sandbox.tsx +166 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +7 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +29 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +39 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/sources-custom.tsx +34 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/sources.tsx +27 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/speech-input.tsx +79 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/stack-trace.tsx +54 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/suggestion-input.tsx +137 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/suggestion.tsx +28 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/task.tsx +60 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal.tsx +77 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results.tsx +78 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-output-available.tsx +76 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-output-error.tsx +45 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool.tsx +205 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/transcription.tsx +284 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/voice-selector.tsx +228 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/web-preview.tsx +99 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-sdk/SKILL.md +78 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/common-errors.md +439 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/devtools.md +52 -0
- package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/type-safe-agents.md +200 -0
- package/dist/templates/claude-config/app/.agents/skills/better-auth-best-practices/SKILL.md +166 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/SKILL.md +37 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/accessibility.mdx +819 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/as-child.mdx +324 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/composition.mdx +239 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/data-attributes.mdx +413 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/definitions.mdx +258 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/design-tokens.mdx +57 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/docs.mdx +155 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/marketplaces.mdx +144 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/npm.mdx +166 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/polymorphism.mdx +583 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/principles.mdx +61 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/registry.mdx +169 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/state.mdx +99 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/styling.mdx +286 -0
- package/dist/templates/claude-config/app/.agents/skills/building-components/references/types.mdx +191 -0
- package/dist/templates/claude-config/app/.agents/skills/docker-expert/SKILL.md +409 -0
- package/dist/templates/claude-config/app/.agents/skills/email-and-password-best-practices/SKILL.md +224 -0
- package/dist/templates/claude-config/app/.agents/skills/find-skills/SKILL.md +133 -0
- package/dist/templates/claude-config/app/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/dist/templates/claude-config/app/.agents/skills/frontend-design/SKILL.md +42 -0
- package/dist/templates/claude-config/app/.agents/skills/git-commit/SKILL.md +124 -0
- package/dist/templates/claude-config/app/.agents/skills/gitlab-ci-patterns/SKILL.md +271 -0
- package/dist/templates/claude-config/app/.agents/skills/hono/SKILL.md +90 -0
- package/dist/templates/claude-config/app/.agents/skills/langfuse-observability/SKILL.md +139 -0
- package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/SKILL.md +127 -0
- package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/context.md +157 -0
- package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/pitfalls.md +118 -0
- package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/structure.md +193 -0
- package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/wide-events.md +113 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/SKILL.md +153 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/async-patterns.md +87 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/bundling.md +180 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/data-patterns.md +297 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/debug-tricks.md +105 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/directives.md +73 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/error-handling.md +227 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/file-conventions.md +140 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/font.md +245 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/functions.md +108 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/hydration-error.md +91 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/image.md +173 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/metadata.md +301 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/parallel-routes.md +287 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/route-handlers.md +146 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/runtime-selection.md +39 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/scripts.md +141 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/self-hosting.md +371 -0
- package/dist/templates/claude-config/app/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
- package/dist/templates/claude-config/app/.agents/skills/next-cache-components/SKILL.md +411 -0
- package/dist/templates/claude-config/app/.agents/skills/next-upgrade/SKILL.md +50 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/SKILL.md +179 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/CHEATSHEET.md +418 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/MIGRATIONS.md +536 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/PERFORMANCE.md +559 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/POSTGRES.md +588 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/QUERIES.md +764 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/RELATIONS.md +624 -0
- package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/SCHEMA.md +554 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/SKILL.md +356 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/references/output-patterns.md +82 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/references/workflows.md +28 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/scripts/init_skill.py +303 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/scripts/package_skill.py +113 -0
- package/dist/templates/claude-config/app/.agents/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/SKILL.md +164 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/basic-streaming.tsx +34 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/custom-security.tsx +38 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/full-featured.tsx +60 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/static-mode.tsx +17 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/with-caret.tsx +39 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/references/api.md +278 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/references/features.md +201 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/references/plugins.md +239 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/references/security.md +192 -0
- package/dist/templates/claude-config/app/.agents/skills/streamdown/references/styling.md +166 -0
- package/dist/templates/claude-config/app/.agents/skills/tdd/SKILL.md +107 -0
- package/dist/templates/claude-config/app/.agents/skills/tdd/deep-modules.md +33 -0
- package/dist/templates/claude-config/app/.agents/skills/tdd/interface-design.md +31 -0
- package/dist/templates/claude-config/app/.agents/skills/tdd/mocking.md +60 -0
- package/dist/templates/claude-config/app/.agents/skills/tdd/refactoring.md +10 -0
- package/dist/templates/claude-config/app/.agents/skills/tdd/tests.md +61 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/SKILL.md +914 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/command/turborepo.md +70 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/RULE.md +241 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/dependencies.md +246 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/packages.md +335 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/structure.md +270 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/boundaries/RULE.md +126 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/caching/RULE.md +107 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/caching/gotchas.md +169 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/caching/remote-cache.md +127 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/RULE.md +79 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/github-actions.md +162 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/patterns.md +145 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/vercel.md +103 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/cli/RULE.md +100 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/cli/commands.md +297 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/RULE.md +211 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/global-options.md +191 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/gotchas.md +348 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/tasks.md +281 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/environment/RULE.md +96 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/environment/gotchas.md +141 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/environment/modes.md +101 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/filtering/RULE.md +148 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/filtering/patterns.md +152 -0
- package/dist/templates/claude-config/app/.agents/skills/turborepo/references/watch/RULE.md +99 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/AGENTS.md +917 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/SKILL.md +88 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +94 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/architecture-compound-components.md +108 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +84 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +94 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +103 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/AGENTS.md +2883 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/SKILL.md +138 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +35 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +48 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +24 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +37 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +48 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +34 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +44 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +78 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +74 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +110 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +68 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +50 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +38 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +32 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +36 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +72 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +26 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +77 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +56 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +36 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/dist/templates/claude-config/app/.agents/skills/web-design-guidelines/SKILL.md +40 -0
- package/dist/templates/claude-config/app/.agents/skills/workflow/SKILL.md +181 -0
- package/dist/templates/claude-config/app/.claude/commands/council.md +7 -0
- package/dist/templates/claude-config/app/.claude/commands/deslop.md +25 -0
- package/dist/templates/claude-config/app/.claude/commands/diagram.md +101 -0
- package/dist/templates/claude-config/app/.claude/commands/fix-merge.md +47 -0
- package/dist/templates/claude-config/app/.claude/commands/you-might-not-need-an-effect.md +10 -0
- package/dist/templates/claude-config/app/.claude/hooks/post-tool-use-tracker.sh +187 -0
- package/dist/templates/claude-config/app/.claude/hooks/skill-activation-prompt.sh +5 -0
- package/dist/templates/claude-config/app/.claude/hooks/skill-activation-prompt.ts +134 -0
- package/dist/templates/claude-config/app/.claude/rules/comments.md +12 -0
- package/dist/templates/claude-config/app/.claude/rules/typescript.md +31 -0
- package/dist/templates/claude-config/app/.claude/settings.json.hbs +74 -0
- package/dist/templates/claude-config/app/.claude/skills/skill-rules.json.hbs +309 -0
- package/dist/templates/claude-config/app/AGENTS.md.hbs +185 -0
- package/dist/templates/claude-config/app/CLAUDE.md.hbs +5 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/git-commit/SKILL.md +124 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/SKILL.md +534 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/references/deployment-spec.md +780 -0
- package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/references/service-spec.md +748 -0
- package/dist/templates/claude-config/kustomize/.claude/settings.json +42 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/git-commit/SKILL.md +124 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/SKILL.md +534 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/references/deployment-spec.md +780 -0
- package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/references/service-spec.md +748 -0
- package/dist/templates/docker/.dockerignore.hbs +8 -0
- package/dist/templates/docker/Dockerfile.hbs +81 -0
- package/dist/templates/docker/docker-compose.yml.hbs +55 -0
- package/dist/templates/kustomize/base/deployments/app.yaml.hbs +44 -0
- package/dist/templates/kustomize/base/ingress/app.yaml.hbs +20 -0
- package/dist/templates/kustomize/base/jobs/app-jobs.yaml.hbs +43 -0
- package/dist/templates/kustomize/base/kustomization.yaml.hbs +13 -0
- package/dist/templates/kustomize/base/secrets/regcred.yaml.hbs +7 -0
- package/dist/templates/kustomize/base/services/app.yaml.hbs +12 -0
- package/dist/templates/kustomize/overlays/{{env}}/configs/app.config.env.hbs +21 -0
- package/dist/templates/kustomize/overlays/{{env}}/configs/paradedb.config.env.hbs +3 -0
- package/dist/templates/kustomize/overlays/{{env}}/deployments/paradedb.yaml.hbs +28 -0
- package/dist/templates/kustomize/overlays/{{env}}/deployments/redis.yaml.hbs +18 -0
- package/dist/templates/kustomize/overlays/{{env}}/kustomization.yaml.hbs +36 -0
- package/dist/templates/kustomize/overlays/{{env}}/patch-operation/ingress-host.yaml.hbs +15 -0
- package/dist/templates/kustomize/overlays/{{env}}/services/paradedb.yaml.hbs +11 -0
- package/dist/templates/kustomize/overlays/{{env}}/services/redis.yaml.hbs +11 -0
- package/dist/templates/kustomize/overlays/{{env}}/storage/paradedb-pvc.yaml.hbs +10 -0
- package/dist/templates/presets/ai-chat-app/apps/web/.env.example +11 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/auth/[...all]/route.ts +5 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/input-guardrail.ts +47 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/route.ts +266 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/sessions/[id]/messages/route.ts +38 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/sessions/[id]/route.ts +59 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/sessions/route.ts +24 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/api/health/route.ts +21 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/chat/[id]/page.tsx +54 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/chat/layout.tsx +23 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/chat/page.tsx +9 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/error.tsx +20 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/global-error.tsx +42 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/globals.css +187 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/layout.tsx.hbs +30 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/login/login-form.tsx +96 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/login/page.tsx +14 -0
- package/dist/templates/presets/ai-chat-app/apps/web/app/not-found.tsx +15 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/code-block.tsx +518 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/context.tsx +356 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/conversation.tsx +150 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/environment-variables.tsx +303 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/message.tsx +295 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/prompt-input.tsx +1179 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/sources.tsx +54 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/tool.tsx +157 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/app-sidebar.tsx +110 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/chat-sessions-provider.tsx +89 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/chat-sidebar-list.tsx +174 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/chat-view.tsx +156 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/accordion.tsx +72 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/alert-dialog.tsx +162 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/alert.tsx +73 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/aspect-ratio.tsx +22 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/avatar.tsx +93 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/badge.tsx +49 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/breadcrumb.tsx +103 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/button-group.tsx +78 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/button.tsx +60 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/calendar.tsx +185 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/card.tsx +92 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/carousel.tsx +231 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/chart.tsx +325 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/checkbox.tsx +28 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/collapsible.tsx +17 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/combobox.tsx +273 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/command.tsx +181 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/context-menu.tsx +245 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/dialog.tsx +135 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/direction.tsx +3 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/drawer.tsx +120 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/dropdown-menu.tsx +258 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/empty.tsx +94 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/field.tsx +224 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/hover-card.tsx +46 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/input-group.tsx +146 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/input-otp.tsx +86 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/input.tsx +20 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/item.tsx +188 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/kbd.tsx +26 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/label.tsx +20 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/menubar.tsx +270 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/native-select.tsx +43 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/navigation-menu.tsx +161 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/pagination.tsx +118 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/popover.tsx +77 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/progress.tsx +66 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/radio-group.tsx +39 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/resizable.tsx +42 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/scroll-area.tsx +51 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/select.tsx +190 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/separator.tsx +21 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/sheet.tsx +125 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/sidebar.tsx +689 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/skeleton.tsx +13 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/slider.tsx +54 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/sonner.tsx +45 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/spinner.tsx +15 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/switch.tsx +32 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/table.tsx +89 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/tabs.tsx +75 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/textarea.tsx +18 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/toggle-group.tsx +87 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/toggle.tsx +44 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components/ui/tooltip.tsx +54 -0
- package/dist/templates/presets/ai-chat-app/apps/web/components.json +20 -0
- package/dist/templates/presets/ai-chat-app/apps/web/drizzle.config.ts +10 -0
- package/dist/templates/presets/ai-chat-app/apps/web/env.ts +30 -0
- package/dist/templates/presets/ai-chat-app/apps/web/hooks/use-mobile.ts +19 -0
- package/dist/templates/presets/ai-chat-app/apps/web/instrumentation.ts +21 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/auth-client.ts +3 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/auth-session.ts +9 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/auth.ts +16 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/db/index.ts +11 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/db/migrate.ts +53 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/db/schema.ts +94 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/db/seed.ts +123 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/group-by-date.ts +34 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/logger.ts +21 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/openrouter.ts +7 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/schemas/auth.ts +8 -0
- package/dist/templates/presets/ai-chat-app/apps/web/lib/utils.ts +4 -0
- package/dist/templates/presets/ai-chat-app/apps/web/next-env.d.ts +6 -0
- package/dist/templates/presets/ai-chat-app/apps/web/next.config.ts +14 -0
- package/dist/templates/presets/ai-chat-app/apps/web/package.json +70 -0
- package/dist/templates/presets/ai-chat-app/apps/web/postcss.config.mjs +7 -0
- package/dist/templates/presets/ai-chat-app/apps/web/proxy.ts +13 -0
- package/dist/templates/presets/ai-chat-app/apps/web/tsconfig.json +14 -0
- package/dist/templates/presets/blank/apps/web/.env.example +1 -0
- package/dist/templates/presets/blank/apps/web/app/api/health/route.ts +11 -0
- package/dist/templates/presets/blank/apps/web/app/globals.css +49 -0
- package/dist/templates/presets/blank/apps/web/app/layout.tsx.hbs +30 -0
- package/dist/templates/presets/blank/apps/web/app/page.tsx.hbs +10 -0
- package/dist/templates/presets/blank/apps/web/env.ts +10 -0
- package/dist/templates/presets/blank/apps/web/next-env.d.ts +2 -0
- package/dist/templates/presets/blank/apps/web/next.config.ts +9 -0
- package/dist/templates/presets/blank/apps/web/package.json.hbs +27 -0
- package/dist/templates/presets/blank/apps/web/postcss.config.mjs +7 -0
- package/dist/templates/presets/blank/apps/web/tsconfig.json +14 -0
- package/dist/templates/tooling/.oxfmtrc.json +6 -0
- package/dist/templates/tooling/.oxlintrc.json +20 -0
- package/dist/templates/tooling/commitlint.config.ts.hbs +3 -0
- package/dist/templates/tooling/lefthook.yml.hbs +25 -0
- package/package.json +47 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(ls:*)",
|
|
5
|
+
"Bash(cat:*)",
|
|
6
|
+
"Bash(grep:*)",
|
|
7
|
+
"Bash(rg:*)",
|
|
8
|
+
"Bash(cp:*)",
|
|
9
|
+
"Bash(find:*)",
|
|
10
|
+
"Bash(pwd:*)",
|
|
11
|
+
"Bash(echo:*)",
|
|
12
|
+
"Bash(whoami:*)",
|
|
13
|
+
"Bash(source:*)",
|
|
14
|
+
"Bash(sed:*)",
|
|
15
|
+
"Bash(head:*)",
|
|
16
|
+
"Bash(tail:*)",
|
|
17
|
+
"Bash(mkdir:*)",
|
|
18
|
+
"Bash(mv:*)",
|
|
19
|
+
"Bash(touch:*)",
|
|
20
|
+
"Bash(cd:*)",
|
|
21
|
+
"Bash(tree:*)",
|
|
22
|
+
"Bash(type:*)",
|
|
23
|
+
"Bash(which:*)",
|
|
24
|
+
"Bash(git:*)",
|
|
25
|
+
"Bash(bun:*)",
|
|
26
|
+
"Bash(npm:*)"
|
|
27
|
+
],
|
|
28
|
+
"deny": [
|
|
29
|
+
"Bash(git push:*)",
|
|
30
|
+
"Bash(git pull:*)",
|
|
31
|
+
"Bash(git fetch:*)",
|
|
32
|
+
"Bash(git reset:*)",
|
|
33
|
+
"Bash(git clean:*)",
|
|
34
|
+
"Bash(git checkout .:*)",
|
|
35
|
+
"Bash(git rebase:*)",
|
|
36
|
+
"Bash(git stash:*)",
|
|
37
|
+
"Bash(npm publish:*)",
|
|
38
|
+
"Bash(bun publish:*)",
|
|
39
|
+
"Bash(git branch -D:*)"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-commit
|
|
3
|
+
description: 'Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping'
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Git Commit with Conventional Commits
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message.
|
|
13
|
+
|
|
14
|
+
## Conventional Commit Format
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
<type>[optional scope]: <description>
|
|
18
|
+
|
|
19
|
+
[optional body]
|
|
20
|
+
|
|
21
|
+
[optional footer(s)]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Commit Types
|
|
25
|
+
|
|
26
|
+
| Type | Purpose |
|
|
27
|
+
| ---------- | ------------------------------ |
|
|
28
|
+
| `feat` | New feature |
|
|
29
|
+
| `fix` | Bug fix |
|
|
30
|
+
| `docs` | Documentation only |
|
|
31
|
+
| `style` | Formatting/style (no logic) |
|
|
32
|
+
| `refactor` | Code refactor (no feature/fix) |
|
|
33
|
+
| `perf` | Performance improvement |
|
|
34
|
+
| `test` | Add/update tests |
|
|
35
|
+
| `build` | Build system/dependencies |
|
|
36
|
+
| `ci` | CI/config changes |
|
|
37
|
+
| `chore` | Maintenance/misc |
|
|
38
|
+
| `revert` | Revert commit |
|
|
39
|
+
|
|
40
|
+
## Breaking Changes
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
# Exclamation mark after type/scope
|
|
44
|
+
feat!: remove deprecated endpoint
|
|
45
|
+
|
|
46
|
+
# BREAKING CHANGE footer
|
|
47
|
+
feat: allow config to extend other configs
|
|
48
|
+
|
|
49
|
+
BREAKING CHANGE: `extends` key behavior changed
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Workflow
|
|
53
|
+
|
|
54
|
+
### 1. Analyze Diff
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# If files are staged, use staged diff
|
|
58
|
+
git diff --staged
|
|
59
|
+
|
|
60
|
+
# If nothing staged, use working tree diff
|
|
61
|
+
git diff
|
|
62
|
+
|
|
63
|
+
# Also check status
|
|
64
|
+
git status --porcelain
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Stage Files (if needed)
|
|
68
|
+
|
|
69
|
+
If nothing is staged or you want to group changes differently:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Stage specific files
|
|
73
|
+
git add path/to/file1 path/to/file2
|
|
74
|
+
|
|
75
|
+
# Stage by pattern
|
|
76
|
+
git add *.test.*
|
|
77
|
+
git add src/components/*
|
|
78
|
+
|
|
79
|
+
# Interactive staging
|
|
80
|
+
git add -p
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Never commit secrets** (.env, credentials.json, private keys).
|
|
84
|
+
|
|
85
|
+
### 3. Generate Commit Message
|
|
86
|
+
|
|
87
|
+
Analyze the diff to determine:
|
|
88
|
+
|
|
89
|
+
- **Type**: What kind of change is this?
|
|
90
|
+
- **Scope**: What area/module is affected?
|
|
91
|
+
- **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars)
|
|
92
|
+
|
|
93
|
+
### 4. Execute Commit
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Single line
|
|
97
|
+
git commit -m "<type>[scope]: <description>"
|
|
98
|
+
|
|
99
|
+
# Multi-line with body/footer
|
|
100
|
+
git commit -m "$(cat <<'EOF'
|
|
101
|
+
<type>[scope]: <description>
|
|
102
|
+
|
|
103
|
+
<optional body>
|
|
104
|
+
|
|
105
|
+
<optional footer>
|
|
106
|
+
EOF
|
|
107
|
+
)"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Best Practices
|
|
111
|
+
|
|
112
|
+
- One logical change per commit
|
|
113
|
+
- Present tense: "add" not "added"
|
|
114
|
+
- Imperative mood: "fix bug" not "fixes bug"
|
|
115
|
+
- Reference issues: `Closes #123`, `Refs #456`
|
|
116
|
+
- Keep description under 72 characters
|
|
117
|
+
|
|
118
|
+
## Git Safety Protocol
|
|
119
|
+
|
|
120
|
+
- NEVER update git config
|
|
121
|
+
- NEVER run destructive commands (--force, hard reset) without explicit request
|
|
122
|
+
- NEVER skip hooks (--no-verify) unless user asks
|
|
123
|
+
- NEVER force push to main/master
|
|
124
|
+
- If commit fails due to hooks, fix and create NEW commit (don't amend)
|
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: k8s-manifest-generator
|
|
3
|
+
description: Create production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, and Secrets following best practices and security standards. Use when generating Kubernetes YAML manifests, creating K8s resources, or implementing production-grade Kubernetes configurations.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Kubernetes Manifest Generator
|
|
7
|
+
|
|
8
|
+
Step-by-step guidance for creating production-ready Kubernetes manifests including Deployments, Services, ConfigMaps, Secrets, and PersistentVolumeClaims.
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
This skill provides comprehensive guidance for generating well-structured, secure, and production-ready Kubernetes manifests following cloud-native best practices and Kubernetes conventions.
|
|
13
|
+
|
|
14
|
+
## When to Use This Skill
|
|
15
|
+
|
|
16
|
+
Use this skill when you need to:
|
|
17
|
+
|
|
18
|
+
- Create new Kubernetes Deployment manifests
|
|
19
|
+
- Define Service resources for network connectivity
|
|
20
|
+
- Generate ConfigMap and Secret resources for configuration management
|
|
21
|
+
- Create PersistentVolumeClaim manifests for stateful workloads
|
|
22
|
+
- Follow Kubernetes best practices and naming conventions
|
|
23
|
+
- Implement resource limits, health checks, and security contexts
|
|
24
|
+
- Design manifests for multi-environment deployments
|
|
25
|
+
|
|
26
|
+
## Step-by-Step Workflow
|
|
27
|
+
|
|
28
|
+
### 1. Gather Requirements
|
|
29
|
+
|
|
30
|
+
**Understand the workload:**
|
|
31
|
+
|
|
32
|
+
- Application type (stateless/stateful)
|
|
33
|
+
- Container image and version
|
|
34
|
+
- Environment variables and configuration needs
|
|
35
|
+
- Storage requirements
|
|
36
|
+
- Network exposure requirements (internal/external)
|
|
37
|
+
- Resource requirements (CPU, memory)
|
|
38
|
+
- Scaling requirements
|
|
39
|
+
- Health check endpoints
|
|
40
|
+
|
|
41
|
+
**Questions to ask:**
|
|
42
|
+
|
|
43
|
+
- What is the application name and purpose?
|
|
44
|
+
- What container image and tag will be used?
|
|
45
|
+
- Does the application need persistent storage?
|
|
46
|
+
- What ports does the application expose?
|
|
47
|
+
- Are there any secrets or configuration files needed?
|
|
48
|
+
- What are the CPU and memory requirements?
|
|
49
|
+
- Does the application need to be exposed externally?
|
|
50
|
+
|
|
51
|
+
### 2. Create Deployment Manifest
|
|
52
|
+
|
|
53
|
+
**Follow this structure:**
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
apiVersion: apps/v1
|
|
57
|
+
kind: Deployment
|
|
58
|
+
metadata:
|
|
59
|
+
name: <app-name>
|
|
60
|
+
namespace: <namespace>
|
|
61
|
+
labels:
|
|
62
|
+
app: <app-name>
|
|
63
|
+
version: <version>
|
|
64
|
+
spec:
|
|
65
|
+
replicas: 3
|
|
66
|
+
selector:
|
|
67
|
+
matchLabels:
|
|
68
|
+
app: <app-name>
|
|
69
|
+
template:
|
|
70
|
+
metadata:
|
|
71
|
+
labels:
|
|
72
|
+
app: <app-name>
|
|
73
|
+
version: <version>
|
|
74
|
+
spec:
|
|
75
|
+
containers:
|
|
76
|
+
- name: <container-name>
|
|
77
|
+
image: <image>:<tag>
|
|
78
|
+
ports:
|
|
79
|
+
- containerPort: <port>
|
|
80
|
+
name: http
|
|
81
|
+
resources:
|
|
82
|
+
requests:
|
|
83
|
+
memory: "256Mi"
|
|
84
|
+
cpu: "250m"
|
|
85
|
+
limits:
|
|
86
|
+
memory: "512Mi"
|
|
87
|
+
cpu: "500m"
|
|
88
|
+
livenessProbe:
|
|
89
|
+
httpGet:
|
|
90
|
+
path: /health
|
|
91
|
+
port: http
|
|
92
|
+
initialDelaySeconds: 30
|
|
93
|
+
periodSeconds: 10
|
|
94
|
+
readinessProbe:
|
|
95
|
+
httpGet:
|
|
96
|
+
path: /ready
|
|
97
|
+
port: http
|
|
98
|
+
initialDelaySeconds: 5
|
|
99
|
+
periodSeconds: 5
|
|
100
|
+
env:
|
|
101
|
+
- name: ENV_VAR
|
|
102
|
+
value: "value"
|
|
103
|
+
envFrom:
|
|
104
|
+
- configMapRef:
|
|
105
|
+
name: <app-name>-config
|
|
106
|
+
- secretRef:
|
|
107
|
+
name: <app-name>-secret
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Best practices to apply:**
|
|
111
|
+
|
|
112
|
+
- Always set resource requests and limits
|
|
113
|
+
- Implement both liveness and readiness probes
|
|
114
|
+
- Use specific image tags (never `:latest`)
|
|
115
|
+
- Apply security context for non-root users
|
|
116
|
+
- Use labels for organization and selection
|
|
117
|
+
- Set appropriate replica count based on availability needs
|
|
118
|
+
|
|
119
|
+
**Reference:** See `references/deployment-spec.md` for detailed deployment options
|
|
120
|
+
|
|
121
|
+
### 3. Create Service Manifest
|
|
122
|
+
|
|
123
|
+
**Choose the appropriate Service type:**
|
|
124
|
+
|
|
125
|
+
**ClusterIP (internal only):**
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
apiVersion: v1
|
|
129
|
+
kind: Service
|
|
130
|
+
metadata:
|
|
131
|
+
name: <app-name>
|
|
132
|
+
namespace: <namespace>
|
|
133
|
+
labels:
|
|
134
|
+
app: <app-name>
|
|
135
|
+
spec:
|
|
136
|
+
type: ClusterIP
|
|
137
|
+
selector:
|
|
138
|
+
app: <app-name>
|
|
139
|
+
ports:
|
|
140
|
+
- name: http
|
|
141
|
+
port: 80
|
|
142
|
+
targetPort: 8080
|
|
143
|
+
protocol: TCP
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**LoadBalancer (external access):**
|
|
147
|
+
|
|
148
|
+
```yaml
|
|
149
|
+
apiVersion: v1
|
|
150
|
+
kind: Service
|
|
151
|
+
metadata:
|
|
152
|
+
name: <app-name>
|
|
153
|
+
namespace: <namespace>
|
|
154
|
+
labels:
|
|
155
|
+
app: <app-name>
|
|
156
|
+
annotations:
|
|
157
|
+
service.beta.kubernetes.io/aws-load-balancer-type: nlb
|
|
158
|
+
spec:
|
|
159
|
+
type: LoadBalancer
|
|
160
|
+
selector:
|
|
161
|
+
app: <app-name>
|
|
162
|
+
ports:
|
|
163
|
+
- name: http
|
|
164
|
+
port: 80
|
|
165
|
+
targetPort: 8080
|
|
166
|
+
protocol: TCP
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Reference:** See `references/service-spec.md` for service types and networking
|
|
170
|
+
|
|
171
|
+
### 4. Create ConfigMap
|
|
172
|
+
|
|
173
|
+
**For application configuration:**
|
|
174
|
+
|
|
175
|
+
```yaml
|
|
176
|
+
apiVersion: v1
|
|
177
|
+
kind: ConfigMap
|
|
178
|
+
metadata:
|
|
179
|
+
name: <app-name>-config
|
|
180
|
+
namespace: <namespace>
|
|
181
|
+
data:
|
|
182
|
+
APP_MODE: production
|
|
183
|
+
LOG_LEVEL: info
|
|
184
|
+
DATABASE_HOST: db.example.com
|
|
185
|
+
# For config files
|
|
186
|
+
app.properties: |
|
|
187
|
+
server.port=8080
|
|
188
|
+
server.host=0.0.0.0
|
|
189
|
+
logging.level=INFO
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Best practices:**
|
|
193
|
+
|
|
194
|
+
- Use ConfigMaps for non-sensitive data only
|
|
195
|
+
- Organize related configuration together
|
|
196
|
+
- Use meaningful names for keys
|
|
197
|
+
- Consider using one ConfigMap per component
|
|
198
|
+
- Version ConfigMaps when making changes
|
|
199
|
+
|
|
200
|
+
**Reference:** See `assets/configmap-template.yaml` for examples
|
|
201
|
+
|
|
202
|
+
### 5. Create Secret
|
|
203
|
+
|
|
204
|
+
**For sensitive data:**
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
apiVersion: v1
|
|
208
|
+
kind: Secret
|
|
209
|
+
metadata:
|
|
210
|
+
name: <app-name>-secret
|
|
211
|
+
namespace: <namespace>
|
|
212
|
+
type: Opaque
|
|
213
|
+
stringData:
|
|
214
|
+
DATABASE_PASSWORD: "changeme"
|
|
215
|
+
API_KEY: "secret-api-key"
|
|
216
|
+
# For certificate files
|
|
217
|
+
tls.crt: |
|
|
218
|
+
-----BEGIN CERTIFICATE-----
|
|
219
|
+
...
|
|
220
|
+
-----END CERTIFICATE-----
|
|
221
|
+
tls.key: |
|
|
222
|
+
-----BEGIN PRIVATE KEY-----
|
|
223
|
+
...
|
|
224
|
+
-----END PRIVATE KEY-----
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Security considerations:**
|
|
228
|
+
|
|
229
|
+
- Never commit secrets to Git in plain text
|
|
230
|
+
- Use Sealed Secrets, External Secrets Operator, or Vault
|
|
231
|
+
- Rotate secrets regularly
|
|
232
|
+
- Use RBAC to limit secret access
|
|
233
|
+
- Consider using Secret type: `kubernetes.io/tls` for TLS secrets
|
|
234
|
+
|
|
235
|
+
### 6. Create PersistentVolumeClaim (if needed)
|
|
236
|
+
|
|
237
|
+
**For stateful applications:**
|
|
238
|
+
|
|
239
|
+
```yaml
|
|
240
|
+
apiVersion: v1
|
|
241
|
+
kind: PersistentVolumeClaim
|
|
242
|
+
metadata:
|
|
243
|
+
name: <app-name>-data
|
|
244
|
+
namespace: <namespace>
|
|
245
|
+
spec:
|
|
246
|
+
accessModes:
|
|
247
|
+
- ReadWriteOnce
|
|
248
|
+
storageClassName: gp3
|
|
249
|
+
resources:
|
|
250
|
+
requests:
|
|
251
|
+
storage: 10Gi
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Mount in Deployment:**
|
|
255
|
+
|
|
256
|
+
```yaml
|
|
257
|
+
spec:
|
|
258
|
+
template:
|
|
259
|
+
spec:
|
|
260
|
+
containers:
|
|
261
|
+
- name: app
|
|
262
|
+
volumeMounts:
|
|
263
|
+
- name: data
|
|
264
|
+
mountPath: /var/lib/app
|
|
265
|
+
volumes:
|
|
266
|
+
- name: data
|
|
267
|
+
persistentVolumeClaim:
|
|
268
|
+
claimName: <app-name>-data
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Storage considerations:**
|
|
272
|
+
|
|
273
|
+
- Choose appropriate StorageClass for performance needs
|
|
274
|
+
- Use ReadWriteOnce for single-pod access
|
|
275
|
+
- Use ReadWriteMany for multi-pod shared storage
|
|
276
|
+
- Consider backup strategies
|
|
277
|
+
- Set appropriate retention policies
|
|
278
|
+
|
|
279
|
+
### 7. Apply Security Best Practices
|
|
280
|
+
|
|
281
|
+
**Add security context to Deployment:**
|
|
282
|
+
|
|
283
|
+
```yaml
|
|
284
|
+
spec:
|
|
285
|
+
template:
|
|
286
|
+
spec:
|
|
287
|
+
securityContext:
|
|
288
|
+
runAsNonRoot: true
|
|
289
|
+
runAsUser: 1000
|
|
290
|
+
fsGroup: 1000
|
|
291
|
+
seccompProfile:
|
|
292
|
+
type: RuntimeDefault
|
|
293
|
+
containers:
|
|
294
|
+
- name: app
|
|
295
|
+
securityContext:
|
|
296
|
+
allowPrivilegeEscalation: false
|
|
297
|
+
readOnlyRootFilesystem: true
|
|
298
|
+
capabilities:
|
|
299
|
+
drop:
|
|
300
|
+
- ALL
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Security checklist:**
|
|
304
|
+
|
|
305
|
+
- [ ] Run as non-root user
|
|
306
|
+
- [ ] Drop all capabilities
|
|
307
|
+
- [ ] Use read-only root filesystem
|
|
308
|
+
- [ ] Disable privilege escalation
|
|
309
|
+
- [ ] Set seccomp profile
|
|
310
|
+
- [ ] Use Pod Security Standards
|
|
311
|
+
|
|
312
|
+
### 8. Add Labels and Annotations
|
|
313
|
+
|
|
314
|
+
**Standard labels (recommended):**
|
|
315
|
+
|
|
316
|
+
```yaml
|
|
317
|
+
metadata:
|
|
318
|
+
labels:
|
|
319
|
+
app.kubernetes.io/name: <app-name>
|
|
320
|
+
app.kubernetes.io/instance: <instance-name>
|
|
321
|
+
app.kubernetes.io/version: "1.0.0"
|
|
322
|
+
app.kubernetes.io/component: backend
|
|
323
|
+
app.kubernetes.io/part-of: <system-name>
|
|
324
|
+
app.kubernetes.io/managed-by: kubectl
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**Useful annotations:**
|
|
328
|
+
|
|
329
|
+
```yaml
|
|
330
|
+
metadata:
|
|
331
|
+
annotations:
|
|
332
|
+
description: "Application description"
|
|
333
|
+
contact: "team@example.com"
|
|
334
|
+
prometheus.io/scrape: "true"
|
|
335
|
+
prometheus.io/port: "9090"
|
|
336
|
+
prometheus.io/path: "/metrics"
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### 9. Organize Multi-Resource Manifests
|
|
340
|
+
|
|
341
|
+
**File organization options:**
|
|
342
|
+
|
|
343
|
+
**Option 1: Single file with `---` separator**
|
|
344
|
+
|
|
345
|
+
```yaml
|
|
346
|
+
# app-name.yaml
|
|
347
|
+
---
|
|
348
|
+
apiVersion: v1
|
|
349
|
+
kind: ConfigMap
|
|
350
|
+
...
|
|
351
|
+
---
|
|
352
|
+
apiVersion: v1
|
|
353
|
+
kind: Secret
|
|
354
|
+
...
|
|
355
|
+
---
|
|
356
|
+
apiVersion: apps/v1
|
|
357
|
+
kind: Deployment
|
|
358
|
+
...
|
|
359
|
+
---
|
|
360
|
+
apiVersion: v1
|
|
361
|
+
kind: Service
|
|
362
|
+
...
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Option 2: Separate files**
|
|
366
|
+
|
|
367
|
+
```
|
|
368
|
+
manifests/
|
|
369
|
+
├── configmap.yaml
|
|
370
|
+
├── secret.yaml
|
|
371
|
+
├── deployment.yaml
|
|
372
|
+
├── service.yaml
|
|
373
|
+
└── pvc.yaml
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
**Option 3: Kustomize structure**
|
|
377
|
+
|
|
378
|
+
```
|
|
379
|
+
base/
|
|
380
|
+
├── kustomization.yaml
|
|
381
|
+
├── deployment.yaml
|
|
382
|
+
├── service.yaml
|
|
383
|
+
└── configmap.yaml
|
|
384
|
+
overlays/
|
|
385
|
+
├── dev/
|
|
386
|
+
│ └── kustomization.yaml
|
|
387
|
+
└── prod/
|
|
388
|
+
└── kustomization.yaml
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### 10. Validate and Test
|
|
392
|
+
|
|
393
|
+
**Validation steps:**
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Dry-run validation
|
|
397
|
+
kubectl apply -f manifest.yaml --dry-run=client
|
|
398
|
+
|
|
399
|
+
# Server-side validation
|
|
400
|
+
kubectl apply -f manifest.yaml --dry-run=server
|
|
401
|
+
|
|
402
|
+
# Validate with kubeval
|
|
403
|
+
kubeval manifest.yaml
|
|
404
|
+
|
|
405
|
+
# Validate with kube-score
|
|
406
|
+
kube-score score manifest.yaml
|
|
407
|
+
|
|
408
|
+
# Check with kube-linter
|
|
409
|
+
kube-linter lint manifest.yaml
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Testing checklist:**
|
|
413
|
+
|
|
414
|
+
- [ ] Manifest passes dry-run validation
|
|
415
|
+
- [ ] All required fields are present
|
|
416
|
+
- [ ] Resource limits are reasonable
|
|
417
|
+
- [ ] Health checks are configured
|
|
418
|
+
- [ ] Security context is set
|
|
419
|
+
- [ ] Labels follow conventions
|
|
420
|
+
- [ ] Namespace exists or is created
|
|
421
|
+
|
|
422
|
+
## Common Patterns
|
|
423
|
+
|
|
424
|
+
### Pattern 1: Simple Stateless Web Application
|
|
425
|
+
|
|
426
|
+
**Use case:** Standard web API or microservice
|
|
427
|
+
|
|
428
|
+
**Components needed:**
|
|
429
|
+
|
|
430
|
+
- Deployment (3 replicas for HA)
|
|
431
|
+
- ClusterIP Service
|
|
432
|
+
- ConfigMap for configuration
|
|
433
|
+
- Secret for API keys
|
|
434
|
+
- HorizontalPodAutoscaler (optional)
|
|
435
|
+
|
|
436
|
+
**Reference:** See `assets/deployment-template.yaml`
|
|
437
|
+
|
|
438
|
+
### Pattern 2: Stateful Database Application
|
|
439
|
+
|
|
440
|
+
**Use case:** Database or persistent storage application
|
|
441
|
+
|
|
442
|
+
**Components needed:**
|
|
443
|
+
|
|
444
|
+
- StatefulSet (not Deployment)
|
|
445
|
+
- Headless Service
|
|
446
|
+
- PersistentVolumeClaim template
|
|
447
|
+
- ConfigMap for DB configuration
|
|
448
|
+
- Secret for credentials
|
|
449
|
+
|
|
450
|
+
### Pattern 3: Background Job or Cron
|
|
451
|
+
|
|
452
|
+
**Use case:** Scheduled tasks or batch processing
|
|
453
|
+
|
|
454
|
+
**Components needed:**
|
|
455
|
+
|
|
456
|
+
- CronJob or Job
|
|
457
|
+
- ConfigMap for job parameters
|
|
458
|
+
- Secret for credentials
|
|
459
|
+
- ServiceAccount with RBAC
|
|
460
|
+
|
|
461
|
+
### Pattern 4: Multi-Container Pod
|
|
462
|
+
|
|
463
|
+
**Use case:** Application with sidecar containers
|
|
464
|
+
|
|
465
|
+
**Components needed:**
|
|
466
|
+
|
|
467
|
+
- Deployment with multiple containers
|
|
468
|
+
- Shared volumes between containers
|
|
469
|
+
- Init containers for setup
|
|
470
|
+
- Service (if needed)
|
|
471
|
+
|
|
472
|
+
## Templates
|
|
473
|
+
|
|
474
|
+
The following templates are available in the `assets/` directory:
|
|
475
|
+
|
|
476
|
+
- `deployment-template.yaml` - Standard deployment with best practices
|
|
477
|
+
- `service-template.yaml` - Service configurations (ClusterIP, LoadBalancer, NodePort)
|
|
478
|
+
- `configmap-template.yaml` - ConfigMap examples with different data types
|
|
479
|
+
- `secret-template.yaml` - Secret examples (to be generated, not committed)
|
|
480
|
+
- `pvc-template.yaml` - PersistentVolumeClaim templates
|
|
481
|
+
|
|
482
|
+
## Reference Documentation
|
|
483
|
+
|
|
484
|
+
- `references/deployment-spec.md` - Detailed Deployment specification
|
|
485
|
+
- `references/service-spec.md` - Service types and networking details
|
|
486
|
+
|
|
487
|
+
## Best Practices Summary
|
|
488
|
+
|
|
489
|
+
1. **Always set resource requests and limits** - Prevents resource starvation
|
|
490
|
+
2. **Implement health checks** - Ensures Kubernetes can manage your application
|
|
491
|
+
3. **Use specific image tags** - Avoid unpredictable deployments
|
|
492
|
+
4. **Apply security contexts** - Run as non-root, drop capabilities
|
|
493
|
+
5. **Use ConfigMaps and Secrets** - Separate config from code
|
|
494
|
+
6. **Label everything** - Enables filtering and organization
|
|
495
|
+
7. **Follow naming conventions** - Use standard Kubernetes labels
|
|
496
|
+
8. **Validate before applying** - Use dry-run and validation tools
|
|
497
|
+
9. **Version your manifests** - Keep in Git with version control
|
|
498
|
+
10. **Document with annotations** - Add context for other developers
|
|
499
|
+
|
|
500
|
+
## Troubleshooting
|
|
501
|
+
|
|
502
|
+
**Pods not starting:**
|
|
503
|
+
|
|
504
|
+
- Check image pull errors: `kubectl describe pod <pod-name>`
|
|
505
|
+
- Verify resource availability: `kubectl get nodes`
|
|
506
|
+
- Check events: `kubectl get events --sort-by='.lastTimestamp'`
|
|
507
|
+
|
|
508
|
+
**Service not accessible:**
|
|
509
|
+
|
|
510
|
+
- Verify selector matches pod labels: `kubectl get endpoints <service-name>`
|
|
511
|
+
- Check service type and port configuration
|
|
512
|
+
- Test from within cluster: `kubectl run debug --rm -it --image=busybox -- sh`
|
|
513
|
+
|
|
514
|
+
**ConfigMap/Secret not loading:**
|
|
515
|
+
|
|
516
|
+
- Verify names match in Deployment
|
|
517
|
+
- Check namespace
|
|
518
|
+
- Ensure resources exist: `kubectl get configmap,secret`
|
|
519
|
+
|
|
520
|
+
## Next Steps
|
|
521
|
+
|
|
522
|
+
After creating manifests:
|
|
523
|
+
|
|
524
|
+
1. Store in Git repository
|
|
525
|
+
2. Set up CI/CD pipeline for deployment
|
|
526
|
+
3. Consider using Helm or Kustomize for templating
|
|
527
|
+
4. Implement GitOps with ArgoCD or Flux
|
|
528
|
+
5. Add monitoring and observability
|
|
529
|
+
|
|
530
|
+
## Related Skills
|
|
531
|
+
|
|
532
|
+
- `helm-chart-scaffolding` - For templating and packaging
|
|
533
|
+
- `gitops-workflow` - For automated deployments
|
|
534
|
+
- `k8s-security-policies` - For advanced security configurations
|