ブロックに分ける
ウォーターフォール・スウォームでは、設計図をブロックに分けてから作ります。分ける軸は「どのデータの持ち主か」です。1 つのデータの持ち主は、1 つのブロックだけです。
分け方の決まり
- データの持ち主で分ける:1 つのデータの持ち主は 1 つのブロックだけです。ほかのブロックは約束の型(型のファイル)で使い、相手のコードは使いません。
- B01 はいつも土台と結合:殻・窓・設定・ログイン・共通の部品・動き・コア(DB・出来事の記録・旗・言葉・約束の型の道具)と、品質と結合の役(T9)を持ちます。横断のスレッドも B01 のプロジェクトに置きます。
- 開発のスレッドは縦に持つ:画面からコアとデータまでを 1 本で持ちます。独立した作業は、サブエージェントで同時に進めます。
- 共有のファイルに全員が 1 行ずつ書く形にしない:登録は「置けば集まる」形にします(下の表)。
- これ以上は分けない所で止める:もっと細かくすると、1 つのデータを 2 つのブロックで持つことになり、「持ち主は 1 つ」が崩れます。画面が少ないブロックでも、データの持ち主が別なら分けたままにします。
約束の型
ブロックの間で渡すデータの型を、約束の型と呼びます。
- 型は足すだけです。変える時は、新しい名前の型にします。
- 持ち主は 1 つです。持ち主の無い型は作りません。
- 型は、持ち主のブロックの Rust の
contract.rsに書き、そこから画面の TypeScript の型を作ります。型が変わっていないかは、ファイルごとのハッシュで確かめます。 - ほかのブロックは型を読むだけです。書き換えたい時は、持ち主のブロックに依頼の札で頼みます。
BeesBuild 自身の型の例は、階層とデータの型にあります。
置けば集まるコードの置き場
ブロックごとの物は、決まった置き場に置けば、土台(B01)が自動で集めます。共有のファイルに 1 行ずつ足す必要はありません。
| 物 | 置き場 | 集め方 |
|---|---|---|
| Rust | crates/hb-<鍵>/ | ワークスペースの crates/* に入る。Tauri への登録は hb-plugin.toml から作る |
| 画面 | features/<鍵>/routes.tsx | 殻が import.meta.glob で集める。左のメニューは features/<鍵>/nav.ts から |
| データ | crates/hb-<鍵>/migrations/ | コアが順に当てる。表の名前の頭は <鍵>_ |
| 言葉 | i18n/<鍵>.json | 殻が全部を読み込む。一番上のキーは <鍵> |
| 約束の型 | crates/hb-<鍵>/src/contract.rs | packages/contracts/<鍵>/ に TypeScript の型を作る |
| 命令(IPC) | hb_<鍵>__<命令> | 出来事の名前は <鍵>.<名前> |
| 設定の点 | features/<鍵>/setup.ts | クリアマップが集める |
| データの札 | features/<鍵>/cards.ts | 共有のボードの工房が集める。札に無い数はボードに出さない |
| 通しの試験 | tests/e2e/<鍵>/ | CI が全部を流す |
<鍵> は、ブロックの短い英語の名前です(例:B27 は method)。
共有のファイルと持ち場の表
全部のブロックが使う物は、共有のファイルとして B01 が持ちます。触る時は、issue で B01 に頼みます。
| 共有のファイル | 中身 |
|---|---|
ルートの Cargo.toml・package.json・ロックファイル | 依存と版 |
tauri.conf.json と capabilities/ | アプリの殻の設定と権限 |
.github/workflows/ | CI とデプロイ |
packages/ui/ | 共通の部品と見た目の token |
crates/hb-core/ | コア |
i18n/common.json | 共通の言葉 |
| 開発ルールの元とスキルの lock | 全部のスレッドが読む決まり |
持ち場の表は、リポジトリの全部の置き場を覆います。表に無い置き場は作りません。要る時は、全体の統括に issue で頼みます。
再利用の地図
既存のコードがあるなら、ブロックに分ける前に読みます。新しいハイブの最初の段で、読む元のリポジトリ(自分のリポジトリと、つないだ組織のリポジトリ)を指定します。無ければ「ない」を 1 回押して、この段を飛ばします。
再利用の地図は、ブロックごとに使い回せるコードを並べた表です。1 行ごとに、元のリポジトリ・パス・commit・使い方・ライセンス・持ち主・同期の決まり・行き先のブロック・決めた人を持ちます。
| 使い方 | 中身 |
|---|---|
| 依存する | 元をそのまま部品として使う |
| 写して出どころを書く | vendor/<出どころ>/<リポジトリ>/ に写し、PROVENANCE.json(リポジトリ・パス・commit・ライセンス・持ち主・同期の決まり・写した日)を添える。Rust に移した物は、元と同じ答えになるかの互換の試験を tests/compat/ に置く |
| 形だけ学ぶ | コードは写さず、作りの考え方だけを使う |
- 写す物と、ライセンスの分からない物だけを、決める部屋で人が決めます。
- 出どころの書かれていない写しは、T9 の点検で落とします。
- 指示書には「このブロックで使い回す物」を入れます。開発の仕事は、既存のコードを読み終えてから作ります。
- 新しい関数・型・部品を書く前に、再利用の地図を探す決まりを、全部のスレッドの指示に入れます。
波
最初から全部のブロックを起こさず、少なく始めて足します。Geniam Time では、4 つのブロックで始め、2 日目に 4 つ足しました。
| 波 | 中身 |
|---|---|
| 1 の波 | 土台と、ほかのブロックが今日から使う物(ハイブ・設計図・段取り・ハーネス・統括・アカウント・エージェント・決める部屋・レビューなど) |
| 2 の波 | 広がり(統合・エコシステム・発信・連携・資源・計算・守り・コントロールセンター・デザインなど) |
- 波は「いつプロジェクトを作るか」だけの話です。指示書には、時間の言葉を書きません。
- 2 の波のブロックの型を 1 の波が先に使う時は、2 の波のブロックに「型と仮の実装を最初に出す」と指示に書き、1 の波は仮の実装で先に作ります。
- 2 の波を足す前に、全体の統括が「開いている PR の扱い」(今の形で入れてよく、そこから先は新しいブロックが持つ)を決めて、人に聞きます。
少なく分けたい時
アカウントやスレッドの数を減らしたい時は、ブロックを合わせます。
| 案 | 合わせ方 |
|---|---|
| 最大 | データの持ち主ごとに全部分ける |
| 中 | 近いブロックを 2 つずつ合わせる(例:レビューと統合、資源と計算) |
| 小 | 8 ブロック前後にまとめる(Geniam Time や Xroid Dev の大きさ) |
合わせる時も、データの持ち主の表(型と持ち主)は変えません。減らすのはプロジェクトの数だけです。一つの元の割り振りを直せば、指示書は作り直せます(指示書を一つの元から作る)。
例:BeesBuild 自身の 27 のブロック
BeesBuild は、BeesBuild 自身もウォーターフォール・スウォームで作ります。設計の時の分け方は次のとおりです。
| ブロック | 名前 | 波 | 開発のスレッド |
|---|---|---|---|
| B01 | 土台と結合 | 1 | 5(T9 を含む) |
| B02 | プロジェクトとハイブ | 1 | 4 |
| B03 | 設計図と構想 | 1 | 4 |
| B04 | ウォーターフォール・スウォームの段取り | 1 | 3 |
| B05 | ハーネスの接続とエンジン | 1 | 5 |
| B06 | 統括とハイブ・バス | 1 | 4 |
| B07 | アカウント・利用枠・枠の財布・ランニングコスト | 1 | 6 |
| B08 | BeesAgent と AI の道 | 1 | 5 |
| B09 | 決める部屋と人の番 | 1 | 3 |
| B10 | レビューと PR | 1 | 6 |
| B11 | 統合・公開・みんなで作る | 2 | 4 |
| B12 | エコシステムとお金 | 2 | 5 |
| B13 | 発信・分析・再設計の輪 | 2 | 3 |
| B14 | Xroid・Geniam 連携 | 2 | 2 |
| B15 | 資源(スキル・ローカルの AI・MCP・プラグイン・つなぐ) | 2 | 6 |
| B16 | 計算と保管 | 2 | 6 |
| B17 | 守りと監査 | 2 | 5 |
| B18 | 台帳と見張り | 2 | 3 |
| B19 | コントロールセンターと作業場 | 2 | 5 |
| B20 | デザインの部屋と遊び | 2 | 5 |
| B21 | 開発の速さの計測とレポート | 1 | 7 |
| B22 | 仕上げの管制(最後の詰め) | 1 | 5 |
| B23 | クリアマップ(AI と話して設定する) | 2 | 4 |
| B24 | クラウドとドメイン(Cloudflare・AWS・GCP) | 2 | 4 |
| B25 | ブラウザーと画面の操作 | 2 | 5 |
| B26 | 共有のボード | 2 | 5 |
| B27 | ビーズビルディング | 2 | 4 |
全部で 157 本(開発 123・統括 27・横断 7)、約束の型は 259 です。持ち主の無い型はありません。