# shared/ — 해시 기반 공통 자산 캐시

여러 프레임에서 등장하는 자산(배경 텍스처, 아이콘, 아크 등)을 **해시 파일명**으로 한 번만 저장한다.

## 파일명 규칙

Figma MCP 가 자산 URL을 다음 형식으로 제공:
```
http://localhost:3845/assets/849658071be46a26936e8666e3722b2dd548aee7.png
```

URL 끝의 hash (`849658071be46a26936e8666e3722b2dd548aee7`) 그대로 파일명 사용:
```
shared/849658071be46a26936e8666e3722b2dd548aee7.png
```

## dedup 작동 원리

Figma는 같은 자산을 다른 노드에서 사용해도 동일 hash로 서빙한다. 따라서:

```
프레임 A: bg_texture (hash: 849658...) → 다운로드 → shared/849658....png
프레임 B: bg_texture (hash: 849658...) → 이미 있음 → 다운로드 스킵
프레임 C: 새 아이콘   (hash: f05ebf...) → 다운로드 → shared/f05ebf....png
```

매 변환마다 다운로드 전 `[ -f "shared/${hash}.${ext}" ]` 체크.

## 의미 매핑

해시 파일명은 사람이 못 읽으므로 의미 라벨을 따로 관리:

1. **블록별 매핑**: `block-tests/{slug}_assets.txt`
   ```
   849658071be46a26936e8666e3722b2dd548aee7.png   bg_texture
   f05ebf15a1125b6c5809f9ffa35b4e4e750687d3.png   arc_top
   ```

2. **전체 카탈로그**: `blocks_index.md` 의 "발견된 공통 자산" 표

## HTML 참조

블록 HTML은 `block-tests/{slug}.html` 위치이므로 상대 경로:

```html
<img src="assets/shared/849658071be46a26936e8666e3722b2dd548aee7.png">
```

## legacy 자산

이전 변환물 ([bim-goals-3circles](../../bim-goals-3circles.html)) 의 자산은 `block-tests/assets/frame_1171281211/` 에 그대로 두었음. 새 변환부터는 shared/ 만 사용.
