# af-sboard FINAL_REPORT

生成: 2026-07-21T13:16:47+00:00
契約書: `docs/contract/AF_SBOARD_BUILD_ORDER_v1.0.md`
Git tags: p0-done, p1-done, p2-done, p3-done, p4-done, p5-done

## 1. 完了条件 3 点の充足証跡 (§1)

| # | DoD | 検証 | 証跡 |
|---|---|---|---|
| 1 | `make ci` 全緑 | tag p0-done, p1-done, p2-done, p3-done, p4-done, p5-done | tests/ (101 test) |
| 2 | REPLAY 50件 STEP11.5 到達 | REPLAY-01..03 pass | evidence/replay_metrics.json |
| 3 | FINAL_REPORT+EXTERNAL_PREREQUISITES+SHA256SUMS | 本ファイル + SHA256SUMS | 生成済 |

## 2. 実装モジュール (§4)

| Module | 状態 | Tests |
|---|---|---|
| M1 Ledger | ✅ | LGR-01..05 |
| M2 Room | ✅ | ROM-01..05 |
| M3 Adapter | ✅ | ADP-01..05 |
| M4 Meeting Engine | ✅ | ENG-01..08 |
| M5 Audit Gate | ✅ | AUD-01..05 |
| M6 Research Broker | ✅ | RES-01..06 |
| M7 Memory Context | ✅ | MEM-01..05 |
| M8 Doc Projector | ✅ | PRJ-01..04 |
| M9 Cost Manager | ✅ | CST-01..04 |
| M10 Secretary | ✅ | SCR-01..03 |
| M11 S-Force Connect | ✅ | SFC-01..03 |

## 3. リプレイ実測 (§6 REPLAY)

`evidence/replay_metrics.json` を参照。50 件 mock 会議で全て STEP1→STEP11.5 到達 (reach_rate=1.0)。
少数意見保持率 = 実測値。コスト平均は §7 の合成中心値 ($1.335/会議) を暫定表示 (measured=false)。
実測較正は M9 の実キー投入後に更新する (§7)。

## 4. 未解決事項・既知の制約

- 実 LLM API 呼出しは mock (§9 の EPR-01..04)。`.env` に鍵投入 + `AF_SBOARD_LIVE_*=1` で切替。
- Google Docs / Workspace OAuth は mock (§9 EPR-05)。
- Ubuntu 26.04 の Python 3.12 は uv 経由で導入 ([[DECISIONS]] 参照)。
- docker/gh 未導入。§9 の EPR-07/08 として計上。

## 5. 人間の次アクション (実キー投入手順)

1. `.env` をコピー: `cp .env.example .env`
2. 4 プロバイダ鍵を投入 (ANTHROPIC_ADMIN_API_KEY / OPENAI_API_KEY / GEMINI_API_KEY / XAI_API_KEY)
3. GCP プロジェクト設定: Docs/Sheets API 有効化 → OAuth 作成 → ID/シークレットを .env に投入
4. `AF_SBOARD_LIVE_*=1` を立てて `make ci` 再実行
5. 実測較正: `make replay-run` を live モードで再走 → M9 の `cost_calibration.yaml` に自動書出し

## 6. 納品物 SHA-256 一覧

- `README.md`  `20c51c8b90dbc70defd1f5decab1d52256a84976efd704e6a8ca13577d2b5d9b`
- `CLAUDE.md`  `7ad6ffb7a3d2370bb065d2093e7130f35fba2a98ed988c63b7fd899f3d0846b0`
- `DECISIONS.md`  `c60d4fae99fbcc0eb615701e7a40e8174004c67f670e01308250d7ae78b24eb6`
- `EXTERNAL_PREREQUISITES.md`  `68ca354f31956c68666fb57b2ee56877409de00f6d7180e076a75cea76a6b53a`
- `FACTS.md`  `086acacd702c8385c57151a30e826ce75d3314c96069cee83a0222b320355602`
- `docs/contract/AF_SBOARD_BUILD_ORDER_v1.0.md`  `3a5d358ba5946716155edad79b7edc013667bdb47c78bbf73de7082b45e09020`
- `docs/contract/SHA256SUMS_af_sboard.txt`  `70c26f4549cac4730562f5cbe92e5b8717ab90e6c6e712aca3b6663b894d9322`
- `evidence/intake_hashes.txt`  `f22ae071d6b267ce58b68844129f7119310c43974c5718a17a064c089bf700dd`
- `evidence/fact_check_report.json`  `29d7027172dfa18966af85e2ca324d6fdd9e07173dd0e2005a01dd8db3d8060e`
- `evidence/replay_metrics.json`  `b28e5211d3080f1cb880191ef3de2621fef80073d6862521802543bf0a31cfac`
- `evidence/replay_solo_comparison.md`  `e027581e00f814575f6bbdf5914cbb8bc98fc262a8853e16ba2e367bc798613f`
- `evidence/replay_manifest.sha256`  `85f7a5b42d75f4f20b2cc71df0641127980903551d63a19ee4772f0bf8db24b7`
- `Makefile`  `6c9df2a24fd5558418732271ece70b728d92815a80aa9abace27f0ea67e9c4f3`
- `pyproject.toml`  `8c63f42a69d3cb84bc9801a7354cbd7d25949e4fdd280c8a7ddc2ee7c44e9c5a`
- `config/registry.yaml`  `5d4fd7dcf5cf5d0705d2e34fd625c652c1668999dac8d720f65abf36050ce7c9`
- `config/research.yaml`  `807150d727ce98816e6a9bb7dc60213b9963230b6d00c64a99dea5f2cbadfdec`
- `config/context.yaml`  `783ac714f3484f0be9049b758fc9222aa1062d6eb6d4cf5ff79842872beb5a00`
- `config/cost.yaml`  `cec857f96e8163d09c5e21e759409c9a27f9536c986e69734da10ea596869fe6`

（完全一覧は `SHA256SUMS` を参照）
