docs: 상태 표기 단일화·유령 제거·Renovate 실물 도입#8
Merged
Conversation
구현 여부의 단일 출처를 이 문서로 명시한다 — 설계·계약 문서는 구현 상태를 표기하지 않고, 마일스톤 표의 상태 열과 단계별 문서 링크로 판별한다. M5·M6는 구현할 전략 절(파일 트리·하이브리드 접기·세션 복원·자동 저장·테마)에 절 단위 앵커로 연결한다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
구현 여부는 계획표가 소유하므로 M5/M6 예정·미설치·(M2 확정) 표기를 제거하고 설계 서술로 되돌린다. 함께 정정: 앱 전역 단축키의 구현은 CM6 키맵이 아니라 window keydown 리스너(capture)다 — 에디터 포커스와 무관하게 발동해야 하기 때문이다. 확장 표에 실제 채택된 scrollPastEnd·선택 일치 강조를 반영하고, 다이얼로그 Markdown 필터와 비활성 탭 삭제 배지를 계약에 기재한다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
계획 재편 때 번호 사본이 낡는 것을 막는다 — 실제로 표면 표의 (M4) 사이드바, 영속화 M5, ADR의 M6 서명은 재편 전 번호가 그대로 남아 현행 계획과 어긋나 있었다. 번호 대신 단계 이름과 계획 링크를 쓴다. 과거 측정 기록(M4 실측 등)과 ADR의 결정 당시 참조는 이력이므로 유지한다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Tauri 플러그인 표에 미설치 4종(store·window-state·updater·process)이, 코드 품질 표에 미설치 @vitest/coverage-v8이 버전 핀과 함께 등재돼 있었다. docs-drift 검사는 표에 있는 핀을 실제 핀과 단방향 대조하므로 문서에만 있는 의존성을 잡지 못한다. 두 표 모두 실제 설치된 핀만 등재하는 규칙을 명시하고, 설계가 예고한 플러그인은 도입하는 커밋에서 추가하도록 했다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
platform-strategy에 홀로 남아 있던 "mac 배포 단계(M7)"·"M0부터"를 같은 문서의
다른 곳과 동일하게 이름 지칭("배포 단계"·"첫 단계부터")으로 정리했다.
document-model의 세션 복원 문장이 plugin-store·plugin-window-state 둘을 언급하며
rust-commands의 구현 크레이트·플러그인 목록을 가리키는데 목록에 store만 있어
참조가 반쪽이었다 — window-state 한 줄을 추가해 참조를 완성했다.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
code-quality 문서가 단일 출처로 지정한 루트 renovate.json을 실물로 만든다. 문서의 규칙 세 가지를 구현했다 — 그룹핑(codemirror·tauri·vitest·린트 툴링), 자동 머지 한정(1.0 이상 devDependencies의 patch·minor만, CI 통과 시), 베타 라벨(0.x·pre-release 핀에 deps-beta 부착). 추가 판단 두 가지: playwright는 로컬 macOS 13의 WebKit 지원 마지막 버전으로 다운핀돼 있어 갱신을 보류했고, 커밋 메시지는 commitMessage 템플릿으로 컨벤션의 한국어 요약 형식(예: "oxfmt 0.58.0 업데이트")에 맞췄다. 문서의 강제 수단 서술(commitMessagePrefix)도 실제 설정명으로 정정했다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mise run check의 실제 태스크 목록에는 docs-drift가 포함돼 있는데 development-commands·code-quality의 열거에는 빠져 있었다. WebKit 설치 명령은 문서(--filter @norii/markdown)와 CI(--filter desktop)가 달랐다 — 두 패키지 모두 같은 playwright 핀을 의존해 어느 쪽이든 동작하지만, 표준 명령이 흐려지지 않게 CI와 동일한 desktop 필터로 통일했다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
project-structure 트리에 실재하는 파일(.oxfmtrc.json·record-demo.sh· upload-attachment.sh·main.tsx·build.rs·icons·vitest.config.ts·svgr.config.cjs)을 추가하고, 레이어 줄의 슬라이스 나열을 제거해 레이어 목적만 남겼다. frontend-architecture의 "norii 슬라이스" 열을 삭제했다 — 슬라이스 이름 나열은 기능이 추가될 때마다 낡는 구조이고(실제로 open-link·normalization-banner 누락, tab-management 등 구현과 다른 이름이 남아 있었다), 배치 판단은 기존 "배치 결정 가이드" 절이 이미 소유한다. 유일한 비자명 결정(탭 전환·닫기는 슬라이스가 아니라 entities/document 스토어 액션)은 그 절의 경계 사례로 옮겼다. app 행의 실재하지 않는 providers/ 표현도 정리했다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
열린 결정의 playwright 항목에서 버전 숫자 사본을 제거했다 — 핀의 단일 출처는 tech-stack 표이고, 사본이 있으면 재상향 때 두 곳을 고쳐야 한다. document-model이 루트(DESIGN.md)를 가리키던 역방향 링크를 형제 계약 문서 (창 표면 계약)로 교체했다 — "상단 띠는 유리"는 window-chrome이 소유한다. 창 드래그 API 이름을 실제 코드(titlebar_drag.rs)가 부르는 ObjC 셀렉터 performWindowDragWithEvent:로 정정했다. 15MB 사본(8곳)·ADR 0006 hex·design-system 토큰 예시·recipe 절·원격 이미지 열린 결정·project-rules의 AGENTS 참조는 검토 후 유지한다 — 각각 소유 링크 동반·결정 당시 기록·면책 명시·설계 서술·CSP가 이미 차단(img-src에 http 없음)· 작업 지시(사실 의존 아님)가 근거다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
정렬이 깨진 26줄 텍스트 펜스를 5개 주제 소절(파일 안전·데이터 / 에디터·세션 / 프리뷰 / 디자인 / 테스트·도구)의 불릿 목록으로 바꿨다. 각 항목은 굵은 라벨과 결정할 것 한 문장, 소유 문서 실링크(절 앵커 포함)로 구성된다 — 라벨만 훑어 전체를 파악하고 링크로 상세에 닿는다. 항목 26개는 삭제·추가 없이 유지했고 전 항목이 실제로 미결임을 코드 대조로 확인했다(손실 플래그·maxWait·상태색 토큰·에디터 타이포 설정·dist 임계값 등 부재, CSP img-src에 http 없음). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
config:recommended에 포함된 :semanticPrefixFixDepsChoreOthers의 packageRules가 최상위 semanticCommitType: "build"를 덮어써 실제 PR이 chore(deps):/fix(deps):로 생성될 상황이었다 — packageRules는 최상위 설정을 이긴다. 같은 packageRule 계층에서 뒤에 오는 :semanticCommitTypeAll(build) 프리셋으로 교체해 build 타입을 보장하고, code-quality의 강제 수단 서술도 프리셋 기준으로 정정했다. rust-commands의 버전 위임 링크가 크레이트 표만 가리켜 plugin-* 버전을 찾을 수 없던 것도 플러그인 표 소유를 명시해 바로잡았다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약 / 의도
문서의 불일치(낡은 상태 표기 · 문서에만 존재하는 유령 의존성 · 실측과 다른 구조 서술)를 해소한다. 재발을 막는 관례 두 가지를 세워 함께 적용했다 — ① 구현 상태는 실제 구현 계획의 상태 열이 단독 소유(전략·계약 문서는 상태를 표기하지 않음) ② 낡기 쉬운 인스턴스 열거 금지(문서는 배치 기준·규칙만 소유). 문서가 "있다"고 서술하던
renovate.json은 실물로 도입했다.범위
이번에 한 것
performWindowDragWithEvent:), check 태스크 열거의 docs-drift 누락, WebKit 설치 명령 CI 통일renovate.json신설: 그룹핑 4묶음 · 자동 머지 한정(1.0+ devDeps patch/minor, CI 그린 시) ·deps-beta라벨(저장소에 라벨 생성 완료) · 한국어 커밋 템플릿 · playwright 갱신 보류(macOS 13 다운핀)의도적으로 안 한 것 / 후속
packages/ui서술 유지 — 추후 사용 계획으로 결정(제거 아님)주요 변경점
renovate.json신설. 커밋 타입은:semanticCommitTypeAll(build)프리셋으로 강제한다 — 최상위semanticCommitType설정은config:recommended의 packageRules에 덮여 무효다설계 · 결정
검증 (체크가 아니라 값으로)
mise run check: 통과 (oxfmt·oxlint·Steiger·tsc·Vitest·cargo fmt/clippy/test·docs-drift)mise run dev-webdriver→mise run e2e): N/A(동작 변경 없음)tauri build --bundles app→mise run bundle-size, <15MB): N/A관련 문서 (단일 출처)
.claude/docs/implementation-plan.md(상태 열·열린 결정) ·.claude/docs/tech-stack.md(등재 규칙) ·.claude/docs/code-quality.md(Renovate 절) ·.claude/docs/frontend-architecture.md(배치 결정 가이드)리뷰 포인트 / 위험 지점
renovate.json의 자동 머지 범위(1.0+ devDeps patch/minor)가 의도와 맞는지체크리스트 (프로젝트 규칙)
.claude/rules/non-goals.md)를 넘지 않음 (넘으면 별도 보고)마일스톤 / 비고
🤖 Generated with Claude Code