Community생산성 & 협업github.com

andresanemic/lore-plugin

어렵게 쌓은 경험을 AI 기반 개발에 재사용 가능한 판단 기준으로 전환하세요.

lore-plugin란 무엇인가요?

이 스킬은 Claude Code의 플러그인이자 Lore 프로젝트이자 작업 세션이 열리는 폴더인 **봇(bot)**을 생성합니다. 봇은 프로젝트에 대한 질문에 답하지 않고, 실제 파일에 대해 명령을 실행하여 결과를 반환합니다. 이 스킬은 `nuevo`(처음부터)와 `federar`(기존 여러 영역의 기준 통합) 두 가지 모드로 작동하며, 생성된 봇은 자체적인 기준(캐논)과 라우팅 테이블을 통해 여러 프로젝트의 Lore를 참조합니다. 특히 기준이 아직 없는 원자료 소스에 대해서는 봇 자체에서 증류하지 않고 해당 소유 영역에서 먼저 Lore를 생성한 후 페더레이션하는 엄격한 규칙을 따릅니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add andresanemic/lore-plugin

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

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

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

문서

create-bot — 봇 만들기: 설치 가능한 작업 공간

봇을 생성합니다: Claude Code 플러그인이자 Lore 프로젝트이며 작업 세션이 열리는 장소인 폴더입니다. 봇은 프로젝트에 대한 질문에 답하지 않습니다. 프로젝트 안에서 작업합니다. 명령이 들어가면 봇이 실제 파일에 대해 실행하고 결과가 돌아옵니다.

나침반이자 유일하게 중요한 테스트: 짧은 명령이면 충분하다. 결과를 얻기 위해 프로젝트를 봇에게 설명해야 했다면, 적재 기준에 누락이 있었던 것입니다.

봇이 무엇이고, 무엇이 아닌가

create-bot은 create-area의 자매가 아니라 create-project의 자매입니다. 표준 경로는 bots/proyectos/{slug}/ 입니다. bots는 봇을 호스팅하는 영역으로, web 영역이 웹사이트를 호스팅하는 것과 같습니다. 해당 영역이 아직 존재하지 않으면 다른 프로젝트와 마찬가지로 create-area가 먼저 생성합니다. 사용자가 명시하면 다른 영역이 봇을 호스팅할 수 있습니다. 가정하지 마십시오.

영역프로젝트봇
보유프로젝트하나의 작업작업 세션
지배하는 Lore도메인의 방법해당 작업에이전트의 행동 방식
열어서레지스트리 확인해당 작업 진행여러 프로젝트 중 하나 작업

봇은 이 키트에서 외부로 라우팅하는 유일한 아티팩트입니다. 영역과 프로젝트는 장소이고, 봇은 그 안으로 가져가는 렌즈입니다.

봇은 자동으로 플러그인이 아닙니다. 기본적으로 캐논과 CLAUDE.md가 있는 폴더입니다. 거기서 세션을 열면 아무것도 설치하지 않고 기준이 이미 로드되어 있습니다. .claude-plugin/과 자체 리포지토리로 스킬에 감싸는 것은 선택적 봉인(§10)으로, 팀에 전달하는 한 가지 목적을 수행합니다. 혼자 작업하는 사람에게는 여전히 유지 관리해야 하는 스캐폴딩입니다.

영역이 되어서는 안 되는 이유. 영역은 프로젝트의 컨테이너이며 해당 도메인의 기준을 소유합니다. 봇은 라우팅하는 기준을 소유하지 않습니다. 빌려옵니다. 영역으로 구축하면 지불하지 않은 기준을 축적하는 부모가 생성되며, 첫 번째 결과는 빠르게 나타납니다. 기준이 일반화되면 그것을 얻은 영역 대신 봇으로 승격됩니다.

두 가지 모드

모드시기생성물
nuevo처음부터. 수집할 기존 Lore가 없음.브레인스토밍 + 소스 문서에서 탄생한 캐논.
federar기준이 이미 여러 영역에 분산되어 존재함.캐논 더하기 동기화된 복사본과 해당 Lore 본문에 대한 라우팅 테이블.

둘 다 동일한 아티팩트를 생성합니다. federar는 scripts/ecosistema.json, scripts/sync.js 및 두 개의 생성된 파일(lore/enrutamiento.md(라우팅 테이블)와 .claude/settings.local.json(라이브 트리 접근))을 추가합니다. 복사가 켜져 있지 않으면(§7) 아무것도 복사하지 않습니다.

봇이 이미 존재하는 경우

위의 두 모드는 처음부터 구축하며, 이것이 이 스킬이 호출되는 유일한 방법은 아닙니다. 이미 트리에 있는 봇을 가리키는 경우도 있습니다. 범위를 수정하고, README를 다시 쓰고, 소스를 추가합니다. 아래 감사를 생성 절차 대신 실행한 다음 §7(동기화), §10(패키징) 및 §11(검증)에서 다시 합류합니다.

확인방법실패 조건
범위매니페스트의 모든 항목을 기관 레지스트리와 대조레지스트리가 나열하지 않은 소스가 라우팅됨
경계캐논의 범위 외 선언을 읽음경계선 프로젝트가 누락되었거나 혼란 이유 없이 나열됨
고아ls 동기화 대상을 매니페스트와 대조(복사가 켜진 경우만)소스가 더 이상 매니페스트에 없는 폴더가 살아남음
복사봇을 사용하는 사람과 트리를 가지고 있는지 질문모두 폴더 트리를 공유하는 사람들에게 lore-ecosistema/가 켜져 있음. 독자가 없는 중복임
README작성자가 아닌 독자로 읽음방법을 논쟁하거나 예제가 봇이 더 이상 서비스하지 않는 프로젝트에 관한 것임
설치명령어를 실행하고 읽지 않음기억에서 작성되었거나 공개 봇에서 복사됨
게이트봇이 패키징된 경우 node scripts/validar.js0이 아닌 종료 코드

감사는 더 가벼운 절차가 아닙니다. 새로운 빌드가 찾을 수 없는 것을 찾습니다: 봇이 서비스하도록 구축된 것과 현재 서비스하는 것 사이의 차이, 이는 누구도 스스로 재 도출하지 않는 것입니다.

소스에 Lore가 아직 없는 경우

일반적인 시작점은 깔끔한 Lore 본문 세트가 아닙니다. 원자재입니다: 문서 폴더, 코드베이스, 데이터베이스, Notion 작업 공간 — 모두 증류되지 않은 것입니다. 해당 자료는 페더레이션될 수 없으며, 수정은 지름길이 아닌 체인입니다:

원시 소스(No Lore)
   └─ create-area        → 이 기준을 소유할 작업 영역
        └─ transmute-lore (추가)  → 내부에 흩어진 기준 복구
             └─ create-bot (federar)  → 봇이 라우팅

법칙: 봇은 결코 자체로 증류하지 않습니다. Lore가 없는 소스는 소유 영역에서 Lore를 얻은 후에만 페더레이션됩니다. 봇이 원자재를 직접 증류하도록 하면 봇이 얻지 못한 기준의 소유자가 됩니다. 이는 영역/봇 구분이 방지하기 위해 존재하는 정확한 실패이며 실제로 되돌릴 수 없습니다. 해당 기준의 유일한 복사본이 봇에 살게 되면 영역은 더 이상 진실의 소스가 될 수 없습니다.

구체적으로, 아래 2단계에서 무엇이든 설계하기 전에 모든 소스를 인벤토리화하십시오. 인벤토리에는 두 가지 질문이 있으며 소유권이 먼저입니다.

첫 번째 질문: 이것이 기관에 속합니까?

봇의 범위는 서비스하는 기관의 레지스트리에서 비롯되며, 구축 중인 머신의 폴더 트리에서 절대 비롯되지 않습니다.

소스에 Lore가 있는지 묻기 전에 누구의 것인지 물으십시오. 기관 자체 레지스트리(FASES.md, 카탈로그, 헌장)를 열고 소스가 거기에 나열되어 있는지 확인하십시오. 나열되지 않으면 매니페스트에 들어가지 않습니다.

이것이 첫 번째 게이트이며 나중 확인이 아닌 이유: 실패는 조용합니다. 빌더의 프로젝트 트리를 걸어서 채운 매니페스트는 완전하고 내부적으로 일관된 것처럼 보이지만 잘못된 라우팅 테이블을 생성하며 아무도 이후에 재 도출하지 않습니다. 디스크 상의 근접성은 한 번 기관 멤버십으로 오인되며 그때부터 상속됩니다.

경계선 소스는 단순히 생략되지 않고 선언됩니다. 기관과 사람을 공유하거나 공개 쇼케이스에 나타나거나 봇 자체의 첫 번째 사용 사례였던 프로젝트는 속한 것처럼 보일 것입니다. 명시적으로 범위 외로, 혼동되는 이유와 함께 캐논에 넣으십시오. 이유와 함께 쓰여진 경계는 유지됩니다. 생략된 경계만 있는 것은 누군가가 폴더 트리를 볼 때마다 다시 교차됩니다.

두 번째 질문: Lore 상태는 어떻습니까?

소스 상태수행할 작업
영역에 Lore가 있음직접 페더레이션.
기준은 있지만 Lore 없음(Lore 없이 태어난 프로젝트)해당 프로젝트에서 먼저 transmute-lore 추가. 기준은 구조되며, 결코 발명되지 않습니다.
원자재, 소유 영역 없음도메인에 대해 create-area를 수행한 다음 transmute-lore 추가, 그런 다음 페더레이션.
텍스트가 아님(데이터베이스, 스프레드시트, Notion 베이스)먼저 텍스트로 추출 — 스키마 덤프, 내보내기, pdftotext -layout. 추출은 해당 영역의 fuente/에 저장되며 절대 봇에 저장되지 않습니다. sync.js는 .md, .txt 및 .json만 복사하므로 추출되지 않은 것은 봇에 조용히 보이지 않습니다.
자유 노트 수신함(Obsidian 볼트의 notas/, Markdown 폴더)절대 페더레이션되지 않음. Lore를 보유하지 않습니다. 원시 경험일 뿐이며 .md이므로 실수하기 쉽습니다. sync.js가 기꺼이 복사하고 라우팅 테이블이 노트를 기준인 것처럼 나열할 것입니다. 먼저 obsidian-lore로 채굴하십시오. 살아남은 것은 그것을 소유한 영역에 도착하고 봇은 그것으로 라우팅합니다.

이 인벤토리를 브레인스토밍의 일부로 사용자에게 보고하십시오. 각 소스에 Lore가 없으면 봇이 존재하기 전에 create-area/transmute-lore 실행이 필요함을 정직한 비용과 함께 알리십시오. 건너뛰고 "모두 봇에 증류"하는 것을 제안하는 것은 더 빠르지만 유지 관리할 수 없는 아티팩트를 생성합니다.

전제 조건

대상 영역이 존재하고 lore/에 최소 identidad.md + principios.md가 있어야 합니다. 없으면 중단하고 create-area를 먼저 제안하십시오. 봇은 다른 프로젝트처럼 영역의 방법을 상속합니다.

언어 규칙: 생성된 모든 것(콘텐츠 및 아티팩트 파일 이름)을 이 스킬이 작성된 언어가 아닌 사용자의 언어로 작성하십시오. identidad.md, principios.md, FASES.md, proyectos/, canon/, enrutamiento.md는 스페인어 정식 형태입니다. 지역화하십시오. 모든 언어에서 고정: CLAUDE.md, lore/, index.md, skills/, .claude-plugin/. 영역의 확립된 이름은 트리 내에서 우선합니다. 충돌을 표시하고 절대 조용히 해결하지 마십시오.


이 스킬이 존재하는 이유인 법칙

봇은 세 가지 다른 소유자를 가진 세 가지 기준 본문을 보유합니다. 병합하는 것이 기본 실패 모드이며 조용합니다. 모든 것이 여전히 작동하고 복사본이 천천히 소스를 능가하기 시작합니다.

본문무엇규칙
skills/{slug}/canon/봇 자체의 기준 — 모든 결정 전에 로드됨증류됨; 스킬 내부에서 이동
lore/봇 유지 관리를 위한 기준다른 프로젝트처럼 프로젝트 자체의 것
빌린 기준다른 모든 프로젝트의 Lore포인터로, 해당 주소에서 도달; 절대 권위적이지 않음

세 명의 소유자이므로 세 개의 이름입니다. 분리하는 테스트:

소스를 폐기할 수 있습니까? 증류는 원본을 대체할 수 있는 더 작은 것을 생성합니다. 복사는 원본을 대체할 수 없는 동일한 것을 생성합니다.

빌린 기준은 복사본이 아닌 포인터로 도달합니다. 라우팅 테이블은 주소를 제공하고 생성된 접근이 열어주며 해당 Lore는 한 명의 소유자와 한 버전을 유지합니다. 이는 키트의 나머지 부분이 실행되는 동일한 DRY 규칙으로, 프로젝트가 영역의 모듈을 복제하는 대신 참조하는 것과 같습니다. lore-ecosistema/(§7)는 한 가지 상황에 대해서만 포인터를 복사본으로 바꾸며 기본적으로 꺼져 있습니다.

그리고 라우팅이 작동하게 하는 법칙:

프로젝트 이름이 아닌 작업 유형별로 라우팅하십시오.

하나의 엔터티가 교차를 금지하는 자체 원칙을 가진 여러 기준 본문을 소유할 수 있습니다. 일반적인 분할은 무엇을 하는지 대 어떻게 알리는지입니다. 즉, 제품 대 커뮤니케이션입니다. 이는 엔터티가 단일 프로젝트이든 봇이 서비스하는 기관이든 적용됩니다. 이름 지정은 Lore를 선택하지 않습니다. 기관은 라우팅 테이블에 의도적으로 두 번 나타납니다. 작업이 둘 사이에서 모호하면 질문하십시오. 잘못된 기준에 대해 작성된 여섯 문단보다 저렴합니다.

봇이 실제로 서비스하는 엔터티에서 이 섹션을 작성하십시오. 라우팅 테이블은 독자가 자신의 경우를 확인하는 부분이며 다른 봇에서 가져온 예제는 권위적으로 보이면서 잘못된 Lore로 보냅니다.


절차

1. 사용자에게 묻기 — 세 가지 질문, 평범한 언어로

평범하게 말하십시오. 이 문서는 모델을 지시하기 때문에 밀도가 높습니다. 사용자와의 대화는 그렇지 않습니다. 이 스킬을 사용하는 동안 캐논, 페더레이션, 증류, 유효성 경계, 불변 단서, 반대 범위 또는 Entre라고 말하지 마십시오. 의미하는 것을 말하십시오: 봇이 항상 아는 것, 연결, 유지할 가치가 있는 기준, 이것이 참인 것을 멈추는 곳, 규칙, 봇이 아닌 것. 문장에 용어집이 필요하면 문장을 다시 작성하십시오.

하나씩 물어보고 사용자 자신의 말로 답변을 받으십시오:

  1. 봇 이름은 무엇으로 할까요?
  2. 무엇에 사용할 건가요? — 자유 텍스트. 정리하지 마십시오. 나중에 작업이 선언된 것과 일치하는지 확인하기 위해 다시 읽습니다.
  3. 서비스할 정보가 있는 폴더는 어디인가요? — 경로를 요청하십시오. 폴더, 데이터베이스, 문서 덤프, 노트. "아직 모름"을 받아들이고 계속하십시오. 하나의 소스로 봇을 만들고 성장시킬 수 있습니다.

다른 모든 것은 위 세 가지에서 파생되거나 디스크에서 읽습니다. 사용자에게 그것에 대해 심문하지 마십시오:

파생출처
{{BOT_SLUG}}이름, 케밥 케이스; 패키징된 경우 스킬 이름이기도 함
{{BOT_TITLE}}주어진 그대로의 이름
{{AREA_PATH}}기본적으로 bots 영역; 제안하고 한 줄로 확인
{{MODE}}기존 소스가 있으면 federar, 없으면 nuevo
{{PURPOSE}}답변 2, 그대로
{{SOURCE_DOCS}} / {{ECOSYSTEM}}답변 3, 각 경로를 디스크에서 검사한 후

그런 다음 직접 경로를 검사하고 발견한 내용을 짧은 표로 보고하십시오. 파일 수, 이미 기준이 기록된 파일, 원시 파일. 이 보고서가 답변 3을 2단계의 인벤토리로 바꿉니다. 사용자에게 자신의 폴더를 분류하도록 요청하지 마십시오.

2. 컨텍스트 읽기(무엇이든 생성하기 전에 필수)

  1. 영역 Lore: identidad.md + principios.md (+ index.md 및 테마 모듈).
  2. 영역 FASES.md 및 이미 등록된 모든 형제 봇.
  3. 소스 문서. PDF의 경우 텍스트 추출(pdftotext -layout). 캐논은 이들로부터 증류됩니다. 모델의 주제에 대한 자체 지식에서 절대 증류되지 않습니다.
  4. federar만 해당 — 먼저 소스 인벤토리화(위 표 참조). 의도된 모든 소스를 이미 Lore가 있는지 분류하고 봇이 페더레이션하기 전에 create-area/transmute-lore가 필요한 것을 표면화하십시오. 브레인스토밍 전에 수행하십시오. 이는 봇이 첫날에 라우팅할 수 있는 것을 변경합니다.
  5. federar만 해당: 라우팅하려는 각 Lore 본문을 읽으십시오. 목적과 반대 범위가 필요합니다. 반대 범위는 두 형제 사이의 경계가 어디에 있는지 알려주며, 경계는 여기서 진정으로 증류 가능한 유일한 것입니다.

3. 캐논 브레인스토밍(하드 게이트)

brainstorming을 호출하십시오. 설계가 승인되기 전에 파일을 생성하지 마십시오. §1의 평범한 언어 규칙을 여기서도 적용하십시오. 설계를 제시하십시오.

…

[번역을 위해 잘림]

관련 스킬