.doc_structure.yaml はプロジェクトのドキュメント配置場所と種別を宣言する設定ファイルで、forge がドキュメントのパス解決に用いる。
forge は Feature(フィーチャー) 単位で文書を管理することもできる。Feature とは、関連する仕様をグループ化した開発単位。Feature なしでも動作する。
| 開発パターン | Feature の使い方 |
|---|---|
| 追加開発 | 既存のメイン仕様に後から追加する機能群を Feature として分割する |
| アジャイル開発 | イテレーションごとに Feature 単位で開発・デリバリーする |
| 小規模プロジェクト | プロジェクト全体を1つの Feature として扱ってもよい |
Feature を使う場合、各 Feature は共通のディレクトリ構造で管理する:
specs/
{feature}/
requirements/ # 要件定義書
design/ # 設計書
plan/ # 計画書
プロジェクトのドキュメント配置場所と種別を宣言するファイル。以下のツールが共通で参照する:
- forge — レビュー対象の解決、Feature ディレクトリ検出、ドキュメント作成先の特定、検索インデックス対象パスの解決(解決結果を外部 doc-advisor に渡す)
プロジェクトルート(.git/ と同階層)に配置する。
rules と specs の2カテゴリで構成される。
# .doc_structure.yaml
# doc_structure_version: 3.0
rules:
root_dirs: # スキャン対象ディレクトリ(glob 対応)
- docs/rules/
doc_types_map: # ディレクトリ → doc_type のマッピング
docs/rules/: rule
patterns:
target_glob: "**/*.md"
exclude: [] # 除外ディレクトリ名
specs:
root_dirs:
- "docs/specs/*/design/"
- "docs/specs/*/plan/"
- "docs/specs/*/requirement/"
doc_types_map:
"docs/specs/*/design/": design
"docs/specs/*/plan/": plan
"docs/specs/*/requirement/": requirement
patterns:
target_glob: "**/*.md"
exclude: []| フィールド | 説明 |
|---|---|
root_dirs |
ドキュメントディレクトリ。*(1レベル)/ **(任意の深さ)の glob パターン対応 |
doc_types_map |
パス → doc_type のマッピング。推奨 doc_type: rule, requirement, design, plan, api, reference |
patterns.target_glob |
ファイル検索パターン(デフォルト: **/*.md) |
patterns.exclude |
除外するディレクトリ名(パス内の任意の深さでマッチ) |
specs:
root_dirs:
- docs/specs/design/
- docs/specs/plan/
- docs/specs/requirement/
doc_types_map:
docs/specs/design/: design
docs/specs/plan/: plan
docs/specs/requirement/: requirementspecs:
root_dirs:
- "docs/specs/*/design/"
- "docs/specs/*/plan/"
- "docs/specs/*/requirement/"
doc_types_map:
"docs/specs/*/design/": design
"docs/specs/*/plan/": plan
"docs/specs/*/requirement/": requirementFeature 追加時に .doc_structure.yaml の変更は不要。docs/specs/payment/design/ ディレクトリを作成するだけで自動的に検出される。
specs:
root_dirs:
- "docs/specs/**/design/"
- "docs/specs/**/plan/"
- "docs/specs/**/requirements/"
doc_types_map:
"docs/specs/**/design/": design
"docs/specs/**/plan/": plan
"docs/specs/**/requirements/": requirementdocs/specs/forge/design/ と docs/specs/forge/review-PR/design/ の両方が自動検出される。
/forge:setup-doc-structure
引数なし。
- プロジェクトをスキャンして
.doc_structure.yamlを対話的に生成・更新する - 既存 Feature ディレクトリを自動検出し glob パターンで設定する
- 推奨構成(specs / rules / reference / adr)を提示し、不足ディレクトリを
.gitkeep付きで作成する
- プロジェクトで forge を初めて使うとき
- ディレクトリ構造を大きく変更したとき
- Feature を手動で追加したとき
詳細なフォーマット仕様は doc_structure_format.md を参照。