プロジェクト構成¶
トップレベル構成¶
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を実行してください)