This file provides guidance to Gemini (or other Google AI assistants) when working with code in this repository.
マルチ言語・マルチAIによる競技プログラミング学習リポジトリ。各問題に対して2社 × Nモデル × 3言語 × 3ドキュメント階層で成果物を生成することを目的としています。
- パッケージマネージャ: Bun (Node.jsの代わりに
bun installなどを使用) - 言語: Python, TypeScript, JavaScript, SQL, HTML
- フロントエンドライブラリ: React 18 UMD, Babel Standalone, Tailwind CSS, Prism.js
- テスト:
pytest(Python),vitest(JS/TS) - リント・フォーマット:
ruff,black(Python) /prettier,eslint(JS/TS)
基本的に以下の6階層ディレクトリ構造に従います。
{Domain}/{Subcategory}/{Platform}/{Problem}/{AIProvider}/{Artifact}
- Domain:
Algorithm/,DataStructures/,Mathematics/,SQL/,Shell/,Concurrency/ - Platform:
leetcode/,hackerrank/,atcoder/,codeforces/ - AIProvider:
Claude Sonnet 4.5/,gpt-4o/,Gemini/など - Artifact:
*.py,*.ts,*.js,README.md,README.html,README_react.html
※例外:
JavaScript/ディレクトリは LeetCode 30-Day JS Challenge 専用であり、上記6階層に従いません。SQL/ドメインはAIプロバイダーがgpt/単一フォルダで.ipynb形式になる場合があります。
README.md: 純粋Markdown(Overview / Algorithm / Complexity / Implementation / Optimization の5セクション構造)README.html: Prism.js + Tailwind CSS を用いたステップコントロールUI、SVGフローチャートREADME_react.html: React 18 UMD + Babel Standalone を用いたリアルタイム入力操作・AI比較用UI
- Algorithm / DataStructures / Mathematics: 標準ライブラリのみ使用可能です(例:
typing,collections,itertools,math,heapq)。サードパーティ製ライブラリのインポートは禁止です。 - JS / TS実装: Node.jsやDenoのビルトインのみ。
lodashなどの外部ライブラリの使用は禁止です。 - ※例外として
SQLドメインでのみ Pandas / NumPy の使用が許可されています(.ipynb形式)。
public/index.html等のpublic/配下のファイルは、すべて自動生成される成果物です。手動での直接編集は禁止です。- 変更が必要な場合は、必ずジェネレータである
generate_index.py側を修正して再生成 (python generate_index.py) してください。
- テンプレート内JSで
innerHTMLを使用することは禁止です(セキュリティフックによるブロックを避けるため)。必ずtextContent+ DOM API を使用してください。 - HTML出力に動的な文字列を埋め込む際は、XSS防止のため
html.escape()を必須で行ってください。
file://URLでのアクセスはブロックされる前提で設計されています。- テスト等で確認が必要な場合は
python -m http.server 8765 --directory publicでローカルサーバーを起動してアクセスしてください。
in演算子と??=演算子のような特定の構文において、「Aの方がBよりも確実に軽量/高速である」といった絶対的なパフォーマンスの主張・断言は避けてください。- 代わりに、セマンティクスの違い(例:
Object.create(null)によるプロトタイプなしオブジェクトに対する純粋な存在確認)を説明するか、V8エンジンの最適化(インラインキャッシュ/IC等)によって「実行環境や状況に依存してパフォーマンスが逆転・変化する」といった中立的な補足を必ず含めてください。