fix: scad_animate/write_scad 설명에 작업실 프로젝트 폴더 접두어 규칙 명시

모델이 'robot_arm_2min.mp4'처럼 접두어 없이 호출해 워크스페이스 루트에
쓰여 파일 탭에 안 보이는 사고 반복(2026-09-22 실측). 설명에
'workshop/<프로젝트id>/...' 접두어 필수 규칙 추가.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
kim
2026-09-22 23:27:27 +09:00
co-authored by Claude Code
parent bbe9599637
commit fe934cbd36
2 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -1212,7 +1212,7 @@ export function createBuildTools(isOrchestrationSkillEnabled: () => boolean) {
parameters: {
type: 'object', required: ['scad_path', 'content'],
properties: {
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다.' },
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다. 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
content: { type: 'string', description: 'OpenSCAD 소스 코드 전체(파일 전체 내용을 매번 새로 씀 — 부분 수정 아님).' },
},
},
@@ -1231,8 +1231,8 @@ export function createBuildTools(isOrchestrationSkillEnabled: () => boolean) {
parameters: {
type: 'object', required: ['scad_path', 'output_path'],
properties: {
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다.' },
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함).' },
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다. 작업실(작업 프로젝트) 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어를 빼면 워크스페이스 루트에 쓰여 파일 탭에 안 보인다.' },
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함). 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명.mp4" 형태로 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
frames: { type: 'number', description: '(선택) 프레임 수 — 기본 24, 최대 600. $t는 0부터 (1-1/frames)까지 균등 간격.' },
fps: { type: 'number', description: '(선택) MP4 프레임레이트 — 기본 10(1초~2.4초 분량). 부드러운 동작이면 15~24.' },
camera: { type: 'string', description: "(선택) OpenSCAD --camera 김발값 — 'tx,ty,tz,rx,ry,rz,dist' 형식(예: '0,0,50,70,0,315,480'). 생략하면 모델 실측(애니메이션 4포즈를 STL로 컴파일해 바운딩박스 합집합 측정) 기준으로 자동 프레이밍한다 — 굳이 줄 필요 없음. 고정 카메라에서 관절만 움직이는 게 보통 보기 좋다." },
+3 -3
View File
@@ -356,7 +356,7 @@ export const writeScadTool = {
type: 'object',
required: ['scad_path', 'content'],
properties: {
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다.' },
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로, .scad로 끝나야 함. 폴더가 없으면 자동 생성된다. 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
content: { type: 'string', description: 'OpenSCAD 소스 코드 전체(파일 전체 내용을 매번 새로 씀 — 부분 수정 아님).' },
},
additionalProperties: false,
@@ -449,8 +449,8 @@ export const scadAnimateTool = {
type: 'object',
required: ['scad_path', 'output_path'],
properties: {
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다.' },
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함).' },
scad_path: { type: 'string', description: '워크스페이스 기준 상대경로의 .scad 소스 파일. $t로 움직이는 구조(예: 회전각 = 90*$t)가 있어야 프레임마다 다른 장면이 나온다. 작업실(작업 프로젝트) 채팅이라면 반드시 "workshop/<프로젝트id>/파일명" 형태로 프로젝트 폴더 안에 넣을 것 — 접두어를 빼면 워크스페이스 루트에 쓰여 파일 탭에 안 보인다.' },
output_path: { type: 'string', description: '결과 MP4를 저장할 워크스페이스 기준 상대경로(.mp4로 끝나야 함). 작업실 채팅이라면 반드시 "workshop/<프로젝트id>/파일명.mp4" 형태로 — 접두어 없이 쓰면 워크스페이스 루트에 저장돼 파일 탭에 안 보인다.' },
frames: { type: 'number', description: '(선택) 프레임 수 — 기본 24, 최대 600. $t는 0부터 (1-1/frames)까지 균등 간격.' },
fps: { type: 'number', description: '(선택) MP4 프레임레이트 — 기본 10(1초~2.4초 분량). 부드러운 동작이면 15~24.' },
camera: { type: 'string', description: "(선택) OpenSCAD --camera 김발값 — 'tx,ty,tz,rx,ry,rz,dist' 형식(예: '0,0,50,70,0,315,480'). 생략하면 모델 실측(중간 프레임을 STL로 컴파일해 바운딩박스 측정) 기준으로 자동 프레이밍한다 — 굳이 줄 필요 없음. 고정 카메라에서 관절만 움직이는 게 보통 보기 좋다." },