From aea787cc8d8771634dfa126f6133eb5d899dce14 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 12 Sep 2026 09:37:25 +0900 Subject: [PATCH 1/3] =?UTF-8?q?docs(verification):=20=EA=B9=83=20=EA=B7=B8?= =?UTF-8?q?=EB=AC=BC=EB=A7=9D=EC=97=90=EC=84=9C=20=ED=95=A9=EB=A5=98?= =?UTF-8?q?=EC=A0=90=20dev=20=EB=A1=9C=20=EC=A0=84=ED=99=98=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-09-12_깃_합류점_dev_전환.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md diff --git a/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md b/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md new file mode 100644 index 00000000..2d908f46 --- /dev/null +++ b/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md @@ -0,0 +1,94 @@ +# 깃 운영 전환 — 그물망에서 합류점(`dev`)으로 (2026-09-12) + +작성: desktop-main (Claude). 지시: 사용자. +바뀐 파일은 **전부 git 밖**(`.claude/` · `CLAUDE.md` · `AGENTS.md` · `OWNERS.md`) — +시놀로지로만 건너감. 이 문서만 git 에 남김. + +--- + +## 1. 왜 — 실측 + +VSCode 에서 ORCA 로 옮기며 워크트리를 **넷에서 여섯으로** 늘리기로 함 +(클로드 4 · 코덱스 1 · 안티그래비티 1). 늘리기 전에 깃 그림이 이미 엉켜 있었음. + +| 본 것 | 값 | +| ------------------------------ | ------------------------------------------------------- | +| 최근 이틀(9/11~9/12) 커밋 | 머지 **27** / 실제 작업 **12** — 머지가 2.25배 | +| 저장소 전체 `Merge remote-tracking` | **319** / 전체 1,782 커밋 = 18% | +| 얽힘 구조 | 창마다 **남의 환경 브랜치를 전부** 되받음 (그물망) | +| 갈래 수 | 창 4개 = 12갈래 → **창 6개 = 30갈래** (2.5배 악화 예정) | +| `origin/main` | 이미 `main_desktop_1` 의 **조상** — 합류점 자리가 비어 있었음 | + +원인은 브랜치 개수가 아니라 `git-sync.ps1` **2.5단계**였음 — 세션·지시마다 다른 환경 +브랜치를 전부 자기 브랜치로 merge 함. N개 창이 서로를 보므로 머지 커밋이 N×N 으로 늘어남. + +## 2. 사용자 결정 + +- `main` = **정본 유지.** 창은 손대지 않음. 합류점은 **새로 만듦**(`dev`). +- **받기** — 미커밋이 있으면 **통째로 건너뜀.** 옛 판의 「docs/ 만 받기」 예외 **폐기** + (위키 작업도 코드 작업과 동일하게 운영). +- **밀기** — 커밋 뒤 **자기 브랜치로만** push. `dev` 는 다음 받기가 올림. +- **싱크** — 환경 브랜치 여섯을 한 점으로 모음. +- 저장소 무게(`.git` 9.1GB · 중단 찌꺼기 `tmp_pack` 3.5GB · 추적 중인 `resources` 3.18GB)는 + **이번에 건드리지 않음** — 사용자 보류. +- 코덱스·안티그래비티도 **코드 작업 가능**하게 `AGENTS.md` 개정. + +## 3. 새 한 바퀴 + +``` +받기 미커밋이면 건너뜀. 깨끗하면 + ① origin/dev 담기(대개 빨리감기) + ② dev 가 아직 못 품은 환경 브랜치를 **한 번의 옥토퍼스 머지로** 담기 + ③ dev 를 내 자리로 빨리감기로 올리기 +작업 자기 브랜치에서 +밀기 커밋 → 자기 브랜치로만 push +싱크 -Converge : 환경 브랜치 여섯을 내 자리로 빨리감기 (main 은 제외) +``` + +## 4. 고친 것 + +| 파일 | 무엇 | +| -------------------------- | ----------------------------------------------------------------------- | +| `.claude/git-sync.ps1` | 2.5단계를 그물망 되받기 → 합류점 따라오기로 교체(옥토퍼스 1회 + dev 올리기) | +| | 7단계 모으기에서 `main` 만 제외 — 코덱스·안티그래비티도 함께 모음 | +| | 3단계 「새 원격 브랜치」 알림에서 `dev` 제외 · `-Brief` 필터 갱신 | +| `.claude/git-autopush.ps1` | **안 고침** — 이미 자기 브랜치로만 push 함(사용자 규칙과 일치) | +| `CLAUDE.md` 6·7장 | 줄 셋(main/dev/환경6) · 새 한 바퀴 · 창 여섯 | +| `AGENTS.md` | 제목·1장(코덱스+안티그래비티, 코드 작업 경계) · **4장 코드 작업 규칙 신설** | +| | 5장 작업 보조 · 6장 작업 환경(6환경) + **깃 한 바퀴** · 7장 공통 원칙 | +| `OWNERS.md` | codex · antigravity 두 줄 추가 (포트 8002·5175 / 8003·5176) | +| ORCA 저장소 설정 | `worktreeBaseRef` → `origin/dev`, setup 문구 되살림 | + +`dev` 는 **원격 전용**으로 둠(로컬 브랜치 안 만듦) — 워크트리가 물고 있지 않아야 +어느 창에서도 `HEAD:dev` 로 올릴 수 있음. 끊은 자리는 `cecd12e3` — 그때 여섯 브랜치가 +모두 `main_desktop_1` 에 흡수돼 있어 **머지 0회**로 출발함. + +## 5. 자체검증 — 모형 저장소 실행 + +진짜 저장소를 건드리지 않으려고 `git init` 으로 작은 모형(bare 1 + 워크트리 3)을 세워 +**고친 스크립트를 그대로** 돌림. + +| 시험 | 결과 | +| ------------------------------------ | --------------------------------------------------------- | +| ② 밀린 브랜치 1개 흡수 + ③ dev 올리기 | ✅ 머지 커밋 **1개**, dev 3커밋 전진 | +| ① dev 받기 (내 것이 이미 dev 에 있음) | ✅ **빨리감기** — 새 머지 커밋 0개 | +| ② 밀린 브랜치 **2개** 동시 | ✅ 옥토퍼스 **한 방** — 머지 커밋 1개, 부모 2개 | +| 미커밋 있을 때 받기 | ✅ 통째로 건너뜀 + 「커밋·push 한 뒤 다시 하세요」 | +| `-Converge` 모으기 | ✅ dev·main_desktop_1·sub_laptop_1 **세 브랜치가 같은 SHA** | +| 진짜 저장소에서 훅 실행 | ✅ 최신일 때 조용함, `-Brief` 는 아무것도 안 찍음 | + +⚠ 옥토퍼스 실패 시 하나씩 다시 머지하는 갈래는 **모형에서 안 걸림**(충돌을 못 만듦) — +코드상 각 머지를 `--abort` 로 감싸 둠. 실제로 부딪히면 작업 트리는 그대로 두고 보고만 함. + +⚠ 옥토퍼스가 `Fast-forwarding to:` 같은 줄을 stderr 로 뱉음. PowerShell 5.1 에서 +네이티브 stderr 를 돌리면 `$?` 가 뒤집히는 자리라 **일부러 안 막음.** + +## 6. 남은 것 · 주의 + +- **창 여섯을 전부 다시 켜야 함.** 한 창이 옛 훅으로 남으면 그 창 혼자 그물을 다시 침. + `.claude` 는 데스크탑은 심볼릭 링크 한 벌, 랩탑은 시놀로지가 옮김. +- ORCA setup 문구는 앱이 자기 상태로 **되돌려 쓴 적이 있음**(이번에도 `npm install` 로 + 돌아가 있었음). ORCA 를 다시 켠 뒤 `orca repo show --repo id: --json` 으로 확인할 것. +- 코덱스·안티그래비티는 클로드 훅이 안 돎 — `AGENTS.md` 6장대로 **손으로** + `.claude\git-sync.ps1` 을 자기 워크트리 폴더에서 부를 것. +- 저장소 무게 정리(찌꺼기 팩 3.5GB · `resources` PDF 원문 3GB)는 사용자 보류 중. From 3c37c4ed92066ce86ca4d0b114d2cbd6ece4d79f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 12 Sep 2026 09:57:47 +0900 Subject: [PATCH 2/3] =?UTF-8?q?docs(verification):=20=EB=93=A4=EC=97=AC?= =?UTF-8?q?=EC=98=A4=EA=B8=B0=EB=A5=BC=20=EC=BD=94=EB=93=9C=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EC=A0=84=EC=9C=BC=EB=A1=9C=20=ED=95=9C=EC=A0=95?= =?UTF-8?q?=ED=95=9C=20=EA=B0=9C=EC=A0=95=20=EA=B8=B0=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-09-12_깃_합류점_dev_전환.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md b/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md index 2d908f46..ab23a3c5 100644 --- a/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md +++ b/docs/raw/verification/2026-09-12_깃_합류점_dev_전환.md @@ -92,3 +92,33 @@ VSCode 에서 ORCA 로 옮기며 워크트리를 **넷에서 여섯으로** 늘 - 코덱스·안티그래비티는 클로드 훅이 안 돎 — `AGENTS.md` 6장대로 **손으로** `.claude\git-sync.ps1` 을 자기 워크트리 폴더에서 부를 것. - 저장소 무게 정리(찌꺼기 팩 3.5GB · `resources` PDF 원문 3GB)는 사용자 보류 중. + +--- + +## 7. 뒤이은 개정 — 들여오기 시점 (같은 날, 사용자 확정) + +첫 판은 **지시마다** `dev` 를 받았음. 사용자 지적 — +「창마다 폴더가 갈려 있어 실시간으로 쫓아갈 필요가 없음. **코드 작업 들어가기 전에만** 받으면 됨.」 + +지침 6장의 「**작업 도중에는 당기지 말 것**」과도 어긋나던 자리였음 — 커밋 사이사이는 +폴더가 깨끗하므로 작업 한복판에 남의 코드가 들어올 수 있었음. + +### 가른 것 — 들여오기 / 내보내기 + +| | 언제 | 까닭 | +| --- | --- | --- | +| **들여오기** (`dev` 받기) | **세션 시작 훅 + 손으로 부를 때만** | 작업 도중 발밑이 안 바뀜 | +| **내보내기** (`dev` 올리기) | **늘** (미커밋이 있어도) | 내 폴더를 안 건드리고, 내 커밋이 남에게 곧바로 보임 | + +- 지시마다 도는 훅(`-Brief`)은 **안 받고 한 줄로 알리기만** 함 — + `합류점 'dev' 에 안 받은 커밋 N 개 - 코드 작업 전에 '.claude\git-sync.ps1' 로 받을 것.` +- 안 받은 채로 작업해도 **밀기는 안 막힘** — 자기 브랜치라 거부되지 않음. + 받아야 하는 때는 합칠 때(`-Converge`)뿐임. + +### 자체검증 — 모형 저장소 + +| 시험 | 결과 | +| ------------------------------------------- | ----------------------------------------- | +| `-Brief` 로 부름 (dev 에 남의 커밋 2개 있음) | ✅ HEAD 안 움직임 + 알림 한 줄 | +| 인자 없이 부름 | ✅ 2커밋 받고 dev 와 같은 자리 | +| `-Brief` + **미커밋 있는 상태**에서 내 커밋 | ✅ 내보내기는 그대로 돌아 dev 가 따라옴 | From 746d6fe0d61d8ad581a8270eff457498ea5854e2 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 12 Sep 2026 10:14:01 +0900 Subject: [PATCH 3/3] =?UTF-8?q?docs(verification):=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EA=B8=B0=EB=B3=B8=EC=9D=84=20ORCA=20?= =?UTF-8?q?=EB=82=B4=EC=9E=A5=20=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80?= =?UTF-8?q?=EB=A1=9C=20=EB=B0=94=EA=BE=B8=EB=A9=B0=20=EA=B3=B5=EC=9A=A9=20?= =?UTF-8?q?=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80=20=EC=83=81=EC=84=B8=20?= =?UTF-8?q?=EB=B3=B4=EA=B4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 지침 4장은 ORCA 기본 · 공용은 사용자가 지시할 때만으로 줄임 - 되돌릴 때 필요한 시동·명령파일·캐시 비우기·재시작 절차를 원문 그대로 이 문서에 옮김 - ORCA 쪽 캐시 비우기는 전용 명령이 없어 미확인으로 남김 (첫 B07 검증 때 확정할 것) Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX --- .../2026-09-12_공용_브라우저_운용.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/raw/verification/2026-09-12_공용_브라우저_운용.md diff --git a/docs/raw/verification/2026-09-12_공용_브라우저_운용.md b/docs/raw/verification/2026-09-12_공용_브라우저_운용.md new file mode 100644 index 00000000..2f8a7185 --- /dev/null +++ b/docs/raw/verification/2026-09-12_공용_브라우저_운용.md @@ -0,0 +1,73 @@ +# 공용 브라우저 운용 — 상세 보관 (2026-09-12) + +## 왜 남기나 + +2026-09-12 **ORCA IDE 내장 브라우저를 화면 검증 기본**으로 바꿈(사용자 확정). +기본이 바뀐 까닭은 내장 브라우저가 **Claude 가 직접 제어하기 쉽고 사용자와 화면을 같이 보기 쉬움** — +공용 브라우저 방식(파이썬 명령 파일을 만들어 드라이버가 이름순 실행)은 한 번 조작할 때마다 +파일을 쓰고 로그를 읽어야 해 왕복이 길었음. + +공용 방식도 나쁘지 않았고 **개발환경이 다시 바뀔 때 되돌릴 수 있어야** 하므로, +`CLAUDE.md` 4장에서 요약으로 줄이는 대신 **상세를 이 문서에 옮겨 둠**. +지침의 규칙은 「ORCA 가 기본 · 사용자가 「공용 브라우저로」 라고 지시할 때만 공용」 임. + +## 되돌리는 법 — 한 줄 + +`./venv/Scripts/python.exe .claude/dev_up.py` 를 **옵션 없이** 부르면 예전대로 서버+창이 뜸. +(ORCA 기본 경로는 `--no-browser` 를 붙여 **서버만** 띄움 — 2026-09-12 추가한 스위치.) + +⚠ **공용 창과 ORCA 탭을 같이 띄우지 말 것** — 서로 부딪혀 ORCA 쪽 `snapshot`·`screenshot` 이 죽음. + +## 시동·재사용 + +- **시동은 한 번만**: `./venv/Scripts/python.exe .claude/dev_up.py`. + 서버(메인 폴더 8000·5173 / 보조 워크트리 8001·5174)와 `tmp/browser/driver.lock` 의 PID 가 + 살아 있으면 **재사용** — 다시 띄우지 않음. +- 포트는 폴더가 정함. 주인은 `OWNERS.md` 환경 점유표. +- 새로 띄우는 프로세스는 **분리 실행(detached)** — 대화 세션이 끝나도 살아남아 다음 세션이 이어 씀. +- 로그: 서버 `tmp/server.log` · 드라이버 `tmp/browser/driver.log`. + +## 조작 — 명령 파일 + +- `tmp/browser/cmd/NN_이름.py` 를 만들면 드라이버가 **이름순으로 실행**함. +- 파일 안에서 바로 쓰는 전역: `page`(Playwright 페이지) · `log` · `shot` · `time`. +- 결과는 `tmp/browser/driver.log` (RUN/OK/ERROR/SHOT 줄) · 스크린샷은 `tmp/browser/shots/`. +- ⚠ `tmp/` 는 창끼리 안 건너감 — 남길 시험 코드는 `resources/tester` 에 둘 것. + +## 캐시·재시작 + +- ⚠ **브라우저 창 재시작 금지** — 사용자 화면·세션이 날아감. 창 종료도 사용자가 지시할 때만. +- 캐시가 문제면 창을 죽이지 말고 **명령 파일 안에서** 비울 것: + + ```python + page.context.new_cdp_session(page).send("Network.clearBrowserCache") + page.reload() + ``` + +- **재시작 대상은 서버뿐** — `taskkill /PID /T /F` → `dev_up.py`. + 그것도 아래 표에서 재시작이 유일한 수단일 때만. + +## 코드 수정이 화면에 닿는 조건 (공용 브라우저 표현) + +| 무엇을 고쳤나 | 해야 할 것 | +| ------------------------------------------------------------------ | ------------------------------ | +| 페이지·공용 코드 (`B0x_*/*.ts`, `ui_template/`) | `page.reload()` 한 번 | +| CAD 앱 (`B07_DesignDetail/openwebcad/src/**`) | `npm run build` + 캐시 비우기 | +| 백엔드 엔진·템플릿 (`*.py`, `resources/template_2dDrawing/*.json`) | 백엔드 재시작 | + +ORCA 기본 경로에서는 같은 표가 `orca reload` 로 바뀜 — 지침 4장 참조. + +## 브라우저와 무관하게 그대로인 규칙 + +- **검증 완결 책임 = Claude** — 「사용자가 확인」으로 넘기지 말 것. + 직접 조작하고 **수치로 판정**(sessionStorage · SVG 실좌표 · 툴팁 · 스크린샷) 뒤 결과만 보고. +- **조작으로 바꾼 값은 사용자가 쓰던 값으로 되돌려 놓을 것.** +- `sessionStorage` 는 **포트별로 갈림** — 검증 전에 그 포트에서 상태를 다시 세울 것. + +## 미확인 — ORCA 쪽 캐시 비우기 + +`orca` 명령에는 캐시를 비우는 전용 명령이 없음(2026-09-12 `orca --help` 확인). +CAD 앱을 `npm run build` 한 뒤 옛 화면이 남는지 **첫 B07 검증 때 시험하고 결과를 이 문서에 적을 것.** +후보 셋: ① `orca reload` 만으로 충분(빌드 산출물 이름에 해시가 붙으면 그럴 것) · +② `orca tab close` 후 `orca tab create` · ③ `orca tab profile create` 로 새 프로필 탭 +(프로필을 바꾸면 `sessionStorage` 도 비므로 상태를 다시 세워야 함).