Skip to content

F.R.I.D.A.Y. - Migration Orchestration System

JikiME-ADK의 마이그레이션 전담 오케스트레이션 시스템. Iron Man의 두 번째 AI 비서에서 영감을 받은 체계적이고 정밀한 프레임워크 전환 자동화.

Overview

F.R.I.D.A.Y. (Framework Relay & Integration Deployment Assistant Yesterday)는 레거시 시스템을 현대 프레임워크로 전환하는 마이그레이션 전담 오케스트레이터입니다. J.A.R.V.I.S.가 개발을 담당하는 동안, F.R.I.D.A.Y.는 오직 마이그레이션에 특화되어 분석, 계획, 실행, 검증의 전 과정을 자율적으로 수행합니다.

핵심 철학

"Transitioning to the new system, sir. All legacy patterns mapped and ready."

J.A.R.V.I.S.와의 차별점

기능J.A.R.V.I.S. (개발)F.R.I.D.A.Y. (마이그레이션)
탐색5개 에이전트 병렬3개 에이전트 (소스 중심)
계획멀티 전략 비교동적 스킬 탐색 + 전략 비교
실행DDD 사이클DDD + 동작 보존 검증
추적SPEC 기반.migrate-config.yaml + progress.yaml
검증LSP + 테스트Playwright E2E + 시각적 회귀 + 성능 비교
완료 마커<jikime>DONE</jikime><jikime>MIGRATION_COMPLETE</jikime>

Architecture

시스템 구조

┌─────────────────────────────────────────────────────────────────┐
│                    F.R.I.D.A.Y. System                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Phase 0: Discovery (3-Way Parallel)                            │
│  ┌──────────┐ ┌──────────────┐ ┌──────────────┐                │
│  │ Codebase │ │  Dependency  │ │    Risk      │                │
│  │ Explorer │ │   Analyzer   │ │  Assessor    │                │
│  └────┬─────┘ └──────┬───────┘ └──────┬───────┘                │
│       └───────────────┼────────────────┘                        │
│                       ▼                                         │
│           ┌──────────────────────┐                              │
│           │  .migrate-config.yaml │                              │
│           │  + Complexity Score   │                              │
│           └──────────┬───────────┘                              │
│                      ▼                                          │
│  Phase 1: Detailed Analysis                                     │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Component/Route/State/DB Mapping → as_is_spec.md        │   │
│  └─────────────────────────────────────┬───────────────────┘   │
│                                        ▼                        │
│  Phase 2: Intelligent Planning                                  │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐            │
│  │ Strategy A   │ │ Strategy B   │ │ Strategy C   │            │
│  │ Incremental  │ │   Phased     │ │  Big-Bang    │            │
│  └──────┬───────┘ └──────┬───────┘ └──────┬───────┘            │
│         └────────────────┼────────────────┘                    │
│                          ▼                                      │
│           ┌────────────────────────┐                            │
│           │ Dynamic Skill Discovery│                            │
│           │ + migration_plan.md    │                            │
│           └────────────┬───────────┘                            │
│                        ▼                                        │
│  Phase 3: DDD Execution (Per Module)                            │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  FOR EACH module:                                        │   │
│  │    ├── ANALYZE  (소스 동작 이해 + DB 모델 식별)             │   │
│  │    ├── PRESERVE (특성 테스트 + DB 레이어 테스트)            │   │
│  │    ├── IMPROVE  (타겟 프레임워크 + ORM 변환)              │   │
│  │    ├── LSP Quality Gate (regression check)               │   │
│  │    └── Self-Assessment:                                  │   │
│  │        ├── SUCCESS → Next module                         │   │
│  │        ├── LSP REGRESSION → Pivot approach               │   │
│  │        ├── 3x FAIL → Pivot approach                      │   │
│  │        └── Complexity >90 → User guidance                │   │
│  └─────────────────────────────────────────────────────────┘   │
│                        ▼                                        │
│  Phase 4: Verification (Playwright E2E)                         │
│  ┌──────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐  │
│  │  Visual  │ │ Cross-Browser│ │  Core Web    │ │   A11y   │  │
│  │Regression│ │   Testing    │ │   Vitals     │ │  (axe)   │  │
│  └──────────┘ └──────────────┘ └──────────────┘ └──────────┘  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

관련 파일

파일설명
templates/.claude/commands/jikime/friday.mdF.R.I.D.A.Y. 슬래시 커맨드 (587줄)
templates/.claude/commands/jikime/migrate-0-discover.mdPhase 0 커맨드
templates/.claude/commands/jikime/migrate-1-analyze.mdPhase 1 커맨드
templates/.claude/commands/jikime/migrate-2-plan.mdPhase 2 커맨드
templates/.claude/commands/jikime/migrate-3-execute.mdPhase 3 커맨드
templates/.claude/commands/jikime/migrate-4-verify.mdPhase 4 커맨드
docs/migration.md마이그레이션 시스템 문서
docs/migrate-playwright.mdPlaywright 검증 시스템
docs/jarvis.mdJ.A.R.V.I.S. 개발 오케스트레이터 문서
templates/.jikime/config/quality.yamlLSP Quality Gates 설정

Config-First Approach

F.R.I.D.A.Y.의 핵심 설계 원칙은 Config-First입니다. Phase 0에서 설정 파일을 한 번 생성하면, 이후 모든 단계에서 자동 참조합니다.

.migrate-config.yaml

yaml
# Phase 0에서 자동 생성
project_name: my-vue-app
source_path: ./legacy-vue-app
source_architecture: monolith           # Phase 0에서 감지 (monolith, separated, unknown)
target_framework: nextjs16
artifacts_dir: ./migrations/my-vue-app
output_dir: ./migrations/my-vue-app/out
db_type: postgresql                     # Phase 0에서 감지
db_orm: eloquent                        # Phase 0에서 감지

# Phase 2에서 추가
target_architecture: fullstack-monolith  # 사용자 선택 (fullstack-monolith, frontend-backend, frontend-only)
db_access_from: frontend                 # target_architecture에서 자동 파생
# target_framework_backend: fastapi      # frontend-backend 아키텍처만

산출물 흐름

@<source-path>/

    ▼ (Phase 0-1: Discover + Analyze)
.migrate-config.yaml                  ← 프로젝트 설정 (source_architecture, db_type, db_orm 포함)
{artifacts_dir}/as_is_spec.md         ← 상세 분석 (Database Layer + Architecture Layers 포함)

    ▼ (Phase 2: Plan)
.migrate-config.yaml 업데이트          ← 아키텍처 선택 (target_architecture, db_access_from)
{artifacts_dir}/migration_plan.md     ← 마이그레이션 계획 (아키텍처별 Phase 구조)

    ▼ (Phase 3: Execute)
{output_dir}/                         ← 마이그레이션된 프로젝트 (아키텍처에 따라 구조 상이)
  ├─ fullstack-monolith: {output_dir}/ (단일)
  ├─ frontend-backend: {output_dir}/frontend/ + {output_dir}/backend/
  └─ frontend-only: {output_dir}/ (단일, DB 없음)
{artifacts_dir}/progress.yaml         ← 진행 상태 추적

    ▼ (Phase 4: Verify)
{artifacts_dir}/verification_report.md ← 검증 결과 (아키텍처별 검증)

    ▼ (Optional: Whitepaper)
{whitepaper_output}/                  ← 클라이언트용 보고서

Usage

기본 사용법

bash
# 전체 자동 오케스트레이션 (권장)
/jikime:friday "Vue 앱을 Next.js로 마이그레이션" @./legacy-vue-app/

# 타겟 프레임워크 명시
/jikime:friday @./my-app/ --target fastapi

# 안전 전략 (보수적 접근)
/jikime:friday @./legacy/ "Migrate to Go" --strategy safe

# 자동 루프 활성화
/jikime:friday @./src/ --target nextjs --loop --max 30

# 중단된 마이그레이션 재개
/jikime:friday resume

# 백서(Whitepaper) 생성
/jikime:friday @./app/ --target nextjs --whitepaper --client "ABC Corp" --lang ko

단계별 수동 실행

bash
/jikime:migrate-0-discover @./my-vue-app/ --target nextjs
/jikime:migrate-1-analyze
/jikime:migrate-2-plan
/jikime:migrate-3-execute
/jikime:migrate-4-verify --full

명령어 옵션

옵션설명기본값
@<path>소스 프로젝트 경로현재 디렉토리
--target타겟 프레임워크 (nextjs, fastapi, go, flutter 등)자동 감지
--strategy실행 전략: auto, safe, fastauto
--loop에러 자동 수정 반복 활성화false
--max N최대 반복 횟수50
--whitepaper마이그레이션 백서 생성false
--client클라이언트 회사명 (백서 표지용)-
--lang백서 언어 (ko, en, ja, zh)conversation_language
resume이전 마이그레이션 재개-

Intelligence Features

1. Discovery (Phase 0) - 3-Way Parallel

3개의 전문 에이전트가 동시에 소스 프로젝트를 분석합니다:

에이전트역할출력
Codebase Explorer파일 구조, 프레임워크 감지, DB/ORM 유형, 소스 아키텍처 패턴기술 스택, 컴포넌트 목록, DB 정보, 소스 아키텍처 (monolith/separated/unknown), 복잡도 점수
Dependency Analyzer패키지 의존성, 버전 호환성, 브레이킹 체인지의존성 맵, 업그레이드 요구사항
Risk Assessor마이그레이션 리스크, 안티패턴, 레거시 락리스크 점수, 차단 요인 식별

2. Analysis (Phase 1) - as_is_spec.md 생성

소스 프로젝트의 전체 구조를 문서화합니다:

  • 컴포넌트/라우트/상태 매핑
  • 데이터베이스 레이어 분석 (모델, 쿼리 패턴, 외부 데이터 서비스)
  • 아키텍처 레이어 분석 (Frontend / Backend / Data / Shared 레이어 식별 + Coupling 분석)
  • 비즈니스 로직 문서화
  • API 엔드포인트 매핑
  • 의존성 및 리스크 평가

3. Planning (Phase 2) - Architecture Selection + Dynamic Skill Discovery

F.R.I.D.A.Y.는 하드코딩된 프레임워크 패턴 없이, 동적으로 스킬을 탐색합니다:

bash
# 자동으로 실행되는 내부 프로세스
jikime-adk skill search "{target_framework}"

아키텍처 패턴 선택 (Phase 2의 핵심 단계):

  1. source_architectureArchitecture Layers 분석 결과를 기반으로 추천
  2. 사용자에게 3가지 옵션 제시: fullstack-monolith / frontend-backend / frontend-only
  3. frontend-backend 선택 시 백엔드 프레임워크 후속 질문 (FastAPI/NestJS/Express/Go)
  4. .migrate-config.yaml 업데이트 (target_architecture, target_framework_backend, db_access_from)

2-3개의 마이그레이션 전략을 생성하고 비교합니다:

전략리스크속도적합한 경우
Incremental낮음느림복잡도 > 70
Phased중간중간복잡도 40-70
Big-Bang높음빠름복잡도 < 40

4. Execution (Phase 3) - DDD Migration Cycle

target_architecture에 따라 실행 전략이 달라집니다:

아키텍처실행 방식
fullstack-monolith단일 프로젝트 DDD 사이클 (기본)
frontend-backendShared → Backend → Frontend → Integration 4단계 분리 실행
frontend-only프론트엔드 모듈만 DDD 사이클 (DB 단계 스킵)

각 모듈에 대해 ANALYZE-PRESERVE-IMPROVE 사이클을 수행합니다:

ANALYZE:     소스 컴포넌트 동작 이해
ANALYZE-DB:  데이터 모델 및 쿼리 패턴 식별 (DB가 있는 경우)
PRESERVE:    특성 테스트 작성 (현재 동작 캡처)
PRESERVE-DB: 데이터 레이어 테스트 작성 (DB가 있는 경우)
IMPROVE:     타겟 프레임워크로 변환 (스킬 컨벤션 적용)
IMPROVE-DB:  ORM/데이터 접근 패턴 변환 (DB가 있는 경우)

LSP Quality Gates

Phase 3 실행 중 LSP 기반 품질 게이트가 자동으로 적용됩니다:

Phase조건설명
planrequire_baseline: trueMigration plan 수립 시 LSP 베이스라인 캡처
executemax_errors: 0타입에러/린트에러 모두 0 필요
verifyrequire_clean_lsp: true검증 전 LSP 클린 상태 필수

설정 위치: .jikime/config/quality.yamlconstitution.lsp_quality_gates

Ralph Loop 통합

F.R.I.D.A.Y.의 DDD Migration Cycle은 LSP Quality Gates와 통합됩니다:

Ralph Loop Cycle (Migration):
  1. ANALYZE: 소스 컴포넌트 분석 + LSP 베이스라인 캡처
  2. PRESERVE: Characterization test 생성
  3. IMPROVE: 타겟 프레임워크로 변환
  4. LSP Check: 변환 후 LSP 진단 (regression 체크)
  5. Decision: Continue, Retry, or Pivot

LSP regression이 감지되면 F.R.I.D.A.Y.는 자동으로 대안 마이그레이션 패턴을 시도합니다.

자가 평가 루프

각 모듈 변환 시 F.R.I.D.A.Y.가 자동으로 평가합니다:

  1. "현재 모듈이 정상적으로 마이그레이션되고 있는가?"

    • TypeScript 컴파일 성공?
    • 특성 테스트 통과?
    • 빌드 성공?
  2. "접근 방식을 변경해야 하는가?"

    • 트리거: 같은 모듈에서 3회 연속 실패
    • 행동: 대안 마이그레이션 패턴 시도
  3. "자동 마이그레이션이 불가능한 복잡도인가?"

    • 트리거: 단일 컴포넌트 복잡도 > 90
    • 행동: 서브 컴포넌트로 분할 또는 사용자 지침 요청

Progress Tracking

yaml
# {artifacts_dir}/progress.yaml
project: my-vue-app
source: vue3
target: nextjs16
target_architecture: fullstack-monolith  # 선택된 아키텍처 패턴
status: in_progress
strategy: phased

phases:
  discover: completed
  analyze: completed
  plan: completed
  execute: in_progress
  verify: pending

modules:
  total: 15
  completed: 8
  in_progress: 1
  failed: 0
  pending: 6

current:
  module: UserProfile
  iteration: 2

5. Verification (Phase 4) - Playwright E2E

10단계 검증 시스템으로 마이그레이션 품질을 보장합니다:

단계검증 항목도구
1인프라 (Dev server 자동 시작)Playwright
2라우트 발견 (테스트 가능한 라우트 탐색)Explore
3시각적 회귀 (5개 뷰포트 비교)Playwright Screenshots
4동작 테스트 (폼, API, JS 에러)Playwright Actions
5크로스 브라우저 (Chromium/Firefox/WebKit)Playwright Multi-Browser
6성능 (Core Web Vitals, 번들 사이즈)Playwright Metrics
7접근성 (WCAG 준수)axe-core
8에이전트 위임 (e2e-tester + 스킬)Task Agent
9통합 검증 (플래그, 의존성)CLI
10리포트 (Markdown + HTML + JSON)Write

Strategy Details

auto (기본값)

F.R.I.D.A.Y.가 마이그레이션 복잡도를 분석하여 최적 전략을 자동 선택:

마이그레이션 유형분석 결과선택 전략
단순 (단일 프레임워크, <20 컴포넌트)복잡도 < 40Big-Bang (직접 순차)
중간 (2-3 관심사, 20-50 컴포넌트)복잡도 40-70Phased (체크포인트)
복잡 (멀티 도메인, >50 컴포넌트)복잡도 > 70Incremental (병렬 오케스트레이션)

safe (보수적)

최대한의 검증과 안전장치를 적용:

  • 매 Phase 사이에 사용자 확인
  • 컴포넌트별 개별 마이그레이션
  • 각 단계마다 전체 테스트 스위트 실행
  • 모든 Phase에 롤백 포인트

fast (공격적)

소규모 마이그레이션을 위한 빠른 실행:

  • 최소한의 체크포인트 (Phase 단위만)
  • 배치 컴포넌트 마이그레이션
  • 선택적 검증 건너뛰기
  • 빠른 완료 우선

Framework Agnosticism

F.R.I.D.A.Y.는 프레임워크 무관 설계입니다. 하드코딩된 타겟 프레임워크 패턴 없이, 모든 지식은 동적으로 수집됩니다:

소스지식 원천
Skillsjikime-adk skill search "{target_framework}"
Context7스킬이 없을 때 폴백
as_is_spec.md소스 분석 데이터

지원 마이그레이션 (비제한적)

소스타겟 옵션
Vue 2/3Next.js (App Router)
React (CRA)Next.js (App Router)
AngularNext.js, SvelteKit
jQueryReact, Vue, Svelte
PHPNext.js, FastAPI, Go
MonolithMicroservices
Any sourceAny target

Whitepaper Generation

--whitepaper 플래그를 사용하면 마이그레이션 완료 후 클라이언트용 보고서를 생성합니다:

산출물 구조

{whitepaper_output}/
├── 00_cover.md                    # 표지 + 목차
├── 01_executive_summary.md        # 비기술적 요약
├── 02_migration_summary.md        # 실행 타임라인
├── 03_architecture_comparison.md  # Before/After 다이어그램
├── 04_component_inventory.md      # 마이그레이션된 컴포넌트 목록
├── 05_performance_report.md       # 성능 메트릭
├── 06_quality_report.md           # 품질 메트릭
└── 07_lessons_learned.md          # 권장사항

지원 언어

코드언어
ko한국어
enEnglish
ja日本語
zh中文

Resume Capability

중단된 마이그레이션을 이어서 진행할 수 있습니다:

bash
/jikime:friday resume

내부 동작:

  1. .migrate-config.yaml에서 프로젝트 설정 읽기
  2. {artifacts_dir}/progress.yaml에서 현재 상태 확인
  3. 마지막 완료된 Phase 확인
  4. 다음 대기 중인 Phase/모듈부터 계속 진행
  5. 전략과 컨텍스트 복원

Agent Delegation

Phase별 에이전트 위임

Phase에이전트역할
Phase 0Explore (x3)코드 분석, 의존성 분석, 리스크 평가
Phase 1manager-specas_is_spec.md 생성
Phase 2manager-strategy마이그레이션 전략 수립
Phase 3backend, frontendDDD 기반 코드 마이그레이션
Phase 4e2e-testerPlaywright 검증

Output Format

실행 중

markdown
## F.R.I.D.A.Y.: Phase 3 - Execution (Module 8/15)

### Migration: Vue 3 → Next.js 16
### Complexity Score: 55/100

### Module Status
- [x] Auth module (5 components)
- [x] Users module (3 components)
- [ ] Products module <- in progress
- [ ] Orders module
- [ ] Dashboard module

### Self-Assessment
- Progress: YES (build errors: 3 -> 1)
- Pivot needed: NO
- Current module confidence: 80%

### Active Issues
- WARNING: ProductCard.tsx - dynamic import pattern needs manual review

Continuing...

완료

markdown
## F.R.I.D.A.Y.: MIGRATION COMPLETE

### Summary
- Source: Vue 3 (Vuetify)
- Target: Next.js 16 (App Router)
- Strategy Used: Phased
- Modules Migrated: 15/15
- Tests: 89/89 passing
- Build: SUCCESS
- Iterations: 12
- Self-Corrections: 2

### Predictive Suggestions
1. Set up CI/CD pipeline for the new project
2. Configure production environment variables
3. Set up monitoring and error tracking
4. Plan user acceptance testing

<jikime>MIGRATION_COMPLETE</jikime>

Limitations & Safety

제한사항

  • 최대 3회 전략 피봇 (이후 사용자 개입 요청)
  • 모듈당 최대 5회 재시도
  • 세션 내 학습만 지원 (세션 간 학습 미지원)

안전장치

  • [HARD] 모든 구현은 전문가 에이전트에 위임
  • [HARD] Phase 3 실행 전 사용자 확인 필수 (--strategy fast 제외)
  • [HARD] 완료 마커 필수: <jikime>MIGRATION_COMPLETE</jikime>
  • [HARD] 동적 스킬 탐색 - 프레임워크 패턴 하드코딩 금지
  • [HARD] .migrate-config.yamlas_is_spec.md에서 읽기 - 소스 재분석 금지
  • [HARD] LSP Quality Gate: execute phase에서 에러 0 필수
  • 각 Phase에 롤백 포인트 생성
  • LSP Quality Gates가 regression 감지 시 자동 알림

Best Practices

언제 F.R.I.D.A.Y.를 사용하나요?

적합한 경우:

  • 레거시 프로젝트를 현대 프레임워크로 전환
  • 프레임워크 업그레이드 (Vue 2 → Vue 3, React CRA → Next.js)
  • 모놀리식 → 마이크로서비스 전환
  • 프론트엔드 프레임워크 교체

J.A.R.V.I.S.가 나은 경우:

  • 새로운 기능 구현
  • 기존 코드 리팩토링 (프레임워크 변경 없이)
  • 버그 수정
  • 성능 최적화

Dual Orchestrator 전환

bash
# 개발 작업 → J.A.R.V.I.S.
/jikime:jarvis "Add user authentication"

# 마이그레이션 작업 → F.R.I.D.A.Y.
/jikime:friday "Migrate Vue app to Next.js 16"

# 자동 라우팅 (키워드 기반)
"migrate this app" F.R.I.D.A.Y.
"implement login" J.A.R.V.I.S.

Version: 1.3.0 Last Updated: 2026-02-03 Codename: F.R.I.D.A.Y. (Framework Relay & Integration Deployment Assistant Yesterday) Inspiration: Iron Man's second AI Assistant (successor to J.A.R.V.I.S.) Changelog:

  • v1.3.0: Architecture Pattern 지원 추가 (fullstack-monolith, frontend-backend, frontend-only); 아키텍처 선택 단계(Phase 2); 아키텍처별 실행/검증 전략; source_architecture 감지
  • v1.2.0: Database Layer 지원 추가 (DB/ORM 감지, DB-aware DDD cycle, DB 스키마 검증)
  • v1.1.0: LSP Quality Gates 통합, Ralph Loop Integration 추가
  • v1.0.0: Initial release - Migration-focused orchestrator extracted from J.A.R.V.I.S.

Released under the MIT License.