- Load
deal-context.mdto get the deal code, target company, closing date, deal lead. - Load
integration-tracker.yaml(if it exists; or create it via --init). - Use the following workflow.
- Route by flag:
--init: Mode 1 — read the acquisition agreement, build the phased work plan, consent tracker--contracts: Mode 2 — import the contract list (repository or upload), tier and classify--report: Mode 3 — generate a status report--update: Mode 4 — manually update or parse an uploaded status file--export: Mode 5 — CSV or table export
- Read/write
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/deals/[代码]/integration-tracker.yaml。 - After any write: show a change summary and surface any new flags.
Matter context
Matter context. Check the practice-level CLAUDE.md for ## 事项工作区. If Enabled is ✗(the default for in-house legal users), skip the rest of this section — the skill uses practice-level context and the matter machinery is invisible. If enabled and there is no active matter, ask: "Which matter is this? Run /corporate-legal:matter-workspace switch <事项简称> or say 实务级." Load the active matter's matter.md to get matter-specific context and override rules. Output is written to the matter folder ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/matters/<事项简称>/. Unless 跨事项上下文 is 开, never read files from other matters.
Purpose
Outside counsel closes a deal. Legal inherits the chaos. This skill is the project management layer for post-closing integration — not business integration, not IT systems, not HR organization design. It is the legal workstream: consent matters, contract assignment, entity rationalization, IP registrations, equity purchase agreement obligations. It tracks what is done, what is coming due, what is blocked and what needs a decision.
Tracker files
Stored in ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/deals/[代码]/integration-tracker.yaml. Read deal-context.md to get the deal code, target company name, closing date and deal lead. From closing-checklist.yaml(if it exists) inherit any post-closing items.
# integration-tracker.yaml
metadata:
deal_code: "[代码]"
target: "[公司名称]"
close_date: "[YYYY-MM-DD]"
deal_lead: "[姓名]"
outside_counsel: "[律所和牵头律师]"
last_updated: "[日期]"
last_status_report: "[日期 或 空]"
pa_dates:
required_consents_deadline: "[YYYY-MM-DD — 从收购协议中提取]"
rep_survival_expires: "[YYYY-MM-DD]"
escrow_release: "[YYYY-MM-DD 或 空]"
earnout_milestones:
- description: "[里程碑]"
measurement_date: "[YYYY-MM-DD]"
payment_date: "[YYYY-MM-DD]"
owner: "finance" # 始终为财务——法务仅追踪日期
workplan:
day_1:
target_date: "[close_date + 7天]"
items: []
day_30:
target_date: "[close_date + 30天]"
items: []
day_90:
target_date: "[close_date + 90天]"
items: []
day_180:
target_date: "[close_date + 180天]"
items: []
required_consents: []
desired_consents: []
contracts:
source: "[存储库 / manual-upload / disclosure-schedule]"
repository_path: "[路径 或 空]"
last_imported: "[日期]"
total: 0
tier_1: []
tier_2: []
tier_3: []
tier_4: []
Work plan item structure:
- id: "W-001"
description: "[行动事项]"
phase: "[day_1 / day_30 / day_90 / day_180]"
owner: "[法务负责 / 法务支持]"
workstream: "[法务 / 人力 / 信息技术 / 财务 / 不动产 / 其他]"
priority: "[关键 / 高 / 中 / 低]"
deadline: "[YYYY-MM-DD 或 空]"
deadline_basis: "[收购协议义务 / 监管要求 / 最佳实践]"
status: "[未开始 / 进行中 / 已完成 / 受阻 / 推迟]"
blocker: "[描述 或 空]"
depends_on: "[项目 id 或 空]"
notes: ""
Consent item structure:
- id: "CON-001"
counterparty: "[名称]"
contract_type: "[客户 / 供应商 / 租赁 / 知识产权许可 / 金融/ 其他]"
required_consent: true # true = 在收购协议所需同意清单中列明
pa_deadline: "[YYYY-MM-DD]" # 仅对 required_consent: true
status: "[未开始 / 已发出接洽 / 谈判中 / 已取得 / 已豁免 / 被拒绝]"
assigned_to: "[姓名 或 空]"
outreach_date: "[日期 或 空]"
obtained_date: "[日期 或 空]"
notes: ""
Contract item structure:
- id: "C-001"
name: "[合同名称或文件名]"
counterparty: "[当事方名称]"
contract_type: "[主协议 / SaaS / 租赁 / 知识产权许可 / 劳动/ 保密协议 / 其他]"
annual_value: "[金额 或 未知]"
assignment_mechanism: "[自动转让 / 需经同意 / 含控制权变更条款 / 未提及]"
tier: 1 # 1=所需同意, 2=重大+需经同意, 3=控制权变更, 4=自动转让
required_consent: false
pa_deadline: "[YYYY-MM-DD 或 空]"
status: "[未审查 / 无需行动 / 等待同意 / 接洽已发出 / 谈判中 / 同意已取得 / 转让已完成 / 已豁免 / 被拒绝 / 控制权变更已触发]"
assigned_to: "[姓名 或 空]"
notes: ""
last_updated: "[日期]"
Mode 1: Initialize
/corporate-legal:integration-management --init [--deal [代码]]
Step 1: Load deal context
Read ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/deals/[代码]/deal-context.md. If not found: ask for the deal code, target company, closing date, deal lead and outside counsel. If deal-context.md does not exist, write it.
Read ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/deals/[代码]/closing-checklist.yaml(if it exists). Any item marked post-closing becomes a Day 1 or Day 30 work plan item (inheriting status from the closing checklist).
Step 2: Read deal inputs
A complete equity purchase agreement produces the most complete tracker. The acquisition agreement's required consents list and post-closing covenants section are the authoritative source of hard deadlines and legal obligations. But the skill can usefully initialize from any available input — a partial input produces a starter tracker the lawyer fills in, not a blank page.
What transaction artifacts do you have available? Share any that exist:
Ideal: Share purchase agreement (uploaded or a path to a connected file). I will read post-closing commitments, the required consents list, survival periods, escrow provisions, and earnout provisions.
Also useful — share any combination:
- Deal summary or term sheet (give me the key economics and deadlines)
- Integration to-do list or post-closing checklist from outside counsel
- An existing work plan or integration tracker (I will import it and continue)
- Closing checklist — if generated by the M&A cold-start skill, I will automatically from
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/deals/[代码]/closing-checklist.yamlinherit- Required consents list only (if the purchase agreement is held by outside counsel)
If you do not have any written materials: Tell me about the deal in plain language — who is being acquired, when it closed, and what the main open items are — and I will build a starter tracker from a standard Day 1/30/90/180 work plan for you to edit.
What you provide changes what you get:
| Input | What you get |
|---|---|
| Complete purchase agreement | Complete work plan + required consents with deadlines + purchase agreement dates |
| Purchase agreement + contract list | Complete tracker + tiered contract assignment list |
| Deal summary / to-do list | Standard work plan framework, with required consents as placeholders |
| None | Standard work plan scaffold; counsel fills in consents and contract list |
The tracker is designed to be built progressively — one framework today, populated as more information becomes available.
Extract from the purchase agreement:
Required consents list:
- For each consent: counterparty name, contract type, and the deadline required by the contract. Set required_consent: true and populate pa_deadline.
Post-closing obligations:
- Map each obligation to a work plan item. Assign it to the correct phase based on the deadline. Mark it in deadline_basis as a purchase agreement obligation.
Key dates:
- Required consent deadlines — extract from the purchase agreement
- Representations and warranties survival expiration — extract the specific survival periods from the purchase agreement. General, fundamental, and tax representations often have different survival periods; extract each as defined in the purchase agreement and record them separately. Do not assume default values.
- Escrow release date — extract from the purchase agreement
- Any earnout assessment and payment dates — add to pa_dates.earnout_milestones, with owner always set to "finance"
Step 3: Build the phased work plan
Generate standard work plan items for each phase. Add the purchase agreement obligations extracted in Step 2. Pre-populate items inherited from the closing checklist.
Day 1 — Legal owner:
- Entity name change registration (if the acquired entity is being renamed) [priority: critical]
- Bank account signatory updates — notify the bank of the closing documents [priority: critical]
- Business registration change notice [priority: high]
- Key IP assignment execution — if any IP assignments were deferred at closing [priority: critical]
- Domain and social media account transfer [priority: high]
- Directors and officers insurance — confirm the tail policy for the acquired entity's directors is bound [priority: critical]
- Send ownership change notice to the Market Supervision Administration as required by the registered address [Priority: High]
Day 1 — Legal support:
- Employee announcement and communication (HR responsible, Legal reviews) [Priority: Critical]
- Benefits day-one coverage confirmation (HR responsible, Legal advises on labor law issues)
- Customer communication letter (Business responsible, Legal reviews accuracy)
Day 30 — Legal responsible:
- Initial advancement of required consents — contact all counterparties, record outreach [Priority: Critical]
- IP assignment registration with the China National Intellectual Property Administration (patents, trademarks) [Priority: High]
- Copyright assignment recordal [Priority: Medium]
- Trademark assignment registration [Priority: High]
- Material contract review — complete Tier 1 and Tier 2 contract assignment analysis [Priority: High]
- Final confirmation of insurance tail policy [Priority: High]
Day 30 — Legal support:
- Data migration privacy review (IT responsible, Legal advises on data transfer mechanisms)
- Real estate lease review of assignment clauses (Facilities responsible, Legal provides advice)
Day 90 — Legal responsible:
- Required consents deadline — all required consents must have been obtained or escalated [Priority: Critical, Deadline: pa_dates.required_consents_deadline]
- Entity rationalization decision — recommend retain/spin-off/deregister [Priority: High]
- Benefits plan assumption or termination documents [Priority: High]
- Second-round consent advancement — remaining outstanding consents [Priority: High]
- Tier 3 change-of-control contract resolution [Priority: Critical]
Day 90 — Legal support:
- Comprehensive HR policy harmonization documents (HR responsible, Legal advises on labor law)
Day 180 — Legal responsible:
- Entity merger registration — if rationalization decision is merger [Priority: High]
- Entity deregistration — if rationalization decision is liquidation [Priority: High]
- Comprehensive contract novation — contracts requiring acquirer name [Priority: High]
- Representations and warranties survival tracking — record upcoming expiry dates [Priority: Medium]
Display summary after generation:
整合追踪器已初始化 — [交易代码] / [目标公司]
交割日期:[日期]
所需同意截止日:[日期](距今 [N] 天)
陈述与保证存续到期:[日期]
工作计划项:[N]([N] 法务负责,[N] 法务支持)
所需同意:[N](来自收购协议清单)
意愿同意:[N](来自尽调——无收购协议截止日)
合同转让:尚未导入——运行 --contracts 填充
下一步:运行 /corporate-legal:integration-management --contracts 导入
合同清单,然后运行 --report 查看首份状态摘要。
Mode 2: Contract assignment
/corporate-legal:integration-management --contracts [--deal [代码]]
This is a dedicated contract assignment initialization. Independent of the main initialization so that it can run independently and be re-run when the contract list changes.
Step 1: Obtain contract list
Two paths — use whichever applies:
Path A: Connected repository
Is your contract repository connected? (Cloud docs, Feishu, or a data room still accessible after closing?)
If yes: give me the folder path or folder name for the acquired company's contracts. I will pull what files exist and read the assignment clauses and counterparties one by one.
Search the connected repository. For each document found:
- Extract file name and file path
- Read the document — identify: contract parties (counterparty names), contract type (determined from title or subject matter), assignment clause text, change-of-control clause text (if any), and annual amount (if expressly stated).
Path B: Manual list upload
Upload a contract list. This can be:
- Material Contract Schedule in the Acquisition Agreement Disclosure Schedule
- CSV or Excel export from a contract management system
- Manually prepared list
Minimum required columns: contract name, counterparty. Helpful but optional: contract type, annual amount, assignment clause text.
Read the uploaded schedule. For contracts without assignment clause text provided, set assignment_mechanism to "Not reviewed" and flag for follow-up.
Path C: Disclosure Schedule
If there is neither a repository nor a schedule, read the material contract schedule from the Acquisition Agreement Disclosure Schedule (from the acquisition agreement uploaded in --init). This gives the minimum required list—parties and contract type. Assignment clauses will require manual review.
Step 2: Determine Assignment Mechanism
For each contract, classify the assignment mechanism:
| Mechanism | Definition | Tier |
|---|---|---|
需经同意 |
Explicit clause prohibits assignment without counterparty consent | 1 or 2 |
含控制权变更条款 |
Change-of-control clause gives counterparty termination or consent rights triggered by the transaction | 3 |
自动转让 |
No restrictions, or assignment to affiliates or successors expressly permitted | 4 |
未提及 |
No assignment clause—governing law applies by default. When a contract is silent on assignment, research the default rules of the governing law on contract assignment and cite the controlling provisions. Flag for attorney review. | 2 |
未审查 |
Failed to read or locate the assignment clause | Flag for manual review |
For contracts flagged in the Acquisition Agreement Required Consents Schedule: regardless of how the assignment mechanism is classified, override the tier to 1.
Step 3: Tier Assignment
层级1 — 所需同意:[N] 份合同
在收购协议清单中列明,硬截止日 [日期],必须取得同意
层级2 — 重大,需经同意:[N] 份合同
存在转让限制,不在收购协议清单中
建议时限:在 Day 90 内取得
层级3 — 控制权变更条款:[N] 份合同 ⚠️
对方当事人拥有因交割触发的终止或同意权
需采取行动:立即联系对方当事人——控制权变更可能已被触发
层级4 — 自动转让 / 无需行动:[N] 份合同
自动转让或通过关联方/继承人条款转让
仅追踪——无需接洽
未审查:[N] 份合同
无法确定转让机制——需人工审查
Present Tier 3 separately and prominently. Change-of-control clauses may already have been triggered at closing—the counterparty may have an active termination right.
Step 4: Generate Status Items
For each contract, create a tracker entry:
- All extracted fields (counterparty, type, amount, mechanism, tier)
- Initial status: Tier 4 →
无需行动; Tier 3 →控制权变更已触发; Tier 1/2 →等待同意; Not reviewed →未审查 - For Tier 1, populate pa_deadline from the Required Consents Schedule
Mode 3: Status Report
/corporate-legal:integration-management --report [--deal [代码]]
Read the current tracker status. Produce:
[工作成果页眉 — 按插件配置 ## 输出规范 — 因角色而异;参见 `## 使用者`]
> 本状态报告来源于股权收购协议、尽调发现和交割后整合记录。它继承其特权和保密状态——向特权保护圈之外分发可能放弃特权。发送前确认接收方名单。
整合状态 — [交易代码] / [目标公司]
[日期] — 交割后第 [N] 天
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
执行摘要
[2-3句段落:整体状态、最大风险、自上次报告以来的关键进展]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
所需同意 [截止日:日期 — 剩余 N 天]
已取得: [N] / [总计] ████████░░ [%]
谈判中: [N]
接洽已发出: [N]
未开始: [N]
被拒绝: [N] ⚠️
⚠️ 有风险:[对方当事人] — [N] 天后截止日,接洽无回应
⚠️ 被拒绝:[对方当事人] — 收购协议义务未满足;上报至外部律师
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
合同转让
层级1(所需同意): [N] 完成 / [N] 进行中 / [N] 待处理
层级2(重大合同): [N] 完成 / [N] 进行中 / [N] 待处理
层级3(控制权变更条款): [N] 已解决 / [N] 未决 ⚠️
层级4(自动转让): [N] — 无需行动
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
工作计划 — 法务负责
🔴 逾期 ([N]):
[项目] — 应于 [日期] 到期
⏰ 本周到期 ([N]):
[项目] — 应于 [日期] 到期
✅ 自上次报告以来已完成 ([N]):
[项目] — 已于 [日期] 完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
阻碍项和需要决策的事项
[项目] — 受阻于:[描述] — 负责人:[姓名]
[项目] — 需要决策:[描述] — 建议:[选项]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
即将到来的关键日期
[日期] — [里程碑 / 截止日]
[日期] — 陈述与保证存续到期 — 确认无待处理赔偿索赔
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mode 4: Updates
/corporate-legal:integration-management --update [--deal [代码]]
Manual updates: The attorney tells Claude what has changed.
"We obtained Salesforce's consent. Mark as obtained, owner [name], dated today." "The entity rationalization decision is a merger. Update the status and add the merger filing to Day 180." "[Counterparty] refused consent. Flag it and note that we need outside counsel to determine whether this triggers an indemnification claim under the acquisition agreement."
Claude updates the relevant tracker entries, recalculates any downstream status (for example, if all Tier 1 consents have now been obtained, mark the acquisition agreement obligations as satisfied), and shows what changed.
Upload updates: The workflow lead or outside counsel sends a status file.
Upload the status update from [outside counsel/HR lead/corporate development team]. I will parse and update the tracker.
Read the uploaded file. Match the described items to tracker entries by counterparty name or workstream item description. Update the status field. Flag any item in the update that does not match any existing tracker entry — it may be a new item that needs to be added.
After any update, show:
已更新 [N] 项。
变更:
CON-003 Salesforce:未开始 → 已取得
W-014 主体合理化:进行中 → 已完成
新标记:
CON-007 [对方当事人]:被拒绝——收购协议义务可能未满足。考虑:
外部律师审查赔偿索赔。⚠️
Mode 5: Export
/corporate-legal:integration-management --export [--format csv|table] [--section all|consents|contracts|workplan]
Produce a flat CSV or markdown table. Default: all sections, CSV.
CSV format — one row per item, with the section indicated by the section column.
Columns differ by section:
Workstream: id, phase, description, owner, workstream, priority, deadline, status, blocker
Consents: id, counterparty, contract_type, required_consent, pa_deadline, status, assigned_to, obtained_date, notes
Contracts: id, name, counterparty, contract_type, annual_value, assignment_mechanism, tier, required_consent, pa_deadline, status, assigned_to, notes
The export is a shareable format — suitable for outside counsel, corporate development, or board integration updates.
What this skill does not do
- It does not manage business integration workstreams (IT, HR, Finance, Real Estate). It tracks legal's touchpoints in those workstreams and flags when legal input is needed. Ownership remains with the business function.
- It does not draft consent request letters or assignment agreements — these are produced by the written-consent skill or outside counsel.
- It does not advise on indemnification claims or acquisition agreement breaches. When a consent is refused or a deadline is missed, it flags the situation — the legal analysis of the consequences is the lawyer's job.
- It does not track earnout performance. Earnout milestones and payment dates appear in the tracker as reference dates, with owner set to finance. The business drives the numbers.
- It does not read contracts in real time when reporting status. Contract status is what the lawyer updates in the tracker. The skill reads the tracker at report time, not the contracts.
Formula injection defense
Before writing any cell in Excel, Sheets, or CSV output, defend against formula injection. Text from counterparties (contract quotes, party names, registered agent data, contract management system exports) is attacker-controllable. Cells beginning with =、+、-、@、 、 or will be interpreted as formulas or break the row structure.
- Prepend a single quote:
'=SUM(A1:A10)→=SUM(A1:A10)(displays as text, not executed) - Apply to every cell containing text sourced from files, tool results, or user pastes. Column headers you control and computed values you produce are safe.
- CSV: also escape embedded commas, double quotes, and newlines(RFC 4180 quoting).
- This is not optional. A spreadsheet that triggers a macro or exfiltrates data via DDE when one of your users opens it in Excel is a supply chain attack on your user.