Claude 스크래치 패드 (화이트보드)
로컬 화이트보드를 공용 스크래치 패드로 사용합니다: 사용자가 아이디어를 그리고, Claude가 이를 분석하여 답변하고 보드에 다시 그립니다.
코드는 이 스킬 디렉토리 내에 있습니다. 아래에서 WB는 이 파일이 포함된 디렉토리의 경로를 의미합니다.
시작하기
export WB_DATA="$PWD/.whiteboard" # 선택 사항: 현재 프로젝트 전용 보드 (기본값: WB/data)
WB/wb start [--port 8765] # .venv 자동 생성 (python3 -m venv --without-pip), 외부 패키지 불필요
- 사용자에게 URL (
http://127.0.0.1:8765)을 제공한 다음, 백그라운드에서WB/wb wait --timeout 3300을 실행합니다 (run_in_background). WB_DATA를 설정한 경우, 이후 모든wb명령에 대해 동일한 값을 설정해야 합니다 (명령어에 직접 포함:WB_DATA=... WB/wb ...).- git 저장소 내에서
WB_DATA를 사용하는 경우.whiteboard/를.gitignore에 추가하세요.
서비스 루프
wait가 종료 코드 0으로 종료되면 출력을 읽습니다. 출력에는 질문, 선택된 영역, 영역 내 항목들 (텍스트 내용 포함) 및 PNG 경로(있는 경우)가 포함됩니다.- PNG 이미지는 출력에 명시된 경우에만 엽니다 (영역에 손글씨, 프레임, 화살표 또는 도형이 포함된 경우에만 있음). 전체 보드를 읽지 마십시오; 추가 컨텍스트가 필요하면
wb look X Y W H또는wb item ID를 사용하세요. - 필요한 경우 로컬에서 작업합니다: 파일 읽기, 스크립트 실행, 계산 수행.
wb reply --file F --done을 사용하여 답변하고, 유용한 경우 보드에 그림을 그립니다 (아래 참조).- 백그라운드에서
wait를 다시 실행합니다. 종료 코드 2는 시간 초과를 의미하며 요청이 없음을 나타냅니다:wait를 다시 실행하기만 하면 되며, 사용자에게 알릴 필요가 없습니다.
사용자가 중지하려는 경우: WB/wb stop.
응답 규칙
- 모든 수학 공식은 LaTeX로 작성해야 합니다 (
$…$인라인,$$…$$디스플레이). 채팅과 보드 모두에 적용됩니다. 페이지는 MathJax를 사용하여 렌더링하며, 매크로\Adv가 사전 정의되어 있습니다. - 여러 줄의 텍스트나
$가 포함된 경우 임시 디렉토리의 파일에 기록한 다음--file을 통해 전달하여 셸 따옴표 오류를 방지하세요. - 내용은 Markdown-lite입니다:
**굵게**,*기울임*,`코드`, 목록,|…|표. - Claude가 만든 항목은 기본적으로 보라색이며 처리 중인 영역 옆에 배치됩니다. 다른 위치에 배치하려면
--at x,y를 사용하세요.
그리기 명령
| 명령어 | 용도 |
|---|---|
wb note [TEXT|--file F] [--color C] [--at x,y] [--w W] | 카드 형태의 노트 (Markdown + LaTeX) |
wb tex [TEXT|--file F] [--size N] | 프레임 없는 텍스트 또는 수식 |
wb svg --file F --title T [--w W --h H] | 다이어그램, 그래프, 그림 (SVG) |
wb rect X Y W H, wb arrow X Y DX DY | 보드의 프레임, 화살표 원점 |
wb patch ID [--text|--file|--svgfile|--at|--color], wb rm ID… | 수정, 삭제 |
wb show [RID] [--pending], wb done [RID] | 요청 검토 또는 종료 |
노트 색상: yellow, pink, sky, mint, violet. 선 색상 (rect, arrow): ink, red, blue, green, amber, violet.
토큰 효율적인 SVG 그리기
- SVG 이미지는
<img>를 통해 표시되므로 (안전하며 스크립트가 실행되지 않음) SVG 내부의 LaTeX는 렌더링되지 않습니다. 수식이 필요한 경우 SVG로 프레임과 화살표를 그린 다음tex항목을 그 위에 배치하세요. - 많은 점을 포함하는 그래프 또는 도형: 좌표를 수동으로 작성하지 말고 짧은 Python 스크립트를 사용하여 SVG를 생성하세요. 이 경우 비용은 점의 수에 관계없이 스크립트 길이에만 비례합니다.
<style>,<defs>및<marker>를 사용하고 좌표를 반올림하세요. 몇 개의 프레임과 화살표만 필요한 경우rect/arrow를 사용하세요.- 읽기는 거의 무료입니다:
wait는 각 SVG 이미지에 대해 한 줄 설명만 출력하며 소스 코드는 출력하지 않습니다.
아키텍처 및 API 세부 정보: WB/docs/.