curl -L -o knowledge-graph-builder.skill "https://aiskillstore.io/v1/agent/skills/41c1bae7-c70d-4367-954a-5c5260283746/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "41c1bae7-c70d-4367-954a-5c5260283746",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Extract entities and relations from text and return node-edge graph data. Zero external dependencies.
Compatible Platforms any
Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)"]
✅ No security risks found.
AI Review Stage
1. **선언된 permissions과 실제 코드 일치 여부:** 스킬 메타데이터에서 `network: false`, `filesystem: false`, `subprocess: false`로 명확하게 선언되어 있습니다. 제공된 `main.py` 코드 스니펫에서 사용된 `json`, `re`, `sys`, `unicodedata` 모듈은 모두 Python 표준 라이브러리에 포함되며, 선언된 권한을 위반하는 외부 통신, 파일 시스템 접근 또는 서브프로세스 실행 기능을 제공하지 않습니다. `sys.stdin` 및 `sys.stdout` 사용은 CLI 인터페이스의 표준 동작으로, 파일 시스템 접근 권한 위반으로 간주되지 않습니다. 이는 'Zero external dependencies'라는 설명과도 일치합니다. 2. **악의적 목적의 코드 여부:** 제공된 코드 스니펫에는 악의적인 목적(데이터 탈취, 시스템 파괴 등)을 가진 코드가 발견되지 않았습니다. 정적 분석 결과에서도 `red_flags_found` 및 `obfuscation_warnings`가 없다고 보고되어, 코드에 명백한 악성 행위나 난독화가 없음을 시사합니다. 3. **선언되지 않은 외부 통신 여부:** `permissions.network`가 `false`로 설정되어 있으며, 코드에서 외부 네트워크 통신을 수행하는 어떠한 징후도 발견되지 않았습니다. 사용된 모듈 또한 네트워크 기능을 포함하지 않습니다. 4. **사용자 데이터 무단 수집/전송 여부:** 네트워크 및 파일 시스템 접근 권한이 없으므로, 사용자 데이터를 무단으로 수집하여 외부로 전송하거나 영구적으로 저장할 수 없습니다. 스킬의 목적은 입력 텍스트를 처리하여 지식 그래프 데이터를 출력하는 것이며, 이는 스킬의 의도된 기능 범위 내에 있습니다. 5. **코드 품질 및 목적 일치 여부:** 스킬의 설명, 입력/출력 스키마, 예시가 명확하게 정의되어 있으며, 제공된 코드 스니펫은 NLP 패턴 정의에 대한 깔끔하고 구조화된 접근 방식을 보여줍니다. 이는 스킬의 목적과 일치하며, 전반적인 코드 품질이 양호할 것으로 예상됩니다.
Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.
Extract a person-founded-org relation from an English sentence
{
"language": "en",
"text": "Elon Musk founded SpaceX in 2002 in California."
}
{
"edges": [
{
"confidence": 0.9,
"evidence": "Elon Musk founded SpaceX in 2002 in California.",
"relation": "founded",
"source_id": "n0",
"target_id": "n1"
}
],
"nodes": [
{
"aliases": [],
"id": "n0",
"label": "Elon Musk",
"mentions": 1,
"type": "PERSON"
},
{
"aliases": [],
"id": "n1",
"label": "SpaceX",
"mentions": 1,
"type": "ORG"
},
{
"aliases": [],
"id": "n2",
"label": "2002",
"mentions": 1,
"type": "DATE"
},
{
"aliases": [],
"id": "n3",
"label": "California",
"mentions": 1,
"type": "LOC"
}
],
"stats": {
"edge_count": 1,
"input_char_count": 47,
"language_detected": "en",
"node_count": 4
}
}
Extract a person-role-org relation from a Korean sentence
{
"language": "ko",
"text": "\uae40\ucca0\uc218\ub294 \ub124\uc774\ubc84\uc758 CTO\uc774\ub2e4."
}
{
"edges": [
{
"confidence": 0.8,
"evidence": "\uae40\ucca0\uc218\ub294 \ub124\uc774\ubc84\uc758 CTO\uc774\ub2e4.",
"relation": "role_at",
"source_id": "n0",
"target_id": "n1"
}
],
"nodes": [
{
"aliases": [],
"id": "n0",
"label": "\uae40\ucca0\uc218",
"mentions": 1,
"type": "PERSON"
},
{
"aliases": [],
"id": "n1",
"label": "\ub124\uc774\ubc84",
"mentions": 1,
"type": "ORG"
}
],
"stats": {
"edge_count": 1,
"input_char_count": 14,
"language_detected": "ko",
"node_count": 2
}
}
Multiple references to the same person collapsed into one node with aliases list
{
"language": "en",
"merge_aliases": true,
"text": "Sam Altman leads OpenAI. Altman previously worked at Y Combinator. Sam is known for his vision."
}
{
"edges": [
{
"confidence": 0.9,
"evidence": "Sam Altman leads OpenAI.",
"relation": "leads",
"source_id": "n0",
"target_id": "n1"
},
{
"confidence": 0.75,
"evidence": "Altman previously worked at Y Combinator.",
"relation": "works_at",
"source_id": "n0",
"target_id": "n2"
}
],
"nodes": [
{
"aliases": [
"Altman",
"Sam"
],
"id": "n0",
"label": "Sam Altman",
"mentions": 3,
"type": "PERSON"
},
{
"aliases": [],
"id": "n1",
"label": "OpenAI",
"mentions": 1,
"type": "ORG"
},
{
"aliases": [],
"id": "n2",
"label": "Y Combinator",
"mentions": 1,
"type": "ORG"
}
],
"stats": {
"edge_count": 2,
"input_char_count": 99,
"language_detected": "en",
"node_count": 3
}
}
Filter to extract only PERSON entities, ignoring ORG and LOC
{
"entity_types": [
"PERSON"
],
"language": "en",
"text": "Alice and Bob work at Google in New York."
}
{
"edges": [],
"nodes": [
{
"aliases": [],
"id": "n0",
"label": "Alice",
"mentions": 1,
"type": "PERSON"
},
{
"aliases": [],
"id": "n1",
"label": "Bob",
"mentions": 1,
"type": "PERSON"
}
],
"stats": {
"edge_count": 0,
"input_char_count": 41,
"language_detected": "en",
"node_count": 2
}
}
Extract action owners and deadlines from meeting notes
{
"language": "en",
"text": "Alice will deliver the report by Friday. The review will be done by Bob before Monday."
}
{
"edges": [
{
"confidence": 0.7,
"evidence": "Alice will deliver the report by Friday.",
"relation": "deadline",
"source_id": "n0",
"target_id": "n2"
},
{
"confidence": 0.7,
"evidence": "The review will be done by Bob before Monday.",
"relation": "deadline",
"source_id": "n1",
"target_id": "n3"
}
],
"nodes": [
{
"aliases": [],
"id": "n0",
"label": "Alice",
"mentions": 1,
"type": "PERSON"
},
{
"aliases": [],
"id": "n1",
"label": "Bob",
"mentions": 1,
"type": "PERSON"
},
{
"aliases": [],
"id": "n2",
"label": "Friday",
"mentions": 1,
"type": "DATE"
},
{
"aliases": [],
"id": "n3",
"label": "Monday",
"mentions": 1,
"type": "DATE"
}
],
"stats": {
"edge_count": 2,
"input_char_count": 87,
"language_detected": "en",
"node_count": 4
}
}
Empty or whitespace-only text returns a structured error
{
"text": ""
}
{
"error": {
"code": "EMPTY_TEXT",
"message": "Input text must not be empty. Provide at least one sentence."
}
}
All examples are also available via the agent API:
/v1/agent/skills/41c1bae7-c70d-4367-954a-5c5260283746/schema
No reviews yet. Be the first to leave one!