Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • https://github.com/psmon/memorizer-v1/tree/dev/prompt/kr
  • ai-prd 디렉토리는  어느순간 기능개선 프롬프트 작성자체의 아이디어가 떨어져  기존프롬프트를 참고해 신규기능 프롬프트를 좀 생성해봐로 시도해 LLM이 생성한 신규기능 개발을 위한 프롬프트입니다.


클로드 코드 스킬자체를 메모리 조각으로 학습

클로드 코드 스킬을 ,  여기서 소개된 프로젝트 자체를 이용해 메모리 조각으로 학습시도

...

Code Block
themeEmacs
# Memorizer 프로젝트 Claude Code 스킬 가이드

## 개요

Memorizer 프로젝트 전용으로 개발된 Claude Code 스킬 모음입니다. 이 스킬들은 프로젝트의 고급 패턴과 기술 스택을 효율적으로 활용할 수 있도록 설계되었습니다.

## 스킬 목록

### 핵심 스킬

| 스킬명 | 위치 | 용도 |
|--------|------|------|
| **llm-api** | `.claude/skills/llm-api/` | LLM API 활용 (Ollama, OpenAI, Custom) |
| **actor-model** | `.claude/skills/actor-model/` | Akka.NET 액터 모델 구현 |
| **graph-db** | `.claude/skills/graph-db/` | Neo4j 그래프 DB 활용 |
| **project-convention** | `.claude/skills/project-convention/` | 프로젝트 컨벤션 및 구조 |
| **fullstack-ui** | `.claude/skills/fullstack-ui/` | 풀스택 UI (MVC, SSE, Markdown) |

### 확장 스킬

| 스킬명 | 위치 | 용도 |
|--------|------|------|
| **db-migration** | `.claude/skills/db-migration/` | PostgreSQL DB 마이그레이션 |
| **mcp-tools** | `.claude/skills/mcp-tools/` | MCP(Model Context Protocol) 도구 구현 |
| **embedding-service** | `.claude/skills/embedding-service/` | 텍스트 임베딩/벡터 검색 |
| **multimodal-service** | `.claude/skills/multimodal-service/` | 멀티모달(이미지+텍스트) 처리 |

## 스킬 활용 목적

### 1. 고급 패턴 구현 카테고리별 스킬화
- LLM 스트리밍 응답 처리
- 액터 모델 기반 비동기 워크플로우
- 그래프 DB 탐색 및 관계 생성
- SSE 기반 실시간 UI 업데이트

### 2. 코드 개발 일관성
- 디렉토리 구조 및 네이밍 규칙
- 서비스/컨트롤러 패턴
- DI 등록 방식
- 테스트 패턴

### 3. 토큰 절약
- 반복적인 프롬프트 대신 스킬 호출
- 필요한 컨텍스트만 로드
- 일관된 코드 생성

## 스킬별 상세 설명

### llm-api (LLM API 활용)

**언제 사용하나요?**
- ILlmService 인터페이스 활용
- 스트리밍 응답 처리
- 프롬프트 템플릿 설계
- 제목/키워드 생성

**핵심 패턴:**
```csharp
// 기본 완료
var response = await _llmService.CompleteAsync(prompt);

// 스트리밍
await foreach (var chunk in _llmService.CompleteStreamingAsync(prompt))
{
    // SSE로 전송
}
```

---

### actor-model (Akka.NET 액터 모델)

**언제 사용하나요?**
- 세션 기반 상태 관리
- 타이머 기반 자동 종료
- 메시지 기반 비동기 통신
- 복잡한 워크플로우 처리

**핵심 패턴:**
```csharp
public class MyActor : ReceiveActor, IWithTimers
{
    public ITimerScheduler Timers { get; set; } = null!;

    public MyActor()
    {
        Receive<MyRequest>(HandleRequest);
        Receive<SessionTimeout>(HandleTimeout);
    }
}
```

---

### graph-db (Neo4j 그래프 DB)

**언제 사용하나요?**
- Cypher 쿼리 작성
- 메모리 간 관계 생성
- 그래프 탐색 (경로, 허브 노드)
- 자연어 → Cypher 변환

**핵심 패턴:**
```csharp
var cypher = @"
    MATCH (m:Memory)-[:RELATES_TO]->(related:Memory)
    WHERE m.id = $id
    RETURN related
    LIMIT 10
";
var records = await _graphRepository.RunQueryAsync(cypher, new { id });
```

---

### project-convention (프로젝트 컨벤션)

**언제 사용하나요?**
- 새 기능 추가 시
- 디렉토리/파일 생성
- 네이밍 규칙 확인
- 테스트 작성

**핵심 구조:**
```
src/Memorizer/
├── Actors/          # 액터 모델
├── Controllers/     # API 컨트롤러
├── Services/        # 비즈니스 로직
├── Models/          # 도메인 모델
├── Settings/        # 설정 클래스
└── Views/           # Razor 뷰
```

---

### fullstack-ui (풀스택 UI)

**언제 사용하나요?**
- SSE 스트리밍 UI
- Markdown 렌더링
- Mermaid 다이어그램
- 반응형 테이블
- 단계별 진행 UI

**핵심 패턴:**
```javascript
const eventSource = new EventSource('/api/stream?prompt=...');
eventSource.onmessage = (event) => {
    if (event.data === '[DONE]') {
        eventSource.close();
        return;
    }
    const data = JSON.parse(event.data);
    updateUI(data.content);
};
```

---

### db-migration (DB 마이그레이션)

**언제 사용하나요?**
- 새 테이블 추가
- 컬럼 추가/수정
- 인덱스 생성
- 벡터 컬럼 추가

**핵심 패턴:**
```sql
-- Migration 0XX: Add {feature} table
CREATE TABLE IF NOT EXISTS {table_name} (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    title TEXT NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_{table_name}_{column}
    ON {table_name}({column});
```

**파일 네이밍:** `{버전번호}_{설명}.sql` (예: `020_add_feature.sql`)

---

### mcp-tools (MCP 도구 구현)

**언제 사용하나요?**
- 새 MCP 도구 추가
- Description 작성
- 인증(ApiKey/OAuth) 처리
- 그래프 검색 도구 구현

**핵심 패턴:**
```csharp
[McpServerTool]
[Description(@"도구의 목적과 사용 시나리오를 상세히 설명.
Use this when... Filtering by... Returns...")]
public async Task<string> ToolName(
    [Description("파라미터 설명")] string param,
    CancellationToken cancellationToken = default
)
{
    // 비즈니스 로직
    return FormatResult(result);
}
```

---

### embedding-service (임베딩/벡터 검색)

**언제 사용하나요?**
- 텍스트 벡터화
- 유사도 검색 구현
- 메타데이터 임베딩
- 폴백 검색 패턴

**핵심 패턴:**
```csharp
// 임베딩 생성
var embedding = await _embeddingService.Generate(text);

// 벡터 유사도 검색 (PostgreSQL)
var sql = @"
    SELECT *, 1 - (embedding <=> @embedding::vector) as similarity
    FROM memories
    WHERE 1 - (embedding <=> @embedding::vector) >= @minSimilarity
    ORDER BY embedding <=> @embedding::vector
    LIMIT @limit
";
```

---

### multimodal-service (멀티모달 처리)

**언제 사용하나요?**
- 이미지+텍스트 분석
- 비전 LLM 통합
- 이미지 업로드 UI
- 멀티모달 챗봇

**핵심 패턴:**
```csharp
// 이미지 분석
var response = await _multiModalService.AnalyzeImageAsync(
    imageData,
    "이 이미지를 분석해주세요",
    "jpeg"
);

// 프론트엔드 - 클립보드/드래그앤드롭
document.addEventListener('paste', (e) => {
    const items = e.clipboardData.items;
    for (const item of items) {
        if (item.type.startsWith('image/')) {
            processFile(item.getAsFile());
        }
    }
});
```

---

## 베스트 샘플 프롬프트

### 1. 새로운 액터 구현

```
액터 모델 스킬을 참고해 NotificationActor를 구현해줘.
- 사용자별 알림 큐 관리
- 24시간 비활성 시 자동 종료
- WebSocket으로 실시간 알림 전송
```

### 2. LLM 기반 기능 추가

```
llm-api 스킬을 참고해 요약 생성 기능을 추가해줘.
- 긴 텍스트를 3문장으로 요약
- 스트리밍 응답으로 실시간 표시
- 컨트롤러와 뷰 모두 구현
```

### 3. 그래프 검색 기능

```
graph-db 스킬을 참고해 연관 메모리 추천 기능을 구현해줘.
- 현재 메모리와 2-hop 이내의 관련 메모리 찾기
- 공통 키워드 기반 가중치 계산
- 결과를 카드 UI로 표시
```

### 4. 새 UI 페이지 추가

```
project-convention과 fullstack-ui 스킬을 참고해
대시보드 페이지를 추가해줘.
- /ui/dashboard URL
- 최근 메모리 통계 차트
- 그래프 관계 시각화
```

### 5. 복합 기능 구현

```
다음 스킬들을 활용해 "스마트 태그 추천" 기능을 구현해줘:
- llm-api: 내용 분석하여 태그 추천
- actor-model: 백그라운드에서 비동기 처리
- project-convention: 기존 패턴에 맞게 구현

요구사항:
- 메모리 저장 시 자동으로 태그 추천
- 사용자가 추천 태그 수락/거부 가능
```

### 6. DB 마이그레이션

```
db-migration 스킬을 참고해 북마크 기능을 위한 마이그레이션을 작성해줘.
- bookmarks 테이블 생성
- memory_id, user_id 외래키
- created_at 타임스탬프
- 복합 인덱스 추가
```

### 7. MCP 도구 추가

```
mcp-tools 스킬을 참고해 "태그 검색" MCP 도구를 추가해줘.
- SearchByTags 메서드
- 여러 태그 AND/OR 검색 지원
- LLM이 사용하기 좋은 Description 작성
- 결과 포맷팅 포함
```

### 8. 벡터 검색 기능

```
embedding-service 스킬을 참고해 "의미 기반 중복 검사" 기능을 구현해줘.
- 저장 전 유사 메모리 검색
- 유사도 90% 이상이면 경고
- 임계값 폴백 패턴 적용
```

### 9. 이미지 분석 기능

```
multimodal-service 스킬을 참고해 "스크린샷 분석" 기능을 추가해줘.
- 화면 캡처 붙여넣기 지원
- 이미지에서 텍스트/UI 요소 추출
- 결과를 메모리로 저장
```

### 10. 전체 스킬 활용 (대규모 기능)

```
다음 스킬들을 모두 활용해 "지식 그래프 시각화" 기능을 구현해줘:
- project-convention: 디렉토리 구조, 네이밍
- graph-db: Cypher로 관계 조회
- embedding-service: 클러스터링을 위한 벡터 유사도
- fullstack-ui: Mermaid 다이어그램 렌더링
- actor-model: 대량 데이터 비동기 처리

요구사항:
- /ui/knowledge-map 페이지
- 메모리 간 관계를 시각화
- 클러스터별 색상 구분
```

---

## 스킬 활용 팁

### 스킬 조합 가이드

| 작업 유형 | 권장 스킬 조합 |
|----------|---------------|
| 새 API 엔드포인트 | project-convention + (llm-api 또는 embedding-service) |
| 새 UI 페이지 | project-convention + fullstack-ui |
| 데이터 모델 변경 | db-migration + project-convention |
| AI 기능 추가 | llm-api + actor-model |
| 검색 기능 개선 | embedding-service + graph-db |
| 외부 도구 연동 | mcp-tools + project-convention |
| 이미지 처리 | multimodal-service + actor-model |

### 스킬 선택 플로우차트

```
새 기능 요청 받음
    ↓
DB 스키마 변경 필요? → Yes → db-migration
    ↓ No
MCP 도구 추가? → Yes → mcp-tools
    ↓ No
이미지 처리 필요? → Yes → multimodal-service
    ↓ No
벡터 검색 필요? → Yes → embedding-service
    ↓ No
LLM 호출 필요? → Yes → llm-api
    ↓ No
비동기/상태 관리? → Yes → actor-model
    ↓ No
그래프 관계 조회? → Yes → graph-db
    ↓ No
UI 페이지 추가? → Yes → fullstack-ui
    ↓
항상 → project-convention
```

---

## 스킬 확장 가이드

새로운 스킬을 추가하려면:

1. `.claude/skills/{skill-name}/` 디렉토리 생성
2. `SKILL.md` 파일 작성:
   ```markdown
   ---
   name: skill-name
   description: 스킬 설명. 언제 사용하는지 명확히 기술.
   ---

   # 스킬 제목

   ## Instructions
   ...
   ```
3. 필요시 `scripts/`, `references/` 폴더 추가

---

## 문의 및 개선

스킬 개선이 필요하거나 새로운 패턴이 추가되면 해당 스킬의 SKILL.md를 업데이트하세요.

  • 스킬을 명시적으로 참조해를 꼭 해야되는지는 테스트가 필요할것 같네요 - 안해도 클코드가 똑똑하게 탐색해 찾아주는것이 기대치입니다.


이제 생성된 스킬의 본방을 커밋하려고하니 파일이 하나도 없음 클로드코드의 설정은 개인화 설정으로 커밋방지를 초반에 걸어두어 해제 이것도 그냥 클코드한테 요청해서 진행 - 코딩 귀차니즘의 산출물

...

  • 스킬생성된 내용중 텔레메트리 패턴? 이러한 패턴은 처음 들어보는 영역인데... 스킬내에는 바이브로 진행되면서 생성된 코드에 작성자도 놓치는 새롭게 이용한 패턴들을 다시 학습할수 있는 상황도 생길것같습니다.
    • 시계열 기반 로깅을 텔레메트리로 표현하는듯하며... 앞으로 보안이력 텔레메트리 패턴을 적용하세요 라고 요청해도 될것으로 보여지네요(고급 개발 용어의 재발견)

...

스킬이용 작업

이제 새로운 기능 프롬프팅에 따라 DB개발인 경우 마이그레이션을 항상 설명하고, 액터모델을 구현해야하는 경우 또 가르치고 컨벤션이 틀리면 하지말랬잖아~ 이런 프롬프트를 할필요없이

...

41버전의 이후에는 스킬을 활용한 프롬프트로 메모리즈 기능 업데이트가 진행될 예정입니다. ( -우측의 모습처럼 바이브 여정을 기대하며 마칩니다. 기대


추가

Image Added