{"owner":"0xJacky","repo":"nginx-ui","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# NGINX UI - Claude Code Guidelines\n\nThis project is a web-based NGINX management interface built with Go backend and Vue.js frontend.\n\n## Package Manager\n- **Use Bun exclusively** for all frontend package management operations\n- Commands: `bun install`, `bun run dev`, `bun run typecheck`\n\n## Backend (Go) Development\n\n### Technologies & Frameworks\n- **Go** with Gin web framework\n- **GORM** for database operations  \n- **Gen** for query simplification\n- **Cosy** framework (https://cosy.uozi.org/)\n\n### Code Organization\n- **API Controllers**: Implement in `api/$module_name/` directory\n- **Database Models**: Define in `model/` folder\n- **Business Logic**: Place complex logic and error handling in `internal/$module_name/`\n- **Routing**: Register routes in `router/` directory\n- **Configuration**: Manage settings in `settings/` directory\n\n### Development Guidelines\n- Write concise, maintainable Go code with clear examples\n- Run `gofmt`/`goimports` before committing backend changes\n- Use Gen to streamline database queries and reduce boilerplate\n- Follow Cosy Error Handler best practices for error management\n- Implement standardized CRUD operations using Cosy framework\n- Apply efficient database pagination for large datasets\n- Before committing backend changes, run the CI-equivalent unit test command: `GOWORK=off go test -tags=unembed -race -cover -count=1 ./...`\n- Keep `-count=1` in pre-commit unit tests so cached results cannot hide race conditions or flaky failures\n- Keep files modular and well-organized by functionality\n- **All comments and documentation must be in English**\n\n## Frontend (Vue.js) Development\n\n### Technology Stack\n- **TypeScript** for all code\n- **Vue 3** with Composition API\n- **Vite** build tool\n- **Vue Router** for routing\n- **Pinia** for state management\n- **VueUse** for utilities\n- **Ant Design Vue** for UI components\n- **UnoCSS** for styling\n\n### Code Standards\n- Use functional and declarative programming patterns (avoid classes)\n- Prefer interfaces over types for better extendability\n- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`)\n- Always use Vue Composition API with `<script setup>` syntax\n- Leverage Vue 3.4+ features: `defineModel()`, `useTemplateRef()`, v-bind shorthand\n\n### File Organization\n- **Components**: Use CamelCase naming in `src/components/` (e.g., `ChatGPT/ChatGPT.vue`)\n- **Views**: Use lowercase with underscores for folders, CamelCase for components (e.g., `src/views/system/About.vue`)\n- **API & Types**: Define in `app/src/api/`\n- **Exports**: Favor named exports for functions\n\n### UI & Styling\n- Use Ant Design Vue components and UnoCSS for styling\n- Implement responsive design with mobile-first approach\n- Use Antdv Flex layout for responsive layouts\n\n### Performance Optimization\n- Leverage VueUse functions for enhanced reactivity\n- Wrap async components in Suspense with fallback UI\n- Use dynamic loading for non-critical components\n- Optimize images: WebP format, size data, lazy loading\n- Implement code splitting and chunking strategy in Vite build\n- Optimize Web Vitals (LCP, CLS, FID)\n\n### Code Quality\n- **Always use ESLint MCP after generating frontend code** to ensure code quality and consistency\n- Run `bun run lint`, `bun run lint:fix`, and `bun run typecheck` to keep style and typings aligned\n\n## Development Commands\n- **Frontend**: `bun run dev`, `bun run lint`, `bun run typecheck`, `bun run build`\n- **Backend**: `go generate ./...`, `go build ./...`, run `GOWORK=off go test -tags=unembed -race -cover -count=1 ./...`; for release artifacts reuse the README command with `-tags=jsoniter -ldflags \"$LD_FLAGS ...\"`.\n- **Demo stack**: `docker-compose -f docker-compose-demo.yml up` to bootstrap the sample environment\n\n\n## Release Workflow\n- Start releases from the `dev` branch with a clean working tree.\n- Run `./version.sh` outside the sandbox to update the version, rebuild the frontend, and refresh generated artifacts that require network access.\n- Prepare release notes in a temporary local markdown file such as `release-notes-vX.Y.Z.md`.\n- Follow the existing three-section release note style: `Features`, `Bug Fixes`, and `Contributors`.\n- Write contributor names using GitHub handles when they are known from the merged PR, not raw git author names.\n- Do not commit the release note markdown file. Keep it untracked and use it directly for the tag annotation and GitHub Release body.\n- Commit only the version-preparation artifacts with `chore: prepare vX.Y.Z`.\n- Create an annotated tag from the release note file. If local GPG signing blocks tag creation in the sandbox, create the tag outside the sandbox with `git -c tag.gpgSign=false tag -a vX.Y.Z -F release-notes-vX.Y.Z.md`.\n- Push both `dev` and the release tag with `git push origin dev vX.Y.Z`.\n- Publish the release with `gh release create vX.Y.Z --verify-tag --title vX.Y.Z -F release-notes-vX.Y.Z.md --discussion-category Announcements`.\n- The release flow is expected to create the GitHub Release and the linked Discussion post, then GitHub Actions handles binary, Docker, Homebrew, WinGet, and branch-sync automation.\n\n## Language Requirements\n- **All code comments, documentation, and communication must be in English**\n- Maintain consistency and accessibility across the codebase\n- 优先使用 context7 mcp 搜索文档\n- 生成 find 命令的时候应该排除掉 ./.go/ 这个文件夹，因为那里面是 devcontainer 的依赖\n"},"files":{"CLAUDE.md":"# NGINX UI - Claude Code Guidelines\n\nThis project is a web-based NGINX management interface built with Go backend and Vue.js frontend.\n\n## Package Manager\n- **Use Bun exclusively** for all frontend package management operations\n- Commands: `bun install`, `bun run dev`, `bun run typecheck`\n\n## Backend (Go) Development\n\n### Technologies & Frameworks\n- **Go** with Gin web framework\n- **GORM** for database operations  \n- **Gen** for query simplification\n- **Cosy** framework (https://cosy.uozi.org/)\n\n### Code Organization\n- **API Controllers**: Implement in `api/$module_name/` directory\n- **Database Models**: Define in `model/` folder\n- **Business Logic**: Place complex logic and error handling in `internal/$module_name/`\n- **Routing**: Register routes in `router/` directory\n- **Configuration**: Manage settings in `settings/` directory\n\n### Development Guidelines\n- Write concise, maintainable Go code with clear examples\n- Run `gofmt`/`goimports` before committing backend changes\n- Use Gen to streamline database queries and reduce boilerplate\n- Follow Cosy Error Handler best practices for error management\n- Implement standardized CRUD operations using Cosy framework\n- Apply efficient database pagination for large datasets\n- Before committing backend changes, run the CI-equivalent unit test command: `GOWORK=off go test -tags=unembed -race -cover -count=1 ./...`\n- Keep `-count=1` in pre-commit unit tests so cached results cannot hide race conditions or flaky failures\n- Keep files modular and well-organized by functionality\n- **All comments and documentation must be in English**\n\n## Frontend (Vue.js) Development\n\n### Technology Stack\n- **TypeScript** for all code\n- **Vue 3** with Composition API\n- **Vite** build tool\n- **Vue Router** for routing\n- **Pinia** for state management\n- **VueUse** for utilities\n- **Ant Design Vue** for UI components\n- **UnoCSS** for styling\n\n### Code Standards\n- Use functional and declarative programming patterns (avoid classes)\n- Prefer interfaces over types for better extendability\n- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`)\n- Always use Vue Composition API with `<script setup>` syntax\n- Leverage Vue 3.4+ features: `defineModel()`, `useTemplateRef()`, v-bind shorthand\n\n### File Organization\n- **Components**: Use CamelCase naming in `src/components/` (e.g., `ChatGPT/ChatGPT.vue`)\n- **Views**: Use lowercase with underscores for folders, CamelCase for components (e.g., `src/views/system/About.vue`)\n- **API & Types**: Define in `app/src/api/`\n- **Exports**: Favor named exports for functions\n\n### UI & Styling\n- Use Ant Design Vue components and UnoCSS for styling\n- Implement responsive design with mobile-first approach\n- Use Antdv Flex layout for responsive layouts\n\n### Performance Optimization\n- Leverage VueUse functions for enhanced reactivity\n- Wrap async components in Suspense with fallback UI\n- Use dynamic loading for non-critical components\n- Optimize images: WebP format, size data, lazy loading\n- Implement code splitting and chunking strategy in Vite build\n- Optimize Web Vitals (LCP, CLS, FID)\n\n### Code Quality\n- **Always use ESLint MCP after generating frontend code** to ensure code quality and consistency\n- Run `bun run lint`, `bun run lint:fix`, and `bun run typecheck` to keep style and typings aligned\n\n## Development Commands\n- **Frontend**: `bun run dev`, `bun run lint`, `bun run typecheck`, `bun run build`\n- **Backend**: `go generate ./...`, `go build ./...`, run `GOWORK=off go test -tags=unembed -race -cover -count=1 ./...`; for release artifacts reuse the README command with `-tags=jsoniter -ldflags \"$LD_FLAGS ...\"`.\n- **Demo stack**: `docker-compose -f docker-compose-demo.yml up` to bootstrap the sample environment\n\n\n## Release Workflow\n- Start releases from the `dev` branch with a clean working tree.\n- Run `./version.sh` outside the sandbox to update the version, rebuild the frontend, and refresh generated artifacts that require network access.\n- Prepare release notes in a temporary local markdown file such as `release-notes-vX.Y.Z.md`.\n- Follow the existing three-section release note style: `Features`, `Bug Fixes`, and `Contributors`.\n- Write contributor names using GitHub handles when they are known from the merged PR, not raw git author names.\n- Do not commit the release note markdown file. Keep it untracked and use it directly for the tag annotation and GitHub Release body.\n- Commit only the version-preparation artifacts with `chore: prepare vX.Y.Z`.\n- Create an annotated tag from the release note file. If local GPG signing blocks tag creation in the sandbox, create the tag outside the sandbox with `git -c tag.gpgSign=false tag -a vX.Y.Z -F release-notes-vX.Y.Z.md`.\n- Push both `dev` and the release tag with `git push origin dev vX.Y.Z`.\n- Publish the release with `gh release create vX.Y.Z --verify-tag --title vX.Y.Z -F release-notes-vX.Y.Z.md --discussion-category Announcements`.\n- The release flow is expected to create the GitHub Release and the linked Discussion post, then GitHub Actions handles binary, Docker, Homebrew, WinGet, and branch-sync automation.\n\n## Language Requirements\n- **All code comments, documentation, and communication must be in English**\n- Maintain consistency and accessibility across the codebase\n- 优先使用 context7 mcp 搜索文档\n- 生成 find 命令的时候应该排除掉 ./.go/ 这个文件夹，因为那里面是 devcontainer 的依赖\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# NGINX UI - Claude Code Guidelines\n\nThis project is a web-based NGINX management interface built with Go backend and Vue.js frontend.\n\n## Package Manager\n- **Use Bun exclusively** for all frontend package management operations\n- Commands: `bun install`, `bun run dev`, `bun run typecheck`\n\n## Backend (Go) Development\n\n### Technologies & Frameworks\n- **Go** with Gin web framework\n- **GORM** for database operations  \n- **Gen** for query simplification\n- **Cosy** framework (https://cosy.uozi.org/)\n\n### Code Organization\n- **API Controllers**: Implement in `api/$module_name/` directory\n- **Database Models**: Define in `model/` folder\n- **Business Logic**: Place complex logic and error handling in `internal/$module_name/`\n- **Routing**: Register routes in `router/` directory\n- **Configuration**: Manage settings in `settings/` directory\n\n### Development Guidelines\n- Write concise, maintainable Go code with clear examples\n- Run `gofmt`/`goimports` before committing backend changes\n- Use Gen to streamline database queries and reduce boilerplate\n- Follow Cosy Error Handler best practices for error management\n- Implement standardized CRUD operations using Cosy framework\n- Apply efficient database pagination for large datasets\n- Before committing backend changes, run the CI-equivalent unit test command: `GOWORK=off go test -tags=unembed -race -cover -count=1 ./...`\n- Keep `-count=1` in pre-commit unit tests so cached results cannot hide race conditions or flaky failures\n- Keep files modular and well-organized by functionality\n- **All comments and documentation must be in English**\n\n## Frontend (Vue.js) Development\n\n### Technology Stack\n- **TypeScript** for all code\n- **Vue 3** with Composition API\n- **Vite** build tool\n- **Vue Router** for routing\n- **Pinia** for state management\n- **VueUse** for utilities\n- **Ant Design Vue** for UI components\n- **UnoCSS** for styling\n\n### Code Standards\n- Use functional and declarative programming patterns (avoid classes)\n- Prefer interfaces over types for better extendability\n- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`)\n- Always use Vue Composition API with `<script setup>` syntax\n- Leverage Vue 3.4+ features: `defineModel()`, `useTemplateRef()`, v-bind shorthand\n\n### File Organization\n- **Components**: Use CamelCase naming in `src/components/` (e.g., `ChatGPT/ChatGPT.vue`)\n- **Views**: Use lowercase with underscores for folders, CamelCase for components (e.g., `src/views/system/About.vue`)\n- **API & Types**: Define in `app/src/api/`\n- **Exports**: Favor named exports for functions\n\n### UI & Styling\n- Use Ant Design Vue components and UnoCSS for styling\n- Implement responsive design with mobile-first approach\n- Use Antdv Flex layout for responsive layouts\n\n### Performance Optimization\n- Leverage VueUse functions for enhanced reactivity\n- Wrap async components in Suspense with fallback UI\n- Use dynamic loading for non-critical components\n- Optimize images: WebP format, size data, lazy loading\n- Implement code splitting and chunking strategy in Vite build\n- Optimize Web Vitals (LCP, CLS, FID)\n\n### Code Quality\n- **Always use ESLint MCP after generating frontend code** to ensure code quality and consistency\n- Run `bun run lint`, `bun run lint:fix`, and `bun run typecheck` to keep style and typings aligned\n\n## Development Commands\n- **Frontend**: `bun run dev`, `bun run lint`, `bun run typecheck`, `bun run build`\n- **Backend**: `go generate ./...`, `go build ./...`, run `GOWORK=off go test -tags=unembed -race -cover -count=1 ./...`; for release artifacts reuse the README command with `-tags=jsoniter -ldflags \"$LD_FLAGS ...\"`.\n- **Demo stack**: `docker-compose -f docker-compose-demo.yml up` to bootstrap the sample environment\n\n\n## Release Workflow\n- Start releases from the `dev` branch with a clean working tree.\n- Run `./version.sh` outside the sandbox to update the version, rebuild the frontend, and refresh generated artifacts that require network access.\n- Prepare release notes in a temporary local markdown file such as `release-notes-vX.Y.Z.md`.\n- Follow the existing three-section release note style: `Features`, `Bug Fixes`, and `Contributors`.\n- Write contributor names using GitHub handles when they are known from the merged PR, not raw git author names.\n- Do not commit the release note markdown file. Keep it untracked and use it directly for the tag annotation and GitHub Release body.\n- Commit only the version-preparation artifacts with `chore: prepare vX.Y.Z`.\n- Create an annotated tag from the release note file. If local GPG signing blocks tag creation in the sandbox, create the tag outside the sandbox with `git -c tag.gpgSign=false tag -a vX.Y.Z -F release-notes-vX.Y.Z.md`.\n- Push both `dev` and the release tag with `git push origin dev vX.Y.Z`.\n- Publish the release with `gh release create vX.Y.Z --verify-tag --title vX.Y.Z -F release-notes-vX.Y.Z.md --discussion-category Announcements`.\n- The release flow is expected to create the GitHub Release and the linked Discussion post, then GitHub Actions handles binary, Docker, Homebrew, WinGet, and branch-sync automation.\n\n## Language Requirements\n- **All code comments, documentation, and communication must be in English**\n- Maintain consistency and accessibility across the codebase\n- 优先使用 context7 mcp 搜索文档\n- 生成 find 命令的时候应该排除掉 ./.go/ 这个文件夹，因为那里面是 devcontainer 的依赖\n","category":"root","tokens":1345}]}