こんな規約はどうだろう。

設計規約

  • モジュールの外部仕様は設計段階ですべて決定する。
    • 外部仕様に基づいたテスト仕様を設計段階で記述する。
  • 設計の項目は「確定」「未定」「任意」の三状態をとる。
    • 設計時に確定できない詳細*1を「未定」として扱う。「未定」の項目は他のモジュールの実装が進んだ後に確定させる。
    • 設計時に考慮する必要のない詳細を「任意」として扱う。「任意」の項目は実装者の創意工夫に任せる。
    • 「確定」の項目を修正する必要がある場合、他のモジュールに影響がないかどうかを確認し、設計全体を再検討することも考慮する。

コーディング規約

  • ソースコードの整形はGNU indent(Cの場合)を用いる。
    • オプション設定はプロジェクトリーダーの責任で選択する。
  • コンパイル時のエラー・警告はすべて解消する。コンパイル・オプションに'-Wall -Werror'(gccの場合)を加えること。
    • 警告項目はプロジェクトリーダーの責任で追加しても良い。
  • 静的コード解析ツールを用いて指摘点を整理する。
    • 検査項目はプロジェクトリーダーの責任で選択する。

管理規約

  • 管理システムを活用する。
    • ソースコードやドキュメントの管理にはバージョン管理システムを利用する。
    • 仕様やバグの管理にはバグ管理システムを利用する。
    • 検査結果やテスト結果の管理にはバグ管理システムを利用する。
  • レポジトリにコミットする際に自動でindent, make, lint, unit testを行う。
    • make時にエラー・警告が発生した場合、trunkへのマージを拒否する。
    • lint, unit test時の指摘はすべてテスト管理システムに登録する。

*1:性能など。