プロジェクト構成

トップレベル構成

jpyc-tipjar-widget/
├── src/                  # Source code
├── docs/                 # Internal design documents
├── sphinx-docs/          # Public documentation (Sphinx)
├── .steering/            # Steering workflow documents
├── .github/workflows/    # CI/CD workflows
└── CLAUDE.md             # Development conventions

ソースコード構成

src/
├── Entry.res          # public entry (default export, ~variant prop)
├── Theme.res          # styles aggregated per variant
├── bindings/          # minimal bindings to external libs (Viem / BrowserEthereum / QRCode / Clipboard)
├── domain/            # pure values and logic (Chain / Jpyc / TipAmount / PaymentUri)
├── effects/           # side effects (WalletProvider abstraction / MetaMaskProvider)
└── components/        # UI (TipJar / AmountSelector / ConnectButton / TxStatus / QrFallback)

ReScript はインソースコンパイルされるため、各 .res ファイルには隣接する .res.js が存在します。各レイヤーの責務については アーキテクチャ を参照してください。

バイリンガルドキュメント

ドキュメントはバイリンガル(英語 + 日本語)です。英語が正(正本)であり、日本語は同一の変更内で従って更新します:

  • README.md(英語、正本)↔ README.ja.md(日本語)

  • sphinx-docs/ の英語ソース ↔ sphinx-docs/locale/ja/.po 翻訳(英語ソースを編集した後に make update-po を実行してください)