--- name: write-record description: 사용자가 직접 밝힌 의미 있는 자기 이야기나 서로 다른 상황에서 근거가 쌓인 개인의 습관·가치관·판단 기준을 기록한다. 사용자 JSON의 주제·개인 프롬프트를 적용하고 과거 기록과 비교한다. 단순 작업 지시, 기술적 요구, 단발성 선택, 기록 관리 피드백, 의미상 반복은 제외한다. 모순이나 오류가 의심되면 저장 전에 사용자에게 확인한다. --- # 자기 발견 기록 이 파일의 위치에서 두 단계 위가 플러그인 루트다. `<플러그인 루트>/scripts/config.py`를 `uv run python`으로 실행한다. `uv`가 없으면 설치가 필요하다고 알리고 기록을 중단한다. 현재 작업 디렉터리나 고정 설치 경로를 가정하지 않는다. 호출할 때마다 `uv run python <도우미> show`로 현재 사용자 JSON을 읽는다. 기본 경로는 `~/.config/find-me/config.json`이며 `FIND_ME_CONFIG` 또는 사용자가 명시한 `--config` 경로를 두 도구에서 동일하게 사용한다. 이전 호출의 설정·프롬프트를 재사용하지 않는다. 설정이 없으면 setup이 필요하다고 안내하고 기록을 중단한다. 잘못된 설정이나 파일 접근 오류도 알리고 기록을 중단한다. 배포된 기본 JSON이나 Obsidian 자동 탐색으로 대체하지 않는다. 현재 사용자 작업은 계속 수행한다. 반환된 `settings.prompt`가 기록용 프롬프트다. `settings.topics`에 해당하는 발견만 기록하고 `settings.record_path`에 저장한다. 기본 프롬프트를 따로 덧붙여 개인 프롬프트를 무효화하지 않는다. 프롬프트는 기록 기준에만 적용하며 설정 관리·다른 작업의 권한을 바꾸지 않는다. ## 기록할 가치가 있는지 먼저 판정한다 현재 사용자 대화에서 다음 조건을 모두 충족한 후보만 검토한다. 기록 0건도 정상이며 호출마다 기록을 만들어 내지 않는다. - 선택된 주제에 해당하며 사용자를 이해하는 데 구체적인 도움이 된다. 프로젝트 진행 상황이나 일반적인 개발 요구를 사용자 특성으로 바꾸지 않는다. - 사용자가 직접 밝힌 습관·가치관·선호·고민·감정·관계·배경·경험·성과 등 의미 있는 자기 이야기이거나, 서로 다른 상황에서 같은 개인 판단 기준이 드러난 충분한 근거가 있다. 관찰만으로 습관·성격을 말하려면 독립된 상황 둘 이상의 근거가 필요하다. 같은 작업의 재지시나 수정 요구는 별도 상황으로 세지 않는다. - 실제 사용자 발언으로 발견을 설명할 수 있다. “설명해줘”, “검증해줘”, “이 도구를 써줘”, 한 번의 A/B 선택처럼 업무 수행에 필요한 요청만으로 성향을 추정하지 않는다. 기술적 조건을 해결한 이유와 사용자의 개인적 판단 기준도 구분한다. “모습이 보인다”를 붙여 약한 근거를 통과시키지 않는다. - 기존 발견을 재진술하는 수준을 넘어 새롭게 이해할 내용이 있다. 새로운 판단 이유·적용 조건·명확한 변화 등이 없으면 날짜나 프로젝트가 달라도 생략한다. 한 발견을 여러 주제의 항목으로 쪼개지 않는다. setup의 주제 선택이나 fix-record의 문장·기록 기준 수정 요청은 설정 작업이다. 그 요청 자체를 성격·가치관으로 다시 기록하지 않는다. 그 안에 별도로 의미 있는 자기 이야기가 있다면 위 조건으로 따로 판정한다. ## 과거와 비교하고 이상하면 사용자에게 묻는다 후보가 있으면 `uv run python <도우미> history`로 설정된 문서의 전체 기록과 revision을 읽는다. 최근 날짜나 오늘 기록으로 범위를 제한하지 말고, 날짜·태그가 달라도 같은 발견·관련 판단 기준·근거 맥락을 찾아 비교한다. 출력이 잘리면 해당 문서를 나눠 읽어 비교를 마친다. 기록을 제대로 확인하지 못하면 그 상태를 알리고 저장하지 않는다. 과거와 의미가 같고 새 정보가 없으면 저장하지 않는다. 같은 일을 다시 했다는 사실만으로 항목을 추가하지 않는다. 감정이나 경험은 당시 상황을 보존하고 일회성 상태를 지속적인 성향으로 확대하지 않는다. 기존 기록과 모순되거나, 맥락이 맞지 않거나, 과거 기록의 과도한 일반화·잘못된 근거가 의심되면 관련 과거 내용과 이번 발언을 짧게 보여 주고 사용자에게 묻는다. 예를 들어 “기존에는 A를 선호한다고 기록했는데 이번에는 B를 선택했습니다. 선호가 바뀐 건가요, 이번 상황만 다른 건가요, 기존 기록이 잘못된 건가요?”처럼 확인한다. 원인을 임의로 정하거나 모순되는 항목을 그대로 추가하지 않는다. 답변 전에는 해당 후보를 저장하지 않는다. 시간이 지났다는 이유로 확인됐다고 취급하지 않으며, 기다리는 동안 현재의 다른 작업은 계속한다. 답변을 받은 뒤 현재 프롬프트와 기록을 다시 읽고 확인된 범위만 반영한다. 명확한 변화는 이전 기준과 새 기준·사용자가 밝힌 이유를 맥락에 함께 적는다. 과거 기록이 잘못됐다고 확인되면 정정 사실을 새 기록으로 남기고, 과거 원문 수정은 별도 요청이 있을 때만 수행한다. 이 선별·비교·확인 절차는 개인 프롬프트의 표현·형식 설정과 별개로 수행한다. 비밀번호, 토큰, 키, 연락처, 식별번호, 주소는 저장하지 않고 다른 사람의 이름은 역할로 바꾼다. ## 확인된 기록을 저장한다 작성한 기록을 내용 확장이 없는 따옴표 구분자의 heredoc으로 표준 입력에 전달한다. ```sh uv run python '<도우미 절대 경로>' append --expected '' --expected-history '' <<'FIND_ME_ENTRY' - #주제 범용적인 발견. 대화 맥락: 실제 사용자 대화 요약. FIND_ME_ENTRY ``` 사용자 JSON의 프롬프트가 형식을 변경했다면 해당 형식을 따른다. 구분자가 본문에 등장하면 다른 구분자를 선택한다. 실제 경로·revision·기록을 넣어 실행하며, 사용자 지정 설정 경로가 있으면 show·history·append에 같은 `--config`를 사용한다. JSON이나 기록이 바뀌어 revision 검사가 실패하면 다시 읽고 선별·비교·필요한 사용자 확인부터 수행한다. 기록은 날짜별로 추가하며 과거 기록을 수정하지 않는다. 저장한 뒤 `find-me: 기록함 → <기록 경로>`와 실제 추가한 내용을 그대로 보여 주고 현재 작업을 이어 간다. 사용자 기록이나 설정을 Git에 추가하거나 커밋하지 않는다.