AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
기획서를 업로드하면 AI(Claude / Gemini / ChatGPT 중 선택)가 요구사항을 분석하고, 대상 저장소 (shds-demo-project-workbench)의 코드를 자동 생성하여 test 브랜치에 반영하고, 승인 시 main 브랜치로 최종 반영하는 워크벤치입니다. .env.local에 다음 값을 채워야 실제 분석/커밋이 동작합니다. 세 엔진 모두 설정할 필요는 없습니다 — 실제로 사용할 엔진의 API 키만 채워두면 됩니다. 분석 엔진(Claude/Gemini/ChatGPT)은 /settings 화면 또는 화면 우측 상단의 엔진 전환 배지를 클릭해 즉시 바꿀 수 있습니다(DEFAULT_LLM_PROVIDER는 최초 기본값만 지정). 테스트뷰어에 표시할 목업 Agent URL도 /settings에서 설정합니다. http://localhost:3000 에서 기획서를 업로드하면:查看完整 README ↗
기획서를 업로드하면 AI(Claude / Gemini / ChatGPT 중 선택)가 요구사항을 분석하고, 대상 저장소
(shds-demo-project-workbench)의
코드를 자동 생성하여 test 브랜치에 반영하고, 승인 시 main 브랜치로 최종 반영하는
워크벤치입니다.
cp .env.local.example .env.local
.env.local에 다음 값을 채워야 실제 분석/커밋이 동작합니다.
| 변수 | 설명 |
|---|---|
ANTHROPIC_API_KEY | Claude 분석 엔진용 API 키 |
GEMINI_API_KEY | Gemini 분석 엔진용 API 키 |
OPENAI_API_KEY | ChatGPT 분석 엔진용 API 키 |
GITHUB_TOKEN | GITHUB_OWNER/GITHUB_REPO에 대한 쓰기 권한이 있는 Personal Access Token |
GITHUB_OWNER / GITHUB_REPO | 기본값은 moonctp24 / shds-demo-project-workbench |
세 엔진 모두 설정할 필요는 없습니다 — 실제로 사용할 엔진의 API 키만 채워두면 됩니다.
분석 엔진(Claude/Gemini/ChatGPT)은 /settings 화면 또는 화면 우측 상단의 엔진 전환
배지를 클릭해 즉시 바꿀 수 있습니다(DEFAULT_LLM_PROVIDER는 최초 기본값만 지정). 테스트뷰어에
표시할 목업 Agent URL도 /settings에서 설정합니다.
npm install
npm run dev
http://localhost:3000 에서 기획서를 업로드하면:
test 브랜치에 커밋됩니다.main 브랜치를 test 브랜치의 현재 상태로 갱신합니다
(test 브랜치는 삭제되지 않고 계속 유지됩니다).QA 모듈은 실제로 npm audit/SonarQube를 실행하지 않습니다 — 대신 그 도구들의 규칙을
LLM이 정밀하게 직접 적용하도록 지시하며, 생성된 코드에 대한 최종 판정은 항상 우리 쪽
결정론적 SAST가 겹쳐서 재확인합니다. 다만 백엔드(demo-back)가 변경된 경우에 한해
mvn compile은 실제로 시도합니다(src/lib/qa/mavenCompileCheck.ts) — 병합된 소스를
임시 디렉터리에 써서 컴파일하고, 실패하면 SAST 항목과 동일하게 QA 자동 재수정 루프에
피드백됩니다. 단 이 서버(Vercel Hobby 포함)에 Maven이 설치되어 있지 않을 수 있으므로,
mvn을 찾지 못하거나 제한 시간(90초) 내에 끝나지 않으면 차단하지 않고 통과 처리하며
건너뛴 사실만 detail에 남깁니다 — 즉 로컬처럼 Maven이 있는 환경에서만 추가 신호를 주는
best-effort 검증이며, 없는 환경에서는 항상 안전하게 no-op으로 저하됩니다. 감사 결과
(JSON)는 Agent Workbench 내부에만 보관되며 Step4 대시보드에서 바로 렌더링됩니다(대상
저장소에는 커밋되지 않습니다).
src/lib/llm — Claude/Gemini/ChatGPT 공통 인터페이스 및 구조화 출력 스키마 (analyzeAndGenerate +
독립 runQaAudit)src/lib/github/client.ts — Git Data API 기반 브랜치 생성/커밋/승격src/lib/parsers — .txt/.pdf/.xlsx/.pptx 기획서 파서src/lib/sast — 결정론적 정규식 기반 SAST (최종 커밋 게이트)src/lib/store/settingsStore.ts — 설정 저장소(브라우저 쿠키 기반, 서버 파일시스템 불필요)이 앱은 서버리스 배포를 염두에 두고 상태를 저장하지 않도록(stateless) 만들어졌습니다:
test 브랜치가 main보다 몇 커밋
앞서 있는지를 GitHub에서 직접 조회해 계산합니다.즉, 로컬 디스크에 아무것도 쓰지 않으므로 Vercel Hobby(무료) 플랜에 그대로 배포할 수 있습니다. 다만 배포 전 아래를 확인하세요:
.env.local의 값들을
그대로 등록합니다(.env.local 자체는 git에 커밋되지 않으므로 반드시 수동으로 등록해야
합니다)./api/upload는 GitHub 조회 + LLM 분석 호출 + 독립 QA 감사 호출까지
순차적으로 실행되어 몇십 초가 걸릴 수 있습니다. export const maxDuration = 60을
설정해뒀지만, Hobby 플랜의 서버리스 함수 최대 실행 시간은 Vercel 정책에 따라 달라질 수
있으니 Vercel 공식 문서에서
현재 한도를 확인하세요. 초과하면 큰 기획서/느린 모델에서 타임아웃이 날 수 있습니다.src/app/api/**/route.ts에서만 import하고
있습니다 — 별도 조치가 필요 없습니다.