Skip to content

ベストプラクティス

仕様

宣言的に書く、物語的にではなく。 contract:invariant:test:failure: のようなセクションを使う。番号付きステップや散文は使わない。エージェントは速く読み、精確な宣言に従う。

実装に影響する決定だけを閉じる。 plan に引き渡す前に解決すること:契約、データ形状、失敗モード、テスト基準。哲学的な議論や「あれば良い」機能は deferred または Working notes に残す。

コードはパスで参照し、貼り付けない。 仕様は何を作るかについての決定であり、どう作るかのウォークスルーではない。

計画

タスクは30〜60分。 エージェントが推論できるほど原子的に。大きすぎると可視性を失い、小さすぎるとオーバーヘッドが勢いを殺す。

受け入れ条件は実行可能。 各タスクの受け入れ条件はCI/人間が検証できるものでなければならない:テスト名、コマンド、またはスクリプト。曖昧にせず、理想論にしない。

[parallel] は本当に独立している場合のみマーク。 共有状態、エラー処理、または閉じていない契約があるタスクは並行ではない。過剰マークは壊れたマージにつながる。

Gitワークフロー

RED-GREEN-refactorサイクルごとに一回コミット。 思考を履歴に残す。後でデバッグするときに役立つ。

各サイクル後にドキュメントを同期。 コミット直前。待つと何を変えたか、なぜ変えたかを忘れる。

説明的なブランチ名を使う。 feature1 ではなく feat/oauth-github。複数のworktreeがある時にナビゲートしやすい。

大規模プロジェクト

マイルストーンが≥3つある場合はロードマップを使う。 最初から全部計画しようとしない。現在のものだけ plan して、学習しながらスタブを更新する。

現在のマイルストーンを明確にマーク。 M1に ← 今詳細に計画 で意図を示す。ship後、M2を計画する前にマーカーを移動する。

M1後にマイルストーンを修正することを想定。 最初のマイルストーンが残りのコストを教えてくれる。それが要点だ。

デバッグ

まず隔離し、次に仮説を立てる。 最小の再現まで絞り込む。症状が消えるまでコードを削る。その後「なぜ」を問う。

一度に一つの変数だけ変える。 並行仮説は魅力的だが、どの変更が修正したかわかりにくくなる。

テスト

実装ではなく契約をテストする。 契約が「成功時に200を返す」と言うなら、それをテストする。「X関数を呼ぶ」や「データベースYから読む」ではない。

内部のモックなし。 外部境界をモック:HTTP、DB、ファイルシステム。自分のコードをモックするのは実際のバージョンが遅いか非確定的な場合のみ。

いつ諦めるか

前提が本質的に変わったら、止めて再探索する。 解こうとしている問題がもはや問題でないなら、無理に進めない。発見ノートに試みと理由と学びをマークする。

マイルストーンのゴールが≥50%ずれたら、設計に戻る。 計画を延長しない。新しい方向を認め、再開する。

ドキュメント同期

Living docsは事実、staging docsは草稿。 ship 後、仕様はliving docsに移動する。コードのテストとコメントは両方と現在の状態を保つ。

READMEは最初の仕様。 コードと一致しなければ、PRはレビューで失敗する。同じルールがすべての公開契約に適用される。

Released under the MIT License.