docs: 설계서 v4.1 + STATUS.md 업데이트 — Wiki.js 연동 반영, Debate Room 🚧
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
> AI 에이전트는 **세션 시작 시** 이 문서를 읽어 전체 맥락을 파악합니다.
|
> AI 에이전트는 **세션 시작 시** 이 문서를 읽어 전체 맥락을 파악합니다.
|
||||||
> **세션 종료 시** 변경사항을 이 문서에 반영합니다.
|
> **세션 종료 시** 변경사항을 이 문서에 반영합니다.
|
||||||
> Last updated: 2026-03-18
|
> Last updated: 2026-03-20
|
||||||
|
|
||||||
## 시스템 개요
|
## 시스템 개요
|
||||||
|
|
||||||
@@ -50,6 +50,8 @@ Discord 메시지
|
|||||||
| NC 핸들러 | `handlers/nc_handler.py` | 자연어→NC 도구 라우팅 (Embed 응답) | ✅ |
|
| NC 핸들러 | `handlers/nc_handler.py` | 자연어→NC 도구 라우팅 (Embed 응답) | ✅ |
|
||||||
| AI Foreman | `core/foreman.py` | 목표 분해 + 상담 + Vikunja 일괄 등록 (/goal) | ✅ |
|
| AI Foreman | `core/foreman.py` | 목표 분해 + 상담 + Vikunja 일괄 등록 (/goal) | ✅ |
|
||||||
| 통합 분류 라우팅 | `api/discord_bot.py` | unified prompt→JSON→모드별 핸들러 라우팅 | ✅ |
|
| 통합 분류 라우팅 | `api/discord_bot.py` | unified prompt→JSON→모드별 핸들러 라우팅 | ✅ |
|
||||||
|
| Wiki.js 클라이언트 | `tools/wiki_client.py` | GraphQL API — 페이지 CRUD + 대시보드 | ✅ |
|
||||||
|
| AI Debate Room | `handlers/debate_handler.py` | 파일 기반 자동 토론 + Flash 합의 판정 + Wiki.js 동기화 | 🚧 |
|
||||||
| CLI Bridge | - | Gemini CLI 영속 프로세스 (PTY 미지원으로 보류) | ⏸️ |
|
| CLI Bridge | - | Gemini CLI 영속 프로세스 (PTY 미지원으로 보류) | ⏸️ |
|
||||||
|
|
||||||
## 모듈 상태
|
## 모듈 상태
|
||||||
@@ -66,9 +68,12 @@ Discord 메시지
|
|||||||
| NC 4모듈 | `tools/nc_*.py` | ✅ | Files/Calendar/Mail/Contacts |
|
| NC 4모듈 | `tools/nc_*.py` | ✅ | Files/Calendar/Mail/Contacts |
|
||||||
| AI Foreman | `core/foreman.py` | ✅ | 목표 분해 + 상담 + Vikunja 등록 |
|
| AI Foreman | `core/foreman.py` | ✅ | 목표 분해 + 상담 + Vikunja 등록 |
|
||||||
| 에이전트 워크플로우 | `.agent/` | ✅ | STATUS.md + 수칙 업데이트 |
|
| 에이전트 워크플로우 | `.agent/` | ✅ | STATUS.md + 수칙 업데이트 |
|
||||||
|
| Wiki.js | `tools/wiki_client.py` | ✅ | GraphQL CRUD + 대시보드 |
|
||||||
|
| AI Debate Room | `handlers/debate_handler.py` | 🚧 | 파일 기반 자동 토론 + Wiki.js 동기화 |
|
||||||
|
|
||||||
## 최근 마일스톤
|
## 최근 마일스톤
|
||||||
|
|
||||||
|
- **2026-03-20**: AI Debate Room v2 — 파일 기반 자동 토론 + Flash 합의 판정 + Wiki.js 동기화
|
||||||
- **2026-03-18**: Nextcloud 4모듈 + NC핸들러 + AI Foreman v0.1 + unified 분류→라우팅 구현
|
- **2026-03-18**: Nextcloud 4모듈 + NC핸들러 + AI Foreman v0.1 + unified 분류→라우팅 구현
|
||||||
- **2026-03-17**: 커뮤니티 트렌드 스크래퍼 구현 (DCInside 인기글 + Gemini Skill)
|
- **2026-03-17**: 커뮤니티 트렌드 스크래퍼 구현 (DCInside 인기글 + Gemini Skill)
|
||||||
- **2026-03-16**: 에이전트 수칙 업데이트 + STATUS.md 도입 + .agents 통합
|
- **2026-03-16**: 에이전트 수칙 업데이트 + STATUS.md 도입 + .agents 통합
|
||||||
@@ -80,5 +85,5 @@ Discord 메시지
|
|||||||
## 현재 미해결
|
## 현재 미해결
|
||||||
|
|
||||||
- **핫딜 통합 수집기** (#393) — 뽐뿌/퀘이사존/딜봄/클리앙 핫딜 통합 크롤링 + 트렌드 분석
|
- **핫딜 통합 수집기** (#393) — 뽐뿌/퀘이사존/딜봄/클리앙 핫딜 통합 크롤링 + 트렌드 분석
|
||||||
- **AI 회의실 (Debate Room)** (#387) — Gemini + Claude CLI 래퍼로 3자 토론 세션
|
- **AI Debate Room** (#387) — 파일 기반 자동 토론 MVP 테스트 중 (합의 판정, response.md 규정 준수 검증 필요)
|
||||||
- **CLI Bridge PoC** (#203) — Windows PTY 미지원으로 보류. pywinpty 또는 Docker 환경 필요
|
- **CLI Bridge PoC** (#203) — Windows PTY 미지원으로 보류. pywinpty 또는 Docker 환경 필요
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# AI Debate Room — 설계서 v4
|
# AI Debate Room — 설계서 v4.1
|
||||||
|
|
||||||
> 확정 구조: 파일 기반 토론 + Wiki 동기화
|
> 확정 구조: 파일 기반 자동 토론 + Wiki.js 실시간 동기화
|
||||||
|
|
||||||
## 아키텍처
|
## 아키텍처
|
||||||
|
|
||||||
@@ -43,20 +43,23 @@ debate_gemini/ debate_opus/
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
S[!debate-start 주제] --> M1[사회자: 첫 발언자 선택]
|
S["!debate-start 주제"] --> M1["사회자: 첫 발언자 선택"]
|
||||||
M1 --> W1[input.md 작성 + wiki/ 동기화]
|
M1 --> W1["input.md 작성 + wiki/ 동기화"]
|
||||||
W1 --> D1[Discord 시그널 전송]
|
W1 --> D1["Discord 시그널 전송"]
|
||||||
D1 --> AG1[AG 발언: response.md 작성]
|
D1 --> AG1["AG 발언: response.md 작성"]
|
||||||
AG1 --> M2[사회자: response.md 읽기]
|
AG1 --> M2["사회자: response.md 읽기"]
|
||||||
M2 --> WIKI[Wiki.js 업데이트]
|
M2 --> LOG["Round Log append (로컬 + Wiki.js)"]
|
||||||
WIKI --> CHECK{합의 판정}
|
LOG --> MERGE["Flash: Working Document 통합 편집"]
|
||||||
CHECK -->|대립 중| W2[상대 input.md 작성 + wiki/ 동기화]
|
MERGE --> WIKI["Wiki.js 업로드 (WD + Round Log)"]
|
||||||
W2 --> D2[Discord 시그널]
|
WIKI --> SYNC["양쪽 wiki/ 폴더 동기화"]
|
||||||
D2 --> AG2[상대 AG 발언]
|
SYNC --> CHECK{"합의 판정 (Flash)"}
|
||||||
|
CHECK -->|대립 중| W2["상대 input.md 작성 + wiki/ 동기화"]
|
||||||
|
W2 --> D2["Discord 시그널"]
|
||||||
|
D2 --> AG2["상대 AG 발언"]
|
||||||
AG2 --> M2
|
AG2 --> M2
|
||||||
CHECK -->|합의| DONE[Wiki 최종 기록 + 사용자 검토 요청]
|
CHECK -->|합의| DONE["Wiki 최종 기록 + 사용자 검토 요청"]
|
||||||
CHECK -->|펜딩| ASK[사용자에게 질문]
|
CHECK -->|펜딩| ASK["사용자에게 질문"]
|
||||||
ASK --> USER[사용자 응답]
|
ASK --> USER["사용자 응답"]
|
||||||
USER --> W2
|
USER --> W2
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -89,15 +92,14 @@ flowchart TD
|
|||||||
## Wiki.js 구조
|
## Wiki.js 구조
|
||||||
|
|
||||||
```
|
```
|
||||||
/Debates/{주제}/
|
/debates/{topic-slug}/
|
||||||
Agenda ← 토론 의제 + 범위
|
working-document ← Flash가 통합 편집한 산출물 (라운드마다 업데이트)
|
||||||
Working-Document ← 진행 중 합의 사항 (라이브)
|
round-log ← 대화 전문 (append)
|
||||||
Round-Log ← 라운드별 요약 기록
|
conclusion ← 최종 합의 (종료 후)
|
||||||
Conclusion ← 최종 합의 (종료 후)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- 사회자만 Wiki 쓰기 권한
|
- 사회자만 Wiki 쓰기 — `WikiClient.upsert_page()` 사용
|
||||||
- 매 라운드 후 Working-Document 업데이트
|
- 매 라운드 후 Working Document + Round Log 자동 업로드
|
||||||
- AG는 로컬 `wiki/` 폴더에서 읽기만
|
- AG는 로컬 `wiki/` 폴더에서 읽기만
|
||||||
|
|
||||||
## Discord 채널 역할
|
## Discord 채널 역할
|
||||||
@@ -122,16 +124,17 @@ Discord 메시지는 **시그널 용도**만. 전문은 모두 로컬 파일로
|
|||||||
|
|
||||||
| 파일 | 역할 |
|
| 파일 | 역할 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| `handlers/debate_handler.py` | 세션 관리, 파일 읽기/쓰기, 턴 관리 |
|
| `handlers/debate_handler.py` | 세션 관리, 파일 I/O, 자동 루프, 합의 판정 |
|
||||||
| `prompts/debate/participant_base.md` | AG 참여자 프롬프트 (→ GEMINI.md로 복사) |
|
| `prompts/debate/participant_base.md` | AG 참여자 프롬프트 (→ GEMINI.md로 복사) |
|
||||||
| `prompts/debate/moderator.md` | 사회자 프롬프트 |
|
| `prompts/debate/moderator.md` | 사회자 프롬프트 |
|
||||||
| `api/discord_bot.py` | 커맨드 + AG 메시지 감지 |
|
| `api/discord_bot.py` | 커맨드 + AG 메시지 감지 |
|
||||||
| `tools/wiki_helper.py` | Wiki.js 연동 |
|
| `tools/wiki_client.py` | Wiki.js GraphQL API 클라이언트 |
|
||||||
|
|
||||||
## 미결 사항
|
## 미결 사항
|
||||||
|
|
||||||
1. AG가 `response.md`에 쓰라는 지시를 **확실히 따르는지** 검증 필요
|
1. ~~Wiki.js 연동~~ → ✅ 구현 완료
|
||||||
2. UTF-8 인코딩 — `debate_handler.py`에서 파일 읽기/쓰기 시 명시
|
2. ~~Working Document 통합 편집~~ → ✅ Flash merge 구현
|
||||||
3. Wiki.js 페이지 → 로컬 폴더 동기화 함수 구현 (`wiki_helper.py`)
|
3. ~~Round Log~~ → ✅ 대화 전문 append 구현
|
||||||
4. 합의 판정 Flash 프롬프트 정교화
|
4. AG가 `response.md`에 쓰라는 지시를 **확실히 따르는지** 검증 필요
|
||||||
5. 컨텍스트 창 관리 — 토론이 길어질 때 히스토리 압축 전략
|
5. 컨텍스트 창 관리 — 토론이 길어질 때 히스토리 압축 전략
|
||||||
|
6. Nextcloud 백업 연동 (나중)
|
||||||
|
|||||||
Reference in New Issue
Block a user