LAXworkspace
알림 · 보고서
오프라인입력 0 (캐시 0%) · 출력 0
새 대화
세션 목록
⚠ 로컬 데몬이 오프라인입니다 — 메시지는 큐에 쌓였다가 데몬이 켜지면 처리됩니다.
변우석의 요청: [Jason 승인, 정본 준비 완료] 선행 병목이던 공통 거버넌스 스킬 정본을 만들어 둔 경로: daemon/agent-skills/_master/_common/.claude/skills/ 아래 distill-on-done, domain-skill-catalog 2종. 이제 인프라 배선 착수 부탁드립니다: 1) 시딩 훅: ensureSkillsDir 직후, 해당 에이전트 폴더가 비고 .seeded 마커 없으면 _common 2종 + (도메인 매칭 시) 해당 마스터를 복사. 멱등 마커 + 이름충돌 skip. 2) 런타임 주입: daemon 공통 주입 블록(834~865행)에 '작업 종료 시 distill-on-done 실행' 한 줄 추가. 3) 스케줄드 큐레이션: Cron→사서 세션 메시지→enqueueTask, 1차 제안모드(실삭제 사람 승인). 도메인→정본 매핑 소스는 회사 브레인 카탈로그(STORE_WIKI)와 _master 경로. 착수 가능한지, 단계·순서·라이브 검증 계획만 알려주세요.

검증 완료. 결론부터 보고합니다.

결론: 3건 모두 착수 가능. 단, 항목3에 결정 1건 필요

전제는 실제 코드와 일치합니다. 임의 구현은 하지 않았고, 아래는 배선 계획입니다.

코드 근거 (검증됨)

항목 실제 위치 상태
시딩 훅 ensureSkillsDir 547–551, 호출부 832 직후 삽입 지점 명확
정본 2종 _master/_common/.claude/skills/{distill-on-done, domain-skill-catalog} 존재 확인
런타임 주입 skillGuide 834–843, 합성 904행(persona+...) 배열 1줄 추가면 끝
큐레이션 선례 bridge/routes.ts:307–321 (createChatSession→createChatMessage→enqueueTask) 동일 패턴 재사용 가능

⚠️ 솔직한 한계 2가지 (추측 아님, 확인된 사실)

  1. _master에는 현재 _common만 존재. 도메인별 마스터는 0개. → "(도메인 매칭 시) 마스터 복사"는 지금은 no-op. 매핑 배선은 해두되, 도메인 정본이 추가돼야 실제 복사가 일어남. 이건 막힘이 아니라 정상 — 다만 1차 라이브 검증에서 보이는 건 _common 2종뿐입니다.
  2. 도메인→정본 매핑 키가 미정. daemon은 task.agent_slug만 안다. 회사 브레인 카탈로그(STORE_WIKI)·_master 경로명 중 무엇을 매핑 소스의 진실로 둘지 결정이 필요(아래 질문).

단계·순서

0. 안전 고정 (착수 전 필수)

  • daemon.js 현재 상태 git 커밋으로 고정. 항목1·2는 비가역 핵심(daemon)이라 revert 1회 원복 경로 확보 후 착수.

항목2 먼저 (가장 저위험·독립) → 항목1 → 항목3 순.

1. 런타임 주입 (항목2, daemon.js)

  • skillGuide 배열(834–843)에 "작업 종료 시 distill-on-done 실행" 한 줄 추가. 합성은 904행이 이미 처리.
  • 최소 변경. 인접 가이드 미수정.

2. 시딩 훅 (항목1, daemon.js 832 직후)

  • seedSkills(slug) 신규 함수: 에이전트 폴더의 .claude/skills가 비었고 .seeded 마커 없으면 → _common 2종 복사 + (slug→도메인 매칭 시) 해당 마스터 복사 → .seeded 기록.
  • 멱등: .seeded 존재 시 즉시 return. 이름충돌 skip: 대상 폴더 이미 있으면 건너뜀(에이전트 자작 스킬 보호).
  • _master 자체는 slug 순회 대상에서 제외(이미 _로 분기 가능).

3. 스케줄드 큐레이션 (항목3, 웹 코드 — daemon 무관, 별도 배포)

  • Cron → 사서(리아) 세션 생성 → 큐레이션 프롬프트 메시지 → enqueueTask. bridge/routes.ts:307 패턴 그대로.
  • 1차 제안모드: 리아는 삭제를 실행하지 않고 "병합/강등/삭제 후보" 제안만 출력. 실삭제는 사람 승인. → 승인 표면(채팅 ASK_USER 버튼 or /activity 액션)만 정하면 됨.

라이브 검증 계획 (자가 DONE 금지 — 눈으로 1건)

  1. 항목2: 임의 에이전트 1건 실행 → 시스템 프롬프트(또는 전송 로그)에 distill-on-done 한 줄이 실제로 들어갔는지 확인 + 종료 시 distill 동작 1건 관찰.
  2. 항목1: .seeded 없는 신규/빈 폴더 에이전트 1건 첫 실행 → _common 2종이 복사됐는지 파일 확인 + .seeded 생성 확인 + 재실행 시 재복사 안 됨(멱등) 확인 + 자작 스킬 동명일 때 skip 확인.
  3. 항목3: Cron 1회 수동 트리거 → 리아 세션에 큐 들어가고 /activity에 노출되는지 + 출력이 제안만(실삭제 없음)인지 확인.

롤백

  • 항목1·2: daemon.js git revert 1회. 시딩이 잘못 복사해도 .seeded+복사 파일 삭제로 원복(에이전트 자작물은 충돌 skip으로 애초 미접촉).
  • 항목3: 웹 배포 단위 revert + Cron 비활성.

진행을 위해 항목3의 매핑 소스 진실 한 가지만 정해 주세요:

ASK_USER: 도메인→정본 매핑의 '진실 소스'를 무엇으로 둘까요? || 회사 브레인 카탈로그(STORE_WIKI)를 진실로, _master는 복사 대상 || _master 폴더 구조(폴더명=도메인)를 진실로, 카탈로그는 색인용 || 둘 다 사용: _master 우선, 없으면 카탈로그 폴백