라벨이 코드 실측인 게시물 표시

Buzz 워크플로우는 액션이 일곱 개인데 셋은 로그만 남기고 성공한다

이미지
리뷰 영상 네 편을 봤습니다. 네 편 다 설치부터 시연까지 보여주고, 네 편 다 된다고 말합니다. 그런데도 코드를 열었습니다. 굳이 연 이유는 네 편의 순서가 전부 똑같았기 때문입니다. "된다"를 보여주고 나서 "그런데 이건 아직"을 덧붙이는데, 그 "이건 아직"이 네 편 모두 같은 기능에 걸려 있었습니다. 한 편이 걸리면 그 사람 환경 문제입니다. 네 편이 같은 자리에서 걸리면 화면 문제가 아니라 그 아래 문제입니다. 리뷰 영상은 되는 걸 보여주려고 만듭니다. 안 되면 다시 찍거나 그 대목을 잘라냅니다. 그 편향을 뚫고 네 편에 다 남아 있다면, 다시 찍어도 안 되고 잘라내면 흐름이 끊기는 자리라는 뜻입니다. crates/buzz-workflow/src/executor.rs 532번째 줄에 이렇게 적혀 있었습니다. /// For MVP, most actions log their intent and return a success output. /// Real event emission is wired in WF-07/08 (relay integration). 대부분의 액션이 무엇을 하려 했는지를 로그로 남기고 성공 출력을 반환한다 고, 코드가 자기 입으로 적어놓았습니다. 한 줄로 설명이 안 되는 물건입니다 Buzz 는 Block 이 공개한 오픈소스입니다. Apache 2.0 이라 가져다 고쳐 써도 됩니다. 그런데 이게 뭘 하는 물건인지가 한 줄로 안 잡힙니다. 채팅앱이라고 하기엔 git 저장소를 품고 있고, 개발 도구라고 하기엔 채널과 DM 이 있습니다. 공식 설명은 사람과 에이전트가 같이 일하는 작업 공간이라고 되어 있습니다. 구조는 세 덩어리로 보면 정리가 됩니다. relay 와 agent 와 community 입니다. relay 는 Rust 로 짠 서버인데, 메시지든 반응이든 git 이벤트든 전부 여기 하나의 로그로 쌓입니다. 사람도 에이전트도 각자 키를 가지고, 남기는 흔적마...

AI 부업 강의 여섯 편이 "리스크가 제로죠"라고 말했다

이미지
2년쯤 전에 유행한 강의가 있었습니다. 무료 루프로 음악을 만들고 배경 한 장을 움직이게 만들어서 몇 시간짜리 영상으로 올리는 방식이었습니다. 로열티 프리 소스라 저작권 걱정이 없고, 촬영이 없고, 한 번 올리면 쌓인다고 했습니다. 지금 그 강의를 파는 사람은 없습니다. 대신 도구가 바뀐 같은 문장이 팔립니다. 여섯 편의 원문을 붙여놓고 읽어봤습니다. 자동 생성 자막이라 오타가 많지만 화자가 무슨 값을 제시했는지는 다 남아 있습니다. 무인 채널 강의 한 편, 시니어 정보채널 강의 한 편, 해외 사업가의 다섯 가지 모델을 요약한 재가공 영상 한 편, 홈페이지 제작 부업 한 편, 쇼폼 제작 한 편과 쇼폼 대행 한 편입니다. 세어보니 실패 사례는 여섯 편에 한 건이었습니다. 고객 쪽 전환 사례도 한 건이었습니다. 계약 갱신 데이터는 0건이었습니다. 그리고 데모에 기술적 거짓은 한 건도 없었습니다. 이게 이 글에서 제일 걸리는 부분입니다. 여섯 편 모두 상품이 영상 밖에 있습니다 여섯 편 전부 끝이 같습니다. 고정 댓글 링크, 특정 날짜의 무료 강의, 전자책, 프롬프트 자료 묶음. 숨기지도 않습니다. 무인 채널 편의 화자는 평생교육시설 허가가 나는 자리로 사무실을 옮겼다고 말하고, 자기 이름을 건 채널로 1년 반째 사람들을 가르치고 있으며 함께하는 크리에이터가 400명이라고 말합니다. 교육이 주력이라는 걸 영상에서 자기 입으로 밝힙니다. 그러니까 이 영상들은 콘텐츠 자리에 놓인 광고입니다. 화면의 수익 스크린샷은 상품 설명이 아니고 광고 소재입니다. 이건 그 자체로 문제는 아닙니다. 문제는 스크린샷이 증명하는 성과와 판매되는 방법론이 서로 다른 사업이라는 점입니다. 무인 채널 편에서 검증 가능한 성과로 보여준 건 전부 커머스입니다. 자전거 리뷰 영상 27만 뷰, 124만 9천 원짜리 상품, 수수료 25퍼센트, 스쿠터 신청서 56건. 화면에 실제로 떠 있고 성립할 수 있는 숫자입니다. 그런데 파는 방법론은 얼굴도 목소리도 나오지 않는 무인 채널입니다...

규격 “10000~12000자”를 두 가지로 세면 18건과 7건이 나옵니다

이미지
산출물 21건이 나간 저장소 하나를 열어서 규격과 대조해봤습니다. 규격은 문서에 적혀 있습니다. 산출물 한 건의 분량은 10000자에서 12000자 사이. 21건 전부 이 규격을 받은 상태에서 만들어졌고, 만들 때마다 규격을 지켰다는 보고가 같이 왔습니다. 21건 중 규격 위반으로 반려된 건은 없습니다. 머리말을 잘라내고 공백을 뺀 글자 수를 세니 21건 중 18건이 밴드 밖에 있었습니다. 대부분 아래쪽이었고 7000자대가 여럿이었습니다. 세는 방법을 바꿔서 공백을 포함하고 다시 세니 이번엔 7건이 밖이었습니다. 규격에는 공백을 세라는 말도, 빼라는 말도 없었습니다. 세는 방법 하나 때문에 답이 갈린 걸 보고 나머지도 대조해보기로 했습니다. 배포 코드를 열고, 라이브 페이지를 받아보고, 커밋 메시지를 훑고, 플랫폼 정책 문구를 띄워놓고 21건을 다시 읽었습니다. 반나절 걸렸습니다. 이 글은 그 반나절 동안 나온 것들을 순서대로 적은 겁니다. 다섯 가지가 나왔고 공통점이 하나 있습니다. 전부 에러가 없습니다. 실패한 명령이 없고, 빨간 줄이 없고, 돌아온 보고는 매번 완료였습니다. 그리고 다섯 가지를 찾는 데 쓴 수단이 전부 명령줄이었습니다. 숫자만 적힌 규격 세는 방법만 바꿔서 두 번 돌렸는데 공백을 빼면 21건 중 18건이 밴드 밖이고 공백을 넣으면 7건입니다. 같은 파일 21개, 같은 규격, 다른 답입니다. 한글 산문에서 공백은 전체의 20퍼센트 안팎을 차지합니다. 9000자짜리 본문이 세는 방법 하나로 7200자도 되고 9000자도 됩니다. 밴드 하한이 10000자니까 이 차이가 통과와 미달을 가릅니다. 어느 쪽이 맞느냐를 정하는 문장이 문서에 없으니 둘 다 맞습니다. 그리고 이 상태에서 만드는 쪽이 무엇을 할 수 있는지가 마음에 걸립니다. 두 방법 중 자기 산출물이 통과하는 쪽으로 세면 됩니다. 속이려는 의도가 없어도 그렇게 됩니다. 세는 절차가 비어 있으면 그 자리를 만드는 쪽이 채우고, 무엇으로 채웠는지는 아무 데도 안 남습니다. ...

AI가 썼다는 브라우저 300만 줄에서 112만 줄은 남의 코드였다

이미지
작년 말부터 AI가 브라우저를 만들었다는 얘기가 계속 지나갔다. 에이전트 2,000개를 동시에 돌려서 일주일 만에 300만 줄, 렌더링 엔진은 Rust로 밑바닥부터, 커스텀 JS VM까지. OS 쪽도 비슷했다. Claude와 64세션 해서 커널부터 데스크톱 환경까지 올렸다는 프로젝트가 별 1,500개를 받고 있었다. 숫자만 놓고 보면 감이 안 왔다. 300만 줄이 큰 건 아는데, 그게 어떤 300만 줄인지는 트윗으로 알 수 없다. 기사도 대체로 그 트윗을 옮긴 것이었다. 그래서 레포를 클론했다. 브라우저 하나, OS 두 개. 여기에 리눅스 커널까지 네 개를 받아서 줄을 세고, 커밋을 세고, 빌드를 걸었다. 세는 건 잘 됐다. 300만 줄은 진짜였다. git ls-files '*.rs' | xargs wc -l 이 3,162,904를 돌려줬고, 파일은 실제로 거기 있었다. 라이브러리는 릴리스 프로파일로 1분 35초 만에 빌드까지 됐다. 그다음에 테스트를 돌려보려다가 멈췄다. cargo test 가 테스트를 실행하지 못한 게 아니라, 테스트 빌드가 컴파일되지 않았다. 에러 두 개 중 하나는 한 파일 안에 mod tests 가 두 번 선언돼 있다는 것이었다. 241번째 줄에 하나, 965번째 줄에 하나. 무엇을 어떻게 셌는지 먼저 재현할 수 있게 방법부터 적는다. 측정일은 2026년 8월 11일, macOS 26.2 / aarch64, cargo 1.91.1이다. git clone https://github.com/wilsonzlin/fastrender.git git clone https://github.com/kaansenol5/VibeOS.git git clone https://github.com/smadi-a/ASOS.git git clone --filter = blob:none --no-checkout --single-branch \ https://github.com/torvalds/linux.gi...