---
task_id: task-2148
type: plan
scope: task
created: 2026-04-24
updated: 2026-04-24
status: in-progress
---

# 계획서: task-2148

**task**: task-2148
**목표**: ci_preflight.sh 신규 생성 — 멀티 러너 CI 게이트
**승인**: 미팅 전원합의 2026-04-24
**근거**: `/home/jay/workspace/memory/meetings/2026-04-24-dispatch-quality-automation.md` (Cycle 2 비슈누/엔키 의견)

---

## 목표

프로젝트 루트에서 tech stack을 자동 감지하고, 감지된 모든 테스트 러너(pytest/tsc/vitest/jest)를 순차 실행하여 전체 CI 상태를 확인하는 `ci_preflight.sh` 스크립트를 생성한다.

## 범위

### 포함
- tech stack 자동 감지 (4종: pytest, tsc, vitest, jest)
- 러너 순차 실행 + 타임아웃 (120초/러너)
- --affected-only 모드 (git diff 기반 부분 테스트)
- 표준화된 출력 포맷 `[CI-PREFLIGHT]`
- exit code 0/1 반환
- 단위 테스트 3건+

### 제외 (다음 페이즈 이후)
- finish-task.sh 통합 (task-2148, 3팀 담당)
- gate-config.json 연동

## 위임 계획

- 스크립트 구현: **카르티케야(백엔드, sonnet)** — bash 스크립트 작성
- 테스트 작성: **하누만(테스터, sonnet)** — 검증 시나리오 테스트

## 검증 기준

- 4개 tech stack 감지 동작: `bash ci_preflight.sh /test_project` → 감지된 러너 출력
- 러너당 120초 타임아웃: 타임아웃 시 `exit=TIMEOUT` 출력
- --affected-only 모드: `bash ci_preflight.sh /project --affected-only 2` → git diff 기반 테스트 파일만 실행
- exit code: 전체 PASS=0, 하나 이상 FAIL=1
