smithery/dj02-a

research-to-lib

연구용 파이썬 파일을 일관된 구조의 라이브러리로 변환하고 ?

Installation

$ npx skills add smithery/dj02-a --skill research-to-lib

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Write, Edit, Bash, Glob, Grep, AskUserQuestion

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,622 B
  • docs SUMMARY.md 123 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Research to Library Skill

연구용 파이썬 파일을 분석하여 일관된 구조의 라이브러리로 변환합니다.

입력

$ARGUMENTS

워크플로우

Step 1: 프로젝트 초기화

  • 연구용 파이썬 파일 경로를 확인합니다
  • uv init으로 새 프로젝트를 초기화합니다 (이미 있으면 스킵)
  • pyproject.toml 기본 설정을 확인합니다

Step 2: 연구 파일 분석 및 라이브러리 설계

  • 연구용 파이썬 파일을 읽고 분석합니다
  • 주요 기능을 파악합니다 (모델 로딩, 추론 등)
  • 사용자에게 질문: 어떤 함수/클래스를 라이브러리에 포함할지 확인합니다

- 모델 로딩 함수 - inference 함수 - 기타 유틸리티 함수

Step 3: 일관된 클래스 구조로 라이브러리 생성

  • src/<package_name>/ 디렉토리에 라이브러리 코드 작성
  • 중요: 메인 코드 파일명은 반드시 main.py를 사용 (generator.py, core.py 등 사용 금지)
  • 기본 구조:

`` src/<package_name>/ ├── init.py # 메인 클래스 export └── main.py # Generator/Model 클래스 (반드시 main.py 사용) ``

  • 클래스 구조 패턴:

```python class <Name>Generator: def init(self, model_path, device, dtype, config): """모델 로딩"""

def infer(self, prompt, **kwargs) -> Output: """추론 실행"""

def load_lora(self, path, scale): """LoRA 로드 (필요시)""" ```

Step 4: 테스트 코드 작성

  • tests/test_<기능명>.py 형식으로 기능별로 분리하여 생성

- 예: testtexttoimage.py, testimagetoimage.py, test_lora.py

  • 중요: 입력값은 반드시 연구용 파일과 동일하게 설정

- 동일한 입력 이미지/데이터 경로 - 동일한 파라미터 값 - 동일한 프롬프트/설정

  • 체크포인트 다운로드: 연구 코드에서 모델/체크포인트를 다운로드하는 코드가 있으면 테스트 파일에 포함

Step 5: 필수 의존성 확인

  • 사용자에게 질문: 테스트 실행 전에 필수 라이브러리가 있는지 확인

- 사용자 정의 라이브러리 (로컬 패키지, 내부 도구) - 특정 버전이 필요한 라이브러리 - 비공개 저장소의 패키지

  • 사용자가 지정한 필수 라이브러리가 있으면 먼저 uv add로 추가

Step 6: 의존성 설치 및 실행

  • 중요: pyproject.toml에 의존성을 미리 추가하지 않음 (필수 라이브러리 제외)
  • uv run python tests/test_<module>.py 실행
  • 에러 발생 시:

1. 에러 메시지에서 누락된 패키지 확인 2. uv add <package>로 해당 패키지만 추가 3. 다시 실행

  • 핵심 원칙: 테스트 실행 → 에러 확인 → 필요한 패키지만 추가 (반복)
  • 에러 카운터:

- uv add로 의존성을 추가하는 과정의 에러는 카운트하지 않음 - 의존성이 모두 추가된 후, 코드 로직 에러만 카운트

Step 7: 반복 (최대 5회)

  • 에러가 없을 때까지 Step 5를 반복합니다
  • 5회 이상 에러 발생 시:

- 현재 상태와 에러 내용을 정리 - 사용자에게 보고하고 대기 - 사용자의 추가 지시를 기다립니다

Step 8: 문서화

  • docs/ 디렉토리 생성 (없으면)
  • docs/report.md 작성:

```markdown # Library Conversion Report

## 원본 파일 - 경로: ... - 주요 기능: ...

## 생성된 라이브러리 - 패키지명: ... - 주요 클래스/함수: ...

## 의존성 - 추가된 패키지 목록

## 테스트 결과 - 성공/실패 여부 - 실행 횟수

## 설정값 정리 - 주요 파라미터 설명 - 기본값과 권장값 - 사용 시 주의사항

## 사용 예시 ``python from <package> import <Class> ... ` ``

예시 사용법

/research-to-lib sample.py
/research-to-lib /path/to/research_code.py

주의사항

  • 연구 파일의 하드코딩된 경로는 테스트 코드에서도 동일하게 유지
  • 모델 체크포인트 경로, 입력 데이터 경로 등 그대로 사용
  • uv를 사용하여 가상환경 및 의존성 관리
  • device 설정: 테스트 시 device는 cuda를 직접 사용 (cpu_offload 등 offload 옵션 지양)