feat: export core Hermes skills
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
---
|
||||
name: nantong-xindongfang-review
|
||||
description: 南通新东方文件审核规则(Maggie团队)。审查南通新东方(甲方/经营方)的合同、协议、示范文本等文件,用修订+批注形式独立审核(不走workflow)。涵盖审查取舍尺度、修订vs批注边界、命名规则。当Maggie派发南通新东方相关文件审核任务时加载。与Doro团队的合同审查严格隔离。
|
||||
version: 1.0.0
|
||||
author: 小Maggie(2026-06-17 与Maggie共建)
|
||||
tags: [合同审查, 南通新东方, Maggie团队, 修订, 批注]
|
||||
---
|
||||
|
||||
# 南通新东方文件审核规则
|
||||
|
||||
## ⚠️ 先定位:南通新东方有三条「合同」轨道,本 skill 只管其中一条(2026-06-23 三轮追问教训)
|
||||
|
||||
被派到「南通新东方合同」任务时,**先分清是哪条轨道再加载对应 skill**,别张冠李戴:
|
||||
|
||||
| 轨道 | 任务形态 | 用哪个 skill |
|
||||
|---|---|---|
|
||||
| **B. 单份文件独立审核**(改错/批注一份合同、协议、示范文本) | 手动 reviewer+editor 合一,出修订版 docx | ⬅️ **本 skill** |
|
||||
| **C. 多校区梳理台账**(17 校区租赁+物业汇总 Excel、模版对比、风险分级) | Step0→5 + 三角色 + L列模版对比 | `contract-portfolio-analysis`(**模版对比只在这条线**) |
|
||||
| **A. Doro/邱律师批量合同审查** | uwf `review-contract.yaml` 五角色流水线 | 与南通新东方**严格隔离**,不在此列 |
|
||||
|
||||
- 用户说「南通新东方租赁合同审查的 workflow / 模版对比」时**多半指 C**(梳理台账),不是本 skill 的单份审核。**模版对比(与 07 原件比)是 C 独有,本 skill(单份审核)不做模版对比。**
|
||||
- 「workflow」一词在本环境特指 uwf 那套 YAML(A);本 skill 明确**不走 workflow**(手动独立审核)。沟通时别把这两条都笼统叫「workflow」——Maggie 是律师、要术语精确。
|
||||
|
||||
## 适用范围与归属
|
||||
|
||||
🔴 **模版比对铁律(0703补充)**:租赁合同梳理项目中,所有租赁合同必须与07标准模版做delegate_task比对——不论是新东方制式、甲方制式还是自由协商合同。详见skill contract-portfolio-analysis/references/pitfalls-0703-longxin.md。
|
||||
|
||||
- **客户**:南通新东方教育咨询有限公司(及关联校区)。**审查立场跟着南通新东方在这份合同里的实际身份走,不是固定甲方**(2026-06-24 金信大厦租赁案补充):
|
||||
- 作**甲方/经营方/培训方**(校外培训服务合同、用人单位文件等)→ 站甲方立场。
|
||||
- 作**乙方/承租方/采购方**(如租赁合同里南通新东方是承租人)→ 站乙方立场,积极争取乙方合理权益。
|
||||
- ⚠️ 开工先认清南通新东方是这份合同的甲方还是乙方再定立场——别因 skill 历史多为甲方就默认甲方。判别看合同抬头:"承租人/乙方(承租人)" vs "甲方(出租人)"等字样。
|
||||
- **派发人**:Maggie(JiaQian)。属 **Maggie 团队任务**。
|
||||
- **信息隔离铁律**:南通新东方文件只跟 Maggie 讨论,**绝不在 Doro/邱律师的群里提及或交叉使用**。反之 Doro 团队文件也不带入这里。
|
||||
- **洪总场景另有专规**:如果是洪总(南通新东方VP)在群里发的文件走客户对接流程(先列workflow方案给Maggie确认、回复前先提醒Maggie核实)。本skill针对的是Maggie直接派给小Maggie做的内部审核。
|
||||
|
||||
## 工作方式(铁律)
|
||||
1. **独立审核,不走workflow**:Maggie要的是小Maggie自己独立判断,用 reviewer+editor 合一的手动模式。
|
||||
2. **修订 + 批注 双形式**:能直接改的用修订模式(author=WB),需甲方确认/建议增加内容的用批注(author=WB)。
|
||||
3. **立场跟身份走**(2026-06-24 校准):
|
||||
- **南通新东方作甲方/培训方**(多为审官方示范文本):①守监管合规底线 ②争取甲方合理权益 ③避开无效格式条款红线。**审查克制**(下文「审查取舍尺度」「红线」的示范文本克制规则适用于本情形)。
|
||||
- **南通新东方作乙方/承租方**(如租赁合同,面对的是对方拟的强势格式合同):站乙方立场**积极审查**——删/改排除乙方主要权利、免除对方责任、非法自力救济、显失公平的条款;对实质不对等但改法需定夺的出批注。此时「示范文本克制」不适用(这不是均衡的官方文本,是对方的偏向性格式合同)。金信大厦租赁案7改8删+6批注即此模式。
|
||||
4. **必须用 ContractEditor 库**(`/home/maggie/contract-work/contract_docx_lib.py`),不裸写XML做修订。批注用 comments.xml 机制(模板见 references/comment-injection.md)。INS 中文字体的 eastAsiaTheme 主题回退坑 + 用「接受修订预览」破 vision 误报字体不一致,见 contract-editor skill「INS 中文字体」节。
|
||||
|
||||
## ⚠️ 审查取舍尺度(2026-06-17 Maggie三处纠正后确立——这是本skill的核心)
|
||||
|
||||
教育部等官方**示范文本**(如 GF-2021-2604 校外培训服务合同)本身较均衡。审查时**克制**,不是改得越多越好。Maggie的尺度:
|
||||
|
||||
### 改什么(保留的修订类型)
|
||||
- **指代错误/语义不通**:如"协调给甲方转班"(转班主体应为学员)→"为乙方(学员)转班"。影响条款执行,必改。
|
||||
- **病句/措辞错误**:如"终止签订《合同》"(合同已签订无法"终止签订")→"解除"。
|
||||
- **会造成歧义的错别字**:如"个人财务"→"个人财物"(财务=会计/财物=物品,混淆改变语义);"吐痰得现象"→"的";顿号误用"果皮、及"→"果皮及"。
|
||||
|
||||
### 不改什么(Maggie明确否决的,恢复原文)
|
||||
1. **编号没有格式错误和逻辑错误的,不修订**。
|
||||
- 实例:原文条款缺"第一条"标号(直接从"培训服务"到"第二条"),小Maggie补了"第一条"被否决。
|
||||
- 判据:缺标号/跳号/缺号,只要**不造成格式混乱或逻辑歧义**,一律不动。这是示范文本的原貌,不是错误。
|
||||
- 与 contract-reviewer 既有铁律"编号问题不审"一致,此处进一步明确:**缺条标号也不补**。
|
||||
|
||||
2. **实体条款若合规问题已被其他条款覆盖,不重复设限/不视为冲突**。
|
||||
- 实例:付费条款P74"乙方一次性付清培训费用",小Maggie误判为与预收费监管(不得超3个月/60课时)冲突,加了限定句被否决。
|
||||
- Maggie定性:预收费合规问题**第三条第一款(甲方义务)已写明**"甲方不得一次性收取超过3个月/60课时",所以付费条款写"一次性付清"**不存在合规障碍**——这是"总则已限定+分则执行"的体系关系,不是冲突。
|
||||
- 铁律:审查单个实体条款前,**全文核对该问题是否已被其他条款约束**。被覆盖的,不在本条重复设限。
|
||||
|
||||
3. **纯字形争议/不影响理解的字,不动**。
|
||||
- 实例:"自已的餐食"小Maggie改"自己"被否决。Maggie:"己字没有错误,是你的读取问题"。
|
||||
- 处理:遇到疑似异体/形近字(已/己、末/未等),先**核实字符真实码点**(execute_code读docx XML比对Unicode),**如实把客观结果反馈Maggie由她定夺**,不擅自改、不与她争辩对错。Maggie说不改就不改。
|
||||
|
||||
### 改与不改的分界线(一句话)
|
||||
**改"会让人误解或无法执行"的硬伤(指代、病句、歧义错别字);不改"原文本来的样子但无碍理解"的部分(缺编号、被覆盖的条款、字形争议)。** 对官方示范文本尤其克制。
|
||||
|
||||
## 批注取舍(2026-06-17)
|
||||
- **保留的批注类型**:
|
||||
- 合同留白指向外部制度、标准未定义的,建议明示(如退费"服务费"扣费比例建议在合同/制度中明确并向乙方明示)。
|
||||
- "协商而定"等未具体化的填空,建议签约时填具体(如每次课时、上课时间)。
|
||||
- **删除的批注类型**:
|
||||
- **格式合同"加粗提示义务"——暂不做(Maggie 2026-06-17 明确判断)**。小Maggie批注"管辖条款建议加粗提示尽到格式条款提示义务"被删。Maggie的完整逻辑:
|
||||
1. 提示义务一旦做,**不止管辖条款,其他需要学员注意的问题都要加粗**——会是一大片,不是一条。
|
||||
2. **我们代表甲方**:格式条款提示义务是保护乙方(消费者)的,主动加粗提示等于帮对方,不符合甲方立场。
|
||||
3. **用的是教育部指导模版**:官方示范文本,本身已经过审定。
|
||||
4. **之前都没有加粗提示**:保持与既往实践一致。
|
||||
→ 结论:**暂不需要加粗提示**。(注意是"暂不"——若Maggie某次明确要求做提示义务,则需对所有需提示事项统一加粗,不能只挑一条。)
|
||||
- 推广原则:**对甲方已有利、主动提示反而引火烧身的,不提示**。
|
||||
- 批注内容规范(沿用 contract-reviewer):只写"建议……",给方案,**不写理由、不加【】标签**。
|
||||
|
||||
## 文件命名(Maggie 2026-06-17 校准)
|
||||
- **不用** Doro 团队的`【修】+原名`前缀式。
|
||||
- **用**通用命名规则(见 skill `file-naming-convention`):
|
||||
```
|
||||
[原始完整文件名(一字不动)] -rev. [修改人缩写] -[日期YYYYMMDD].docx
|
||||
```
|
||||
- 实例:`【文化艺术】校外培训服务合同(教育部)-高中班级-南通学校-拟定中-rev. MJ-20260617.docx`
|
||||
- 首次修订无版本号;再次修订插入 `-v2-`(如`…-v2-rev. MJ-日期`)。
|
||||
- `-rev. ` 后空一格再接缩写;MJ=小Maggie。
|
||||
- **原文件名完整保留**,包括开头的【文化艺术】等标签——这是原名的一部分,不是我们加的前缀。
|
||||
|
||||
## 标准操作流程
|
||||
1. 加载本skill + contract-reviewer(审查方法论)+ contract-editor(修订技术规范)。
|
||||
2. 提取全文逐字通读(python-docx,含附件部分)。**独立判断,不依赖历史报告。**
|
||||
3. 按上文取舍尺度,分出【直接修订】和【批注】两类清单。
|
||||
4. 修订:`ContractEditor` + tracked_replace(author=WB)。多run/标题编号等技术坑见 contract-editor skill。
|
||||
- 精准到字级修订(difflib字符级),只改实际改动的字,不整句重写。
|
||||
- 补编号/插入文字若涉字号,对齐同级原文(如"第X条"字号)——但**先确认该编号该不该补**(多半不补,见上)。
|
||||
5. 批注:comments.xml 注入(模板 references/comment-injection.md),挂靠到接受修订后能精确匹配的锚点段落。
|
||||
6. 终审自查(缺一不可):
|
||||
- `validate()` 通过
|
||||
- WB INS 字体与同段原文一致(注意:本类文档靠 `hint=eastAsia`+文档默认字体定义中文,原文run可能无显式eastAsia属性——比对基准是"与同段原文run一致",不是"必须有显式eastAsia")
|
||||
- 批注 commentRangeStart/End/Reference 与 comments.xml 的 id 全部对应
|
||||
- OnlyOffice 渲染(`contract-editor/scripts/onlyoffice-render.sh`)核对修订markup+批注显示正常(vision不可用时用 pdftotext + XML markup/接受后双视图核验)
|
||||
- python-docx 能打开(XML合法)
|
||||
7. 命名按上文规则,企微 MEDIA: 发给 Maggie,附**审查说明**(分"直接修订"/"批注"两栏,列段号+类型+内容)。
|
||||
|
||||
## 维修催告/通知函场景(2026-07-02 新增)
|
||||
- 南通新东方作承租方需催促物业/出租方维修时,参见 `references/maintenance-notice-drafting.md`
|
||||
- **关键前置动作**:同一校区多份合同(如世茂青少+高中)需先对比维修条款是否一致,一致则可统一引用
|
||||
- 函件格式:催告函用"致:"不用"尊敬的";结尾用"此致"不用"敬祝商祺"
|
||||
- 法律引用:合同条款+民法典713条(出租人不维修→承租人代修权)
|
||||
|
||||
## 红线
|
||||
- 金额、课时、单价、品牌等**商业条款一字不动**。
|
||||
- 对方(非顾问单位)名称不审查。
|
||||
- 官方示范文本**克制审查**——改硬伤,不动原貌。
|
||||
- **每份合同逐条审查、不挑不跳、禁标"简化审查"(Maggie 2026-06-17 铁律)**:从主体信息到签名落款全过一遍;附属合同(如物业合同)照样逐条审,主次只影响风险权重不影响覆盖面。逐条审查是**内部要求**(保证覆盖面),但**交付物只列真正的修订/批注,不加"✅已审查无异常"展示段**(Maggie 2026-06-18 在 contract-portfolio-analysis 线明确反转了此前"加无异常段"的打样规则——客户要看的是问题,不是"我审了哪些没问题"的清单)。详见 contract-portfolio-analysis skill「逐条审查」节。
|
||||
- 不确定的取舍**先问Maggie再写规则**,不自作主张固化错误标准。
|
||||
@@ -0,0 +1,117 @@
|
||||
## 批注注入(comments.xml 机制)
|
||||
|
||||
ContractEditor 库**不支持批注**。批注需要直接操作 docx 的 OOXML 批注三件套。验证可用(2026-06-17 培训合同实战)。
|
||||
|
||||
### 批注的三个组成部分
|
||||
1. **word/comments.xml**:批注内容本体(每条 `<w:comment>`,含 id/author/date/initials)。
|
||||
2. **word/document.xml**:在被批注的段落里插入锚点:
|
||||
- `<w:commentRangeStart w:id="X"/>` —— 放在段落第一个 run/ins 之前
|
||||
- `<w:commentRangeEnd w:id="X"/>` —— 放在段落末尾
|
||||
- 一个含 `<w:commentReference w:id="X"/>` 的 run —— 放在 rangeEnd 之后
|
||||
3. **关系声明**:
|
||||
- `[Content_Types].xml` 加 Override(comments.xml 的 ContentType)
|
||||
- `word/_rels/document.xml.rels` 加 Relationship(指向 comments.xml)
|
||||
|
||||
### 可复用代码(在 ContractEditor 修订并 save 之后,对成品 docx 注入批注)
|
||||
|
||||
```python
|
||||
import zipfile, io
|
||||
from lxml import etree
|
||||
|
||||
W = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'
|
||||
Wq = '{' + W + '}'
|
||||
|
||||
# 批注清单:anchor 是"接受修订后能精确匹配(唯一)"的段落片段
|
||||
comments = [
|
||||
{"id": "201", "anchor": "甲方扣除相应服务费后", "text": "建议……"},
|
||||
{"id": "202", "anchor": "向甲方住所地人民法院提起诉讼", "text": "建议……"},
|
||||
]
|
||||
DATE = "2026-06-17T10:00:00Z" # ISO格式
|
||||
|
||||
def build_comments_xml(comments):
|
||||
parts = ['<?xml version="1.0" encoding="UTF-8" standalone="yes"?>']
|
||||
parts.append(f'<w:comments xmlns:w="{W}" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">')
|
||||
for c in comments:
|
||||
parts.append(f'<w:comment w:id="{c["id"]}" w:author="WB" w:date="{DATE}" w:initials="WB">')
|
||||
# 批注文字字号建议比正文小(sz=18=9pt),字体跟随文档(宋体+hint=eastAsia)
|
||||
parts.append('<w:p><w:r><w:rPr><w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:eastAsia="宋体" w:cs="宋体" w:hint="eastAsia"/><w:sz w:val="18"/><w:szCs w:val="18"/></w:rPr>')
|
||||
parts.append(f'<w:t xml:space="preserve">{c["text"]}</w:t></w:r></w:p>')
|
||||
parts.append('</w:comment>')
|
||||
parts.append('</w:comments>')
|
||||
return ''.join(parts)
|
||||
|
||||
def inject_comments(in_path, out_path, comments):
|
||||
comments_xml = build_comments_xml(comments)
|
||||
with open(in_path, 'rb') as f:
|
||||
data = f.read()
|
||||
buf_in, buf_out = io.BytesIO(data), io.BytesIO()
|
||||
inserted = {c["id"]: False for c in comments}
|
||||
with zipfile.ZipFile(buf_in, 'r') as zin, zipfile.ZipFile(buf_out, 'w', zipfile.ZIP_DEFLATED) as zout:
|
||||
for item in zin.infolist():
|
||||
raw = zin.read(item.filename)
|
||||
if item.filename == 'word/document.xml':
|
||||
tree = etree.fromstring(raw)
|
||||
body = tree.find(f'{Wq}body')
|
||||
for para in body.findall(f'.//{Wq}p'):
|
||||
# 接受修订后文本(跳过 w:del 内的 t)做锚点匹配
|
||||
ptext = ''
|
||||
for t in para.findall(f'.//{Wq}t'):
|
||||
if not any(a.tag == f'{Wq}del' for a in t.iterancestors()):
|
||||
ptext += (t.text or '')
|
||||
for c in comments:
|
||||
if not inserted[c["id"]] and c["anchor"] in ptext:
|
||||
cid = c["id"]
|
||||
# 第一个挂靠点:段落第一个 r 或 ins
|
||||
first_child = None
|
||||
for child in para:
|
||||
if child.tag in (f'{Wq}r', f'{Wq}ins'):
|
||||
first_child = child; break
|
||||
if first_child is None:
|
||||
continue
|
||||
crs = etree.Element(f'{Wq}commentRangeStart'); crs.set(f'{Wq}id', cid)
|
||||
first_child.addprevious(crs)
|
||||
cre = etree.Element(f'{Wq}commentRangeEnd'); cre.set(f'{Wq}id', cid)
|
||||
para.append(cre)
|
||||
rr = etree.SubElement(para, f'{Wq}r')
|
||||
rrp = etree.SubElement(rr, f'{Wq}rPr')
|
||||
rs = etree.SubElement(rrp, f'{Wq}rStyle'); rs.set(f'{Wq}val', 'CommentReference')
|
||||
cref = etree.SubElement(rr, f'{Wq}commentReference'); cref.set(f'{Wq}id', cid)
|
||||
inserted[cid] = True
|
||||
raw = etree.tostring(tree, xml_declaration=True, encoding='UTF-8', standalone=True)
|
||||
elif item.filename == '[Content_Types].xml':
|
||||
ct = etree.fromstring(raw)
|
||||
NS = 'http://schemas.openxmlformats.org/package/2006/content-types'
|
||||
ov = etree.SubElement(ct, f'{{{NS}}}Override')
|
||||
ov.set('PartName', '/word/comments.xml')
|
||||
ov.set('ContentType', 'application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml')
|
||||
raw = etree.tostring(ct, xml_declaration=True, encoding='UTF-8', standalone=True)
|
||||
elif item.filename == 'word/_rels/document.xml.rels':
|
||||
rt = etree.fromstring(raw)
|
||||
RNS = 'http://schemas.openxmlformats.org/package/2006/relationships'
|
||||
r = etree.SubElement(rt, f'{{{RNS}}}Relationship')
|
||||
r.set('Id', 'rIdComments1')
|
||||
r.set('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments')
|
||||
r.set('Target', 'comments.xml')
|
||||
raw = etree.tostring(rt, xml_declaration=True, encoding='UTF-8', standalone=True)
|
||||
zout.writestr(item, raw)
|
||||
zout.writestr('word/comments.xml', comments_xml.encode('utf-8'))
|
||||
with open(out_path, 'wb') as f:
|
||||
f.write(buf_out.getvalue())
|
||||
return inserted # 检查是否全部 True
|
||||
```
|
||||
|
||||
### 锚点选择要点
|
||||
- anchor 必须是**接受修订后文本里唯一**的片段(先用脚本验证 hits==1,多处命中会挂错段)。
|
||||
- 避免选被修订(w:del/w:ins)切割的文字做anchor——优先选未被改动的稳定片段。
|
||||
- 若 anchor 落在被修订段,匹配用"接受修订后文本"(跳过 w:del),与上面代码一致。
|
||||
|
||||
### 验证(终审必做)
|
||||
```python
|
||||
# commentRangeStart/End/Reference 与 comments.xml 的 id 必须全部对应
|
||||
crs = set(e.get(Wq+'id') for e in doc_root.iter(Wq+'commentRangeStart'))
|
||||
cre = set(e.get(Wq+'id') for e in doc_root.iter(Wq+'commentRangeEnd'))
|
||||
cref = set(e.get(Wq+'id') for e in doc_root.iter(Wq+'commentReference'))
|
||||
com = set(c.get(Wq+'id') for c in com_root.iter(Wq+'comment'))
|
||||
assert crs == cre == cref == com
|
||||
```
|
||||
末了用 python-docx `Document(out)` 能打开(XML合法)+ OnlyOffice 渲染确认批注气泡显示。
|
||||
@@ -0,0 +1,86 @@
|
||||
# 维修催告/通知函起草规范
|
||||
|
||||
## 适用场景
|
||||
南通新东方作为承租方(乙方),需要催促出租方/物业管理公司履行维修义务时。
|
||||
|
||||
## 起草前置步骤
|
||||
|
||||
### 1. 盘点合同关系
|
||||
- 确认该校区有几份合同(租赁+物业,通常成对出现)
|
||||
- 🔴 **配对铁律**:每份租赁合同找对应物业合同(世茂教训:2份租赁→2份物业,漏了1份被纠正)
|
||||
- 合同编号对照表示例:
|
||||
- 青少:租赁 217L0363a-1 ↔ 物业 217L0363b
|
||||
- 高中:租赁 217L0457a ↔ 物业 217L0457b
|
||||
|
||||
### 2. 条款查找
|
||||
- **租赁合同**:找"商铺修缮"/"维修"条款(世茂=第八条)
|
||||
- **物业合同**:找"商铺修缮"条款(世茂=第五条)+ "甲方义务"条款(世茂=第七条)
|
||||
- 对比多份合同条款是否实质一致,一致可合并引用,有差异需分别列明
|
||||
|
||||
### 3. 确认维修义务链
|
||||
- 出租方:结构/屋顶/主体维修义务(租赁合同)
|
||||
- 管理方:公共部位/设施维修义务(物业合同)
|
||||
- 法定义务:民法典第713条(承租人代修权)
|
||||
|
||||
## 通知函格式规范
|
||||
|
||||
### 标题
|
||||
```
|
||||
关于[具体事项]要求维修的通知函
|
||||
```
|
||||
|
||||
### 文号
|
||||
```
|
||||
新东方南通函〔年份〕第 号
|
||||
```
|
||||
|
||||
### 致送对象
|
||||
```
|
||||
致:[出租方全称]
|
||||
([管理方全称]) ← 如同时致送管理方
|
||||
```
|
||||
- 不用"尊敬的XX:"格式
|
||||
|
||||
### 正文结构
|
||||
1. **合同背景段**:列明所有相关合同(含编号、标的、面积),表述"合同均在履行期内"
|
||||
2. **问题描述段**:客观描述问题、影响、已有投诉
|
||||
3. **合同依据段**:引用维修条款(简洁总结+条款号,不全文抄录)
|
||||
- 格式:`(一)租赁合同(编号)第X条第Y款约定:[一句话总结]。`
|
||||
- 格式:`(二)物业管理服务合同(编号)第X条约定:[一句话总结]。`
|
||||
4. **定性段**:明确非承租方原因 + 属对方合同义务
|
||||
5. **请求段**:分项列明具体要求(回复时限、完成时限、损害赔偿)
|
||||
6. **后果段**:逾期未修的法律后果(代修权 + 费用追偿 + 民法典713条)
|
||||
7. **结尾段**:请予重视
|
||||
|
||||
### 落款
|
||||
```
|
||||
此致
|
||||
|
||||
[发函方全称]
|
||||
[日期]
|
||||
|
||||
附:[渗漏现场照片/其他证据](另附)
|
||||
```
|
||||
|
||||
## 条款引用风格
|
||||
|
||||
### ❌ 不推荐(全文引用,冗长)
|
||||
> 依据合同第八条第1款之约定:"如非乙方原因,该商铺及甲方或管理公司提供的设施出现妨碍安全、正常使用的损坏时,乙方应及时通知甲方或管理公司,并采取有效措施防止损失扩大。甲方或管理公司方应在接到乙方通知后,尽快安排维修工作。"
|
||||
|
||||
### ✅ 推荐(简洁总结+条款号)
|
||||
> (一)租赁合同(217L0363a-1、217L0457a)第八条第1款约定:非因乙方原因致商铺及设施损坏的,乙方应及时通知甲方或管理公司并防止损失扩大,甲方或管理公司应尽快安排维修;逾期未修的,乙方可自行维修,费用由甲方承担。
|
||||
|
||||
**原则**:Maggie要求"简洁起见不需要全文引用,进行内容总结标注条款号即可"。
|
||||
|
||||
## 修订版docx制作技术要点
|
||||
- 用修订模式(author=WB, date=当天)标记所有改动
|
||||
- 原文删除用 `<w:del>`,新增用 `<w:ins>`
|
||||
- 字体统一仿宋_GB2312,字号32(小二号)
|
||||
- 标题可用方正小标宋简体,字号44,加粗
|
||||
- 首行缩进 firstLine=482(两字符)
|
||||
- 居右对齐落款区
|
||||
|
||||
## 法律依据速查
|
||||
- 民法典第713条:承租人代修权(出租人不履行维修义务→承租人可自行维修,费用由出租人负担)
|
||||
- 民法典第714条:承租人妥善保管义务
|
||||
- 民法典第710条:正常使用导致的自然损耗,承租人不承担赔偿责任
|
||||
Reference in New Issue
Block a user