Claude Code 프로젝트 셋업 세션 로그

날짜: 2026-02-20 목적: HmEG 기반 모델링 소프트웨어 플러그인 개발 환경 구성 대상 독자: 이 프로젝트를 이어받는 개발자 / 새 세션을 시작하는 AI 에이전트


개요

이 문서는 modeler-plugin-claude-reset-p04 프로젝트의 초기 셋업 세션에서 나눈 대화와 의사결정을 기록합니다. 세션에서 결정된 내용들이 CLAUDE.md, PLAN.md, PROGRESS.md, .claude/ 하위 파일에 반영되어 있습니다.


프롬프트 히스토리 및 의사결정 기록


PROMPT 1 — 배경 조사

“Rhino 와 같은 모델링 소프트웨어에 대해 검색하고 어떤 기능들이 있는지 알려주세요.”

목적: 자체 개발 소프트웨어의 방향성 설정을 위해 업계 표준 도구를 파악

조사 결과 요약:

  • Rhino 8은 NURBS, SubD, ShrinkWrap, PushPull, Grasshopper(파라메트릭), Cycles 렌더러 탑재
  • 유사 소프트웨어: AutoCAD(정밀 도면), SOLIDWORKS(제조), Fusion 360(파라메트릭+클라우드), SketchUp(직관적), Blender(무료·오픈소스), FreeCAD(오픈소스)
  • 선택 기준: 자유형 유기적 형상 → Rhino/Blender, 정밀 엔지니어링 → SOLIDWORKS/Creo

PROMPT 2 — 자체 소프트웨어 소개 및 플러그인 개발 고려사항

“우리는 자체적으로 Rhino와 흡사하지만 소프트웨어 구조는 좀 다른 프로그램을 만들었고, 그래픽 엔진은 “HmEG” 라고 하며, 지오메트리는 “HmGeometry” v1, v2 를 만들었어요. “docxml-api” mcp 서버가 만들어진 상태이고, docs, reference, samples 에 관련 자료와 샘플, 참고 자료를 보고 생성, 편집, 수정등과 같은 플러그인을 개발하여 기능을 추가해 나간다고 했을때 이 과정에서 고려해야할 것들은 무엇일까요?”

확인된 시스템 구조:

구성요소내용
그래픽 엔진HmEG (16,967 API 멤버)
지오메트리 V1HmGeometry.dll (7,099 멤버) — 레거시
지오메트리 V2HmGeometry.V2.dll (8,200 멤버) — 신규 표준
MCP 서버docxml-api (한/영 이중 언어)
플러그인 인터페이스IPluginEditorPlugin 상속
로딩 방식PluginLoader — DLL, Plugins 폴더 자동, 다이얼로그

결정된 핵심 고려사항:

  1. IPlugin 인터페이스 계약 준수 (Name, View, RethrowException, Run)
  2. HmGeometry V1/V2 혼용 절대 금지
  3. 씬 편집 후 InvalidateSceneGraph() 호출 필수
  4. EgTMeshEditor.Commit() 후 기존 참조 무효화 주의
  5. DelegateCommand (ICommand) 패턴으로 UI 연결
  6. 신규 개발은 V2만 사용

PROMPT 3 — CLAUDE.md 작성

“위를 구현하기 위한 프로젝트를 셋업 하려고 합니다. 지금 셋업을 하지 말고 사용자가 Plugins 하나를 만들기 위한 CLAUDE.md를 작성해주세요.”

생성 파일: CLAUDE.md

포함된 내용:

  • 워크스페이스 구조 (src/, samples/, references/, .claude/)
  • 플러그인 개발 시작 전 확인 순서 (samples → manuals → MCP)
  • docxml-api MCP 서버 활용 지침
  • EditorPlugin 기본 구조 코드 템플릿
  • TriggerKey 선택 규칙표
  • 지오메트리 버전 선택 기준 (V1/V2)
  • .csproj 표준 설정 (net8.0-windows7.0 고정)
  • Originator 유형 6가지
  • AppManager 접근 패턴
  • 개발 제약 사항 6가지
  • 문서 참조 우선순위

PROMPT 4 — 에이전트/커맨드/스킬/훅 아이디어 브레인스토밍

“그러면 이제 이런 일들을 할 때 필요한 에이전트, 커맨드, 스킬, Hook 들이 무엇이 있을지 고민해 보고, 아이디어들을 알려주세요.”

제안된 아이디어 목록:

종류이름용도
Slash Command/new-plugin플러그인 스캐폴딩 자동화
Slash Command/check-triggersStop 누락 탐지
Slash Command/diagram상태 머신 Mermaid 다이어그램
Slash Command/search-apidocxml-api 검색 래퍼
Slash Command/validate전체 플러그인 정적 분석
Slash Command/build빌드 + 에러 요약
HookPostToolUse(Write → .cs)dotnet format 자동 적용
HookSessionStartPLAN.md + PROGRESS.md 주입
HookPreCompact컨텍스트 압축 전 상태 스냅샷
Agentapi-explorer읽기 전용 API 탐색
Agentplugin-scaffolder표준 파일 생성 전담
MCP 아이디어build-result-api빌드 결과 구조화 JSON

우선순위 결정: check-triggers → new-plugin → Write Hook → diagram → state-machine


PROMPT 5 — CLAUDE.md 디렉토리 구조 확인

“claude.md 에 디렉토리 구조에 대한 것들이 들어 있나요?”

확인 결과: 있음 (8~32번 줄 “워크스페이스 구조” 섹션) 추가 필요 항목 식별: .claude/, tests/, docs/diagrams/, .sln 파일 → 이후 업데이트에서 반영


PROMPT 6 — PLAN.md / PROGRESS.md 관리 체계 도입

“일을 여러 에이전트들이 나눠서 할 때, 어디까지 진행되고 무슨 일을 해야 하는지에 대한 내용들을 각각 PROGRESS.md 와 PLAN.md 에서 관리하도록 합시다. 그리고 새로 시작할 때 두 파일을 읽어서 내가 무슨 일을 해야 하는지 에이전트들이 알 수 있게 합시다. 이렇게 CLAUDE.md 를 업데이트 합시다.”

생성/수정 파일:

  • PLAN.md 신규 생성 — 작업 ID(TASK-NNN), 의존관계, 에이전트 유형, 우선순위
  • PROGRESS.md 신규 생성 — 진행 중/완료/블로킹/다음 작업 추적
  • CLAUDE.md 업데이트 — 파일 맨 위에 “세션 시작 시 필수 확인 (최우선)” 섹션 추가

에이전트 작업 흐름:

세션 시작 → PLAN.md 읽기 → PROGRESS.md 읽기 → 작업 확인
         → PROGRESS.md "진행 중" 표시 → 작업 수행
         → PROGRESS.md "완료" 업데이트

PROMPT 7 — Claude Code 구조 조사 후 .claude/ 파일 실제 생성

“Claude code의 agent, command, skill 구조를 조사한 후, 그에 따라서 정확한 포맷을 지켜서 .claude 하위에 위에서 제안한 것들을 만들어 주세요.”

조사로 확인된 Claude Code 공식 포맷:

종류위치파일명구조
Skills.claude/skills/<name>/SKILL.mdYAML frontmatter + MD 본문
Agents.claude/agents/<name>/<name>.mdYAML frontmatter + MD 본문
Hooks.claude/settings.jsonJSON 내 정의이벤트 → matcher → hooks 계층

Skill frontmatter 주요 필드:

---
name: skill-name
description: Claude가 언제 사용할지 결정하는 설명
argument-hint: <arg1> [arg2]
allowed-tools: Read, Bash, Write
---

Agent frontmatter 주요 필드:

---
name: agent-name
description: Task 위임 시 선택 기준 설명
tools: Read, Grep, Glob
disallowedTools: Write, Edit
model: haiku
---

생성된 파일 목록:

.claude/
├── hooks/
│   └── session-start.sh          ← PLAN+PROGRESS → systemMessage 주입
├── skills/
│   ├── new-plugin/SKILL.md       ← /new-plugin <PluginName>
│   ├── check-triggers/SKILL.md   ← /check-triggers [플러그인명]
│   ├── diagram/SKILL.md          ← /diagram [플러그인명]
│   ├── search-api/SKILL.md       ← /search-api <키워드> [프로젝트]
│   ├── validate/SKILL.md         ← /validate [플러그인명]
│   └── build/SKILL.md            ← /build [플러그인명]
├── agents/
│   ├── api-explorer/             ← 읽기전용, haiku, MCP+Read 전담
│   └── plugin-scaffolder/        ← 파일생성, haiku, Write+Bash 전담
└── settings.json                 ← SessionStart·Write 훅 추가

PROMPT 8 — 개발 단계 순서도 반영

“개발시 설계단계 → Plugin 구현 → Command 구현 → UI 구현 (없으면 생략) 순서대로 (다이어그램 색상이 단계임) docs/diagrams/plugin_순서도.drawio 파일대로 작업을 해 나가야 함을 기억하세요.”

drawio에서 파악한 10단계 워크플로우:

단계색상번호내용
설계🔘 회색기능 흐름 정리, Draw.io 순서도 작성
설계🔘 회색플러그인 프로젝트 생성 (.csproj 복사)
Plugin 구현🟢 초록Initialize() + RegisterTrigger
Plugin 구현🟢 초록RegisterProperty 속성 등록
Plugin 구현🟢 초록콜백 함수 구현 (Start/Step/End/Stop)
Plugin 구현🟢 초록End()에서 Originator 반환
Command 구현🔵 파랑EgEditorCommand 상속 (Name/Filter/Run)
Command 구현🔵 파랑resx 언어 파일 추가
Command 구현🔵 파랑AddSubCommand / AddDefaultSubCommand
UI 구현🟡 노랑InternalCommand 상속 → ③으로 피드백

핵심 피드백 루프: ⑩ 완료 후 ③ Initialize()로 돌아가 RegisterInternalCommand(...) 추가

CLAUDE.md 업데이트: “플러그인 개발 단계 (필수 준수)” 섹션 추가 (53번째 줄)


현재 프로젝트 상태

생성/수정된 파일 전체 목록

/
├── CLAUDE.md                          ★ 수정됨 — 전체 가이드
├── PLAN.md                            ★ 신규 — 작업 계획 템플릿
├── PROGRESS.md                        ★ 신규 — 진행 상태 추적 템플릿
└── .claude/
    ├── settings.json                  ★ 수정됨 — SessionStart·Write 훅 추가
    ├── hooks/
    │   └── session-start.sh           ★ 신규
    ├── skills/
    │   ├── new-plugin/SKILL.md        ★ 신규
    │   ├── check-triggers/SKILL.md    ★ 신규
    │   ├── diagram/SKILL.md           ★ 신규
    │   ├── search-api/SKILL.md        ★ 신규
    │   ├── validate/SKILL.md          ★ 신규
    │   └── build/SKILL.md             ★ 신규
    └── agents/
        ├── api-explorer/
        │   └── api-explorer.md        ★ 신규
        └── plugin-scaffolder/
            └── plugin-scaffolder.md   ★ 신규

CLAUDE.md 최종 섹션 구조

1. 세션 시작 시 필수 확인 (최우선)      ← PLAN.md + PROGRESS.md 읽기
2. 플러그인 개발 단계 (필수 준수)        ← ①~⑩ 순서도 기반
3. 워크스페이스 구조
4. 플러그인 개발 시작 전 필수 확인 순서
5. MCP 서버 활용 (docxml-api)
6. 핵심 아키텍처 패턴
7. TriggerKey 선택 규칙
8. 지오메트리 버전 선택
9. .csproj 표준 설정
10. Originator 유형
11. AppManager 접근 패턴
12. 개발 제약 사항
13. 문서 참조 우선순위

다음 세션에서 해야 할 일

  1. PLAN.md 작성: 실제 구현할 플러그인 목표와 TASK 목록 채우기
  2. PROGRESS.md 초기화: 첫 번째 작업 항목 추가
  3. 첫 플러그인 개발 시작: /new-plugin <이름> 스킬로 스캐폴딩
  4. 단계 ①: 기능 흐름 Draw.io 순서도 작성 후 개발 착수

참고: 핵심 설계 원칙

이 세션에서 확립된 원칙들입니다.

  1. MCP 우선: API는 추측하지 않고 docxml-api MCP로 확인 후 사용
  2. 샘플 기반: 빈 파일 대신 samples/EgCirclePlugin을 참조하여 시작
  3. V2 전용: 신규 플러그인은 HmGeometry2 (V2)만 사용, V1 혼용 금지
  4. Stop 완전 커버: 모든 중간 StateKey에 Stop → Idle 전이 필수
  5. Originator 필수: End()에서 반드시 Undo/Redo 등록
  6. 단계 순서 준수: 설계 → Plugin 구현 → Command 구현 → UI 구현
  7. PROGRESS.md 즉시 업데이트: 작업 시작·완료 시 즉시 반영