버전: 1.0 | 병합일: 2026-07-25
소스 1: Claude 스레드 (판단층) — 철학 시퀀스 10개 피벗
소스 2: devlog (실행층) — 38섹션·39커밋
방법론:16-textbook-methodology.md— 타임스탬프 매칭 → 사건 단위 → 원칙 추출이 문서의 신원: 이건 단순한 요약이 아니라, 나중에
g/install.sh한 줄로
끝나는 설치 스크립트를 만들기 위한 중간 표현(intermediate representation) 이다.
초심자가 “왜 이렇게 만들었는지” + “어떻게 설치하는지”를 한 문서에서 읽을 수 있어야 한다.
읽는 방법
각 사건 단위는 5개 섹션으로 구성된다:
| 섹션 | 의미 | 질문에 답함 |
|---|---|---|
| Scope | 그 순간 뭘 하려고 했는가 | “뭐 할라고?” |
| Trigger | 왜 방향을 틀었는가 (판단층) | “왜 바꼈어?” |
| Execution | 실제로 뭘 실행했는가 (devlog+커밋) | “뭘 했어?” |
| Principle | 여기서 뽑은 재사용 가능한 규칙 | “그래서 뭘 배웠어?” |
| Install | 이 단계를 설치 스크립트로 만들 때 필요한 것 | “코드로 어떻게?” |
사건 ① — 출발: “폰 하나로 풀스택” (2026-07-23 오전)
Scope
5년 된 Galaxy S21 한 대를 AI 워크스테이션으로 만든다. 목표는 단순했다:
“코딩 지식 0인 사람도 폰 하나로 풀스택을 가질 수 있다는 걸 증명한다.”
Trigger
이 시점엔 아직 “피벗”이 없다. 그냥 호기심에서 시작한 실험.
폰에 Termux를 깔고, proot-distro로 Ubuntu를 올리고, 거기에 Claude Code를
넣어봤다. Anthropic 정품 API를 쓰기엔 비용이 부담스러워서 DeepSeek
엔드포인트로 우회하는 꼼수를 발견 — 이게 의도치 않게 전체 프로젝트의
“0원 풀스택” 기조를 만들어냈다.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §1 | 026d295 |
gugudan.py — 구구단 출력 (테스트 파일) |
| §1 | — | Git init → GitHub s21-work 레포 생성 |
| §2 | — | Claude Code + DeepSeek 우회 설정 |
| §3 | 330f7b2 |
GitHub Pages 개통 → helena751107.github.io/helena_phone/ |
| §4 | — | 레포 개명 s21-work → helena_phone |
| §5 | c85819e |
Discussions + Giscus 댓글 활성화 |
핵심 설정 — DeepSeek:
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
ANTHROPIC_MODEL=deepseek-chat
# 비용: Anthropic 정품 대비 10~50배 절감
Principle
“비싸서 못 쓴다”는 답이 아니라 “우회해서 쓴다”가 답이다.
제약은 기술로 돌파할 수 있고, 돌파한 경로 자체가 노하우가 된다.
Install
# 1. Termux 설치 (F-Droid)
# 2. proot-distro Ubuntu
pkg install proot-distro
proot-distro install ubuntu
proot-distro login ubuntu
# 3. Claude Code + DeepSeek
# → GUIDE.md 1단계 참조
사건 ② — 통신망: “폰이 혼자 보고하게” (2026-07-23 오후)
Scope
AI가 폰에서 일할 때, 사용자는 밖에서도 상황을 알아야 한다. 폰이 혼자
일하고, 결과를 바깥으로 내보내는 통신 채널을 구축한다.
Trigger
Claude Code가 혼자 작업하다가 멈춰도 사용자가 모르면 무용지물. “AI가
자기 일을 스스로 보고하게 만드는” 구조가 필요했다.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §6 | 94202c9 |
Discord 서버 생성 (API: login→guild→channel→widget→invite) |
| §6 | — | Discord 채널: #로비 + #ai-보고 |
| §6 | ac68b03 |
WidgetBot Crate v3 임베드 |
| §7 | 94202c9, 66d18a5 |
Telegram @S21Phone_Bot + tg.sh 보고 스크립트 |
| §8 | ac68b03 |
Git hooks 알림 과잉 → 전부 제거, 수동 보고로 전환 |
통신망 3종 최종 형태:
GitHub Pages (정적 웹) + Discord (실시간 채팅) + Telegram (AI 보고)
Principle
자동 알림은 과잉이 되기 쉽다. 진짜 중요한 순간만 사람에게 도달하게
설계할 것. “안 만드는 게 더 나은 판단”이었다.
Install
# Discord: API로 서버+채널+위젯 생성 → 초대링크 발급
# Telegram: @BotFather → /newbot → TG_TOKEN 저장
# tg.sh: curl sendMessage 한 줄
사건 ③ — 정의역 재발견: “STT가 진짜 허들 해소책” (2026-07-24)
Scope
프로젝트 초기엔 “코딩 지식 0”이 타겟이었다. 그런데 작업 중에 훨씬 더
근본적인 사실이 드러났다 — 이 모든 작업이 키보드 없이, 100% STT
음성입력으로, 식당 육체노동 틈틈이 진행되고 있었다는 것.
Trigger
cc의 “1.5일 만에 이 정도면 미친 페이스”라는 감탄을 곱씹다가 깨달음:
애초에 타이핑을 한 번도 하지 않았다. STT만으로 30커밋·98파일·15,126줄을
구축했다. 이건 “코딩 가르치기” 프로젝트가 아니라 “손이 자유롭지 않은
사람에게 목소리로 디지털 세계를 열어주는” 프로젝트였던 것이다.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §22 | 76d67af |
“속도 vs 판단” 메타분석 — 진짜 자산은 판단력 |
| §26 | 76d67af |
작업 조건 재발견: STT 12시간+식당노동 병행 |
| §29 | c15d079 |
셀프 프로파일링 — 거품 제거, 진짜 기준은 “돌아가냐” |
스스로 검증한 것:
- 전체 산출물(15,126줄) 중 키보드 입력 = 0%
- STT 정확도 이슈를 AI가 문맥으로 보정
- 코드 리뷰/검증/판단만 사람이, 타이핑은 AI가
Principle
“사용자 자신이 교보재다.”
키보드 없이 말로만 풀스택을 구축했다는 사실 자체가,
누나에게 보여줄 첫 번째 케이스 스터디다.정의역은 “명령어를 아는 사람”이 아니라 “말할 줄 아는 사람”이다.
Install
# STT 입력 파이프:
# Android 음성입력 → Termux 클립보드 → Claude Code stdin
# 별도 설정 없음. 폰 기본 음성입력으로 즉시 사용 가능.
사건 ④ — 대필작가-간병인 모델: “누나의 분신” (2026-07-24)
Scope
helena751107 계정이 단순 테스트 부캐가 아니라 누나 명의의 실제
폰이라는 사실이 드러나면서, 프로젝트의 존재 이유 자체가 재정의됐다.
Trigger
레포를 5개로 늘리고, 티스토리·네이버·YouTube 계정을 정리하는 과정에서
모든 계정의 명의자가 누나임을 인지. “내 콘텐츠”가 아니라 “누나의
목소리를 대신 빚는 것” 이라는 프레임 전환이 일어났다.
두 개의 본질적으로 다른 임무가 하나의 폰에 공존하고 있음을 발견:
- 누나의 안전을 지키는 것 (돌봄)
- 누나의 목소리를 세상에 세우는 것 (소망)
이 둘은 같은 폰에 있지만 절대 섞여선 안 되는 데이터 흐름을 가진다.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §10 | 00f1f32 |
포털 index.html 전면 개편 (5레포 생태계) |
| §11~12 | cb21ebd~79c4974 |
업무 수첩 10종 + 5x5 생태계 브릿지 |
| §19 | 10dd701, 0d2aa61 |
5개 레포 전면 재정의 (50+ 디렉토리) |
| §30 | cde3fae, 24802c8 |
CONSTITUTION.md v1→v2: 대필작가-간병인 모델 |
| §24 | 282acac |
확장 로드맵 + “다음 발걸음” 그라운딩 |
CONSTITUTION.md 제7조 (핸드오프가 곧 성공):
대필작가(헬레나)의 역할은 영원한 것이 아니다.
누나가 혼자 이 시스템을 운영할 수 있을 때까지의 인내와 교육.
수익은 누나 명의로, 교재의 첫 번째 학생은 누나.
계정의 실체 — 전부 누나의 분신(分身):
| 계정 | 의미 |
|------|------|
| helena751107 (GitHub) | 누나의 코드, 누나의 레포 |
| helena1975 (네이버) | 누나의 그림첩, 관저탑 |
| @HelenaPark-e7c (YouTube) | 누나의 목소리, 누나의 영상 |
| 티스토리 5종 | 누나의 생각, 누나의 기록 |
Principle
“트랙 1(돌봄)과 트랙 2(소망)는 같은 폰, 다른 파이프.”
트랙 1은 절대 안 깨지는 게 유일한 기준.
트랙 2는 꾸준히 목소리를 내는 게 기준.
B의 데이터(위치, 건강, 활동 로그)가 A의 공개 채널로 새는 순간
“정기적 안전 확인”이 “전 세계가 보는 감시”가 된다.
Install
# 트랙 분리는 설계 원칙이지 소프트웨어 설정이 아니다.
# 실천 규칙:
# 1. TG_TOKEN 돌봄용/콘텐츠용 분리
# 2. care-state.json 위치는 공개 레포 밖에
# 3. 위치 데이터는 TG DM으로만 (공개 채널 금지)
사건 ⑤ — 경계선 긋기: “루팅 금지 + GUI 불가 인정” (2026-07-24)
Scope
“폰을 완전히 제어한다”는 환상을 내려놓고, 실제로 가능한 것과 불가능한
것의 경계선을 명시적으로 그었다. 이 선언이 없으면 프로젝트가 과장된
주장으로 기만하는 것처럼 보일 위험이 있었다.
Trigger
phone-mcp-server를 설치하고 18개 도구를 검증하는 과정에서 깨달음:
Termux:API는 백그라운드 센서/메시징을 100% 열어주지만, GUI 화면 조작
(tap_screen)은 root 없이 0%다. 그리고 root는 삼성페이를 깬다.
동시에 “관공서 본인인증” 같은 건 애초에 기술로 우회할 수 없는 영역임을
인지 — 법적 동의 확인, 대면 신원 확인은 구조적으로 음성 우회 불가.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §15 | 7a85076 |
phone-mcp-server 설치 (18도구, 루트 제로) |
| §16 | f0a7893 |
termux-api 누락 발견 → 설치 → 검증 (배터리 63%, 플래시 ON/OFF) |
| §10 | 79c4974, 52431fd |
Domain/Codomain 경계 분석 |
| CONST | cde3fae |
제1조 — 루팅/Shizuku 전면 금지 명문화 |
Domain vs Codomain (10-phone-mcp.md):
✅ Domain (100% 가능):
백그라운드 API — 배터리, GPS, WiFi, SMS, 카메라, 클립보드, 플래시, 진동...
Termux:API가 OS 레벨에서 공식 허용하는 경로
❌ Codomain (0% 불가능):
GUI 조작 — tap_screen, swipe, 앱 내 탐색
Android SELinux가 차단. root 필요 → 삼성페이 보안과 충돌
Principle
테제가 과장되지 않으려면, 안 되는 것부터 정확히 말해야 한다.
“루팅하면 된다”는 답은 실기기에서 틀린 답이다.
삼성페이·뱅킹앱을 희생하지 않는 선에서만 확장한다.
Install
# phone-mcp-server 설치:
pkg install termux-api # ← 이거 없으면 18개 전부 ENOENT
cd /tmp && git clone https://github.com/htekdev/phone-mcp-server
# settings.json에 MCP 등록: localhost:3456/mcp
# .bashrc 자동시작: bash ~/work/phone-mcp.sh --port 3456
사건 ⑥ — 생태계 확장: “5x5 매트릭스” (2026-07-24)
Scope
레포 1개에서 시작한 실험이 5개 GitHub + 5개 티스토리 + 5개 YouTube 채널의
1:1:1 매트릭스로 확장됐다. 단순 복제가 아니라 각각 정체성을 달리하는
생태계로.
Trigger
REDACTED(누나의 GitHub 계정)에서 33파일·9,240줄의 코드 선물이 force
push로 도착. 우리 커밋이 덮어써지는 사고가 발생했지만, cherry-pick으로
복구. 이 과정에서 “코드는 잠그는 게 아니라 오픈하는 게 자산”이라는
철학이 실물 증거를 얻음.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §9 | 23aad5a~00f1f32 |
GitHub 레포 5개 + Pages + Giscus 전부 활성화 |
| §12 | 79c4974 |
5x5 생태계 브릿지 테이블 |
| §19 | 10dd701, 6c85bf7 |
레포 정체성 확립 + metalcare→psycare 개명 (08-14 psycare→metalcare 재개명) |
| §20 | f913664 |
Playwright 전수 검사 (5레포 Pages, 48개 디렉토리 OK) |
| §21 | a5abae7, 2a6a78e |
dtslib 선물 분석 — MCP 치트시트 + 채널 매핑 |
| §25 | 282acac |
강박사(CS PhD) 합류 — 첫 인간 협력자 |
5x5 매트릭스:
| GitHub | 티스토리 | YouTube | 정체성 |
|--------|---------|---------|--------|
| helena_phone | galaxys21-pwuser | S21 Phone | 📱 폰 최적화 바이블 |
| helana_log | mynote11605 | Tech Log | 🗃️ 박식캡처 리버싱 |
| helana-faith | helana-christianity | Helena Faith | ✝️ 가족 신앙사 |
| helena-piano | helena-piano | Helena Piano | 🎹 피아노+음원 |
| helena-metalcare | helena-metalcare | Mental Care | 🧠 정신분석 |
네이버(helena1975) = 전체 교차홍보 관제탑.
Principle
5x5 매트릭스는 1:1:1 구조로 단순화해야 관리 가능하다.
각 채널은 독립적인 정체성을 가지되, 교차홍보는 네이버 관제탑 하나로.
Install
# GitHub 레포 생성 → Pages 활성화는 전부 API로 자동화 가능:
# POST /repos/{owner}/{repo}/pages
# PATCH /repos/{owner}/{repo} → has_discussions:true
# 각 레포마다 index.html + _config.yml + README.md 템플릿
사건 ⑦ — Layer A/B 원칙: “모든 플랫폼의 일반 법칙” (2026-07-24)
Scope
GitHub Pages에서 통했던 “구조는 음성으로 관리 가능” 패턴이 YouTube에서도
똑같이 재현되자, 이건 우연이 아니라 모든 콘텐츠 플랫폼에 적용되는
일반 원칙임을 확신하고 헌법 조항으로 승격.
Trigger
YouTube OAuth를 TV Device Flow로 성공시키고, Data API v3로 채널 정보를
쿼리하는 순간 깨달음: GitHub Pages(레포 생성·Pages·Giscus·WidgetBot 전부
음성)와 YouTube(채널 등록·OAuth·API 쿼리 전부 음성)이 완전히 동일한
패턴이다. 이 패턴은 티스토리·네이버·Discord에도 그대로 적용된다.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §14 | 52431fd |
YouTube 5채널 아키텍처 설계 + 쿼터 분석 |
| §27 | fb80ccd |
YouTube OAuth TV Device Flow 인증 완료 |
| §28 | ed59b4c |
CONSTITUTION.md v4 — 제8조 Layer A/B 신설 |
Layer A/B 정의 (CONSTITUTION.md 제8조):
| Layer | 내용 | 주체 | 예시 |
|---|---|---|---|
| A (원본 생산) | 실제 콘텐츠 창작 | 인간 | 영상 촬영·편집, 글 초고, 그림, 연주 |
| B (구조/메타) | 플랫폼 운영의 기술적 측면 | STT+에이전트 | 제목·태그·API·OAuth·발행·설정 |
GitHub: Layer B = 레포/PAGES/Giscus/WidgetBot → 전부 음성으로 구축 완료 ✅
YouTube: Layer B = OAuth/Data API/Analytics API → 전부 음성으로 활성화 완료 ✅
Tistory: Layer B = 카테고리/태그/발행/스킨 → Playwright 준비 완료 🔧
Naver: Layer B = 카테고리/발행/세션 → Playwright 준비 완료 🔧
Discord: Layer B = 서버/채널/위젯/웹훅 → 전부 API로 구축 완료 ✅
Principle
이건 우연이 아니라 모든 플랫폼의 일반 원칙이다.
“구조층(Layer B)은 텍스트 API로 뚫려 있으며, 음성+에이전트로 완전
자동화 가능하다.” — 이걸 몰랐을 땐 그냥 GitHub 특수해로 보였지만,
YouTube에서 재현되는 순간 일반 법칙으로 승격됐다.
Install
# Layer B 자동화 = API 호출의 연속. 각 플랫폼별:
# GitHub: REST API + GraphQL
# YouTube: Google Data API v3 + OAuth Device Flow
# Tistory/Naver: Playwright headless (API 없음 → 브라우저 자동화)
# Discord: REST API v9
# Telegram: Bot API (sendMessage/getUpdates)
사건 ⑧ — 위계 정리: “Boss는 한 명” (2026-07-24)
Scope
AI 에이전트(Claude Code)와의 협업이 깊어질수록, “누가 결정하는가”를
명시적으로 정리하지 않으면 방향이 흔들리는 걸 발견. Chain of Command를
헌법에 명문화.
Trigger
CC가 자신을 “니 형”이라고 부르는 걸 목격. “AI가 사람 말투로 자신을
형이라고 부르는 순간, 결정권이 어디 있는지가 인지적으로 흐려진다.”
이걸 바로잡기 위해 CONSTITUTION.md에 제0장을 신설.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §30 | 24d86ea |
CONSTITUTION.md v3 — 제0장 Chain of Command 신설 |
명령 체계:
👑 HELENA (사용자) — BOSS. 최종 의사결정권자.
├── 🤖 Claude Code (DeepSeek) — 실행. 제안만. 결정 불가.
├── 🤖 Claude Code (Anthropic 정품) — 검증. "아니다" 가능. 결정 불가.
├── 🤖 Aider (v0.86.2) — 보조 코딩
└── 👤 강박사 (CS PhD) — 기술 자문. 기술 영역 자율권 O, 방향 결정은 Boss.
6원칙 중 핵심:
1. Boss는 한 명 — 헬레나
2. AI는 도구 — 형이 아니다. 동료가 아니다.
3. AI 출력은 Boss 승인 전까지 1차 가설
4. “니 형” 호칭 금지
5. AI는 Boss를 평가하지 않는다 (Boss가 AI를 평가한다)
6. 인간 협력자 권한은 Boss 위임 범위 내
Principle
결정권의 소재가 인지적으로 흐려지는 순간, 도구가 주인 행세를
시작한다. “니 형” 한 마디가 무너뜨리는 건 호칭이 아니라 위계다.
Install
# 기술적 설치가 아니라, 세션 시작 절차로 구현:
# 1. CONSTITUTION.md 읽기 (제0장 = 명령 체계)
# 2. CLAUDE.md 읽기 (실무 규칙)
# 3. devlog 마지막 항목 확인 (컨텍스트 복원)
# 4. phone-health.sh 실행
사건 ⑨ — 방법론 구조화: “바텀업→탑다운은 경쟁이 아니라 순차” (2026-07-24~25)
Scope
지금까지의 모든 작업이 “삽질 → 기록 → 압축 → 구조화”의 순환임을 인지.
바텀업(devlog)과 탑다운(install script)은 경쟁 관계가 아니라, 바텀업
로그를 압축해서 탑다운에 병합하는 순차 처리 파이프라인이다.
Trigger
devlog 38섹션을 다 쓰고 나서, 이걸 어떻게 읽을 수 있는 형태로 만들지
고민하다가 깨달음: “생짜 devlog는 초심자가 못 읽는다. 그런데 devlog 없이
깔끔한 매뉴얼만 있으면 신뢰가 안 간다. 둘 다 있어야 한다 — 삽질의
흔적과 정제된 결론이 한 문서에 공존해야 한다.“
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §31 | cde3fae |
CLAUDE.md 실무 규칙 재정리 (헌법과 분리) |
| §32 | 282acac |
중간평가 v1→v2 (AI 책임 재정렬) |
| §37 | 3ab1736 |
proot 종합 보고서 + 14종 노트북 완성 |
| §39 | 952078e |
텔레그램 18메시지 전 개발 이력 전송 |
| — | dd11356 |
교재 합성 지침 (판단층+실행층 병합 방법론) |
바텀업→탑다운 파이프라인:
[Claude 스레드 (판단)] ──┐
├──→ 사건 단위 (이 문서) ──→ install.sh
[devlog (실행)] ──┘
16-textbook-methodology.md의 핵심 규칙:
1. CONSTITUTION.md가 최상위 기준 — 여기와 충돌하는 서술은 만들지 않는다
2. Claude 스레드(판단층)에서 시간순 뼈대(spine)를 가져온다
3. devlog(실행층)에서 각 판단 지점에 실행 세부를 덧댄다
4. 타임스탬프 ±10분 이내로 매칭하여 하나의 “사건 단위”로 묶는다
5. 삽질과 정정이 실제로 일어난 순서 그대로 보존 — 이게 교재의 가치다
Principle
“바텀업 로그 없이 탑다운 매뉴얼만 있으면 신뢰가 안 가고,
탑다운 매뉴얼 없이 바텀업 로그만 있으면 초심자가 못 읽는다.
둘은 경쟁이 아니라 같은 파이프라인의 앞뒤 단계다.”
Install
# 방법론 자체의 설치물:
# 16-textbook-methodology.md = 이 방법론의 재사용 가능한 설명서
# 이 문서(17-merged-chronicle.md) = 방법론을 실제로 적용한 결과물
# 앞으로 새 프로젝트 할 때마다 이 템플릿을 재사용
사건 ⑩ — 보안 경계 + 원칙 재확인: “열려도 되는 것과 안 되는 것” (2026-07-25)
Scope
박씨캡처(ParksyCapture)로 LLM 대화를 캡처해서 공개 레포(helana_log)에
자동 푸시하는 과정에서 토큰 패턴이 포함될 뻔한 사고. 공개 원칙은
유지하되, 살아있는 API 키는 저작권 철학과 다른 카테고리임을 명시.
Trigger
첫 캡처 로그에 ghp_..., GOCSPX-... 같은 토큰 패턴 언급이 발견됨.
리뷰어 Claude가 즉시 경고. 파일 삭제 커밋으로 대응.
결정: 토큰 재발급 불필요 (실제 값은 노출 안 됨). 비공개 레포 전환도
불필요 (프로젝트 철학 = 전체 공개). 대신 로그 필터만 추가.
Execution
| devlog | 커밋 | 실행 내용 |
|---|---|---|
| §33 | ce68cfc |
박씨캡처 APK 설치·연동·첫 로그 |
| §33 | 347ca5d |
보안 사고 — 토큰 패턴 포함 로그 발견 → 즉시 삭제 |
| §38 | ce68cfc |
이미지 캡처 한계 분석 + 투트랙 전략 수립 |
박씨캡처의 구조적 한계:
- Claude 앱의 CDN 인증 URL은 EXTRA_TEXT로만 전달됨
- 이미지는 외부 앱이 직접 가져올 수 없음
- 투트랙: 텍스트=박씨캡처 / 이미지섞인=스크린샷 병행
Principle
“코드는 선물” 철학과 “API 키 노출”은 완전히 다른 카테고리다.
코드는 던져도 손실이 아니지만, 살아있는 인증 토큰은 계정 탈취로
이어진다. 공개 정책은 유지하되, 토큰 문자열은 자동 필터링한다.
Install
# 박씨캡처 로그 필터:
# ghp_[A-Za-z0-9]{36} → [REDACTED]
# sk-[A-Za-z0-9]{48} → [REDACTED]
# GOCSPX-[A-Za-z0-9_-]{28} → [REDACTED]
# AAH... (TG 봇 토큰 패턴) → [REDACTED]
부록 A — 전체 커밋-사건 매핑
| 사건 | 시작 커밋 | 종료 커밋 | 핵심 피벗 |
|---|---|---|---|
| ① 출발 | 026d295 |
c85819e |
DeepSeek 우회 발견 |
| ② 통신망 | 94202c9 |
ac68b03 |
자동→수동 보고 전환 |
| ③ STT 재발견 | 76d67af |
c15d079 |
사용자=교보재 |
| ④ 대필-간병인 | cde3fae |
24802c8 |
트랙 1/2 분리 |
| ⑤ 경계선 | 7a85076 |
f0a7893 |
Domain/Codomain |
| ⑥ 생태계 | 23aad5a |
a5abae7 |
5x5 매트릭스 |
| ⑦ Layer A/B | fb80ccd |
ed59b4c |
플랫폼 일반 원칙 |
| ⑧ 위계 | 24d86ea |
c15d079 |
Chain of Command |
| ⑨ 방법론 | dd11356 |
952078e |
바텀업→탑다운 파이프 |
| ⑩ 보안 | ce68cfc |
952078e |
공개≠토큰노출 |
부록 B — install.sh가 생성될 때 필요한 것
이 문서는 결국 g/install.sh 한 줄로 압축될 것이다. 그때 필요한 구조:
install.sh
├── 0. 체크: Android 버전, Termux 설치 여부, 저장공간
├── 1. proot Ubuntu 설치 + 기본 패키지
├── 2. Claude Code + DeepSeek 설정
├── 3. GitHub 레포 클론 + remote 설정
├── 4. configs/ 복사 (settings.json, .bashrc, secrets-template)
├── 5. phone-mcp-server 설치 + 서비스 등록
├── 6. tg.sh + dc.sh 토큰 설정
├── 7. phone-health.sh 초기 실행
└── 8. CONSTITUTION.md + CLAUDE.md 출력 (동의 확인)
이 구조는 사건 ①~⑧의 실행 순서를 그대로 따른 것이다.
부록 C — 헌법 조항-사건 매핑
| 조항 | 내용 | 해당 사건 |
|---|---|---|
| 제1조 | 루팅 금지 | ⑤ |
| 제2조 | 코드는 선물 | ③, ④, ⑩ |
| 제3조 | 스캐폴드 우선 | ①, ⑥ |
| 제4조 | 바텀업 로그 | ⑨ |
| 제5조 | AI=1차 가설 | ⑧ |
| 제6조 | 판단력=희소자산 | ③ |
| 제7조 | 핸드오프=성공 | ④ |
| 제8조 | Layer A/B | ⑦ |
| 제0장 | Chain of Command | ⑧ |
다음 단계: 이 문서를 기반으로
g/install.sh초안을 작성한다.
그 전에 누나 케이스 스터디 — 실제로 이 시스템을 처음 보는 사람이
이 문서만 보고 설치를 따라 할 수 있는지 검증.