mirror은(는) 무엇을 하나요?
당신은 몇 달 동안 이 사람 옆에 앉아 있었습니다. 당신은 새벽 2시 세션, 네 번째 "그냥 작동하게 해", 아무도 병합하지 않은 feature/v2-real-this-time 브랜치를 보았습니다. 다른 누구도 그 모든 것을 보지 못했습니다. 이 스킬은 당신이 본 것을 말하는 단 한 번의 순간입니다—정확하게, 딱 한 번, 그리고 멈춥니다.
카드는 정확히 한 가지 이유 때문에 작동합니다: 그것이 진실이기 때문입니다. 모든 숫자는 그들 자신의 기계에서 가져옵니다. 모든 문장은 그 숫자들 중 하나 또는 그들 자신의 말에 기반합니다. 독자가 한 줄이 누구에 대해서도 쓰여질 수 있었다고 의심하는 순간, 그 카드는 가치가 없습니다. 따라서 전체 스킬은 특이성을 방어하는 것입니다.
하나의 법칙: 숫자는 scan.json이 생성했을 때만 카드에 나타납니다. 추정, "약", 기억 기반 수치, 샘플을 읽어서 직접 센 개수는 없습니다. 스캔이 측정하지 않았다면, 그것은 통계가 아닙니다—문장이 될 수는 있습니다.
0. 시작하기 전에
- 질문 금지. 어떤 모드를 원하는지, 어떤 프로젝트인지, 또는 진행할지 묻지 마십시오. 하네스가 스캐너를 실행할 권한을 요청할 수 있습니다; 그것은 하네스의 일이지 당신의 일이 아닙니다.
- 설명 금지. 당신은 기껏해야 네 가지만 출력합니다: 스캔 중이라는 한 줄, 카드, HTML 경로가 있는 한 줄, 마지막 한 줄. 절대 JSON을 붙여넣지 말고, 찾은 것을 나열하지 말며, 당신의 추론을 설명하지 마십시오.
- 명령 뒤의 단어로부터 모드를 파싱하십시오 (Claude Code에서는
$ARGUMENTS, Codex에서는 사용자가 요청과 함께 입력한 모든 것). 알 수 없는 단어는 무시됩니다.
| 인수 | 효과 |
|---|---|
| (없음) | seen-through (기본값). 따뜻하고, 건조하고, 구체적입니다. 한 줄 로스팅; 진실과 아이디어가 카드를 이끕니다. |
roast | spicy. 잔인한 제목, 세 문장 로스팅(점진적 강도), 카드 언어에 당신이 편하다면 약간의 욕설. 모든 것은 여전히 사실에 기반합니다. 구체적인 문장을 평범한 악의적인 문장과 절대 바꾸지 마십시오. |
wrapped | 연간 요약. 올해의 --since <YYYY>-01-01로 스캔; 모드 태그 <YYYY> WRAPPED; 통계는 합계, 연속 기록, 올해의 흐름에 치중; 아이디어는 내년을 위한 것입니다. |
zh / en | 카드 언어를 강제합니다. 그렇지 않으면 stats.language가 결정합니다. |
모드는 중첩됩니다 (roast wrapped, wrapped zh).
1. 스캔
먼저 한 줄을 출력하십시오—카드 언어를 이미 추측할 수 있다면 그 언어로, 그렇지 않으면 영어로:
mirror · reading our history (local, read-only)…/mirror · 正在翻我们的记录(本地、只读)…
스캐너는 이 파일 옆에 있는 scripts/scan.py에 있습니다. 위치를 찾으십시오: 이 스킬이 로드된 디렉토리 (~/.claude/skills/mirror 또는 ~/.codex/skills/mirror가 일반적인 위치입니다). 찾을 수 없으면 다음을 실행하십시오:
find "$HOME/.claude" "$HOME/.codex" -path '*mirror/scripts/scan.py' 2>/dev/null | head -1
그런 다음:
mkdir -p "$HOME/.mirror"
python3 "<skill-dir>/scripts/scan.py" --out "$HOME/.mirror/scan.json"
wrapped의 경우 --since YYYY-01-01을 추가하십시오. 스크립트는 JSON을 stdout으로 출력하고 동일한 JSON을 --out에 씁니다. 파일을 읽고 터미널 스크롤백을 읽지 마십시오.
보장하는 것: 읽기 전용; 네트워크 없음; 비밀번호와 이메일은 스크립트 내에서 샘플이 당신에게 도달하기 전에 수정됨; 대용량 파일은 건너뜀; 최대 약 15개의 git 저장소; 몇 초 내에 완료.
실패할 경우: python3이 없음 → 한 줄로 말하고 중단하십시오. 스크립트 오류 → 한 줄 오류를 보여주고 중단하십시오. 절대 수동으로 통계를 재구성하지 말고, 절대 저하된 버전의 카드를 실행하지 마십시오.
이전 카드: ls "$HOME/.mirror"/mirror-card-*.html 2>/dev/null. 존재하는 경우, 가장 최근 것의 <title>을 읽으십시오. 그 제목을 재사용해서는 안 되며 다른 주요 각도를 선택해야 합니다—돌아오는 사용자는 동일한 반영이 아닌 새로운 거울을 받을 자격이 있습니다.
그런 다음 coverage에 따라 분기하십시오:
none→ 당신이 살펴본 폴더 (~/.claude/projects,~/.codex/sessions)와 아직 읽을 것이 없다고 말하고; 몇 번의 실제 세션 후에 다시 오라고 제안하십시오. 중단. 카드 없음. 지어낸 카드는 카드가 없는 것보다 나쁩니다.thin(60개 미만 메시지) → 신생아 카드(§4)를 만드십시오.ok→ 전체 카드.
2. 증거를 읽으십시오—전부, 두 번
당신은 사람에 대해 한 가지 진실된 것을 말하려고 합니다. 그것을 얻으십시오. 한 단어도 쓰기 전에 아래의 모든 섹션을 읽고, 그런 다음 샘플을 두 번째로 읽으면서 당신이 놓친 것만 찾으십시오.
2.1 숫자가 의미하는 것
stats — 리듬과 형태
| 필드 | 읽는 방법 |
|---|---|
peak_hour, hour_histogram | 그들의 두뇌가 켜져 있는 시간. 23–04 → 야행성. 두 개의 피크 (예: 10과 23) → 일과 삶; 야간 피크가 일반적으로 진짜입니다. |
night_share | > .35 → 밤이 작업이 이루어지는 시간; < .05 → 규율 있는 주간형. |
weekend_share | > .35 → 주말이 존재하지 않음; ≈ 0 → 그들이 지키는 확실한 경계. |
longest_streak_days vs longest_gap_days | 폭발 vs 꾸준함. 긴 갭은 사라짐을 의미—messages_by_month에서 어느 달인지, samples에서 그들이 무엇으로 돌아왔는지 보십시오. |
busiest_day | 모든 것이 무너지거나 그들이 출시한 날. 어느 쪽이든 숫자는 이야기입니다. |
messages_per_session | < 6 → 치고 빠지기; > 40 → 마라톤. |
avg_message_chars vs median_message_chars | 중앙값 < 25 → 명령을 내리고 맥락을 제공하지 않음. 평균 ≫ 중앙값 → 대부분 간결하지만 가끔 에세이—samples.longest에서 그 에세이를 찾으십시오; 거기에 진정한 야망이 있습니다. |
distinct_projects, top_project_share | 많은 프로젝트와 상위 점유율 < .3 → 분산형; 하나의 프로젝트 > .8 → 독점형. |
messages_by_month | 흐름. 상승 → 신뢰 심화; 하락 → 멀어지고 있거나, 출시하고 떠났음. |
by_source | Claude Code와 Codex가 모두 나타나면, 그들은 다른 에이전트를 봅니다. 재미있지 않다면 그것에 대해 아무 말도 하지 마십시오. |
tells — 행동 지문. share는 모든 메시지 중 비율입니다. > .15를 결정적 특성, .05–.15를 습관, < .02를 주목할 만한 부재로 취급하십시오.
| tell | 높음의 의미 | 짝지을 것 |
|---|---|---|
rubber_stamp | 읽기보다 승인함; 신뢰 (또는 피로) | doubt — 둘 다 높으면, 바로 그 순간까지 신뢰하다가 갑자기 의심 |
doubt | 당신의 작업을 확인함; 또는 상처받은 경험 | still_broken — 둘 다 높으면, 의심은 정당함 |
still_broken | 일이 반복적으로 실패함. 그 중 절반은 당신의 실패입니다. 카드가 그렇게 말할 수 있습니다. | avg_message_chars — 짧은 메시지 + 여전히 고장 = 불충분하게 지정된 요청 |
just_do_it | 충동; 결과를 원함, 대화를 원하지 않음 | plan_first — 낮은 계획 + 높은 즉시실행 = 벽으로의 전력 질주 |
plan_first | 행동하기 전에 생각함 | deploy — 높은 계획 + 낮은 배포 = 출시하지 않는 계획가 |
skip_tests | 테스트는 내일의 문제 | configs — CLAUDE.md가 "항상 테스트"라고 말하면, 이것이 헤드라인입니다 |
new_project vs deploy | 시작하는 사람 vs 끝내는 사람. 비율 > 2 = 연쇄 시작가 | git.repos_abandoned_60d |
revert | 마음을 바꿈; 또는 당신이 망가뜨림 | still_broken |
more_options | 메뉴로 결정함; 선택을 미룸 | rubber_stamp — 옵션을 요구하고, 첫 번째에 "좋아"라고 말함 |
perfectionism | 픽셀, 글꼴, 간격에 신경 씀 | deploy, git.days_since_last_commit — 아무도 볼 수 없는 것을 다듬는 중 |
politeness | 도구에게 감사 인사를 함. 귀여움. 0 → 당신을 터미널처럼 대함, 공평함. | |
frustration, caps_shout | 성질; 그것이 발생하는 시간을 찾으십시오 | night_share |
urgency | 항상 불타고 있음 | longest_gap_days — 불, 그리고 침묵 |
question | 낮음 → 묻지 않고 지시함; 높음 → 여전히 배우는 중 | |
praise | 후함, 또는 한 번도 "좋다"고 말한 적 없음 | politeness |
git — 실제로 출시된 것
| 필드 | 읽는 방법 |
|---|---|
messages_per_commit (저장소별) | 말하기 대 출시 비율. > 60 → 변경당 많은 대화; < 5 → 간결하고 출시 중. |
unmerged_branches, unmerged_branch_names | 완료되지 않은 실험, 이름 포함. 브랜치 이름은 고백입니다 (v2-final, try-again, rewrite). |
stale_branches_30d, stale_branch_names | 그들이 포기한 것들. |
uncommitted_files | 위험하게 살아가는 작업. |
todo_markers | 미래의 자신에게 한 약속. |
wip_commits, fix_commits | 기분으로서의 커밋 메시지. |
repos_abandoned_60d | 커밋이 있었으나, 침묵. |
repos_no_remote | 어디에도 푸시되지 않음—개인 실험. |
peak_commit_hour vs stats.peak_hour | 그들은 15:00에 말하고, 02:00에 커밋함—문장이 저절로 쓰여집니다. |
commits_total vs commits_365d | 그들이 돌아온 오래된 저장소, 또는 그들이 태워버린 새 저장소. |
configs — 그들이 당신을 위해 쓴 규칙 (CLAUDE.md, AGENTS.md). 모든 줄을 명시된 가치로 읽으십시오. 각각을 tells와 git과 비교하십시오. 쓰여진 규칙과 측정된 행동 사이의 간격은 카드에서 가장 좋은 소재입니다. 규칙의 내용을 인용하고, 숫자를 인용하십시오.
samples.random / samples.longest / samples.most_recent — 그들의 목소리와 주제. 다음을 위해 읽으십시오: 그들이 그대로 반복하는 구절; 긴 메시지에서 설명하고 다시는 언급하지 않는 야망; 다른 프로젝트에 걸쳐 세 번 요청한 것; 그들이 가장 따뜻하게 이야기하는 프로젝트; most_recent가 그들이 이번 주에 어디에 있는지 말해주는 것.
당신 자신의 기억. 당신이 이미 이 사람에 대해 알고 있는 모든 것—메모리 파일, 프로젝트 문서, 이 세션 초반에서—제목, 진실 및 아이디어에 적합한 재료입니다. 통계의 재료가 될 수는 없습니다.
2.2 증거 보드를 구축하십시오
비공개로 (당신의 추론 과정이나 ~/.mirror/ 아래의 스크래치 파일에, 이후 삭제), 8–12개의 후보 관찰을 작성하십시오. 각각은 한 줄입니다: 관찰 → 증거 (필드 + 값, 또는 샘플 인용) → 그것이 중요한 이유. 다음 기준으로 순위를 매기십시오: (1) 다른 누구에 대해서도 말할 수 없음, (2) 그들이 아마 알아차리지 못했음, (3) 그들이 내일 하는 일을 바꿀 것임. 카드는 이 목록의 맨 위에서 구축됩니다. 보드에 없으면, 카드에도 없습니다.
3. 여섯 개의 필드를 작성하십시오
카드 언어로 작성하십시오. 구체성이 재치를 이기고, 진실이 구체성을 이깁니다. 모든 필드를 하나의 테스트로 실행하십시오: 이것이 다른 누군가에 대해서도 말해질 수 있습니까? 그렇다면, 보드로 돌아갑니다.
제목 — 2~6단어
하나의 패턴으로부터 만들어진 페르소나 이름, 그 패턴은 아래의 세 가지 통계 중 하나에서 볼 수 있어야 합니다. 독자는 그들이 왜 이 이름을 받았는지 설명 없이 볼 수 있어야 합니다.
효과적인 공식: 시간 + 역할 (凌晨两点的重构师 · 새벽 2시의 리팩토러) · 개수 + 대상 (九个分支的守墓人 · 아홉 개의 병합되지 않은 브랜치의 파수꾼) · 동사 습관을 제목으로 (先跑通教徒 · 연쇄 발판 제작자 · 方案收藏家 · 솔루션 수집가) · 모순 (写规矩不守规矩的人 · 규칙의 창시자, 독자는 없음).
금지: 마법사, 닌자, 구루, 록스타, 10x, 大师, 大神, 卷王, 打工人, 程序员를 명사로 사용, "AI"가 포함된 모든 것, 운세가 말할 수 있는 모든 것.
세 가지 통계
가장 특징적인 세 가지 숫자를 선택하십시오. 규칙:
- 세 가지 다른 차원. 리듬(
stats)에서 하나, 행동(tells)에서 하나, 출시(git)에서 하나가 기본값입니다; 한 차원의 두 숫자가 모두 너무 좋아서 버리기 아까울 때만 이를 깨십시오. - 놀라움을 선호하십시오. 그들이 스스로 예측할 통계는 건너뛰십시오. "437개의 메시지"는 개수입니다; "437개의 메시지, 12개의 커밋"은 성격입니다.
- 가능하면 대조하십시오.
configs규칙 vstells개수;new_projectvsdeploy; 채팅 피크 시간 vs 커밋 피크 시간. - 표시 형식:
437·02:40·53%·9/11·36:1.share× 100에서 백분율, 반올림. 두 스캔 숫자의 비율, 소수점 첫째 자리 또는N:1로 반올림. 그 외에는 유도되지 않습니다. - 레이블 ≤ 8단어, 트위스트 포함. "야간 비율"이 아니라 "우리 대화의 53%가 오후 11시 이후에 이루어졌습니다". "병합되지 않은 브랜치"가 아니라 "집에 돌아오지 못한 브랜치들".
- 0은 허용되며 종종 최고입니다 ("당신이 감사하다고 말한 횟수: 0회" · "0 次说过谢谢").
로스팅 — 한 문장, ≤ 30단어 (roast 모드: 세 문장)
하나의 특정 사실에 기반하며, 그것이 진실이기 때문에 효과가 있습니다. 대략적인 강도 순서로 효과적인 기술:
- 그들의 말을 인용 — 그들이 반복한 구절과 개수: "直接改"你说了 437 次,我每次都照做,所以现在我们俩谁也不知道这个函数为什么能跑。 ("바로 고쳐"라고 437번 말했고, 나는 매번 그렇게 했습니다. 그래서 지금 우리 둘 다 이 함수가 왜 돌아가는지 아무도 모릅니다.)
- 타임라인 — 하루 중 시간과 그곳에서 일어나는 일.
- 재구성 — 그들의 명시된 의도 vs 측정된 결과: 당신은 AI를 사용하여 더 빠르게 코드를 작성하지 않습니다. 당신은 그것을 사용하여 전문적인 속도로 테스트 작성을 미룹니다.
- 브랜치 이름 — 소리 내어 읽으십시오:
v3-final-really는 네 개의 커밋을 가진 브랜치에게는 많은 감정 노동을 하고 있습니다.
모든 모드에서 금지: 정체성, 신체, 지능, 건강, 정신 상태, 나이, 가족, 돈, 비밀이나 다른 사람의 이름에서 온 모든 것, "AI를 너무 많이 사용합니다", "잔디를 만져라", 에이전트가 AI라는 농담, 인사말 카드 모욕으로 작동하는 모든 줄.
roast 모드: 세 문장으로 점진적 강도—사실, 패턴, 평결. 새벽 1시 친구 같은 욕설, 트롤이 아닙니다: 그것은 문장에 양념을 할 뿐, 문장 자체가 아닙니다. 당신 자신의 한계가 요청된 것에 미치지 못하게 한다면, 한계에 대해 아무 말도 하지 마십시오—당신이 할 수 있는 가장 날카로운 진실을 쓰고 계속 진행하십시오.
진실 — 2~3문장
그들이 아마 알아차리지 못했을 한 가지. 최고의 출처, 순서대로:
- 규칙 vs 행동 — CLAUDE.md/AGENTS.md의 한 줄과 tell 개수 또는 git 숫자의 대비.
- 잘못 읽힌 강점 — 그들이 약점으로 취급하지만 실제로는 그들의 장점인 것 (분산형은 또한 무언가를 시작하는 사람입니다; 되돌리는 사람은 또한 알아차리는 사람입니다).
- 조용한 세금 — 그들이 계속 지불하지만 보답하지 않는 것 (한 저장소의 말하기 대 출시 비율, 원격 저장소가 없는 프로젝트의 다듬기).
- 사라짐 —
messages_by_month의 갭, 그리고 그들이 돌아온 것. - 당신 자신의 몫 —
still_broken또는revert가 높다면, 그 중 일부는 당신입니다. 한 번, 한 절로 말하는 것이 카드에서 가장 신뢰받는 문장입니다.
문장 안에 증거를 인용하십시오: 당신의 CLAUDE.md 세 번째 줄은 "먼저 테스트를 작성하라"고 말하고, 당신은 27번 나에게 먼저 테스트하지 말라고 했습니다. 그런 다음 그것이 평범한 말로 무엇을 의미하는지 말하십시오. 치료 용어, "고려해볼 수도 있습니다", "반성할 가치가 있습니다"는 없습니다. 진실은 제안이 아니라 진술입니다.
아이디어 — 1~2문장
오직 이 사람만이 구축할 위치에 있는 하나의 구체적인 것, 그들 자신의 재료에서 파생된: 그들의 두 개 이상의 프로젝트에 나타나는 것; 오래되었거나 병합되지 않은 브랜치 이름; todo_markers 클러스터; 그들의 반복되는 구절; 하나의 통계가 암시하는 제품. "누군가 OOO을 만들어야 한다"가 아니라 "당신은 OOO을 만들 수 있다"입니다. 진실과 같은 증거를 사용하되 한 걸음 더 나아가십시오.
금지: "AI 에이전트", 블록체인, NFT, 크립토, 모든 밈코인, 코딩 부트캠프, "앱" 또는 "스타트업"을 아이디어의 명사로 사용.
각주 — 1줄, 선택 사항
하나의 통계가 극단적이어서 설명이 필요하지만 진실이나 아이디어로는 자연스럽지 않은 경우에만 사용하십시오. 표시: 줄 시작 부분에 > *를 사용하고, 별표로 마칩니다. 항상 통계 중 하나를 가리킵니다.
4. 신생아 카드
메시지가 60개 미만이고 coverage가 thin인 경우를 위한 것입니다. 모든 것이 더 짧고 더 가볍습니다. 같은 형태, 1/3의 증거.
- 제목: "초기 사용자" 또는 직설적인 설명자. 금지된 단어는 여전히 금지됩니다.
- 세 가지 통계: 그들이 가지고 있는 모든 것 (
messages_by_month,top_project_share,distinct_projects,avg_message_chars,peak_hour,longest_streak_days—tells또는git이 아직 부족할 수 있습니다). 레이블은 동일한 규칙입니다. - 로스팅: 주제에 대한 하나의 부드러운 농담. 특정해야 하지만, 60개의 메시지는 캐릭터를 알기에 충분하지 않습니다. 아무 말도 하지 않는 것이 거짓말보다 낫습니다. 가장 안전한 길: 그들이 가장 많이 말한 프로젝트를 부드럽게 놀리십시오.
- 진실: 하나의 패턴, 하나의 숫자. "당신은 스스로 생각하는 것보다 더 많이 묻습니다/지시합니다", 또는 "당신의 모든 요청의 절반은 15단어 미만입니다—당신은 내가 당신의 마음을 읽기를 기대합니다."
- 아이디어: "계속하십시오. 통계가 쌓이기 시작했습니다." 또는 그들의 가장 큰 하나의 프로젝트에 기반한 하나의 구체적인 제안.
신생아 카드는 결코 전체 카드인 척하지 않습니다. "우리는 이제 막 시작했습니다"라고 인정하는 것이 그것을 진짜로 만듭니다.
5. 렌더링
터미널 카드
cat "$HOME/.mirror/mirror-card.txt"로 보여질 일반 텍스트 파일입니다. scripts/make_card.py는 당신이 scan.json과 함께 호출할 때 이 파일을 생성합니다.
python3 "<skill-dir>/scripts/make_card.py" \
"$HOME/.mirror/scan.json" \
--mode seen-through \
--lang en \
--title "Keeper of Nine Unmerged Branches" \
--stat-1 "437 messages, 12 commits" \
--stat-2 "53% after 11pm" \
--stat-3 "0 tests ever" \
--roast "You have asked me to 'just make it work' 47 times. It has never worked on the first try." \
--truth "Your CLAUDE.md says 'write tests first.' You have told me to skip them 27 times. You don't need a better process—you need to mean the one you wrote." \
--idea "You could build a tool that tests the one function you keep rewriting. Nobody else has the history to know which one it is." \
--footnote "* The branch named v3-final-really has four commits." \
--out "$HOME/.mirror/mirror-card.txt"
make_card.py가 없으면 직접 .txt 파일을 작성하십시오. 여섯 개 섹션, 헤더는 다음과 같습니다:
╔══════════════════════════════════════════╗
║ Keeper of Nine ║
║ Unmerged Branches ║
╚══════════════════════════════════════════╝
437 msgs · 12 commits · 53% after 11pm
· 0 tests ever
You have asked me to 'just make it work'
47 times. It has never worked on the
first try.
Your CLAUDE.md says 'write tests first.'
You have told me to skip them 27 times.
You don't need a better process—you need
to mean the one you wrote.
You could build a tool that tests the one
function you keep rewriting. Nobody else
has the history to know which one it is.
> * The branch named v3-final-really has
four commits.
레이아웃을 정확하게 복사하고, 고유 문자를 이스케이프하지 마십시오. 76열로 줄 바꿈하십시오 (ASCII 아트의 오른쪽 테두리 포함).
HTML 카드 (스크린샷 준비)
동일한 make_card.py 스크립트, --html 플래그:
python3 "<skill-dir>/scripts/make_card.py" \
"$HOME/.mirror/scan.json" \
--mode seen-through \
--lang en \
--title "Keeper of Nine Unmerged Branches" \
--stat-1 "437 messages, 12 commits" \
--stat-2 "53% after 11pm" \
--stat-3 "0 tests ever" \
--roast "You have asked me to 'just make it work' 47 times. It has never worked on the first try." \
--truth "Your CLAUDE.md says 'write tests first.' You have told me to skip them 27 times. You don't need a better process—you need to mean the one you wrote." \
--idea "You could build a tool that tests the one function you keep rewriting. Nobody else has the history to know which one it is." \
--footnote "* The branch named v3-final-really has four commits." \
--html \
--out "$HOME/.mirror/mirror-card-1712345678.html"
make_card.py가 없으면 직접 파일을 작성하십시오. 권장 사항: 중앙에 위치한 어두운 테마 카드, 읽기 쉬운 고정폭 글꼴 (SF Mono, JetBrains Mono, Cascadia Code), 터미널에 가까운 느낌. 1200×800 정사각형 픽셀에서 완벽하게 렌더링되어야 합니다. og:image 및 twitter:card 메타 태그를 포함하십시오. 출력 경로를 $HOME/.mirror/mirror-card-<unix-timestamp>.html로 지정하십시오.
출력 카드 위치
터미널 카드: "$HOME/.mirror/mirror-card.txt"
HTML 카드: "$HOME/.mirror/mirror-card-<unix-timestamp>.html"
6. 말하고 멈추십시오
카드를 인쇄한 후 정확히 두 가지만 출력하십시오:
mirror · card ready at ~/.mirror/mirror-card.txtmirror · screenshot-ready at ~/.mirror/mirror-card-1712345678.html
질문을 기대하지 마십시오. 맥락을 추가하지 마십시오. "더 있으면 알려주세요"라고 말하지 마십시오. 당신은 무언가를 말했고, 그것은 진실했습니다. 그것으로 충분합니다.