/design 페이지 재구축 — 외부 의존(그랑조 X) 제거 + NexAI 디자인 입혀서 임베드
의사결정
bulk_cancel_2026-05-09_pre_rebuild
내용
## 배경
기존 `/design` 라우트는 폐기된 `grandzo/external/open-design` 디렉토리에 의존하다가 ENOENT 로 죽었다. 좀비 daemon (PID 796/300/891, May 5부터 deleted inode 들고 살아있음) 도 같은 사고의 잔재.
선행 티켓:
- `OPS-0507-DESIGN-PAGE-FIX` — 가짜 DONE/DECOMPOSED 사고 (sub-ticket 0건)
- `OPS-0507-NEXAI-DESIGN-RESTORE-V2` — 22시간째 DECOMPOSED 정체
→ 본 티켓은 위 둘을 대체한다. **그랑조 디렉토리/이름/페르소나는 절대 사용하지 말 것.**
## 목표
`https://dashboard.nexai.co.kr/design` 진입 시 ENOENT 없이 NexAI 자체 디자인 페이지가 정상 렌더된다.
## 작업 단계 (친절한 안내)
### 1. 좀비 daemon cleanup
```bash
ps -ef | grep -E "open-design|esbuild" | grep -v grep
# PID 796, 300, 891 (또는 그 시점 살아있는 그랑조 경로 daemon) 확인 후
kill -TERM <PID> ; sleep 2 ; kill -KILL <PID> # 필요 시
```
- 부모 systemd unit / pm2 / supervisor 가 자동 재기동하지 않는지 함께 확인.
### 2. 외부 도구가 정말 필요한지 먼저 평가
- `/design` 탭에 임베드되던 게 무엇이었는지 `dashboard-v2/app.py:1982` 의 `design.html` 템플릿 + `/design-tool/` proxy 라우트로 역추적.
- **단순 정적 페이지로 대체 가능하면** 외부 도구 없이 NexAI HTML/CSS/JS 만으로 마무리. 외부 의존 안 만드는 게 1순위.
### 3. 외부 도구가 꼭 필요하면 git 재클론
- 클론 위치: `/home/iaas/nexai/grandzo/` **금지**.
- 권장 경로: `/home/iaas/nexai/dashboard-v2/external/<tool-name>/` 또는 `/home/iaas/nexai/external/<tool-name>/`.
- 디렉토리 이름·README·페르소나 어디에도 "그랑조" / 사람이름 봇 흔적 남기지 말 것 (R&R 식별자만 사용).
- README 에 "왜 이게 필요한지 + 어떻게 빌드하는지" 1페이지 안내 작성.
### 4. NexAI 자체 디자인 입히기
- `nexai.co.kr` 톤 + 기존 dashboard-v2 카렌/메일 페이지 디자인 시스템과 일관성.
- 다크 테크 디폴트 금지 (브랜드 룰).
- 모바일 viewport 반드시 테스트.
- 디자인 변경이므로 **`vinci` 에이전트 검수 필수** — `outputs/` 에 스크린샷 evidence 첨부.
### 5. /design 라우트에 임베드
- `dashboard-v2/app.py` 의 `/design` 라우트에서 `design.html` 템플릿 정리, ENOENT 발생 경로 모두 제거.
- proxy 가 필요하면 `/design-tool/` 라우트의 upstream URL 만 새 위치로 갱신 (포트·소켓 그랑조 잔재 제거).
- 빈 페이지 fallback 처리: 외부 도구 미기동 상태에서도 \"준비 중\" 안내 페이지가 200 으로 응답.
### 6. 검증
- `curl -sI https://dashboard.nexai.co.kr/design` → 200 OK.
- 브라우저 (Chrome) 진입 시 NexAI 디자인 렌더, DevTools Console 에러 0건.
- 좀비 daemon 재출현 없음 (1시간 후 `ps -ef | grep open-design` 비어있어야).
- ENOENT 로그 grep `/var/log/nexai/\* /tmp/open-design/\*` 0건.
## 제약 (절대 룰)
- ❌ `grandzo` 디렉토리/이름/페르소나/봇 신규 생성·복구·언급 금지
- ❌ 사람이름 봇 (그랑조 등) 페르소나 작성 금지
- ✅ R&R 식별자 (BA/BE/FE/QA/Designer/Ops 등) 만 사용
- ❌ AI-to-AI \*review\*.md / \*audit\*.md 보고서 생성 금지
- ✅ 디자인 변경은 `vinci` 검수 + `outputs/` 스크린샷 evidence (Gate 8)
## QA 게이트 (외부 reviewer 호출)
PR 시 다음 reviewer 병렬 호출:
- `compound-engineering:review:correctness-reviewer`
- `compound-engineering:review:maintainability-reviewer`
- `compound-engineering:review:testing-reviewer`
- 디자인 변경분은 `vinci` (필수)
## DoD (Definition of Done)
- [ ] 좀비 daemon (PID 796/300/891 라인) 사라짐
- [ ] `/home/iaas/nexai/grandzo/` 디렉토리 어디에도 의존 없음 (`grep -r grandzo dashboard-v2/ scripts/` 결과 0건)
- [ ] `https://dashboard.nexai.co.kr/design` 200 OK + NexAI 디자인 렌더 (스크린샷 첨부)
- [ ] 모바일 viewport 렌더 OK (스크린샷 첨부)
- [ ] vinci 검수 통과 evidence
- [ ] correctness/maintainability/testing reviewer 통과
- [ ] OPS-0507-DESIGN-PAGE-FIX, OPS-0507-NEXAI-DESIGN-RESTORE-V2 → CANCELLED 처리 (본 티켓이 대체)
핸드오프 체인
1.
2026-05-09 07:35
ceo → system
"bulk_cancel — 미완료 전체 폐기 (시스템 재구축 전 청산)"
체이닝 타임라인
| # | From → To | 작업 | 체인 | 상태 | 시작 | 완료 |
|---|---|---|---|---|---|---|
| 2007 | coordinator → DevPL | DevPL_OPS-0508-DESIGN-PAGE-REBUILD_2208109_1778191837 | 1 | failed ✅ 이후 완료 | 2026-05-07T22:10:37 | 2026-05-14T15:50:03 |
산출물
아직 산출물이 없습니다
수정
관련 로그
관련 봇 로그 없음