Skip to main content

project-structure

Project structure and file organization for divine-web. Load when creating new files, moving code, or navigating the codebase.

소스 정보

저장소
divinevideo/divine-web
최근 소스 활동
2026년 5월 19일 05:26
감지된 SKILL.md 언어
영어
스타
50
포크
29

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
project-structure
description
Project structure and file organization for divine-web. Load when creating new files, moving code, or navigating the codebase.
# Project Structure ## Source Layout `src/` is the application root. - `src/components/`: reusable UI components. PascalCase filenames matching the component name (e.g. `VideoCard.tsx`). - `src/pages/`: route-level page components. `*Page.tsx` naming (e.g. `HomePage.tsx`, `ProfilePage.tsx`). - `src/hooks/`: custom React hooks. `useX` naming in `.ts` files (e.g. `useNostr.ts`). - `src/lib/`: utilities, helpers, non-React logic. - `src/contexts/`: React context providers and their associated hooks. - `src/types/`: shared TypeScript type definitions and interfaces. - `src/test/`: test setup (`setup.ts`) and shared test utilities. - `src/config/`: runtime configuration and constants. - `src/data/`: static data files and fixtures. - `src/styles/`: global CSS and style definitions beyond Tailwind utilities. ## Entry Point Flow ``` index.html → src/main.tsx → src/App.tsx → src/AppRouter.tsx ``` ## Import Alias `@/` maps to `src/`. Configured in `tsconfig.json` paths and `vite.config.ts` resolve.alias. Use `@/` for all app imports. ## Public Assets `public/` holds static assets served as-is: `manifest.webmanifest`, `_redirects`, and other files that don't need processing. ## Build Output `dist/` receives the production build. During build, `index.html` is copied to `404.html` to support SPA routing on static hosts. ## Configuration Files | File | Purpose | |------|---------| | `vite.config.ts` | Vite build configuration | | `tailwind.config.ts` | TailwindCSS configuration | | `eslint.config.js` | ESLint configuration | | `tsconfig.json` | Root TypeScript config | | `tsconfig.app.json` | App source TypeScript config | | `tsconfig.node.json` | Node/tooling TypeScript config | ## Custom ESLint Rules `eslint-rules/` contains project-specific rules: `no-inline-script`, `no-placeholder-comments`, `require-webmanifest`. No inline `eslint-disable` comments. ## Build Scripts `scripts/` holds build and utility scripts: - `copy-well-known.mjs` / `verify-well-known.mjs`: handle `.well-known` files - `prerender-legal.mjs`: prerender legal pages - `generate-icons.js`: generate app icons - `precalculate-hashtag-thumbnails.ts`: precompute thumbnail data - `verify-relay-config.ts`: validate relay configuration - `audit-microcopy.mjs` / `a11y-audit.mjs`: content and accessibility audits ## Documentation `docs/` contains project documentation: - `docs/brand/`: brand guidelines and assets - `docs/superpowers/plans/`: implementation plans - `docs/superpowers/specs/`: feature specifications - `docs/` root: architecture docs, relay docs, migration guides ## File Placement Quick Reference | Adding a... | Put it in... | Named... | |------------|-------------|----------| | New page | `src/pages/` | `FooPage.tsx` | | New component | `src/components/` | `Foo.tsx` | | New hook | `src/hooks/` | `useFoo.ts` | | New utility | `src/lib/` | `foo.ts` | | New context | `src/contexts/` | `FooContext.tsx` | | New type | `src/types/` | `foo.ts` | | New test | Next to source | `foo.test.ts` or `foo.test.tsx` |
GitHub에서 보기