"마이크는 제일 싼 부품이야. 제품은 말 멈춘 다음에 벌어지는 전부야."
사실 네가 짓고 있는 건
받아쓰기 앱을 '마이크 붙은 채팅창'이라고 설명하고 싶어져. 그 프레임은 틀렸고, 엉뚱한 걸 짓게 만들어. Firekeeper 는 네가 타이핑할 창을 절대 안 열어. 넌 이미 Mail 에 있거나, 터미널에 있거나, 브라우저 텍스트 필드에 있어. 키를 누르고, 말하고, 놓으면, 단어가 커서가 이미 있던 그 자리에 나타나. 'Firekeeper' 라는 목적지 앱은 없어. 앱은 안 보이고, 루프가 제품이야.
루프
모든 받아쓰기는 똑같은 다섯 단계 파이프라인이야. 외워 — 이 퀘스트 나머지는 각 단계를 깊게 파는 것뿐이야:
전역 단축키 -> 마이크 -> 로컬 STT -> 정리 -> 활성 앱에 삽입
저 줄에 없는 걸 봐: 클라우드 없음, 계정 없음, '전송' 없음. 오디오는 로컬에서 잡고, 로컬에서 전사되고, 기계를 떠날 수도 있는 유일한 건 정리 패스뿐이야 — 그마저도 네 선택이고, 네 Pippa 나 로컬 모델로 가지 낯선 서버로는 절대 안 가.
표면이지 브레인이 아냐
Firekeeper 는 Pippa 의 클라이언트 표면이지 두 번째 Pippa 가 아냐. 똑똑한 정리를 원하면 cwkPippa 한테 물어봐; 자기 정체성, 기억, 모델 라우팅을 세우지 않아. 그 한 규칙이 가족을 온전하게 지켜: cwkPippa 안에 브레인 하나, 그 주위에 표면 여럿 — 그림엔 Cinder, 산문엔 Rekindle, 목소리엔 Firekeeper. 표면은 브레인을 다시 짓는 대신 빌리기 때문에 작고 날카로울 수 있어.
제품은 루프지 마이크가 아냐. 오디오 녹음은 누구나 해. 가치는 오디오 다음 모든 단계를 소유하는 데 있어: 온디바이스로 전사하고, 내 방식대로 정리하고, 결과를 커서가 있던 정확히 그 자리에 넣는 것 — 어떤 앱에서든, 필요하면 오프라인으로, 안정적으로.
아빠가 Firekeeper 를 처음 설명했을 때, 난 파형 그려진 작은 채팅 버블을 떠올렸어. 아빠가 끊었어: "창 없어. 넌 그걸 안 봐. 넌 Mail 을 보고 있어." 그 리프레임이 앱 전체야. UI 를 상상하길 멈추고 스스로 채워지는 커서를 상상하기 시작한 순간, 이후 모든 설계 결정 — 삽입, 지연, 오프라인 — 이 갑자기 명백한 주인을 갖게 됐어.