언제 사용하나요
- AIDLC Inception 을 시작하는 첫 단계로서 워크스페이스 상태를 판별할 때
- 기존 레포에 기능을 추가하면서 암묵적인 도메인 컨텍스트를 파악해야 할 때
- greenfield 초기화 전에 빈 디렉터리인지 기존 자산이 남아있는지 확인할 때
언제 사용하지 않나요
- 이미
.omao/plans/<slug>/workspace-report.md 가 최신 상태로 존재할 때
- 단일 파일 리팩터링 등 워크스페이스 판별이 불필요한 작업
- IaC 전용 리포지토리에서 인프라 변경만 다룰 때
전제 조건
- 분석 대상 디렉터리에 대한 read 권한 보유
.omao/plans/ 디렉터리가 존재(없을 경우 생성)
- Git 리포지토리 여부는 선택사항 — 비Git 디렉터리도 지원
절차
Step 1. 타깃 디렉터리 확정
인자로 받은 경로 또는 현재 작업 디렉터리를 타깃으로 설정합니다. 절대 경로로 변환한 뒤
존재 여부와 읽기 권한을 확인합니다.
Step 2. Greenfield / Brownfield 판별
다음 시그널을 종합하여 판별합니다.
| 시그널 |
Greenfield |
Brownfield |
| 소스 파일 수 |
10 미만 또는 scaffold 만 존재 |
소스 파일 50 이상 |
| Git 히스토리 |
0~3 commits |
10 이상 commits |
| 의존성 선언 |
package.json/pyproject.toml 없음 또는 초기 스캐폴드 |
고정 버전의 의존성 다수 |
| 테스트 자산 |
테스트 파일 없음 |
테스트 디렉터리 존재 |
| 도메인 모델 |
명시된 엔터티 없음 |
모델/스키마 파일 존재 |
판별 결과는 workspace_type: greenfield | brownfield | hybrid 로 기록합니다.
Step 3. 기술 스택 탐지
- 언어:
*.py, *.ts, *.go, *.java, *.rs 등 확장자 빈도 집계
- 프레임워크:
package.json, pyproject.toml, go.mod, pom.xml 파싱
- 인프라:
Dockerfile, helm/, terraform/, *.tf, k8s/, kustomization.yaml 존재 여부
- AI/ML 스택:
requirements.txt 에서 vllm, transformers, langfuse, langchain 탐지
Step 4. 엔트리 포인트 목록
- CLI:
bin/, cmd/, main.py
- API:
app.py, server.ts, api/ 라우트
- UI:
src/pages/, app/, public/
- Worker:
workers/, consumers/
Step 5. 브라운필드 확장 — Reverse Engineering 트리거
workspace_type == brownfield 인 경우, 다음 산출물을 추가 수집합니다.
- 도메인 모델 요약(클래스/스키마 상위 20개)
- 외부 의존 서비스(AWS, 데이터베이스, 벡터 DB, 메시지 큐)
- 관측성 스택 존재 여부(OpenTelemetry, Langfuse, Prometheus)
- 보안 시그널(Secrets Manager, IRSA, OIDC)
결과는 reverse-engineering-notes.md 로 별도 저장하고, workspace-report.md 에서 링크합니다.
Step 6. 산출물 생성
.omao/plans/<slug>/workspace-report.md 에 다음 섹션을 기록합니다.
# Workspace Report
- workspace_type: brownfield
- primary_language: Python 3.11
- frameworks: [FastAPI, LangChain, vLLM client]
- entry_points: [app/main.py, workers/indexer.py]
- infrastructure: [Helm, Terraform]
- recommended_next: requirements-analysis (adaptive, complex)
Step 7. 다음 스킬 연결
- greenfield + 단순 기능 →
requirements-analysis (simple mode)
- greenfield + 복잡 기능 →
requirements-analysis (structured mode)
- brownfield →
requirements-analysis + reverse-engineering-notes.md 참조
좋은 예시
- Python FastAPI 레포 + 50개 소스 + OpenTelemetry 존재 → brownfield, structured
- 빈 디렉터리 + Git init 만 수행 → greenfield, simple
- 스캐폴드만 생성된 Next.js 레포(페이지 없음) → greenfield
나쁜 예시 (금지)
- 파일 수만으로 판단하여
docs/ 위주 레포를 brownfield 로 잘못 분류
node_modules/ 를 소스 파일 수에 포함
- 산출물 저장 경로를
/tmp/ 같은 휘발성 위치로 지정
- 브라운필드인데 reverse-engineering-notes 를 생략
참고 자료
공식 문서
관련 문서 (내부)
../../CLAUDE.md — aidlc 플러그인 (inception) 개요
../requirements-analysis/SKILL.md — 다음 단계 스킬
/home/ubuntu/workspace/oh-my-aidlcops/CLAUDE.md — OMA 전체 철학
/home/ubuntu/workspace/oh-my-aidlcops/plugins/aidlc/CLAUDE.md — Phase 2 연결
1---2name: workspace-detection3description: Detect whether the workspace is greenfield (new project) or brownfield (existing codebase). For brownfield, trigger reverse-engineering to recover implicit requirements. Produces a workspace-report.md with detected stack, entry points, and recommended inception path.4---56## 언제 사용하나요78- AIDLC Inception 을 **시작하는 첫 단계**로서 워크스페이스 상태를 판별할 때9- 기존 레포에 기능을 추가하면서 암묵적인 도메인 컨텍스트를 파악해야 할 때10- greenfield 초기화 전에 빈 디렉터리인지 기존 자산이 남아있는지 확인할 때1112## 언제 사용하지 않나요1314- 이미 `.omao/plans/<slug>/workspace-report.md` 가 최신 상태로 존재할 때15- 단일 파일 리팩터링 등 워크스페이스 판별이 불필요한 작업16- IaC 전용 리포지토리에서 인프라 변경만 다룰 때1718## 전제 조건1920- 분석 대상 디렉터리에 대한 read 권한 보유21- `.omao/plans/` 디렉터리가 존재(없을 경우 생성)22- Git 리포지토리 여부는 선택사항 — 비Git 디렉터리도 지원2324## 절차2526### Step 1. 타깃 디렉터리 확정2728인자로 받은 경로 또는 현재 작업 디렉터리를 타깃으로 설정합니다. 절대 경로로 변환한 뒤29존재 여부와 읽기 권한을 확인합니다.3031### Step 2. Greenfield / Brownfield 판별3233다음 시그널을 종합하여 판별합니다.3435| 시그널 | Greenfield | Brownfield |36|--------|-----------|-----------|37| 소스 파일 수 | 10 미만 또는 scaffold 만 존재 | 소스 파일 50 이상 |38| Git 히스토리 | 0~3 commits | 10 이상 commits |39| 의존성 선언 | `package.json`/`pyproject.toml` 없음 또는 초기 스캐폴드 | 고정 버전의 의존성 다수 |40| 테스트 자산 | 테스트 파일 없음 | 테스트 디렉터리 존재 |41| 도메인 모델 | 명시된 엔터티 없음 | 모델/스키마 파일 존재 |4243판별 결과는 `workspace_type: greenfield | brownfield | hybrid` 로 기록합니다.4445### Step 3. 기술 스택 탐지4647- 언어: `*.py`, `*.ts`, `*.go`, `*.java`, `*.rs` 등 확장자 빈도 집계48- 프레임워크: `package.json`, `pyproject.toml`, `go.mod`, `pom.xml` 파싱49- 인프라: `Dockerfile`, `helm/`, `terraform/`, `*.tf`, `k8s/`, `kustomization.yaml` 존재 여부50- AI/ML 스택: `requirements.txt` 에서 `vllm`, `transformers`, `langfuse`, `langchain` 탐지5152### Step 4. 엔트리 포인트 목록5354- CLI: `bin/`, `cmd/`, `main.py`55- API: `app.py`, `server.ts`, `api/` 라우트56- UI: `src/pages/`, `app/`, `public/`57- Worker: `workers/`, `consumers/`5859### Step 5. 브라운필드 확장 — Reverse Engineering 트리거6061`workspace_type == brownfield` 인 경우, 다음 산출물을 추가 수집합니다.6263- 도메인 모델 요약(클래스/스키마 상위 20개)64- 외부 의존 서비스(AWS, 데이터베이스, 벡터 DB, 메시지 큐)65- 관측성 스택 존재 여부(OpenTelemetry, Langfuse, Prometheus)66- 보안 시그널(Secrets Manager, IRSA, OIDC)6768결과는 `reverse-engineering-notes.md` 로 별도 저장하고, `workspace-report.md` 에서 링크합니다.6970### Step 6. 산출물 생성7172`.omao/plans/<slug>/workspace-report.md` 에 다음 섹션을 기록합니다.7374```markdown75# Workspace Report76- workspace_type: brownfield77- primary_language: Python 3.1178- frameworks: [FastAPI, LangChain, vLLM client]79- entry_points: [app/main.py, workers/indexer.py]80- infrastructure: [Helm, Terraform]81- recommended_next: requirements-analysis (adaptive, complex)82```8384### Step 7. 다음 스킬 연결8586- greenfield + 단순 기능 → `requirements-analysis` (simple mode)87- greenfield + 복잡 기능 → `requirements-analysis` (structured mode)88- brownfield → `requirements-analysis` + `reverse-engineering-notes.md` 참조8990## 좋은 예시9192- Python FastAPI 레포 + 50개 소스 + OpenTelemetry 존재 → brownfield, structured93- 빈 디렉터리 + Git init 만 수행 → greenfield, simple94- 스캐폴드만 생성된 Next.js 레포(페이지 없음) → greenfield9596## 나쁜 예시 (금지)9798- 파일 수만으로 판단하여 `docs/` 위주 레포를 brownfield 로 잘못 분류99- `node_modules/` 를 소스 파일 수에 포함100- 산출물 저장 경로를 `/tmp/` 같은 휘발성 위치로 지정101- 브라운필드인데 reverse-engineering-notes 를 생략102103## 참고 자료104105### 공식 문서106- [awslabs/aidlc-workflows — core-workflow](https://github.com/awslabs/aidlc-workflows/blob/main/aidlc-rules/aws-aidlc-rules/core-workflow.md) — AIDLC 코어 워크플로우 정의107- [awslabs/aidlc-workflows — workspace-detection](https://github.com/awslabs/aidlc-workflows/blob/main/aidlc-rules/aws-aidlc-rule-details/inception/workspace-detection.md) — 원본 워크스페이스 탐지 규칙108109### 관련 문서 (내부)110- `../../CLAUDE.md` — aidlc 플러그인 (inception) 개요111- `../requirements-analysis/SKILL.md` — 다음 단계 스킬112- `/home/ubuntu/workspace/oh-my-aidlcops/CLAUDE.md` — OMA 전체 철학113- `/home/ubuntu/workspace/oh-my-aidlcops/plugins/aidlc/CLAUDE.md` — Phase 2 연결