Community코딩 & 개발github.com

SethDrew/project-ledger

AI 기반 개발을 위한 구조화된 파인딩 시스템입니다. YAML 원장 + Claude Code 스킬 + TF-IDF 컨텍스트 주입 훅을 제공합니다.

project-ledger란 무엇인가요?

이 스킬은 AI 기반 개발 환경에서 프로젝트 진행 상황과 발견 사항을 체계적으로 기록하고, AI 어시스턴트가 작업 컨텍스트를 효과적으로 이해할 수 있도록 돕는 '프로젝트 원장(Project Ledger)' 시스템입니다. YAML 형식의 원장 파일을 사용하여 작업 내역, 결정 사항, 이슈, 참고 자료 등을 구조화된 방식으로 저장합니다. Claude Code와 같은 AI 코딩 도구와 통합되어, TF-IDF 기반 컨텍스트 주입 훅을 통해 가장 관련성 높은 원장 항목을 자동으로 추출하여 AI에 제공합니다. 이를 통해 AI 어시스턴트가 프로젝트의 이전 맥락을 잊지 않고 일관성 있는 작업을 수행할 수 있으며, 대규모 프로젝트나 장기간에 걸친 개발 작업에서 특히 유용합니다. 주로 Claude Code 환경에서 사용되며, YAML 파싱과 TF-IDF 벡터화를 위한 Python 스크립트를 함께 제공합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add SethDrew/project-ledger

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

project-ledger은(는) 무엇을 하나요?

AI 기반 개발을 위한 구조화된 파인딩 시스템입니다. YAML 원장 + Claude Code 스킬 + TF-IDF 컨텍스트 주입 훅을 제공합니다.

개요

project-ledger는 AI 어시스턴트가 프로젝트의 진행 상황과 이전 작업 맥락을 지속적으로 추적할 수 있도록 설계된 시스템입니다. YAML 형식으로 작성된 원장 파일을 사용하며, Claude Code의 스킬 메커니즘과 TF-IDF 기반 컨텍스트 검색을 결합하여 관련 정보를 자동으로 주입합니다.

주요 기능

  • 구조화된 원장: YAML 형식으로 작업 내역, 결정 사항, 이슈, 참고 자료를 체계적으로 기록
  • Claude Code 통합: 스킬로 설치하여 Claude Code 세션에서 자동으로 원장 참조
  • TF-IDF 컨텍스트 주입: 가장 관련성 높은 원장 항목을 자동으로 검색하여 AI 프롬프트에 포함

설치 방법

Claude Code 스킬로 설치

# 스킬 디렉토리로 이동
cd ~/.claude/skills/

# 저장소 클론
gh repo clone SethDrew/project-ledger

또는 수동으로 SKILL.md 파일과 관련 스크립트를 복사하십시오.

사용 방법

1. 원장 초기화

프로젝트 루트 디렉토리에서 다음 명령어를 실행하여 원장 파일을 생성합니다:

touch ledger.yaml

2. 항목 추가

ledger.yaml 파일에 다음 형식으로 항목을 추가합니다:

- date: 2024-01-15
  type: decision
  title: 데이터베이스 스키마 설계
  description: PostgreSQL 기반으로 스키마를 설계하기로 결정
  rationale: 관계형 데이터의 복잡한 질의가 필요함
  tags: [database, schema, postgresql]

- date: 2024-01-16
  type: issue
  title: 사용자 인증 토큰 만료 문제
  description: JWT 토큰이 1시간 후 만료되어 사용자 세션이 끊김
  resolution: 토큰 갱신(refresh token) 메커니즘 추가 예정
  tags: [auth, jwt, security]

3. TF-IDF 컨텍스트 주입

제공된 Python 스크립트를 사용하여 현재 작업과 관련된 원장 항목을 자동으로 추출합니다:

python3 inject_context.py ledger.yaml "현재 작업 설명"

이 명령은 TF-IDF 유사도 점수를 기반으로 가장 관련성 높은 항목 5개를 선택하여 출력합니다.

원장 항목 유형

유형설명필수 필드
decision프로젝트 결정 사항date, title, description, rationale
issue발견된 문제 또는 장애물date, title, description, resolution
task완료된 작업 내역date, title, description
reference유용한 참고 자료date, title, url 또는 source

컨텍스트 주입 스크립트

inject_context.py 스크립트는 Python 3와 scikit-learn 라이브러리가 필요합니다:

pip install scikit-learn pyyaml

스크립트 사용법

# inject_context.py 예제
from sklearn.feature_extraction.text import TfidfVectorizer
import yaml
import sys

def load_ledger(path):
    with open(path, 'r') as f:
        return yaml.safe_load(f)

def inject_context(ledger_path, query):
    ledger = load_ledger(ledger_path)
    descriptions = [item['description'] for item in ledger]
    vectorizer = TfidfVectorizer()
    tfidf_matrix = vectorizer.fit_transform(descriptions + [query])
    # 유사도 계산 로직
    # ...

환경 변수

  • LEDGER_PATH: 원장 파일 경로 (기본값: ./ledger.yaml)
  • CONTEXT_COUNT: 주입할 컨텍스트 항목 수 (기본값: 5)

라이선스

MIT

기여

이슈와 풀 리퀘스트를 환영합니다. 주요 변경 사항은 먼저 이슈를 열어 논의해 주십시오.

관련 스킬