Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# GitHub Copilot Instructions

## プロジェクト概要
- 目的: Tomachi アイコン・絵文字・ステッカーの管理および公開
- 主な機能: アイコン・絵文字・ステッカーの保存、自動的な絵文字取得、README の生成
- 対象ユーザー: Tomachi アイコンの利用者およびメンテナ

## 共通ルール
- 会話は日本語で行う。
- PR とコミットは Conventional Commits に従う。
- 日本語と英数字の間には半角スペースを入れる。

## 技術スタック
- 言語: TypeScript
- 実行環境: Node.js (tsx)
- パッケージマネージャー: pnpm
- 主要ライブラリ: axios, sharp, yargs

## 開発コマンド
スクリプトは `.github/scripts/` 内の各ディレクトリにあります。

### fetch-tomachi-emojis
```bash
cd .github/scripts/fetch-tomachi-emojis
pnpm install
pnpm start # 絵文字・ステッカーの取得
pnpm lint # Lint 実行
pnpm fix # Lint 自動修正
```

### generate-readme
```bash
cd .github/scripts/generate-readme
pnpm install
pnpm start -- --target-emojis ../../emojis --output ../../README.md # README の生成
# もしくはヘルプを参照:
# pnpm start -- --help
pnpm lint # Lint 実行
pnpm fix # Lint 自動修正
```

## コーディング規約
- TypeScript の `skipLibCheck` は使用しない。
- 関数やインターフェースには日本語で JSDoc を記載する。
- エラーメッセージは英語で記載する。
- 既存の `eslint.config.mjs` および Prettier 設定に従う。

## テスト方針
- 現在、自動テストは導入されていません。

## セキュリティ / 機密情報
- Discord トークンなどの認証情報をコミットしない。
- ログに機密情報を出力しない。

## ドキュメント更新
- アイコンの追加時は、`generate-readme` スクリプトを実行して `README.md` を更新する。
30 changes: 30 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# AGENTS.md

## 目的
エージェント共通の作業方針を定義します。

## 基本方針
- 会話言語: 日本語
- コメント言語: 日本語
- エラーメッセージ: 英語
- コミット規約: [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)

## 判断記録のルール
- 重要な意思決定については、判断内容、代替案、採用理由、前提条件を明示する。

## 開発手順(概要)
1. プロジェクト構成と既存コードの理解
2. スクリプトディレクトリでの `pnpm install`
3. 実装および `pnpm fix` によるフォーマット修正
4. 動作確認および `pnpm lint` での検証

## セキュリティ / 機密情報
- Discord トークン等の認証情報を絶対にコミットしない。
- ログに機密情報を出力しない。

## リポジトリ固有
- アイコン画像は `icons/` に追加します。
- ステッカー画像は `stickers/` に追加します。
- `emojis.json` は `.github/scripts/fetch-tomachi-emojis` で更新されます。
- `stickers.json` は `.github/scripts/fetch-tomachi-emojis` で更新されます。
- `README.md` は `.github/scripts/generate-readme` で更新されます。
85 changes: 85 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# CLAUDE.md

## 目的
Claude Code の作業方針とプロジェクト固有ルールを示します。

## 判断記録のルール
- 判断内容の要約
- 検討した代替案
- 採用しなかった案とその理由
- 前提条件・仮定・不確実性
- 他エージェントによるレビュー可否

## プロジェクト概要
- 目的: Tomachi アイコンと絵文字の管理・公開
- 主な機能: 画像アセットの管理、Discord 絵文字・ステッカー データの取得、カタログ生成

## 重要ルール
- 会話言語: 日本語
- コミット規約: Conventional Commits
- コメント言語: 日本語
- エラーメッセージ: 英語

## 環境のルール
- ブランチ命名: Conventional Branch (`feat/`, `fix/`)
- GitHub リポジトリ調査: 必要に応じてテンポラリディレクトリに clone して検索
- Renovate PR: 追加コミットや更新を行わない

## コード改修時のルール
- 日本語と英数字の間には半角スペースを挿入
- エラーメッセージの絵文字は全体で統一
- TypeScript の `skipLibCheck` 禁止
- docstring (JSDoc) を日本語で記載

## 相談ルール
- Codex CLI: 実装レビュー、局所設計、整合性確認
- Gemini CLI: 外部仕様、最新情報確認
- 指摘への対応: 黙殺せず、必ず対応または理由を回答

## 開発コマンド
リポジトリ内の各スクリプトディレクトリ(`.github/scripts/*`)で実行します。

```bash
pnpm install # 依存関係のインストール

# 利用可能なサブコマンドや必須オプションを確認
pnpm start -- --help

# 必須オプションを指定して実行する(例)
# pnpm start -- <script-name> --input <input-path> --output <output-path>

pnpm lint # Lint 実行
pnpm fix # 自動修正
```

## アーキテクチャと主要ファイル
- `icons/`: アイコン画像ファイル
- `stickers/`: ステッカー画像ファイル
- `emojis.json`: 取得された絵文字データ
- `targetGuilds.json`: 取得対象の Discord サーバー ID
- `.github/scripts/`: 管理用スクリプト (TypeScript)

## 作業チェックリスト

### 新規改修時
1. プロジェクト構成の理解
2. 適切な作業ブランチの作成 (`feat/` or `fix/`)
3. `pnpm install` による依存関係の解決

### コミット・プッシュ前
1. Conventional Commits の遵守
2. 機密情報(Discord Token 等)の混入確認
3. `pnpm lint` でのエラー確認
4. 動作確認

### PR 作成前
1. ユーザーへの依頼確認
2. コンフリクトの有無を確認

### PR 作成後
1. PR 本文が日本語で詳細に記載されているか確認
2. GitHub Actions CI の成功を確認
3. Copilot レビューへの対応

## リポジトリ固有
- アイコンを追加した際は、必ず `generate-readme` を実行して README を更新する必要があります。
48 changes: 48 additions & 0 deletions GEMINI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# GEMINI.md

## 目的
Gemini CLI 向けのコンテキストと作業方針を定義します。

## 出力スタイル
- 言語: 日本語
- トーン: プロフェッショナルかつ簡潔
- 形式: Monospace でのレンダリングを想定した Markdown

## 共通ルール
- 会話言語: 日本語
- コミット規約: Conventional Commits
- 日本語と英数字の間には半角スペースを入れる

## プロジェクト概要
- 目的: Tomachi アイコン・絵文字のホスティングとメタデータ管理
- 主な機能: Discord 絵文字・ステッカーの自動取得、カタログ (README) の自動生成

## コーディング規約
- 言語: TypeScript
- コメント: 日本語
- エラーメッセージ: 英語
- `skipLibCheck` の使用禁止

## 開発コマンド
`.github/scripts/` 下の各プロジェクトで `pnpm` を使用します。

```bash
pnpm install

# 利用可能なサブコマンドや必須オプションを確認
pnpm start -- --help

# 必須オプションを指定して実行する(例)
# pnpm start -- <script-name> --input <input-path> --output <output-path>

pnpm lint
pnpm fix
```

## 注意事項
- 認証情報のコミット禁止
- 既存の命名規則やディレクトリ構成を優先
- README は自動生成されるため、直接編集する際はテンプレート (`.github/scripts/generate-readme/template.md`) を確認すること

## リポジトリ固有
- 新しいアイコンが追加された場合、エージェントは README の更新スクリプトを提案または実行すべきです。