AI Skill과 파일 산출물
Morit Plugin의 kind: "skill"과 Codex·Claude 같은 AI 에이전트의 Skill 파일은 이름이 같지만
역할이 다릅니다.
- Morit Plugin Skill: Host가 설치·권한·timeout 경계에서 실행하는 capability
- AI 에이전트 Skill: 에이전트가 작업 순서와 도구 사용법을 따르는 지침
에이전트 Skill을 사용해 플러그인을 만들더라도 결과 .mplg는 일반 SDK 계약과 동일하게 검증·서명됩니다.
파일 작업 완료 순서
문서, 표, 이미지, archive 등 파일을 만드는 capability나 AI 작업은 다음 순서를 지킵니다.
요청과 입력 조사
→ 파일 생성·편집
→ 구조 검증
→ 가능하면 시각 검증
→ 원래 parser로 다시 열고 내용 확인
→ 최종 artifact 저장
→ 사용자에게 실제 링크와 요약 반환
“작업을 마쳤어요”만 답하거나 sandbox 내부 경로만 남기면 완료가 아닙니다. 존재하지 않는 .docx
경로나 아직 생성하지 않은 artifact를 최종 링크처럼 반환하지 않습니다.
DOCX 예
DOCX는 Microsoft Open XML ZIP 구조입니다. 단순히 .docx 확장자를 붙이지 않습니다.
- 요청한 목차, 표, 이미지, 스타일을 실제로 작성합니다.
- ZIP entry와
[Content_Types].xml, document relationship을 확인합니다. - DOCX parser로 다시 열어 문단·표·이미지 수를 확인합니다.
- 모든 페이지를 렌더링해 잘림, 빈 페이지, 겹침, 깨진 한글을 확인합니다.
- 수정 후 parser와 렌더링을 다시 실행합니다.
- 존재하고 0바이트가 아닌 최종
.docx만 artifact로 반환합니다.
다른 형식도 동일합니다. PDF는 모든 페이지, spreadsheet는 수식과 셀 type, image는 실제 크기와 디코딩, ZIP은 entry 경로와 traversal 안전성을 확인합니다.
Plugin이 파일을 만드는 경우
Plugin은 file_write 권한을 요청하고 Host가 제공하는 artifact 경계로 결과를 전달합니다.
sandbox_python 응답의 summary, data, evidence에 존재하지 않는 sandbox:/... 링크를 만들지
않습니다. Host로 복사된 artifact ID나 내부 파일 링크 문법을 사용하고, AI 최종 답변에는 다음을
포함합니다.
- 파일 이름과 형식
- 사용자가 요청한 결과 요약
- 다운로드 또는 앱 내부 미리보기 링크
- 검증한 항목과 남은 제한
.mplg 산출물
플러그인 개발도 파일 작업입니다.
source 작성
→ validate
→ UI가 있으면 preview
→ signed build
→ package reopen·signature verify
→ 앱 설치·실행
→ 요청한 경로에 artifact 반환
source ZIP과 .mplg는 목적이 다릅니다. source ZIP은 편집용이고 .mplg는 설치용입니다. 둘을 같은
다운로드 이름이나 MIME으로 반환하지 않습니다.
플러그인의 기본 품질 게이트는 validate → preview → build → verify입니다. UI가 없는 package는
preview를 생략할 수 있지만 생략 이유를 결과에 기록합니다.
완료 체크
- 요청한 모든 파일이 실제로 존재하는가
- 파일 크기가 0보다 큰가
- 확장자와 내부 형식이 일치하는가
- 원래 parser로 다시 열리는가
- 모든 페이지/시트/entry를 확인했는가
- 미리보기와 다운로드가 같은 최종 artifact를 가리키는가
- sandbox 경로나 secret이 사용자 응답에 남지 않았는가
- 실패한 Tool이 있다면 복구·대체 결과와 제한을 설명했는가