このドキュメントは、一般的な AI エージェントがこのリポジトリで作業を行う際の共通方針を定義します。
- 会話言語: 日本語
- コード内コメント: 日本語
- エラーメッセージ: 英語
- コミット規約: Conventional Commits に従う
<type>(<scope>): <description>形式<description>は日本語で記載- 例:
feat: Reusable Workflow にテストステップを追加
- 日本語と英数字の間: 半角スペースを挿入
判断は必ずレビュー可能な形で記録すること:
- 判断内容: 何を決定したのかを明確に記載する
- 代替案: 他にどのような選択肢があったのかを列挙する
- 採用理由: なぜその選択肢を選んだのかを説明する
- 前提条件: 判断の前提となる条件を明示する
- 不確実性: 不確実な要素を明示する
前提・仮定・不確実性を明示し、仮定を事実のように扱わない。
book000/templates は、GitHub 上の複数プロジェクトで再利用可能なテンプレートリポジトリです。
- 目的: GitHub Actions Reusable Workflows、Dockerfile テンプレート、Renovate 設定を一元管理し、複数プロジェクト間で再利用可能なテンプレートを提供する
- 主な機能:
- GitHub Actions Reusable Workflows の提供(Node.js、Maven、Docker、Actionlint、Hadolint など 7 種類)
- Docker コンテナ化のための Dockerfile テンプレート(Node.js、Python、PHP、Puppeteer など 7 種類)
- Renovate 設定ファイルのベーステンプレート
- CI/CD パイプラインの標準化と自動テスト
- README.md の自動生成(リポジトリ構成に基づく自動ドキュメント生成)
- プロジェクト理解: リポジトリの構造と目的を理解する
- 依存関係インストール: このリポジトリには
package.jsonが存在しないため、該当しない - 変更実装: Reusable Workflow、Dockerfile、Renovate 設定などを追加・変更する
- テストと Lint/Format 実行:
- actionlint の実行:
./actionlint - Hadolint の実行:
docker run --rm -i hadolint/hadolint < dockerfiles/node-app-pnpm.Dockerfile - README.md の生成:
node scripts/generate-readme.js
- actionlint の実行:
- 言語: YAML、Dockerfile、JavaScript (Node.js)、Shell
- CI/CD: GitHub Actions (Reusable Workflows)
- コンテナ: Docker (Alpine ベースイメージ)
- パッケージマネージャー: pnpm、yarn、Maven、pip
- 品質チェックツール: actionlint、Hadolint
- 依存管理: Renovate
- GitHub Secrets や認証情報は
.envファイルやコミットに含めない。 - ログに個人情報や認証情報を出力しない。
- Reusable Workflow で使用する Secrets は、呼び出し側のリポジトリで管理する。
- このリポジトリは テンプレートの提供 が目的であり、実行可能なアプリケーションではない。
- Reusable Workflows は
workflows/ディレクトリに配置し、.github/workflows/reusable-*.ymlでラップして公開する。 - README.md は自動生成されるため、手動で編集してはならない。変更は
.github/templates.mdで行う。 - actionlint バイナリは Linux 64-bit ELF 形式であり、CI 環境で実行される。
- Renovate 設定は
renovate/ディレクトリに配置し、base.json、public.json、private.jsonで分類する。 - Docker テンプレートは Alpine ベースイメージを使用し、タイムゾーンは
Asia/Tokyoに設定する。 test-scenarios/のテストシナリオは、GitHub Actions で定期的に実行され、テンプレートの品質を保証する。