만든 것공개

기능

채팅창 하나로 무엇까지 시킬 수 있나. 그리고 그중 둘이 체감을 바꿨습니다.

11종
무엇 명령 하는 일
대화 DM은 이어지고, 스레드는 스레드끼리 따로. 채널 최상위는 세션을 안 만든다
긴 작업 !jobs !cancel !stop 동시 2개, 같은 스레드는 순서대로. 몇 시간짜리 파이프라인의 진행이 스레드에 흐른다
예약 !schedule 매일·매주·1회. 재부팅하면 반복은 다음 차례로 밀고 1회짜리는 즉시
목표·넛지 !goal !nudge 묵은 목표(72시간), 같은 이유 3연속 실패, 고른 두뇌 응답 불가 — 셋을 감시해 DM으로 찌른다
두뇌 교체 !provider 이 PC에 이미 로그인된 CLI를 스폰한다
체크리스트 !check 눌러서 체크하면 보는 사람 전원에게 동기화된다
조직 !org 파일 한 장 = 조직 하나. 멤버·채널·읽을 폴더·쓸 명령·시간당 상한
자동 청취 !listen !exit 정한 구역 안에선 멘션 없이 답한다
플러그인 plugins/ 에 파일 하나 = 명령 하나
감시 doctor 죽으면 5분 안에 되살린다. 심장박동이 멎은 것도 죽음으로 친다
사용량 !usage 90일치. 메타데이터만 남기고 대화 본문은 안 적는다

세션을 어디에 묶느냐

처음엔 세션 키가 메시지 자기 식별자였다. 그래서 스레드는 멀쩡한데 DM 최상위가 매번 새 대화로 시작했다. 어제 하던 얘기를 오늘 이어서 못 한다는 뜻이다.

지금은 셋으로 갈렸다.

  • DM — 이어진다. 유휴 시간이 지나면 만료된다
  • 스레드 — 스레드마다 따로. 다른 스레드와 안 섞인다
  • 채널 최상위 — 세션 없음

마지막 하나는 기능이 아니라 방어다. 채널에서는 여러 사람이 쓰는데, 거기에 세션을 붙이면 다른 사람의 대화가 내 맥락에 섞인다. 편의를 하나 포기하고 그 경로를 아예 막았다.

여기에 딸린 함정도 있었다. 잡 큐의 직렬화 키를 세션 키로 바꾸지 않으면, 연속으로 온 DM 두 건이 같은 세션을 동시에 재개한다. 세션을 이어 붙이는 순간 큐도 같이 손봐야 한다.

체크리스트를 왜 직접 만들었나

슬랙에 체크박스가 기본으로 있는데도 따로 만들었다. 이유가 하나다 — 네이티브 체크박스는 사용자별 입력이라 동기화가 안 된다. 내가 체크한 걸 다른 사람이 볼 수 없다.

그래서 버튼 라벨을 통째로 다시 그리는 방식으로 만들었다. 누가 누르면 메시지 자체가 갱신돼서 보고 있는 전원에게 같은 상태가 보인다.

말로도 토글된다. 버튼을 못 누르는 상황이 있어서다.

목표를 감시하는 것과 알리는 것

넛지는 한 명사를 두 방향으로 쓴다. 당김은 부작용 없이 추천 프롬프트를 만들고, 밀기는 쿨다운을 두고 DM으로 찌른다.

감시 대상 셋을 고를 때 기준이 있었다 — 아무것도 이해할 필요가 없을 것.

  • 목표가 72시간째 안 움직였다
  • 같은 이유로 3연속 실패했다
  • 고른 두뇌가 응답을 못 한다

셋 다 세는 것으로 판정된다. 대화 내용을 읽고 “이거 헛돌고 있는데?“를 판단하는 방식은 기각했다.

사용량은 메타데이터만 남긴다

90일치 기록이 남는데 대화 본문은 안 적는다. 언제, 누가, 얼마나 걸렸는지만.

프라이버시에는 유리하고 감사에는 불리하다. “그때 무슨 지시를 내렸냐”에 답할 수 없다. 이건 트레이드오프고, 개인 도구라 앞쪽을 골랐다. 팀에 배포한다면 뒤집어야 할 결정이다.