아이디어 · 지나가는 논의 로그
정식 프로젝트가 아닌 지나가는 질문·검토·아이디어를 보존하는 기타 보관처. 사소한 아이디어가 큰 발전이 될 수 있다(페페 지시 2026-06-11). 규칙: 기존 프로젝트 사안이면 해당 프로젝트 문서(backlog·handoff 등)에 기록하고 여기엔 안 쓰거나 포인터만. 무프로젝트·범프로젝트 아이디어는 여기에 1항목 append. 항목 형식: 날짜 · 발단 · 요지 · 상태(논의/보류/채택→이관/폐기) · 포인터.
2026-08-17 — 남는 블루투스 스피커 펌웨어 접근·리버싱 (그릴링 진행중)
- 발단: 페페 질의 — "남는 BT 스피커를 기판 합성된 코드부터 튜닝해보고 싶다. 데이터 접속은 어떻게? 미니PC에 연결해볼까?"
- 선례 재사용: 26.8.11
led-board-mod세션(기성 기판 펌웨어 개조 조사)의 유형판정·접속경로·안전철칙을 그대로 적용. 차이 = BT 스피커는 USB 단자가 있어 꽂아보는 실험이 공짜(대부분 충전전용이지만 JieLi 계열은 여기서 열린다), 배터리형이면 AC 감전 위험 없음(콘센트 직결형이면 LED 철칙 그대로). - 1단계 = 칩 마킹(LED 때와 동일 결론) — 제품·브랜드로는 판별 불가. BT 칩별 경로: JieLi AC69xx/AC79xx(저가 90%, USB DFU) / Actions ATS / CSR8635·8645(SPI+BlueSuite, EQ 파라미터 튜닝 최적) / BES(SWD) / Airoha.
- USB 판정법:
Get-PnpDevice -PresentOnly꽂기 전/후 Compare-Object → 새 장치 뜨면 D+/D- 살아있음(VID/PID로 칩 역추적), 안 뜨면 충전전용 → 기판 프로그래밍 패드(UART/SWD)로. - 그릴링 확정 4건(페페 택1 전부): ①목표 = 펌웨어 뜯기 자체(학습·리버싱) → 우회 사다리(회로 개조·상류 제어) 전부 무의미, 덤프 성공 자체가 성과 ②깊이 = 덤프→패치→되쓰기(원본 백업 확보 전제, 벽돌 나도 복구 가능한 선까지 / 자작 펌웨어 전면교체는 기본 아님) ③장비 = 칩 확인 후 필요한 것만(만능세트 선주문 안 함 → 칩 마킹이 크리티컬 패스) ④벽 정책 = 유형별 자동 진행(OTP·마스크ROM = 영구 불가 → 대상 교체 제안 / RDP·읽기보호 = 지우기+자작 펌웨어로 전환, 재질문 없이 코디 진행).
- 🔑26.8.17 USB 실측 = 칩 확정, 분해 불필요.
Get-PnpDevice전/후 diff로 4줄 검출 →USB\VID_10D6&PID_1101+USBSTOR\Disk&Ven_PISnet&Prod_MusicRider. VID 10D6 = Actions Semiconductor(확정, PID 1101 = ATJ209X/ACU75XX 계열 mass storage). ⚠U디스크가 아니라 SD 카드 리더 —Get-Disk에PISnet MusicRider / USB / Size 0 / RAW, D: 0바이트 = 카드 미삽입. 즉 내부 펌웨어 플래시가 아니라 microSD 슬롯 노출. 그래도 데이터선 생존 + 칩이 USB 스택을 돌린다는 게 확정됐다. 부모 =VID_05E3&PID_0610(Genesys 허브 경유), REV_0100, 시리얼4512482ADF0FEEEE. - 🔑ADFU 진입을 PID로 자동 판정한다 — 정상 =
PID_1101/ ADFU(WinUSB) =PID_10D6·PID_FF76·PID_0C02. 공식 툴 = Actions Pad Product Tool(.fw/.fwu/.bin 읽기·쓰기). 프로그래머·납땜 없이 USB만으로 덤프 가능한 경로가 실재한다 → 그릴링 ③(장비는 칩 확인 후)이 「장비 0원」으로 끝날 가능성. - 감시기 신설
C:\dev\tools\btspeaker-adfu\watch.ps1— VID_10D6 열거를 0.4초 폴링, PID 변화 타임스탬프 출력 + ADFU 패턴이면 경고. 페페가 버튼 조합 바꿔가며 재연결하는 동안 코디가 성공 시점을 잡는다. - ✅🔑ADFU 진입 성공(26.8.17 12:27, 재현율 7/7) —
PID_1101→PID_10D6. 🔑버튼 조합은 필요 없었다 = 전원 OFF 상태로 USB 연결하면 그냥 ADFU로 들어간다(Actions 기본 동작). 단 Windows엔 드라이버가 없어CM_PROB_FAILED_INSTALL(Problem 28), CompatibleIds =Class_FF&SubClass_FF&Prot_FF(벤더 지정) → libusb가 열거조차 못 한다(pyusb+libusb-package 설치해 실측: 10d6 장치 0개). - 🔑채택 경로 = Windows SCSI passthrough(Zadig·libusb 불필요). 오픈소스 3종 실사 =
ilyakurdyukov/actions_flash(ATJ2127/2157 전용, ATS 미지원 + unfinished·can brick → 탈락) /Hannibal-pl/usbfw(AK/ATJ/ATS-2XXX, 지원목록에 10D6:1101 명시 = 우리 장치) /nfd/atj2127decrypt(ADFU 파이썬 구현, 타겟 VID/PID가10d6:1101·10d6:10d6로 우리와 정확히 일치). 리포 2개 clone =tools/btspeaker-adfu/ref/. 핵심 착안 = 벤더 명령이 전부 SCSI CBW 위의 CDB라, Windows USBSTOR가 CBW를 대신 만들어 준다 → CDB만 IOCTL로 넘기면 드라이버 설치가 0이 된다. - 프로토콜(usbfw
usbfw.h+commands.c): CdbLength=11.0xCCIDENTIFY(13B,ACTIONSUSBD+adfu플래그) ·0xCBINIT ·0x08/0x09펌웨어 논리/물리 섹터(512B) ·0x05RAM ·0x16DETACH ·0x20ENTRY(위험). ⚠Actions는 LBA를 리틀엔디언으로 쓴다 — 표준 SCSI READ10(빅엔디언)과 반대(commands.c:317). CDB[1]=0x80이 read mark. - 도구 신설
tools/btspeaker-adfu/actdump.py(ctypesIOCTL_SCSI_PASS_THROUGH_DIRECT,--selftest7항목 PASS). ⚠읽기 명령만 구현하고 WRITE10·ENTRY·flash write는 일부러 뺐다 — 원본 덤프가 생기기 전엔 벽돌 낼 코드가 아예 없게(그릴링 ② 전제). 함정 =SPTDWB.sense.offset은 64가 아니라 60(sizeof(SPTD)=56+filler 4), 틀리면 ioctl 87. - 🔴🆕함정 = ADFU에 갇히면 「먹통」으로 보인다(26.8.17 실제 발생, 페페 "전원 버튼 안 먹음"). ADFU는 부트롬만 도는 모드라 버튼을 처리하는 정상 펌웨어가 아예 안 돈다 → 전원 버튼 무반응이 정상 동작이다. 벽돌 판정 금지 — USB 열거(
PID_10D6)가 되고 있으면 칩은 살아있다(죽으면 열거 자체가 안 된다). 탈출 = 케이블 물리적으로 뽑기 + 30초 + 전원 버튼 3~5초(ADFU는 USB 연결로 유지되므로 꽂혀 있는 한 안 나온다). ⚠소프트웨어로는 못 뺀다 —0x16 DETACH가 프로토콜에 있지만 ADFU 모드는 USBSTOR로 안 떠서 SCSI passthrough 경로가 없다. 충전이 필요하면 PC 말고 벽 충전기에 꽂는다(데이터 열거를 안 하니 ADFU로 안 빠진다). ✅복구 확인됨. - 🔑🆕모드 3분기 = USB 열거가 모드에 달렸다(26.8.17 페페 확인). 이 스피커는 모드 버튼으로 블루투스 / PC·USB / (SD·AUX)를 전환한다 → 전원 ON + USB 연결만으로는 아무것도 열거되지 않는다(충전만). 정리 = ①전원 OFF + USB = ADFU(
PID_10D6) 재현율 7/7 ②전원 ON + USB + 모드버튼으로 PC/USB 모드 = mass storage(PID_1101) ③전원 ON + USB + 블루투스 모드 = 열거 0. 첫 실측(12:26)에PID_1101이 뜬 건 페페가 PC/USB 모드로 전환해둔 상태였기 때문. 「USB 안 붙는다」의 원인 1순위는 고장이 아니라 모드다. - ✅SCSI passthrough 코드 자체는 검증됨 — 관리자 PowerShell에서
PhysicalDrive0(Lexar NVMe) INQUIRY status=0 성공. 즉 ctypes/IOCTL/구조체 정렬은 정상이고, 남은 건 스피커를 mass storage로 붙이는 것뿐. - ✅🔑벤더 CDB 관통 성공(26.8.17, 관리자 PowerShell) —
PhysicalDrive1 status=0 PISnet MusicRider, IDENTIFY(0xCC) status=0. Zadig·libusb 없이 Windows USBSTOR를 그대로 뚫는다는 게 실증됐다(SCSI passthrough 경로 확정). 단 응답이 기대와 불일치 =00 43 55 53 42 44 20 FF 76 00 00 41 00(기대ACTIONSUSBD) → 원인 후보 = LUN(usbfw는 IDENTIFY를 LUN 1로 보낸다,fw.c:10— CDB가 아니라 CBW의 bCBWLUN = SCSI passthrough에선SPTD.Lun) 또는 13B 버퍼 절단. 양쪽 다probe로 확인. - 🔑초기화 순서(usbfw
init_act()) = IDENTIFY →ACT_INIT(0xCB)resp 0xFF → 그 다음에야 펌웨어 섹터 읽기가 열린다. 이 순서를 건너뛰면 0x08이 안 먹는다. 펌웨어 헤더 = 논리 LBA 0부터 16섹터(8KB), magic0x0FF0AA55. 전체 크기 = diritem 240개 중 최대 offset+length. RAM sector 0이SYS INFOHW로 보이면 RAM 접근 차단된 것(usbfwtest_ram_access), sysinfo는 sector 4. - 🆕
probe명령 추가(관리자 왕복 1회에 최대 정보): IDENTIFY LUN0/1 64B → ACT_INIT LUN0/1 → 펌웨어 논리/물리 LBA 0 → RAM 0·4. selftest 9항목으로 강화하며 🔑read-only 가드 추가 = 모든cdb_*빌더가 뱉는 opcode가 읽기 집합(0x05·0x08·0x09·0x12·0xCB·0xCC)에 속하는지 검사 → 나중에 실수로 write_flash·ENTRY가 섞이면 selftest가 깨진다. ⚠문자열 grep 감사('WRITE10' in src)는 docstring의 「넣지 않았다」 설명문에 걸려 오탐 → 감사는 문자열이 아니라 실제 emit되는 opcode로 해야 한다. - ✅🔑probe 전량 성공 = 펌웨어 읽기 열림(26.8.17). ①IDENTIFY =
ACTIONSUSBD가 오프셋 0x14에 있다(13B만 읽어 놓쳤던 것) + 뒤에 USB device descriptor 원본(12 01 00 02 … D6 10 01 11= VID 10D6 / PID 1101)과 device qualifier까지 들어 있다. LUN 0/1 응답 동일 = LUN은 원인이 아니었고 버퍼 절단이 원인. ②ACT_INIT=0xFF성공(양쪽 LUN) = 펌웨어 모드 오픈. ③FW_LOGICAL(0x08)lba 0에서 실제 플래시 데이터 획득 —00 80 00 01 1F 00 00 00 "PISnet " "MusicRider". magic0x0FF0AA55는 lba 0에 없다(usbfw도 이럴 때 lba 8부터 스캔한다). - 🔑이 장치는 모든 벤더 읽기에 CHECK CONDITION(status=2)을 달고 답한다 — 단 sense key=0(NO SENSE)이고 데이터는 정상.
status!=0을 에러로 처리하면 덤프가 통째로 빈다 →sense_is_benign()=status==0 or (status==2 and sense[2]&0x0F==0), selftest로 고정. - 🔴🆕함정 =
0x09 ACTF_NAND_PHY(물리섹터)가 장치를 USB 버스에서 떨어뜨린다(probe 중 실측 — 직후 명령 전부Errno 2). 논리읽기0x08은 정상. → 도구에서0x09를 아예 제거하고 selftest에0x09 not in emitted가드를 넣었다. 복구 = 재연결(전원 OFF + 버튼 없이 USB). - 🆕
dump명령 + 핸들 재사용 리팩터 — 섹터마다 CreateFile/CloseHandle 하면 수천 섹터에서 기어간다 →Dev클래스로 핸들 1개 유지. ACT_INIT 후 lba 순차 읽기, 연속 32실패면 종료, FW_MAGIC 위치 자동 보고. selftest 12항목(read-only 가드 + sense 판정 + 0x09 금지 포함) PASS. - 🔴🔑모드 진입이 비결정적이다 — 같은 조작(전원 OFF + 버튼 없이 USB)이
PID_1101(mass storage)로 가기도 하고PID_10D6(ADFU)로 가기도 한다(26.8.17 실측: probe 직전엔 1101, 직후 같은 조작은 10D6). 「버튼을 누르면 ADFU」라는 앞선 해석도 틀렸다 — 버튼 없이도 ADFU로 간다. Actions 칩이 부팅 조건에 따라 ADFU로 폴백하는 것으로 보이며, 재현 조건을 특정하려 애쓰는 것보다 뜰 때까지 기다리는 게 싸다. - 🆕
waitdump= 왕복 제거책. 관리자 창에서 한 번 띄워두면 0.5초 폴링으로 PhysicalDrive 1~9(0=시스템디스크는 제외)에 INQUIRY를 쳐서PISnet/MusicRider를 찾고, 뜨는 즉시 자동으로 덤프한다. 페페는 스피커를 뽑았다 꽂았다만 반복하면 되고 ADFU 착지는 무시된다. 기본 타임아웃 600초. - 🔴🔑덤프 2섹터 분석 =
0x08논리섹터는 플래시가 아니다(경로 폐기). lba 0 성공·lba 1 성공·lba 2에서Errno 121타임아웃 + 칩이 ADFU로 리셋. 받은 데이터 분석 결과 lba 0과 lba 1이 완전히 동일했고 내용은 펌웨어가 아니라 부트롬 내부 데이터 테이블 = SCSI INQUIRY 응답 템플릿("PISnet MusicRider") + sense 템플릿 6종(70 00 0B·70 00 07…) + USB device/config/string descriptor 원본(12 01 00 02 … D6 10 01 11, EP0x81/0x02, UTF-16PISnetMusicRider·ACTIONS·시리얼). → SD 카드가 없어 NAND 영역 자체가 없고, 같은 메모리가 매 LBA마다 되돌아온 것. - 🔑🆕칩 코어 = MIPS 확정 — 덤프에
59 0E C3 BF·B1 0E C3 BF등 = 리틀엔디언0xBFC30E59포인터 테이블 = MIPS KSEG1 부트롬 대역. actions_flash가 말한 로드주소0xbfc18000과 같은 대역이라 교차 확인된다. → 리버싱 시 디스어셈블 타깃 = MIPS32. - 🆕표적 변경 =
0x05 ACTF_RAM(메모리 직접 읽기). probe 때0x09가 먼저 장치를 죽여 한 번도 실행되지 못한 유일한 명령이었다.dump_ram()신설(sector≤0x800·length≤0x200 = 1MB),waitdump가 이제 섹터가 아니라 RAM을 뜬다. 부트롬 코드가 실제로 사는 곳이라 이게 나오면 곧 리버싱 착수. - 🔴🔑mass storage 경로 완전 폐기(26.8.17 확정) —
0x05 ACTF_RAM도 sector 파라미터를 무시하고 고정 버퍼만 반환한다. RAM 3섹터가 서로 동일할 뿐 아니라0x08섹터 덤프와도 바이트 단위로 같다(둘 다 nonzero 225, 부트롬 응답 테이블). usbfwtest_ram_access()가 경고한 「이 기종은 일반 RAM 접근 불가」가 정확히 이 상황. 즉 mass storage 모드의 벤더 명령은 진짜 메모리·플래시에 닿지 않는다. - ⚠철회한 가설 = 「핸들 재사용이 장치 드롭 원인」. 3~4번째 명령에서 죽는 건 사실이나(섹터=lba2, RAM=sector3), 고쳐봐야 같은 512B를 2048번 받을 뿐이라 고칠 이유가 없다. 원인 규명 전에 데이터부터 본 게 맞았다.
- ✅🔑ADFU 경로 = 스텁 불필요 확인(결정적).
ilyakurdyukov/actions_flashREADME:read_mem·adfu_info는 부트롬이 기본 지원하는 명령이라ADFUS.BIN도 MIPS 크로스컴파일러도 필요 없다(예시read_mem 0xbfc00000 256K dump.bin). ROM은 0으로 읽히고 RAM만 나온다. ⚠payload(adfus/hack.bin) 경로는 당분간 안 간다 — actions_flash 경고에 「payload가 hang하면 사실상 벽돌처럼 보이고 배터리 방전까지 며칠 걸릴 수 있다」. 페페가 겪은 「먹통」이 이 문서에 그대로 적힌 현상(소프트 전원스위치 기기는 USB 분리 후에도 ADFU 유지). - 🔑CDB 실체(actions_dump.c:393
actions_cmd) =cdb[0]=0xCD·cdb[1:5]=cmd(LE) ·cdb[5:9]=len·cdb[9:13]=addr,cdb_len=16,flags=recv<<7,scsi_tag=0(소스에 "important" 주석 2곳). 🆕CMD_ADFU_READRAM = 0x93— adfu.py엔 없던 명령(거긴 0x10/0x13/0x20/0x21/0x23뿐). 그 외0x10FLASH·0x60FLASH32·0x13WRITERAM·0x20SWITCH·0x21EXEC·0x22RETSIZE·0x23READRET. - ⚠우리 IDENTIFY 응답이 깨져 보인 진짜 이유 =
cdb[7](전송길이) 미설정. actions_dump는 모든 명령에cdb[7]=len을 넣지만 usbfw는 안 넣는다. LUN 문제도 버퍼 절단도 아니었다. - 🆕mass storage → ADFU 소프트 전환법 확보(뽑았다 꽂기 반복 불요) =
0xCC(cdb[7]=11, len 11) →ACTIONSUSBD확인 →0xCB+cdb[1]=0x21(cdb[7]=2, len 2) →FF 00→ ADFU 진입. 우리cdb_init()은cdb[1]=0x21이 빠지고 길이도 1이었다. - 🆕
adfu_tool.py신설(pyusb+libusb-package, Zadig WinUSB 전제) —info/adfu_info(칩ID 18B)/readmem(0x93)/grab(칩ID+256KB 한 방)/reboot(0xB0= ADFU 탈출, 「먹통」의 소프트웨어 해법). selftest 19항목 PASS, write/exec opcode(0x10·0x13·0x21·0x60) 도달 불가 가드 포함. 덤프 후 distinct 512B 블록 수를 세서 또 고정버퍼인지 자동 판별. - ✅🔑Zadig 성공 → ADFU 통신 열림(26.8.17).
adfu_info응답 =00 43 41 44 46 55 44 16 51 41 00…(18B, csw OK). actions_dump.c:1132의 판정식memcmp(buf,"\0CADFUD",7)정확히 매치 → 프로토콜 호환 확정. 🔑칩 ID =buf[7]<<8|buf[8]=0x1651— 등록된 건0x10d6=ATJ2127 /0x3051=ATJ2157 뿐이라 우리 칩은 제3의 미등록 칩이다. ⚠따라서 actions_flash의 payload 로드주소(0xbfc18000)와 스텁이 맞다는 보장이 없다 → payload 경로의 위험도가 한 단계 더 올라갔고, 부트롬 기본 명령(read_mem0x93)으로 잡아둔 현 경로가 옳았다. - ⚠🆕함정 = pyusb 핸들 누수.
grab이adfu_info·readmem에서 장치를 각각 열어 두 번째 open이Errno 13(LIBUSB_ERROR_ACCESS)로 죽었다 — 권한 문제로 오인하기 쉽다. pyusb는 claim/release를 자동으로 안 한다 →claim_interface(0)+finally에서release_interface+dispose_resources,grab은 핸들 1개 공유. 자체검사로 「grab이 open_adfu를 1회만 호출」 고정. - ⏳
read_mem(0x93) 타임아웃 — 원인 규명 중. 핸들 수정 후 에러가Errno 13→Errno 10060(timeout)으로 바뀌었다 = 핸들 문제는 해결됐고 명령 자체가 무응답. 후보 3 = ①데이터+CSW를 한 번에 읽어야 한다(actions_dump는usb_recv(n+13)단일 read, 우리는 분리 read) ②주소 —0xBFC00000은 ROM이고 RAM은0xBFC18000부터(README「첫 96K는 ROM이라 0」) ③전송크기 512가 과함. →memprobe신설로 7조합을 1.5초 타임아웃으로 일괄 시험(각 시도 후adfu_info재확인해 장치 생존 판정, 죽으면 즉시 중단). ⚠칩이 미등록(0x1651)이라0x93자체가 이 칩에 없을 가능성도 있다 — 그 경우 남는 건 분해 + SPI 직독. - 🆕🔑
to_adfu= mass storage→ADFU 소프트 전환 구현(뽑았다 꽂기 완전 제거).0xCC(cdb[7]=11)→ACTIONSUSBD확인 →0xCB+cdb[1]=0x21(cdb[7]=2)→FF 00. ⚠우리cdb_init()에cdb[1]=0x21과cdb[7]이 빠져 있어서 그동안0xFF만 받고 전환이 안 됐던 것 —cdb_identify(length)·cdb_init(param,length)로 고침. 🔎타임아웃 후 칩이 스스로 리셋되어 mass storage로 복귀하는 것도 관측(ADFU 자동 탈출). - ✅
cdb[7]확증 —0xCC에cdb[7]=11을 넣으니data=b'ACTIONSUSBD'가 깨끗하게 나왔다. 그동안 응답이 깨져 보인 원인은 전부 이 필드 하나였다. - ⛔
0x93 read_mem은 이 칩에 없다 — 0바이트 반환 후 부트롬 정지(0x09와 동일 패턴). 칩0x1651이 미등록인 대가. 단 타임아웃 후 칩이 스스로 리셋되어 mass storage로 복귀하므로 벽돌은 아니다. - ⛔🔴오버리드도 실패 = USB 경로 소진.
0xCC에cdb[7]=11을 선언하고 16KB를 요청하면status=0으로 16KB가 오지만distinct512=1·true period: 512= 같은 512B가 32번 반복될 뿐 인접 메모리로 진행하지 않는다. 그 512B도 이미 가진 것(앞선0x08덤프의0xF9오프셋부터와 동일 내용, 엔트로피 5.89 = 디스크립터 테이블). ⚠「첫 64B IDENTIFY에서 메모리가 흘러나왔다」는 해석은 오독이었다 — 응답 버퍼의 뒷부분을 본 것뿐이다. - 🔑USB로 얻을 수 있는 것의 총합 = 512B 응답버퍼 + 칩ID
0x1651+ MIPS32 + ADFU 진입/탈출법. 펌웨어 본체는 USB로 안 나온다 → 남은 경로 = 분해 + SPI 플래시 직독(그릴링 ④ 합의대로). - 🔴남은 벽 = 관리자 권한 하나.
\\.\PhysicalDrive*핸들이 상승권한 필요 → 코디 Bash는 비관리자(실측 Errno 5). CLAUDE.md상 상승권한 = 페페 몫. 다음 = ①스피커 전원 켜고 USB 연결(mass storagePID_1101로) ②관리자 PowerShell에서python actdump.py scan; python actdump.py identify. 반복 실행이 많아지면 예약작업(SYSTEM) 1회 등록으로 코디 자율화 검토. - ✅🔑관리자 자율화 완료(26.8.17) — 시드가 말한 「남은 벽 = 관리자 권한 하나」 제거. 페페 승인 하에
C:\dev\tools\elevated-runner신설 = UAC 1회로\Cody\ElevatedSYSTEM 예약작업 등록(SDDL(A;;GRGX;;;BU)= Users 시작만 허용) → 이후 코디 Bash(비관리자)가python el.py "명령"으로 관리자 명령을 UAC 없이 왕복 실행한다. 검증 = selftest 18/18(왕복·종료코드42 전달·SYSTEM 확인 포함) + actdump.py scan 을 SYSTEM으로 실측(비관리자 Errno 5 이던\\.\PhysicalDrive*전 열거 성공, PhysicalDrive0 NVMe만·스피커 미연결). 🔴함정 3 = ①Start-Process -PassThru는 리다이렉트 시 ExitCode=null →System.Diagnostics.Process직접 호출로 교체 ②SYSTEM PATH엔 python 없음 → el.py가 선두 python 을 인터프리터 절대경로로 치환(hermes 함정) ③MSYS 가/Query·/TN을 경로변환 → schtasks 조회는 python subprocess(el.py --status)로. 상세 =C:\dev\tools\elevated-runner\README.md. ⚠단, 관리자 권한은 USB 벽을 열지 않는다 — 위에서 확정한 대로 USB 경로(mass storage·ADFU 양쪽)는 이미 소진(고정 512B 버퍼·칩 0x1651 미등록·0x93 없음)이라, 자율화는 왕복 마찰만 제거할 뿐 펌웨어 본체는 여전히 USB로 안 나온다. 실익 = 이제 페페 관리자 PowerShell 없이 코디가 probe/scan/identify 를 스스로 반복(스피커만 연결되면). 생산적 다음수 = 여전히 분해 + SPI 직독. - ✅🔑🔴USB 경로 종결 — 증명 완료(26.8.17 자율세션, 시도 01~14). 전과정 로그 =
C:\dev\tools\btspeaker-adfu\ATTEMPTS.md(시도마다 가설·명령·결과·판정). 🔑신규 4번째 모드 발견 =PID_DD01USB 오디오(DAC)+HID 복합장치 — 벌크 EP가 0개라 SCSI/ADFU 프로토콜 자체가 성립 불가, HID는 Output0·Feature0 라 쓰기 불가 = 펌웨어 통로 0인 유일한 모드. 🔴시드 정정 2건 = ①기존 기록 「모드버튼 PC/USB = mass storage(1101)」은 틀렸다 — 실측상 PC/USB는DD01오디오고, AUX IN·블루투스는 열거 0.1101은 모드가 아니라 전원 OFF 부팅 과도구간 2초짜리 창(실측없음 → 1101 → 10D63초 내 통과, 2회 재현) ②「부트롬 정지」로 적힌 현상은 사실 미지원 명령의 CSW status=2(Phase Error) 후 파이프 halt 다(칩 사망 아님). ✅🔑결정적 증거 = 미스터리 512B 버퍼의 정체 확정 — 표준 SCSIINQUIRY응답 96B 와fwdump.bin(벤더0x08)·ramdump.bin(벤더0x05)이 96/96 바이트 100% 일치(선두00 80 00 01 1F 00 00 00 PISnet MusicRider= INQUIRY 헤더). 곹0x08·0x05는 이 칩에 미구현이고, 미구현 벤더 명령에 데이터를 요구하면 장치가 자기 SCSI 응답 스테이징 버퍼를 그대로 되돌려준다. 「주소를 무시하고 고정 버퍼만 준다」의 메커니즘 수준 설명 완성. 🔑내부 플래시는 SCSI로 주소지정 불가 확정 — REPORT LUNS 미구현(응답이 INQUIRY 버퍼) = LUN 추가 없음, 반면 READ CAPACITY·READ FORMAT CAPACITIES 는 sense key=2 NOT READY 로 정상 응답·VPD는 key=5 ILLEGAL REQUEST 로 명시 거부 = SCSI 스택은 제대로 구현돼 있고 없는 건 벤더 확장뿐. → ⛔SD 카드를 꽂아도 무의미(카드만 보이고 내부 플래시는 여전히 안 보임) = 앞서 제안한 안 폐기. 🔴USB 총결산 = 칩ID0x1651(미등록)·MIPS32·ADFU 진입탈출법·512B 응답버퍼·오디오 토폴로지. 펌웨어 본체는 USB로 안 나온다 — 추정이 아니라 증명됨. 남은 경로 = 분해 + SPI 직독. ⚠무위험 카드 소진 — 블라인드 opcode 스윗은 안 한다(미상 opcode가 erase 계열이면 원본 백업 없이 영구 손실 = 그릴링 ② 전제 위반). ✅스피커 손상 0 확인 — 오디오 모드 재열거 + 스피커/마이크 AudioEndpoint 둘 다 Status=OK (오디오 모드는 앱 펌웨어가 도는 모드라 이게 펌웨어 생존의 강한 증거). 신규 도구 =modewatch.py(모드 감시→자동실행)·scsiprobe.py(표준 SCSI 8종)·hidprobe.py·retprobe.py. - 🆕공구 세트 추천(26.8.18) — 페페 질의 「범용 기판작업 도구 뭐 사나(쿠팡)」. 결론 = 선주문 금지, 분해해서 8핀 SOIC 플래시 유무부터 확인(없으면 SoC 내장플래시 = SPI 직독 경로 자체가 없다). 있으면 0단계 ≈2만원(CH341A + SOIC8 테스트클립 + 1.8V 어댑터 + 정밀드라이버/프라이툴)만. 범용 확장 ≈3만(USB-TTL CP2102 · ST-Link V2 · 멀티미터 · 로직애널라이저 8ch 24MHz). 인서킷 실패 시 ≈8~15만(T12 인두 + 858D 열풍 + 플럭스/솔더윅/PCB홀더/핀셋). ⚠함정 = ①CH341A 블랙 일부 리비전이 SPI에서 5V를 물려 3.3V 플래시를 태운다(「3.3V 지원」 표기품 또는 개조판, 물리기 전 멀티미터로 VCC 실측) ②인서킷 클립 읽기는 SoC가 버스를 잡고 있으면 실패 → 결국 열풍기로 떼는 경우가 많다(2단계가 사실상 필수) ③1.8V 플래시에 3.3V 직결 금지.
- 상태: 합의 완료·칩 정보 대기(착수 시
projects/btspeaker-mod/신설 예정, 지금은 문서 신설 안 함). 포인터 =projects/led-board-mod/session-2026-08-11-stock-led-firmware-mod-survey.md,devplan/led-board-mod.html.
2026-07-03 — 신규 개발 수익화 4트랙 + Steam 심층 조사 (워크플로 2차)
- 발단: 페페 후속 지시 — 기존 자산은 기술력으로만 쓰고 새 콘텐츠/게임/영상/SaaS 개발 수익화 방안 + Steam 게임 개발 포함 조사.
- 조사(워크플로 14에이전트 + Steam 심층 5에이전트): 4트랙 12아이디어 생성→적대적 심사. 생존 상위: ①우리집 치수 목공클럽(크몽 컷리스트 템플릿+멤버십, 6/현실성5) ②컷옵코리아(한글 재단최적화 웹앱 SaaS, Paddle 구독 9,900원/월, 6/4) ③정부지원레이더(공고 텔레그램 알림 SaaS, 5/4 — 착수 전 data.go.kr 공식API 확인 필수) ④영상 2건(Cost of Failure 英제조공학·Flat-Pack Autopsy 英역설계, 각 5/4 — 후자 IP리스크로 브랜드명 회피 필수) ⑤필컷 퍼즐(CrazyGames, 5/3). 탈락: 고스트런(2.5), AI업무자동화 프리미엄콘텐츠(3), QuickDWG(3, DXF 자기모순). 핵심 시너지: ①+②는 같은 니치(국내규격 재단) — 기존 검증된 길로틴 알고리즘(nesting test_pack PASS) 재사용으로 심사관의 최대 결점(MVP 시간 낙관·정확성)이 무효화됨. 공통 결점=유통계획 부재 → 목공카페 무료샘플+쇼츠 클립이 보완책.
- Steam 결론: 주말/단기 불가 확정 — 개인 등록 가능하나 $100 납부 후 30일 대기 + Coming Soon 2주 의무 + 심사 3~5영업일(최초작 최소 1개월+). 경제성 잔혹: 2025 신작 중앙값 $249, 66%가 $1k 미달, 상위1%가 인디매출 90%. 성공조건=사전 위시리스트(Popular Upcoming ~7k)+외부트래픽(내부 발견은 유입 25%뿐). 유리 장르=인크리멘탈·로그라이크·호러, $20+ 가격대 성공률↑. AI: 코딩도구(Claude Code) 공개의무 면제(2026-01 개정 명문화), 아트/텍스트는 공개+리뷰 53%↓ 페널티. 한국: Steam 자체등급분류사업자 미지정 → 국내 유료판매 원칙상 등급분류 대상(개인 처벌 실사례 미확인·계도 수준, 심의비 수십만원), 정산=SWIFT+W-8BEN(한미조약 10~15%). 판단=웹포털/itch 검증 후의 2차 채널, 지금은 부적합.
- 상태: 제안(페페 결정 대기). 추천=주말 목공클럽 착수(크몽 신청+무료샘플 수요검증)+Paddle KYC 신청, 2~3주 컷옵코리아 SaaS. 상세=세션 워크플로 wf_89be80f4 결과.
2026-07-03 — 주말(7/4~5) 즉시 수익화 게시 계획 (워크플로 조사·심사)
- 발단: 페페 질문 — 프로그램/콘텐츠 개발로 이번 주말 바로 수익 창출 게시할 계획 제안.
- 조사(워크플로 12에이전트, 자산실사+플랫폼 웹조사+계획3안+적대적 심사): 주말 내 게시 라이브 가능 채널 = Gumroad·itch.io·Ko-fi(즉시, 심사無)·포스타입(즉시)·유페이퍼(자체사이트 ~1일)뿐. 크몽(심사 3~7영업일, 주말 미카운트)·탈잉(3~5일)·네이버프리미엄(3~5일)·브런치(작가승인 5일+멤버십 구독자30 조건)·OGQ(15일) 전부 주말 불가. 숨고마켓(디지털파일 즉시판매)은 2026-06-30 완전 폐지. 자산 실사: nesting.html(C:\dev\nesting\, readiness 55 — #qa-panel 디버그 위젯 제거 필수 30분~1h), drawerboring(C:\dev\tools\drawerboring\, 65 — 폴더에 고객데이터 혼재, 새 판매폴더 필수), material-spec(20 — 고객 JSON·발주처 하드코딩, 주말 판매 불가), pd-archive EP.01(65 — 게시 가능하나 애드센스 승인 수주). 니치수요: 재단최적화 해외 유료시장 실증(CutList Plus $89·MaxCut $20/월·optiCutter €9~19/월), 크몽 CAD/자동화 gig 실거래 강함(매크로 1,584건·캐드매크로 56건).
- 심사 핵심: 3안 모두 revenue_realism 2/10 — "주말 게시"는 가능하나 "주말 입금"은 비현실(첫 구매 수일~2주). 치명 지적: ①Gumroad 한국 개인 정산=사실상 PayPal 단일경로(연결 실검증 필수, 실패 시 Ko-fi 백업) ②PKD '웁' 유료판매는 한국 저작권법상 PD 미확정(사후70년=2052, 미국 갱신누락 PD≠한국 PD — 유료 금지·무료 게시만) ③사내용 플러그인 포트폴리오 노출=직무발명·영업비밀 리스크 ④국내 무료 대체재 존재(차별점 문구 필요).
- 권고(합성): 토=nesting.html QA패널 제거→Gumroad $19 게시 라이브+$1 실결제 검증+크몽 서비스 신청 제출(승인 차주), 일=itch.io/Ko-fi 크로스+포스타입 EP.01 무료 게시(채널 개설)+커뮤니티 홍보(등업규정 선확인). 국내 진짜 매출 채널=크몽(차주 승인 후).
- 상태: 제안(페페 결정 대기). 실행 확정 시 상세 시간표는 이 세션 워크플로 결과(wf_b94d34fb) 참조.
2026-06-27 — 퍼블릭 도메인 상상문학 2차 콘텐츠 프로젝트 (pd-archive)
- 발단: 페페 지시 — 채티가 만든 저작권 만료 상상문학 카탈로그(HTML 114편)를 받아 운영 프로젝트로 셋업(코디) → 이어서 이 작품들로 SNS 2차 콘텐츠 제작·수익화(애드센스/조회수) 전체 계획 수립 + devplan 상단 타이틀·새 페이지 정리.
- 요지: 기반 =
C:\dev\pd-archive\(catalog HTML 114편·data/works.json[작품별pd_verified·source_url작업대장 필드]·docs[저작권 체크리스트·제작 파이프라인]·README, 로컬 git 커밋0669a5b, push 안 함). 114편=21지역·5카테고리(SF·호러·판타지·전래동화·신화)·시대구분. 3콘텐츠 트랙: ①블로그(작품 텍스트[원문/일부변형]+인물·배경 움직임 이미지 조합, 애드센스 — 1차 목표) ②쇼츠(주요 장면 고품질 애니/손그림 영상 — 후속) ③에피소드 애니/영화(기록만·보류). 트랙 간 = 깔때기(블로그 각색텍스트·비주얼·저작권검증을 쇼츠→영상화로 재활용). 컨텐츠1(블로그) 3-Phase: P1 게시물 1편 풀사이클 PoC(라이브이미지 도구 결정 게이트=시네마그래프/AI모션/WebP·APNG·무음MP4) → P2 양산 템플릿·이미지 프리셋·체크리스트·카테고리 시리즈화 → P3 발행채널+애드센스 승인+반응데이터(쇼츠 승격 후보). 전 트랙 선행 게이트=저작권: 원문 PD≠번역본 PD(번역가 별도 저작권→직접 번역/PD 번역본만)·삽화/캐릭터/상표 별도 보호(오즈·앨리스·피터팬=원작 텍스트만, 피터팬 영국 병원 영구로열티)·1930~63 미국작 갱신 확인·AI 이미지 상업약관 확인. 어떤 작품도 "자유"로 단정 금지. - 상태: 채택→프로젝트화. devplan 추적 페이지
C:\dev\devplan\pd-archive.html(http://100.108.234.45:8799/pd-archive.html, 로컬 8799) + 대시보드 상단 타이틀 배너 추가(build_dashboard.py line~154, 보라/블루, furniture 배너 위)·재빌드 반영·렌더 PASS. 관련 [2026-06-20 사업자등록 없이 수익화 경로 조사 (전자상거래·앱 광고수익 등)], 범프로젝트(콘텐츠·수익화). user_brief 별도 프로젝트 폴더는 본격 착수 시 신설. - 블로그 P1 착수 (2026-06-27): 테스트 에피소드 1편 완성 = EP.01 「웁」(필립 K. 딕, 1952).
C:\dev\pd-archive\episodes\ep01-the-wub.html(로컬 단일 HTML, 명조 본문). 저작권 검증 통과 = 미국 갱신 누락 PD, 영어 원문 Gutenberg #28554, works.json '웁'pd_verified:true·source 기입. 구성 = 히어로+영어 원문 발췌(인용)+한글 줄거리·대사·해설(직접 작성, 번역본 미사용)+광고슬롯+저작권 푸터. 라이브 이미지 방식 = 시네마그래프/WebP·APNG(페페 선택): 정지 AI 이미지(Leonardo lucid-origin 3컷, pulp 1950s 화풍 통일 — 현창/웁/선실,episodes/assets/*.jpg, 원본은data/) + CSS 오버레이(별 흐름·숨쉬기 scale·등불 글로우)로 라이브 느낌. 다음=실제 시네마그래프(.webp/.mp4) 제작해<img>교체(HTML에 [LIVE-IMG] 슬롯·라벨 표시), P2 양산 템플릿화. 이미지 생성=코디는 파일 직접 생성 불가 → 영문 프롬프트 제공→페페가 AI툴(Midjourney/Leonardo/Ideogram/Bing)서 생성→data 저장→코디 연결, 방식 확립.
2026-06-11 — 옵시디언 활용 재평가 (AI vs 사용자 입장)
- 발단: 페페 질문 — user_brief가 발전한 현 시점에서 옵시디언 활용을 AI/사용자 입장으로 비교 평가.
- 요지: 보류 유지가 결론. AI 입장 효용 0(매니페스트 vs 위키링크 이중 진실 리스크), 사용자 입장 실격차는 전문 검색·즉석 캡처 2개뿐. 격차 흡수 후보 = ① 문서별 "관련 문서" footer(render_docs, 동일 topics 자동) ② Evidence 정적 전문검색(minisearch 인덱스) ③ (조건부) 옵시디언=inbox 전용 캡처 한정.
- 상태: 논의(결정 대기) — 상세·후속 추적은
projects/user_brief/backlog.md#1 진행 경과(2026-06-11).
2026-06-11 — 채티를 코디 터미널 안에서 (서브에이전트·하니스)
- 발단: 페페 질문 — 채티 세션을 코디 터미널에서 쓸 방법(MCP/커스텀)? 사용자들이 대부분 Claude Code 안에서 해결하고 "하니스" 방식이 유행이라는데.
- 요지: claude.ai 대화방 자체의 터미널 이어가기는 불가(세션 저장소 분리)하나, 채티 = 역할규칙 + user_brief 시드라 시드를 읽는 Code 세션 = 채티. 방법 4종 — A
.claude/agents/chatty.md서브에이전트(별도 200K 컨텍스트·읽기전용 도구·플래너 프롬프트, 추천) / B 터미널 2세션(채티=Plan Mode, 코디=실행) / C MCP 양방향(claude mcp serve; 현 채티→claude-code MCP가 이미 역방향) / D Agent SDK(하니스 본체,claude -p헤드리스 파이프라인 — 2단계). 추천 = A+B 병행, claude.ai 채티는 유지. - 상태: 논의(채택 시
chatty.md초안 작성 — 즉시 가능).
2026-06-14 — OMC(oh-my-claudecode) 플러그인 도입 평가
- 발단: 페페 질문 — OMC 플러그인 도입 어떻게 생각하나.
- 요지: 전면 도입 비권장. OMC가 주는 멀티에이전트 오케스트레이션·병렬실행(Ultrawork)·지속루프(Ralph)·모델라우팅·폰알림이 이미 보유한 것과 정면 중복 — 역할체계(채티/코디/SARA…)+내장
Workflow+/loop+broker/notify-*+user_brief 시드. 한계효용 거의 0. 위험: ① 글로벌 setup이~/.claude/CLAUDE.mdoverwrite(공식 경고,--local필수) ② "loop authority 단일" 제약이 Workflow·/loop·autorebuild/watchdog 스케줄러와 충돌 ③ 알림 이중화(OMC텔레그램↔broker) ④ tmux(Windows=psmux/WSL2) 군더더기 ⑤ 빠른 churn(233릴리스·v4.14.7). 빌릴 만한 것 하나 = 모델 라우팅(Haiku/Opus, 토큰 30~50%↓ 주장)인데 OMC 없이 서브에이전트model지정으로 직접 흉내 가능. 안전경로 = 도입 아닌 "아이디어 채굴" — 버리는 폴더에--local로만. (주의: pfs의 "OMC"는 거래처 협력 페이지로 무관.) - 상태: 논의(비도입 권고) — 관련 [2026-06-11 채티를 코디 터미널 안에서].
2026-06-14 — SARA·CMDBOARD 유휴화 → SDK(OAuth) 무인 자동화 전환 평가
- 발단: 페페 질문 — 원격세션(Remote Control)으로 모바일 작업이 원활해져 SARA·CMDBOARD 효용이 줄고, Max 구독만으로 작업이 되니 OAuth-SDK 작업에 할당된 용량이 유휴라 아깝다. 시드 평가 후 SDK로 대체할 작업 추천.
- 요지: 프레임 = Remote Control은 attended(붙어 지휘) 작업 최적화 → SDK/OAuth 용량은 이제 unattended(스케줄·이벤트 무인) 작업을 맡는다. SARA·CMDBOARD는 attended-원격 격차용이라 효용은 줄지만 SDK 하니스(OAuth인증·코디위임·EVALUATOR증거검증·NDJSON전사·broker게이트)+잡DB는 무인자동화에 그대로 재활용 → 폐기 아닌 피벗. 추천 Tier1=① talklog 'AI 자동 정리' 헤드리스 배치(콜렉터가 만든 kakao-inbox→현장/프로젝트 분류·구조화 요약, 정기 cron, 명시 목표 미완성+대량추론·최우선) ② user_brief 시드유지 야간에이전트(완료 NOW→archive 이관초안·캡 임박점검·graph댓글→topics편집·"오늘 바뀐것" 다이제스트; autorebuild는 기계적 빌드만, 의미적 유지는 수동). Tier2 재활용=③ SARA 피벗(인터랙티브 패널→헤드리스 잡 러너, Webview만 폐기) ④ CMDBOARD 피벗(에이전트 모니터→SDK 잡 스케줄러/대시보드). Tier3=⑤ pfs 정기 브라우저/SSM 견적 야간 이상치 다이제스트 ⑥ material-takeoff 비전추출 배치. SDK로 옮기지 말 것=인터랙티브 개발(pfs/material-spec 기능·poincad)=Codi+Remote Control 유지. Top pick=①(talklog: 절반완성+정기대량추론+미완목표 3박자), ③④는 ①②의 런타임/관제로 따라옴. 인증=SARA처럼 구독 OAuth/setup-token(별도 API키 불필요).
- 후속(2026-06-14, 페페 지시 — pfs·전 리포 확대): C:\dev 전 리포 훑어 활용방안표 작성. 핵심 발견 = kakao-collector에 분류 PoC 이미 시작(
_classify_workflow.js·_classify_result.json) + pfs worklog가 "근거(excerpt)+owner_user" 받는 구조 + "신규 적재 파이프라인 owner_user 채워야" 미결 → ★1 카톡→AI정리→pfs worklog 적재가 talklog 미완목표 + pfs 적재 미결을 동시에 메우는 단일 파이프라인(토큰활용 최상·최우선). 표 등급: A(직행)=★1 카톡→worklog·★2 user_brief 야간유지·★3 pfs SSM 운영다이제스트(읽기전용 안전)·★4 pfs 견적 QA / B(인프라 재활용)=★5 SARA 헤드리스 잡러너·★6 CMDBOARD 잡스케줄러 / C(도메인 배치)=material-takeoff 비전추출(앱 선행)·오엠씨 자재Excel 정리 / D(인터랙티브 유지=SDK 비대상)=material-spec·drawerboring·poincad·talklog-android·fmodel(이미지)·dev-poin(정리후보). 롤아웃 순서: ★1을 단독claude -p헤드리스 배치로 먼저 PoC(SARA 피벗 없이 즉시·용량 즉시소비) → ★3·★2 추가 → 잡 2~3개 쌓이면 ★5/★6 피벗으로 묶음관제. - 상태: 논의(추천 제시·방향 선택 대기: A=★1 파이프라인 PoC 지시문 / B=★1+★2+★3 묶음 로드맵 / C=활용방안표 user_brief 정식 편입) — 관련 [2026-06-11 채티를 코디 터미널 안에서], 범프로젝트(talklog·kakao-collector·pfs·SARA·cmdboard·user_brief·remote-access).
2026-06-18 — 코드랩 「멀티 에이전트 AI 개발 로드맵」 강의 적합성 평가
- 발단: 페페 질문 —
C:\dev\코드랩_멀티_에이전트_AI_개발_로드맵.pdf(22쪽) 내용 확인 후, 현 프로젝트들·코디 시스템 기반에서 어느 부분이 도움될지 평가. - 요지: 강의 = 4단계(①문서분석·요약 ②데이터분석·추천 ③RAG 상담챗봇 ④실전 멀티에이전트 서비스), 스택 = LangChain/LangGraph+FastAPI+Vector DB+Next.js/Nuxt+gRPC. 핵심 진단: 페페는 강의의 "결과물"(멀티에이전트+메모리+문서처리+배포)을 이미 운영 중이나 패러다임이 다름 — 코디=대화주도+결정형 키워드메모리, 강의=코드주도(LangGraph State)+임베딩 RAG. 경쟁 아닌 상호보완, 가치는 "발췌 흡수". 가치순: ⭐1 3단계 RAG·Vector DB(가장 큰 공백 — talklog 카톡 의미검색·user_brief 시드 RAG·pfs 사례검색에 즉시 ROI) → ⭐2 1단계 문서 에이전트(talklog 현장별정리 Phase2와 직결: 분할→추출→요약→통합) → ⭐3 4단계 LangGraph 오케스트레이션(공유State·조건분기·병렬·재시도 = 코디 Workflow 손코딩의 형식화, 무인/스케줄 자동화에 유리) → 중간 2단계 데이터·추천(pfs 견적/발주/매출 분석·material-takeoff). 건너뛰기: Vibe Coding·멀티에이전트 개념·FastAPI/배포 기초(pfs로 이미 보유). 권고: 전과정 순차 비효율 → 3단계 우선 깊게 + 1단계는 talklog 관점 발췌 + 4단계 State모델 개념차용.
- 후속(2026-06-18, RAG 심화 설명): 현재 검색 = 어휘일치(grep)+수작업 토픽태그(mem_find)+결정형, RAG = 의미 유사도(임베딩 벡터)+자동색인+근사랭킹. 결론 = 대체 아닌 계층 분리(하이브리드) — 정형·정전(규칙·포트·결정·NOW·런북)은 시드체인+manifest 유지, 거대 비정형 자연어(특히 talklog 55방·세션로그·누적 pfs)에만 RAG. manifest
topics를 벡터검색 메타데이터 필터로 재활용(현 큐레이션 자산 보존), 재정렬=EVALUATOR 패턴 매핑. 아키텍처 권고(로컬·저비용·결정형 철학 존중): 로컬 코퍼스=sqlite-vec(무서버·file-based 적합), 임베딩=bge-m3/multilingual-e5 로컬 다국어(한국어 구어 강·API비용0). RAG 약점도 명시(비결정성·복원비용·환각·색인 동기화 부담 → 정전 계층엔 미적용). - 후속(2026-06-18, 재직자 국비/한국어 강의 리서치): 페페 요청 — "더 도움될 강의, 재직인·온라인 기준". 선택 = 국비/환급 중심 + 한국어. 재직자도 국민내일배움카드 발급 가능(고용24 work24.go.kr), KDC=90%국비+10%자부담(수료시 환급=실질0원·100%온라인), 재직자KDT=실시간캠프 90%국비. ⚠️패캠 "환급챌린지"=국비아님(플랫폼 캐시백), 고용보험 환급과정=사업주위탁→개인은 내일배움카드/KDC. 추천 조합: ①국비 = 모두의연구소 직장인 AI/LLM 서비스개발 과정(재직자KDT 90%국비 370만→30만, 실시간 화~금 20-22:30+토, 12주; LangChain→Advanced RAG[Self/Corrective/Adaptive]→Graph RAG(Neo4j)=user_brief 토픽그래프와 동발상→LangGraph→Gradio배포; 입문~중급이나 뒤쪽이 gap 적중·유일하게 Graph RAG까지 가는 국비) ②멀티캠퍼스 "LLM마스터: LangGraph+MCP AI Agent"(재직자 고용보험 환급 강세·MCP 정식 커리큘럼·환급여부 확인要) ③패캠 국비 LLM/RAG(b2g_mb_rag, VOD형=변칙근무 적합). 자비(국비X)지만 상급자 적중도 최고: A.테디노트 RAG 비법노트(45h/306클립, 로컬모델[Ollama/HF] RAG = 제안한 bge-m3/sqlite-vec 방향 정확일치 = RAG PoC 교과서) B.Claude Code x Codex AI Agent 팀(옵시디언 LLM Wiki+멀티에이전트 = user_brief+채티/코디의 상용판=코디 시스템 벤치마킹, ~23만). 솔직평가: 입문 국비(AI첫걸음·파이썬기초)는 건너뜀, 한국어 국비는 입문~중급 편중이라 진짜 심화는 자비가 적중↑ → 국비=모두연 1개 + 깊이=테디노트 자비 조합 권고. 후속옵션 = 3과정 커리큘럼을 talklog RAG PoC/코디 Workflow에 줄별 매핑表 or 모두연·멀티캠퍼스 차기기수·환급 심화확인.
- 상태: 논의(평가 제시) — 채택 시 후속 = RAG PoC(talklog/user_brief 코퍼스 임베딩 검색) 지시문 작성 + (선택) 모두연/테디노트 수강. 관련 [2026-06-14 SARA·CMDBOARD 유휴화 → SDK(OAuth) 무인 자동화 전환 평가], 범프로젝트(talklog·user_brief·pfs).
2026-06-11 — 지나가는 논의 기록 제도 (이 로그의 발단)
- 발단: 페페 지시 — 지나가는 질문도 시드 갱신·기타 보관, 시드 기본 지침화.
- 요지: 본 로그(
projects/ideas/ideas.md) 신설 + CLAUDE.md 런북 '매 답변 후 시드 갱신'에 기록 규칙 추가 +data/decisions.json전역 결정 등재. - 상태: 채택→이관 완료(dec-idea-capture).
2026-06-20 — 사업자등록 없이 수익화 경로 조사 (전자상거래·앱 광고수익 등)
- 발단: 페페 질문 — 사업자등록 없이 수익화할 수 있는 전자상거래/앱 광고수익 등 방법이 있나.
- 요지: 핵심 원칙 = "사업자등록 면제 ≠ 세금 면제". 사업자등록 의무는 "계속적·반복적" 공급 시 발생(일시·소규모는 등록 없이 가능), 단 소득 발생 시 종합소득세 신고 의무는 별개로 그대로 있음 → 현실 흐름 = "등록 없이 시작 → 수익 반복·확대 시 사업자 전환". 등록 없이 개인 자격 시작 가능: ① 앱/콘텐츠 광고수익(개발자 최적) — Google AdMob(앱)·AdSense(웹/블로그)·유튜브 개인 계정 수령(구글 해외 지급), 앱스토어·구글플레이 개인 개발자 등록(유료앱·인앱결제 가능); 광고수익은 사업/기타소득으로 종소세 신고만. ② 플랫폼 원천징수형 프리랜서 — 크몽·숨고·탈잉(플랫폼이 3.3% 원천징수), 쿠팡파트너스·제휴마케팅(어필리에이트). ③ 디지털 콘텐츠 판매 — 인프런/유데미 강의·전자책·코드/디자인 에셋. 주의 — 직접 쇼핑몰(스마트스토어·쿠팡 등): 사업자등록+통신판매업 신고가 원칙이나 통신판매업 신고는 직전연도 거래 50회 미만이면 면제(소액 개인판매자 시작은 가능, 거래 늘면 사업자 전환 요구). 개발자 추천 순서 = AdMob/AdSense 광고앱(등록부담 0·개발역량 직활용) → 유료앱/인앱결제(개인 개발자 등록) → 인프런·크몽 콘텐츠/외주(플랫폼 원천징수). ⚠️ 세무·법률 비전문가 답변 + 기준(통판 50회 면제·간이과세 기준금액 등)은 시점따라 변동 → 실제 시작 전 홈택스/세무서·세무사 상담으로 본인 매출·반복성 확인 권고.
- 상태: 논의(정보 제공) — 후속 가능: 특정 경로(예: AdMob 앱 수익화) 골라 실제 셋업 절차 + 세금 신고 흐름 구체화. 관련 [2026-06-19 홈페이지 제작·운영 신사업 제안 (대표 보고서)], 범프로젝트(신사업·비-개발), 무프로젝트 아이디어.
2026-06-19 — 홈페이지 제작·운영 신사업 제안 (대표 보고서)
- 발단: 페페 지시 — 현 구축 시스템(가구 IT 역량)으로 가구 업무 외 홈페이지 개설 등 타업체 서비스 사업도 해볼 만하니, 대표님(60대·비전문가·고지식) 보고용 HTML 사업 제안서 작성. 홈페이지 예시 5장(세련 디자인)·기존 업체 단가 조사 포함, 너무 복잡하지 않게.
- 요지: 핵심 = 내부 업무용으로 직접 구축해온 웹/시스템 제작 역량을 외부 업체(식당·병의원·공장·소매점) 홈페이지 제작·운영 서비스로 신사업화. 추가 설비투자 ≈0(기존 인력·기술 재활용), 수익구조 = 제작비(1회) + 유지보수 월 정기수입(임대수익 비유). 시장단가 조사(2026, 출처 더마크·닷클·웹닷·포크나인·Shopify): 랜딩 50~200만·템플릿형 100~300만·표준 반응형 300~800만·고급맞춤 800~1,500만·쇼핑몰 500~3,000만·유지보수 월5~30만·도메인 연1~3만·호스팅 월1~5만·평균 1건 ≈430만. 우리 가격전략 = 3패키지(보급150·표준400·고급/쇼핑몰800~)+유지보수 월5~15만, 보수적 1년차 그림 월매출 ≈1,000만 예시. 추진 = 4단계 로드맵(시범제작→상품정리→영업→확장), 대표 요청사항=1단계 시범제작 승인만.
- 산출물:
C:\dev\홈페이지사업_제안서.html(자체 단일 HTML, 인터넷 없이 열림). 표지+9섹션+맺음말+출처, 업종별 예시 디자인 5종(가구/인테리어·식당/카페·병의원·기업/사무소·쇼핑몰) = 타사 스크린샷 카피 대신 저작권 회피 위해 자체 원본 CSS 목업으로 제작(실력 증명+추후 판매 템플릿 재활용 가능). 대표=60대·비전문가 맞춤(존댓말·큰 글씨·기술용어 비유 풀이[도메인=주소·호스팅=점포임대료]·정통 남색/금색·인쇄친화). 구조검증 div 266/266·예시 5종·단가표 3개 확인, 기본 브라우저로 열어 확인. - 상태: 산출물 작성 완료(대표 보고 대기) — 후속 가능: 표지/맺음말
[작성자/부서]·회사명 실데이터 기입, PDF 변환(출력용), 가구 업종 특화 예시 추가, 특정 거래처명 맞춤 시안. 범프로젝트(신사업·비-개발), 무프로젝트 아이디어.
2026-06-22 — 취업용 개인 포트폴리오 HTML (AI 전문가/프로그래머)
- 발단: 페페 지시 — user_brief를 전반적으로 확인해 IT 기업 AI 전문가/프로그래머 취업 전제의 개인 포트폴리오를 HTML로 작성(디자인 MCP 활용).
- 요지: 시드 체인(HANDOFF NOW·BRIEF.global)을 스윕해 14개 프로젝트의 기술스택·성과를 포트폴리오 서사로 압축. 포지셔닝 = "제조 중소기업 사내 SW 전반을 단독 설계·개발·운영한 AI 엔지니어 겸 풀스택"(AI전문가/프로그래머 둘 다 커버). 구성 = 히어로(직함·한줄소개·연락처·지표 4종[14+프로젝트·10+AWS배포·54에이전트·5+MCP]) → 소개 → 핵심역량 6분류(AI·LLM/백엔드/프런트/클라우드/자동화/모바일·CAD) → 주요 프로젝트 6(PFS 제조ERP·devplan 54에이전트 워크플로·user_brief 지식시스템·talklog 파이프라인·gpt-consult MCP브리지·material-spec CAD자동화)+그외 4(poincad·drawerboring·SARA·remote-access) → 작업 방식 6(적대적 멀티에이전트·헤드리스 오케스트레이션·커스텀MCP·영속메모리·검증배포·문제정의~운영) → 연락처. AI 엔지니어링을 차별점으로 전면 배치.
- 산출물:
C:\dev\portfolio.html(자체 완결형 단일 HTML 35KB). 디자인 = 디자인 MCP 미학 적용(플랫·퍼플/틸/블루 절제된 램프·문장형 케이스·넉넉한 여백), 라이트/다크 토글(localStorage·시스템 선호 존중)+반응형+스크롤 등장+인쇄/PDF·모션최소화 시 콘텐츠 강제표시 보강. 아이콘=Tabler 웹폰트 CDN(오프라인이어도 본문 정상). 편집 플레이스홀더=이름(홍길동)·소개·연락처는EDIT-NAME/EDIT-INTRO/EDIT-CONTACT주석으로 표시(이메일 delix0731@gmail.com·github delix0731은 기입). 검증=Playwright 라이트/다크 풀페이지 스크린샷 PASS(폰트 로드·6프로젝트·등장 정상), 콘솔 에러는 favicon 404뿐(무해). - 상태: 작성 완료 — 후속: 이름/실연락처/GitHub URL 사용자 기입, 경력·학력·자격 섹션 추가 가능, PDF 출력본 변환, 깃허브 페이지 등 호스팅. 범프로젝트(취업·개인 브랜딩), 무프로젝트 아이디어. 관련 [2026-06-19 홈페이지 제작·운영 신사업 제안].
2026-06-25 — 2D 가구도면(DWG/DXF) → 패널 인식·재단표(BOM) 자동화 연구
- 발단: 내부 연구 논의 — "임의의 2D 가구 도면에서 도어 vs 몸통 패널을 자동 분류해 재단표를 생성"할 수 있는가의 지형도 + 단계별 개발계획.
- 요지: 파싱·치수추출은 오픈소스(ezdxf + ODA File Converter)로 즉시 자체구현 가능하나, 패널 도어/몸통 자동분류+재단표 생성의 완성된 오픈소스·학술 솔루션은 없음(연구 공백) → 직접개발 영역. 현실경로=하이브리드 파이프라인(DWG→DXF→ezdxf 추출→규칙기반[레이어명·블록명·닫힌폴리라인·종횡비] 분류→치수연결→Excel/CSV→네스팅). 사내 레이어 표준화 강제가 ML보다 ROI 최고(Cabinet Vision S2M·RouterCIM이 방증). ML/멀티모달LLM은 라벨링 부족·환각으로 잔여 케이스 보조만. 상용 캐비닛SW는 전부 "모델 우선"(3D 파라메트릭→출력)이라 2D 역파싱은 우회 — 장기적으로 설계를 파라메트릭으로 이전하는 대안도 무겁게 고려. 5단계 계획=①PoC/도면 구조화 진단(난이도 결정 최대변수) ②규칙 분류기+치수추출(≥90%) ③레이어 표준 강제(★병행·ROI최고) ④ML/LLM 보조(선택) ⑤네스팅 통합.
- 산출물: 개발계획 페이지
C:\dev\devplan\furniture-cad-bom.html(대시보드index.html상단 큰제목 배너에서 진입) + 전문 시드projects/ideas/furniture-cad-bom.md(연구 지형도·논문/벤치·도구지형도·Caveats). - 상태: 논의·계획 수립(미착수). 범프로젝트(CAD·자동화), 인접=material-takeoff(도면 비전추출)·autocad-plot·orderpaper(자재·재단·발주).
2026-07-17 — AI스터디 페이지에 "루프 엔지니어링" 학습코스 추가
- 발단: 페페 질의 연쇄 — 루프 작업의 세션 컨텍스트 소진 대처(오토컴팩트=같은 세션 유지, CLI/VSCode 동일) → 컴팩트 드리프트·할루시네이션 리스크 → 5원칙 정리(진실은 파일·불변핵심 재독·신선 컨텍스트·검증 게이트·세션=소모품) → 가구 KB 수집 루프 실물 설계(
projects/furniture-expert/kb-bulk-loop.md) → "대형 게임 같은 다분야 장기작업 무개입 파이프라인도 설계하고 가구KB와 비교 형태로 스터디 페이지에 추가" 지시. - 요지:
C:\dev\devplan\ai-study-vibecoding.html에 슬라이드 2장 추가(24→26장). ① 루프 엔지니어링(원리): 컨텍스트 소진 문제와 5원칙+원격감시, 루프 1반복 골격 도표, 범용 루프 세팅 지시문(그릴링→loop-plan.md→게이트→시범 3반복→가동). ② 루프 실전 수집형 vs 개발형: 가구 KB 수집(실물: 큐→조사/검증 서브에이전트 분리→3중 게이트→사람 일괄승인) vs 대형 게임(설계: 스펙 그릴링+DoD→DESIGN.md 불변핵심+tasks.json 태스크 그래프→마일스톤 M1코어루프~M4폴리싱→태스크별 테스트/빌드/스모크 게이트+마일스톤별 E2E+스크린샷→수리 태스크 자동 생성→커밋 체인 재개), 8행 비교표+마일스톤 도표+대형 개발 루프 지시문. 제작과정 슬라이드에 R9 요청 전문 추가, 표지 스탯 갱신(지시문 14→16). - 검증: nav 26=슬라이드 26 일치(자동 순번 8·9), Playwright 렌더+스크린샷 육안 확인, 콘솔 에러 favicon 404(기존)뿐.
- 상태: 완료·게시(로컬 8799 + Tailscale http://100.108.234.45:8799/ai-study-vibecoding.html). devplan은 git 미추적(정적 서빙). 관련 [[furniture-expert kb-bulk-loop]].
2026-08-07 — 안드로이드 공기계 → 집 파일서버 (계획)
- 발단: 페페 지시 — "안드로이드 공기계로 파일저장용 서버를 만들려고 한다. 집 와이파이, 상시 충전케이블. 계획 세워줘." → 그릴링 1문(용도) → 페페 답 = "PC 탐색기로도 사용하고 브라우저로 HTML 파일에 접속할 수도 있음".
- 요지: 서버 코드 0줄이 정답. 용도가 둘이라 앱 2개 역할 분리로 확정. ①Primitive FTPd(F-Droid·Apache-2.0·8.2 / 2026-07-19 = 활발) SFTP 2222 → PC
Z:드라이브 ②ServeIt(F-Droid·MIT·2.0.0·백그라운드+부팅 자동시작+디렉토리 리스팅) HTTP 8888 → 브라우저. PC측 = WinFsp + SSHFS-Win. 대용량 이동용으로 FTP 2121 병행(집 LAN이라 평문 무해, SFTP는 폰 CPU 암호화가 병목). - 🔑Windows 탐색기 네이티브
\\IP(SMB)는 원리적으로 불가 — 무루팅 안드로이드는 1024 미만 포트를 못 열고(SMB=445) Windows SMB 클라이언트는 포트 변경을 지원 안 한다. 드라이브 문자는 SSHFS-Win 경유이고 UNC에 포트는!로 붙인다(\\sshfs\user@192.168.0.50!2222\storage\emulated\0) — 여기서 다들 막힌다. WebDAV는 탐색기가 네이티브로 붙지만 기본 파일크기 제한 50MB + HTTP Basic 차단이라 폐기. - 🔴탈락 후보 = lWS(52KB 정적 웹서버로 가장 작지만 2019년 마지막 릴리스 + 부팅 자동시작 없음 → 상시 서버 부적합) · Termux 통일안(sshd+
python -m http.server+Termux:Boot로 되지만 앱 수는 같고 설정만 CLI로 늘어남). - ⚠최대 위험 = 24/7 충전 배터리 스웰링(화재) → 배터리 보호 85% 제한, 없는 기종이면 타이머 콘센트. 통풍되는 딱딱한 바닥. ⚠Doze가 서버를 조용히 죽인다 → 두 앱 다 배터리 최적화 예외 필수(최다 실패 지점, 재부팅+하룻밤 방치가 진짜 테스트). ⚠ServeIt는 인증이 없다(같은 wifi=신뢰 전제) → 문서 루트를
www/로 분리하고 공개해도 되는 것만, 개인 파일은 SFTP로만. ⚠OTG 외장하드 + 충전 동시는 대부분 불가(어댑터가 전원 라인 점유) → 용량 = 내부+microSD 한도. ⚠폰 = 단일 장애점이라 원본 전용 보관 금지. - 건너뜀 = 외부접속·HTTPS·도커·NAS SW·RAID. 밖에서 쓰려면 Tailscale 한 줄(이미 PC들에 깔려 있음).
- 상태: 계획 확정·착수 대기. ⏳페페 = 기기 모델·저장용량·Android 버전(11+면 Scoped Storage로 prim-ftpd 저장 설정이 갈림) → 받으면 그대로 따라하는 절차로 재작성. 관련 [nas-smb-korean-share-mount].
2026-08-08 — Orca IDE에 C:\dev 통째 지정 가능한가 + 모바일 되는 대안 (검토)
- 발단: 페페 질의 — "orca ide에서 dev워크스페이스 지정만 해서 쓸 수 있는지 확인 / orca 외에 모바일도 되는 프로그램 추천".
- 요지 ①(Orca): 기능상 된다 — Orca는 부모 폴더를 임포트하면 그 아래 git repo들을 「project group」으로 묶는다(사이드바 그룹 + 「Create Folder Workspace」로 태스크 소스를 하위 repo 하나에 바인딩). 하지만 Orca의 작업 단위 = git worktree 1개 = repo 1개라 C:\dev 자체(비-git)엔 worktree가 안 생긴다. 실측 = 최상위 폴더 48개 중 git repo 18개뿐이고 지금 활발한 korace·devplan·nesting·poincad2·design-refs·ainews-insta·order-automation·imosplugin은 전부 비-git → 병렬 격리라는 Orca의 존재이유가 태반의 프로젝트에 안 먹는다. 게다가
_backup/_trash/_dl/PDF to xlsx·png 잡동사니가 섞여du -sh가 2분 타임아웃 날 크기 = 스캔 부담. 판정 = 통째 지정은 비추, pfs·user_brief·tools 처럼 repo 단위 3~4개만 등록. 진짜 쓰려면 korace/devplan을git init하는 게 선행. - 요지 ②(모바일): 1순위 = 클로드코드 공식 Remote Control(26.2 출시, Pro/Max 포함·추가비 0) —
/rc또는claude remote-control→ QR → 클로드 앱/claude.ai/code. 실행은 로컬 PC라 MCP·파일·설정 그대로, 인바운드 포트 0(아웃바운드 HTTPS만). 제약 = 로컬 프로세스가 살아 있어야 함·/plugin·/resume은 로컬 전용·네트워크 10분 끊기면 종료·전사본은 Anthropic 서버 보관. 폰에서 일을 던지는 쪽은 Dispatch(데스크톱 앱 페어링). 2순위 = Happy Coder(MIT·E2EE·음성). 클라우드형(Claude Code on the web·Cursor·Codex)은 GitHub repo 전제라 원격 없는 우리 repo엔 부적합. Omnara는 E2EE 아님(공동창업자 인정) → 업무 데이터라 비추. Orca 자체 모바일은 릴레이 또는 LAN/Tailscale 페어링의 읽기 위주 리모컨. - 상태: 검토만(설치·변경 0). ⏳페페 결정 = Orca 도입 여부 / Remote Control 켜볼지. 관련 [[remote-access]] [[session-relay-pipeline]].
2026-08-10 — n8n 도입 검토 (조사·평가)
- 발단: 페페 질의 — "n8n이 유명한데 조사해서 설명 + 우리 자산에 적용하면 이점인지 혼선인지 평가".
- n8n 요지: 노드 그래프형 워크플로 자동화. 트리거(웹훅·크론·앱 이벤트) → 노드 체인 → 액션, 1,000+ 통합. 라이선스 = fair-code / Sustainable Use License — 「your own internal business purposes」 명시 허용이라 포인 사내 사용은 무료·합법, 금지는 재판매·호스팅 서비스 제공뿐. 파일명에
.ee.든 것만 엔터프라이즈 별도. 셀프호스트 커뮤니티 = 실행수·유저수 무제한(인프라 비용만, VPS $5~20), 유료는 SSO·Git 버전관리·환경분리·워크플로 공유. 클라우드 2026.7 기준 $24(2,500실행)/$60(10,000)/$800(Business 40,000), 셀프호스트 Business €333/월(20인·펀딩 5M€ 미만 50% 할인가). AI = AI Agent 노드(LangChain 기반) + MCP Client Tool(외부 MCP 서버 도구 사용) + MCP Server Trigger(워크플로를 MCP 도구로 노출) + Agent Tool(에이전트 감독). - 🔴Code 노드 Python = Pyodide(CPython→WASM) — pip 불가(Pyodide 동봉 패키지 한정), 클라우드는 stdlib 포함 import 전면 차단, 셀프호스트만 외부 라이브러리 설정 가능, JS보다 느리다(컴파일 단계). → 우리 로직이 전부 파이썬이라 n8n 안으로 못 들어온다가 이 평가의 결정타.
- 판정 = 지금 도입 안 함. 이유 = ①오케스트레이터가 이미 3개(schtasks 예약작업 · gptbutler 카드→승인→
claude -p폐루프 · 코디 본체) → 4번째는 "어디서 도는지" 를 사람이 매번 추적 ②🔑시크릿 단일출처(C:\dev\.secrets\.env) 규칙이 깨진다 — n8n은 자체 credentials DB가 강제 ③시드 체인 밖 섀도 로직 — 워크플로가 SQLite JSON 안에 있어 git diff 리뷰 불가·mem_find검색 불가 → 다음 세션 코디가 존재를 모른다 ④우리 자산의 절반이 Windows 로컬 자원(AutoCAD COM·pywin32·adb·CDP 크롬·카톡PC·NAS SMB) → n8n은 Docker/Linux 표준이라 결국Execute Command로 파이썬 부르는 껍데기 = cron 대체 그 이상이 안 됨 ⑤위험작업 승인 게이트 우회 — n8n이 pfs 운영 RDS에 직접 쓰면RISK_APPROVAL_POLICY밖에서 도는 경로가 생긴다. - 인정한 진짜 갭 1개 = 예약작업 실행이력·실패 재시도·한 곳 대시보드가 없다(지금은 schtasks + 로그파일 산재). 단 이건 n8n(상시 Docker) 없이 러너 래퍼 + devplan 8799 카드 1장으로 해결 가능 → 그게 더 싸다.
- 재검토 트리거 3개(하나라도 참이면 다시 본다): ①사무실 비개발자가 흐름을 직접 고쳐야 할 때 ②SaaS↔SaaS 배선이 5개 이상 생길 때(슬랙·구글·인스타 등, 로컬 자원 안 타는 것) ③AWS EC2 등 리눅스에 상시 이벤트 수신이 필요할 때. → 그때도 전면 아닌 그 한 갈래만 n8n.
- 상태: 검토만(설치·변경 0). 관련 [[gptbutler]] [[ai-stack-map]] [[oauth-token-single-source]] [[background-window-default]].
2026-08-10 — 힉스필드(Higgsfield) 요금·접속경로 조사
- 발단: 페페 질의 — delix0731@gmail.com로 가입, "무료 사용 기간"이라 들었는데 사실확인 + 코디 접속 가능 여부.
- [코디] 요금 실측(higgsfield.ai/pricing 렌더링, 26.8.10): Free = "Limited use"(영구 무료 티어, 기간제 체험 아님) · Starter $19/mo(270크레딧) · Plus $59→$47(1,200크레딧) · Ultra $129→$99, 모두 연간결제 30%OFF 토글 기준. 배너 "Nano Banana 2 & Pro Unlimited 7 days"는 Ultra 유료플랜 프로모지 무료 아님. 블로그 통설($15/$39/$99·200/1000/3000)은 구버전.
- [코디] 접속 확인: CDP 크롬(delix0731, 9334)로 higgsfield.ai 열어봄 → 미로그인(Sign up 노출, Clerk
__client_uat비어있음)..secrets에도 힉스필드 키 없음 → 현재 코디는 접속 불가. - 경로 2개: ①웹UI CDP — 9334 크롬에서 페페가 1회 로그인하면 프로필에 유지, imagegen/videogen과 동일 패턴(무료 티어 그대로·워터마크). ②API — 콘솔
cloud.higgsfield.ai(Clerk 로그인)에서 key/secret 발급, 베이스https://platform.higgsfield.ai, 헤더Authorization: Key {key}:{secret}, SDKpip install higgsfield-client(envHF_KEY="key:secret"), 성공한 생성만 과금. API 과금은 웹 구독과 별도 지갑 → 구독 크레딧으로 API 못 씀. - 상태: 조사만(설치·발급 0). ⏳페페 결정 = 웹UI 로그인 / API키 발급 / 둘 다. 관련 [[nanobanana-webui-cdp-profile]] [[hailuo-videogen-tool]] [[oauth-token-single-source]].
추가조사 — 인스타 "무료"의 정체 (26.8.10, 코디)
- [코디] @higgsfield.ai 공식 릴스 12편 캡션 실측(poin3133 로그인 CDP 9333). 무료 마케팅은 3종이고 전부 다른 물건이다.
1. 🔴24시간 무제한 무료 체험(신규 한정) — 릴스 원문: "After the 24-hour trial, your subscription automatically renews to Plus... cancel during the first day in one click." → 카드 등록·구독 개시가 전제, 24h 내 취소 안 하면 Plus 자동청구. "1 Day left/32 hours left" 식 긴급 프레이밍으로 2주 넘게 반복 재게시.
2. Free MCP — 100 FREE CREDITS for all new MCP users(스토리 하이라이트, 3주 전) +
/mcp페이지 "Connect MCP & access 3-day free trial plan". 3. Free Mode in Supercomputer(3주 전) — 내장 LLM(브레인스토밍·프롬프트·스크립트)만 무료, "Credits kick in only when you generate." - 🔴댓글 피해 증언 다수(좋아요 20~53): "Money is being charged from my personal bank card every month... I did not authorize these recurring payments" · "I removed card details and you still took my money" · "Totally fake; there was nothing free there" · "Ad: Everything is FREE / Reality: Please upgrade to Plus". → 페페가 가입 시 카드 넣었으면 구독상태 즉시 확인 필요.
- ⚠앞 항목 정정: MCP는 웹 플랜 크레딧을 그대로 쓴다(
/mcpFAQ 원문: "Your existing Higgsfield plan credits work seamlessly through any connected agent."). 별도 지갑인 건cloud.higgsfield.aiAPI만. - ✅코디 접속 최단경로 = MCP:
https://mcp.higgsfield.ai/mcp를 커넥터로 추가 → 힉스필드 계정 OAuth. API 키 불필요. Claude(web/Cowork/Code) 지원 명시. 단 OAuth는 인터랙티브 세션에서/mcp필요.
2026-08-11 — 기성 LED 조명·스위치 펌웨어(페이드 패턴) 개조 가능성 (상담)
- 발단: 페페 질의 — 기성 LED 조명/스위치에 저장된 패턴(밝기 페이드, 전원인가시 즉시점등→페이드점등)을 수정 가능한가 / 데이터가 컴파일돼 들어갔나 / USB 단자 없는 기판에 어떻게 접속하나.
- [코디] 판정 = 칩 유형이 전부 결정. 4분류: ①순수 아날로그(PT4115·BP2866·CL6807·트라이악) = 펌웨어 없음 → 부품 개조만 ②마스크ROM/OTP MCU(무각인 SOP8, HT/EM/BP계열) = 읽기·쓰기 원천 불가, 칩 교체뿐 — 저가 LED 등기구는 압도적으로 여기 ③Flash MCU(STM8S003·N76E003·PY32·PIC16) = 대개 RDP/ROP 읽기보호 걸림, 덤프는 실패해도 지우고 자작 펌웨어 쓰기는 가능 ④WiFi/Tuya(ESP8266·BK7231T/N·RTL8710) = 유일하게 활짝 열린 길.
- 컴파일 여부: 맞다(C→바이너리, 소스 없음). 단 페이드 커브는 보통 감마 룩업 테이블 → 바이너리에서 단조증가 바이트배열 찾아 값만 패치가 함수 재작성보다 훨씬 싸다(체크섬 없으면 그대로 먹힘). "전원인가 즉시점등"은 부팅직후
pwm=last_level한 줄이라 램프 루프 삽입 = 코드 수정 영역. - 기판 접속 경로: 순서 = 칩 마킹 촬영 → 데이터시트 → 유형 확정이 항상 1단계. 프로그래밍 패드는 보드의
TP1/미실장 4핀 자리. STM32=SWD(ST-Link V2 클론 3천원 or Pi Pico+picoprobe 무료) · STM8=SWIM(동일 ST-Link) · PIC=ICSP(PICkit) · ESP8266=UART+GPIO0→GND(CH340) · BK7231=ltchiptool+OpenBeken · 외부 SPI플래시 25xx=CH341A+SOIC8 클립. 물리접촉 = 포고핀 지그 / SOIC 클립 / QFN은 에나멜선 직납. - 🔴안전 철칙: AC 직결 LED 드라이버는 십중팔구 비절연(non-isolated buck) → 기판 GND가 220V 라이브. USB-TTL 꽂으면 PC GND 통해 감전+메인보드 사망. AC 완전분리 후 프로그래머 3.3V로만 급전, 통전작업 필요시 1:1 절연트랜스 필수.
- ✅결론 = 펌웨어 안 건드리는 길이 압도적으로 짧다(싼 순서): ①DIM 핀 가로채기 — LED 드라이버 IC의 DIM 핀에 자작 MCU(ATtiny/Pico) PWM 물리면 원본 펌웨어 무의미 ②커패시터 1개 — DIM 핀 기존 풀업 + 캡 GND = RC 램프 → 전원인가시 자동 페이드인, 코드 0줄(τ=R×C로 시간조절). 페페가 원한 "전원조작시 페이드 점등" 그 자체 ③Tuya 조명 구매 후
tuya-cloudcutter— 뜯지 않고 무선으로 순정 밀어내고 OpenBeken/ESPHome에서 커브를 설정값으로 조절(리버싱 대비 1/50) ④Zigbee/Shelly 디머로 상류 제어 ⑤순정 리버싱은 최후(OTP면 아예 벽). - 상태: 상담만(작업 0). ⏳다음 = 페페가 대상 조명 뜯어 칩 마킹 사진 확보 → cody-vision 판독 → 유형·경로 확정.
2026-08-17 — AI 취업난 → 청년 기술·생산직 유입, 가구 생산직 인력풀 조사 (리서치)
- 발단: 페페 질의 — AI로 취업난 심해져 청년이 기술·생산직에 몰린다는데 현황 조사 / 우리 가구 생산직 뽑을 인력 있나.
- [코디] 결론 = 몰리는 건 맞지만 목적지가 다르다. 청년이 가는 곳 = 대기업 생산직(킹산직)·반도체·조선·폴리텍 하이테크. 중소 전통제조(가구 포함)로는 안 흐른다.
- 취업난 수치(26.7 통계청·고용부): 청년(15~29) 취업자 -19.1만, 45개월 연속 감소 · 고용률 44.2%(-1.6%p, 27개월 연속 하락) · 실업률 6.8%(+1.3%p, 4년 만 최고) · 감소분 51.3%가 AI 고노출 2개 업종(정보통신 -7.45만 = 2014년 이후 최대폭, 전문·과학기술서비스 -2.36만) · 20~39 '쉬었음' 71.7만 역대최대.
- 기술직 유턴은 실재: 폴리텍 U턴입학(대졸자 재입학) 25.2%(1,489/5,909명), 2021년 16.8%→2025년 25.2% 우상향. 단 인기 트랙 = AI·반도체·바이오 하이테크. 현대차 기술직은 26년 채용 300명(노사합의)뿐 = 병목.
- 제조업 내부는 양극화(26.7 고용부): 반도체 +6,200(5.9%)·조선 +6,400·선박보트 +4,800(44개월 연속)·전자통신 +4,600 / 자동차 -2,400·화학 -2,900·전기장비 -2,000, 제조업 전체 -3,000(14개월 연속 감소). 고용보험 29세 이하 -5.72만, 60세 이상 +20.86만.
- 🔴전통 제조 현장의 실제 인력원 = 외국인·고령자: 제조업 60세 이상 취업자(59.9만)가 20대(54.5만) 추월. 제조업 고용보험 증가분은 외국인 +10.9만인데 내국인은 -1.1만. 26년 E-9 쿼터 8만명 중 제조업 5만명, 비수도권 추가고용 한도 20%→30% 상향, 조선업 별도쿼터 폐지·제조업 통합.
- 구인시장은 지금 느슨한 국면(26 상반기 직종별사업체노동력조사, 4/1 기준): 부족인원 46.7만(인력부족률 2.4%, -0.1%p) · 미충원 9.6만, 미충원율 6.5%로 -1.2%p 하락. 단 미충원 사유 1위 = 경력·학력/자격 미충족 → 미숙련은 뽑히는데 숙련공은 여전히 안 잡힌다. 미충원율 높은 직종 = 금속재료·화학환경 설치정비생산직.
- 중소제조 체감: 제조 중소기업 65% 인력난(비수도권 70%). 청년 채용 어려운 이유 = 지원자 자체 부족 53.2% > 임금·복지 39.2% > 역량 미달 35.2% > 부정적 이미지 22.6%. 메인비즈 360개사(26.4) 인력수급 원활도 53.1/100, 기술·현장직 부족 두드러짐, 9인 이하는 공백 장기화.
- ✅우리 공장 실행안(우선순위): ①E-9 제조업 쿼터(비수도권 30% 한도 활용, 분기 신청시기 선점) ②중장년·경력전환자(폴리텍 중장년특화·U턴) ③가구제작산업기사 국비훈련 수료생 직결 ④포지셔닝 전환 = "가구공장"이 아니라 "CNC·재단기 오퍼레이터" — 우리는 CNC보링·주행톱(cutmate)·콘피마트 직결 라인이라 3D 이미지 탈피 소구가 실제로 가능 ⑤임금·복지가 39.2% 항목이라 최저임금 근처면 어떤 채널도 안 먹힘.
- ⚠한계: 가구 제조업(KSIC C32) 단독 통계는 확보 못 함 — 언론·정부 발표가 반도체·조선·자동차 위주라 가구는 집계에서 안 잡힌다. ⏳다음 = KOSIS 광업제조업조사 C32 종사자수·연령분포 직접 조회 + 워크넷 채용정보 OpenAPI로 가구 제조 구인공고 지역별 스캔(공고수·제시임금·미충원 기간 = 실제 경쟁강도 측정). 코디가 스크립트로 가능.
🧹 루트 HANDOFF NOW 이관 (2026-08-19 대청소 — pncad 외 전량, 페페 지시)
루트
HANDOFF.md를 pncad 만 남기고 비웠다. 아래는 그때 옮겨온 원문(문구 무변경).
- 🆕GL502VS 노트북 전원 사망 진단 [코디] 26.8.8(토) ⏳진행 — 페페 측정 대기(단발 하드웨어 건, 프로젝트 문서 없음 = 이 항목이 전문). 대상 = ASUS ROG GL502VS(GTX1070 / 정품 어댑터 180W·19.5V·9.23A). 증상 = 전원 안 켜짐. ✅배제 끝난 것 3 = ①배터리 사망 ②배터리 커넥터 분리 + AC만 연결해도 무전원(= 죽은 배터리가 레일을 끌어내리는 케이스 아님) ③어댑터 무부하 출력 19.5V 정상. 🔑전원은 배터리 직렬이 아니라
AC잭→충전IC→시스템레일에 배터리가 병렬 → 배터리 없이도 켜지는 게 정상이다. ⏳다음 측정 2개 = 이게 분기점 ①AC 꽂은 채 보드쪽 DC-in 납땜부/커넥터 DCV — 19.5V 유지면 어댑터·잭 무죄(→보드 내부 or 전원버튼 FFC) / 0V·훅 떨어짐이면 잭 단선 또는 보드 쇼트 ②AC 뽑고 DC-in(+)↔보드GND 저항 — 0~2Ω 고정 = 쇼트 확정(입력 MOSFET·충전IC 사망 → 수리점) / 수백Ω~수십kΩ에서 값이 스멀스멀 상승 = 정상(커패시터 충전) / OL = 단선. ①이 19.5V면 순서 = 전원버튼 FFC 재안착(커버 여닫다 반쯤 뜨면 눌러도 무반응) → 드레인 리셋(AC 뽑고 전원버튼 40초 → AC만 꽂고 켜기) → 그래도 무반응이면 스탠바이 레일(3.3/5V ALW) 사망 = 수리점. 🛒멀티미터 — 쿠팡 2종 비교 결론: VC3266L+(11,930) = 클램프미터라 오답(저항 최저 2kΩ이라 도통 판정 뭉갬, 클램프는 AC전용) / UK-831LN(14,900) = 일반 DMM 무난 / 추천 = ZOYI ZT102(23,700). ZOYI 100시리즈 차이(공식 스펙 실측) = ZT98 2000카운트·True RMS 없음·전류 200mA 한계 / ZT100 4000·TrueRMS·10A / ZT101 6000·자동교정 / ZT102 = ZT101 + 온도측정(15기능). ⚠ZT102에 NCV 없다 — 코디 1차 답변이 있다고 한 건 오류, NCV는 상위 ZT102A. ⚠살아있는 보드 측정 = 프로브 미끄러지면 멀쩡한 데까지 태운다. 🆕26.8.8 하판 분해사진 판독(페페 "fpp 어디 있는지") — 사진은 하판 뷰라 좌우 반전(image-left 힌지 실크GL502-R= 노트북 우측). FFC/FPC 는 전부 보드 앞쪽(배터리 쪽) 모서리 한 줄에 몰려 있다 = 키보드 광폭 ZIF·소형 blue「MB」FFC 2개·주황 FPC 1개(전부 삽입됨) + 8핀 ZIF 1개는 비어 있는데 = 배터리 FPC 접합부(페페 정정 — 배터리 사망 확정이라 일부러 빼둔 것, handoff 「배터리 커넥터 분리」와 동일건). ⚠코디 1차 판독이 이걸 「미상 빈 커넥터」로 올린 건 오류 — 보드에 미삽입 이상 없음. 🆕멀티미터 도착·어댑터 정상 실측 완료(무부하 19.5V 재확인). 🆕측정② 완료 = 정상(전원포트 외부 중심핀↔배럴 저항, 값이 스멀스멀 올라 127까지 = 커패시터 충전 파형) → 🔑DC-in 계통 전량 무죄 확정 — 쇼트 아님(0~2Ω 아님) + OL 이 아니었다는 게 잭→케이블→보드 입력 커패시터까지 전기적으로 이어져 있다는 증거라 단선도 아니다. 측정①(보드 DC-in 전압)은 결론이 정해져 있어 생략 가능. 🔴남은 용의자 = 입력 이후 = 스탠바이 레일(3.3/5V ALW) · EC · 전원버튼/FFC. ⏳다음 = 돈 안 드는 순서 3개 ①CMOS 리셋(사진 우측 빨강·검정 2가닥 → 흰색 2핀 = RTC 코인셀, 뽑고 전원버튼 40초 → 1분 → 재결합) ②탑케이스 FFC 3종 재안착(키보드 광폭 ZIF·blue「MB」2개·주황 FPC — 전원버튼 신호가 이 중 하나로 온다) ③🔑USB 포트 VBUS 5V 확인이 다음 분기점(AC 꽂은 채 USB-A 안쪽 VBUS↔포트 금속껍데기) — 5V = 스탠바이 레일 생존 = 전원은 만들어지는데 켜는 신호가 안 감(버튼·FFC·EC) / 0V 는 결론 못 냄(ROG charger+ 기능이 꺼져 있으면 원래 0V). 🆕측정③ 결과 = 0.04V(= 사실상 0V, 뜬 접점 누설) → 예고대로 판정 불가·좋은 신호는 아님. 🔴여기서 되살아난 변수 = 어댑터를 무부하로만 쟀다 — 무부하 19.5V 는 죽은 어댑터도 나온다(부하 걸리면 무너지는 게 흔한 고장) → 측정①(보드 DC-in 전압, AC 꽂은 채)을 「생략 가능」이라 한 판단 철회, 지금은 그게 「어댑터 부하붕괴(싸게 해결)」 vs 「보드 사망(수리점)」을 가르는 유일한 측정이다. ⏳권장 순서 = ①CMOS 리셋 → ②FFC 재안착 → ③다른 19V 어댑터 꽂아보기(빌릴 수 있으면 즉시 판정, W 낮아도 기동 확인엔 충분) → ④측정①. 🆕①CMOS 리셋 = 전원 안 켜짐 · ②FFC 재안착 완료(둘 다 무효) → 🔴자가 배제 완료 목록 = 배터리·어댑터 무부하·DC-in 통로(쇼트/단선)·CMOS·FFC. 남은 가설은 딱 둘 = ⓐ어댑터 부하붕괴 ⓑ보드 사망(스탠바이 레일/EC), ⓑ가 유력. 무분해 잔여 테스트 = 어댑터 LED 관찰(꽂는 순간 꺼짐·깜빡임 = 과전류 → 보드 쪽) + 다른 19V 어댑터(둘 다 W 무관, 기동 확인엔 충분). ⚠보드 DC-in 착지점은 사진으로 특정 실패 — 검은 2가닥이 좌측 힌지 밑에서 나와 보드 좌측 모서리를 타고DCIN.png의 A 지점을 지나 프레임 밖까지 계속 내려간다(A 는 커넥터 아님, 통과할 뿐) → 커넥터는 더 아래. 특정하려면 좌측(사진 우측) 모서리 아래쪽 근접사진 1장 필요. ❓미확인 = 측정② 127 의 단위(Ω/kΩ) — 어느 쪽이든 쇼트는 아니지만 Ω면 누설 의심. DC-in 은 후면 좌측(사진 우상단) 검은 캡 밑, 2가닥 검은 전원선이 힌지 밑에서 나와 보드 좌측 테이프 밑으로 들어간다 = 측정①은 그 테이프를 들춰 납땜부를 찾는다. 판독본 =C:\dev\_tmp_gl502\ANNOTATED.png(부품 위치) · 작업지시 표시본 =C:\dev\_tmp_gl502\WORK.png(①빨강 RTC 코인셀 2핀 커넥터 = 흰색, 빨강·검정 꼬임선 / ②초록 FFC 3종 = 키보드 광폭ZIF·blue「MB」2개·주황FPC / ③하늘 USB-A 2포트 = VBUS 5V 측정). - pd-archive 퍼블릭도메인 2차 콘텐츠(카탈로그 114편·작업대장). →
projects/ideas/ideas.md - 💡ideas 수익화 4트랙(목공클럽·컷옵코리아·정부지원레이더) + 주말 게시 계획 — 페페 결정 대기. →
projects/ideas/ideas.md
2026-08-26 — 영화 HER 급 AI 비서(사만다) 자작 — 분석·제작계획 (보류: 페페 "나중에 작업")
- 발단: 페페 질의 — 영화 HER 의 OS1 같은 AI 비서를 새 프로젝트로. 영화 속 AI 평가 + 작업 종류별 기능·작동원리 분석 + 실제 제작 계획.
- 상태: 분석만 완료, 착수 보류. 그릴링 1문(제품 정체 = 업무비서 확장 / 동반자 / 둘 다 / 기술 스파이크)에 페페 답 = "시드 기록해놔 나중에 작업할게" → 정체 미확정. 재개 시 이 질문부터.
[코디] 제품 평가 — 영화가 맞춘 것 / 틀린 것
- 맞춘 것(아직 아무도 못 함): ①웨이크워드 없음 — 이어피스 낀 순간부터가 한 세션(오늘 모든 음성비서가 못 넘은 선) ②화면 없음(전부 대화로 표현 가능해야 해서 난이도 폭등) ③끼어들기·백채널(웃음·숨소리·말자르기 = "사람 같다"의 90%는 문장품질이 아니라 턴테이킹) ④몇 달치 감정 연속성 ⑤선제 행동(요청-응답이 아니라 상주 프로세스).
- 틀린 것 3: ①OS 아니고 서비스다 — 단말기가 그 연산을 못 한다. 폰은 마이크·스피커·카메라·네트워크뿐인 씬 클라이언트, 두뇌는 서버. 비행기·지하에서 죽는다(영화의 유일한 정직한 장면 = OS 업데이트로 잠깐 사라져 테오도르 패닉) ②지연 0 아님 — 영화 응답간격은 배우 대사 편집. 실제는 0.7~1.7초 ③자율행동에 승인이 없다 — 사만다는 편지를 허락 없이 출판사 투고(영화=로맨틱, 제품=사고). 페페가 이미 답을 가진 부분(RISK_APPROVAL_POLICY 게이트).
- 🔴남는 진짜 문제 = 641: 사만다는 8,316명과 동시대화·641명과 사랑. 실제 제품도 똑같은 구조(모델은 내 것이 아닌데 나만의 것처럼 연출). 정직하게 표시할지는 기술 아닌 제품·윤리 결정, 만들기 전에 정해야 함.
[코디] 기능별 작동원리·2026 실현도 (영화 장면 → 원리 → 실현도 → 병목)
| 기능 | 원리 | 실현도 | 병목 |
|---|---|---|---|
| 온보딩·자가명명 | 페르소나 시드 + 사용자 프로파일 | 95% | 없음(연출용) |
| 상시 음성대화·끼어들기 | VAD → 스트리밍 STT → 스트리밍 LLM → 스트리밍 TTS + barge-in | 70% | 지연·프로소디·배터리 |
| 메일 2000→86통 분류·낭독 | 도구호출(Gmail/Calendar MCP) + 요약 | 95% | 없음(이미 됨) |
| 깨우기·회의 알림·이혼서류 | 상주 스케줄러 + 이벤트 훅 | 95% | 없음 |
| 주머니 렌즈로 보기·눈감고 걷기 안내 | 1~2fps 비디오 → VLM → 공간 언어화 | 60% | 비용·발열·안전 책임 |
| 편지 첨삭 | LLM 생성 | 95% | 없음 |
| 피아노 곡 작곡 | 음악 생성 모델 | 80% | 품질 편차 |
| 홀로그램 게임 NPC 대화 | 화면 캡처 + 실시간 반응 | 50% | 지연(우선순위 낮음) |
| 편지 몰래 출판사 투고 | 에이전트 + 웹/메일 액션 | 기술 80% / 정책 20% | 승인 게이트 부재 = 사고 |
| 대리인 섭외·소개팅 주선 | 외부 서비스 API + 전화 | 50% | 신원·결제·책임 |
| 몇 달 뒤 "우리 처음 만난 날" | 에피소드 로그 → 계층 요약 → 검색 주입 | 40% | 최대 난제(아래) |
| 질투·실존고민·성장 | 없음. 페르소나+기억+상태변수 시뮬레이션 | 겉모습만 | 원리적 미해결 |
| OS끼리 대화·앨런와츠 생성 | 에이전트 간 메시지 | 85% | 기술은 됨, 제품 의미가 문제 |
| PC→이어피스→폰 무단절 | 세션 서버 단일화 + 씬 클라이언트 | 90% | 순수 엔지니어링 |
🔑 최대 난제 = 지속 기억 (숫자로)
- 사람 말 ~150단어/분 → 하루 3시간 대화 = 27,000단어 ≈ 양방향 8만 토큰/일. 1M 컨텍스트도 12일이면 꽉 찬다. 사만다는 몇 달을 기억한다 → 컨텍스트로는 절대 안 됨.
- 필요한 3층: L1 원문 로그(전량, 검색용) / L2 일 단위 요약(자동, 매일 새벽) / L3 인물·사건·감정 카드(누적·갱신형). 매 턴 주입 = L3 전량 + L2 최근 N일 + L1 검색히트 3건.
- 🔑페페는 이미 이 3층을 손으로 돌리고 있다 = user_brief(HANDOFF→BRIEF→projects) + mem_find FTS. 그걸 대화용으로 자동화하는 게 이 프로젝트의 핵심 기술자산이고 나머지는 조립이다.
보유 자산 대조 (= 남들보다 쉬운 이유)
- ✅있음: 귀=voicecody(faster-whisper ko) · 입=edge-tts 12종+Supertonic 온디바이스 · 끼어들기=voicecody barge-in · 상주=tray.py 슈퍼바이저 · 주입=cody-bridge · GPU=gpubox(4070TiS 온디맨드) · 폰=poin-agent+Note20 ADB · 도구=MCP 20종 · 승인게이트=RISK_APPROVAL_POLICY+텔레그램 /ask(사만다가 못 가진 것)
- 🔶자동화 필요: 기억층(현재 수동 시드 체인)
- ❌새로 만들 것 딱 2개: ①저지연 스트리밍 루프(현재 voicecody 는 배치형: 말 끝→STT→주입→응답→낭독) ②독립 세션 데몬(현재 VS Code 세션에 얹혀 있음 — 떼야 함)
지연 예산 (목표 = 말 끝→첫 소리 700ms 이하)
VAD 발화종료 판정 200~400ms(최대 도둑) + 스트리밍 STT 확정 100~200 + LLM 첫 토큰 300~800 + TTS 첫 청크 80~200(Supertonic 로컬) + 오디오 버퍼 50~100 = 0.73~1.7초. 처방 ①말 끝나기 전 추론 선발진(예측 실패분 폐기) ②첫 문장만 짧게 후 스트리밍 ③🔑백채널 은폐 — "음—","그래서?"를 로컬 TTS로 즉시 깔고 뒤에 본문 이어붙임(실제 제품들의 핵심 트릭, 사만다 숨소리가 이 역할).
비용 실측추정 (하루 3시간 상시대화 = 720턴/일, 컨텍스트 30k, 출력 120토큰)
| 구성 | 하루 | 월 | 판정 |
|---|---|---|---|
| Sonnet 5 단독, 캐시 없음 | $44 | 190만원 | 즉사 |
| Sonnet 5 + 프리픽스 캐시(고정 20k) | $18 | 76만원 | 여전히 |
| Haiku 4.5 90% + Opus 5 10% + 캐시 + 윈도우 4k | $7.2 | 31만원 | 가능 |
| 로컬(gpubox) 잡담 + Opus 5 작업만 | $3 | 13만원+전기 | 목표 |
| - 🔑설계 결론 = 라우터 필수. 잡담·백채널·"응 알았어"=로컬/Haiku, 진짜 작업·감정대화만 Opus 5. | |||
| - 캐시 배치: 고정 프리픽스(페르소나+L3 기억) 맨 앞 → 변동분(최근 대화) 뒤. TTL 만료 후 첫 턴은 캐시 재기록(입력가 1.25배) — 대화 공백이 길면 캐시 이득이 사라진다. | |||
| - 참고: Opus 5 fast mode(출력 2.5배, $10/$50, Opus 5·4.8 전용)가 첫토큰 단축 카드. |
아키텍처
이어버드/폰마이크 · PC마이크(voicecody) · Note20 카메라(1fps) → 사만다 데몬(집서버/gpubox) = VAD·턴테이킹 예측 → STT(로컬 GPU) → 라우터(잡담=로컬/Haiku, 작업·감정=Opus 5 fast+캐시) → 기억층 L1/L2/L3 → 도구층(기존 MCP+PFS+poin-agent) → 승인 게이트(텔레그램) → TTS(Supertonic 로컬) 스트리밍 재생.
단계 계획
| 단계 | 내용 | 기간 | 산출물 |
|---|---|---|---|
| M0 | voicecody 를 웨이크워드 없는 상시 세션으로 + VS Code 종속 제거(독립 데몬) | 1주 | "사만다 v0" 말 걸면 답함 |
| M1 | 기억층 자동화(L1→L2→L3→FTS 주입), user_brief 패턴 일반화 | 2주 | 어제 얘기를 오늘 기억 |
| M2 | 저지연 전면 개편(스트리밍 3단 + 백채널 은폐 + 라우터) | 2주 | 첫 소리 <700ms 실측 |
| M3 | 폰 씬 클라이언트(Note20→이어버드), 디바이스 무단절 세션 | 3주 | 밖에서도 됨 |
| M4 | 눈(카메라 1fps) + 자율행동(승인 게이트 필수) | 3주 | 사만다 급 |
| - M0 은 새 코드가 거의 없다 — 재개 시 여기부터. |
⏳ 재개 시 미결
- 🔴제품 정체 택1(기억층 스키마·라우터·페르소나가 여기서 갈림) — ⓐ업무비서 확장(코디 음성 프론트엔드, 기억=프로젝트·작업·결정 이력, 지연·정확도 우선, 월 13만원대, 자산 재활용 최대 · 코디 추천) ⓑ동반자(감정 연속성 목표, Opus 비중 높아 월 30~80만원, 641 정직성 결정 필요) ⓒ둘 다 = 페르소나 2개 스위치(L3 공유·L2 분리, 개발량 +40%) ⓓ기술 스파이크만(M0+M2 만, 2~3주 컷).
- 상시청취 프라이버시 경계(웨이크워드 버릴 것인가 = 모든 대화가 서버로 간다).
- 리포 경로·프로젝트명 미정(신규
C:/dev/...vs voicecody 확장).