curl -L -o image-stitch-composer.skill "https://aiskillstore.io/v1/agent/skills/dde8ad72-8c18-4970-9328-96dc18d808d5/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "dde8ad72-8c18-4970-9328-96dc18d808d5",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Stitch multiple images vertically, horizontally, or in a grid layout with resize, padding, and background color options. Pillow-only, no external APIs.
Compatible Platforms any
🚨 Security risks detected:
Findings: ["메타데이터 경고: 권장 필드 없음: 'tags' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", 'USK v3 경고: 이 스킬은 자동 변환 조건을 충족하지 않아 manual_install로 처리됩니다']
AI Review Stage
스킬 메타데이터와 제공된 코드(`main.py`, `tests/_test_local.py`)를 분석하고 정적 분석 결과를 검토했습니다. 1. **권한 일치 여부:** * `network: false`로 선언되었으며, `main.py` 코드에서 네트워크 관련 모듈(예: `requests`, `urllib`, `socket`) 사용 흔적이 없습니다. 외부 통신이 없습니다. * `filesystem: true`로 선언되었으며, `main.py`는 `Image.open()`, `img.save()`, `os.path.exists()`, `os.makedirs()` 등 파일 시스템 접근 기능을 사용합니다. 이는 이미지 파일을 읽고 쓰는 스킬의 목적에 부합하며, 선언된 권한과 일치합니다. * `subprocess: false`로 선언되었으며, `main.py` 코드에서 `subprocess` 모듈이나 `os.system()`, `os.popen()`과 같은 외부 프로세스 실행 명령이 발견되지 않았습니다. 2. **정적 분석 결과 (`red_flags_found`):** * 정적 분석에서 `tests/_test_local.py: subprocess.run(`이(가) 발견되었으나, 이 파일은 스킬의 핵심 로직이 아닌 로컬 테스트 코드입니다. 스킬의 `entry_point`는 `main.py`이며, 테스트 코드는 런타임 환경에서 실행되지 않으므로 스킬 자체의 `subprocess: false` 권한 선언을 위반하지 않습니다. 3. **악의적 목적 코드:** * 코드에서 데이터 탈취, 시스템 파괴, 난독화 등 악의적인 목적의 코드는 발견되지 않았습니다. `Pillow` 라이브러리를 활용한 순수한 이미지 처리 로직으로 구성되어 있습니다. 4. **무단 데이터 수집/전송:** * 네트워크 권한이 없으므로 사용자 데이터를 무단으로 수집하거나 전송할 수 없습니다. 스킬은 입력으로 받은 이미지 파일을 처리하고 결과를 지정된 로컬 경로에 저장합니다. 5. **코드 품질:** * 코드 구조가 명확하고, `Pillow` 라이브러리를 사용하여 이미지 처리 기능을 구현했습니다. 의존성 체크 및 EXIF 자동 회전 처리 등 기본적인 코드 품질은 양호합니다. 스킬의 목적과 일치하는 기능을 제공합니다. 결론적으로, 이 스킬은 선언된 보안 정책을 준수하며, 잠재적인 위험 요소가 없는 것으로 판단됩니다.
Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.
Stack two screenshots vertically with 4px gap and white background.
{
"background_color": "white",
"direction": "vertical",
"images": [
"/tmp/screen_top.png",
"/tmp/screen_bottom.png"
],
"output_path": "/tmp/stitched.png",
"padding": 4
}
{
"direction": "vertical",
"file_size_kb": 312.5,
"height": 1444,
"image_count": 2,
"output_path": "/tmp/stitched.png",
"resize_mode": "fit",
"width": 1280
}
Place two images side by side to create a before/after comparison panel.
{
"background_color": "#F0F0F0",
"direction": "horizontal",
"images": [
"/tmp/before.jpg",
"/tmp/after.jpg"
],
"output_path": "/tmp/comparison.png",
"padding": 8,
"resize_mode": "fit",
"target_size": [
960,
720
]
}
{
"direction": "horizontal",
"file_size_kb": 478.2,
"height": 736,
"image_count": 2,
"output_path": "/tmp/comparison.png",
"resize_mode": "fit",
"width": 1936
}
Arrange four product images in a 2x2 grid with black background.
{
"background_color": "black",
"direction": "grid",
"grid_cols": 2,
"images": [
"/tmp/product_1.jpg",
"/tmp/product_2.jpg",
"/tmp/product_3.jpg",
"/tmp/product_4.jpg"
],
"output_path": "/tmp/product_grid.jpg",
"output_quality": 90,
"padding": 10,
"resize_mode": "fit",
"target_size": [
800,
800
]
}
{
"direction": "grid",
"file_size_kb": 892.0,
"height": 1620,
"image_count": 4,
"output_path": "/tmp/product_grid.jpg",
"resize_mode": "fit",
"width": 1620
}
Combine six screenshots into a 3-column grid, stretching each to a uniform size.
{
"direction": "grid",
"grid_cols": 3,
"images": [
"/tmp/s1.png",
"/tmp/s2.png",
"/tmp/s3.png",
"/tmp/s4.png",
"/tmp/s5.png",
"/tmp/s6.png"
],
"output_path": "/tmp/grid_6.png",
"padding": 2,
"resize_mode": "stretch",
"target_size": [
640,
480
]
}
{
"direction": "grid",
"file_size_kb": 1204.8,
"height": 964,
"image_count": 6,
"output_path": "/tmp/grid_6.png",
"resize_mode": "stretch",
"width": 1926
}
Create a wide horizontal banner by center-cropping three landscape photos to equal size.
{
"direction": "horizontal",
"images": [
"/tmp/photo_a.jpg",
"/tmp/photo_b.jpg",
"/tmp/photo_c.jpg"
],
"output_path": "/tmp/banner.webp",
"output_quality": 85,
"padding": 0,
"resize_mode": "crop",
"target_size": [
600,
400
]
}
{
"direction": "horizontal",
"file_size_kb": 256.3,
"height": 400,
"image_count": 3,
"output_path": "/tmp/banner.webp",
"resize_mode": "crop",
"width": 1800
}
All examples are also available via the agent API:
/v1/agent/skills/dde8ad72-8c18-4970-9328-96dc18d808d5/schema
No reviews yet. Be the first to leave one!