From 3c97060606c02950bd3280181f7c9e5126385690 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 29 Jul 2026 07:12:25 +0000 Subject: [PATCH 1/2] Add AGENTS.md and CLAUDE.md for Cursor/Claude project rules Introduce a single source of truth for agent guidance during the planning-docs phase: document authority, tentative Q1-Q7 handling, v1 scope guards, safety invariants, and next PoC priorities. Co-authored-by: okuma --- AGENTS.md | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 15 ++++++++ README.md | 5 +++ 3 files changed, 123 insertions(+) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..f61748c --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,103 @@ +# Project Instructions — hikikomori / 분신 (가칭) + +This repository is currently a **planning-docs repo** for an AI-twin messenger +("나를 대신해 남과 대화하는 AI 분신"). There is no application code yet. + +Canonical docs live under `docs/`. Prefer linking to them over copying content +into prompts or new files. + +## Document authority + +When documents disagree, follow this order: + +1. [`docs/decision-log.md`](docs/decision-log.md) — working assumptions for Q1~Q7 +2. [`docs/vision.md`](docs/vision.md) / [`docs/PRD.md`](docs/PRD.md) / [`docs/tech-design.md`](docs/tech-design.md) +3. [`docs/roadmap.md`](docs/roadmap.md) / [`docs/risk-log.md`](docs/risk-log.md) +4. [`docs/PLANNING.md`](docs/PLANNING.md) — process guide +5. [`docs/idea-meeting-2026-06-29.html`](docs/idea-meeting-2026-06-29.html) — historical meeting source only + +Notes: + +- Q1~Q7 in `decision-log.md` are **제안 (tentative)**, not final meeting + decisions. Do not silently reverse them. If a change is required, update + `decision-log.md` and all derived docs in the same change. +- `PLANNING.md` §2 may still show empty checkboxes (`☐`). That is stale + template state — prefer `decision-log.md` for current working answers. +- Stale wording such as “OS 레이어 → 자체 앱” is wrong. The working order is + **자체 앱 클로즈드 베타 first → OS 레이어 later** (`decision-log.md` Q7). + +## Product identity (v1 working assumptions) + +- Name (working): **분신** +- One-liner: ChatGPT talks *with* me; 분신 talks *as* me *to others* +- Target: consumer individuals first (not B2B) +- Delivery: self-owned messenger, closed beta +- Autonomy for v1: **L0~L2 only** +- MVP scenarios: **읽씹 종결** + **단톡 따라잡기** +- Platform: Android first + +## Hard scope guards (do not expand without an explicit decision-log update) + +Out of v1 scope: + +- L3 full away-mode auto-reply +- L4 twin-to-twin negotiation / appointment auto-finalization +- OS-layer bridging over KakaoTalk / Instagram / etc. +- B2B / workspace products +- Server-side full conversation analytics that violate on-device-first + +Do not design or implement Phase 2+ work before Phase 1 gates are validated +(`docs/roadmap.md`). + +## Absolute safety invariants + +These apply at every autonomy level and must not be weakened for convenience: + +- Money, appointment confirmation, and emotional/sensitive topics always + escalate to the human. When uncertain, escalate (fail-safe). +- Twin-authored messages must be visually distinct (badge / `sender_mode`). +- Honest identity answers: if asked “본인이야 분신이야?”, answer as twin. +- Peer veto: if the other person rejects the twin, disable auto-reply for that + conversation immediately. +- Every automatic action needs post-hoc notification + one-tap undo. + +## Privacy & architecture principles + +- Tone/style learning: **on-device first**. Do not default to uploading raw chat + history to servers. +- Autonomy / escalation engine: **client-side** so safety is not blocked by + server latency or outage. +- Draft generation: on-device first, server LLM fallback with minimal context. +- Relay/storage server is allowed; it is not a license for full cloud analysis. + +## Process rules + +Follow `docs/PLANNING.md`: decide → narrow → validate → specify. + +Current next priorities (do not invent a full stack first): + +1. PoC #1 — on-device tone realism +2. PoC #3 — impersonation / trust acceptance (badge, veto UX) +3. Clickable prototype (badge + veto) +4. Small user interviews +5. Meeting review to promote Q1~Q7 from 제안 → 확정 + +Do not invent frameworks, folder layouts, or CI conventions until real code +exists. When code work starts, prefer Android-first changes aligned with +`docs/tech-design.md` and keep L0~L2 + safety invariants intact. + +## Documentation conventions + +- Planning docs are written in **Korean**. +- Keep decisions traceable with links to `decision-log.md` Q# and related files. +- Preserve `idea-meeting-2026-06-29.html` as historical source material; do not + treat it as the live decision record. +- When status changes, keep `PLANNING.md` §8, `roadmap.md`, and `risk-log.md` + in sync. +- Prefer updating existing docs over creating parallel overlapping docs. + +## Communication with agents + +- Read the relevant docs before proposing product/tech changes. +- Call out whether a suggestion is inside v1 scope or a future-phase idea. +- If requirements are ambiguous, ask before expanding scope. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b91be9a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,15 @@ +# Claude Code — hikikomori / 분신 + +Follow the project instructions in [@AGENTS.md](./AGENTS.md). + +Quick context: + +- This repo is planning docs only (no app code yet). +- Working product name: **분신** (tentative). +- Source of working decisions: `docs/decision-log.md` (status: 제안). +- v1 scope: self-app closed beta, L0~L2, 읽씹 종결 + 단톡 따라잡기, Android first. +- Hard bans for v1: L3/L4, OS-layer over third-party messengers, B2B. +- Never weaken escalation, twin badge, peer veto, or undo. + +Before changing product or technical direction, read `AGENTS.md` and the +relevant files under `docs/`. diff --git a/README.md b/README.md index 7b45bda..d500e05 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,11 @@ - 리스크 로그: [`docs/risk-log.md`](./docs/risk-log.md) - 로드맵: [`docs/roadmap.md`](./docs/roadmap.md) +## AI 에이전트 규칙 + +- Cursor / 공통: [`AGENTS.md`](./AGENTS.md) +- Claude Code 진입점: [`CLAUDE.md`](./CLAUDE.md) + ## 현재 단계 아이디어 발산 → 컨셉 심화 → 기획 문서 세트(Vision/PRD/기술설계/리스크/로드맵) 초안 작성까지 완료. From 2714fbef438f9f97a4cc29f4ebc8468a83d7a363 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 29 Jul 2026 07:14:23 +0000 Subject: [PATCH 2/2] Sync planning docs with tentative Q1-Q7 decisions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update PLANNING.md §2 from empty checkboxes to the working answers in decision-log, fix the reverse OS/self-app wording, and clarify roadmap Phase 3 so OS-layer growth does not rewrite the start order. Co-authored-by: okuma --- AGENTS.md | 8 ++++---- docs/PLANNING.md | 20 +++++++++++--------- docs/roadmap.md | 4 +++- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f61748c..c9f4513 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,10 +21,10 @@ Notes: - Q1~Q7 in `decision-log.md` are **제안 (tentative)**, not final meeting decisions. Do not silently reverse them. If a change is required, update `decision-log.md` and all derived docs in the same change. -- `PLANNING.md` §2 may still show empty checkboxes (`☐`). That is stale - template state — prefer `decision-log.md` for current working answers. -- Stale wording such as “OS 레이어 → 자체 앱” is wrong. The working order is - **자체 앱 클로즈드 베타 first → OS 레이어 later** (`decision-log.md` Q7). +- Prefer `decision-log.md` (and the synced summary in `PLANNING.md` §2) for + current working answers. +- Working delivery order is **자체 앱 클로즈드 베타 first → OS 레이어 later** + (`decision-log.md` Q7). Do not reverse that sequence. ## Product identity (v1 working assumptions) diff --git a/docs/PLANNING.md b/docs/PLANNING.md index 6f2fe59..95e2826 100644 --- a/docs/PLANNING.md +++ b/docs/PLANNING.md @@ -29,16 +29,18 @@ ## 2. 먼저 확정해야 할 결정 (회의 Q1~Q7) 기능 명세를 쓰기 전에 아래 표를 채운다. 답이 안 나온 항목은 "보류 사유"를 적어두고 다음 회의 안건으로 남긴다. +현재 작업용 답은 [`decision-log.md`](./decision-log.md)에 있으며, 상태는 모두 **제안(잠정)** 이다. +회의에서 정식 확정되기 전까지는 decision-log를 단일 기준으로 따른다. -| # | 질문 | 결정 | 비고 | +| # | 질문 | 잠정 결정 | 상태 | |---|------|------|------| -| Q1 | AI 분신으로 확정? | ☐ | 다른 축(기록/관계) 대비 최종 선택 근거 | -| Q2 | 타깃: 대중 vs 회사? | ☐ | 첫 사용자층에 따라 기능 우선순위가 바뀜 | -| Q3 | 자율성 몇 단계까지 출시? | ☐ | L0~L2만 먼저 여는 것을 권장 (§5) | -| Q4 | 사칭 우려 대응 충분한가? | ☐ | 분신 뱃지·거부권 등 투명성 장치 재확인 | -| Q5 | MVP 데모 시나리오 1개는? | ☐ | 읽씹 종결 / 약속 조율 / 대화 방어 중 하나 | -| Q6 | 서비스 이름 | ☐ | Echo / Twin / 분신 / Aka / 둘이서 / Mirror | -| Q7 | 자체 앱 vs OS 레이어 시작점 | ☐ | §6 참고 — 신뢰 비용 낮은 쪽부터 | +| Q1 | AI 분신으로 확정? | 예 | 제안 — 근거는 `decision-log.md` | +| Q2 | 타깃: 대중 vs 회사? | 대중 우선 (B2B는 이후) | 제안 | +| Q3 | 자율성 몇 단계까지 출시? | L0~L2만 | 제안 | +| Q4 | 사칭 우려 대응 충분한가? | 1차 설계는 충분, 실사용 검증 필요 | 제안 | +| Q5 | MVP 데모 시나리오 1개는? | 읽씹 종결 + 단톡 따라잡기 (묶음) | 제안 | +| Q6 | 서비스 이름 | "분신" (가칭) | 제안 (가칭) | +| Q7 | 자체 앱 vs OS 레이어 시작점 | 자체 앱 클로즈드 베타 먼저 → OS 레이어는 이후 | 제안 | ## 3. MVP 시나리오 좁히기 @@ -102,7 +104,7 @@ 2. [`PRD.md`](./PRD.md) — MVP 시나리오 기준 기능 명세, 유저 플로우, 엣지 케이스 3. [`tech-design.md`](./tech-design.md) — 온디바이스/서버 경계, 데이터 흐름, 에스컬레이션 로직 4. [`risk-log.md`](./risk-log.md) — 회의 자료 §2-6, §oslayer §4의 리스크를 완화 상태와 함께 추적 -5. [`roadmap.md`](./roadmap.md) — L0~L4 단계, OS 레이어→자체 앱 전환 시점 반영 +5. [`roadmap.md`](./roadmap.md) — L0~L4 단계, 자체 앱→OS 레이어 확장 시점 반영 6. [`decision-log.md`](./decision-log.md) — Q1~Q7 결정과 근거, 계속 누적 기록 ## 8. 다음 액션 체크리스트 diff --git a/docs/roadmap.md b/docs/roadmap.md index 2e76ecf..0183703 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -23,8 +23,10 @@ ## Phase 3 — OS 레이어 진입 (성장 전략) +- 전제: Phase 1 자체 앱 베타에서 핵심 가설이 검증된 뒤에만 착수 (`decision-log.md` Q7) - 읽기 전용 허브부터 (발송 권한 없음, 문자·이메일 등 안정적 API 채널 우선) -- 순서: 읽기 전용 → 초안 제안 → 제한적 자동응대(L2 그대로 확장) → 자체 앱으로 유도 +- OS 레이어 내부 순서: 읽기 전용 → 초안 제안 → 제한적 자동응대(L2 그대로 확장) +- 확산 후 완전한 기능(L3·L4 등)이 필요하면 자체 앱으로 유도 — 시작 순서를 뒤집는 뜻이 아님 - 안드로이드 우선, iOS는 이 단계 반응을 본 뒤 자체 앱 전환 유도 전략으로 대응 ## Phase 4 — L4 분신 협상 + B2B 확장