Skip to content

Commit 896e87a

Browse files
committed
Add CLAUDE.md for project guidelines
1 parent be665a3 commit 896e87a

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## プロジェクト概要
6+
7+
マルチ言語・マルチAIによる競技プログラミング学習リポジトリ。各問題に対して**2×3×3マトリックス**(2 AIプロバイダー × 3言語 × 3ドキュメント階層 = 18ファイル)で成果物を生成する。
8+
9+
## 開発コマンド
10+
11+
```bash
12+
# セットアップ
13+
make setup # venv + Jupyterカーネル設定
14+
make install # pip + bun install
15+
16+
# テスト
17+
make test # pytest + vitest 両方実行
18+
bunx vitest run # JS/TSテストのみ
19+
bunx vitest run path/to/file.test.ts # 単一テスト
20+
21+
# リント・フォーマット
22+
make lint # ruff + black + prettier + eslint
23+
make fmt # ruff --fix + black + prettier
24+
bunx prettier -c . # prettier チェックのみ
25+
bunx prettier -w . # prettier 修正
26+
27+
# 実行
28+
bunx tsx path/to/file.ts # TypeScript実行
29+
make lab # JupyterLab起動
30+
```
31+
32+
パッケージマネージャは**Bun**`npm`ではなく`bun install`を使用。
33+
34+
## アーキテクチャ
35+
36+
### 6階層ディレクトリ構造
37+
38+
```
39+
{Domain}/{Subcategory}/{Platform}/{Problem}/{AIProvider}/{Artifact}
40+
```
41+
42+
- **Domain**: `Algorithm/`, `DataStructures/`, `Mathematics/`, `SQL/`, `Shell/`, `Concurrency/`
43+
- **Platform**: `leetcode/`, `hackerrank/`, `atcoder/`, `codeforces/`
44+
- **AIProvider**: `Claude Sonnet 4.5/`, `Claude Code Sonnet 4.6 extended/`, `gpt 5.1 thinking customized/` など
45+
- **Artifact**: `*.py`, `*.ts`, `*.js`, `README.md`, `README.html`, `README_react.html`
46+
47+
**例外**: `JavaScript/` ディレクトリは LeetCode 30-Day JS Challenge 専用で、上記6階層に従わない。`SQL/` ドメインはAIプロバイダーが`gpt/`単一フォルダで`.ipynb`形式。
48+
49+
### デュアルAI実装哲学
50+
51+
- **Claude実装**: 競技最適化、型アノテーション信頼、単一メソッド、50-150 LOC
52+
- **GPT実装**: 本番堅牢性、ランタイム検証、複数メソッド、80-200 LOC
53+
54+
### 3階層ドキュメントシステム
55+
56+
| ファイル | スタック | 用途 |
57+
| ------------------- | ------------------------------- | ------------------------------------------------------------------------------------ |
58+
| `README.md` | 純粋Markdown | 5セクション構造(Overview / Algorithm / Complexity / Implementation / Optimization) |
59+
| `README.html` | Prism.js + Tailwind CSS | ステップコントロールUI、SVGフローチャート |
60+
| `README_react.html` | React 18 UMD + Babel Standalone | リアルタイム入力操作、AI比較 |
61+
62+
### コード構造パターン
63+
64+
**Python** (Claude): `class Solution: def methodName(self, ...) -> ReturnType:`
65+
**TypeScript**: `function functionName(...): ReturnType { ... }`
66+
**JavaScript**: `var functionName = function(...) { ... }; module.exports = { functionName };`
67+
68+
## 依存関係ポリシー
69+
70+
- **Algorithm/DataStructures/Mathematics**: 標準ライブラリのみ(`typing`, `collections`, `itertools`, `math`, `heapq`)。外部ライブラリ禁止
71+
- **JS/TS実装**: ビルトインのみ。lodash等の外部ライブラリ禁止
72+
- **SQLドメインのみ**: Pandas/NumPy許可(`.ipynb`形式)
73+
74+
## コードスタイル
75+
76+
- **TypeScript**: `strict: true`, `noImplicitAny: true`, target ES2022
77+
- **Prettier**: semi, singleQuote, tabWidth: 4, printWidth: 100
78+
- **Python**: ruff + black
79+
80+
## SVGフローチャートガイドライン
81+
82+
`.agent/workflows/svg_flowchart_guidelines.md` に詳細あり。主要ポイント:
83+
84+
- `refX` はarrowhead長未満に設定(arrowheadがノードに隠れる問題を防止)
85+
- viewBoxに30-50pxのpadding追加
86+
- Prism.jsコピーボタンはTailwindのpreflightで消えるため `!important` オーバーライドが必要

0 commit comments

Comments
 (0)