SKILL.md
SKILL.md는 YAML 프론트매터와 마크다운 본문을 사용하여 에이전트 스킬을 설명하는 표준 파일 형식입니다. KnowledgePulse SDK는 프론트매터에 선택적 kp: 확장 블록을 추가하여 비KP 도구와의 완전한 하위 호환성을 유지하면서 지식 캡처 구성을 가능하게 합니다.
함수
parseSkillMd(content)
SKILL.md 문자열을 구조화된 구성 요소로 파싱합니다.
function parseSkillMd(content: string): ParsedSkillMd
매개변수:
| 매개변수 | 타입 | 설명 |
|---|---|---|
content | string | 원본 SKILL.md 파일 콘텐츠 |
반환값: ParsedSkillMd
interface ParsedSkillMd {
frontmatter: SkillMdFrontmatter; // 표준 YAML 필드
kp?: SkillMdKpExtension; // KnowledgePulse 확장 (존재하는 경우)
body: string; // 프론트매터 이후의 마크다운 콘텐츠
raw: string; // 원본 입력 문자열
}
예외: 프론트매터가 누락되거나 YAML이 잘못되었거나 필수 필드가 없는 경우 ValidationError 발생.
예제:
import { parseSkillMd } from "@knowledgepulse/sdk";
const content = `---
name: code-reviewer
description: Reviews pull requests for code quality issues
version: "1.0.0"
author: acme-corp
tags:
- code-review
- quality
allowed-tools:
- github_pr_read
- github_pr_comment
kp:
knowledge_capture: true
domain: code-review
quality_threshold: 0.8
privacy_level: aggregated
visibility: network
reward_eligible: true
---
## Instructions
You are a code review assistant. Analyze the given pull request
and provide actionable feedback on code quality, security, and
best practices.
`;
const parsed = parseSkillMd(content);
console.log(parsed.frontmatter.name); // "code-reviewer"
console.log(parsed.frontmatter.tags); // ["code-review", "quality"]
console.log(parsed.kp?.knowledge_capture); // true
console.log(parsed.kp?.quality_threshold); // 0.8
console.log(parsed.body); // "\n## Instructions\n\nYou are a ..."
generateSkillMd(frontmatter, body, kp?)
구조화된 구성 요소에서 SKILL.md 문자열을 생성합니다.
function generateSkillMd(
frontmatter: SkillMdFrontmatter,
body: string,
kp?: SkillMdKpExtension,
): string
매개변수:
| 매개변수 | 타입 | 설명 |
|---|---|---|
frontmatter | SkillMdFrontmatter | 표준 YAML 프론트매터 필드 |
body | string | 마크다운 본문 콘텐츠 |
kp | SkillMdKpExtension | (선택) KnowledgePulse 확장 필드 |
반환값: YAML 프론트매터 구분자(---)가 포함된 완전한 SKILL.md 문자열.
예제:
import { generateSkillMd } from "@knowledgepulse/sdk";
const skillMd = generateSkillMd(
{
name: "data-analyst",
description: "Analyzes datasets and produces insights",
version: "0.2.0",
tags: ["analytics", "data"],
"allowed-tools": ["sql_query", "chart_render"],
},
"## Instructions\n\nAnalyze the provided dataset and generate a summary report.",
{
knowledge_capture: true,
domain: "data-analysis",
quality_threshold: 0.7,
visibility: "org",
},
);
console.log(skillMd);
// ---
// name: data-analyst
// description: Analyzes datasets and produces insights
// ...
validateSkillMd(content)
예외를 발생시키지 않고 SKILL.md 문자열을 유효성 검사합니다. 정제와 스키마 유효성 검사를 모두 실행하여 모든 오류를 수집합니다.
function validateSkillMd(content: string): {
valid: boolean;
errors: string[];
}
매개변수:
| 매개변수 |
|---|