マスター契約生成ツール は何をしますか?
1つのマスターテンプレート、相手先ごとに1つの小さなスペック、1つのドラフトビルドステップ。 生成ツールは出力を常にDRAFTとラベル付けします。完成したテンプレートから生成されたドキュメントも同様です。変換の成功は、アーティファクト生成の成功を示すものであり、法的な完全性、契約締結の権限、送信または署名の準備ができていることを意味するものではありません。実行済み契約により、指定された機会を通知によって追加することが許可される場合があります。その権限は、スケジュールAワークフローを使用する前に確立されている必要があります。
使用する場合
- フレームワーク契約(NDA、紹介料またはソーシング料、非回避、マスターサービス)を、同じ条件といくつかの相手先固有フィールドで、多くの相手先に発行する場合。
- 取引が時間の経過とともに追加され、そのたびに契約を再作成することがボトルネックになっている場合。
- ドキュメントが追跡可能なソースから再現可能であり、差分が取れ、手動編集がない必要がある場合。
- 署名欄が自動化によって配置され、安定したページレイアウトが必要な場合。
仕組み
テンプレート
{{PLACEHOLDER}} フィールドを含む単一のマークダウンテンプレート。相手先固有の値はすべてプレースホルダーであり、それ以外は固定テキストです。スケルトンは references/master-template.example.md にあります。その汎用的な文を、弁護士承認済みの条項に置き換えてください。
リファレンススクリプトが埋めるプレースホルダー:
| プレースホルダー | ソース |
|---|---|
{{DATE}} | spec.date、デフォルトは本日 |
{{CP_SHORT}} | spec.short |
{{CP_LEGAL}}、{{CP_JURIS}}、{{CP_ADDR}} | spec フィールド。または、相手先が署名時に記入する場合は空白行 |
{{ROLE_CLAUSE}}、{{FEE_TITLE}}、{{FEE_CLAUSE}} | ロールテーブルから spec.role によって選択 |
{{SCHEDULE_ROWS}} | spec.schedule。または「署名時エントリなし」の行 |
{{SUPPLEMENT_CLAUSE}} | spec.supplement。末尾のセパレータ付きでレンダリング、または空 |
{{CP_SIGBLOCK}}、{{CP_SIGNER}}、{{CP_TITLE}}、{{CP_EMAIL}} | 署名ブロックフィールド。不明な場合は空白 |
スペック
相手先ごとに1つのJSONファイル:
{
"file": "AcmeSupplier",
"short": "Acme",
"role": "supplier",
"legal": "Acme Compute Ltd",
"juris": "England and Wales company",
"addr": "1 Example Street, London",
"signer": "A. Person",
"title": "Director",
"email": "[email protected]",
"schedule": [["1", "2026-09-01", "Lot A (16 nodes)", "introducer", "12 months", "standard"]],
"supplement": "the Data Processing Addendum dated 2026-09-01"
}
ドラフトには file、short、role のみが必要です。署名フィールドがない場合は、レビューと完了のために空白行としてレンダリングされます。references/spec.example.json を参照してください。
file は、AcmeSupplier や Acme Supplier のような空でないポータブルなファイル名である必要があり、ディレクトリコンポーネントを含んではいけません。ビルダーは、パス区切り文字、ドライブ/UNC 構文、制御文字、Windowsで予約されている句読点またはデバイス名、末尾のドットまたはスペースを拒否します。無効な名前は、出力を作成したり pandoc を呼び出したりする前に、サニタイズや名前変更を行うことなく拒否されます。
schedule を省略するか、[] を使用すると、「署名時エントリなし」のプレースホルダーが使用されます。指定されたスケジュールは、それ以外の場合は、6つのセルからなる配列の密な配列である必要があり、順序は次のとおりです: 番号、日付、保護された相手先またはロット、ロール、条件、手数料。各セルは有効なUnicode文字列または有限数である必要があります。意図的な空白には空文字列が許可されます。Null、ブール値、オブジェクト、ネストされたセル配列、欠落したセル、非有限数は、アーティファクトの書き込みや pandoc アクティビティの前に行/セルインデックスとともに拒否されます。ペアになっていないUTF-16サロゲートも、UTF-8出力中に置き換えられるのではなく拒否されます。絵文字などの有効な補助文字は引き続きサポートされます。
セルはプレーンテキストであり、マークダウンや HTML ではありません。ビルダーは構文文字をエンコードして、リテラルのパイプ、バックスラッシュ、バックティック、マークアップが元のフィールドに残るようにします。各 CRLF、単独の CR または LF はスペースになります。改行の前後のテキストは保持されます。その他の空白とリテラルの句読点は、レンダリングされたセルで保持されます。ソーススペックは変更されません。通常の有効なスケジュールは6つの列を保持します。不正な入力が空のスケジュールに静かに置き換えられることはありません。
ロールテーブル
spec.role は3つの文字列を選択します: 基本契約条項、手数料セクションのタイトル、および手数料条項の冒頭部分。
| ロール | 支払い者 | 条項の形状 |
|---|---|---|
| buyer | 相手先が、紹介された取引相手との取引について支払う | 相手先が、私たちを非独占的に、ソーシングおよび紹介のために任命する |
| supplier | 相手先が、紹介された取引相手との取引について支払う。私たちがプリンシパルとして購入する場合、スケジュール条件で契約する | 相手先が、私たちおよび私たちが紹介する購入者にキャパシティを提供する |
| mutual | 相手の紹介でクローズした方が支払う | どちらの当事者も紹介できる。クローズした当事者が手数料を支払う |
未知のロールはビルド時に拒否されます。
ビルド
オペレーターレビュー済みのテンプレートとスペックのみを使用してください。Schedule A 以外の通常のテンプレート置換はマークアップ対応であり、信頼できないドキュメントに対するサニタイザーではありません。Pandoc は参照されたローカルまたはリモートのリソースを読み取ることができます。このジェネレーターは、コンバーターのファイルシステムまたはネットワークアクセスをサンドボックス化しません。それらの参照を確認し、適切に制限された環境で変換を実行してください。フォーカステストは合成コンバーターを使用しており、実際の DOCX レイアウトや分離を保証するものではありません。
node skills/master-agreement-generator/scripts/build-agreement.js \
skills/master-agreement-generator/references/master-template.example.md \
specs/AcmeSupplier.json \
out/
スクリプトはプレースホルダーを埋め、スケジュールテーブルをレンダリングし、必須の DRAFT 通知付きで out/<file> MASTER.md を書き込みます。デフォルト(または --require-docx を使用)では、インストールされた pandoc が必要で、空でない通常の .docx アーティファクトを生成します。Pandoc がない場合、変換に失敗した場合、または出力がない/空の場合は、終了コード1を返します。各 pandoc プローブまたは変換は10秒に制限されています。不明、重複、または競合するフラグは終了コード2を返します。
--markdown-only を明示的に使用すると、マークダウンのみのドラフトが成功します。このモードでは pandoc をプローブまたは呼び出さず、ライブラリから docxSkipped: true を返し、e-sign ワークフロー用の DOCX を提供しません。ライブラリ呼び出し元は { markdownOnly: true } を渡す必要があります。{ pandoc: false } だけでは DOCX 要件に失敗します。結果は常に documentStatus: 'draft' を報告します。既存の生成済み DOCX は、そのマークダウンを再構築するときに削除され、変換に失敗した場合は部分的な DOCX が残らないため、以前のアーティファクトが現在の出力になりすますことはありません。両方の生成ファイルをバージョン管理から除外してください。テンプレートとスペックがソースです。
実行コピーモードはありません。この例には、意図的に未解決の角括弧で囲まれた起草指示が含まれています。{{PLACEHOLDER}} トークンを埋めても、それらの法的条項が完成するわけではありません。実行用ドキュメントを作成する前に、完成した条項、当事者の詳細、権限のある署名者、商業条件、正確なドキュメントバージョンについて、個別にレビューを取得してください。ドラフトとレビュー済みの実行コピーは、別個の記録として保存してください。DOCX 変換が成功しても、アップロード、送信、または署名が許可されるわけではありません。esign-field-placement 承認ワークフローを参照してください。
両方の出力先は、解決された出力ディレクトリの直接の子である必要があります。いずれかの出力先に既存のシンボリックリンク(壊れたリンクを含む)がある場合、DOCX 変換が無効になっている場合でも、いずれかのアーティファクトが書き込まれる前に拒否されます。通常の通常ファイルは再構築できます。制御下にある出力ディレクトリを使用してください。これらのチェックは、同時実行の悪意のあるファイルシステム変更に対する分離を提供しません。返されるアーティファクトパスは絶対パスです。
署名ページの幾何学的配置
テンプレートは、OpenXML の改ページで本文を終了し、互換性のある DOCX レンダラーで署名ブロックが新しいページを要求するようにします:
```{=openxml}
<w:p><w:r><w:br w:type="page"/></w:r></w:p>
```
署名ページの構造(当社ブロック、続いて相手先ブロック。それぞれに By、Name、Title、Email、Date が含まれます)は一貫していますが、ページネーションはテキスト、フォント、レンダラー、またはフォーマットによって変わることがあります。フィールドを配置する前に、実際のレビュー済みドキュメントとそのページ幾何学的配置を検査してください。esign-field-placement スキルを参照してください。
スケジュールA 追加ワークフロー
実行済み契約の実際の権限と通知要件を使用します:
- 機会の経済性と交渉戦略を内部の交渉/承認チャネルでレビューします。契約内容を送信する前に、コミットメントの承認を取得します。共有の相手先チャネルは内部チャネルではありません。
- 提案されたエントリ、ロール、条件、手数料、発効日が、契約の明示的なスケジュールA通知権限の範囲内であることを確認します。基本条件の変更、またはその権限外の変更には、該当する修正手続きが必要です。通知はそれ自体の例外を作成することはできません。
- 実行済み契約によって許可された受信者および通知チャネル向けの、承認済みで相手先固有の日付入り通知を作成します。有用なビジネスコンテンツを含めます: 保護された相手先またはロット、許可されたロール、商業条件、および該当する手数料。内部マージン、交渉戦略、他の当事者の経済性、システムトレース、生のエラー、内部ファイリング通知は除外します。
- 送信前に、オペレーターの承認のために正確な通知をファイルします。operator-approval-loop を参照してください。承認または参加権限がない間は、相手先チャネルで沈黙を守ってください。承認は、権限のある送信者が実際に通知を配信したという証拠とは区別されます。
- 実行済み契約の実際の要件に基づいて、権限のある配信の証拠、発効日、および異議を記録します。例示的な期間はデフォルトではありません。実行済みドキュメントは不変に保ちます。追跡されたスケジュールレコードを更新し、内部レビュー用にドラフトの統合ビューを再構築し、実行済みバージョンと承認された通知への参照を付けます。この再構築は、署名された契約を置き換えたり、法的効力を証明したりするものではありません。
例
通知文
例示的なドラフトにすぎません。これらの条件と日付は、実行済み契約がそれらを許可し、オペレーターがこの正確な受信者通知を承認した場合にのみ使用してください。
スケジュールA通知、2026-09-02
契約: 2026-08-14付の当社とAcmeとの間のマスター契約
エントリ2: ロットB、8ノード、リージョンEU-West
ロール: introducer
条件: 6ヶ月間、開始は遅くとも2026-10-01まで
手数料: standard
このエントリは本日発効します。ただし、お客様が相手先との事前関係を示す日付入りの書面による証拠をもって、10営業日以内に異議を申し立てる場合を除きます。
スペックへのエントリ追加
"schedule": [
["1", "2026-08-20", "Lot A (16 nodes)", "introducer", "12 months", "standard"],
["2", "2026-09-02", "Lot B (8 nodes, EU-West)", "introducer", "6 months", "standard"]
]
再構築し、ドラフトマークダウンの差分を確認し、統合ドラフトを、変更されていない実行済みドキュメントおよび通知証拠とともに内部記録に添付します。
相手先が署名時に自社の詳細を記入する場合
ドラフト作成時には、spec から legal、juris、addr、signer、title、email を省略して空白行をレンダリングします。個別にレビューされた実行ワークフローで、どの詳細を相手先が記入できるかを決定し、実際のフィールドを検証する必要があります。ジェネレーターは e-sign エンベロープを作成または承認しません。