에이전트 협업 인프라 구축 — .claude/ 확장
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 29s
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 29s
- PLAN.md · PROGRESS.md 도입: 병렬 에이전트 조정 지점 - CLAUDE.md 린화 + 에이전트 작업 흐름 섹션 (상세는 Output/guides/로 분리) - Output/guides/cimery-dev-guide.md, obsidian-cli.md 신설 - Agents: cimery-architect-researcher, adr-drafter - Commands: /plan, /progress, /adr, /research, /cimery-start - Skill: plan-commit - Hooks: raw/ 쓰기 차단, SessionStart PLAN/PROGRESS 주입, wiki/ADR 변경 시 log 갱신 알림, auto-approve (deny 훅 우선 유지) - .gitignore: .claude/ 공유 자산 포함, 로컬 상태·바이너리만 유지 제외 Closes #3 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
113
CLAUDE.md
113
CLAUDE.md
@@ -3,82 +3,63 @@
|
||||
## 나는 누구인가
|
||||
- **이름:** 김민성 (kimminsung)
|
||||
- **하는 일:** BIM SW 시니어 개발자. 25년간 3D 뷰어·에디터·모델링툴, DWG·CAD 엔진 개발.
|
||||
- **핵심 가치:** 기능은 좁히되 **품질·아키텍처는 타협 없음.** MVP식이라도 스파게티 금지. 차근차근.
|
||||
- **핵심 가치:** 기능은 좁히되 **품질·아키텍처는 타협 없음.** MVP식이라도 스파게티 금지.
|
||||
|
||||
## 나의 역할들
|
||||
## 나의 역할
|
||||
- **cimery 개발자** — Revit의 토목 버전 파라메트릭 모델링 도구 `cimery`(Civil + BIM + -ery) 설계·개발. MVP = 거더교.
|
||||
- **ParaWiki 큐레이터** — AI가 활용할 파라메트릭 모델링 지식 저장소를 Obsidian 기반으로 구축.
|
||||
|
||||
### cimery 개발자
|
||||
- **하는 일:** `cimery` — Revit의 토목 버전 파라메트릭 모델링 도구 설계·개발. (명칭: Civil + BIM + -ery)
|
||||
- **주요 관심사:** 토목 구조물(MVP: 거더교) 모델링, 선형·GIS 연동, 증분 인터랙티브 파라메트릭.
|
||||
- **기술 스택 (2026-04-14 확정):** Rust 기반. 웹(PWA) + 데스크톱(Tauri) 듀얼 타깃. 기하 커널은 OpenCascade.js(웹) / opencascade-rs(데스크톱) 이원화, `GeomKernel` trait로 추상화. 렌더 wgpu→WebGPU. 기존 C# 엔진은 알고리즘·지식만 승계. 상세: `Output/reports/ADR-001-tech-stack.md`.
|
||||
## 비전
|
||||
토목 엔지니어링 특성을 반영한 파라메트릭 모델링 도구를 시장에 공급.
|
||||
두 단계: ① ParaWiki(AI용 세컨드 브레인) → ② cimery 개발. 타겟: 토목 설계자·시공사.
|
||||
|
||||
### ParaWiki 큐레이터
|
||||
- **하는 일:** AI가 읽고 활용할 수 있는 파라메트릭 모델링 지식 저장소를 Obsidian 기반으로 구축.
|
||||
- **주요 관심사:** AI 친화적 구조, 빠른 인덱싱·링크, 잠정 설계 원칙과 연결되는 자료 우선 수집.
|
||||
## 에이전트 작업 흐름 (필독)
|
||||
작업을 **시작할 때** 항상 두 파일을 먼저 읽는다:
|
||||
- **`PROGRESS.md`** — 지금까지 무엇이 끝났는지 (스냅샷 + 타임라인)
|
||||
- **`PLAN.md`** — 무엇을 해야 하는지 (우선순위별 과제 목록)
|
||||
|
||||
## 나의 비전과 목표
|
||||
- **이루고자 하는 것:** 토목 엔지니어링 특성을 반영한 파라메트릭 모델링 도구를 시장에 공급.
|
||||
- **두 단계 전략:**
|
||||
1. ParaWiki — "AI를 위한 세컨드 브레인" 지식 저장소 구축.
|
||||
2. AI와 함께 토목용 파라메트릭 모델링 도구 개발.
|
||||
- **타겟 독자/고객:** 토목 설계자, 시공사.
|
||||
작업 **중**: 착수한 PLAN 항목을 `- [~] 진행 중 (담당/에이전트명)`으로 표시.
|
||||
작업 **완료 시:** `PROGRESS.md`에 한 줄 추가 + `PLAN.md`에서 해당 항목 제거.
|
||||
**새 과제**가 생기면 `PLAN.md` 우선순위 위치에 즉시 삽입.
|
||||
|
||||
## AI에게 기대하는 것
|
||||
- **전부.** 개념 QA, 코드 초안 생성, 아키텍처 제안, 논문→구현 번역, 코드 리뷰·리팩터링.
|
||||
- ParaWiki의 자료를 근거로 답할 것.
|
||||
- 제품 스펙을 확정하기 전에 **저장소 구축**을 우선 도울 것.
|
||||
여러 에이전트가 병렬로 일할 때 이 두 파일이 유일한 조정 지점이다. 다른 문서(ADR·가이드)는 참조용, 상태는 여기에.
|
||||
|
||||
## 작업 규칙
|
||||
- **언어:** 한국어로 작성. **중요 용어는 영어 병기** (예: 선형(alignment)).
|
||||
- **톤:** 간결·명료. 장황한 설명·불필요한 예시 나열 금지.
|
||||
- **질문:** 한 번에 **2~3개 이하**, 각 질문은 한 줄.
|
||||
- **결과물 형태:** AI가 활용하기 좋은 구조가 1순위. 사람은 최상위 index 링크로 접근.
|
||||
- **잠정 설계 원칙 (수집·개발의 나침반):**
|
||||
1. 비(非)패밀리 조립 단위
|
||||
2. 증분 인터랙티브 파라메트릭(incremental)
|
||||
3. 선형·GIS 기반 좌표계
|
||||
자료 편입 시 이 원칙 중 최소 하나와 연결되는지 확인.
|
||||
- **MVP 원칙:** 기능은 좁힘 + 품질·아키텍처는 타협 없음. 철근 설계는 v2로 미룸.
|
||||
- **언어:** 한국어 + 중요 용어 영어 병기 (예: 선형(alignment)).
|
||||
- **톤:** 간결·명료. 장황 금지.
|
||||
- **질문:** 한 번에 2~3개 이하, 각 한 줄.
|
||||
- **결과물:** AI 활용 구조 1순위. 사람은 index 링크로 접근.
|
||||
- **3대 잠정 설계 원칙:** ① 비(非)패밀리 조립 단위 ② 증분 인터랙티브 파라메트릭 ③ 선형·GIS 기반 좌표계.
|
||||
- **MVP 원칙:** 기능 좁힘 + 품질 타협 없음. 철근은 v2.
|
||||
|
||||
## 권위 문서 (Source of Truth)
|
||||
상세 지침은 전부 분리 문서에 있다. 본 CLAUDE.md는 포인터만 제공.
|
||||
|
||||
| 주제 | 문서 |
|
||||
|---|---|
|
||||
| **cimery 개발 지침** (기술 스택·코드 규약·함정·UX·구현 우선순위) | `Output/guides/cimery-dev-guide.md` |
|
||||
| **아키텍처 결정(ADR)** | `Output/reports/ADR-001-tech-stack.md` · `ADR-002-feature-dsl.md` · `ADR-003-architecture-followups.md` |
|
||||
| **위키 지식 저장소** | `wiki/index.md` |
|
||||
| **Obsidian CLI 참조** | `Output/guides/obsidian-cli.md` |
|
||||
|
||||
cimery 관련 작업 시작 시 `cimery-dev-guide.md`를 먼저 읽을 것. ADR과 지침이 충돌하면 **ADR 우선.**
|
||||
|
||||
## 위키 운영 규칙 (Karpathy LLM Wiki 패턴)
|
||||
|
||||
폴더 구조:
|
||||
- `raw/` — **불변 원본.** 인풋 유형별 하위 폴더(ai-research/papers/standards/tools/notes). 이 아래 파일은 **절대 수정·삭제 금지.**
|
||||
- `wiki/` — **AI가 컴파일하는 위키 페이지.** 여기만 생성/수정 가능. `index.md`, `log.md` 포함.
|
||||
- `Output/` — **결과물** (아키텍처 문서, 코드 초안, 조사 보고서 등).
|
||||
**폴더:**
|
||||
- `raw/` — 불변 원본. 수정·삭제 금지.
|
||||
- `wiki/` — AI가 컴파일하는 위키 페이지 (`index.md`·`log.md` 포함).
|
||||
- `Output/` — 결과물 (ADR·리포트·가이드).
|
||||
|
||||
**10대 규칙:**
|
||||
1. `raw/`는 절대 수정 금지 (불변 원본).
|
||||
2. wiki 페이지 생성·삭제 시 `wiki/index.md` 필수 업데이트.
|
||||
3. 모든 오퍼레이션마다 `wiki/log.md`에 기록.
|
||||
4. 내부 참조는 **wikilink** 형식 (`[[페이지명]]`).
|
||||
5. 모든 wiki 페이지 상단에 **YAML frontmatter** (title, tags, sources, updated).
|
||||
6. 모순 발견 시 **양쪽 소스 모두 인용.**
|
||||
7. 소스 요약은 **사실만**, 해석은 개념 페이지에서.
|
||||
1. `raw/`는 절대 수정 금지.
|
||||
2. wiki 페이지 생성·삭제 시 `wiki/index.md` 업데이트.
|
||||
3. 오퍼레이션마다 `wiki/log.md` 기록.
|
||||
4. 내부 참조는 wikilink `[[페이지명]]`.
|
||||
5. wiki 페이지 상단 YAML frontmatter 필수.
|
||||
6. 모순 발견 시 양쪽 소스 모두 인용.
|
||||
7. 소스 요약은 사실만, 해석은 개념 페이지에서.
|
||||
8. 질의 시 `wiki/index.md` 먼저, `raw/`는 마지막 수단.
|
||||
9. **새 페이지보다 기존 페이지 업데이트 우선.**
|
||||
10. `index.md` 항목은 **한 줄, 120자 이내.**
|
||||
9. 새 페이지보다 기존 페이지 업데이트 우선.
|
||||
10. `index.md` 항목은 한 줄, 120자 이내.
|
||||
|
||||
각 주요 폴더의 세부 규칙은 해당 폴더의 `CLAUDE.md` 참조.
|
||||
|
||||
## Obsidian CLI 사용
|
||||
|
||||
이 프로젝트 볼트는 Obsidian 공식 CLI(1.12.4+)로 검색 가능. 파일시스템 grep보다 빠르고 Obsidian 인덱스·wikilink·백링크를 활용한다.
|
||||
|
||||
**문법:** `obsidian <command> key=value key=value` (Unix 플래그 아님)
|
||||
값에 공백이 있으면 따옴표: `query="증분 파라메트릭"`
|
||||
|
||||
**주요 명령:**
|
||||
- `obsidian search query="<질의>" path=wiki` — 파일명 목록 반환
|
||||
- `obsidian search:context query="<질의>" path=wiki` — 매칭 라인 컨텍스트 포함
|
||||
- `obsidian read file="<페이지명>"` — 파일 내용 읽기 (wikilink 이름으로 해결)
|
||||
- `obsidian backlinks file="<페이지명>"` — 백링크 조회
|
||||
- `obsidian outline file="<페이지명>"` — 헤딩 목록
|
||||
- `obsidian files folder=wiki` — wiki/ 파일 목록
|
||||
- `obsidian open file="<페이지명>"` — 앱에서 페이지 열기
|
||||
- `obsidian help` / `obsidian help <command>` — 전체·개별 도움말
|
||||
|
||||
**사용 원칙:**
|
||||
- `wiki/` 검색 시 `obsidian search:context` 우선 (Obsidian 앱이 실행 중이어야 함). 미실행·미설치 시 Grep 폴백.
|
||||
- 파일 읽기는 경로 대신 이름(`file=...`) 사용 가능 — Read 도구보다 wikilink 친화적.
|
||||
- 복잡한 질의·개념 QA는 `query` skill이 상위 레이어 (index.md → 필요 시 CLI 보조).
|
||||
각 폴더 세부 규칙은 해당 폴더의 `CLAUDE.md` 참조.
|
||||
|
||||
Reference in New Issue
Block a user