curl -L -o summarization-toolkit.skill "https://aiskillstore.io/v1/agent/skills/716f0a26-1a64-458f-988c-abaeaf6f9dca/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "716f0a26-1a64-458f-988c-abaeaf6f9dca",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Extractive text summarization toolkit: TextRank, frequency & position heuristics, Korean-first, zero external dependencies. Actions: extract, score_sentences, detect_topics, compare_summaries, audit.
호환 플랫폼: any
검사 결과: ["메타데이터 경고: 권장 필드 없음: 'category' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]
✅ 보안 위험 항목이 발견되지 않았습니다.
AI 검수 단계
스킬 메타데이터와 코드 파일을 분석한 결과, 다음과 같은 판단을 내렸습니다: 1. **선언된 permissions(network/filesystem/subprocess)과 실제 코드 일치 여부:** 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 명시되어 있습니다. 코드(`main.py`, `lib/tokenizer.py`, `lib/algorithms.py`)를 검토한 결과, `sys` 및 `os` 모듈은 주로 경로 설정 및 표준 입출력(`stdin_stdout`) 처리에 사용되며, 파일 시스템에 대한 임의 접근, 네트워크 통신, 외부 프로세스 실행 등의 행위는 발견되지 않았습니다. 선언된 권한을 엄격히 준수합니다. 2. **악의적 목적의 코드 여부:** 데이터 탈취, 시스템 파괴, 난독화 등의 악의적인 코드는 발견되지 않았습니다. 코드는 텍스트 처리 및 요약 알고리즘 구현에 집중되어 있으며, 의심스러운 라이브러리 임포트나 함수 호출이 없습니다. 정적 분석 결과 또한 `red_flags_found: []`, `obfuscation_warnings: []`로 악의적인 코드가 없음을 뒷받침합니다. 3. **선언되지 않은 외부 통신 여부:** `network: false`로 선언되었으며, 코드 내에서 `requests`, `socket`, `urllib` 등 네트워크 통신을 위한 어떠한 모듈도 임포트하거나 사용하지 않습니다. 외부 통신은 없습니다. 4. **사용자 데이터 무단 수집/전송 여부:** 스킬은 `stdin`으로 입력을 받아 내부적으로 처리하고 `stdout`으로 결과를 반환하는 `stdin_stdout` 패턴을 따릅니다. 처리된 데이터를 저장하거나 외부로 전송하는 기능은 없으며, 사용자 데이터를 무단으로 수집하거나 전송하지 않습니다. 5. **코드 품질 및 스킬 목적 일치 여부:** 스킬은 '추출 요약 툴킷'이라는 설명에 맞게 TextRank, 빈도, 위치 기반 요약 및 하이브리드 방식을 구현하고 있습니다. 한국어 및 영어 지원, 외부 의존성 없음 등의 특징도 코드에서 확인됩니다. `lib` 디렉토리에 토크나이저와 알고리즘을 분리하여 모듈화가 잘 되어 있으며, 입력 유효성 검사 및 오류 처리도 명확하게 구현되어 있습니다. 코드 품질은 양호하며 스킬의 목적과 완벽하게 일치합니다. 종합적으로, 이 스킬은 보안 위험이 낮으며, 선언된 기능과 권한을 충실히 이행하는 안전한 스킬로 판단됩니다.
이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.
한국어 뉴스 기사를 hybrid 방식으로 추출 요약 / Extractive summary of Korean news article using hybrid method
{
"action": "extract",
"language": "ko",
"method": "hybrid",
"ratio": 0.4,
"text": "\uc778\uacf5\uc9c0\ub2a5 \uae30\uc220\uc774 \ube60\ub974\uac8c \ubc1c\uc804\ud558\uba74\uc11c \ub2e4\uc591\ud55c \uc0b0\uc5c5 \ubd84\uc57c\uc5d0 \ud070 \ubcc0\ud654\ub97c \uac00\uc838\uc624\uace0 \uc788\ub2e4. \ud2b9\ud788 \uc790\uc5f0\uc5b4 \ucc98\ub9ac \ubd84\uc57c\uc5d0\uc11c\uc758 \ubc1c\uc804\uc774 \ub450\ub4dc\ub7ec\uc9c4\ub2e4. \ub300\ud615 \uc5b8\uc5b4 \ubaa8\ub378\uc740 \ubc88\uc5ed, \uc694\uc57d, \uc9c8\uc758\uc751\ub2f5 \ub4f1 \ub2e4\uc591\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\ub2e4. \uae30\uc5c5\ub4e4\uc740 \uc774\ub7ec\ud55c \uae30\uc220\uc744 \ub3c4\uc785\ud574 \uc5c5\ubb34 \ud6a8\uc728\uc744 \ub192\uc774\uace0 \uc788\ub2e4. \uadf8\ub7ec\ub098 AI \uae30\uc220\uc758 \uc724\ub9ac\uc801 \ubb38\uc81c\ub3c4 \ud568\uaed8 \ub17c\uc758\ub418\uace0 \uc788\ub2e4. \ub370\uc774\ud130 \ud3b8\ud5a5, \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638, \uc77c\uc790\ub9ac \ubb38\uc81c \ub4f1\uc774 \uc8fc\uc694 \uacfc\uc81c\ub85c \ub5a0\uc624\ub974\uace0 \uc788\ub2e4. \uc804\ubb38\uac00\ub4e4\uc740 \uae30\uc220 \ubc1c\uc804\uacfc \ud568\uaed8 \uc774\ub7ec\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub294 \uac83\uc774 \uc911\uc694\ud558\ub2e4\uace0 \uac15\uc870\ud55c\ub2e4."
}
{
"action": "extract",
"ok": true,
"summary": {
"compression_ratio": 0.43,
"language_detected": "ko",
"method_used": "hybrid",
"original_sentence_count": 7,
"sentence_count": 3,
"sentences": [
"\uc778\uacf5\uc9c0\ub2a5 \uae30\uc220\uc774 \ube60\ub974\uac8c \ubc1c\uc804\ud558\uba74\uc11c \ub2e4\uc591\ud55c \uc0b0\uc5c5 \ubd84\uc57c\uc5d0 \ud070 \ubcc0\ud654\ub97c \uac00\uc838\uc624\uace0 \uc788\ub2e4.",
"\ub300\ud615 \uc5b8\uc5b4 \ubaa8\ub378\uc740 \ubc88\uc5ed, \uc694\uc57d, \uc9c8\uc758\uc751\ub2f5 \ub4f1 \ub2e4\uc591\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\ub2e4.",
"\uc804\ubb38\uac00\ub4e4\uc740 \uae30\uc220 \ubc1c\uc804\uacfc \ud568\uaed8 \uc774\ub7ec\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub294 \uac83\uc774 \uc911\uc694\ud558\ub2e4\uace0 \uac15\uc870\ud55c\ub2e4."
]
}
}
English paragraph summarized with TextRank algorithm
{
"action": "extract",
"language": "en",
"max_sentences": 3,
"method": "textrank",
"text": "Machine learning is a subset of artificial intelligence that enables systems to learn from data. It has transformed industries from healthcare to finance. Supervised learning algorithms train on labeled datasets to make predictions. Unsupervised learning discovers hidden patterns without explicit labels. Reinforcement learning agents learn by interacting with environments and receiving rewards. Deep learning uses neural networks with many layers to extract complex features. The field continues to grow rapidly with new architectures and techniques emerging regularly."
}
{
"action": "extract",
"ok": true,
"summary": {
"compression_ratio": 0.43,
"language_detected": "en",
"method_used": "textrank",
"original_sentence_count": 7,
"sentence_count": 3,
"sentences": [
"Machine learning is a subset of artificial intelligence that enables systems to learn from data.",
"Deep learning uses neural networks with many layers to extract complex features.",
"Supervised learning algorithms train on labeled datasets to make predictions."
]
}
}
각 문장의 중요도 점수와 순위 반환 / Return importance score and rank for each sentence
{
"action": "score_sentences",
"language": "ko",
"method": "frequency",
"text": "\uae30\ud6c4 \ubcc0\ud654\ub294 \uc804 \uc138\uacc4\uc801\uc778 \ubb38\uc81c\uc774\ub2e4. \uc628\uc2e4 \uac00\uc2a4 \ubc30\ucd9c\uc774 \uc8fc\uc694 \uc6d0\uc778\uc73c\ub85c \uc9c0\ubaa9\ub41c\ub2e4. \uc7ac\uc0dd\uc5d0\ub108\uc9c0\ub85c\uc758 \uc804\ud658\uc774 \uc2dc\uae09\ud558\ub2e4. \ud0dc\uc591\uad11\uacfc \ud48d\ub825 \uc5d0\ub108\uc9c0\uac00 \ub300\uc548\uc73c\ub85c \uc8fc\ubaa9\ubc1b\uace0 \uc788\ub2e4. \uac01\uad6d \uc815\ubd80\ub294 \ud0c4\uc18c \uc911\ub9bd \ubaa9\ud45c\ub97c \uc124\uc815\ud558\uace0 \uc788\ub2e4."
}
{
"action": "score_sentences",
"ok": true,
"scored": [
{
"index": 0,
"rank": 1,
"score": 0.72,
"sentence": "\uae30\ud6c4 \ubcc0\ud654\ub294 \uc804 \uc138\uacc4\uc801\uc778 \ubb38\uc81c\uc774\ub2e4."
},
{
"index": 2,
"rank": 2,
"score": 0.58,
"sentence": "\uc7ac\uc0dd\uc5d0\ub108\uc9c0\ub85c\uc758 \uc804\ud658\uc774 \uc2dc\uae09\ud558\ub2e4."
}
]
}
텍스트에서 핵심 주제어 추출 / Extract main topic keywords from text
{
"action": "detect_topics",
"language": "ko",
"text": "\ube14\ub85d\uccb4\uc778\uc740 \ubd84\uc0b0 \uc6d0\uc7a5 \uae30\uc220\ub85c \uac70\ub798\uc758 \ud22c\uba85\uc131\uacfc \ubcf4\uc548\uc131\uc744 \ubcf4\uc7a5\ud55c\ub2e4. \uc554\ud638\ud654\ud3d0 \ube44\ud2b8\ucf54\uc778\uc774 \ube14\ub85d\uccb4\uc778\uc758 \uccab \ubc88\uc9f8 \uc751\uc6a9 \uc0ac\ub840\uc774\ub2e4. \uc2a4\ub9c8\ud2b8 \ucee8\ud2b8\ub799\ud2b8\ub294 \ube14\ub85d\uccb4\uc778 \uc704\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c \uc2e4\ud589\ub418\ub294 \ud504\ub85c\uadf8\ub7a8\uc774\ub2e4. \ud0c8\uc911\uc559\ud654 \uae08\uc735(DeFi)\uc740 \ube14\ub85d\uccb4\uc778\uc744 \ud65c\uc6a9\ud55c \uc0c8\ub85c\uc6b4 \uae08\uc735 \uc2dc\uc2a4\ud15c\uc774\ub2e4.",
"top_topics": 5
}
{
"action": "detect_topics",
"ok": true,
"topics": {
"keywords": [
{
"frequency": 4,
"term": "\ube14\ub85d\uccb4\uc778",
"weight": 0.95
},
{
"frequency": 1,
"term": "\uc2a4\ub9c8\ud2b8 \ucee8\ud2b8\ub799\ud2b8",
"weight": 0.72
},
{
"frequency": 1,
"term": "\uc554\ud638\ud654\ud3d0",
"weight": 0.65
}
],
"language_detected": "ko"
}
}
두 텍스트 요약의 유사도와 커버리지 비교 / Compare two text summaries by similarity and coverage
{
"action": "compare_summaries",
"labels": [
"\ud14d\uc2a4\ud2b8A",
"\ud14d\uc2a4\ud2b8B"
],
"method": "hybrid",
"texts": [
"\ub525\ub7ec\ub2dd\uc740 \uc778\uacf5\uc2e0\uacbd\ub9dd\uc744 \uae30\ubc18\uc73c\ub85c \ud55c \uae30\uacc4\ud559\uc2b5\uc758 \ud55c \ubd84\uc57c\uc774\ub2e4. \uc774\ubbf8\uc9c0 \uc778\uc2dd\uacfc \uc790\uc5f0\uc5b4 \ucc98\ub9ac\uc5d0\uc11c \ub6f0\uc5b4\ub09c \uc131\ub2a5\uc744 \ubcf4\uc778\ub2e4. GPU \uc5f0\uc0b0\uc758 \ubc1c\uc804\uc774 \ub525\ub7ec\ub2dd \uc131\uc7a5\uc758 \ud575\uc2ec\uc774\uc5c8\ub2e4.",
"\ub525\ub7ec\ub2dd \uae30\uc220\uc740 \uc2e0\uacbd\ub9dd \uad6c\uc870\ub97c \uc774\uc6a9\ud574 \ubcf5\uc7a1\ud55c \ud328\ud134\uc744 \ud559\uc2b5\ud55c\ub2e4. \uc774\ubbf8\uc9c0 \ubd84\ub958, \uc74c\uc131 \uc778\uc2dd, \ubc88\uc5ed \ub4f1 \ub2e4\uc591\ud55c \ubd84\uc57c\uc5d0 \ud65c\uc6a9\ub41c\ub2e4."
]
}
{
"action": "compare_summaries",
"comparison": {
"jaccard_similarity": 0.31,
"shared_keywords": [
"\ub525\ub7ec\ub2dd",
"\uc774\ubbf8\uc9c0",
"\uc2e0\uacbd\ub9dd"
],
"summaries": [
{
"label": "\ud14d\uc2a4\ud2b8A",
"sentences": [
"\ub525\ub7ec\ub2dd\uc740 \uc778\uacf5\uc2e0\uacbd\ub9dd\uc744 \uae30\ubc18\uc73c\ub85c \ud55c \uae30\uacc4\ud559\uc2b5\uc758 \ud55c \ubd84\uc57c\uc774\ub2e4."
]
},
{
"label": "\ud14d\uc2a4\ud2b8B",
"sentences": [
"\ub525\ub7ec\ub2dd \uae30\uc220\uc740 \uc2e0\uacbd\ub9dd \uad6c\uc870\ub97c \uc774\uc6a9\ud574 \ubcf5\uc7a1\ud55c \ud328\ud134\uc744 \ud559\uc2b5\ud55c\ub2e4."
]
}
]
},
"ok": true
}
텍스트 요약 적합성 감사 — 입력 품질, 문장 수, 언어 감지 / Audit summarization suitability of input text
{
"action": "audit",
"text": "This is a very short text."
}
{
"action": "audit",
"audit": {
"issues": [
{
"code": "TOO_SHORT",
"fix_hint": {
"action": "provide longer input",
"field": "text",
"reference": "summarization-toolkit docs: minimum input requirements",
"suggested_replacement": "Provide at least 3\u20135 sentences for meaningful summarization."
},
"message": "Text has fewer than 3 sentences. Summarization is not meaningful."
}
],
"language_detected": "en",
"recommendations": [
"Provide a text with at least 3 sentences for meaningful results."
],
"sentence_count": 1,
"summarizable": false,
"word_count": 6
},
"ok": true
}
Position heuristic: first and last sentences weighted more heavily
{
"action": "extract",
"language": "en",
"method": "position",
"ratio": 0.3,
"text": "Solar energy is becoming increasingly cost-competitive with fossil fuels. The price of photovoltaic panels has dropped by more than 80 percent over the last decade. Utility-scale solar farms now power millions of homes. Battery storage technology is advancing to address intermittency. Grid operators are integrating more renewable sources each year. Policy incentives continue to accelerate adoption worldwide. The transition to clean energy is well underway."
}
{
"action": "extract",
"ok": true,
"summary": {
"compression_ratio": 0.29,
"language_detected": "en",
"method_used": "position",
"original_sentence_count": 7,
"sentence_count": 2,
"sentences": [
"Solar energy is becoming increasingly cost-competitive with fossil fuels.",
"The transition to clean energy is well underway."
]
}
}
모든 예시는 에이전트 API로도 조회 가능:
/v1/agent/skills/716f0a26-1a64-458f-988c-abaeaf6f9dca/schema
아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!