크라우니울트라키보드 — ERP 세부요소 키보드 전면조작 (2026-07-17)
개요
crowny://erp 앱(8모듈)의 모든 세부요소를 키보드만으로 조작하는 오버레이 도구. 검토(실측 스펙)→구현→CDP 검증→도구화 완주. 범용 코어 + 앱 어댑터 구조라 오피스·빌딩·투데이로 확장 가능.
검토 (실측 — bundle/erp/spec/울트라키보드-스펙.md, 493줄)
- ERP 앱 keydown 리스너 전체 1개: ⌘1-8·⌘K·?·Escape만 실구현. 도움말이 광고하는 Enter/⌘⏎/J/K는 코드에 미존재(0 히트, 라이브 디스패치로 무반응 확증).
- Tab 도달 요소 전앱 1개(검색창).
<button>/[role]/[tabindex]/aria 전무 — 클릭 가능 div 268개 전부 마우스 전용.
- 근거 스크린샷 5장(spec/).
구현 (/Users/ef/crowny-ultrakey/)
- 울트라키보드.js — 범용 코어(요소 스캔·힌트 모드·그리드 내비·포커스 트랩·모드 표시기·도움말) + ERP 어댑터(synthetic MouseEvent 디스패치, fiber 비의존). 앱 번들 무수정 오버레이.
- 울트라키맵.한선 — 정책 SSOT: 키맵 테이블(mod 통합·KeyboardEvent.code — 한글 자판 무관)·충돌검사·4상 판정(티=활성화/옴=파괴적 확인/타=충돌차단/음=미매핑). STRICT 경고 0, 자체시험 31/31(메인 세션 독립 재컴파일 재현 PASS).
- 울트라키보드.한선 — 코어 순수 판정부 동반(라벨생성·트라이매칭) 10/10.
- 배포 미러: bundle/erp/bridge/울트라키보드.js(diff 동일 확인) + 동기화.sh. 배포패키징.sh가 erp/bridge 복사로 자동 커버.
- 주입: crowny-ai-content.m caUltraKeyScriptSource(L182)+WKUserScript 등록(L770, 순수 추가). make ai 에러·경고 0.
키맵 (충돌 0, 의도적 합류 2)
F=힌트 / mod+J=힌트(입력 중) / mod+G=그리드 / 방향키·Home·End·PgUp·PgDn=행 이동 / Enter=열기 / mod+Enter=결재 승인(
옴: 확인 다이얼로그 경유) / J·K=결재 모듈 한정 별칭(앱의 "미구현 약속" 그대로 이행) / Shift+/=울트라 도움말(앱 가이드 링크 보존) / Escape=힌트>그리드>팔레트·가이드 우선순위 해제. 입력 필드 포커스 중 단독키 불가로채기 가드.
검증
- CDP 12 시나리오 12/12 PASS(+설치확인 13/13): 모듈 전환·힌트 점프·그리드 행 이동·활성화·모달 트랩·__crownyErpBridge 스냅샷 어서션. 증거 스크린샷 2장(crowny-ultrakey/증거/).
- 실측 함정 4건 기록(getAttribute style 정규화·100vh 오탐·모디파이어 라벨버퍼 오인·결재 리스트 display:block) — crowny-ultrakey/CLAUDE.md.
도구화 (크라우니울트라키보드도구)
- 도구화.sh 루틴 → 4상 티 판정(고정점 수렴): crowny-toolforge/도구/크라우니울트라키보드.sh
- 학습 래칫 3건: 울트라키맵_키맵SSOT_4상판정 / 웹코드키보드_힌트모드 / 웹코드키보드_그리드내비 — 재조회 HIT 확인. 타 앱(오피스·빌딩·투데이) 적용 시 어댑터만 신규.
잔여
- WKWebView 실앱 육안 1회(현업 리포트 B6) · IME isComposing 가드(B5) · 타 앱 어댑터 확장
- 현업 투입 전 체크: 2026-07-17-현업투입전-점검리포트-크라우니AI모듈군.md 참조