- Load
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md→## 主体管理(entity list, place of registration, business registration agency). - Route to the correct mode based on the following flags:
- No flag or
--init: Mode 1 — initialize the tracker from the entity list --report: Mode 2 — present upcoming deadlines and overdue items--update: Mode 3a (manual) or 3b (--from-report upload) — update status--sweep: Mode 3c — go through unknown/overdue items one by one--audit: Mode 4 — full health audit--export: Mode 5 — produce a CSV or table export
- No flag or
- Read/write
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/entities/compliance-tracker.yaml。 - After any update: show a change summary and next actions.
Purpose
Annual business reports, annual corporate income tax filings, information disclosure, two-year filings — each entity has its own schedule and its own consequences for missing a deadline in each place of registration. This skill maintains a single YAML tracker that knows what is due, when it is due, and for which entity. It is intentionally designed to be lightweight: the tracker is a file you own, Claude updates it on instruction, and you export it when you need to share it.
Important: notes on deadline references
The filing deadlines in this skill's reference table reflect publicly available requirements as of the date this skill was built. Place-of-registration filing requirements and deadlines may change.Before relying on them for compliance, always confirm deadlines with your business registration agency or directly with the relevant market supervision administration. If you use a business registration agency (such as local enterprise registration agency service providers), their compliance calendar is authoritative for your specific entities — use this tracker to organize and present their data, not to replace them.
Place-of-registration assumptions
This tracker calculates deadlines based on the place of establishment or place of operation recorded for each entity. Filing rules, deadline mechanics, and fee structures differ materially across places of registration. If an entity's actual business scope differs from what is recorded in
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md(undisclosed out-of-area business filing, deregistered entity, relocation of place of registration, cross-provincial filings managed by a local agency), the output may not fully apply — confirm with the business registration agency or a local lawyer in that jurisdiction.
Entity type distinctions
The filing calendar depends on theentity type, not just the place of registration. Treating all "entities in a certain place" as one category is a common and seriously consequential mistake — limited liability companies, joint-stock companies, partnerships, and sole proprietorships have different filing requirements, different deadlines, and different consequences for missed filings. Confirm the entity type from the entity list before calculating or reporting deadlines, and never copy the deadline for one entity type to another entity type in the same place of registration.
Key distinctions under Chinese law:
- Limited liability companies / joint-stock companies: Must submit and publish an annual report through the National Enterprise Credit Information Publicity System from January 1 to June 30 each year. Legal basis: Articles 7 and 8 of the State Council's Interim Regulations on Enterprise Information Disclosure
[法条原文]。- Foreign-invested enterprises: In addition to the annual report, foreign investment information reporting must also be completed in accordance with the Foreign Investment Law and its implementing rules. Legal basis: Article 34 of the Foreign Investment Law
[法条原文]。- Partnerships: They must submit an annual report from January 1 to June 30 each year, but the content of a partnership's annual report differs from that of a company.
- Representative offices/branches: Each has an independent annual report obligation.
- Entities that have entered deregistration procedures or have been suspended for a long time: They still need to submit annual reports (but the list of liquidation group members, the name of the liquidation group head, etc. must be publicly disclosed within 60 days after the liquidation group is established).
If the entity list records an entity but has no type, mark it as
type_unknown, and ask the user to confirm before calculating any deadlines.
Tracker file
Stored at ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/entities/compliance-tracker.yaml. Structure:
# 主体合规追踪器
# 生成日期:[日期]
# 最近更新:[日期]
# 声明:截止日为参考信息——请与工商登记代办机构或市场监督管理局确认
metadata:
company: "[公司名称]"
generated: "[日期]"
last_updated: "[日期]"
last_audit: "[日期 或 空]"
custom_jurisdictions: # 手动添加——不在内置参考表中的省份或国家
[] # 遇到新的注册地时填充
entities:
- name: "[主体名称]"
type: "[有限责任公司 / 股份有限公司 / 合伙企业 / 其他]"
registration_place: "[省份/城市]"
formation_date: "[日期 或 空]"
status: "[开业 / 休眠 / 注销中]"
registered_agent: "[工商登记代办机构名称 / 内部自行管理 / 其他]"
notes: ""
jurisdictions:
- place: "[省份/城市]"
qualification: "[注册地 / 经营地]"
qualified_date: "[日期 或 空]"
agent_managed: false # 对由本地代理机构处理合规的主体设为 true
local_agent: "[名称 或 空]"
filings:
- type: "[年度报告 / 企业所得税申报 / 外商投资信息报告 / 其他]"
due_date: "[YYYY-MM-DD]"
due_basis: "[固定日期 / 周年月 / 其他]"
last_filed: "[日期 或 空]"
last_fee: "[金额 或 空]"
status: "[current / due_soon / overdue / unknown]"
confirmed_good_standing: "[日期 或 空]"
notes: ""
Status values:
current— filed for the current period, no to-dos within 90 daysdue_soon— due within 90 daysoverdue— past the deadline, no filing date recordedunknown— no information; manual confirmation required
Mode 1: Initialization
Run when no tracker exists, or use --rebuild to regenerate from scratch.
Step 1: Load the entity list
Read ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md → ## 主体管理 → entity list. If the entity list is already populated (from the org chart upload during cold start), use it directly. If it is not populated, ask the user to run the cold start module or provide the entity list.
Step 2: For each entity × registration place, confirm filing requirements
For each entity, confirm the current filing schedule with the business registration agent or the relevant market supervision administration. Filing requirements for registration places change. Do not rely on cached schedules. The tracker below records the dates you confirm; update them when your registration agent sends reminders.
For each registration place where the entity is registered (registered place or operating place):
- Ask the user whether they have obtained a current compliance report from the registration agent—that is the most authoritative source.
- If not, ask the user what they know (filing type, deadline basis, most recent filing date, approximate fee). Record what they provide.
- For anything the user does not know, mark that entity × registration place entry as
unknown—do not populate dates from cached references. The user's next step is to confirm with the registration agent or market supervision administration.
Capture details in the tracker rather than a reference table:
I do not have the filing requirements for [registration place] in the reference table. Let me capture them so they can be tracked later.
Regarding [entity] in [registration place]:
- What type of filing is required? (Annual report, tax filing, foreign investment information report, or other?)
- When is it due? (A fixed date such as May 1, an anniversary month, or other?)
- What is the approximate fee? (An approximation is fine—or "unknown.")
- Who is your business registration agent or local filing agent?
Store the answers in the tracker's custom registration place block:
custom_jurisdictions:
- jurisdiction: "[省份/城市]"
jurisdiction_type: "[中国省份 / 中国城市 / 其他]"
filings:
- type: "[申报类型]"
due_basis: "[fixed: MM-DD / anniversary month / 其他描述]"
typical_fee: "[金额 或 unknown]"
notes: "[任何其他相关信息——例如需当地代理、需在当地语言申报]"
added_by: "manual"
added_date: "[日期]"
This custom definition then applies to all entities in that registration place. Future --init runs and entity additions will automatically use it.
Special notes for entities operating across provinces:
Compliance requirements for cross-province business entities vary by province. Always go through the custom definition process above—before populating the tracker, confirm the filing type, frequency, and fees with the local filing agent or business registration agency.
For cross-province business entities, also ask:
- Is there a local filing agent or business registration agency handling compliance? If yes, record the agent's name—the tracker can flag when to follow up with them, rather than independently calculating the deadline.
- Does the entity need to file any group-level reports locally (such as anti-tax-avoidance reports, related-party transaction reports)?
Mark cross-province business entities with a local agent in the tracker as agent_managed: true. The report mode will list them separately and prompt to confirm status with the local agent rather than displaying a calculated deadline.
For anniversary-month-based filings: calculate from the formation_date in the tracker. If formation_date is empty: set the status to unknown and flag as pending confirmation.
Step 3: Write to the tracker
Generate ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/entities/compliance-tracker.yaml, containing all entities and their calculated filing requirements. Set the initial status:
currentif last_filed is within the current filing perioddue_soonif due within 90 days and there is no last_filed for the current periodoverdueif the deadline has passed and there is no last_filed for the current periodunknownif formation_date is missing or the province is not in the reference table
After generating, display a summary:
主体合规追踪器已初始化。
主体: [N]
注册地总计: [N]
追踪申报项: [N]
状态摘要:
✅ 正常: [N]
⏰ 即将到期: [N](未来90天)
🔴 逾期: [N]
❓ 未知: [N](与工商登记代办机构确认)
运行 /corporate-legal:entity-compliance --report 查看待办事项。
Mode 2: Report
Present upcoming deadlines and flag overdue items. Default: next 90 days.
/corporate-legal:entity-compliance --report [--days 30|60|90|180]
Output format:
主体合规报告 — [日期]
[公司名称]
🔴 逾期 ([N]):
[主体] / [省份] / [申报类型] — 应于 [日期] 到期
⏰ [N] 天内到期 ([N]):
[主体] / [省份] / [申报类型] — 应于 [日期] 到期 [工商登记代办机构]
[主体] / [省份] / [申报类型] — 应于 [日期] 到期
✅ 最近已申报 ([N] 项,过去90天):
[主体] / [省份] / [申报类型] — 已于 [日期] 申报
❓ 未知状态 ([N]):
[主体] / [省份] / [申报类型] — 无信息;与工商登记代办机构确认
🌐 代理管理 ([N]):
[主体] / [省份] / [申报类型] — 由 [当地代理] 管理;直接确认状态
[主体] / [省份] — 无当地代理记录;使用 --update 添加
存续状态:
最近确认日期:[日期]
已确认存续状态的主体:[N] of [总计]
最近12个月未确认的主体:[列表]
If the tracker covers more than about 10 entities, or the user asks at any time: provide a dashboard (see CLAUDE.md ## 输出规范 → 数据密集产出的仪表盘选项). Customize for this output: counts by filing status (overdue/due soon/filed/unknown), counts by existence status, and a sortable entity table with registered location, filing type, and next deadline.
Mode 3: Update
Update one or more entities in the tracker. Three sub-modes:
Consequential action admission (filing annual reports/business registration)
Before instructing or confirming a filing: Read ~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md in ## 使用者. If the role isnon-legal personnel:
Submitting annual reports, enterprise income tax filings, or information disclosures to the Market Supervision Administration has legal consequences—this is a formal statement by the entity, accompanied by fees, and omission or incorrect filing may result in loss of existence status or penalties. Have you reviewed with a lawyer (or a qualified business registration agency) before filing? If reviewed, continue recording the filing. If not reviewed, here is a brief to bring to them:
- Entity, registered location, filing type, and deadline
- Most recent filing information shown by the tracker (date, fees, most recently reported executive/director information)
- Open questions (whether executive/director information is still accurate; whether the business registration agency has changed; whether the principal office address has changed)
- Issues that could go wrong (outdated executive information, missed deadlines triggering penalties or deregistration, incorrect fee calculation)
- Questions to ask the lawyer (whether a filing is actually required this year; whether any articles of association amendments or executive changes need to be reflected; who should sign)
If you need to find a lawyer: contact the All China Lawyers Association or your local lawyers association for referral services.
Do not cross this and record a new last_filed date until explicit consent is obtained. Tracker reads, deadline reports, and "what's coming due" output do not require this admission.
3a: Manual update
/corporate-legal:entity-compliance --update
The lawyer tells Claude what has been filed:
"We filed the annual report for [entity] on March 1. The fee was 450 yuan."
Claude updates:
last_filed→ March 1last_fee→ 450status→current- in the metadata
last_updated
3b: Business registration agency report upload
/corporate-legal:entity-compliance --update --from-report
The user uploads a business registration agency or similar compliance report (PDF, CSV, or Excel). Claude reads it and updates matching entities:
Extract from the report, for each entity:
- Filing type and deadline
- Most recent filing date (if any)
- Survival status and confirmation date
- Any flags or warnings noted by the agency
Match entities in the report to entities in the tracker by name (flag close matches for confirmation—"某某控股有限公司" and "某某控股有限公司", separately registered as different entities, may be the same).
After processing:
已从报告中更新 [N] 个主体。
已匹配:[N]
未匹配(在报告中但不在追踪器中):[列表——可能需要添加到主体清单]
不在报告中(在追踪器中但无更新):[列表——状态不变]
3c: Batch status check
/corporate-legal:entity-compliance --sweep
Go through each entity whose status is unknown or overdue , one at a time, asking for current information:
[entity] / [province] / [filing type] — currently showing as [status]. Has this been filed? If filed, when and what was the fee?
Update the tracker after each confirmation. Produce a completion summary.
Mode 4: Health audit
/corporate-legal:entity-compliance --audit
A broader review beyond filing status. Present:
Filing compliance:
- Overdue items (from report mode)
- Unknown status items
Entity health:
- Entities flagged as
休眠—review the flag: should these be deregistered? Maintaining dormant entities costs money (annual fees, business registration agency fees) and creates ongoing compliance obligations. - Entities established more than 5 years ago with status
休眠—flag as deregistration candidates. - Entities missing formation_date—flag as data gaps.
Survival status gaps:
- No
confirmed_good_standingdate for an entity—survival is unknown; this is a risk if a transaction requires obtaining a certificate of good standing on short notice. confirmed_good_standingfor more than 12 months—expired; worth refreshing, especially if M&A or financing is anticipated.
Business filing gaps:
- Based on
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.mdentity list: are there provinces in the company's business footprint (offices, employees) where an entity has not completed its business filing? This requires a lawyer to confirm business presence—Claude can raise the question but cannot independently determine business presence.
Related-party transaction agreement execution status:
- From
~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md: if the related-party transaction agreement execution status is flagged as partial or no, flag which entity relationships may require agreements (parent-subsidiary services, IP licensing, loans).
Output format:
主体健康审计 — [日期]
申报合规
逾期:[N]
未知状态:[N]
行动:运行 --sweep 确认未知项
休眠主体([N])
[休眠主体列表,含存续年数和年度维持成本(如已知)]
注销候选(>5年休眠):[列表]
存续状态
无记录:[N] 个主体
过期(>12个月):[N] 个主体
考虑在以下事项前刷新:[任何已知的即将发生的交易或合同续约]
潜在缺口
经营备案:[标记问题——确认以下地区的业务存在:]
[足迹在追踪器中未显示为已备案的省份列表,来自 `~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md`]
关联方交易协议订立:[来自 `~/.claude/plugins/config/claude-for-legal-zh/corporate-legal/CLAUDE.md` 的状态]
建议行动
1. [最高优先级行动]
2. [等等]
Mode 5: Export
/corporate-legal:entity-compliance --export [--format csv|table]
Produce a flat export suitable for sharing with finance, legal operations, or an external business registration agency. Default: CSV.
CSV columns:
主体名称, 主体类型, 注册地, 成立日期, 状态, 工商登记代办机构, 管辖区, 资质类型, 申报类型, 截止日, 最近申报, 最近费用, 存续状态确认, 备注
One row per filing per registration location. Multiple rows per entity (one row per registration location × filing type combination).
If --format table: produce a markdown table suitable for pasting into a report or Feishu message, showing only filings due in the next 90 days.
What this skill does not do
- Does not submit any filings. The output is a tracker and to-do list; filings are completed by lawyers, outside counsel, or business registration agents.
- Does not retrieve certificates of good standing. It tracks when the certificate was last confirmed; obtaining the certificate is done manually or through a business registration agent.
- Does not determine whether a business filing is required in a particular province. That analysis depends on legal facts about business activities and must be confirmed by a lawyer.
- Does not replace business registration agency services for companies with complex multi-entity structures. These services have dedicated compliance teams and direct relationships with the competent authorities. This skill is best suited for small organizations without agency support, or as a lightweight layer over agency data for organizations that have support.
- The filing deadline reference table is not legal advice and may not reflect the latest requirements. Confirm all deadlines before relying on them.
Formula injection defense
Before writing any cell in Excel, spreadsheet, or CSV output, defend against formula injection. Text from counterparties (contract quotations, party names, business registration agent data, contract management system exports) is attacker-controllable. Cells beginning with =、+、-、@、 、 or will be interpreted as formulas or will break the row structure.
- Prepend a single quote:
'=SUM(A1:A10)→=SUM(A1:A10)(displayed as text, not executed) - Applies to every cell containing text originating from files, tool results, or user-pasted text. Column headers you control and calculated values you produce are safe.
- CSV: also escape embedded commas, double quotes, and line breaks(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 users.