Skip to main content

create-page

Pinpoint 프로젝트 패턴에 따라 새 페이지를 생성합니다. 애플리케이션에 새 라우트/페이지를 추가하거나, 새 화면을 만들거나, 기존 라우팅 구조에 페이지를 추가할 때 반드시 이 스킬을 사용하세요.

Jump to install

Source facts

Repository
pinpoint-apm/pinpoint
Last source activity
April 2, 2026 at 02:00
Detected SKILL.md language
Korean
Stars
13,873
Forks
3,748

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
create-page
description
Pinpoint 프로젝트 패턴에 따라 새 페이지를 생성합니다. 애플리케이션에 새 라우트/페이지를 추가하거나, 새 화면을 만들거나, 기존 라우팅 구조에 페이지를 추가할 때 반드시 이 스킬을 사용하세요.
# 새 페이지 생성 **인자 형식**: `/create-page <PageName> [설명]` - `$0` — 생성할 페이지 이름 (PascalCase, 예: `RealTimeDashboard`) - `$ARGUMENTS` — 페이지 목적 설명 (선택 사항, 예: `실시간 메트릭 대시보드`) - 인자 없이 실행하면 사용자에게 페이지 이름과 목적을 먼저 질문합니다. `$ARGUMENTS` 설명을 가진 `$0` 페이지를 생성합니다. 다음 단계를 엄격히 따르세요: ## 1. 기존 페이지 분석 - `packages/ui/src/constants/path.ts`를 읽어 APP_PATH 패턴 파악 - `apps/web/src/routes/index.tsx`를 읽어 라우팅 구조 확인 - `packages/ui/src/pages/`의 유사한 기존 페이지와 `apps/web/src/pages/`의 래퍼 읽기 ## 2. 파일 생성 (순서대로) ### 2a. 라우트 경로 추가 `packages/ui/src/constants/path.ts`의 `APP_PATH`에 새 경로 상수 추가. ### 2b. 페이지 컴포넌트 생성 `packages/ui/src/pages/{PageName}.tsx` 생성: - `@pinpoint-fe/ui`에서 훅과 컴포넌트 임포트 - `configuration` prop 받기 (페이지 래퍼의 `configurationAtom`에서 읽음) - 적절한 검색 파라미터 훅 사용 - 데이터 페칭에 React Query 훅 사용 ### 2c. 페이지 컴포넌트 익스포트 `packages/ui/src/pages/index.ts`에서 페이지 익스포트 (없으면 생성). ### 2d. 라우트 로더 생성 (날짜 파라미터가 필요한 경우) 기존 로더의 패턴을 따라 `packages/ui/src/loader/{pageName}.ts` 생성: - URL 파라미터에서 application 파싱 - `periodMax` 설정에 대해 날짜 범위 검증 - 유효하지 않으면 올바른 날짜로 리다이렉트 ### 2e. 페이지 래퍼 생성 `apps/web/src/pages/<PageName>.tsx` 생성: ```tsx // <PageName>을 실제 페이지 이름으로 교체 (예: Inspector, ErrorAnalysis) import { useAtomValue } from 'jotai'; import { <PageName>Page } from '@pinpoint-fe/ui'; import { configurationAtom } from '@pinpoint-fe/ui/src/atoms'; export default function <PageName>() { const configuration = useAtomValue(configurationAtom); return <<PageName>Page configuration={configuration} />; } ``` ### 2f. 라우트 추가 `apps/web/src/routes/index.tsx`에 라우트 추가: - 상단에 lazy 임포트 추가 - `InitialFetchOutlet` children에 라우트 항목 추가 (설정 페이지는 `ConfigurationOutlet`) - 로더와 엘리먼트 포함 ## 3. i18n 키 추가 사용자 노출 문자열을 `packages/ui/src/constants/locales/`의 `en.json`과 `ko.json` 모두에 추가. ## 4. 검증 - 라우트 경로가 고유한지 확인 - 모든 임포트가 올바른지 확인 - 라우트 트리에서 페이지가 올바른 레이아웃 outlet 내에 배치되었는지 확인
View on GitHub