# TechLog UI migration baseline ## Source provenance - Source path: `/home/donghyeon/workspace/techlog-studio-frontend` - Inspected: 2026-08-15 (Asia/Seoul) - Git revision/status: unavailable. The supplied source directory is an exported checkout with no `.git` metadata; both `git rev-parse HEAD` and `git status --short` report that it is not a Git repository. The source path and the byte checksums below are the reproducible provenance available for this baseline. ## Approved copied assets | Source and target-relative path | SHA-256 | | --- | --- | | `public/favicon.svg` | `e6d2e59b7b5bbb0342e0fb496dfc262decbfe4426bbb7b047aec8d467d1dc6f7` | | `public/media/fetch-strategy-boundary.svg` | `b07926823ed77fc200f962a1f64a440e130cefa6bed31144b611612af9b02606` | Only these two SVGs are approved for this baseline. They must remain exact byte-for-byte copies of the source assets. The evidence key `fetch-strategy-boundary` resolves to `/media/fetch-strategy-boundary.svg` with dimensions `1080 × 420`, trigger label `Fetch Join과 Batch Fetch 비교 다이어그램 크게 보기`, and dialog label `Fetch Join과 Batch Fetch의 페이징 경계 확대`. ## Required dependency pins | Package | Exact version | | --- | --- | | `pretendard` | `1.3.9` | | `@fontsource/ibm-plex-mono` | `5.3.0` | | `unified` | `11.0.5` | | `remark-parse` | `11.0.0` | | `remark-gfm` | `4.0.1` | | `remark-directive` | `4.0.0` | No Next.js, Vinext, or Cloudflare package is part of the migration baseline. ## Expected route inventory | Layout | Route ID | Path | | --- | --- | --- | | PUBLIC | `TECH_LOG_HOME` | `/` | | PUBLIC | `TECH_LOG_EXPLORE` | `/explore` | | PUBLIC | `TECH_LOG_EXPLORE_KIND` | `/explore/:kind` | | PUBLIC | `TECH_LOG_CASE` | `/cases/:slug` | | PUBLIC | `TECH_LOG_REFERENCE` | `/references/:slug` | | PUBLIC | `TECH_LOG_QUESTION` | `/questions/:slug` | | PUBLIC | `TECH_LOG_TOPIC` | `/topics/:slug` | | PUBLIC | `TECH_LOG_PROJECTS` | `/projects` | | PUBLIC | `TECH_LOG_PROJECT` | `/projects/:slug` | | PUBLIC | `TECH_LOG_PROJECT_RECORDS` | `/projects/:slug/records` | | PUBLIC | `TECH_LOG_PROJECT_DECISIONS` | `/projects/:slug/decisions` | | PUBLIC | `TECH_LOG_PROJECT_ACTIVITY` | `/projects/:slug/activity` | | PUBLIC | `TECH_LOG_RELEASES` | `/releases` | | PUBLIC | `TECH_LOG_RELEASE` | `/releases/:version` | | PUBLIC | `TECH_LOG_PROFILE` | `/profile` | | PUBLIC | `TECH_LOG_SEARCH` | `/search` | | STUDIO | `TECH_LOG_STUDIO_HOME` | `/studio` | | STUDIO | `TECH_LOG_STUDIO_DOCUMENTS` | `/studio/documents` | | STUDIO | `TECH_LOG_STUDIO_DOCUMENT_NEW` | `/studio/documents/new` | | STUDIO | `TECH_LOG_STUDIO_DOCUMENT_EDIT` | `/studio/documents/:id/edit` | | STUDIO | `TECH_LOG_STUDIO_DOCUMENT_VALIDATION` | `/studio/documents/:id/validation` | | STUDIO | `TECH_LOG_STUDIO_DOCUMENT_PREVIEW` | `/studio/documents/:id/preview` | | STUDIO | `TECH_LOG_STUDIO_DOCUMENT_PUBLISH` | `/studio/documents/:id/publish` | | STUDIO | `TECH_LOG_STUDIO_PUBLICATIONS` | `/studio/publications` | | STUDIO | `TECH_LOG_STUDIO_PUBLICATION_PREVIEW` | `/studio/publications/:publicationEventId/preview` | | STUDIO | `TECH_LOG_STUDIO_NOT_FOUND` | `/studio/*` | | PUBLIC | `NOT_FOUND` | `*` | ## Source stylesheet inventory - `app/globals.css` - `app/studio.css` - `app/studio-editor.css` - `components/studio/workflow.module.css` - `components/studio/publication-flow.module.css` The inventories in this document are human review baselines. Automated coverage is intentionally limited to the two SVG byte contracts, evidence asset lookup behavior, and the package manager's frozen-lockfile verification.