doc-authorlisted
Install: claude install-skill Forest-Project-Lab/doctrine
# doc-author
## 役割
型付き文書(ICD を含む)を作り、更新する。型・置き場所・フロントマターを正す。満たす要求は §2 の `R1`・`R3`・`R6`・`R7`(要求番号は §2 の登録簿で定める)。
ICD もこのスキルが書く(ICD 専用スキ���は作らない)。ドメインのフォルダと各層は、その型の文書を最初に書くときに、ここで生成する(§3.7「空の足場を先に作らない」)。
## 委ねる先(決定論は scripts と登録簿へ)
- `templates/` のテンプレート。ICD は `templates/icd.md.tmpl`、他の型も付録Bのテンプレートを使う。
- `${CLAUDE_PLUGIN_ROOT}/scripts/_frontmatter.py` — フロントマターの形を読んで確かめる。
- §3.2(型→置き場所→既定 `status`→`llm_context`)・§3.3(`status` の語彙)・§3.4(メタデータ)の登録簿が唯一の正本である。規則をスキル本文やコードに二重定義しない(§3)。
- 書いたあと PostToolUse のリンタ(`docs-linter.py`)が動く。その `additionalContext` の指摘に従って自己修正する。
- `doc-review`(スキル)— 文章規範と一覧外カルクの判断。文書を著したら回す(手順 11)。
## 手順
1. 文書の型を決める(§3.2)。既存の型で表せるなら、新しい型を作らない(「空の型を先に作らない」)。
2. ドメインを決める。フォルダが無ければ、ここで遅延生成する(§3.7)。`doctrine_docs/<domain>/` と、この型が要る層のフォルダ(`spec/`・`decisions/`・`implementation/`・`test/`・`research/`・`archive/`)だけを作る。空の層を先に作らない。
3. ファイル名を `<型コード>-<連番>-<短い主題>.md` で決める(日付は `ISO 8601`、日本語ファイル名・空白・版番号の埋め込みは禁止、§3.7)。`id` をファイル名と一致させる。
4. フロントマターを §3.4 で埋める。Level 2 以降の必須は `id・title・type・domain・status・owner・updated・sources`。既定の `status` と `llm_context` は §3.2 から引く。`DECIDED`・`WATCH` には必須の `review_by` を足す。`depends_on`・`impacts` は Level 3 以降、`canonical_for` は Level 4 以降。
5. ICD を書く経路(§3.5/付録A)。一ドメインに `<domain>/ICD.md` 一つ、型は `ICD`。宣言するのは三つだけ。公開する用語(用語辞書への参照)・正本である事実(`canonical_for` のトピック)・データ契約。ICD に内部実装は書かない。ICD を変えるときは、依存する全ドメインの合意が要ると利用者に伝える。
6. 依存の規律(`R7`/§3.6)。`depends_on` を付けるとき、ドメイン間の依存は相手��メインの ICD 宛だけ許す。ドメイン外の非 ICD 宛が要るなら、その相手の ICD 宛へ張り替える。Edit や MultiEdit より Wri