이전 메시지 불러오는 중…
변우석의 요청:
[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가지 (추측 아님, 확인된 사실)
_master에는 현재_common만 존재. 도메인별 마스터는 0개. → "(도메인 매칭 시) 마스터 복사"는 지금은 no-op. 매핑 배선은 해두되, 도메인 정본이 추가돼야 실제 복사가 일어남. 이건 막힘이 아니라 정상 — 다만 1차 라이브 검증에서 보이는 건_common2종뿐입니다.- 도메인→정본 매핑 키가 미정. 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마커 없으면 →_common2종 복사 + (slug→도메인 매칭 시) 해당 마스터 복사 →.seeded기록.- 멱등:
.seeded존재 시 즉시 return. 이름충돌 skip: 대상 폴더 이미 있으면 건너뜀(에이전트 자작 스킬 보호). _master자체는 slug 순회 대상에서 제외(이미_로 분기 가능).
3. 스케줄드 큐레이션 (항목3, 웹 코드 — daemon 무관, 별도 배포)
- Cron → 사서(리아) 세션 생성 → 큐레이션 프롬프트 메시지 →
enqueueTask.bridge/routes.ts:307패턴 그대로. - 1차 제안모드: 리아는 삭제를 실행하지 않고 "병합/강등/삭제 후보" 제안만 출력. 실삭제는 사람 승인. → 승인 표면(채팅 ASK_USER 버튼 or /activity 액션)만 정하면 됨.
라이브 검증 계획 (자가 DONE 금지 — 눈으로 1건)
- 항목2: 임의 에이전트 1건 실행 → 시스템 프롬프트(또는 전송 로그)에 distill-on-done 한 줄이 실제로 들어갔는지 확인 + 종료 시 distill 동작 1건 관찰.
- 항목1:
.seeded없는 신규/빈 폴더 에이전트 1건 첫 실행 →_common2종이 복사됐는지 파일 확인 +.seeded생성 확인 + 재실행 시 재복사 안 됨(멱등) 확인 + 자작 스킬 동명일 때 skip 확인. - 항목3: Cron 1회 수동 트리거 → 리아 세션에 큐 들어가고 /activity에 노출되는지 + 출력이 제안만(실삭제 없음)인지 확인.
롤백
- 항목1·2: daemon.js
git revert1회. 시딩이 잘못 복사해도.seeded+복사 파일 삭제로 원복(에이전트 자작물은 충돌 skip으로 애초 미접촉). - 항목3: 웹 배포 단위 revert + Cron 비활성.
진행을 위해 항목3의 매핑 소스 진실 한 가지만 정해 주세요:
ASK_USER: 도메인→정본 매핑의 '진실 소스'를 무엇으로 둘까요? || 회사 브레인 카탈로그(STORE_WIKI)를 진실로, _master는 복사 대상 || _master 폴더 구조(폴더명=도메인)를 진실로, 카탈로그는 색인용 || 둘 다 사용: _master 우선, 없으면 카탈로그 폴백