この設計書では以下を定義する。
| フィールド | 説明 | 例 |
|---|---|---|
MNML |
固定プレフィックス。合同会社MNMLの文書であることを示す | MNML |
YYYYMMDD |
契約日(契約書に記載される契約開始日)。作成日ではない | 20260401 |
NN |
同日連番。同じ契約日の文書が複数ある場合に区別する。01から開始、ゼロ埋め2桁 | 01, 02, 03 |
同日に1件しかない場合でも連番 -01 を付けるかどうか。現状は混在している。
同日1件でも必ず -01 を付ける。例: MNML-20260316-01
MNML-XXXXXXXX-XXの16文字)-01 が冗長に見える同日1件なら連番なし。2件目が出たら -01 と -02 に振り直す。例: MNML-20260316
MNML-20260316)は、案Aを採用した場合も遡って修正しない。
今後の新規採番から統一する。既存IDは管理台帳にそのまま記録する。
| DocID | 文書 | 契約日 |
|---|---|---|
MNML-20250925-02 | (既存契約書) | 2025-09-25 |
MNML-20260316 | 森屋氏 業務委託契約書 | 2026-03-16 |
MNML-20260401-01 | (既存契約書) | 2026-04-01 |
MNML-20260401-03 | (既存契約書) | 2026-04-01 |
| ルール | 説明 |
|---|---|
| 台帳への即時記録 | DocIDを決めたら、文書完成前でも台帳に「仮採番」として記録する。これにより同日の別文書と番号が衝突しない |
| 欠番の扱い | 採番後に文書が不要になった場合、そのDocIDは欠番とする。再利用しない。台帳には「欠番」と記録 |
| 修正・更新時 | 既存文書の内容を修正してもDocIDは変更しない。契約の更新(新期間)は別のDocIDを新規採番する |
| ステータス | 意味 | 許可される遷移先 |
|---|---|---|
| 仮採番 | 番号を確保した段階。文書は未完成 | 確定 / 欠番 |
| 確定 | 文書が完成し、ヘッダーにDocIDが埋め込まれた | —(最終状態) |
| 欠番 | 採番したが文書が不要になった | —(最終状態) |
契約書(Word/PDF)の全ページの右上ヘッダーにDocIDを記載する。
| 項目 | 仕様 |
|---|---|
| 位置 | ヘッダー右寄せ |
| フォント | 本文と同じフォント、9pt |
| 色 | グレー(目立ちすぎない程度) |
| 対象ページ | 全ページ(表紙含む) |
自動化する場合、以下の方式で実装する。
| 項目 | 方針 |
|---|---|
| 使用ライブラリ | python-docx — Wordファイル(.docx)のヘッダー操作に対応 |
| 処理の流れ |
1. SharePointからWordファイルをダウンロード 2. python-docxでヘッダーのDocIDを書き換え3. SharePointにアップロード(上書き) |
| PDF出力 | ヘッダー書き換え後のWordからPDF変換(LibreOffice CLIまたはMS Graph API) |
| 入力バリデーション | DocIDが MNML-\d{8}-\d{2} の正規表現に合致するか検証 |
| 冪等性 | 同じDocIDで再実行しても結果が変わらない。既にヘッダーが正しければスキップ |
採番済みのDocIDを一元管理する台帳を運用する。
SharePointのシェアドドキュメントにExcel台帳を配置。手動でもプログラムからでも更新可能。
ops/ 配下にJSONファイルとして管理。Gitで履歴管理。
| カラム | 型 | 説明 | 例 |
|---|---|---|---|
| DocID | 文字列 | 採番されたDocID | MNML-20260401-01 |
| 文書名 | 文字列 | 契約書のタイトル | 業務委託契約書(根崎) |
| 契約日 | 日付 | 契約書に記載された契約開始日 | 2026-04-01 |
| 相手方 | 文字列 | 契約の相手方の名前 | 根崎 太郎 |
| ステータス | 文字列 | 仮採番 / 確定 / 欠番 | 確定 |
| SharePointパス | 文字列 | SharePoint上のファイルパス | 30_VDU/consulting/20_suppliers/... |
| 備考 | 文字列 | 自由記述 | — |
| Phase | 内容 | 自動化範囲 | 前提条件 |
|---|---|---|---|
| Phase 0 | この設計書でルールを定義。今後の契約書作成時はこのルールに従う | なし(全て手動) | なし |
| Phase 1 | SharePointにExcel台帳を配置。採番時に手動で台帳を更新する | 台帳のみ整備 | CEO承認 |
| Phase 2 | m-legalが契約書作成時に台帳を参照し、次の連番を自動計算。台帳への登録も自動 | 採番 + 台帳登録 | Excel台帳のMS Graph API連携 |
| Phase 3 | Wordファイルのヘッダーをpython-docxで自動書き換え。採番→ヘッダー埋め込み→SharePointアップロードまで一気通貫 |
全工程 | Phase 2 + python-docx実装 |
| # | 項目 | 選択肢 | 推奨 |
|---|---|---|---|
| 1 | 同日1件の連番ルール | A: 常に -01 を付ける / B: 省略可 |
案A |
| 2 | 管理台帳の配置場所 | A: SharePoint Excel / B: リポジトリJSON | 案A |
| 3 | 既存DocIDの遡及修正 | 連番なしの既存IDを修正するか / しないか | しない |
| 4 | 自動化の優先度 | Phase 1で止める / Phase 2以降に進む | 頻度次第 |