mcpField
C
compound

compound

github.com/ai-native-camp生产力191.3k 次安装31 周前更新
代码仓库

关于 compound

compound 是一项将已验证、可复用的经验整理为结构化文档并建立可搜索知识库的技能。它涵盖上下文收集、重复检查、YAML 验证、交叉引用和后续选项。

主要功能

  1. 01识别经验记录触发语
  2. 02收集上下文与经验要点
  3. 03搜索相似文档
  4. 04按 schema 验证 YAML 元数据
  5. 05分类保存 Markdown 文档
  6. 06支持交叉引用与模式识别

适用场景

  1. 01记录经验证、可复用的工作流
  2. 02检查某条经验是否已有记录
  3. 03关联相关知识文档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ai-native-camp/camp-2 --skill compound

安装后在 Claude Code 中输入/compound确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

schema.yaml
assets/
critical-pattern-template.md
resolution-template.md

详细介绍

compound 스킬

목적: 작업 과정에서 검증된 인사이트를 즉시 문서화하여, 검색 가능한 지식 베이스를 구축한다.

개요

이 스킬은 인사이트가 확인되는 즉시 포착하여, YAML frontmatter 기반의 구조화된 문서로 저장한다. 카테고리별 단일 파일 아키텍처를 사용하며, 각 인사이트는 knowledge/[category]/[filename].md에 저장된다.


<critical_sequence name="insight-capture" enforce_order="strict">

7단계 프로세스

### Step 1: 트리거 감지

자동 감지 문구 (대화에서 인식):

  • "이거 잘 됐다"
  • "이 방식이 좋네"
  • "다음에도 이렇게 하자"
  • "이건 기록해두자"
  • "이 포맷이 먹혔다"
  • "이게 효과가 있었어"
  • "이렇게 하니까 됐어"
  • "기억해둬야 해"

OR 수동: /compound 커맨드

Non-trivial만 (재사용 가치 있는 인사이트):

  • 반복할 수 있는 패턴
  • 다른 상황에도 적용 가능한 교훈
  • 시행착오 끝에 발견한 방법
  • 실전에서 검증된 접근법
  • 구조적 개선을 가져온 발견

스킵 기준:

  • 이 상황에서만 통하는 일회성 방법
  • 단순 사실 기록 (수치, 날짜 등)
  • 이미 문서화된 내용의 반복
  • 아직 검증되지 않은 가설
### Step 2: 컨텍스트 수집

대화 이력에서 추출:

필수 정보:

  • domain: work / learning / project / tool / personal
  • insight_type: 인사이트 유형 (schema.yaml enum 참조)
  • component: 도메인 내 하위 컴포넌트 (schema.yaml enum 참조)
  • context: 어떤 상황에서 나온 인사이트인가 (1-3문장)
  • key_learning: 핵심 교훈 한 문장 (다른 상황에도 일반화 가능하게)
  • impact: critical / high / medium / low
  • tags: 검색 키워드 (소문자, 하이픈 구분)

추가 수집 항목:

  • 배경: 어떤 프로젝트/활동 중이었는가
  • 시도한 것들: 효과 없었던 접근들
  • 효과 있었던 것: 실제로 작동한 방법
  • 작동 이유: 왜 효과적이었는가
  • 재현 조건: 언제 이 방법을 쓸 수 있는가

BLOCKING 요건: domain, insight_type, 핵심 인사이트가 불분명한 경우 사용자에게 질문하고 응답을 기다린다:

문서화를 위해 몇 가지 확인이 필요합니다:

1. 어떤 도메인인가요? (work/learning/project/tool/personal)
2. 인사이트 유형은? (예: workflow_pattern, problem_solving, tool_discovery...)
3. 핵심 교훈을 한 문장으로 정리하면?

[응답 후 계속 진행]
### Step 3: 기존 문서 검색

knowledge/ 에서 유사 인사이트 검색:

# domain, tags, insight_type 기준으로 병렬 검색
Grep: pattern="domain: [domain]" path=knowledge/ output_mode=files_with_matches
Grep: pattern="tags:.*[keyword]" path=knowledge/ output_mode=files_with_matches -i=true
Grep: pattern="insight_type: [type]" path=knowledge/ output_mode=files_with_matches

유사 문서 발견 시 사용자에게 선택지 제시 후 대기:

유사 문서 발견: knowledge/[path]

어떻게 할까요?
1. 새 문서 생성 + 교차 참조 추가 (권장)
2. 기존 문서 업데이트 (동일한 인사이트의 보완인 경우)
3. 기타

선택 (1-3): _

사용자 응답 대기 후 선택한 액션 실행.

유사 문서 없으면 Step 4로 바로 진행.

### Step 4: 파일명 생성

형식: YYYYMMDD-[sanitized-insight-slug].md

Sanitization 규칙:

  • 소문자
  • 공백 → 하이픈
  • 특수문자 제거 (하이픈 제외)
  • 80자 미만으로 truncate

예시:

  • 20260304-claude-code-skill-structure.md
  • 20260304-mcp-server-debugging-pattern.md
  • 20260304-prompt-iteration-framework.md
### Step 5: YAML 검증 (BLOCKING)

schema.yaml 기반으로 모든 필수 필드 검증.

<validation_gate name="yaml-schema" blocking="true">

검증 항목:

  • domain: schema.yaml의 enum 값 중 하나
  • date: YYYY-MM-DD 형식
  • insight_type: schema.yaml의 enum 값 중 하나
  • component: 해당 domain에 매핑된 enum 값 중 하나 (domain_component_mapping 확인)
  • context: 20-300자, 구체적 상황 서술
  • key_learning: 10-200자, 일반화 가능한 교훈
  • impact: critical / high / medium / low
  • tags: 1-8개, 소문자 하이픈 구분

검증 실패 시 Step 6 차단:

YAML 검증 실패

오류:
- domain: 허용된 값이 아님 → work, learning, project, tool, personal 중 하나
- component: domain에 허용되지 않는 컴포넌트 → schema.yaml 참조
- tags: 대문자 포함 → 소문자로 변환 필요

수정된 값을 제공해주세요.

GATE 강제: 모든 검증 통과 전까지 Step 6 진행 금지.

</validation_gate>

### Step 6: 문서 작성

카테고리 디렉토리 결정: schema.yaml의 category_mapping으로 insight_type → 저장 경로 매핑.

문서 생성:

INSIGHT_TYPE="[검증된 YAML에서]"
CATEGORY_DIR="[category_mapping에서 매핑]"
FILENAME="[Step 4에서 생성]"
DOC_PATH="${CATEGORY_DIR}${FILENAME}"

# 디렉토리 없으면 생성
mkdir -p "${CATEGORY_DIR}"

# assets/resolution-template.md 기반으로 문서 작성
# (Step 2에서 수집한 컨텍스트 + Step 5에서 검증한 YAML frontmatter)

결과:

  • 카테고리 디렉토리에 단일 파일 생성
  • Enum 검증으로 일관된 분류 보장
### Step 7: 교차 참조 & 패턴 감지

Step 3에서 유사 문서 발견된 경우:

# 기존 문서에 Related 섹션 추가
# 새 문서에도 기존 문서 링크 추가

패턴 후보 감지:

동일 카테고리에 유사 인사이트 3개 이상 존재하면:

패턴 문서 후보 감지: [카테고리]에 유사 인사이트 X개
→ patterns/ 문서로 종합하시겠습니까?

Critical Pattern 승격 조건 (자동 승격 금지, 사용자 결정):

  • impact가 critical인 경우
  • 여러 도메인에 횡단 적용 가능한 경우
  • 반드시 기억해야 하는 경우

이 경우 Decision Menu에서 "2. 크리티컬 패턴에 추가" 옵션에 주석 추가:

이 인사이트는 크리티컬 패턴 승격을 고려해볼 만합니다

</critical_sequence>


<decision_gate name="post-documentation" wait_for_user="true">

捕获后的决策菜单

文档记录成功后,提供选项并等待用户回应:

인사이트가 기록되었습니다.

파일 생성:
- knowledge/[category]/[filename].md

다음 작업:
1. 계속 진행 (권장)
2. 크리티컬 패턴에 추가 - critical-patterns.md에 승격
3. 관련 문서 연결 - 유사 인사이트와 교차 참조
4. 기존 스킬에 추가 - .claude/skills/에 연결
5. 문서 확인 - 생성된 내용 보기

선택: _

各选项的处理方式:

选项 1:继续

  • 返回当前任务/工作流
  • 文档记录完成

选项 2:添加到关键模式

用户选择时:

  • 可重复应用的模式
  • 绝不能忘记的经验教训
  • 不直观但必不可少的规则

操作:

  1. 从文档中提取模式
  2. 按 assets/critical-pattern-template.md 的格式组织内容
  3. 添加到 knowledge/patterns/critical-patterns.md(保持编号顺序)
  4. 在相应文档中添加交叉引用
  5. 确认:「已添加到关键模式。」

选项 3:关联相关文档

  • 提示:「要关联哪份文档?(文件名或主题说明)」
  • 在 knowledge/ 中搜索目标文档
  • 添加双向交叉引用
  • 确认:「已添加交叉引用」

选项 4:添加到现有技能

  • 提示:「要添加到哪项技能?」
  • 在 .claude/skills/[skill-name]/ 中的适当文件内添加链接和说明
  • 确认:「已添加到 [skill-name] 技能」

选项 5:查看文档

  • 显示生成的文档内容
  • 再次提供决策菜单

</decision_gate>


<integration_protocol>

集成点

调用触发条件:

  • /compound 命令(主要接口)
  • 自动检测对话中的确认语句
  • 工作流完成后手动调用

调用此技能/Agent 的对象:

  • 无(terminal 技能——不委托给其他技能)

移交条件: 调用前的对话历史必须包含足够的上下文。

</integration_protocol>


<success_criteria>

成功标准

满足以下所有条件时,文档记录才算成功:

  • YAML frontmatter 验证通过(所有必填字段、格式正确、enum 值有效)
  • 已在 knowledge/[category]/[filename].md 中创建文件
  • domain-component 映射与 schema.yaml 一致
  • Context、What Worked、Why This Works 部分内容具体
  • 发现相似文档时已添加交叉引用
  • 已向用户提供决策菜单并确认操作

</success_criteria>


错误处理

上下文不足:

  • 询问用户缺失的信息
  • 获取必需信息前不得继续

YAML 验证失败:

  • 显示具体的错误项
  • 使用修正后的值重试
  • 阻止继续,直到验证通过

相似见解不明确:

  • 显示所有候选项
  • 由用户选择:新建文档/更新现有文档/单独关联

类别映射不确定:

  • 建议最接近的类别
  • 经用户确认后继续

执行指南

必须做到:

  • 验证 YAML frontmatter(Step 5 validation gate 必须阻止继续)
  • 确认 domain-component 映射有效
  • 写入文件前使用 mkdir -p 创建目录
  • 上下文缺失时询问用户并等待
  • 将 key_learning 概括为可应用于其他情境的经验

绝对不要:

  • 跳过 YAML 验证(validation gate 必须阻止继续)
  • 使用含糊的描述记录文档(导致无法搜索)
  • 记录假设或未经验证的内容
  • 自动将内容提升为 critical pattern(必须由用户决定)

示例场景

用户:「在 Claude Code 中创建技能时,我在 references/ 文件夹里放入示例后,技能遵循得准确多了。下次也这样做吧。」

技能激活:

  1. 检测触发条件:「下次也这样做吧」→ 自动激活
  2. 收集上下文:
    • domain: tool
    • insight_type: tool_discovery
    • component: claude-code
    • context:「编写 Claude Code 技能时,与只包含 SKILL.md 相比,同时在 references/ 文件夹中放入具体示例文件,能大幅提升技能执行的准确度」
    • key_learning:「编写 AI 技能/提示词时,同时提供具体示例文件比提供抽象指示更能提高执行准确度」
    • impact: high
    • tags: [claude-code, skill, references, accuracy, prompt-engineering]
  3. **搜索现有文档:**搜索 knowledge/tool-discoveries/
  4. 生成文件名:20260304-skill-references-improve-accuracy.md
  5. **YAML 验证:**通过
  6. 编写文档:knowledge/tool-discoveries/20260304-skill-references-improve-accuracy.md
  7. **交叉引用:**无(没有相似文档)

输出:

인사이트가 기록되었습니다.

파일 생성:
- knowledge/tool-discoveries/20260304-skill-references-improve-accuracy.md

다음 작업:
1. 계속 진행 (권장)
2. 크리티컬 패턴에 추가 - critical-patterns.md에 승격
3. 관련 문서 연결 - 유사 인사이트와 교차 참조
4. 기존 스킬에 추가 - .claude/skills/에 연결
5. 문서 확인 - 생성된 내용 보기

评论

支持 Markdown