Imported from xiao1203/go-onion-grpc-template (
AGENTS.md). Install upstream withnpx skills add xiao1203/go-onion-grpc-template. Copyright stays with the author.
Agent Guidelines for go-onion-grpc-template
このリポジトリでエージェント(自動化ツール/AIアシスタント)が作業する際の補足ガイドです。本ファイルのスコープはリポジトリ全体です。
コミュニケーション
- 応答は日本語で行ってください。
Scaffold/Clear の振る舞い
make scaffold/make scaffold-allはエンティティの雛形を生成します。- 生成物のクリーンアップは
make clear <Name>またはmake scaffold-clean name=<Name>を使用してください。 - 修正点:
make clear <Name>(内部でscaffold-cleanを呼び出し)により、以下も削除されます。internal/domain/entity/<snake>.gointernal/domain/repository/<snake>_repository.go(ドメイン側リポジトリIF)internal/usecase/<snake>_usecase.gointernal/adapter/grpc/<snake>_{handler,routes}.gointernal/adapter/repository/{memory,mysql}/<snake>_repository.goproto/<snake>/とgen/<snake>/
- これにより、
internal/domain/entity/<snake>.goが残存しないようになっています。
注意事項
make clear <Name>にdrop=1を付与すると、mysqldef の--enable-dropを使った DROP の適用も行います(DB スキーマに影響)。- 重大な変更(
protoやdb/schema.sql)を行った場合は、必要に応じてmake protogenやmake migrateを実行してください。
レイヤリング方針(ドメインにRepositoryインターフェースを配置)
internal/domain/entity… エンティティ/値オブジェクトinternal/domain/repository… 永続化境界のインターフェースinternal/usecase… アプリケーションサービス(インタラクタ)。依存先は domain のみinternal/adapter/repository/{mysql,memory}… domain/repository の実装internal/adapter/grpc… ハンドラ/ルーティング
Scaffold は internal/domain/repository/<snake>_repository.go にIFを生成し、実装は adapter 側に出力します。
