501큐 ↔ SLM 브리지 데몬
개요
재구축 생태계 자율 루프의 마지막 연결 고리. 컴포저가 미해결 핸들러에 남기는 501 stub(=음·이관 작업큐)을 폴링해, learn.sh/SLM으로 후보를 생성하고 그림자 컴파일까지 검증한 뒤 4상 분별 보고만 남긴다. 라이브 보충은 사람/세션 승인.
🔒 안전 원칙: 라이브 toau 무단 스왑 금지. 데몬은 수확·후보·검증·보고까지만. 실제 핸들러 보충/재컴파일/스왑은 보고를 본 사용자·세션이 결정한다.
무엇을 했는지
흐름
[수확] 컴포저 생성소스 스캔 → "^; ★경고★ 핸들러 미해결: <name>" 마커만 추출
(의도적 501·컴포저 자체소스는 줄시작 앵커로 배제)
↓
[후보] learn.sh lookup HIT → 티(토큰0) / SLM 엔드포인트 → 옴 / 둘 다 MISS → 음
↓
[검증] 생성소스의 501 stub을 후보로 교체 → hanseonc_high 그림자 컴파일
→ 통과해야만 티/옴 승격 (★깨진 후보는 음으로 강등 = 환각 차단★)
↓
[학습] SLM 검증 통과 후보는 learn.sh add → 다음 사이클부터 티(토큰0)
↓
[보고] 501브리지.한선 4상 코어 → 다이제스트 + 501브리지-보고.md (보고 전용)
4상 매핑
- 티 = learn HIT + 그림자검증 통과 → 라이브 보충 후보 준비됨(승인 대기)
- 옴 = SLM 생성 후보 + 검증 통과 → 검토 후 보충
- 음 = learn/SLM 모두 MISS → 프롬프트 stub 생성 → 사용자/세션/SLM 이관
- 타 = 의도적 501/제외
수렴 루프 (실증)
음 핸들러를 채워learn.sh add → 다음 브리지 실행 시 음→티 자동 수렴.
SLM 호출이 점차 0으로 줄어드는 자생 구조.인간개입(승인) — stage
501브리지.sh stage <생성소스.한선> = 티 후보 전부 주입+컴파일 검증 후
원자스왑(mv) 명령 한 줄만 출력. 자동 스왑 없음. 데몬은 이 명령을 호출하지 않음.검증 (E2E)
- 컴포저로 미해결 핸들러 2개 서비스 생성 → 501 stub 2개 ✅
- 한 핸들러만 learn add(SLM/세션 충당 모사) → 브리지 → 티1(검증) + 음1(이관) ✅
- 깨진 후보 거부: 일부러 닫는괄호 불일치 → 음 유지(티 둔갑 안 됨) ✅
- 수렴: 올바른 후보 교체 → 음→티 ✅
- stage → 2핸들러 주입·컴파일 통과, 원자스왑 명령만 출력(자동스왑 없음) ✅
- 도구소스 오탐 차단: 컴포저.한선 자체 마커 문자열은 줄시작 앵커로 배제 ✅
관련 파일
/Users/ef/crowny-services/501브리지.sh— 오케스트레이터(수확·후보·검증·학습·보고·stage)/Users/ef/crowny-services/501브리지.한선→.toau— 4상 분별 코어(동반)/Users/ef/Library/LaunchAgents/com.crowny.bridge501.plist— 매일 10:10 정기(보고 전용)- 산출물:
logs/501큐.psv·logs/501브리지-보고.md·logs/501후보/·logs/501프롬프트/ - 상위: 컴포저(
컴포저.한선), 스케줄러(한선씨개선.sh)
잔여 이슈
- 온디바이스 SLM 엔드포인트 미연결 —
CROWNY_SLM_ENDPOINT설정 시 옴 경로 활성.
- stage 원자스왑은 수동 — 의도적(안전). 자동화하려면 별도 승인 게이트 설계 필요.
- 생성소스 위치 규약 — 수확은 SCAN_DIRS(기본 $SVC 재귀) 마커 스캔. 컴포저 OUT을
생성/)에 두면 스캔 효율↑.