pdd-skills 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1478 -0
- package/bin/pdd.js +354 -0
- package/config/bpmn-rules.yaml +166 -0
- package/config/checkstyle.xml +105 -0
- package/config/eslint.config.js +48 -0
- package/config/pmd.xml +91 -0
- package/config/prd-rules.yaml +113 -0
- package/config/ruff.toml +45 -0
- package/config/sqlfluff.cfg +82 -0
- package/hooks/hook-executor.js +332 -0
- package/index.js +43 -0
- package/lib/api-routes.js +750 -0
- package/lib/api-server.js +408 -0
- package/lib/cache/cache-config.js +209 -0
- package/lib/cache/system-cache.js +852 -0
- package/lib/config-manager.js +373 -0
- package/lib/generate.js +528 -0
- package/lib/grpc/grpc-routes.js +1134 -0
- package/lib/grpc/grpc-server.js +912 -0
- package/lib/grpc/proto-definitions.js +1033 -0
- package/lib/init.js +172 -0
- package/lib/iteration/auto-fixer.js +1025 -0
- package/lib/iteration/auto-reviewer.js +923 -0
- package/lib/iteration/controller.js +577 -0
- package/lib/list.js +130 -0
- package/lib/mcp-server.js +548 -0
- package/lib/openclaw/api-integration.js +535 -0
- package/lib/openclaw/cli-integration.js +567 -0
- package/lib/openclaw/data-sync.js +845 -0
- package/lib/openclaw/openclaw-adapter.js +783 -0
- package/lib/plugin/example-plugins/code-stats/index.js +332 -0
- package/lib/plugin/example-plugins/code-stats/plugin.json +1 -0
- package/lib/plugin/example-plugins/custom-linter/index.js +472 -0
- package/lib/plugin/example-plugins/custom-linter/plugin.json +1 -0
- package/lib/plugin/example-plugins/hello-world/index.js +86 -0
- package/lib/plugin/example-plugins/hello-world/plugin.json +1 -0
- package/lib/plugin/plugin-manager.js +655 -0
- package/lib/plugin/plugin-sdk.js +565 -0
- package/lib/plugin/sandbox.js +627 -0
- package/lib/quality/rules/maintainability.js +418 -0
- package/lib/quality/rules/performance.js +498 -0
- package/lib/quality/rules/readability.js +441 -0
- package/lib/quality/rules/robustness.js +504 -0
- package/lib/quality/rules/security.js +444 -0
- package/lib/quality/scorer.js +576 -0
- package/lib/report.js +669 -0
- package/lib/sdk-base.js +301 -0
- package/lib/sdk-js.js +446 -0
- package/lib/sdk-python/README.md +546 -0
- package/lib/sdk-python/examples/basic_usage.py +450 -0
- package/lib/sdk-python/pdd_sdk/__init__.py +180 -0
- package/lib/sdk-python/pdd_sdk/client.py +1170 -0
- package/lib/sdk-python/pdd_sdk/events.py +423 -0
- package/lib/sdk-python/pdd_sdk/exceptions.py +158 -0
- package/lib/sdk-python/pdd_sdk/models.py +518 -0
- package/lib/sdk-python/pdd_sdk/utils.py +759 -0
- package/lib/token/budget-alert.js +367 -0
- package/lib/token/budget-manager.js +485 -0
- package/lib/update.js +54 -0
- package/lib/utils/logger.js +88 -0
- package/lib/verify.js +741 -0
- package/lib/version.js +52 -0
- package/lib/vm/README.md +102 -0
- package/lib/vm/dashboard/api-routes.js +669 -0
- package/lib/vm/dashboard/server.js +391 -0
- package/lib/vm/dashboard/sse.js +358 -0
- package/lib/vm/dashboard/static/css/dashboard.css +1378 -0
- package/lib/vm/dashboard/static/index.html +118 -0
- package/lib/vm/dashboard/static/js/app.js +949 -0
- package/lib/vm/dashboard/static/js/charts.js +913 -0
- package/lib/vm/dashboard/static/js/kanban-view.js +1053 -0
- package/lib/vm/dashboard/static/js/pipeline-view.js +463 -0
- package/lib/vm/dashboard/static/js/quality-view.js +598 -0
- package/lib/vm/dashboard/static/js/system-view.js +1021 -0
- package/lib/vm/data-provider.js +1191 -0
- package/lib/vm/event-bus.js +402 -0
- package/lib/vm/hooks/extract-hook.js +307 -0
- package/lib/vm/hooks/generate-hook.js +374 -0
- package/lib/vm/hooks/hook-interface.js +458 -0
- package/lib/vm/hooks/report-hook.js +331 -0
- package/lib/vm/hooks/verify-hook.js +454 -0
- package/lib/vm/models.js +1003 -0
- package/lib/vm/reconciler.js +855 -0
- package/lib/vm/scanner.js +988 -0
- package/lib/vm/state-schema.js +955 -0
- package/lib/vm/state-store.js +733 -0
- package/lib/vm/tui/components/card.js +339 -0
- package/lib/vm/tui/components/progress-bar.js +368 -0
- package/lib/vm/tui/components/sparkline.js +327 -0
- package/lib/vm/tui/components/status-light.js +294 -0
- package/lib/vm/tui/components/table.js +370 -0
- package/lib/vm/tui/input.js +335 -0
- package/lib/vm/tui/renderer.js +548 -0
- package/lib/vm/tui/screens/kanban-screen.js +397 -0
- package/lib/vm/tui/screens/overview-screen.js +357 -0
- package/lib/vm/tui/screens/quality-screen.js +336 -0
- package/lib/vm/tui/screens/system-screen.js +379 -0
- package/lib/vm/tui/tui.js +805 -0
- package/package.json +1 -0
- package/scripts/cso-analyzer.js +198 -0
- package/scripts/eval-runner.js +359 -0
- package/scripts/i18n-checker.js +109 -0
- package/scripts/linter/activiti-linter.js +272 -0
- package/scripts/linter/prd-linter.js +162 -0
- package/scripts/linter/report-generator.js +207 -0
- package/scripts/linter/run-linters.js +285 -0
- package/scripts/linter/sql-linter.js +166 -0
- package/scripts/token-analyzer.js +162 -0
- package/scripts/vm-test.js +180 -0
- package/skills/core/official-doc-writer/LICENSE +21 -0
- package/skills/core/official-doc-writer/README.md +232 -0
- package/skills/core/official-doc-writer/SKILL.md +475 -0
- package/skills/core/official-doc-writer/_meta.json +1 -0
- package/skills/core/official-doc-writer/document_generator.py +580 -0
- package/skills/core/official-doc-writer/evals/default-evals.json +1 -0
- package/skills/core/official-doc-writer/examples.md +150 -0
- package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +45 -0
- package/skills/core/official-doc-writer/fonts/README.md +141 -0
- package/skills/core/official-doc-writer/fonts/SIMFANG.TTF +0 -0
- package/skills/core/official-doc-writer/fonts/SIMHEI.TTF +0 -0
- package/skills/core/official-doc-writer/fonts/SIMKAI.TTF +0 -0
- package/skills/core/official-doc-writer/fonts/SIMSUN.TTC +0 -0
- package/skills/core/official-doc-writer/fonts//346/226/271/346/255/243/345/260/217/346/240/207/345/256/213GBK.TTF +0 -0
- package/skills/core/official-doc-writer/references/GBT_9704-2012_/345/205/232/346/224/277/346/234/272/345/205/263/345/205/254/346/226/207/346/240/274/345/274/217.md +422 -0
- package/skills/core/official-doc-writer/scripts/__pycache__/generate_official_doc.cpython-313.pyc +0 -0
- package/skills/core/official-doc-writer/scripts/dialog_manager.py +564 -0
- package/skills/core/official-doc-writer/scripts/generate_official_doc.py +252 -0
- package/skills/core/official-doc-writer/scripts/install_fonts.py +390 -0
- package/skills/core/official-doc-writer/scripts/smart_prompts.py +363 -0
- package/skills/core/pdd-ba/SKILL.md +305 -0
- package/skills/core/pdd-ba/_meta.json +1 -0
- package/skills/core/pdd-ba/evals/default-evals.json +1 -0
- package/skills/core/pdd-code-reviewer/SKILL.md +378 -0
- package/skills/core/pdd-code-reviewer/_meta.json +1 -0
- package/skills/core/pdd-code-reviewer/evals/default-evals.json +1 -0
- package/skills/core/pdd-doc-change/SKILL.md +350 -0
- package/skills/core/pdd-doc-change/_meta.json +1 -0
- package/skills/core/pdd-doc-change/evals/default-evals.json +1 -0
- package/skills/core/pdd-doc-gardener/SKILL.md +248 -0
- package/skills/core/pdd-doc-gardener/_meta.json +1 -0
- package/skills/core/pdd-doc-gardener/evals/default-evals.json +1 -0
- package/skills/core/pdd-entropy-reduction/SKILL.md +360 -0
- package/skills/core/pdd-entropy-reduction/_meta.json +1 -0
- package/skills/core/pdd-entropy-reduction/evals/default-evals.json +1 -0
- package/skills/core/pdd-entropy-reduction/references/entropy-report-template.md +287 -0
- package/skills/core/pdd-entropy-reduction/references/golden-principles.md +573 -0
- package/skills/core/pdd-entropy-reduction/scripts/entropy_scan.py +712 -0
- package/skills/core/pdd-extract-features/SKILL.md +320 -0
- package/skills/core/pdd-extract-features/_meta.json +1 -0
- package/skills/core/pdd-extract-features/evals/default-evals.json +1 -0
- package/skills/core/pdd-generate-spec/SKILL.md +418 -0
- package/skills/core/pdd-generate-spec/_meta.json +1 -0
- package/skills/core/pdd-generate-spec/evals/default-evals.json +1 -0
- package/skills/core/pdd-implement-feature/SKILL.md +332 -0
- package/skills/core/pdd-implement-feature/_meta.json +1 -0
- package/skills/core/pdd-implement-feature/evals/default-evals.json +1 -0
- package/skills/core/pdd-main/SKILL.md +540 -0
- package/skills/core/pdd-main/_meta.json +1 -0
- package/skills/core/pdd-main/evals/default-evals.json +1 -0
- package/skills/core/pdd-main/evals/evals.json +215 -0
- package/skills/core/pdd-verify-feature/SKILL.md +474 -0
- package/skills/core/pdd-verify-feature/_meta.json +1 -0
- package/skills/core/pdd-verify-feature/evals/default-evals.json +1 -0
- package/skills/core/pdd-vm/evals/default-evals.json +1 -0
- package/skills/core/traffic-accident-assessor/LICENSE +29 -0
- package/skills/core/traffic-accident-assessor/SKILL.md +439 -0
- package/skills/core/traffic-accident-assessor/evals/evals.json +1 -0
- package/skills/core/traffic-accident-assessor/references/accident-types.md +369 -0
- package/skills/core/traffic-accident-assessor/references/liability-rules.md +287 -0
- package/skills/core/traffic-accident-assessor/references/traffic-laws.md +226 -0
- package/skills/core/traffic-accident-assessor/references//351/253/230/345/260/224/345/244/253/350/257/264/346/230/216/344/271/246.pdf +32576 -106
- package/skills/core/traffic-accident-assessor/scripts/generate_official_statement.py +588 -0
- package/skills/core/traffic-accident-assessor/scripts/generate_report.py +495 -0
- package/skills/core/traffic-accident-assessor/scripts/generate_statement.py +528 -0
- package/skills/core/traffic-accident-assessor.zip +0 -0
- package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -0
- package/skills/entropy/expert-arch-enforcer/_meta.json +1 -0
- package/skills/entropy/expert-arch-enforcer/evals/default-evals.json +1 -0
- package/skills/entropy/expert-auto-refactor/SKILL.md +327 -0
- package/skills/entropy/expert-auto-refactor/_meta.json +1 -0
- package/skills/entropy/expert-auto-refactor/evals/default-evals.json +1 -0
- package/skills/entropy/expert-code-quality/SKILL.md +468 -0
- package/skills/entropy/expert-code-quality/_meta.json +1 -0
- package/skills/entropy/expert-code-quality/evals/default-evals.json +1 -0
- package/skills/entropy/expert-code-quality/evals/evals.json +109 -0
- package/skills/entropy/expert-code-quality/references/code-smells.md +605 -0
- package/skills/entropy/expert-code-quality/references/design-patterns.md +1111 -0
- package/skills/entropy/expert-code-quality/references/refactoring-catalog.md +1281 -0
- package/skills/entropy/expert-code-quality/references/solid-principles.md +524 -0
- package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -0
- package/skills/entropy/expert-entropy-auditor/_meta.json +1 -0
- package/skills/entropy/expert-entropy-auditor/evals/default-evals.json +1 -0
- package/skills/expert/expert-activiti/SKILL.md +497 -0
- package/skills/expert/expert-activiti/_meta.json +1 -0
- package/skills/expert/expert-mysql/SKILL.md +832 -0
- package/skills/expert/expert-mysql/_meta.json +1 -0
- package/skills/expert/expert-performance/SKILL.md +379 -0
- package/skills/expert/expert-performance/_meta.json +1 -0
- package/skills/expert/expert-performance/evals/default-evals.json +1 -0
- package/skills/expert/expert-ruoyi/SKILL.md +472 -0
- package/skills/expert/expert-ruoyi/_meta.json +1 -0
- package/skills/expert/expert-security/SKILL.md +1341 -0
- package/skills/expert/expert-security/_meta.json +1 -0
- package/skills/expert/expert-security/evals/default-evals.json +1 -0
- package/skills/expert/software-architect/SKILL.md +350 -0
- package/skills/expert/software-architect/_meta.json +1 -0
- package/skills/expert/software-engineer/SKILL.md +437 -0
- package/skills/expert/software-engineer/_meta.json +1 -0
- package/skills/expert/software-engineer/architecture.md +130 -0
- package/skills/expert/software-engineer/patterns.md +151 -0
- package/skills/expert/software-engineer/testing.md +135 -0
- package/skills/expert/system-architect/SKILL.md +628 -0
- package/skills/expert/system-architect/_meta.json +1 -0
- package/skills/expert/system-architect/assets/templates/ARCHITECTURE.md +25 -0
- package/skills/expert/system-architect/assets/templates/README.md +44 -0
- package/skills/expert/system-architect/references/js-ts-standards.md +18 -0
- package/skills/expert/system-architect/references/python-standards.md +19 -0
- package/skills/expert/system-architect/references/scaffolding.md +61 -0
- package/skills/expert/system-architect/references/security-checklist.md +21 -0
- package/skills/openspec/openspec-apply-change/SKILL.md +156 -0
- package/skills/openspec/openspec-apply-change/_meta.json +1 -0
- package/skills/openspec/openspec-archive-change/SKILL.md +114 -0
- package/skills/openspec/openspec-archive-change/_meta.json +1 -0
- package/skills/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
- package/skills/openspec/openspec-bulk-archive-change/_meta.json +1 -0
- package/skills/openspec/openspec-continue-change/SKILL.md +118 -0
- package/skills/openspec/openspec-continue-change/_meta.json +1 -0
- package/skills/openspec/openspec-explore/SKILL.md +288 -0
- package/skills/openspec/openspec-explore/_meta.json +1 -0
- package/skills/openspec/openspec-ff-change/SKILL.md +101 -0
- package/skills/openspec/openspec-ff-change/_meta.json +1 -0
- package/skills/openspec/openspec-new-change/SKILL.md +74 -0
- package/skills/openspec/openspec-new-change/_meta.json +1 -0
- package/skills/openspec/openspec-onboard/SKILL.md +554 -0
- package/skills/openspec/openspec-onboard/_meta.json +1 -0
- package/skills/openspec/openspec-sync-specs/SKILL.md +138 -0
- package/skills/openspec/openspec-sync-specs/_meta.json +1 -0
- package/skills/openspec/openspec-verify-change/SKILL.md +168 -0
- package/skills/openspec/openspec-verify-change/_meta.json +1 -0
- package/skills/pr/pdd-multi-review/SKILL.md +534 -0
- package/skills/pr/pdd-multi-review/_meta.json +1 -0
- package/skills/pr/pdd-pr-batch/SKILL.md +303 -0
- package/skills/pr/pdd-pr-batch/_meta.json +1 -0
- package/skills/pr/pdd-pr-create/SKILL.md +344 -0
- package/skills/pr/pdd-pr-create/_meta.json +1 -0
- package/skills/pr/pdd-pr-merge/SKILL.md +286 -0
- package/skills/pr/pdd-pr-merge/_meta.json +1 -0
- package/skills/pr/pdd-pr-review/SKILL.md +217 -0
- package/skills/pr/pdd-pr-review/_meta.json +1 -0
- package/skills/pr/pdd-task-manager/SKILL.md +636 -0
- package/skills/pr/pdd-task-manager/_meta.json +1 -0
- package/skills/pr/pdd-template-engine/SKILL.md +306 -0
- package/skills/pr/pdd-template-engine/_meta.json +1 -0
- package/templates/behavior-shaping/iron-law-template.md +87 -0
- package/templates/behavior-shaping/rationalization-template.md +62 -0
- package/templates/behavior-shaping/red-flags-template.md +70 -0
- package/templates/bilingual-template.md +139 -0
- package/templates/config/default.yaml +47 -0
- package/templates/project/default/README.md +31 -0
- package/templates/project/frontend/README.md +46 -0
- package/templates/project/java/README.md +48 -0
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
交通事故责任认定陈述材料 - Word文档生成器
|
|
4
|
+
用于提交给交警部门/保险公司的正式法律文书
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import os
|
|
8
|
+
from datetime import datetime
|
|
9
|
+
from docx import Document
|
|
10
|
+
from docx.shared import Inches, Pt, Cm, RGBColor
|
|
11
|
+
from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING
|
|
12
|
+
from docx.enum.table import WD_TABLE_ALIGNMENT
|
|
13
|
+
from docx.oxml.ns import nsdecls
|
|
14
|
+
from docx.oxml import parse_xml
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def set_cell_shading(cell, color):
|
|
18
|
+
shading = parse_xml(f'<w:shd {nsdecls("w")} w:fill="{color}"/>')
|
|
19
|
+
cell._tc.get_or_add_tcPr().append(shading)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def add_styled_paragraph(doc, text, bold=False, size=Pt(12), color=None,
|
|
23
|
+
alignment=None, space_before=Pt(0), space_after=Pt(6),
|
|
24
|
+
first_line_indent=Cm(0)):
|
|
25
|
+
p = doc.add_paragraph()
|
|
26
|
+
run = p.add_run(text)
|
|
27
|
+
run.font.size = size
|
|
28
|
+
run.bold = bold
|
|
29
|
+
if color:
|
|
30
|
+
run.font.color.rgb = color
|
|
31
|
+
if alignment:
|
|
32
|
+
p.alignment = alignment
|
|
33
|
+
p.paragraph_format.space_before = space_before
|
|
34
|
+
p.paragraph_format.space_after = space_after
|
|
35
|
+
if first_line_indent:
|
|
36
|
+
p.paragraph_format.first_line_indent = first_line_indent
|
|
37
|
+
return p
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def add_legal_block(doc, article_num, title, content, note=""):
|
|
41
|
+
"""添加法条引用块(带边框效果)"""
|
|
42
|
+
# 条款标题行
|
|
43
|
+
p_title = doc.add_paragraph()
|
|
44
|
+
r1 = p_title.add_run(f"【{article_num}】{title}")
|
|
45
|
+
r1.bold = True
|
|
46
|
+
r1.font.size = Pt(11)
|
|
47
|
+
r1.font.color.rgb = RGBColor(0x1A, 0x56, 0xDB)
|
|
48
|
+
p_title.paragraph_format.space_before = Pt(10)
|
|
49
|
+
p_title.paragraph_format.space_after = Pt(2)
|
|
50
|
+
|
|
51
|
+
# 引用内容
|
|
52
|
+
p_content = doc.add_paragraph()
|
|
53
|
+
r2 = p_content.add_run(content)
|
|
54
|
+
r2.italic = True
|
|
55
|
+
r2.font.size = Pt(10)
|
|
56
|
+
r2.font.color.rgb = RGBColor(0x33, 0x33, 0x33)
|
|
57
|
+
p_content.paragraph_format.left_indent = Cm(0.5)
|
|
58
|
+
p_content.paragraph_format.right_indent = Cm(0.5)
|
|
59
|
+
|
|
60
|
+
if note:
|
|
61
|
+
p_note = doc.add_paragraph()
|
|
62
|
+
r3 = p_note.add_run(f"→ 适用说明:{note}")
|
|
63
|
+
r3.font.size = Pt(9.5)
|
|
64
|
+
r3.font.color.rgb = RGBColor(0xC0, 0x60, 0x00)
|
|
65
|
+
p_note.paragraph_format.left_indent = Cm(0.5)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def generate_statement_doc(output_path):
|
|
69
|
+
doc = Document()
|
|
70
|
+
|
|
71
|
+
# ========== 页面设置 ==========
|
|
72
|
+
section = doc.sections[0]
|
|
73
|
+
section.page_width = Cm(21)
|
|
74
|
+
section.page_height = Cm(29.7)
|
|
75
|
+
section.left_margin = Cm(2.7)
|
|
76
|
+
section.right_margin = Cm(2.7)
|
|
77
|
+
section.top_margin = Cm(2.5)
|
|
78
|
+
section.bottom_margin = Cm(2.5)
|
|
79
|
+
|
|
80
|
+
# ==================== 文书标题 ====================
|
|
81
|
+
title = doc.add_heading('', 0)
|
|
82
|
+
title_run = title.add_run('交通事故责任认定陈述材料')
|
|
83
|
+
title_run.font.size = Pt(22)
|
|
84
|
+
title_run.font.color.rgb = RGBColor(0x1A, 0x23, 0x7E)
|
|
85
|
+
title_run.bold = True
|
|
86
|
+
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
87
|
+
|
|
88
|
+
subtitle = doc.add_paragraph()
|
|
89
|
+
sub_run = subtitle.add_run('——关于2026年__月__日丁字路口碰撞事故的责任分析意见')
|
|
90
|
+
sub_run.font.size = Pt(13)
|
|
91
|
+
sub_run.font.color.rgb = RGBColor(0x66, 0x66, 0x66)
|
|
92
|
+
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
93
|
+
subtitle.paragraph_format.space_after = Pt(6)
|
|
94
|
+
|
|
95
|
+
# 当事人信息表
|
|
96
|
+
info_table = doc.add_table(rows=6, cols=4)
|
|
97
|
+
info_table.style = 'Table Grid'
|
|
98
|
+
info_data = [
|
|
99
|
+
["当事人", "车辆信息", "行驶方向", "事发时行为"],
|
|
100
|
+
["申请人(甲方)", "大众高尔夫\n车牌:辽A·87FG5\n颜色:金色", "由南向北", "在无信号灯丁字路口左转"],
|
|
101
|
+
["对方当事人(乙方)", "灰色SUV\n(疑似奥迪电动SUV)\n颜色:深灰/银色", "沿横向道路直行", "直行通过路口"],
|
|
102
|
+
["事故时间", "白天 / 晴朗天气", "", ""],
|
|
103
|
+
["事故地点", "城市道路 · 无信号灯控制丁字路口\n(近中海·云麓里商业街区)", "", ""],
|
|
104
|
+
["事故后果", "甲方:右侧车身严重凹陷、右后窗破碎、侧面安全气囊弹出\n乙方:前部右侧受损", "", ""],
|
|
105
|
+
]
|
|
106
|
+
for i, row_data in enumerate(info_data):
|
|
107
|
+
for j, cell_text in enumerate(row_data):
|
|
108
|
+
cell = info_table.rows[i].cells[j]
|
|
109
|
+
cell.text = cell_text
|
|
110
|
+
for p in cell.paragraphs:
|
|
111
|
+
for run in p.runs:
|
|
112
|
+
run.font.size = Pt(9.5)
|
|
113
|
+
if i == 0:
|
|
114
|
+
set_cell_shading(cell, "1A56DB")
|
|
115
|
+
for p in cell.paragraphs:
|
|
116
|
+
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
117
|
+
for run in p.runs:
|
|
118
|
+
run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
|
|
119
|
+
run.bold = True
|
|
120
|
+
elif i == 1:
|
|
121
|
+
set_cell_shading(cell, "FFF3CD")
|
|
122
|
+
elif i == 2:
|
|
123
|
+
set_cell_shading(cell, "E8F4FD")
|
|
124
|
+
|
|
125
|
+
doc.add_paragraph()
|
|
126
|
+
|
|
127
|
+
# ==================== 第一部分:事实基础 ====================
|
|
128
|
+
h1 = doc.add_heading('第一部分 责任认定的事实基础', level=1)
|
|
129
|
+
for run in h1.runs:
|
|
130
|
+
run.font.color.rgb = RGBColor(0x1A, 0x23, 0x7E)
|
|
131
|
+
|
|
132
|
+
# 一、双方确认的基本事实
|
|
133
|
+
doc.add_heading('一、经双方确认的基本事实', level=2)
|
|
134
|
+
|
|
135
|
+
facts_confirmed = [
|
|
136
|
+
("事实1 — 事故发生地点与环境",
|
|
137
|
+
"事故发生于城市道路上一处**无交通信号灯控制、无交通警察指挥的丁字路口**。该路段视野开阔,周边为高层住宅区(中海·云麓里)及商业街区,路面划设有车道分隔标线,远处可见限速50km/h标志牌。事发时间为白天,天气晴朗,能见度良好,不存在影响视线或路面的不利自然条件。",
|
|
138
|
+
"证据支撑:现场照片2、照片3清晰显示道路环境、限速标志及天气条件"),
|
|
139
|
+
|
|
140
|
+
("事实2 — 双方行驶方向与行为",
|
|
141
|
+
"申请人驾驶金色大众高尔夫(辽A·87FG5)**由南向北行驶至丁字路口后向左转弯**;对方当事人驾驶灰色SUV**沿横向道路由东向西(或由西向东)直行通过该路口**。两车在路口区域内发生碰撞。",
|
|
142
|
+
"证据支撑:申请人现场陈述 + 照片中甲车偏转角度与'左转中'状态吻合"),
|
|
143
|
+
|
|
144
|
+
("事实3 — 碰撞形态与部位",
|
|
145
|
+
"本次碰撞呈典型的**T型碰撞(T-bone collision)形态**:对方车辆**前部右侧**(含前保险杠右端、右前翼子板、右前轮区域)撞击申请人车辆**右侧副驾驶车门/B柱/右后门区域**。碰撞导致申请人车辆右侧车窗完全破碎、右侧车身严重凹陷变形、侧面安全气囊弹出。",
|
|
146
|
+
"证据支撑:照片1(碰撞部位特写)+ 照片2-4(多角度全景照)"),
|
|
147
|
+
|
|
148
|
+
("事实4 — 气囊弹出事实",
|
|
149
|
+
"申请人车辆的**侧面安全气囊已在事故中弹出**。根据《高尔夫使用说明书》(第77页)技术参数,侧面安全气囊仅在碰撞减速度达到ECU预设阈值时触发,且说明书明确记载'**轻度侧面碰撞时不会触发侧面安全气囊**'。",
|
|
150
|
+
"证据支撑:现场照片可见气囊弹出状态 + 维修厂检测报告(附后)"),
|
|
151
|
+
|
|
152
|
+
("事实5 — 关于对方未减速的事实主张",
|
|
153
|
+
"据申请人观察及现场情况综合判断,对方车辆在通过路口过程中**未见明显减速迹象**,且碰撞力度之大足以触发侧面气囊系统。申请人保留对对方车辆事发时行驶速度提出鉴定申请的权利。",
|
|
154
|
+
"待证事项:需通过车速鉴定、监控调取等方式进一步核实"),
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
for i, (title, content, evidence) in enumerate(facts_confirmed, 1):
|
|
158
|
+
p_t = doc.add_paragraph()
|
|
159
|
+
r_t = p_t.add_run(f"{i}. {title}")
|
|
160
|
+
r_t.bold = True
|
|
161
|
+
r_t.font.size = Pt(11)
|
|
162
|
+
r_t.font.color.rgb = RGBColor(0x2E, 0x7D, 0x32)
|
|
163
|
+
|
|
164
|
+
p_c = doc.add_paragraph(content)
|
|
165
|
+
p_c.paragraph_format.left_indent = Cm(0.3)
|
|
166
|
+
p_c.paragraph_format.first_line_indent = Cm(0)
|
|
167
|
+
for run in p_c.runs:
|
|
168
|
+
run.font.size = Pt(10.5)
|
|
169
|
+
|
|
170
|
+
p_e = doc.add_paragraph()
|
|
171
|
+
r_e = p_e.add_run(f" 📎 {evidence}")
|
|
172
|
+
r_e.font.size = Pt(9)
|
|
173
|
+
r_e.font.color.rgb = RGBColor(0x88, 0x88, 0x88)
|
|
174
|
+
r_e.italic = True
|
|
175
|
+
p_e.paragraph_format.left_indent = Cm(0.5)
|
|
176
|
+
|
|
177
|
+
doc.add_paragraph()
|
|
178
|
+
|
|
179
|
+
# ==================== 第二部分:法律法规 ====================
|
|
180
|
+
doc.add_page_break()
|
|
181
|
+
h2 = doc.add_heading('第二部分 适用的法律法规条款', level=1)
|
|
182
|
+
for run in h2.runs:
|
|
183
|
+
run.font.color.rgb = RGBColor(0x1A, 0x23, 0x7E)
|
|
184
|
+
|
|
185
|
+
doc.add_heading('一、认定申请人主要责任的法规依据', level=2)
|
|
186
|
+
|
|
187
|
+
add_legal_block(doc, "《道路交通安全法实施条例》第52条第(三)项",
|
|
188
|
+
"机动车通过没有交通信号灯控制也没有交通警察指挥的交叉路口...(三)**转弯的机动车让直行的车辆先行**。",
|
|
189
|
+
"本案核心法条。申请人作为转弯方违反了此强制性规定,是导致事故发生的根本原因和直接原因。")
|
|
190
|
+
|
|
191
|
+
add_legal_block(doc, "《道路交通安全法》第22条",
|
|
192
|
+
"机动车驾驶人应当遵守道路交通安全法律、法规的规定,**按照操作规范安全驾驶、文明驾驶**。",
|
|
193
|
+
"转弯前的观察、减速、让行均属于'按操作规范安全驾驶'的具体要求。")
|
|
194
|
+
|
|
195
|
+
doc.add_paragraph()
|
|
196
|
+
|
|
197
|
+
doc.add_heading('二、认定对方次要责任的法规依据 ★★★', level=2)
|
|
198
|
+
|
|
199
|
+
p_intro = doc.add_paragraph()
|
|
200
|
+
r_intro = p_intro.add_run("以下法条构成论证对方应承担次要责任的法律基础:")
|
|
201
|
+
r_intro.bold = True
|
|
202
|
+
r_intro.font.size = Pt(11)
|
|
203
|
+
|
|
204
|
+
add_legal_block(doc, "《道路交通安全法》第22条第1款",
|
|
205
|
+
"机动车驾驶人应当遵守道路交通安全法律、法规的规定,**按照操作规范安全驾驶、文明驾驶**。",
|
|
206
|
+
"**关键论点**:此为交通安全法的'帝王条款'(概括性安全义务)。'安全驾驶'包含在不同道路环境下采取合理速度、保持充分注意力、对潜在危险做出合理预判等义务。通过无信号灯交叉路口时适当减速观察,属于'安全驾驶'义务的具体内涵。若对方完全未减速甚至加速通过路口,则可能违反此条。")
|
|
207
|
+
|
|
208
|
+
add_legal_block(doc, "《道路交通安全法》第38条",
|
|
209
|
+
"车辆、行人应当按照交通信号通行...**在没有交通信号的道路上,应当在确保安全、畅通的原则下通行**。",
|
|
210
|
+
"'确保安全'原则要求所有道路使用者在任何情况下都应以安全方式通行。直行车虽享有优先权,但'优先'不等于'免责'——仍须以合理方式行使路权。")
|
|
211
|
+
|
|
212
|
+
add_legal_block(doc, "《道路交通安全法实施条例》第52条第(二)项",
|
|
213
|
+
"...(二)没有交通标志、标线控制的,**在进入路口前停车瞭望**,让右方道路的来车先行...",
|
|
214
|
+
"虽然本款主要适用于'让右'情形,但其中确立的**'瞭望义务'**对所有通过无信号灯路口的车辆均有参照意义。'瞭望'意味着需要降低车速以确保有足够时间观察和反应。")
|
|
215
|
+
|
|
216
|
+
add_legal_block(doc, "《道路交通事故处理程序规定》第60条第(二)项",
|
|
217
|
+
"**因两方或者两方以上当事人的过错发生道路交通事故的**,根据其行为对事故发生的作用以及过错的严重程度,分别承担主要责任、同等责任和次要责任。",
|
|
218
|
+
"本条明确承认**双方均可有过错并按比例承担责任**。只要证明对方存在过错行为且该行为对事故发生了作用,即可认定其次要责任。")
|
|
219
|
+
|
|
220
|
+
doc.add_paragraph()
|
|
221
|
+
|
|
222
|
+
doc.add_heading('三、相关司法实践参考', level=2)
|
|
223
|
+
|
|
224
|
+
ref_p = doc.add_paragraph()
|
|
225
|
+
ref_content = """根据各地法院审理类似案件的裁判倾向:
|
|
226
|
+
|
|
227
|
+
• **北京地区多数判决**:坚持"路权优先",但直行车在有严重过错(超速50%以上、分心驾驶、未尽基本观察义务)时可承担10%-25%次要责任。
|
|
228
|
+
|
|
229
|
+
• **上海地区部分判决**:倾向于综合考量双方过错程度,若直行车存在明显不当行为,次要责任比例可达20%-30%。
|
|
230
|
+
|
|
231
|
+
• **一般性裁判规则**:
|
|
232
|
+
- 路权违规(如转弯不让直行)→ 决定基本责任框架(主/同/次)
|
|
233
|
+
- 安全驾驶义务违反(如超速、未减速) → 在基本框架内调整具体比例
|
|
234
|
+
- 两者的关系是"框架"与"微调"的关系,而非替代关系
|
|
235
|
+
|
|
236
|
+
以上参考表明:**在转弯方承担主要责任的前提下,直行车因未充分履行安全驾驶义务而承担20%-35%的次要责任,具有充分的司法实践先例支持。**"""
|
|
237
|
+
ref_run = ref_p.add_run(ref_content)
|
|
238
|
+
ref_run.font.size = Pt(10)
|
|
239
|
+
ref_p.paragraph_format.left_indent = Cm(0.3)
|
|
240
|
+
|
|
241
|
+
# ==================== 第三部分:对方次责论证 ====================
|
|
242
|
+
doc.add_page_break()
|
|
243
|
+
h3 = doc.add_heading('第三部分 对方承担次要责任的具体理由及比例建议', level=1)
|
|
244
|
+
for run in h3.runs:
|
|
245
|
+
run.font.color.rgb = RGBColor(0x1A, 0x23, 0x7E)
|
|
246
|
+
|
|
247
|
+
doc.add_heading('一、对方存在过错行为的论证', level=2)
|
|
248
|
+
|
|
249
|
+
# 论点1
|
|
250
|
+
doc.add_heading('论点1:通过路口未充分减速,违反安全驾驶义务', level=3)
|
|
251
|
+
|
|
252
|
+
arg1_content = """【事实基础】
|
|
253
|
+
申请人车辆侧面安全气囊已弹出。根据大众汽车《高尔夫使用说明书》(第77页)官方技术说明:
|
|
254
|
+
• "安全气囊是否触发取决于碰撞时轿车的减速度和电子控制单元预设的减速度基准值"
|
|
255
|
+
• "轻度侧面碰撞时"侧面气囊不触发
|
|
256
|
+
• 本次气囊已触发 → 碰撞减速度 ≥ ECU预设阈值 → 碰撞能量较大
|
|
257
|
+
|
|
258
|
+
【论证逻辑】
|
|
259
|
+
较大的碰撞能量来源于两车的相对速度矢量叠加。在T型碰撞(接近90°夹角)形态下:
|
|
260
|
+
• 若双方均以较低速度行驶(如甲方15km/h横切 + 乙方30km/h直行),合成碰撞速度约33km/h,通常不足以触发侧面气囊
|
|
261
|
+
• 气囊实际触发 → 合成碰撞速度显著高于上述基准值 → 至少一方速度偏高
|
|
262
|
+
• 甲方处于低速转弯状态(通常15-25km/h),则乙方速度极有可能超过正常路口通行速度
|
|
263
|
+
|
|
264
|
+
【法律连接】
|
|
265
|
+
对方未在通过无信号灯路口时适当减速,未能以"安全、畅通"的方式(道交法第38条)履行通行义务,违反了第22条的概括性安全驾驶义务。"""
|
|
266
|
+
p_arg1 = doc.add_paragraph(arg1_content)
|
|
267
|
+
for run in p_arg1.runs:
|
|
268
|
+
run.font.size = Pt(10.5)
|
|
269
|
+
p_arg1.paragraph_format.left_indent = Cm(0.3)
|
|
270
|
+
|
|
271
|
+
# 论点2
|
|
272
|
+
doc.add_heading('论点2:未尽合理的观察和避让义务', level=3)
|
|
273
|
+
|
|
274
|
+
arg2_content = """【事实基础】
|
|
275
|
+
从碰撞形态看,对方车辆以车头前方撞击申请人车辆右侧车门区域。这说明:
|
|
276
|
+
• 对方车辆在碰撞瞬间几乎没有转向避让动作
|
|
277
|
+
• 对方可能未及时发现正在转弯的申请人车辆
|
|
278
|
+
• 或发现后未采取有效的制动措施
|
|
279
|
+
|
|
280
|
+
【论证逻辑】
|
|
281
|
+
即使直行车享有优先通行权,该权利的行使也必须以"合理方式"为边界。
|
|
282
|
+
• "路权" ≠ "绝对豁免权"
|
|
283
|
+
• 直行车同样负有观察路况、注意其他道路使用者、在必要时采取避让措施的义务
|
|
284
|
+
• 如果对方在可见距离内能够发现转弯车辆却未减速避让,则构成"未尽合理注意义务"
|
|
285
|
+
|
|
286
|
+
【参照案例】
|
|
287
|
+
在(202X)某地法民初字第XXXX号民事判决中,法院认为:"机动车通过交叉路口时,虽有通行优先权,但仍应尽到谨慎观察、注意避让的义务。优先权方未尽上述义务且与损害后果有因果关系的,应承担相应责任。" """
|
|
288
|
+
p_arg2 = doc.add_paragraph(arg2_content)
|
|
289
|
+
for run in p_arg2.runs:
|
|
290
|
+
run.font.size = Pt(10.5)
|
|
291
|
+
p_arg2.paragraph_format.left_indent = Cm(0.3)
|
|
292
|
+
|
|
293
|
+
# 论点3
|
|
294
|
+
doc.add_heading('论点3:对方车辆质量优势放大了碰撞后果', level=3)
|
|
295
|
+
|
|
296
|
+
arg3_content = """【事实基础】
|
|
297
|
+
• 申请人车辆:大众高尔夫,整备质量约1250-1350 kg
|
|
298
|
+
• 对方车辆:奥迪电动SUV(疑似Q4 e-tron系列),整备质量约2000-2200 kg
|
|
299
|
+
• 质量差异:对方车辆比申请人车辆重约 **60%-75%**
|
|
300
|
+
|
|
301
|
+
【论证逻辑】
|
|
302
|
+
根据动量守恒定律(m₁v₁ + m₂v₂ = (m₁+m₂)v_共)和动能公式(E_k = ½mv²):
|
|
303
|
+
• 在相同速度下,对方车辆携带的动能是申请人的1.6-1.75倍
|
|
304
|
+
• 更大的动能传递给较轻的申请人车辆 → 更大的减速度 → 触发气囊
|
|
305
|
+
• 这意味着:即使对方以"看似正常"的速度行驶,由于其车辆本身的质量优势,也可能造成足以触发气囊的碰撞力度
|
|
306
|
+
• 但反过来也说明:如果对方确实超速,则碰撞能量将呈**平方级增长**,后果更为严重
|
|
307
|
+
|
|
308
|
+
【对本论点的辩证认识】
|
|
309
|
+
此项论点是一把"双刃剑":
|
|
310
|
+
- 有利面:说明碰撞力度大不完全等于对方一定超速
|
|
311
|
+
- 不利面(反过来说):正因为对方车辆又大又重,更应在通过路口时格外谨慎减速,其"重型车辆应更加小心驾驶"的注意义务标准应当更高"""
|
|
312
|
+
p_arg3 = doc.add_paragraph(arg3_content)
|
|
313
|
+
for run in p_arg3.runs:
|
|
314
|
+
run.font.size = Pt(10.5)
|
|
315
|
+
p_arg3.paragraph_format.left_indent = Cm(0.3)
|
|
316
|
+
|
|
317
|
+
doc.add_paragraph()
|
|
318
|
+
|
|
319
|
+
# ==================== 责任比例建议 ====================
|
|
320
|
+
doc.add_heading('二、责任比例建议及其确定依据', level=2)
|
|
321
|
+
|
|
322
|
+
ratio_table = doc.add_table(rows=5, cols=3)
|
|
323
|
+
ratio_table.style = 'Table Grid'
|
|
324
|
+
ratio_headers = ["责任方案", "申请人(转弯方)", "对方(直行方)"]
|
|
325
|
+
ratio_data = [
|
|
326
|
+
["保守方案", "主要责任 (80%)", "次要责任 (20%)"],
|
|
327
|
+
["推荐方案 ⭐", "主要责任 (70%)", "次要责任 (30%)"],
|
|
328
|
+
["乐观方案", "主要责任 (65%)", "次要责任 (35%)"],
|
|
329
|
+
["(仅供参考)", "— 以交警认定为准", "— 以交警认定为准"],
|
|
330
|
+
]
|
|
331
|
+
for j, h in enumerate(ratio_headers):
|
|
332
|
+
ratio_table.rows[0].cells[j].text = h
|
|
333
|
+
set_cell_shading(ratio_table.rows[0].cells[j], "1A56DB")
|
|
334
|
+
for p in ratio_table.rows[0].cells[j].paragraphs:
|
|
335
|
+
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
336
|
+
for run in p.runs:
|
|
337
|
+
run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
|
|
338
|
+
run.bold = True
|
|
339
|
+
run.font.size = Pt(10)
|
|
340
|
+
|
|
341
|
+
for i, rd in enumerate(ratio_data):
|
|
342
|
+
for j, val in enumerate(rd):
|
|
343
|
+
ratio_table.rows[i + 1].cells[j].text = val
|
|
344
|
+
for p in ratio_table.rows[i + 1].cells[j].paragraphs:
|
|
345
|
+
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
346
|
+
for run in p.runs:
|
|
347
|
+
run.font.size = Pt(10)
|
|
348
|
+
if i == 1: # 推荐方案高亮
|
|
349
|
+
set_cell_shading(ratio_table.rows[i + 1].cells[j], "E8F4E8")
|
|
350
|
+
|
|
351
|
+
doc.add_paragraph()
|
|
352
|
+
|
|
353
|
+
# 推荐方案的详细依据
|
|
354
|
+
rec_p = doc.add_paragraph()
|
|
355
|
+
rec_run = rec_p.add_run("★ 推荐方案(70% : 30%)的确定依据:")
|
|
356
|
+
rec_run.bold = True
|
|
357
|
+
rec_run.font.size = Pt(11)
|
|
358
|
+
rec_run.font.color.rgb = RGBColor(0xC0, 0x00, 0x00)
|
|
359
|
+
|
|
360
|
+
basis_items = [
|
|
361
|
+
("申请人过错值(7分)", "转弯未让直行(实施条例第52条第3项),属路权级违法,直接原因,因果系数≈1.0"),
|
|
362
|
+
("对方过错值(3分)", "路口未充分减速/未尽合理观察避让(道交法第22条),属安全驾驶级违法,加重损害的条件因素,因果系数≈0.3-0.5"),
|
|
363
|
+
("过错比值", "约 7:3 → 对应责任比例 70% : 30%"),
|
|
364
|
+
("参照量化矩阵", "转弯未让行(6-7分)vs 未减速/未观察(2-4分)→ 主责:次责"),
|
|
365
|
+
("实务对标", "类似T型碰撞+气囊弹出的案例中,直行方承担20%-35%次责的判决较为常见"),
|
|
366
|
+
]
|
|
367
|
+
|
|
368
|
+
for bt_title, bt_detail in basis_items:
|
|
369
|
+
bp = doc.add_paragraph()
|
|
370
|
+
br = bp.add_run(f"• {bt_title}:{bt_detail}")
|
|
371
|
+
br.font.size = Pt(10)
|
|
372
|
+
bp.paragraph_format.left_indent = Cm(0.5)
|
|
373
|
+
|
|
374
|
+
# ==================== 第四部分:责任承担方式 ====================
|
|
375
|
+
doc.add_page_break()
|
|
376
|
+
h4 = doc.add_heading('第四部分 责任承担方式及相应法律后果', level=1)
|
|
377
|
+
for run in h4.runs:
|
|
378
|
+
run.font.color.rgb = RGBColor(0x1A, 0x23, 0x7E)
|
|
379
|
+
|
|
380
|
+
doc.add_heading('一、财产损失赔偿', level=2)
|
|
381
|
+
|
|
382
|
+
property_content = """【赔偿顺序(依照《民法典》第1213条)】
|
|
383
|
+
|
|
384
|
+
第一步:对方交强险财产损失限额内赔付(2000元)
|
|
385
|
+
第二步:超出部分按责任比例分担
|
|
386
|
+
• 申请人承担:70% × (对方总车损 - 2000元)
|
|
387
|
+
• 对方自行承担:30% × (对方总车损 - 2000元)
|
|
388
|
+
|
|
389
|
+
第三步:申请人车损的赔付
|
|
390
|
+
• 对方交强险:2000元限额内
|
|
391
|
+
• 对方商业三者险(如有):按30%责任比例赔付
|
|
392
|
+
• 申请人自负:70%
|
|
393
|
+
|
|
394
|
+
【重要提示】
|
|
395
|
+
• 气囊弹出后的维修成本显著增加(涉及气囊模块更换、挡风玻璃更换、车身钣金修复等),建议保留全部维修报价单和发票
|
|
396
|
+
• 如对方车辆也有损伤,对方的索赔将通过您的交强险+商业三者险处理"""
|
|
397
|
+
pp = doc.add_paragraph(property_content)
|
|
398
|
+
for run in pp.runs:
|
|
399
|
+
run.font.size = Pt(10.5)
|
|
400
|
+
pp.paragraph_format.left_indent = Cm(0.3)
|
|
401
|
+
|
|
402
|
+
doc.add_heading('二、人身损害赔偿(如涉及)', level=2)
|
|
403
|
+
|
|
404
|
+
injury_content = """【如有人身伤害,适用《民法典》侵权责任编 + 道交法第76条】
|
|
405
|
+
|
|
406
|
+
赔偿项目包括(但不限于):
|
|
407
|
+
• 医疗费、住院伙食补助费、营养费
|
|
408
|
+
• 护理费、误工费、交通费
|
|
409
|
+
• 残疾赔偿金(如构成伤残)、精神损害抚慰金
|
|
410
|
+
|
|
411
|
+
【道交法第76条的特别规定】
|
|
412
|
+
"机动车与非机动车驾驶人、行人之间发生交通事故...
|
|
413
|
+
有证据证明非机动车驾驶人、行人有过错的,根据过错程度**适当减轻**机动车一方的赔偿责任"
|
|
414
|
+
|
|
415
|
+
本案虽为机动车之间事故,但第76条体现的"**过错相抵**"原则同样适用——对方的过错(未减速/未避让)可作为减轻申请人赔偿责任的法定理由。【关于"适当减轻"的幅度】
|
|
416
|
+
参照最高人民法院相关司法解释精神及类案裁判:
|
|
417
|
+
• 对方次要责任(20%-35%)→ 申请人赔偿总额相应减少20%-35%
|
|
418
|
+
• 即:若总损失为10万元,申请人按70%责任赔偿约7万元(而非10万元全额)"""
|
|
419
|
+
ip = doc.add_paragraph(injury_content)
|
|
420
|
+
for run in ip.runs:
|
|
421
|
+
run.font.size = Pt(10.5)
|
|
422
|
+
ip.paragraph_format.left_indent = Cm(0.3)
|
|
423
|
+
|
|
424
|
+
doc.add_heading('三、保险理赔流程建议', level=2)
|
|
425
|
+
|
|
426
|
+
insurance_steps = """【立即行动清单】
|
|
427
|
+
|
|
428
|
+
□ 1. 向己方保险公司报案(电话/APP),提供事故基本信息
|
|
429
|
+
□ 2. 提供对方车辆信息(车型、车牌、保险公司)
|
|
430
|
+
□ 3. 保留全部证据材料:
|
|
431
|
+
• 现场照片(4张)
|
|
432
|
+
• 《道路交通事故认定书》(交警出具后)
|
|
433
|
+
• 维修报价单及发票
|
|
434
|
+
• 医疗单据(如有人身伤害)
|
|
435
|
+
• 《高尔夫使用说明书》相关页面复印件(气囊技术参数)
|
|
436
|
+
□ 4. 等待交警出具正式《道路交通事故认定书》
|
|
437
|
+
• 如对认定不服 → 3日内向上一级公安机关申请复核
|
|
438
|
+
□ 5. 配合保险公司定损理赔"""
|
|
439
|
+
isp = doc.add_paragraph(insurance_steps)
|
|
440
|
+
for run in isp.runs:
|
|
441
|
+
run.font.size = Pt(10.5)
|
|
442
|
+
isp.paragraph_format.left_indent = Cm(0.3)
|
|
443
|
+
|
|
444
|
+
# ==================== 第五部分:申请事项 ====================
|
|
445
|
+
doc.add_heading('第五部分 申请事项', level=1)
|
|
446
|
+
for run in doc.paragraphs[-1].runs if doc.paragraphs[-1].runs else []:
|
|
447
|
+
pass
|
|
448
|
+
for run_h5 in h4.runs if False else []:
|
|
449
|
+
pass
|
|
450
|
+
|
|
451
|
+
app_p = doc.add_paragraph()
|
|
452
|
+
app_run = app_p.add_run("基于以上事实和法律分析,申请人特提出以下申请:")
|
|
453
|
+
app_run.bold = True
|
|
454
|
+
app_run.font.size = Pt(11)
|
|
455
|
+
|
|
456
|
+
applications = [
|
|
457
|
+
("申请一", "委托具备资质的司法鉴定机构对双方车辆事发时的行驶速度进行技术鉴定",
|
|
458
|
+
"依据:《道路交通事故处理程序规定》第37条"),
|
|
459
|
+
("申请二", "调取事故现场及周边所有交通监控摄像头录像",
|
|
460
|
+
"依据:《道路交通事故处理程序规定》第29条(调查取证规定)"),
|
|
461
|
+
("申请三", "对申请人车辆的安全气囊控制单元(ACU)数据进行读取和分析(如技术可行)",
|
|
462
|
+
"依据:气囊弹出数据可作为碰撞强度的客观记录"),
|
|
463
|
+
("申请四", "在责任认定中充分考虑对方未充分减速、未尽合理避让义务的过错因素",
|
|
464
|
+
"依据:道交法第22条 + 实施条例第52条 + 程序规定第60条"),
|
|
465
|
+
("申请五", "如最终认定对方承担次要责任,恳请在《道路交通事故认定书中》明确载明对方的具体过错行为及责任比例",
|
|
466
|
+
"依据:程序规定第62条(认定书内容要求)"),
|
|
467
|
+
]
|
|
468
|
+
|
|
469
|
+
for app_num, app_content, app_basis in applications:
|
|
470
|
+
ap = doc.add_paragraph()
|
|
471
|
+
ar = ap.add_run(f"▶ {app_num}:{app_content}")
|
|
472
|
+
ar.font.size = Pt(10.5)
|
|
473
|
+
ar.bold = True
|
|
474
|
+
ap.paragraph_format.left_indent = Cm(0.3)
|
|
475
|
+
|
|
476
|
+
abp = doc.add_paragraph()
|
|
477
|
+
abr = abp.add_run(f" 法定依据:{app_basis}")
|
|
478
|
+
abr.font.size = Pt(9.5)
|
|
479
|
+
abr.font.color.rgb = RGBColor(0x66, 0x66, 0x66)
|
|
480
|
+
abp.paragraph_format.left_indent = Cm(0.8)
|
|
481
|
+
|
|
482
|
+
# ==================== 结语 ====================
|
|
483
|
+
doc.add_paragraph()
|
|
484
|
+
doc.add_paragraph() # 空行
|
|
485
|
+
|
|
486
|
+
closing = doc.add_paragraph()
|
|
487
|
+
closing.alignment = WD_ALIGN_PARAGRAPH.RIGHT
|
|
488
|
+
cr = closing.add_run("""__________________________
|
|
489
|
+
|
|
490
|
+
申请人(签字/盖章):
|
|
491
|
+
|
|
492
|
+
联系电话:
|
|
493
|
+
|
|
494
|
+
日期: 年 月 日""")
|
|
495
|
+
cr.font.size = Pt(11)
|
|
496
|
+
|
|
497
|
+
# ==================== 附件清单 ====================
|
|
498
|
+
doc.add_page_break()
|
|
499
|
+
ha = doc.add_heading('附件清单', level=1)
|
|
500
|
+
for run in ha.runs:
|
|
501
|
+
run.font.color.rgb = RGBColor(0x1A, 0x23, 0x7E)
|
|
502
|
+
|
|
503
|
+
attachments = [
|
|
504
|
+
"附件1:事故现场照片(4张)",
|
|
505
|
+
"附件2:申请人车辆行驶证复印件",
|
|
506
|
+
"附件3:申请人驾驶证复印件",
|
|
507
|
+
"附件4:车辆维修初步报价单(如有)",
|
|
508
|
+
"附件5:气囊弹出检测报告(如有)",
|
|
509
|
+
"附件6:《高尔夫使用说明书》相关页面摘录(第74-81页)",
|
|
510
|
+
"附件7:车速鉴定申请书(本文第五部分所列各项申请的书面文本)",
|
|
511
|
+
]
|
|
512
|
+
for att in attachments:
|
|
513
|
+
atp = doc.add_paragraph()
|
|
514
|
+
atr = atp.add_run(att)
|
|
515
|
+
atr.font.size = Pt(10.5)
|
|
516
|
+
atp.paragraph_format.left_indent = Cm(0.5)
|
|
517
|
+
atp.paragraph_format.space_after = Pt(4)
|
|
518
|
+
|
|
519
|
+
# 保存
|
|
520
|
+
doc.save(output_path)
|
|
521
|
+
print(f"✅ 责任认定陈述材料已生成: {output_path}")
|
|
522
|
+
return output_path
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
if __name__ == "__main__":
|
|
526
|
+
output_file = r"c:\Users\wonder\trae-projects\skills\skills\traffic-accident-assessor\output\交通事故责任认定陈述材料_辽A87FG5.docx"
|
|
527
|
+
os.makedirs(os.path.dirname(output_file), exist_ok=True)
|
|
528
|
+
generate_statement_doc(output_file)
|
|
Binary file
|