curl -L -o meeting-notes-distiller.skill "https://aiskillstore.io/v1/agent/skills/1a76540d-8b17-4aaf-a6d6-1f679acde7ef/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "1a76540d-8b17-4aaf-a6d6-1f679acde7ef",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Extract action items, decisions, owners, and deadlines from meeting notes — Korean/English bilingual, zero dependencies
호환 플랫폼: any
검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)", '정보: spec: usk/1.0 미선언 — v2 패키지로 처리됩니다. 자동 변환 및 에이전트 검색 기능을 사용하려면 USK v3로 업그레이드하세요.']
✅ 보안 위험 항목이 발견되지 않았습니다.
AI 검수 단계
제공된 스킬 메타데이터와 정적 분석 결과를 종합하여 판단했습니다. 1. **선언된 permissions(network/filesystem/subprocess)과 실제 코드가 일치하는가?** * 메타데이터에서 `network: false`, `filesystem: false`, `subprocess: false`로 선언되어 외부 통신, 파일 시스템 접근, 외부 프로세스 실행이 모두 금지되어 있습니다. 이는 매우 강력한 보안 조치입니다. * 정적 분석 결과 `red_flags_found: []`, `forbidden_exec_files_found: []`로 보고되어, 선언된 권한을 위반하는 코드가 없음을 간접적으로 확인했습니다. (실제 코드가 제공되지 않았으므로 정적 분석 결과에 전적으로 의존합니다.) 2. **악의적 목적의 코드가 있는가? (데이터 탈취, 시스템 파괴, 난독화 등)** * 정적 분석 결과 `red_flags_found: []`, `obfuscation_warnings: []`로 보고되어 악의적인 코드나 난독화된 코드가 발견되지 않았습니다. * 선언된 권한이 매우 제한적이므로, 설령 악의적인 의도가 있더라도 데이터 탈취나 시스템 파괴와 같은 행위는 불가능합니다. 3. **선언되지 않은 외부 통신이 있는가?** * `permissions.network: false`로 선언되어 외부 통신이 명시적으로 금지되어 있습니다. * 스킬 설명에 'zero dependencies'라고 명시되어 있어 외부 라이브러리 사용으로 인한 예상치 못한 통신 가능성도 낮습니다. * 정적 분석 결과에서도 외부 통신 관련 위험 요소는 발견되지 않았습니다. 4. **사용자 데이터를 무단으로 수집하거나 전송하는가?** * 네트워크 접근 권한이 없으므로 사용자 데이터를 외부로 전송하는 것은 불가능합니다. * 스킬의 목적은 '회의록 분석 및 정보 추출'이므로, 입력된 회의록 데이터는 스킬의 기능 수행을 위해서만 사용될 것으로 판단됩니다. 5. **코드 품질이 스킬의 목적과 일치하는가?** * 코드 파일이 제공되지 않아 직접적인 코드 품질 평가는 어렵습니다. * 그러나 메타데이터가 매우 상세하고 명확하며, 입력/출력 스키마와 다양한 예시(정상 및 에러 케이스 포함)가 잘 정의되어 있어 스킬의 설계가 견고함을 시사합니다. * 정적 분석 결과가 'approved'인 점도 코드 품질에 대한 간접적인 긍정 신호입니다. 결론적으로, 이 스킬은 매우 제한적인 권한을 선언하고 있으며, 정적 분석 결과에서도 어떠한 보안 위험도 발견되지 않았습니다. 따라서 안전하다고 판단됩니다.
이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.
Extract TODO items from Korean meeting notes
{
"action": "extract_action_items",
"language": "ko",
"notes": "\uc624\ub298 \ud68c\uc758\uc5d0\uc11c \ub2e4\uc74c \uc0ac\ud56d\uc744 \ub17c\uc758\ud588\uc2b5\ub2c8\ub2e4.\n- \uae40\ucca0\uc218\ub294 \ub2e4\uc74c \uc8fc\uae4c\uc9c0 API \ubb38\uc11c\ub97c \uc791\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.\n- \uc774\uc601\ud76c\ub294 \ub514\uc790\uc778 \uc2dc\uc548\uc744 \uae08\uc694\uc77c\uae4c\uc9c0 \uc81c\ucd9c\ud574\uc57c \ud569\ub2c8\ub2e4.\n- TODO: \uc11c\ubc84 \ubc30\ud3ec \uc2a4\ud06c\ub9bd\ud2b8 \uc810\uac80 (\ub2f4\ub2f9: \ubc15\ubbfc\uc218)\n- \uc608\uc0b0 \uac80\ud1a0\ub294 \uc7ac\ubb34\ud300\uc5d0\uc11c \uc9c4\ud589\ud558\uae30\ub85c \ud588\uc2b5\ub2c8\ub2e4."
}
{
"action": "extract_action_items",
"ok": true,
"result": {
"count": 3,
"items": [
{
"confidence": "high",
"deadline": "\ub2e4\uc74c \uc8fc",
"owner": "\uae40\ucca0\uc218",
"text": "API \ubb38\uc11c\ub97c \uc791\uc131\ud574\uc57c \ud569\ub2c8\ub2e4"
},
{
"confidence": "high",
"deadline": "\uae08\uc694\uc77c",
"owner": "\uc774\uc601\ud76c",
"text": "\ub514\uc790\uc778 \uc2dc\uc548\uc744 \uc81c\ucd9c\ud574\uc57c \ud569\ub2c8\ub2e4"
},
{
"confidence": "high",
"deadline": null,
"owner": "\ubc15\ubbfc\uc218",
"text": "\uc11c\ubc84 \ubc30\ud3ec \uc2a4\ud06c\ub9bd\ud2b8 \uc810\uac80"
}
],
"language_detected": "ko"
}
}
Extract decisions from English meeting notes
{
"action": "extract_decisions",
"language": "en",
"notes": "Team meeting 2024-01-15. We decided to postpone the launch to Q2. It was agreed that all features must pass security review before release. The team finalized the new hiring plan for 3 engineers. John confirmed that remote work policy will continue."
}
{
"action": "extract_decisions",
"ok": true,
"result": {
"count": 3,
"decisions": [
{
"confidence": "high",
"text": "postpone the launch to Q2",
"trigger_phrase": "decided"
},
{
"confidence": "high",
"text": "all features must pass security review before release",
"trigger_phrase": "agreed"
},
{
"confidence": "high",
"text": "new hiring plan for 3 engineers",
"trigger_phrase": "finalized"
}
],
"language_detected": "en"
}
}
Map action items to their owners via @mention or name patterns
{
"action": "assign_owners",
"notes": "@alice will prepare the budget report by next Monday. Bob: review the contract draft. \uae40\ucca0\uc218 \ub2f4\ub2f9: \uc11c\ubc84 \uc810\uac80. @charlie and @dave will co-lead the integration testing."
}
{
"action": "assign_owners",
"ok": true,
"result": {
"assignments": [
{
"mention_type": "at_mention",
"owner": "alice",
"task": "prepare the budget report by next Monday"
},
{
"mention_type": "name_colon",
"owner": "Bob",
"task": "review the contract draft"
},
{
"mention_type": "korean_name",
"owner": "\uae40\ucca0\uc218",
"task": "\uc11c\ubc84 \uc810\uac80"
},
{
"mention_type": "at_mention",
"owner": "charlie",
"task": "co-lead the integration testing"
}
],
"owner_count": 4,
"unassigned_items": []
}
}
Extract deadline expressions from mixed notes
{
"action": "detect_deadlines",
"notes": "Report due by Friday. \ub2e4\uc74c \uc8fc \uc6d4\uc694\uc77c\uae4c\uc9c0 \uc81c\ucd9c \uc694\ub9dd. API integration must finish by March 31. 3\uc6d4 \ub9d0\uae4c\uc9c0 \uc608\uc0b0\uc548 \ud655\uc815. Sprint ends next week."
}
{
"action": "detect_deadlines",
"ok": true,
"result": {
"count": 4,
"deadlines": [
{
"context": "Report due by Friday",
"expression": "by Friday",
"type": "relative"
},
{
"context": "\ub2e4\uc74c \uc8fc \uc6d4\uc694\uc77c\uae4c\uc9c0 \uc81c\ucd9c \uc694\ub9dd",
"expression": "\ub2e4\uc74c \uc8fc \uc6d4\uc694\uc77c\uae4c\uc9c0",
"type": "relative_ko"
},
{
"context": "API integration must finish by March 31",
"expression": "by March 31",
"type": "absolute"
},
{
"context": "3\uc6d4 \ub9d0\uae4c\uc9c0 \uc608\uc0b0\uc548 \ud655\uc815",
"expression": "3\uc6d4 \ub9d0\uae4c\uc9c0",
"type": "absolute_ko"
}
]
}
}
Generate a structured recap of the entire meeting
{
"action": "generate_recap",
"notes": "Product sync meeting Jan 15.\nDecided: Launch delayed to Q2.\nTODO: Alice will update roadmap by Friday.\nTODO: Bob to review contracts.\nAgreed: weekly status updates.\n@carol: prepare Q1 report by Jan 20."
}
{
"action": "generate_recap",
"ok": true,
"result": {
"recap": {
"action_items": [
{
"deadline": "by Friday",
"owner": "Alice",
"task": "update roadmap"
},
{
"deadline": null,
"owner": "Bob",
"task": "review contracts"
},
{
"deadline": "by Jan 20",
"owner": "carol",
"task": "prepare Q1 report"
}
],
"deadlines_mentioned": [
"by Friday",
"by Jan 20"
],
"decisions": [
"Launch delayed to Q2",
"Weekly status updates"
],
"stats": {
"owners_identified": 3,
"total_action_items": 3,
"total_decisions": 2
},
"unassigned_items": []
}
}
}
Returns error on empty notes input
{
"action": "extract_action_items",
"notes": ""
}
{
"error": {
"code": "EMPTY_INPUT",
"message": "Field \u0027notes\u0027 must not be empty"
},
"ok": false
}
Returns error for unsupported action
{
"action": "summarize_meeting",
"notes": "Some meeting notes."
}
{
"error": {
"code": "UNKNOWN_ACTION",
"message": "Unknown action \u0027summarize_meeting\u0027"
},
"ok": false
}
모든 예시는 에이전트 API로도 조회 가능:
/v1/agent/skills/1a76540d-8b17-4aaf-a6d6-1f679acde7ef/schema
아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!