﻿# PRD — 직무 위키·개념 연결 도우미

> **실습 방식**: 내 PC 안(로컬) · Claude 데스크톱 앱 **Code** 탭 · 다운로드 › **Test** 폴더 · 가상 데이터만 사용
> 이 문서를 Claude Code가 그대로 읽고 앱을 만듭니다. 고치고 싶은 곳은 직접 고쳐도 됩니다.

## 1. 한 줄 정의
개인 드라이브·메일·회의록에 흩어진 업무 문서를 **Claude Code가 읽어 위키 항목과 개념 연결(온톨로지)로 정리**하고, 직원은 앱에서 검색·열람·연결 그래프로 찾아 **담당자가 바뀌어도 바로 일할 수 있게** 돕는 직무 보조도구.

## 2. 누가 쓰나
| 역할 | 하는 일 |
|---|---|
| 직원(신입·경력·기존 담당자) | 검색창에 업무 이름 입력 → 요약·절차·주의사항·출처 문서 확인, 연결된 개념으로 이동 |
| 위키 관리자(팀 대표 1명) | 새 문서를 `docs.csv` 에 추가하고 Claude Code에게 위키 정리를 맡김, 못 찾은 검색어 확인 |

## 3. 오늘 만들 기능 (필수)
- [ ] **위키 검색·열람**: 검색창 + 항목 화면(세 줄 요약·절차 단계 카드·주의사항·출처 문서·연결 개념 버튼)
- [ ] **개념 연결 그래프**: 개념을 점, 관계를 선으로 그리고 점에 마우스를 올리면 이어진 것만 강조, 누르면 그 항목 열기
- [ ] **활용 현황**: 많이 찾은 검색어 막대, 못 찾은 검색어 목록, 주간 검색 수 선 그래프, 검색 성공률 막대, 문서 유형 도넛
- [ ] **Claude Code 위키 정리**: `docs.csv` 를 읽고 `wiki.json`(항목 + 개념 연결) 작성 → 앱이 읽어 표시
- [ ] **항목 내보내기**: 보고 있는 항목을 텍스트(md)로 저장

## 4. 화면 구성
1. **상단**: 앱 이름 · [위키 검색·열람 / 개념 연결 · 활용 현황] 탭 · 문서 수 → 항목 수 표시
2. **열람 탭**: 왼쪽(많이 찾은 검색어 · 못 찾은 검색어 · Claude Code 제안) + 오른쪽(검색창 → 항목 본문)
3. **연결 탭**: 개념 연결 그래프(왼쪽 큰 카드) + 항목·개념·연결 수, 검색 성공률, 주간 검색 수, 문서 유형(오른쪽)
4. 그래프·막대에 **마우스를 올리면 수치·관계가 말풍선으로** 보임

## 5. 데이터 — 파일과 항목 (모두 가상 데이터)
| 파일 | 항목 |
|---|---|
| `data/docs.csv` | 문서ID, 제목, 부서, 유형(매뉴얼/메일/규정/회의록/보고서), 작성자, 작성일, 본문 |
| `data/terms.csv` | 용어, 분류(업무/시스템/규정/설비), 뜻, 주관부서 |
| `data/search_log.csv` | 검색일시, 부서, 검색어, 찾음(Y/N) |
| `wiki.json` (Claude Code가 만듦) | `items`: 제목·분류·요약·절차·주의사항·출처 문서ID·연결 개념 / `links`: 출발 개념·관계·도착 개념 |

- 저장 위치: 폴더 안 파일 + 브라우저 저장공간(localStorage). **외부 서버·데이터베이스를 쓰지 않습니다.**

## 6. AI 일은 Claude Code가 합니다
앱 안에서 AI를 부르지 않습니다(사내 기준: 별도 API 키 없음). 대신:
1. Claude Code가 `docs.csv` 24건을 읽어 같은 주제의 문서를 묶고(예: 출장비 = 매뉴얼+공지 메일+규정+회의록) **위키 항목**을 씁니다.
2. `terms.csv` 의 용어를 개념으로 삼아 «출장 품의 → 경비 정산: 먼저 할 일» 같은 **개념 연결**을 만듭니다.
3. 결과를 `wiki.json` 으로 저장 → 앱이 읽어 검색·그래프로 보여 줍니다. 새 문서가 생기면 같은 요청을 다시 합니다.
4. 모든 항목에는 **출처 문서ID**를 붙여, 원문을 직접 확인할 수 있게 합니다(AI 요약을 그대로 믿지 않기).

## 7. 기술 원칙 (로컬 실행)
- 폴더 하나: `Test/job-wiki/` 안에 `index.html`, `style.css`, `app.js`, `wiki.json`, `data/`
- 순수 HTML·CSS·JavaScript. 외부 인터넷 주소(CDN·글꼴)를 불러오지 않음 — 그래프는 직접 그림(SVG)
- 실행: `python -m http.server 8765` → 브라우저에서 `http://localhost:8765`
- 결과물은 폴더째 zip으로 묶어 가져감. 인터넷에 올리지(배포하지) 않음

## 8. 원래 요청에서 조정한 부분
| 원래 요청 | 오늘은 이렇게 | 이유 |
|---|---|---|
| 자료 업로드·분석·DB 축적 | 가상 문서 24건(`docs.csv`)을 Claude Code가 읽어 `wiki.json` 으로 정리 | 앱 안 AI 호출엔 API 키가 필요하고, 실제 사내 문서는 쓸 수 없음 |
| 자료별 접근 권한 제한 | 제외(다음 단계) | 로그인·권한은 서버가 필요 — 로컬 실습 범위 밖 |
| 공유·다운로드 | 항목을 md 파일로 내보내기 | 외부 배포 금지 — 파일로 주고받기 |
| 회의 녹음(STT)·화자분석·어휘 교정 | 제외 — 텍스트 회의록 5건으로 대신 | 녹음·음성 인식은 오늘 시간과 사내 기준 밖 |
| 법령 API 연동, MCP·에이전트 | 제외(사내 IT 검토 후) | 외부 서비스 연결 금지 |

## 9. 완료 기준 (테스트)
- [ ] Claude Code가 만든 `wiki.json` 에 위키 항목이 **15개 이상**, 모든 항목에 출처 문서ID가 1개 이상 있다
- [ ] 검색창에 «출장»을 치면 «출장비 정산» 항목이 나오고, 출처 문서에 **D001·D002·D003** 이 보인다
- [ ] 개념 그래프에서 «경비 정산» 점에 마우스를 올리면 이어진 개념(출장 품의·법인카드·회계팀 등)만 진하게 보인다
- [ ] 활용 현황에 검색 **150회**, 1위 검색어 «출장비 정산» **26회**, 검색 성공률 **92.7%**(못 찾음 11회)가 보인다
- [ ] 폴더를 zip으로 묶어 다른 폴더에 풀어도 똑같이 실행된다

## 10. 다음 단계 (집에서 더 키울 것)
- 새 문서를 폴더에 넣으면 위키를 다시 정리하는 요청문을 버튼 하나로
- 자료별 접근 권한(부서·직급), 회의 녹음 받아쓰기 → 위키 반영
- 법령 정보·사내 시스템(MCP·에이전트) 연동은 사내 IT 검토 후

## 11. 웹앱·서버 버전 (교육 후, 사내 기준 확인 뒤)

로컬판이 완성된 뒤, 전 직원이 같은 위키를 검색하고 자료별로 볼 수 있는 사람을 나누는 웹앱으로 옮길 때의 설계입니다. **실제 사내 문서는 사내 IT 승인 전에는 넣지 않습니다.**

| 구분 | 로컬판 | 웹앱판 |
|---|---|---|
| 입력 | 관리자가 docs.csv 에 추가 | 부서별 관리자가 문서를 직접 올림 |
| 저장 | 폴더 안 파일 + 브라우저 저장공간 | Supabase 표 4개(업무 문서·위키 항목·개념 연결·검색 기록) |
| 화면 주소 | localhost (내 PC) | Vercel 주소 (모두 같은 주소) |
| 권한 | 없음 | 항목마다 볼 수 있는 부서·직급 지정 |

- 로그인: Supabase 이메일 로그인. 직원마다 부서·직급, 관리자는 «관리자» 역할 표시
- 잠금 설정: 로그인한 사람만 보기, 공개 범위 밖 항목·원문은 검색에도 안 나오게
- 위키 정리는 계속 Claude Code가 하고, 모든 항목에 출처 문서ID 유지
- 검색 기록은 로그인 없이 모이지 않게, 이름 대신 부서만 남김
- 회의 녹음·법령 정보·사내 시스템 연결은 IT 검토 뒤 다음 단계로
- 가상 데이터(data 폴더 CSV·wiki.json)로 먼저 채워 시험한 뒤 실제 사용은 IT 확인 후

### 웹앱판 완료 기준
- [ ] 위키 항목 **15개 이상**이 표에 들어가 있고, 모든 항목에 출처 문서ID가 1개 이상 있다
- [ ] 다른 PC(또는 휴대폰)에서 «출장»을 검색하면 «출장비 정산» 항목과 출처 **D001·D002·D003** 이 보인다
- [ ] 공개 범위를 «회계팀»으로 정한 항목은 다른 부서 계정으로 검색해도 나오지 않는다
- [ ] 활용 현황에 가상 검색 **150회**, 성공률 **92.7%** 가 보이고, 새로 검색하면 151회로 늘어난다
