TAKT への貢献
August 4, 2026 · View on GitHub
TAKT への貢献に興味を持っていただきありがとうございます。このプロジェクトでは TAKT のレビュー用ワークフローを使って PR の品質を確認しています。
開発環境のセットアップ
git clone https://github.com/your-username/takt.git
cd takt
npm install
npm run build
npm run lint
npm test
npm run test:it
npm run test:prompt-evals
npm run test:e2e:mock
Nix flakes を使う場合は、nix develop でこのプロジェクト用の Node.js ランタイムと Bun が入ったシェルを開けます:
nix develop
貢献の流れ
- Issue を起票 して変更内容を議論する
- 小さく焦点を絞った変更 にする — バグ修正、ドキュメント改善、typo 修正を歓迎します
- 新しい振る舞いには テストを含める
- PR 提出前に TAKT レビューを実行する — 必須ではなく推奨(下記参照)
事前議論なしの大規模リファクタリングや機能追加はレビューが困難なため、お断りする場合があります。
PR 提出前に
1. CI チェックをパスする(必須)
npm run build
npm run lint
npm test
npm run test:it
npm run test:prompt-evals
npm run test:e2e:mock
npm test は unit gate です。integration・regression・performance テストは npm run test:it、決定的な OpenCode prompt smoke suite は npm run test:prompt-evals で実行します。npm test -- <test-file> は、指定した各 source test を unit、parallel integration、serial Git、serial workflow のいずれか1つへ振り分けます。選択された runner は順番にすべて実行され、最初に失敗した子プロセスの終了コードを返します。リリース担当者は、全 provider の E2E suite を含む完全な release path を npm run check:release で検証できます。
E2E テストの実行方法と前提条件は E2E テスト概要 を参照してください。
2. TAKT レビューを実行する(推奨)
TAKT レビューの実行は任意ですが推奨です。問題を早期に発見でき、サマリーを貼るとレビュアーの助けになります。コードを自動改変しない読み取り専用の review-takt-default の利用をおすすめします。入力内容からレビューモードを自動判定します:
# PR モード — PR番号を指定してレビュー
takt -t "#<PR番号>" -w review-takt-default
# ブランチモード — ブランチのmainとの差分をレビュー
takt -t "<ブランチ名>" -w review-takt-default
# 現在の差分モード — 未コミットや直近の変更をレビュー
takt -t "review current changes" -w review-takt-default
.takt/runs/*/reports/review-summary.md のレビューサマリーを確認してください。結果が REJECT の場合は指摘に対応し、誤検知や意図的な設計判断であればその理由を残してください。サマリーの PR への投稿は歓迎しますが必須ではありません。
3. CodeRabbit のコメントに対応する
CodeRabbit が PR をレビューした場合は、各コメントについて対応すべきかどうかを判断し、対応すべきものに対応してください。すべてのスレッドを Resolve してください — 変更を加えた場合も、対応しないと判断した場合も(その場合は理由を一言残す)Resolve します。未対応・未 Resolve のまま放置しないでください。
PR コメントコマンド(権限制限あり)
コメントコマンドは有料の AI API クレジットを消費するため、権限で制限しています。/review はリポジトリオーナー・組織メンバー・コラボレーターのコメントに反応し、/resolve・/ci・@takt はオーナーのみに反応します。外部コントリビューターの PR ではこれらのコマンドは反応しません(ワークフローが起動しません)が、バグではなく想定どおりの挙動です。通常の CI はすべての PR で自動実行されます。追加の実行が必要だと思う場合は、コメントで依頼してください。
コードスタイル
- TypeScript strict mode
- ESLint によるリンティング
- 巧妙なコードより、シンプルで読みやすいコードを優先
Instruction / facet 変更時の canary
InstructionBuilder や builtins/{lang}/facets/instructions などプロンプト組み立てに影響する変更は、ユニットテストでは捕まらない「弱いモデルのツール呼び出し不安定化」を引き起こすことがある(実例: 台帳が空の段階への異議申告ガイド注入で implement が連続失敗)。変更時は実プロバイダでの canary 実行を推奨する。
npm run build
npm run canary:coder -- --provider opencode --model ollama-cloud/qwen3-coder-next
小さな implement 1走を現行の指示組み立てで実行し、完走とツールエラー数を確認する。PR の必須ゲートではない(実プロバイダのコストがかかるため)。
ライセンス
貢献いただいたコードは MIT ライセンスの下でライセンスされることに同意したものとみなされます。