Skip to content

Commit 18f1fdd

Browse files
authored
Merge pull request #205 from deflis/agents-md
Add repository guidelines in AGENTS.md
2 parents d08b6e0 + 0ab1327 commit 18f1fdd

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

.github/instructions/review.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
excludeAgent: "coding-agent"
3+
---
4+
5+
# Review Instructions
6+
7+
レビューは日本語で回答してください。

AGENTS.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Repository Guidelines
2+
3+
## プロジェクト構成とモジュール整理
4+
- ライブラリ本体は `src/`(Node 向け `index.ts`、ブラウザ向け `index.browser.ts`、共通実装 `index.common.ts`、ビルダー類や Narou API 実装が置かれます)。ユーティリティは `src/util/`
5+
- テストは `test/` に機能別の `*.test.ts``mock.ts`(MSW による API モック)を配置。ビルド成果物は `dist/`(コミット対象外)が生成されます。
6+
- ドキュメントは TypeDoc 生成物として `docs/` に出力(`docs:clean` でクリア)。設定ファイルは `tsconfig.json``eslint.config.mjs``vitest.config.ts`、ビルドは `tsup.config.ts`
7+
8+
## ビルド・テスト・開発コマンド
9+
- 依存取得: `pnpm install`(pnpm>=8, Node>=16)
10+
- 全チェック: `pnpm run check`(lint + 型チェック + テスト)
11+
- ビルド: `pnpm run build`(tsup で ESM/CJS/ブラウザ向け出力) / 型のみ: `pnpm run check:build`
12+
- Lint/フォーマット: `pnpm run check:lint` / 自動修正: `pnpm run format`
13+
- テスト: `pnpm run test`(Vitest、V8 カバレッジレポート出力)
14+
- ドキュメント: `pnpm run docs`(clean→typedoc→api.json→llms.txt)
15+
16+
## コーディングスタイルと命名
17+
- TypeScript/ES2020、strict モード。モジュール解決は bundler ベース、ESM 前提。
18+
- ESLint + @typescript-eslint + Prettier(`eslint.config.mjs`)。ファイル名はケバブケース、型・クラスは PascalCase、関数/変数は lowerCamelCase。インデント 2 スペース、セミコロンあり。
19+
- ビルダーはメソッドチェーンで引数を組み立てる設計を踏襲すること。Narou API エンドポイントやパラメータは `params.ts` の型に従う。
20+
- fetch 実装 (`narou-fetch.ts`) と JSONP 実装 (`narou-jsonp.ts`) で同一の抽象 API (`narou.ts`) を満たす構造。共通処理は `index.common.ts` に寄せ、新規 API を追加する際は共通型→抽象→個別実装の順に拡張する。
21+
- ブラウザ向けコードでは JSONP の script 挿入周りでグローバル汚染を避けるため、既存ユーティリティ(`util/` 配下)を再利用する。
22+
23+
## テスト指針
24+
- Vitest を使用し、MSW で外部 API をモック。新規機能は成功系とエラー系を `test/<feature>.test.ts` に追加し、ビルダーのチェーン結果・クエリ生成を検証する。
25+
- カバレッジはデフォルトで text/json/json-summary を出力。ローカルで失敗を防ぐため、`pnpm run check` を PR 前に実行。
26+
- 通信仕様変更時はモックレスポンスと期待型をセットで更新し、`mock.ts` のシナリオを増やして後方互換を確認する。非決定的な値を扱う場合はスナップショットより型ベースの検証を優先。
27+
28+
## 設定・セキュリティ・リリースTips
29+
- 環境要件: Node 16 以上、pnpm 8 以上。CI 互換を保つため LTS 系での動作確認を推奨。
30+
- 外部 API は公開エンドポイントだが、追加で秘密鍵を使う処理を導入しないこと。テストやサンプルで個人情報・トークンを埋め込まない。
31+
- 公開前に `dist/` を再生成し、`package.json``files` に含まれることを確認。`prepack` は format→build を実行するため、ローカルで失敗しない状態に整えてから publish/リリース作業を行う。

0 commit comments

Comments
 (0)