Flutter / Next.js / NestJS용 Claude Code 플러그인 — 프로젝트 셋업, 스크린·BLoC 스캐폴딩, OpenAPI 코드젠, 빌드·배포, TDD·코드리뷰, 컨벤션 관리를 하나로.
# Add marketplace
/plugin marketplace add https://github.com/JosephNK/jkit-code-plugin
# Install plugin
/plugin install jkit@jkitCodex에서 이 플러그인을 사용하려면 marketplace를 추가한다.
codex plugin marketplace add JosephNK/jkit-code-plugin특정 릴리스로 고정하려면:
codex plugin marketplace add JosephNK/jkit-code-plugin --ref <tag>추가 후 Codex에서 jkit:commit skill을 사용할 수 있다.
플러그인 개발 시 로컬에서 직접 테스트하려면:
# 플러그인 디렉토리에서 직접 실행
claude --plugin-dir .
# 다른 경로에서 실행
claude --plugin-dir /path/to/jkit-code-pluginAdd to your project's .claude/settings.json so teammates get the plugin automatically:
{
"extraKnownMarketplaces": {
"jkit": {
"source": {
"source": "github",
"repo": "JosephNK/jkit-code-plugin"
}
}
}
}| Framework | Init Command | Convention Stacks |
|---|---|---|
| Flutter | /jkit:flutter-init |
bloc, freezed, go-router, leaf-kit, easy-localization |
| Next.js | /jkit:nextjs-init |
design-system/mantine, design-system/antd, design-system/shadcn, tanstack-query, next-proxy |
| NestJS | /jkit:nestjs-init |
typeorm, gcp, anthropic-ai |
Init 커맨드 실행 시 AGENTS.md, GIT.md, ARCHITECTURE.md, CONVENTIONS.md 등 프로젝트 설정 파일을 자동 생성합니다.
| Command | Description |
|---|---|
/jkit:flutter-init |
프로젝트 초기화 (conventions, husky hooks, commitlint 등) |
/jkit:flutter-app-scaffold |
app.dart, main.dart, router, 다국어 리소스 생성 |
/jkit:flutter-android-setup |
build.gradle.kts, AndroidManifest, proguard 설정 |
/jkit:flutter-ios-setup |
pbxproj (4 flavor × 3 build type), xcscheme, Info.plist 설정 |
| Command | Description |
|---|---|
/jkit:flutter-plan |
요구사항 분석 → 리스크 평가 → 구현 계획 생성 |
/jkit:flutter-tdd |
RED→GREEN→REFACTOR TDD 워크플로우 |
/jkit:flutter-create-bloc-screen |
Screen + BLoC + View + DI + Route 보일러플레이트 생성 |
/jkit:flutter-design |
프로덕션급 UI 디자인 (LeafTheme + Atomic Design) |
/jkit:flutter-openapi-gen |
OpenAPI 3.x → BuiltValue 모델 + Dio 서비스 코드 생성 |
/jkit:flutter-create-package |
모노레포 워크스페이스 패키지 생성 |
| Command | Description |
|---|---|
/jkit:flutter-code-review |
보안/품질/베스트프랙티스 코드 리뷰 |
/jkit:flutter-build-fix |
빌드/분석 에러 점진적 수정 |
/jkit:flutter-test-coverage |
커버리지 분석 + 누락 테스트 자동 생성 (80%+ 목표) |
/jkit:check-conventions |
CONVENTIONS.md 기반 변경 파일 규칙 검증 |
| Command | Description |
|---|---|
/jkit:flutter-build-deploy |
APK / AppBundle / IPA 빌드 (flavor: production/staging/dev/qa) |
/jkit:flutter-android-keystore-info |
키스토어 인증서 정보 조회 |
/jkit:flutter-android-signing-report |
키스토어 alias별 서명 정보 |
/jkit:flutter-android-verify-apk |
APK 서명 검증 |
| Command | Description |
|---|---|
/jkit:flutter-update-dependencies |
pub.dev 패키지 최신 버전 업데이트 |
| Command | Description |
|---|---|
/jkit:commit |
변경 분석 → 한국어 커밋 메시지 자동 생성 (3개 후보) |
/jkit:typeorm-migration |
TypeORM 마이그레이션 SQL 생성 (dev/prod 분리) |
/jkit:update-plugin-ref |
JKit 의존성 git ref 일괄 업데이트 (code-plugin / architecture-lint / leaf-kit) |
Init 커맨드 외에 개별 스크립트로도 실행 가능합니다.
# Agents, Git, Architecture, Conventions
./scripts/gen-agents.mjs <framework> -p /path/to/project -n "Project Name"
./scripts/gen-git.mjs -p /path/to/project
./scripts/gen-architecture.mjs <framework> -p /path/to/project
./scripts/gen-conventions.mjs <framework> -p /path/to/project --with stack1,stack2
# Husky hooks (all frameworks)
# - .husky/pre-commit, .husky/commit-msg 생성
# - package.json에 husky/lint-staged/@commitlint devDeps + scripts.prepare 주입
./scripts/gen-husky.mjs <framework> -p /path/to/project [-entry <dir>]
# Commitlint config (Conventional Commits + 프로젝트 허용 타입)
./scripts/gen-commitlint.mjs -p /path/to/project
# TypeScript (Next.js / NestJS)
./scripts/typescript/gen-eslint.mjs <framework> -p /path/to/project --with stack1,stack2
./scripts/typescript/gen-tsconfig.mjs <framework> -p /path/to/project --with stack1모듈러 컨벤션 조합 방식:
rules/<framework>/base/conventions.md— 프레임워크 공통 규칙rules/<framework>/<stack>/conventions.md— 스택별 추가 규칙gen-conventions.mjs가 선택된 스택을 순서대로 concat → 최종 CONVENTIONS.md 생성
rules/<framework>/<stack-name>/
├── conventions.md # 컨벤션 규칙
├── eslint.manifest # ESLint 코드 조각 (TypeScript만)
├── eslint.rules.mjs # ESLint rule export (TypeScript만)
└── tsconfig.patch.json # TSConfig 패치 (필요 시)
NestJS 소비 프로젝트의 package.json에 jkit-rules 객체를 두면 일부 lint 동작을 토글할 수 있습니다. 값은 ESLint config 로드 시점에 평가되므로 /jkit:nestjs-sync 재실행 없이 다음 ESLint 실행부터 반영됩니다.
{
"jkit-rules": {
"pathAliasCheck": false
}
}| Key | 기본값 | 효과 (false 시) |
|---|---|---|
pathAliasCheck |
true |
모든 레이어에서 상대 parent import(../**) 차단 룰 OFF — @/* path alias 강제 해제 |
옵션을 추가하지 않거나 객체 자체를 두지 않으면 모든 검사가 활성된 기본값으로 동작합니다. 옛
jkit.pathAliasCheck키는 더 이상 인식되지 않으니jkit-rules.pathAliasCheck로 옮겨주세요.
boundaries/no-unknown-files, boundaries/no-unknown 등 일부 룰의 기본 에러 메시지를
프로젝트 컨텍스트에 맞는 가이드 문구(대응 순서, 참조 문서 링크)로 재작성한 뒤
ESLint 기본 stylish formatter로 렌더링합니다. 그 외 룰 메시지는 원본 그대로 통과합니다.
프로젝트 package.json lint 스크립트에 --format 지정:
Next.js
{
"scripts": {
"lint": "eslint --format @jkit/code-plugin/nextjs/base/eslint.formatter.mjs ."
}
}NestJS
{
"scripts": {
"lint": "eslint --format @jkit/code-plugin/nestjs/base/eslint.formatter.mjs ."
}
}메시지를 추가/변경하려면 해당 포매터 파일의 MESSAGE_OVERRIDES 맵에 룰 ID를 키로 추가합니다.