| name | inheritance-calc |
| description | This skill should be used when the user asks to "calculate inheritance shares", "法定相続分を計算", "相続分を出して", "相続割合", "誰がどれだけ相続する", "遺留分", or wants to compute statutory inheritance shares from a family tree. |
| version | 2.0.0 |
法定相続分計算(inheritance-calc)
家族関係データから民法の規定に基づき法定相続分を決定論的に計算する。LLM の推論ではなく、民法の条文ロジックに従った正確な計算を行う。
計算本体は skills/inheritance-calc/calc.py(Python スクリプト)に実装されており、このスクリプトを唯一の計算エンジンとして扱う。SKILL.md 内に実行可能な Python コードは含めない。
ワークフロー
Step 1: 家族関係データの取得
以下のいずれかからデータを取得する:
- 同一会話内で
/family-tree を実行済みの場合: そのデータを使用
- ユーザーが口頭で家族構成を説明した場合: 聞き取りからデータを構築
- 戸籍謄本 PDF がある場合:
/family-tree を先に実行してデータを抽出
必要なデータ:
- 被相続人(死亡者)の特定
- 配偶者の有無・生死・放棄有無
- 子の有無・人数・生死・放棄有無(養子含む)
- 子が先に死亡している場合、その直系卑属(孫・ひ孫)の有無と生死
- 直系尊属(父母・祖父母)の生存状況
- 兄弟姉妹の有無(半血/全血の区別含む)・生死
- 兄弟姉妹が死亡している場合、甥姪の有無と生死
- 相続放棄した者がいるか(放棄 ≠ 死亡 に注意)
- 特別養子の有無(実親相続時は相続人リストから除外する)
重要: 情報が曖昧または不足している場合は、calc.py を呼び出さず、ユーザーに確認する。誤った入力で計算すると、誤った法的結論を出すおそれがある。
Step 1.5: 対応範囲外チェック(v3.3.0-iter3〜 必須)
以下のいずれかに該当する場合、本 skill は計算出力をせず、弁護士の手計算・
事件固有検討が必要である旨を案内する(出力ブロック):
以下のいずれかが当事案に該当するか?(1 つでも「はい」なら適用を見送るべき):
(a) 特別受益(民法 §903)の具体的算入額が争点 — 金額の評価自体が弁護士判断
(b) 寄与分(民法 §904-2)の主張あり — 家裁調停・審判で決まる
(c) 遺産分割協議・調停・審判による法定分と異なる分配
(d) 相続分の譲渡・放棄(民法 §905 相続分取戻権等)
(e) 胎児相続・外国法準拠(国際私法)の要素あり
該当時は「本 skill は法定相続分の計算器。上記の要因が絡む事案では手計算または
専門ソフト併用を推奨」と案内して終了する。
Step 2: 相続人の確定
skills/inheritance-calc/references/inheritance-rules.md を Read ツールで読み込み、以下の順序で相続人を確定する。
相続人の順位(民法887条・889条・890条):
- 常に相続人: 配偶者(民法890条)
- 第1順位: 子(民法887条1項)
- 子が被相続人より先に死亡 → その子(孫)が代襲相続(民法887条2項)
- 孫も死亡 → ひ孫が再代襲(民法887条3項)
- 第2順位(子がいない場合のみ): 直系尊属(民法889条1号)
- 父母が生存 → 父母
- 父母が死亡、祖父母が生存 → 祖父母(親等が近い者が優先)
- 第3順位(子も直系尊属もいない場合のみ): 兄弟姉妹(民法889条2号)
- 兄弟姉妹が先に死亡 → 甥姪が代襲相続(1代限り、再代襲不可)
相続放棄の処理(民法939条):
- 相続放棄者は最初から相続人でなかったものとみなす
- 相続放棄者の直系卑属は代襲相続しない(放棄 ≠ 死亡)
- 第1順位の全員が放棄 → 第2順位に移行
- 第2順位の全員が放棄 → 第3順位に移行
特別養子の処理(民法817条の2):
- 特別養子は実親との法律上の親族関係が終了する
- 実親の相続においては、特別養子を相続人リストから完全に除外する
- 養親の相続においては、実子と同様に扱う(入力では
adoption: "none")
Step 3: calc.py 用の入力 JSON を構築
Step 2 で確定した情報から、以下のスキーマの JSON を組み立てる。
{
"decedent": {"id": "d", "name": "甲野太郎"},
"heirs": [
{"id": "h1", "name": "甲野花子", "kind": "spouse", "status": "alive"},
{"id": "h2", "name": "甲野一郎", "kind": "child", "status": "alive", "adoption": "none"},
{"id": "h3", "name": "甲野次郎", "kind": "child", "status": "deceased"},
{"id": "h4", "name": "甲野三郎", "kind": "grandchild", "status": "alive", "parent_id": "h3"},
{"id": "h5", "name": "甲野四郎", "kind": "child", "status": "renounced"}
],
"compute_iryubun": false
}
フィールド仕様:
| フィールド | 値 |
|---|
kind | spouse, child, grandchild, great_grandchild, parent, grandparent, sibling_full, sibling_half, nephew_niece |
status | alive(生存), deceased(先死亡), renounced(相続放棄) |
adoption | none(実子/普通養子), special(特別養子 — 実親の相続では入力に含めない) |
parent_id | 代襲相続人の場合、被代襲者の id |
遺留分も計算する場合は compute_iryubun: true を設定する。
Step 4: calc.py を呼び出す
Bash ツールで以下のように実行する:
python3 skills/inheritance-calc/calc.py --json '<上で構築した heir JSON>'
出力は JSON(標準出力)。--pretty を付けると標準エラーに人間可読の表も出る。
前提条件: Step 1〜3 でデータの整合性を確認し終えていること。calc.py は入力を厳密に検証するが、法律上の論点(例: 事実婚の配偶者、胎児の扱い、相続欠格等)を判定する機能はない。これらの論点はユーザーと対話して解決しておく。
Step 5: 結果の表示
calc.py の JSON 出力を以下の形式で表示する。
## 法定相続分の計算結果
被相続人: 甲野太郎(令和5年2月14日死亡)
### 相続人と法定相続分
| 相続人 | 続柄 | 法定相続分 | 割合 |
|-------|------|---------|------|
| 甲野花子 | 配偶者 | 1/2 | 50.0% |
| 甲野一郎 | 長男 | 1/6 | 16.7% |
| 甲野良子 | 長女 | 1/6 | 16.7% |
| 甲野次郎 | 二男 | 1/6 | 16.7% |
| **合計** | | **1/1** | **100.0%** |
### 計算根拠
(calc.py の `notes` フィールドの内容をそのまま転記する)
- 民法900条1号: 配偶者と子が相続 → 配偶者 1/2、子(ライン合計)1/2。
- …
「続柄」は Step 2 で確定した情報に基づき日本語で補う(例: child → 「長男」「次男」など順序・性別に応じて)。JSON の kind をそのまま表示しない。
Step 5.5: 必須出力フッター(v3.3.0-iter3〜 code-emitted 省略不可)
v3.3.0-iter3〜: footer は calc.py が stderr に JSON として emit する。
SKILL.md は fabricate しない — stderr の calc_footer をそのまま読んで表示する:
python3 skills/inheritance-calc/calc.py --json '<input>' 2>/tmp/calc-footer.json
cat /tmp/calc-footer.json
計算結果表示の直後に、以下の文面をそのまま表示する(要約・省略・翻訳禁止):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ 本計算は民法 §900〜§904(法定相続分)に基づく決定論的補助計算である。
弁護士法第72条に基づき、本ツールは法的助言を提供しない。
提出前に必ず弁護士自身が以下を検算してほしい:
• 入力した家族関係(相続放棄・欠格・廃除の有無を含む)
• 代襲相続・再代襲の適用要件
• 特別受益・寄与分(民法 §903・§904-2)の加算/減算
• 遺言・遺産分割協議・調停による修正の有無
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 6: 遺留分の計算(オプション)
ユーザーが遺留分(民法1042条)について言及した場合、Step 3 の入力 JSON で "compute_iryubun": true を指定して再計算する。calc.py が遺留分も JSON の iryubun フィールドに含めて返す。
遺留分のルール(calc.py が自動適用):
- 遺留分権利者: 配偶者、子(およびその代襲者)、直系尊属
- 遺留分なし: 兄弟姉妹、甥姪
- 総遺留分: 直系尊属のみが相続人 → 1/3、それ以外 → 1/2
- 各人の遺留分 = 総遺留分 × 法定相続分
Step 7: /family-tree との連携
同一会話内で /family-tree が実行済みの場合:
- 家系図 HTML に計算結果を追記する(各人の名前の横に相続分を表示)
- または別途テキストで計算結果サマリーを出力する
エラーハンドリング
- 被相続人が特定できない: 「誰が被相続人(亡くなった方)か教えてほしい」
- 相続人が1人もいない: calc.py の
rank: null とメモを提示し、「相続人不存在のケースである。特別縁故者への分与(民法958条の2)や国庫帰属(民法959条)の手続を検討する必要がある」と案内する。
- 情報が不足: 不明な項目について質問する(「お子さんは何人いるか?」「ご両親は健在か?」「放棄された方はいるか?」)。
- calc.py がエラーを返した場合: 標準エラー出力の JSON にエラーメッセージがある。入力を見直して再計算する。
対応範囲外(明示的な非対応事項)
以下の論点は現バージョンで非対応である。該当するケースではユーザーに注意喚起し、弁護士(自身)の判断を仰ぐ。
- 二重相続資格(一人が複数の相続資格を併有する場合、例: 養子かつ代襲相続人)
- 胎児の相続権(民法886条)
- 相続欠格(民法891条)・廃除(民法892条)
- 寄与分(民法904条の2)・特別受益(民法903条)
- 配偶者居住権(民法1028条以下)
- 相続人不存在時の特別縁故者への分与(民法958条の2)
- 具体的な遺留分侵害額請求の金額計算(民法1046条)
二重相続資格(例: 被相続人の孫を養子にし、かつその孫の実親(被相続人の子)が先に死亡している場合)については、民法上の通説では両方の資格から相続分を受けるとされているが、本スキルでは単一資格のみ処理するため、該当ケースを検出した時点でエラーを返す。手動で各資格分を合算する必要がある。
データプライバシー
calc.py はローカル実行のみで、外部通信は行わない。ただし、Step 1 でユーザーが入力した家族関係情報は Claude API を通じて送信されるため、クライアントの機密情報を含む場合は所属事務所の AI 利用ポリシーに従うこと。
次の一手(ユーザーに提案する)
計算完了時、結果表示の後に以下を提案する:
💡 次の一手:
- 戸籍から相続関係説明図を作成: /family-tree 戸籍.pdf(まだの場合)
- 遺留分侵害額を計算: /iryubun-calc(生前贈与等があった場合)
- 遺産分割協議書を作成: /template-install → 「遺産分割協議書」を選択