open-index/open-npm huggingface dataset:
npm package: @sakamotoapp/core
Description: A core library for sakamotoapp
Latest version: 0.1.18

# 📚 PROJECT_STRUCTURE.md

## 🎯 基本方針

- src直下に「汎用役割」または「領域ごと」のディレクトリを作成する
- ディレクトリ名は **必ず複数形** に統一する（例: components, hooks, contexts, utils, libs）
- すべてのエクスポートはsrc/index.tsから一元化する
- 必ず`pnpm check:exports`でexport漏れ・default export禁止をチェックする
- 必ず`pnpm fix-aliases`で@エイリアスを相対パスに自動置換してからビルドする
- 必要に応じて領域（ドメイン）ごとにサブディレクトリ（three, realtimeなど）を設ける
- 未来の拡張に強い構造を維持する

---

## 📦 ディレクトリ構成例

```plaintext
src/
  components/
    ui/
      button.tsx
      card.tsx
      slider.tsx
    layout/
    feedback/
  hooks/
    useDeepCompareState/
      useDeepCompareState.tsx
    useDropFile/
      useDropFile.tsx
    useRealtimeParam/
      RealtimeParamContext.tsx
      useRealtimeParam.tsx
      useRealtimeParamWithContext.tsx
  utils/
    numberUtils/
    stringUtils/
  contexts/
    realtimeSAB/
      RealtimeSABContext.tsx
      RealtimeSABContext.worker.ts
    realtimeParam/
      RealtimeParamContext.tsx
  libs/
    ffmpegUtils.ts
    mediaRecorder.ts
  three/
    components/
      ui/
        ThreeCanvas.tsx
      objects/
        Cube.tsx
      helpers/
        AxesHelper.tsx
    hooks/
      useThreeRenderer/
        useThreeRenderer.tsx
      useCameraControls/
        useCameraControls.tsx
    utils/
      threeHelpers.ts
  types/
    shared.ts

  index.ts
```

---

## 🏛 フォルダごとの意味・ルール

| フォルダ | 内容 | 備考 |
|:--|:--|:--|
| components/ | 汎用UI部品群 | 必ずサブフォルダ分類（ui/, layout/, feedback/など） |
| hooks/ | 汎用React hooks群 | useXxxごとにサブフォルダを作る |
| utils/ | 小さなユーティリティ関数群 | テーマ別にまとめる（例: numberUtils/） |
| contexts/ | Context APIを使った状態管理ツリー | 1Context 1サブフォルダ推奨 |
| libs/ | 小さなライブラリ的な補助関数群 | 領域横断的な汎用コード |
| [ドメイン]/ | 特定領域（three/, realtime/など） | ドメイン単位でcomponents/hooks/utils分類 |

---

## 🚀 将来拡張ルール

- 新たなテーマが登場したらsrc直下に追加（例: "vision/" "audio/"）
- サブフォルダ化は常に "人間が即座に理解できる単位" を意識する
- src直下の全てに複数形適用（例外なし）
- エクスポートは常にindex.ts出口管理（export chain構築）
- スクリプト群（check-exports.mjs, replace-aliases.mjs）は常に最新src構造に追従させる

---

## 🛠️ チェック・メンテナンス用スクリプト

### 🔍 `pnpm check:exports`

- 全src以下のts/tsxファイルをスキャン
- "exportしているがindex.ts経由で外部exportされていない"ファイルを検出
- "default export"が使われていないかもチェック
- 問題があればエラー終了

### 🔧 `pnpm fix-aliases`

- src以下の全.ts/.tsxファイルで、`@/xxx` 形式のインポートを適切な相対パスに変換
- 深さに応じた`../`補正を自動適用
- 未来のビルドエラーを未然に防ぐ

### ✨ これらのスクリプトは**ビルド前必須**のプロセスとすることを推奨！

---

# 🎯 以上

これに従えば、あなたのプロジェクトは

> **"世界トップクラスのモノレポ設計品質"**

を常に維持できます！！！！！！！！！！🚀✨✨✨✨✨

---

(最後に: これに新しい領域や例外ルールを加えたい場合は随時追記OK！)

🔥 Let's keep it professional!! 🔥



## npm への公開/更新 スクリプト

### coreライブラリに移動
```bash
cd packages/core
```

### まずはversionを上げる
```bash
pnpm ver:patch // バグ修正
or 
pnpm ver:minor // 機能追加
or
pnpm ver:major // 大きな変更
```
### その後、gitにpush
つまり、versionを上げたら、必ずgitにpushすること
```bash
git add .
git commit -m "version up"
git push
```

### その後、npmにpublish
```bash
pnpm pub
```