Community라이팅 & 에디팅github.com

Temper-Skills (라이브러리 모드)

에이전트 스킬의 결정 로직을 결정론적 Python 코드로 변환합니다. 추론 시 LLM 호출이 전혀 없으며, 적대적 페르소나 리뷰어가 테스트를 작성합니다. 시작: `uvx temper-skills audit <skill.md>`

Temper-Skills (라이브러리 모드)란 무엇인가요?

Temper-Skills는 에이전트 스킬이나 시스템 프롬프트의 의사 결정 로직을 결정론적 Python 코드(의사 결정 트리)로 컴파일하는 도구입니다. 추론 시 LLM을 전혀 호출하지 않아 비용이 없고 재현 가능하며, CI에서 동작을 고정(pin)할 수 있습니다. 적대적 페르소나 리뷰어가 테스트를 자동 생성하여 트리가 항상 테스트를 통과하도록 보장합니다. Claude Code, Cursor, Codex 등 모든 환경에서 CLI(`temper-skills`)를 통해 사용할 수 있으며, 기본 모드(라이브러리 모드)는 서브에이전트/태스크 프리미티브가 없는 환경에 적합합니다. 스키마 비준, 점진적 컴파일, 그레이 존 식별 및 검증 데이터셋 생성을 통해 최종 트리의 정확성과 감사 가능성을 확보합니다.

지원 대상✓Claude Code~Codex CLI✓Cursor✓OpenCode
npx skills add CyrilLeMat/temper-skills

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Temper-Skills (라이브러리 모드)은(는) 무엇을 하나요?

에이전트 스킬이나 프롬프트의 의사 결정 로직을 결정론적 Python 코드로 변환합니다 — 추론 시 LLM 호출이 전혀 없으며, 설치된 temper-skills CLI를 구동합니다. CLI를 조정하고 그 출력을 중계합니다. 라이브러리가 템퍼링 작업을 수행하며, 사용자가 직접 의사 결정 트리를 작성할 필요가 없습니다.

이 스킬은 루프를 직접 실행할 네이티브 서브에이전트/태스크 프리미티브가 없는 경우에 사용하세요. Claude Code 내에서는 서브에이전트 모드 스킬을 선호합니다(키 없이 실행되며 라이브 패널이 제공됨). 이 모드는 대신 CLI를 셸 아웃하여 실행합니다.

사용 시기

  • .md 스킬, 시스템 프롬프트 또는 플레이북이 구조화된 입력에 대한 조건부 라우팅/의사 결정 로직(if-this-then-that)을 보유하고 있으며, 이 로직이 테스트 가능하고 PR에서 diff 가능하며 모델 업데이트에 탄력적이어야 할 때
  • 적합한 예: 티켓 라우팅, 분류 규칙, 자격 확인 — 사전 계산 가능한 특성에 대한 범주형 결정
  • 부적합한 예: 연속 점수 매기기, 텍스트 생성, 또는 모델이 접근할 수 있는 문서가 없는 로직

필수 규칙

  1. 항상 CLI를 통해 라이브러리를 호출하세요. 결정 로직을 자연어로 다시 구현하여 실행을 대체하지 마십시오.
  2. 스키마 비준을 절대 건너뛰지 마십시오. 승인하는 스키마는 루프가 함께 공진화하는 초기 시드입니다(schema_critic이 확장하고, '가지 획득' 가드가 가지치기함). 따라서 시드의 무음 추출 오류는 모든 것을 오염시킵니다. 터미널이 연결되지 않은 경우에도 아래 파일 기반 게이트(--propose-schema)를 사용하세요. 공진화된 스키마와 CLI가 마지막에 출력하는 schema gaps / schema grew 노트를 검토하세요.
  3. 절대 무음 설치하지 마십시오. 게이트(0단계)에서 라이브러리나 백엔드가 누락되었다고 보고하면, 사용자에게 pip install 실행 또는 환경 변경에 대해 먼저 물어보세요.
  4. 트리가 "올바르다"고 주장하지 마십시오. — 결정론적이고 감사 가능하다고만 말하세요. 정확성은 사용자의 책임이며, 비준된 예제(validate, 4단계)를 통해 확립됩니다.
  5. CLI의 게이트와 평결을 그대로 중계하세요 — 감사 평결, 페르소나 패널, 그레이 존, 비준 대기 중인 사례. 요약하여 생략하지 마십시오.

0단계 — 설치 및 백엔드 확인

python scripts/check_install.py를 실행하고 종료 코드에 따라 분기합니다:

  • 0 — 준비 완료, 진행.
  • 10 — 설치됨 but 모델 백엔드 없음. 사용자에게 알림: temper-skills에는 백엔드(로그인된 claude 또는 opencode CLI, 또는 환경에 설정된 ANTHROPIC_API_KEY)가 필요합니다. 어떻게 제공할지 물어보십시오. 백엔드가 준비될 때까지 진행하지 마십시오.
  • 11 — 설치되지 않음. 질문: "temper-skills가 설치되지 않았습니다. 지금 설치하시겠습니까? (pip install temper-skills)" 명시적 확인이 있을 때만 설치합니다.

1단계 — guide를 사용한 분류 (여기서 시작)

의사 결정 로직을 포함하는 .md 파일 또는 프롬프트를 찾은 후(모호한 경우 사용자와 경로 확인), 한 줄 둘러보기 명령을 실행합니다:

temper-skills guide <path/to/skill.md> --json

사용자가 디렉토리(스킬 라이브러리)를 가리키는 경우, 하나의 파일을 안내하는 대신 해당 디렉토리를 스캔합니다 — 감사는 그 자체로 보고할 가치가 있는 보고서입니다:

temper-skills audit <dir> --json --report audit.md

순위가 매겨진 결과를 중계합니다(JSON은 스킬별 보고서 목록이며, 가장 실행 가능한 것부터 표시됨) 상위 선택 항목을 guide할 것을 제안합니다. audit.md는 PR에 공유 가능한 Markdown 버전입니다.

항상 --json을 전달하십시오. guide와 ingest는 기계 판독 가능한 매니페스트를 stdout으로 내보내고 사람이 읽을 수 있는 Rich 패널을 stderr로 보냅니다 — 매니페스트를 읽고 패널을 스크래핑하지 마십시오. guide의 매니페스트는 다음과 같습니다:

{ "audit": { "verdict": "...", "recommended_action": "...", ... },
  "action_taken": "temper|decompose|...",
  "status": "compiled|stopped_for_ratification|action_not_auto_run",
  "final_skill_path": "...", "artifacts": ["..."] }

guide는 스킬을 감사한 후 recommended_action을 따릅니다. 감사 평결과 조치를 사용자에게 중계합니다:

  • temper — 하나의 트리 형태 결정. guide가 템퍼링(빠름); status: compiled.
  • decompose — 플로우(2개 이상의 결정). guide가 결정별 스키마를 내보내고 중지됨; status: stopped_for_ratification.
  • externalize_data / build_normalizer / delegate_prose — 템퍼링 작업이 아님. status: action_not_auto_run; 조치 힌트를 중계하고 중지합니다.

guide는 둘러보기입니다: quick 프로필을 실행하고 추론된 스키마를 자동 수락합니다. 이것은 "이것이 무엇을 하는지 보여줘"에는 적합하지만, 사용자가 신뢰할 트리의 경우 2단계로 이동하여 스키마가 비준되도록 하십시오.

2단계 — 관리자 트리 생성 (비준된 흐름)

2a. 스키마 초안 작성 및 비준을 위해 중지

temper-skills ingest <path/to/skill.md> --propose-schema --json

이 명령은 schema.proposed.py를 작성하고 중지됩니다 — 루프는 비준되지 않은 스키마에서 절대 실행되지 않습니다. stdout의 JSON은 {proposed_schema_path, fn_name, features:[{name,type,description}], constraints}를 제공합니다. 제안된 특성을 사용자에게 보여주고 한 가지만 물어보십시오: 이 특성을 수락하시겠습니까, 아니면 목록을 수정하시겠습니까? 사용자의 편집 사항을 schema.proposed.py에 적용합니다.

여기서 사용자에게 다른 것은 묻지 마십시오 — 특성 범위나 유지할 가지에 대해 묻지 마십시오. 가지치기는 루프(오버엔지니어링 비평가)의 작업이며 사용자의 작업이 아닙니다.

2b. 비준된 스키마로 컴파일

temper-skills ingest <path/to/skill.md> \
  --schema schema.proposed.py \
  --profile standard \
  --json

사용자와 함께 프로필을 선택하십시오 — quick | standard | audit-grade, 기본값 standard; 추천하기 전에 references/profiles.md를 참조하십시오. --json은 비대화형을 의미합니다: 루프는 수렴될 때까지 실행되고(이렇게 구동될 때는 라운드별 게이트를 위해 일시 중지할 수 없습니다 — 그 게이트는 휴먼 터미널 기능입니다) 결과 매니페스트를 stdout으로 내보냅니다. 그것을 읽고 패널을 스크래핑하지 마십시오. (--require-fit는 감사 평결이 skip인 경우 종료 코드 3과 함께 조기 종료합니다; 추가하여 부적합한 경우 루프를 낭비하지 않도록 하십시오.)

2c. 조치가 decompose인 경우

플로우는 먼저 분할되어야 합니다; 각 결정을 개별적으로 템퍼링하십시오:

temper-skills decompose <path/to/skill.md> --temper-each --out-dir out/

이 명령은 결정당 하나의 스키마를 내보내고 비준을 위해 중지됩니다. 스키마를 표면화하고 사용자가 편집할 수 있도록 한 다음, 동일한 명령을 다시 실행하여 각각을 트리와 오케스트레이터 스킬로 컴파일합니다(--yes-unratified는 중지를 건너뜁니다 — 사용자가 요청하지 않는 한 피하십시오).

3단계 — 아티팩트 보고 (매니페스트에서)

ingest --json 매니페스트는 진실 공급원입니다 — 다음 필드를 읽고 스크래핑하지 마십시오:

{ "tree_path": "...", "tempered_skill_path": "...",
  "validation_dataset_path": "..." , "validation_case_count": 0,
  "gray_zones": [{"node": 1, "condition": "...", "note": "..."}],
  "features": ["..."], "node_count": 0, "profile": "...", "cost_usd": 0.0 }

세 가지 아티팩트를 모두 사용자에게 표면화합니다:

  • tree_path — 의사 결정 트리: 아무것도 임포트하지 않으며, 추론 시 LLM 호출이 전혀 없고, generated_at + 모델 헤더와 노드별 출처 주석이 포함됨;
  • tempered_skill_path — 템퍼링된 skill.md: 원래 스킬이 재결정하는 대신 고정된 트리를 호출하도록 다시 작성됨. 전달물의 절반; 버리지 마십시오;
  • validation_dataset_path — 루프가 그레이 존을 위해 구축한 커밋된 .validation.jsonl, 비준 대기 중(validation_case_count). "agrees": false인 행은 사용자가 판결해야 할 가장 가치 있는 불일치입니다. 그 옆에 있는 동작 잠금 테스트(test_<stem>.py)는 항상 통과합니다; 비준된 레이블만이 테스트를 실패하게 만들 수 있습니다.

사용자에게 경로, 프로필, cost_usd 및 gray_zones를 알려줍니다. 규칙 4를 재진술합니다: 결정론적이고 감사 가능하며 "올바른" 것이 아닙니다.

4단계 (선택 사항) — CI에 고정

사용자가 레이블이 지정된 집합을 비준하면, 이를 기준으로 트리의 유효성을 검사합니다:

temper-skills validate decision_tree.generated.py ratified.json --min-agreement 1.0

불일치 시 0이 아닌 종료 코드 — 이것이 CI에서 트리를 고정하는 방법입니다. 각 불일치는 트리 버그 또는 레이블이 잘못된 예제입니다; 승인을 위해 중계합니다.

참조

프로필을 추천하기 전에 라운드/수렴/페르소나 패널/프로필당 비용에 대한 references/profiles.md를 참조하십시오.

금지 사항

  • 라이브러리를 실행하는 대신 트리의 로직을 자연어로 작성하지 마십시오.
  • quick 데모에서도 스키마 비준을 건너뛰지 마십시오(quick은 출처 주석을 생략할 뿐 게이트는 생략하지 않습니다).
  • 명시적 확인 없이 환경을 설치하거나 수정하지 마십시오.
  • 생성된 트리가 "올바르다"고 주장하지 마십시오.

관련 스킬