contract-analysis について
contract-analysis は、ServiceNow Legal Service Delivery と Contract Lifecycle Management 向けの契約レビュー用スキルです。法律チームが条項を抽出してリスクを評価し、結果を記録できます。
主な機能
- 01支払い・責任・解除条項の抽出
- 02義務と重要期限の特定
- 03高リスク条項の検出
- 04リスクレベルによる契約評価
- 05構造化されたレビュー報告書の作成
活用シーン
- 01新規契約を審査し逸脱条項を特定
- 02更新日と通知期限の確認
- 03契約ポートフォリオのリスク監査
- 04事業関係者向けに契約上の義務を要約
MCP 対応
MCP ツールで ServiceNow の契約、添付ファイル、法務ケースを検索します。法務タスクの作成、契約レコードの更新、ケースへの分析報告の記録にも対応します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill contract-analysisインストール後、Claude Code で/contract-analysisを入力して読み込まれたか確認します。
詳細
契約分析
概要
このスキルは、ServiceNow Legal Service Delivery および Contract Lifecycle Management における契約分析の体系的なアプローチを提供します。次のことに役立ちます。
ast_contractから契約レコードを取得し、関連する法務ケースをsn_legal_caseから取得する- 支払い、責任、補償、契約解除に関する条項など、重要な条件を抽出して整理する
- 契約期間全体を通じて、双方の義務と期限を特定する
- 責任の上限なし、自動更新、広範な IP 譲渡、標準外の条件など、リスクの高い条項にフラグを立てる
- 更新日、満了時期、通知期間の要件を追跡する
- 規制、データプライバシー、業界固有の義務を含むコンプライアンス要件を評価する
- 法務レビューやビジネス関係者への共有に向けて、体系化された分析レポートを作成する
使用する場面: 新しい契約の法務レビューが必要な場合、契約更新の評価時、契約ポートフォリオ全体のリスク監査時、またはビジネス関係者が契約上の義務について平易な要約を必要とする場合に使用します。
必要なプラグイン: com.sn_legal_service_delivery
前提条件
- ロール:
sn_legal_case_user、sn_legal_case_manager、contract_manager、またはsn_legal_admin - アクセス権:
ast_contract、sn_legal_case、sn_legal_task、sys_attachmentテーブルへの読み取りアクセス権 - 知識: 契約法の基礎、組織の標準契約条件、リスク許容度の基準に関する理解
- プラグイン: Legal Service Delivery (
com.sn_legal_service_delivery) を有効化しておく必要があります。オプション:契約メタデータを拡充するには、Contract Lifecycle Management を使用します。
手順
ステップ 1:契約レコードを取得する
契約をクエリして、主要なメタデータと現在のステータスを取得します。
MCP を使用する場合(Claude Code/Desktop):
Tool: SN-Get-Record
Parameters:
table_name: ast_contract
sys_id: [contract_sys_id]
fields: sys_id,number,short_description,contract_type,vendor,starts,ends,renewal_date,payment_amount,total_cost,state,terms_and_conditions,auto_renew,notice_period,assigned_to,department,contract_administrator,parent_contract
REST API を使用する場合:
GET /api/now/table/ast_contract/[contract_sys_id]?sysparm_fields=sys_id,number,short_description,contract_type,vendor,starts,ends,renewal_date,payment_amount,total_cost,state,terms_and_conditions,auto_renew,notice_period,assigned_to,department,contract_administrator,parent_contract&sysparm_display_value=true
ステップ 2:契約書を取得する
添付ファイルを取得して、分析対象となる実際の契約書のテキストにアクセスします。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: sys_attachment
query: table_name=ast_contract^table_sys_id=[contract_sys_id]
fields: sys_id,file_name,content_type,size_bytes,sys_created_on,sys_created_by
limit: 20
order_by: sys_created_on
REST API を使用する場合:
GET /api/now/table/sys_attachment?sysparm_query=table_name=ast_contract^table_sys_id=[contract_sys_id]^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,file_name,content_type,size_bytes,sys_created_on,sys_created_by&sysparm_limit=20
添付ファイルの内容をダウンロードするには:
GET /api/now/attachment/[attachment_sys_id]/file
ステップ 3:契約の重要な条件を抽出する
次の条件カテゴリについて契約を分析します。
| 条件カテゴリ | 抽出する主なフィールド | リスク指標 |
|---|---|---|
| 支払い条件 | 金額、頻度、支払期限日数、延滞料、値上げ | 支払期限が 15 日以内、または年間値上げ率が 5% を超える |
| 責任 | 上限額、除外事項、間接損害 | 責任の上限なし、相互の上限なし |
| 補償 | 範囲、適用除外、弁護義務 | 知的財産に関する適用除外のない広範な補償 |
| 契約解除 | 解除事由、任意解除の通知期間、終了処理 | 任意解除条項なし、または 12 か月を超える拘束期間 |
| 更新 | 自動更新、通知期間、価格調整 | 通知期間が 60 日未満の自動更新 |
| 機密保持 | 期間、範囲、開示が認められる場合 | 無期限の機密保持、適用除外なし |
| 知的財産権 | 所有権、ライセンス付与、成果物 | ベンダーへの広範な知的財産権の譲渡、ライセンスの付与なし |
| データプライバシー | データの取り扱い、侵害通知、DPA | DPA なし、または侵害通知が 72 時間を超える |
| SLA/パフォーマンス | 稼働率、応答時間、クレジット、救済措置 | SLA クレジットなし、慢性的な不履行を理由とする契約解除なし |
| 準拠法 | 管轄区域、紛争解決、裁判地 | 外国の管轄区域、または強制仲裁 |
ステップ 4:リスクレベルを評価する
各条項カテゴリーにスコアを付け、契約全体のリスクレベルを算出します。
リスクスコアの基準:
- 低(1): 条項は組織の基準に準拠しており、逸脱はありません
- 中(2): 基準からの軽微な逸脱があります。文書化すれば許容可能です
- 高(3): 重大な逸脱があります。シニアカウンセルの承認が必要です
- 重大(4): 許容できない条項です。締結前に再交渉が必要です
全体的なリスクの算出:
- 単一のスコアでも重大(4)があれば、全体評価は重大です
- 平均スコアが 3.0 以上の場合、全体評価は高です
- 平均スコアが 2.0 以上の場合、全体評価は中です
- 平均スコアが 2.0 未満の場合、全体評価は低です
ステップ 5:関連する法的案件と事案を確認する
この契約またはベンダーに関連する既存の法的活動がないか照会します。
MCP を使用:
Tool: SN-Query-Table
Parameters:
table_name: sn_legal_case
query: short_descriptionLIKE[vendor_name]^ORdescriptionLIKE[contract_number]
fields: sys_id,number,short_description,state,case_type,priority,assigned_to,resolution_notes
limit: 10
REST API を使用:
GET /api/now/table/sn_legal_case?sysparm_query=short_descriptionLIKE[vendor_name]^ORdescriptionLIKE[contract_number]&sysparm_fields=sys_id,number,short_description,state,case_type,priority,assigned_to,resolution_notes&sysparm_limit=10&sysparm_display_value=true
ステップ 6:懸念のある条項にフラグを付ける
注意または再交渉が必要な条項ごとに、法務タスクを作成します。
MCP を使用:
Tool: SN-Create-Record
Parameters:
table_name: sn_legal_task
fields:
short_description: "Review unlimited liability clause - Section 8.2"
description: "Contract [contract_number] contains an unlimited liability provision in Section 8.2. Organization standard requires liability cap at 12 months of fees. Recommend renegotiation to add mutual liability cap."
legal_case: [case_sys_id]
priority: 2
task_type: contract_review
assigned_to: [counsel_sys_id]
due_date: [review_deadline]
state: 1
REST API を使用:
POST /api/now/table/sn_legal_task
Content-Type: application/json
{
"short_description": "Review unlimited liability clause - Section 8.2",
"description": "Contract contains unlimited liability. Standard requires cap at 12 months of fees.",
"legal_case": "[case_sys_id]",
"priority": "2",
"task_type": "contract_review",
"assigned_to": "[counsel_sys_id]",
"due_date": "[review_deadline]",
"state": "1"
}
ステップ 7:契約分析レポートを作成する
分析の全容を法的案件の作業メモとして記録します。
MCP を使用:
Tool: SN-Add-Work-Notes
Parameters:
table_name: sn_legal_case
sys_id: [case_sys_id]
work_notes: |
=== CONTRACT ANALYSIS REPORT ===
Contract: [contract_number] - [short_description]
Vendor: [vendor_name]
Analyst: AI Contract Analyst
Date: [current_date]
CONTRACT OVERVIEW:
- Type: [contract_type]
- Effective: [start_date] to [end_date]
- Total Value: $[total_cost]
- Auto-Renewal: [Yes/No] | Notice Period: [notice_period] days
- Governing Law: [jurisdiction]
KEY TERMS SUMMARY:
1. Payment: [payment_summary]
2. Liability Cap: [liability_summary]
3. Indemnification: [indemnity_summary]
4. Termination: [termination_summary]
5. Data Privacy: [privacy_summary]
6. IP Rights: [ip_summary]
7. SLA/Performance: [sla_summary]
RISK ASSESSMENT:
- Overall Risk Level: [HIGH/MEDIUM/LOW]
- Critical Issues: [count]
- High-Risk Items: [count]
FLAGGED CLAUSES:
1. [CRITICAL] Section 8.2 - Unlimited liability (standard: 12-month cap)
2. [HIGH] Section 12.1 - Auto-renew with 30-day notice (standard: 90 days)
3. [HIGH] Section 15.3 - No DPA attached (required for data processing)
4. [MEDIUM] Section 6.4 - IP assignment broader than industry standard
COMPLIANCE REQUIREMENTS:
- GDPR: [compliant/non-compliant] - [details]
- SOC 2: [compliant/non-compliant] - [details]
- Industry-specific: [details]
RECOMMENDED ACTIONS:
1. Renegotiate liability cap to 12 months of annual fees
2. Extend auto-renewal notice period to 90 days
3. Execute Data Processing Agreement before contract signing
4. Narrow IP assignment clause to deliverables only
RENEWAL CALENDAR:
- Contract Expires: [end_date]
- Renewal Decision Deadline: [notice_date]
- Days Until Notice Required: [days_remaining]
ステップ 8:契約メタデータを更新する
ポートフォリオ管理のため、分析結果を契約レコードに記録します。
MCP を使用:
Tool: SN-Update-Record
Parameters:
table_name: ast_contract
sys_id: [contract_sys_id]
data:
risk_level: high
review_date: [current_date]
short_description: "[original_description] [REVIEWED]"
work_notes: "Legal analysis completed. Risk level: HIGH. 4 flagged clauses require renegotiation. See legal case [case_number] for full analysis."
REST API を使用:
PATCH /api/now/table/ast_contract/[contract_sys_id]
Content-Type: application/json
{
"risk_level": "high",
"review_date": "[current_date]",
"work_notes": "Legal analysis completed. Risk level: HIGH. 4 flagged clauses."
}
ツールの使用方法
MCP ツールのリファレンス
| ツール | 使用するタイミング |
|---|---|
SN-Natural-Language-Search | ベンダー名、種類、説明から契約を検索する |
SN-Query-Table | 契約、案件、タスク、添付ファイルを構造化クエリで検索する |
SN-Get-Record | sys_id を指定して単一の契約または案件を取得する |
SN-Create-Record | フラグを付けた条項の法務タスクを作成する |
SN-Update-Record | 契約のリスクレベルとレビューのメタデータを更新する |
SN-Add-Work-Notes | 分析レポートを法的案件に投稿する |
REST API リファレンス
| エンドポイント | メソッド | 目的 |
|---|---|---|
/api/now/table/ast_contract | GET | 契約を照会する |
/api/now/table/ast_contract/{sys_id} | GET/PATCH | 契約を読み取る、または更新する |
/api/now/table/sn_legal_case | GET/POST | 法的案件を照会または作成する |
/api/now/table/sn_legal_task | POST | フラグを付けた条項のレビュータスクを作成する |
/api/now/table/sys_attachment | GET | 契約書の添付ファイルを取得する |
/api/now/attachment/{sys_id}/file | GET | 添付ファイルの内容をダウンロードする |
ベストプラクティス
- プレイブックを使用する: 一貫性を確保するため、契約の種類(SaaS、専門サービス、NDA、ライセンス)ごとに標準的な分析テンプレートを維持します
- 基準と比較する: 条項は必ず、組織で承認された契約テンプレートおよび代替案と比較します
- 逸脱を追跡する: 受け入れた場合も含め、標準条項からの逸脱はすべて記録し、ポートフォリオ全体でリスクを把握できるようにします
- 更新アラートを設定する: 自動更新の通知期限の少なくとも 90 日前にカレンダーのリマインダーを作成します
- ベンダーを相互参照する: 同じベンダーとの他の有効な契約を確認し、リスクの合計を特定します
- 秘匿特権の保護: すべての分析作業メモに弁護士・依頼者間秘匿特権の対象であることを明記します。分析の未加工データを法務以外のスタッフと共有しないでください
- 規制への認識: 管轄区域固有の要件(EU のベンダーに対する GDPR、カリフォルニア州の CCPA など)を必ず確認します
- バージョンを追跡する: 分析対象の契約書のバージョンを記録します。修正条項やサイドレターがある場合はフラグを付けます
トラブルシューティング
「ast_contract に契約レコードが見つかりません」
原因: CLM の構成によっては、契約が別のテーブルに保存されている可能性があります
解決策: clm_contract_document、sn_sm_contract、またはカスタムの契約テーブルを確認します。nameLIKEcontract で sys_db_object を照会し、契約関連のテーブルをすべて見つけます。
「契約の添付ファイルにアクセスできません」
原因: 添付ファイルの ACL によってアクセスが制限されているか、文書が外部に保存されています
解決策: itil または contract_manager ロールを持っていることを確認します。契約に文書保存用の外部 URL フィールドが参照されているかを確認します。
"ast_contract でリスクレベルフィールドを利用できません"
原因: このフィールドはカスタム追加されたものか、オプションのプラグインの一部である可能性があります。
解決方法: name=ast_contract^elementLIKErisk を指定して sys_dictionary を検索し、利用可能なリスク関連フィールドを確認します。必要に応じてカスタムフィールドを作成します。
"更新日の計算が正しくないようです"
原因: 自動更新のロジックは、カスタムの業務ルールや notice_period フィールドの形式に依存している可能性があります。
解決方法: notice_period フィールドに月数ではなく日数が保存されていることを確認します。更新日を計算する ast_contract の業務ルールを確認します:collection=ast_contract^scriptLIKErenewal を指定して sys_script を検索します。
例
例 1:SaaS ベンダー契約のレビュー
入力: 契約 CON0045678 - 「Enterprise SaaS Platform - DataCorp との 3 年契約」
分析:
- 合計金額:3 年間で 120 万ドル
- 自動更新:はい、30 日前通知(フラグ:標準の 90 日を下回っています)
- 賠償責任:料金の 12 か月分を上限とする(許容範囲)
- SLA:稼働率 99.9%、クレジットあり(許容範囲)
- データプライバシー:DPA が含まれていません(重大:GDPR への対応に必要)
- 全体的なリスク:高(DPA が不足)
対応: 契約締結前に DPA を作成し、締結するための法務タスクを作成します。
例 2:NDA のレビュー
入力: 契約 CON0045679 - 「M&A デューデリジェンスに関する AcquiCo との相互 NDA」
分析:
- 期間:3 年、終了後の存続期間は 2 年
- 範囲:取引の評価に適切に限定されています
- 残留知識条項:あり(中程度のリスク)
- 勧誘禁止:18 か月の付属条項が添付されています(要確認)
- 全体的なリスク:中
対応:
Tool: SN-Update-Record
Parameters:
table_name: ast_contract
sys_id: def456abc...
data:
risk_level: medium
review_date: 2026-03-19
work_notes: "NDA reviewed. Medium risk. Residual knowledge clause and non-solicitation rider flagged for counsel review."
例 3:契約ポートフォリオのリスク監査
入力: 「今後 90 日以内に期限切れとなるすべての契約を分析してください」
クエリ:
Tool: SN-Query-Table
Parameters:
table_name: ast_contract
query: active=true^endsBETWEENjavascript:gs.beginningOfToday()@javascript:gs.daysAgoEnd(-90)
fields: sys_id,number,short_description,vendor,ends,auto_renew,notice_period,total_cost,risk_level
limit: 50
order_by: ends
結果: 12 件の契約が期限切れとなり、そのうち 4 件は自動更新のため 30 日以内の通知が必要で、2 件はリスク評価の記録がありません。これら 6 件を優先して直ちにレビューします。
関連スキル
legal/legal-request-triage- 契約レビューの依頼を振り分けますlegal/contract-obligation-extraction- 契約から具体的な義務を抽出しますlegal/legal-matter-summarization- 契約に関連する法務案件を要約しますdocument/document-extraction- 契約書類から構造化データを抽出しますdocument/smart-documents- 契約テンプレートと文書の生成を管理します