문서 목차
이 페이지에서목차

/cc-bricks:create-project — 새 프로젝트 "처음부터 세팅" 자동 안내

cob kernel+bundle 신규 프로젝트와 feature 역할 패키지를 생성하고 인프라 부트스트랩을 안내합니다. 새 프로젝트를 시작할 때 사용합니다.

항목내용
실행 명령/cc-bricks:create-project

coco-de/co-bricks의 cob 도구(CLI + MCP)를 이용해, 빈 상태에서 모노레포 코드 골격과 Firebase/GCP/iOS/GitHub Secrets 인프라까지 초기 세팅을 한 번의 흐름으로 진행합니다.

한마디로#

새 가게를 열 때 ① 건물 골조·인테리어(코드 골격)를 세우고 → ② 전기·수도·인터넷(클라우드 인프라)을 연결하는 두 단계를, 미리 준비된 표준 설계도(cob 브릭)로 자동으로 처리해 주는 도우미입니다. "프로젝트 이름과 조직명 한 장"만 정하면, 폴더 구조·기능 뼈대·배포에 필요한 계정과 열쇠(Secrets)까지 순서대로 갖춰 줍니다.

누가·언제 쓰나요#

  • 완전히 새로운 프로젝트를 처음 만들 때 (그린필드)
  • 기존 kobic 스타일 표준 구조(Flutter + Serverpod + CoUI 모노레포)를 그대로 따라 시작하고 싶을 때
  • 여러 기능(feature)을 한 스펙(project.yaml)으로 한꺼번에 찍어내고 싶을 때

👉 이미 만들어진 프로젝트에 기능 하나만 추가하려면 이 커맨드가 아니라 cob compose(풀스택 feature 1개) 또는 각 feature-* 스킬을 쓰세요. 이 커맨드는 "프로젝트 자체를 처음 만드는" 진입점입니다.

무엇을 해주나요 (2단계)#

단계하는 일대표 명령
A. 코드 스캐폴드 그린필드 모노레포 + N개 feature 골격 생성, 라우트·melos 워크스페이스 자동 등록 cob create · cob generate -s project.yaml · cob create-from-config
B. 인프라 부트스트랩 Firebase 프로젝트/앱 → GCP 서비스계정 → flutterfire configure → SHA-1 → iOS App Store Connect 앱 → GitHub Actions Secrets 업로드 (7-stage) cob init

⚠️ 인프라(B)는 CLI 전용입니다. cob MCP는 코드 생성 계열(cob_create/cob_create_from_config 등)만 노출하며 init/firebase/gcp/ios/secrets는 노출하지 않습니다. 인프라 단계는 반드시 cob CLI로 진행하고, firebase/gcloud/gh/fastlane 로그인이 선행되어야 합니다.

어떻게 쓰나요#

# 대화형(권장): 이름·조직·feature 포함 여부를 프롬프트로 하나씩 확인
/cc-bricks:create-project

# 이름을 미리 지정 (그 외는 대화형/기본값)
/cc-bricks:create-project --name my_app

# 인프라 부트스트랩까지 이어서 진행
/cc-bricks:create-project --name my_app --with-infra

# 코드만 생성 (인프라는 나중에)
/cc-bricks:create-project --name my_app --code-only

# project.yaml 스펙으로 모노레포+features 일괄 생성
/cc-bricks:create-project --spec project.yaml

안에서 무슨 일이 벌어지나요 (실행 흐름)#

  1. 사전 점검(Gate 0) — cob CLI 설치 여부 확인. 없으면 설치 안내 후 중단(degrade). 인프라 단계 선택 시 firebase/gcloud/gh/fastlane 로그인 상태도 함께 점검.
  2. 입력 정리 — 프로젝트명(snake_case)·조직·TLD·GitHub·백엔드(serverpod)·포함할 feature 목록을 수집. --spec 지정 시 project.yaml(spec v1)을 단일 진실원으로 사용.
  3. 코드 스캐폴드(A) — cob create(대화형/단일 모노레포) 또는 cob generate -s project.yaml(모노레포 + N feature 합성)로 골격 생성. 라우트 등록·워크스페이스 갱신은 cob이 담당(모노레포 브릭은 post_gen 만, feature 합성은 pre_gen 만 실행).
  4. 검수 — 생성된 폴더/워크스페이스/라우트 등록 확인, melos bootstrap 등 빌드 준비. 이어서 project-init 스킬의 "생성 직후 기준선 점검" 7항(서버 패키지 <project>_server·<project>_client 명명, coui 최신 태그, HookWidget·한 파일 한 공개 타입·타입 안전 라우트, 유니버설/앱 링크, co_golden 갤러리 Pages, co_bdd, 사내 패키지)을 확인하고 어긋난 것을 먼저 고칩니다.
  5. 인프라 부트스트랩(B, 선택) — --with-infra 시 cob init 7-stage 실행 안내(각 스테이지는 실패해도 경고만 남기고 다음 진행, iOS 디렉토리 없으면 iOS 자동 스킵).
  6. 마무리 — 다음 단계(첫 feature는 cob compose, 개발 사이클은 /cc-dev:run) 안내.

⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)

Triggers#

  • 그린필드 프로젝트를 처음 스캐폴딩할 때 (모노레포 부트스트랩)
  • project.yaml(spec v1) 한 장으로 모노레포 + N feature를 합성할 때
  • 신규 프로젝트의 클라우드/CI 인프라(Firebase/GCP/iOS/Secrets)를 초기화할 때

Options#

옵션설명기본값
--name <snake_case>프로젝트명 (non-interactive 시 필수)(대화형 프롬프트)
--spec <path>project.yaml(spec v1)로 모노레포 + features 일괄 생성 (cob generate -s)없음
--with-infra코드 생성 후 cob init(7-stage 인프라 부트스트랩)까지 진행off
--code-only코드 스캐폴드(A)만 수행, 인프라(B) 생략on
--config <name>저장된 설정으로 생성 (cob create-from-config -c <name>)없음
--output-dir <path>출력 디렉토리.
--dry-run실제 파일 생성 없이 계획만 출력 (cob generate --dry-run)off

Execution Contract#

Gate 0 — tooling degradation (throw 아님, degrade)#

command -v cob >/dev/null || {
  echo "⚠️ cob 미설치 — 아래로 설치 후 재시도:"
  echo "  dart pub global activate --source git https://github.com/coco-de/co-bricks.git"
  echo '  echo '"'"'export PATH="$PATH:$HOME/.pub-cache/bin"'"'"' >> ~/.zshrc && source ~/.zshrc'
  exit 0   # 파이프라인 차단이 아닌 안내 후 중단
}

--with-infra 선택 시 추가 로그인 점검 (미로그인은 해당 스테이지만 스킵 가능):

CLI로그인사용 스테이지
firebasefirebase loginfirebase create/init/sha
gcloudgcloud auth logingcp service-account
ghgh auth loginsecrets push
fastlaneApple ID 로그인(2단계 인증) — create_app_online 은 API 키를 쓰지 않는다ios create

A. 코드 스캐폴드 — 3 경로#

생성 전에 .cob/feature-layout.json을 먼저 읽고, 없으면 cob의 기존 legacy 트리 판정 → 나머지는 bundle 기본값을 따른다. marker와 kernel origin ref를 보존하며 반대 layout 요청은 이관 안내와 함께 실패한다. 생성 배치 계약을 적용한다.

입력명령비고
project.yaml 스펙 (권장)cob generate -s project.yaml [-o <dir>] [--dry-run]신규 기본 kernel + bundle, N feature 역할 패키지 생성
커널 풀스택cob fullstack --name <name>앱·Serverpod·소개 사이트 조립

조건부 legacy — legacy 판정에서만

기존 donor monorepo 스냅샷은 cob create --type monorepo / create-from-config -c <name> / generate --base donor를 사용한다. 신규 kernel에 donor UI를 복제하지 않는다.

브릭 훅은 경로마다 다르다(cob 0.4.0). cob create·create-from-config 는 모노레포 브릭의 post_gen 만 실행한다(pre_gen 파생값·brick.yaml default: 는 cob 이 변수로 넘긴다). cob compose·feature add·add 는 pre_gen 만 실행한다. compose·feature add 의 라우트 등록·워크스페이스 pubspec 갱신은 cob 이 직접 처리하고, add 는 부품 파일을 만들고 usecase·bloc·widget 부품이면 barrel export 를 덧붙인다(endpoint 부품의 등록은 serverpod generate 몫). cob apply 는 훅 없이 파일을 만들고 워크스페이스 pubspec 에 feature 패키지를 추가한다(라우트 등록은 하지 않는다). cob generate 는 이 셋을 차례로 부른다. 원샷 mason make 는 두 훅을 모두 실행한다. 경로별 표는 project-init 스킬 참조.

B. 인프라 부트스트랩 — cob init 7-stage#

firebase create → gcp service-account → firebase init(configure)
  → firebase sha → ios create → secrets encode → secrets push

각 스테이지는 내부적으로 standalone 서브커맨드를 --env all(dev/stg/prod)로 호출. 스테이지 실패는 경고 후 다음 진행(중단 아님). 스킵 옵션: --skip-firebase/--skip-gcp/--skip-configure/--skip-sha/--skip-ios/--skip-secrets. iOS 디렉토리(app/<project>/ios) 없으면 iOS 자동 스킵.

산출물 (예시)#

<project>/                         # 모노레포 루트 (melos)
├── app/<project>/                 # Flutter 앱
├── backend/<project>_server/      # 실행·조립·교차 기능·DB 통합 테스트 호스트
├── backend/<project>_client/      # 호스트 합성 SDK
├── feature/<d>/
│   ├── app/                      # <d>; lib/src/i18n/ 기능 번역
│   ├── console/                  # console_<d>; lib/src/i18n/ 기능 번역
│   ├── server/                   # <d>_server, type: module; lib/src/{endpoint,service,model,…}
│   ├── client/                   # <d>_client 생성 SDK
│   ├── bundle.json               # 조립 선언
│   └── host-integration.json     # 호스트 결합 계약
├── melos.yaml / pubspec.yaml      # 워크스페이스 (cob이 등록)
└── .envrc                         # (인프라 시) Secrets base64 + App ID

신규 기본은 공식 Serverpod 4.0.3. 모듈은 호스트를 import하지 않는다. bind(serverpod, …) / forSession(session) 세션 인지 포트와 fail-closed 어댑터를 호스트에서 연결한다. 순수 테스트는 기능 역할의 test/, DB/withServerpod 테스트는 호스트 test/integration/에 두고 bundle.json.hostTests에 등재한다.

다음 단계#

  • 기준선 점검: project-init 스킬 "생성 직후 기준선 점검" — 첫 기능 코드 전에
  • 첫날 전체 순서(사전점검·첫 배포 확인·co_faker 커버리지·CI 병렬 잡·모듈 병렬 착수): new-project-quickstart 스킬
  • 첫 풀스택 feature 추가: cob compose -m feature.yaml (또는 각 feature-* 스킬). 라이브러리급 기능은 cc-dev:internal-package-registry 표를 먼저 본다
  • 개발 사이클 자동화: /cc-dev:run "…" (이슈→브랜치→PR→머지)
  • 백엔드 코드 생성: melos run backend:pod:generate
  • 스토어 콘솔 등록(Play 앱 만들기·등록정보·선언 항목, 5단계를 건너뛰었다면 App Store Connect 앱 레코드): cc-flutter:store-console-handoff — cob init 은 Play Console 앱을 만들지 않는다
  • skills/project-init/SKILL.md — project.yaml 스펙·cob 명령·MCP 상세 가이드
  • 플러그인 README → "Project Initialization (greenfield)" 섹션
  • cob MCP 등록: 플러그인 .mcp.json(opt-in) — create 계열만 노출

검색어를 입력하면 문서를 찾습니다.

↑ ↓ 이동 · Enter 열기Esc 닫기