1–50 人スケールの内部ドキュメントサイト構造ベストプラクティス — 3 モデル Deep Research 調査
調査日: 2026-05-27 調査者: [email protected] 目的: ADR-0079 (engineering/corporate 物理サイト分離) 一度目失敗の振り返り。1–3 人 → 50 人スケールで AI 生成主体・Cloudflare Pages ホスティングの内部ドキュメントをどう構造化すべきか、業界事例ベースで判断材料を集める 調査モデル: Claude Opus 4.7 (Managed Agents) / Gemini Deep Research (deep-research-preview-04-2026) / OpenAI o3-deep-research 個別結果: Claude / Gemini / OpenAI 関連 ADR: ADR-0079 (engineering/corporate サイト分離 — 初回失敗)
0. 調査の動機
bizlp は現在 1–3 人体制で 546 ページの内部ドキュメントを Cloudflare Pages で運用、週 ~15 ページのペースで増加中。AI 生成 (Claude Code / Gemini / OpenAI 経由のパイプライン) が主たる執筆手段。ADR-0079 で engineering / corporate (ITGC・戦略) を物理サイト分離する案を試みたが、ビルド・デプロイ複雑性により挫折。再挑戦の是非と、人数フェーズごとの正しい構造化を判断するため 3 モデルで Deep Research を実施した。
1. 調査設問
- マルチオーディエンス・アーキテクチャ: 1 サイト + ACL / 複数物理サイト / ハイブリッド、10–50 人規模ではどれが定石か
- ガバナンス・スケーリング: 人数フェーズ (1→5→10→20→50) ごとに何を導入すべきか・最初に何が壊れるか
- AI 生成コンテンツの品質管理: 80%+ AI 執筆時の quality gate / staleness / 信頼維持の手法
- Cloudflare Pages のマルチサイトデプロイパターン: Git 連携 ×N projects / GitHub Actions + wrangler / モノレポ path 分割の比較
2. 調査結果
2.1 Claude Opus 4.7 (Managed Agents) — 488s, $2.46
主要発見:
- 「Rule of 10」: 1–15 人は単一サイト + ACL が最適。10–20 人を超えると非公式運用が破綻し CODEOWNERS /
controlled_documentフラグ / staleness 検出が必須化 - Conway's Law は両刃: ADR-0079 が失敗したのは 1–3 人時点で「分離すべきチーム境界」が物理的に存在しなかったため。チーム境界より先にサイト境界を作ると複雑性だけが増す
- 日本の Ringisho / Nemawashi: 合意形成プロセスが「1 つの共有可能 URL」を流通単位とする文化と相性が良く、統合サイトの方が実は加点要因
- AI 生成への信頼は急落中: 2025 年に AI 生成コードへの信頼度 40% → 29%。30/60/90 日後に静かに壊れる
- 5 つの quality gate: (1)
last_verified/owner/certified_for_ai等の schema-enforced frontmatter, (2) GitHub Actions cron での staleness 自動検出, (3) AI-aware prose linting + CLAUDE.md style guide, (4) リスク比例の human review, (5) writer → critic → human 多段レビュー - staleness 閾値: ADR は不変、architecture spec 90 日、research 180 日、ITGC policy 365 日、data definition 30 日
llms.txt+ Markdown content negotiation: AI agent 向けトークン消費を 90%+ 削減- Diátaxis フレームワーク: ADR→Explanation、spec→Reference、procedure→How-to、onboarding→Tutorial にマッピング。混在は AI 生成の最大失敗パターン
- Cloudflare for Teams Free: ≤50 user は $0、自然な天井とちょうど一致
- Architecture: Pages + Access (Zero Trust) で path 別 policy (
/docs/eng/*→ 全社員、/docs/corp/*→ corp チーム、/docs/itgc/*→ MFA 必須)
roadmap (4 phase): Phase 1 (now) 単一サイト + 命名規約 + MADR + llms.txt → Phase 2 (5-15) CODEOWNERS + Vale + 2 階層 Access → Phase 3 (15-30) GitHub Actions + wrangler で 2 projects + 四半期 access review → Phase 4 (30-50) 必要なら 3 site + Documentation Steward ロール
2.2 Gemini Deep Research — 627s, $1.12
主要発見:
- モノリス推奨: <50 人では「単一サイト + 論理分離」が最適。物理分離は時期尚早で CI overhead + サイロを生む
- 3 パターン整理: (1) 単一モノリス + path-based Cloudflare Access, (2) 複数 repo 物理分離 (<50 人で運用摩擦深刻), (3) Federated hub (50 人未満では over-engineering)
- Cloudflare Pages SPA default の罠: デフォルトで全 path が
index.htmlにフォールバックするため、Access で守ったはずの制限 path も内容を leak しうる。ルートに strict404.htmlを配置して厳密 404 を返す設定が必須 - 3 Tier ガバナンス: Tier 1 (1-5) founder/CTO 集中 + 任意 peer review → Tier 2 (5-15) CODEOWNERS 強制 + branch protection + Git hook で
last_modified自動付与 → Tier 3 (15-50) DevEx/Technical Writer 専任 + ITGC は multi-tier review (engineering lead + compliance officer) - J-SOX 文脈: 金商法の内部統制要件は SOX より広範。文書化された internal control の評価記録が監査対象
- AI 生成は「production software と同じ厳密さ」で扱う: 確信に満ちた hallucination の沈黙伝播が最大の運用リスク
- 必須 frontmatter schema:
owner(CODEOWNERS にマップ),last_verified(ISO 8601, Git のlast_modifiedとは別),certified_for_ai(将来の RAG が安全にインジェスト可能か) - Spec-Driven Review Workflow: AI が
last_verifiedを空のまま PR 提出 → CODEOWNERS が auto-tag → owner が Cloudflare Pages preview 環境で視覚確認 (raw diff では捉えにくい hallucinated URL や formatting error を検出) - 自動 lifecycle: GitHub Actions
actions/staleが daily でlast_verifiedを scan、閾値超過で issue 自動作成、grace period 後にcertified_for_ai: falseに降格 - 3 デプロイパターン比較: 2 Pages projects (シンプルだが parallel build & cross-ref が full URL 化) / GitHub Actions + wrangler (柔軟だが 1-3 人には overkill) / 単一 + path routing (最小複雑性だが Access の path 制限が「存在自体」は隠せない)
2.3 OpenAI o3-deep-research — 1190s, $1.53
主要発見:
- 統一サイト推奨を実証データで補強: 知識フラグメント時に 46% の社員が情報を探せず、83% が既存ドキュメントを recreate (archbee.com 引用)
- ハイブリッドが定石: 10–50 人では「1 ポータル + audience 別 navigation + access control」が経験則
- 「10–20 人」が決定的 inflection point: この帯域で tribal knowledge が「成長を能動的に遅延させる」状態に転じる (allymatter.com 引用)
- 5 フェーズ roadmap (より細粒度):
- 1–5: 書く習慣 + Markdown in Git + ADR + handbook
- 5–10: document owner 割当・基本 review workflow・access tier (HR/board のみ)・onboarding "Start Here"
- 10–20: 6 ヶ月毎 review cycle・テンプレ標準化・CODEOWNERS 自動化・Definition of Done に docs 組込・weekly 30min 「ドキュメントスプリント」
- 20–50: 種別ごとの formal approval (ITGC は CTO/compliance sign-off)・検索投資・読了率トラッキング・専任 Documentation Champion / part-time tech writer
- 「信頼されないドキュメントは無いより悪い」: 数枚の outdated ページを見ただけでエンジニアは docs を見限る。findability / accuracy / ownership が最初に壊れる
- AI 生成は draft 扱い必須: human-in-the-loop で初期は厳格に・特定パイプライン (API doc 生成等) で信頼蓄積後に段階的自動化
- 「ownership 明示」が AI 生成の決定打: 「AI が書いた = 私の責任ではない」を防ぐため CODEOWNERS で各 AI 生成 doc に owner 紐付け必須
- AI を grounding data に bind: structured input (コードコメント / 設計図 / data definition) を起点にすれば hallucination 減
- 再生成の罠: schedule で再生成パイプラインを走らせる場合、「proposed update」モードで diff を出して human approval を経るべき (human edit の上書き防止)
- 透明性ノート: 各 doc に「AI 生成 2024-06-01 / human review 2024-06-02 by Jane Doe」を記録
- 1-3 人向け推奨: 単一 Pages project 継続 + Cloudflare Access の path policy 追加で当面解決。裏で「2 top-level directory に整理 + ビルドスクリプトの section nav 対応」を進めて将来分離を容易化
3. サマリー (3-vendor 統合結論)
3.1 3 者一致点
| テーマ | 3 者合意 |
|---|---|
| 物理サイト分離は時期尚早 | 1–3 人で物理分離は overhead 過多。15–20 人で真の Conway's Law チーム境界が出るまで保留 |
| 単一サイト + 論理分離が正解 | frontmatter による audience タグ + CODEOWNERS + Cloudflare Access の path-based ACL で必要な分離は達成可能 |
| 10–20 人が決定的 inflection | この帯域で tribal knowledge / tool sprawl / ownership 欠如が顕在化する。CODEOWNERS と review workflow の導入はそれ以前に完了必須 |
| AI 生成は frontmatter schema + human-in-the-loop が必須 | owner / last_verified / certified_for_ai 等を必須化、CI で enforce、staleness を cron で自動検出 |
| Cloudflare Access は今すぐ導入 | ≤50 user 無料、自然な天井が headcount target と一致、path-based policy で段階導入可 |
| 「分離するなら」GitHub Actions + wrangler matrix が clean | Pages native の Git 連携 ×N projects は dashboard 摩擦あり。中途半端な native 連携をスキップして wrangler matrix へ |
| ADR-0079 の失敗は構造より governance 不在が真因 | metadata + ownership が無い状態で物理分離だけ進めたため複雑性が ownership 不在を増幅 |
3.2 不一致・温度差
| テーマ | Claude | Gemini | OpenAI |
|---|---|---|---|
| Diátaxis フレームワーク | 強く推奨 (AI 生成最大失敗が mode 混在) | 言及なし | 言及なし |
| 日本 Ringisho 文脈 | 単一サイト推奨の補強として強調 | 言及なし | esa.io / Notion の "company-wide 単一 platform" 文化を一行 |
| Cloudflare Pages SPA default の leak リスク | 言及なし | 強調 (404.html 配置必須) | 言及あり (Access では「存在」は隠せない) |
| roadmap 粒度 | 4 phase (Phase 1–4) | 3 tier (Tier 1–3) | 5 帯域 (より細かい) |
| AI 生成の透明性ノート | metadata 中心 | metadata 中心 | doc 本文に「AI 生成 / human review by 誰」記録を推奨 |
| 再生成パイプラインの扱い | 言及なし | 言及なし | 「proposed update」モードで diff + human approval を強調 |
| 効率優先度 | metadata schema → llms.txt → Diátaxis | 単一サイト + path Access + CODEOWNERS | 単一サイト維持 + Access policy 追加 + 裏で再構成 |
3.3 bizlp 向け結論
ADR-0079 は再挑戦せず、ADR-0079 の方針を「単一サイト + Access policy + frontmatter schema 強化」に書き換えるのが正解。 3 モデルが一致した上、ADR-0079 初回失敗の真因 (governance 不在で複雑性だけ増した) と矛盾しない。
Immediate (~30 日以内)
- 物理分離は撤回: ADR-0079 を「単一サイト + 論理分離戦略への転換」として書き換え or supersede
- Cloudflare Access の path policy 追加:
/docs/_internal/*や/docs/itgc/*等の機微パスに対し group ベースの ACL を設定 (現在は audience 切替ボタンのみで真の access control 不在) - frontmatter schema を確定:
owner/last_verified(ISO 8601) /controlled_document/generator/confidence/human_reviewedを全 doc 必須化、CI で enforce - Cloudflare Pages SPA fallback 対策: ルートに strict
404.html配置 (Gemini 指摘の leak リスク) llms.txt+ Markdown content negotiation: 546 page × 90% トークン削減で AI agent 経由のコスト下げる- MADR + Diátaxis taxonomy 採用: ADR template を MADR 標準に揃え、Diátaxis 4 mode で既存 doc を分類 (混在 doc が AI 生成精度を最も下げる)
Medium-term (3–6 ヶ月、5+ 人を視野)
- CODEOWNERS + branch protection: 単独運用でも先にパターンを敷く (chief reviewer = 自分でも entry を置く)
- GitHub Actions の staleness cron:
last_verifiedを daily scan、閾値超過で issue 自動起票 - Onboarding directory (01-first-day / 02-first-week / 03-first-month): Jr 採用準備マイルストーン (2026-04) と接続
- Spec-Driven Review Workflow: AI が
last_verified空欄で PR → owner が Cloudflare Pages preview で視覚確認 →last_verified埋めて merge
Longer-term (12+ ヶ月、10+ 人視野)
- 物理サイト分離を再評価 (恐らく 15–20 人到達まで不要)
- 分離するなら
wrangler pages deploymatrix pattern (Pages native の Git ×N projects はスキップ) - 50+ 人到達時に Cloudflare Access pay-as-you-go ($7/user/month) を予算化
- Documentation Steward ロール (専任 or rotating) を新設
Anti-patterns (今後避けるべき)
- 「将来の分離を避けるため今分離する」(ADR-0079 がまさにこれ)
- audience タグだけのクライアントサイドフィルタ (Access policy なしは leak)
- 全 doc を "internal" で一括ロック (tribal knowledge を促進)
.pages.devURL の流出 (custom domain + Access を常に front に立てる)- Diátaxis mode の 1 page 内混在
- AI 生成パイプラインの schedule 再実行で human edit を上書き
- CODEOWNERS を置くだけで "Require review from Code Owners" を branch protection に紐付けない (実効ゼロ)
- 2600 行手書き
_config.json維持 (filesystem-driven sidebar generation への移行を中期計画に)
4. コスト
| モデル | 実行時間 | トークン (in/out) | コスト |
|---|---|---|---|
| Claude (Managed Agents) | 488s | 12 / 32,603 | $2.46 |
| Gemini (Deep Research) | 627s | (非公開) | $1.12 |
| OpenAI (o3-deep-research) | 1,190s | 71,368 / 20,300 | $1.53 |
| 合計 | $5.11 |
5. 参考リンク
3 モデルとも以下の業界 source を高頻度で引用:
- allymatter.com
From 2 to 20 Employees: The Documentation Pivot Every Startup Misses— 10–20 人 inflection point の主要 source - archbee.com
Multi-Product Documentation Strategy— 46% / 83% の情報サイロ統計 - cavaro.io
How to Organize Technical Documentation for Fast-Growing Teams— quality > volume の原則 - Cloudflare Zero Trust docs — path-based Access policy 設計
- GitLab Handbook —
controlled_documentパターン (Claude) - Diátaxis (diataxis.fr) — 4-mode フレームワーク (Claude)
- Morningstar Investor Bias シリーズ (注: RQ-064 で利用、本 RQ では未参照)
- MADR (adr.github.io) — Modular ADR テンプレ
各モデルの個別出典は以下に保存: