Vite+가 AI 에이전트와 사람의 빌드 절차를 하나로 묶는다

Hacker News12일 전

Vite+는 Vite 생태계의 개발 서버, 검사, 테스트, 빌드, 태스크 실행을 vp라는 하나의 CLI 아래로 모은 툴체인이다. 개발자 Jan Michálek은 3주 동안 네 개 프로젝트에 이 도구를 적용한 뒤, 새 Vite 앱을 만들 때는 AI 에이전트에게 주는 첫 프롬프트에 Vite+를 넣는다는 규칙을 세웠다. 속도보다 중요한 변화는 사람과 에이전트와 CI가 같은 명령을 바라보게 된다는 점이다.

구성은 기존 도구들의 조합이다. 개발과 빌드는 Vite, 테스트는 Vitest, 검사는 Oxlint와 Oxfmt, 라이브러리 빌드는 tsdown, 태스크 실행은 Vite Task가 맡는다. 이들의 설정을 vite.config.ts에 모을 수 있지만 package.json과 tsconfig, 프레임워크 설정까지 사라지는 것은 아니다. 모든 설정을 한 파일에 몰아넣는 그림은 배너에는 어울려도 실제 저장소에는 어울리지 않는다는 것이 저자의 판단이다.

출발점은 느린 린터가 아니었다. 명령이 ESLint, Prettier, TypeScript, 테스트 러너, package.json 스크립트로 흩어져 있었고, 에이전트는 프로젝트에 들어오자마자 어느 명령이 정답인지부터 추론해야 했다. 그 설명을 담은 마크다운 문서가 또 하나의 관리 대상이 됐다. 한 프로젝트에는 개발 의존성이 47개, 설정 파일이 7개 있었다. 로컬 환경과 CI가 생성된 파일을 서로 다르게 검사해 새벽에 원인을 쫓아야 했던 일도 있었다.

그래서 프롬프트에는 절차를 구체적으로 적는다. vp create로 React와 TypeScript 템플릿 프로젝트를 만들고, vp install, vp check, vp test, vp build를 차례로 실행하며, 검사가 실패하면 원인을 고친 뒤 다시 돌리고, 최종 보고에 Vite+ 버전과 실행한 명령, 실제 결과를 남기게 한다. 포맷터 두 개와 락파일 세 개가 뒤섞여 CI가 불안정해진 경험 뒤로는 "포맷터 하나, 락파일 하나"가 취향이 아니라 규칙이 됐다. 이 체크리스트는 저장소의 에이전트 지침 파일에도 들어간다. 일주일 뒤 새 세션의 에이전트는 이전 대화를 기억하지 못하지만 저장소는 자기 명령을 알고 있기 때문이다.

효과는 수치로도 나타난다. 모노레포 CI가 4분에서 50초로, 커밋 전 검사가 11초에서 2초 미만으로 줄었다. GitHub Actions에서 비교한 예시는 10.441초와 1.356초였다. 다만 이는 저자 프로젝트의 측정치이며 동일 조건에서 다른 툴체인과 견준 벤치마크가 아니다. 어떤 작업이 돌고 어떤 파일을 검사하는지에 따라 결과가 달라지므로 같은 시간이 자동으로 보장되지는 않는다.

기존 프로젝트에서는 vp migrate를 마이그레이션의 출발점으로 삼되 diff와 테스트, 빌드 결과를 직접 확인한다. 오래된 모노레포에서 약 4분이 걸려 ESLint, Prettier, tsup 설정을 변환했고 저자 사례에서는 문제가 생기지 않았지만, 플러그인과 사용자 정의 규칙은 손이 필요할 수 있다. vp staged와 vp hooks로 변경된 파일만 빠르게 검사하고 Git 훅을 관리하며, vp toolchain으로 프로젝트별 활성 버전을 확인한다.

주의할 지점도 분명하다. vp build는 Vite 앱 빌드이고, vp run build는 package.json 스크립트나 같은 이름의 태스크를 실행한다. Next.js 프로젝트에서 next build를 대체한다고 가정하면 안 되며 vp dev와 vp run dev도 마찬가지다. vp run에서 package.json 스크립트 캐싱은 자동이 아니어서 별도 플래그가 필요하고, vite.config.ts에 정의한 태스크는 기본으로 캐싱된다. vp env는 Node.js와 패키지 매니저 버전을 관리하고 vp upgrade는 전역 CLI를 갱신한다. 전역 설치가 부담이면 npx [email protected]처럼 일회성으로 실행할 수 있고, 기존 프로젝트에서는 선택한 패키지 매니저로 로컬 CLI를 돌리면 된다.

결국 달라지는 것은 도구의 개수가 아니라 합의된 절차의 유무다. 에이전트가 만든 코드를 사람이 검토해야 하는 책임은 그대로 남지만, 무엇을 실행해야 "완료"인지가 저장소 안에서 한 가지로 정해진다는 점에서 vp는 AI 협업 시대의 최소한의 인프라에 가깝다.