| name | jin-fsd |
| description | Full Self-Driving 모드. 오케스트레이터 파이프라인을 단계별 사용자 승인과 함께 실행합니다. "jin fsd", "자율실행" 시 사용. |
| triggers | ["jin fsd","자율실행"] |
| argument-hint | [자율 실행할 작업 설명] |
Jin FSD - Full Self-Driving 모드
목적
jin-orchestrator와 동일한 멀티 에이전트 파이프라인을 실행하되, 모든 상태 전이에서 사용자 승인을 요구하는 안전한 자율 실행 모드입니다. 사용자가 각 단계를 확인하고 승인/거부/수정할 수 있습니다:
| 단계 | 에이전트 | 역할 | 승인 게이트 |
|---|
| 추천 | - (jin-suggest) | 최적 에이전트/워크플로우 추천 | AskUserQuestion |
| 범위 정의 | - | 사용자와 범위 합의 | AskUserQuestion |
| 계획 | task-planner-agent (opus) | 태스크 분해 | AskUserQuestion |
| 요구사항 인터뷰 | jin-interview-agent | 계획 기반 상세 요구사항 확보 | AskUserQuestion |
| 실행 | swe-agent / swe-agent-high | 태스크 구현 | AskUserQuestion |
| 검증 | swe-verifier (sonnet) | 독립 검증 | AskUserQuestion |
| 수정 | 실행 에이전트 | 수정 반복 | AskUserQuestion |
핵심 원칙
- 사용자 승인 필수: 모든 상태 전이에서
AskUserQuestion으로 명시적 승인 획득
- 투명성: 각 단계의 결과를 사용자에게 상세히 보고
- 제어권: 사용자가 계획을 수정하거나 태스크를 추가/제거 가능
- 안전 우선: 승인 없이 다음 단계로 진행하지 않음
- 오케스트레이터 기반: jin-orchestrator와 동일한 에이전트/도구 활용
워크플로우
Step 0: 추천 (Suggest)
jin-suggest 스킬을 호출하여 사용자 요청에 가장 적합한 에이전트와 워크플로우를 분석합니다.
수행 작업:
- 사용자 요청에서 의도 카테고리 분류 (jin-suggest 매핑 테이블 기반)
- 프로젝트 컨텍스트 감지 (
pyproject.toml, package.json, .git, AGENTS.md, tests/ 존재 여부)
- 추천 에이전트 및 워크플로우 결정
프로젝트 컨텍스트 감지 규칙:
| 파일/디렉토리 | 감지 결과 | 자동 반영 |
|---|
pyproject.toml | Python 프로젝트 | python-expert 에이전트 우선 |
package.json | Node.js/React 프로젝트 | 프론트엔드 관련 에이전트 우선 |
tests/ 또는 test/ | 테스트 존재 | 검증 단계에서 테스트 실행 포함 |
AGENTS.md | 초기화 완료 | jin-deepinit 추천 제외 |
추천 결과를 사용자에게 보고하고 승인을 요청합니다.
AskUserQuestion:
jin-suggest 분석 결과:
요청: [사용자 요청 요약]
프로젝트: [감지된 프로젝트 타입]
추천 에이전트:
| 용도 | 에이전트 | 모델 | 이유 |
|------|----------|------|------|
| 실행 | [에이전트명] | [모델] | [이유] |
| 검증 | swe-verifier | sonnet | 독립 검증 |
추천 워크플로우:
> 1. [스킬/단계] → [설명]
> 2. [스킬/단계] → [설명]
이 구성으로 FSD를 시작할까요?
- 승인: "yes" 또는 "진행"
- 수정: 에이전트나 워크플로우 변경사항을 알려주세요
- 거부: "취소"
사용자 승인 후 추천된 에이전트 배정을 확정하고 Step 1로 진행합니다.
### 추천 확정
- **추천 에이전트**: [확정된 에이전트 목록]
- **추가 스킬**: [자동 적용된 스킬]
- **사용자 수정**: [있으면 기록]
Step 1: 범위 정의 (Scope)
AskUserQuestion으로 작업 범위를 사용자와 합의합니다.
## FSD 모드 시작
**작업 요청**: [사용자 요청 요약]
다음 사항을 확인합니다:
1. 수정 대상 범위 (파일/디렉토리)
2. 수정하면 안 되는 영역
3. 테스트 요구사항
4. 추가 제약사항
AskUserQuestion:
FSD 모드를 시작합니다.
작업: [요청 요약]
다음을 확인해주세요:
1. 수정 범위가 맞나요? (예: src/ 디렉토리)
2. 수정 금지 영역이 있나요?
3. 추가 요구사항이 있나요?
승인하시면 계획 단계로 진행합니다.
사용자 응답을 반영하여 범위를 확정합니다.
### 범위 확정
- **수정 대상**: [확정된 범위]
- **제외 영역**: [수정 금지 영역]
- **추가 요구사항**: [사용자 추가 요청]
Step 2: 계획 (Planning)
task-planner-agent에게 위임하여 태스크를 분해합니다. (jin-orchestrator Step 1과 동일)
위임 프롬프트 템플릿:
다음 작업을 원자적 태스크로 분해하세요:
## 작업 요청
[사용자 요청 전문]
## 범위 제약
- 수정 대상: [Step 1에서 확정된 범위]
- 제외 영역: [수정 금지 영역]
## 추천 에이전트 (Step 0 결과)
- 실행 에이전트: [Step 0에서 확정된 에이전트]
- 추가 스킬: [자동 적용된 스킬]
태스크별 에이전트 배정 시 위 추천을 기본값으로 사용하세요.
태스크 분해 보고서 형식으로 출력하세요.
계획 결과를 사용자에게 보여주고 승인을 요청합니다.
AskUserQuestion:
태스크 계획이 완료되었습니다:
| ID | 태스크 | 대상 파일 | 에이전트 | 복잡도 |
|----|--------|-----------|----------|--------|
| T1 | [설명] | [파일] | swe-agent | LOW |
| T2 | [설명] | [파일] | swe-agent-high | HIGH |
실행 순서: T1 → T2
이 계획대로 실행할까요?
- 승인: "yes" 또는 "진행"
- 수정: 변경할 내용을 알려주세요
- 거부: "취소"
사용자가 수정을 요청하면 계획을 조정 후 다시 승인 요청합니다.
### 계획 승인됨
- **총 태스크**: N개
- **실행 순서**: [확정된 순서]
- **사용자 수정**: [있으면 기록]
Step 2.5: 요구사항 인터뷰 (Requirements Interview)
jin-interview-agent에게 위임하여, Step 2에서 도출된 태스크 계획을 기반으로 상세 요구사항을 확보합니다.
수행 작업:
- 계획된 태스크 목록과 범위 정보를 jin-interview-agent에게 전달
- 각 태스크의 구현에 필요한 구체적 요구사항 질문 (예: API 설계, 데이터 모델, 에러 처리 방식 등)
- 인터뷰 결과를 구조화된 스펙 문서로 정리
- 인터뷰 결과를 Step 3 실행 시 각 태스크의 컨텍스트로 전달
위임 프롬프트 템플릿:
다음 계획을 기반으로 구현에 필요한 상세 요구사항을 인터뷰하세요:
## 태스크 계획
[Step 2에서 확정된 태스크 목록]
## 범위 정보
- 수정 대상: [Step 1에서 확정된 범위]
- 제외 영역: [수정 금지 영역]
## 추천 에이전트 (Step 0 결과)
- 실행 에이전트: [Step 0에서 확정된 에이전트]
- 추가 스킬: [자동 적용된 스킬]
각 태스크에 대해 구현 전 확인이 필요한 사항을 질문하세요.
인터뷰 결과를 태스크별 스펙 문서로 정리하세요.
인터뷰 결과를 사용자에게 보여주고 승인을 요청합니다.
AskUserQuestion:
요구사항 인터뷰 결과:
## 태스크별 상세 요구사항
| ID | 태스크 | 확인된 요구사항 |
|----|--------|----------------|
| T1 | [설명] | [인터뷰에서 확보된 요구사항 요약] |
| T2 | [설명] | [인터뷰에서 확보된 요구사항 요약] |
## 도출된 추가 고려사항
- [인터뷰 과정에서 발견된 추가 사항]
이 요구사항으로 실행 단계를 진행할까요?
- 승인: "yes" 또는 "진행"
- 보완: 추가로 확인할 사항을 알려주세요
- 건너뛰기: "skip" (인터뷰 없이 실행 진행)
사용자가 보완을 요청하면 추가 인터뷰를 진행합니다.
### 인터뷰 완료
- **인터뷰 결과**: 태스크별 상세 요구사항 확보
- **추가 고려사항**: [도출된 사항]
- **사용자 승인**: 획득
Step 3: 실행 (Execution)
계획된 태스크를 실행합니다. (jin-orchestrator Step 2와 동일)
각 태스크의 실행 결과를 사용자에게 보고하고 다음 태스크 진행을 승인받습니다.
실행 후 AskUserQuestion:
태스크 실행 결과:
| ID | 태스크 | 상태 | 변경 파일 |
|----|--------|------|-----------|
| T1 | [설명] | completed | `file1.py` |
| T2 | [설명] | completed | `file2.py`, `file3.py` |
변경 요약:
- T1: [변경 내용 요약]
- T2: [변경 내용 요약]
검증 단계로 진행할까요?
- 승인: "yes" 또는 "진행"
- 재실행: 재실행할 태스크를 지정해주세요
- 거부: "취소"
### 실행 완료
- **완료 태스크**: N / M개
- **변경 파일**: K개
- **사용자 승인**: 획득
Step 4: 검증 (Verification)
swe-verifier에게 독립 검증을 위임합니다. (jin-orchestrator Step 3과 동일)
검증 결과를 사용자에게 보고합니다.
AskUserQuestion:
검증 결과:
- 판정: PASS / FAIL
- 재현 검증: PASS / FAIL
- 엣지케이스: N개 PASS / M개 FAIL
- 회귀: clean / N개 이슈
[PASS인 경우]
작업을 완료할까요?
[FAIL인 경우]
실패 원인: [상세]
수정 루프를 실행할까요?
- 승인: "yes" 또는 "수정"
- 거부: "취소"
### 검증 결과
- **판정**: PASS / FAIL
- **사용자 승인**: 획득
Step 5: 수정 (Fix) — 필요 시
검증 FAIL 시 수정 태스크를 생성하고 사용자 승인 후 재실행합니다.
AskUserQuestion:
수정 계획 (반복 N/3):
실패 원인: [verifier 보고서에서 추출]
수정 태스크:
| ID | 수정 내용 | 에이전트 |
|----|-----------|----------|
| F1 | [수정 설명] | swe-agent |
이 수정을 실행할까요?
- 승인: "yes" 또는 "진행"
- 수정: 변경할 내용을 알려주세요
- 중단: "취소" (수동 수정으로 전환)
수정 후 Step 4 (검증)로 복귀합니다. 최대 3회 반복.
### 수정 루프 (N/3)
- **실패 원인**: [요약]
- **수정 태스크**: N개
- **사용자 승인**: 획득
최종 보고서:
## FSD Report
### 작업 요약
- **요청**: [사용자 요청 요약]
- **모드**: Full Self-Driving (사용자 승인 게이트)
- **태스크**: N개
- **검증**: PASS
- **수정 반복**: N회
### 승인 이력
| 단계 | 승인 | 사용자 수정 |
|------|------|-------------|
| 추천 | 승인 | [있으면 기록] |
| 범위 정의 | 승인 | [있으면 기록] |
| 계획 | 승인 | [있으면 기록] |
| 요구사항 인터뷰 | 승인 | [있으면 기록] |
| 실행 | 승인 | [있으면 기록] |
| 검증 | 승인 | - |
### 실행 결과
| ID | 태스크 | 에이전트 | 상태 |
|----|--------|----------|------|
| T1 | [설명] | swe-agent | completed |
| T2 | [설명] | swe-agent-high | completed |
### 검증 결과
- **독립 검증**: PASS
- **재현 테스트**: PASS
- **엣지케이스**: N개 PASS
- **회귀**: clean
### 변경 파일 목록
- `path/to/file1.py`
- `path/to/file2.py`
jin-orchestrator와의 차이점
| 항목 | jin-orchestrator | jin-fsd |
|---|
| 실행 방식 | 자동 (사용자 개입 없음) | 매 단계 사용자 승인 |
| 범위 정의 | 자동 분석 | 사용자와 합의 |
| 계획 수정 | 불가 | 사용자가 계획 수정 가능 |
| 실행 중 개입 | 불가 | 태스크별 승인/재실행 가능 |
| 적합한 상황 | 명확한 작업, 신뢰도 높은 환경 | 중요한 변경, 첫 사용, 학습 목적 |
예외사항
다음은 문제가 아닙니다:
- 단순 작업: 태스크가 1개인 경우에도 승인 게이트는 유지 (안전 우선)
- 사용자 거부: 어느 단계에서든 사용자가 "취소"하면 즉시 중단 + 현재까지의 보고서 생성
- 테스트가 없는 프로젝트: 회귀 검증에서 "테스트 없음"은 SKIP
- 사용자 응답 지연: 승인 대기 중에는 다른 작업을 수행하지 않음
Related Files
| File | Purpose |
|---|
skills/jin-suggest/SKILL.md | 에이전트/워크플로우 추천 엔진 (Step 0) |
skills/jin-interview/SKILL.md | 상세 요구사항 인터뷰 스킬 (Step 2.5) |
agents/jin-interview-agent.md | 요구사항 인터뷰 에이전트 |
skills/jin-orchestrator/SKILL.md | 자동 오케스트레이션 파이프라인 (승인 없음) |
agents/orchestrator-agent.md | 파이프라인 관리 오케스트레이터 |
agents/task-planner-agent.md | 태스크 분해 및 의존성 그래프 생성 |
agents/swe-agent.md | 태스크 실행 에이전트 (sonnet) |
agents/swe-agent-high.md | 복잡 태스크 실행 에이전트 (opus) |
agents/swe-verifier.md | 독립 검증 에이전트 |