Skip to content

Commit bbc6560

Browse files
committed
[-]: 재시동 계획 문서 상태 반영
1 parent b3a3789 commit bbc6560

1 file changed

Lines changed: 114 additions & 3 deletions

File tree

docs/plans/2026-03-24-project-restart.md

Lines changed: 114 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
- 완료: `codex/restore-main-tests` 병합 완료
1616
- 완료: `codex/fix-runtime-contract` 병합 완료
1717
- 완료: `codex/fix-docs-lint` 병합 완료
18-
- 완료: `codex/align-readme-and-docs` 구현 및 PR 준비 완료
18+
- 완료: `codex/align-readme-and-docs` 병합 완료
19+
- 완료: `codex/add-keyboard-and-close-controls` 병합 완료
1920
- 반영된 내용:
2021
- `packages/main/test/setup.ts` 추가
2122
- `packages/main/jest.config.js` 정상화
@@ -35,6 +36,11 @@
3536
- README, docs landing page, docs sidebar, MDX 예제를 현재 공개 API 기준으로 재정렬
3637
- 존재하지 않는 docs sidebar 링크 제거
3738
- 잘못된 GitHub 저장소 링크 수정
39+
- `Options.keyboardNavigation`, `Options.closeOnOverlayClick` 추가
40+
- overlay open 상태에서만 `Escape`, `ArrowLeft`, `ArrowRight` 단축키 처리 추가
41+
- `input` / `textarea` / `select` / `contenteditable` 포커스 중 단축키 무시 처리 추가
42+
- backdrop click close를 opt-in 동작으로 추가하고 highlight / info box 클릭과 구분
43+
- keyboard / overlay close 관련 README 및 docs 예제 업데이트
3844
- 현재 기준선:
3945
- `pnpm -C packages/main test` 통과
4046
- `pnpm -C packages/main test:coverage` 통과
@@ -56,7 +62,27 @@
5662

5763
## Restart Work Summary
5864

59-
재시동 계획에 포함된 4개 워크트리 기준 작업은 모두 구현 가능 상태까지 정리됐다. 남은 일은 `codex/align-readme-and-docs` PR 병합과, 병합 후 메인 브랜치 기준 최종 검증 및 릴리즈 판단이다.
65+
재시동 계획에 포함된 4개 워크트리 기준 작업은 모두 완료되어 `main` 기준선에 반영됐다. 이 문서는 이제 “복구 작업 체크리스트” 역할은 끝났고, 다음 단계인 기능 확장 후보를 정리하는 참고 문서로 유지한다.
66+
67+
## Next Product Work Candidates
68+
69+
첫 기능 확장 작업으로 권장했던 `codex/add-keyboard-and-close-controls`는 완료 및 병합됐다.
70+
71+
다음으로 바로 붙이기 좋은 기능 후보는 아래 2개다.
72+
73+
1. `codex/add-highlight-padding-and-overlay-click-behavior`
74+
2. `codex/add-promise-api`
75+
76+
이제 추천 시작점은 `codex/add-highlight-padding-and-overlay-click-behavior`다.
77+
78+
- `Options.highLightPadding`가 타입에는 있지만 실제 highlight 계산에는 반영되지 않는다.
79+
- overlay 클릭 시 닫을지 여부, highlight 영역 바깥 상호작용을 어떻게 막을지 같은 핵심 UX 정책이 아직 없다.
80+
81+
그 다음 우선순위는 Promise API다.
82+
83+
- README에 예고만 있었고 아직 실제 API가 없다.
84+
- `tutorial.open()`이 완료 시점을 resolve하는 Promise를 반환하면 튜토리얼 종료 후 후속 로직 연결이 쉬워진다.
85+
- 다만 상태 계약을 한 번 더 설계해야 해서 앞의 두 작업보다 약간 무겁다.
6086

6187
## Common Setup For Every Worktree
6288

@@ -190,7 +216,7 @@ Expected:
190216

191217
**Suggested worktree:** `codex/align-readme-and-docs`
192218

193-
**Status:** 구현 완료, PR 대기
219+
**Status:** 완료 및 병합됨
194220

195221
**Goal:** 현재 구현과 어긋난 README, dead link, 잘못된 GitHub 링크, 미완성 문서 네비게이션을 정리해서 외부 사용자가 헷갈리지 않게 만든다.
196222

@@ -263,3 +289,88 @@ Expected:
263289
- `README.md` 예제 코드가 실제 공개 타입과 일치하는지 다시 확인
264290
- `dist/` 산출물이 필요 이상으로 커밋되지 않는지 확인
265291
- 변경 로그가 필요하면 `CHANGELOG.md` 또는 release note 초안 작성
292+
293+
---
294+
295+
## Suggested Next Feature Plan
296+
297+
첫 번째 후속 기능 작업으로 권장했던 `codex/add-keyboard-and-close-controls`는 완료 및 병합됐다. 이제 다음 추천 작업은 `codex/add-highlight-padding-and-overlay-click-behavior`다.
298+
299+
### Candidate A: Add Keyboard And Close Controls
300+
301+
**Suggested worktree:** `codex/add-keyboard-and-close-controls`
302+
303+
**Status:** 완료 및 병합됨
304+
305+
**Goal:** 키보드와 닫기 동작을 옵션화해서 기본 사용성과 접근성을 개선한다.
306+
307+
**Why this first:**
308+
- 구현 난이도가 낮고 효과가 바로 보인다.
309+
- 기존 store / overlay / test 구조를 그대로 활용할 수 있다.
310+
- 문서화도 단순하다.
311+
312+
**Proposed scope:**
313+
- `Escape`로 튜토리얼 닫기
314+
- `ArrowRight`로 다음 step
315+
- `ArrowLeft`로 이전 step
316+
- 옵션으로 키보드 제어 활성화/비활성화
317+
- 옵션으로 overlay click close 활성화/비활성화
318+
319+
**Files likely involved:**
320+
- Modify: `packages/main/src/core/types.ts`
321+
- Modify: `packages/main/src/components/tutorial-overlay.tsx`
322+
- Modify: `packages/main/src/core/store.ts`
323+
- Test: `packages/main/test/tutorial-overlay.test.tsx`
324+
- Modify: `README.md`
325+
- Modify: `packages/document/src/pages/docs/tutorial.mdx`
326+
- Modify: `packages/document/src/pages/docs/tutorial-overlay.mdx`
327+
328+
**Acceptance criteria:**
329+
- 옵션이 켜져 있을 때 `Escape`, `ArrowLeft`, `ArrowRight`가 기대대로 동작한다.
330+
- 옵션이 꺼져 있으면 기존 버튼 기반 동작만 유지된다.
331+
- overlay click close 동작이 옵션으로 제어된다.
332+
- 관련 테스트와 문서가 추가된다.
333+
334+
**Result:**
335+
- `Options``keyboardNavigation`, `closeOnOverlayClick` 옵션 추가
336+
- overlay가 열려 있을 때만 `Escape`, `ArrowLeft`, `ArrowRight` 전역 keydown 처리 추가
337+
- 첫 step에서 `ArrowLeft`는 no-op이고, 마지막 step에서 `ArrowRight`는 기존 완료 동작을 유지
338+
- `input` / `textarea` / `select` / `contenteditable` 포커스 중 단축키를 무시하도록 보정
339+
- backdrop click close를 opt-in으로 추가하고 highlight / info box 클릭은 close와 분리
340+
- `packages/main/test/tutorial-overlay.test.tsx`에 keyboard / backdrop click close 회귀 테스트 추가
341+
- README 및 docs 예제를 새 옵션 계약과 맞게 업데이트
342+
- `pnpm -C packages/main test`, `pnpm -C packages/document build`, `pnpm build` 통과
343+
344+
### Candidate B: Add Highlight Padding And Overlay Behavior
345+
346+
**Suggested worktree:** `codex/add-highlight-padding-and-overlay-click-behavior`
347+
348+
**Status:** 다음 추천 작업
349+
350+
**Goal:** 이미 타입에 존재하는 `highLightPadding`를 실제 위치 계산에 반영하고 overlay UX를 다듬는다.
351+
352+
**Why this next:**
353+
- 현재 옵션 타입과 실제 동작이 어긋나 있다.
354+
- highlight 박스가 target element에 너무 딱 붙어 보이는 문제를 해결할 수 있다.
355+
356+
**Proposed scope:**
357+
- `highLightPadding`를 rect 계산에 반영
358+
- viewport 경계에서 info box 위치 보정
359+
- 필요하면 highlight border radius와 padding 동기화
360+
361+
### Candidate C: Add Promise API
362+
363+
**Suggested worktree:** `codex/add-promise-api`
364+
365+
**Status:** 후속 후보
366+
367+
**Goal:** 튜토리얼 완료/취소 시점을 소비자가 await할 수 있도록 Promise 기반 API를 추가한다.
368+
369+
**Why later:**
370+
- 가장 제품 가치가 크지만 상태 전이와 close reason 설계가 필요하다.
371+
- `tutorial.open()` 반환형 변경과 문서화가 뒤따른다.
372+
373+
**Proposed scope:**
374+
- `tutorial.open()`이 Promise를 반환
375+
- 완료 / 건너뛰기 / 강제 종료를 구분하는 resolve payload 정의
376+
- docs와 examples에 async usage 추가

0 commit comments

Comments
 (0)