コントリビュート¶
開発環境セットアップ¶
コード品質¶
リント & フォーマット¶
型チェック¶
テスト¶
コードスタイル¶
- ruff でリントとフォーマット(行長100、py311ターゲット)
- mypy --strict で型チェック
- すべての公開関数に型ヒントが必要
- 絶対に必要な場合を除きdocstringは書かない
- コメントよりも自己文書化コードを優先
アンチパターン¶
避けるべきこと:
- 正当な理由なしの
# type: ignoreやcast(Any, ...) - 空の例外ハンドラ(
except: pass) - ハードコードされたプロバイダーキー
- 単純で明白な関数へのdocstring
プロジェクト規約¶
設定優先度¶
新しいエージェントの追加¶
src/theoria/agents/your_agent.pyを作成- フェーズ追跡を持つ
YourState(TypedDict)を定義 - ノードとルーティングを持つ
StateGraphを実装 stream_*メソッドでストリーミングサポートを追加
CLIコマンドの追加¶
# cli.py 内
@app.command()
def your_command(
option: Annotated[str, typer.Option("--option", "-o", help="説明")] = "default",
) -> None:
"""コマンドの説明。"""
...
プルリクエスト¶
- フォークしてフィーチャーブランチを作成
- すべてのチェックがパスすることを確認(
ruff,mypy,pytest) - 明確なコミットメッセージを書く
- 変更内容の説明付きでPRを提出
ライセンス¶
コントリビュートすることで、あなたの貢献がWTFPLライセンスの下でリリースされることに同意します。