sophhub 0.4.19 → 0.4.21
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 +199 -187
- package/agents/ai-cs-admin/.config.json +51 -51
- package/agents/ai-cs-admin/AGENTS.md +293 -293
- package/agents/ai-cs-admin/HEARTBEAT.md +18 -18
- package/agents/ai-cs-qa/.config.json +47 -47
- package/agents/ai-cs-qa/BOOTSTRAP.md +22 -22
- package/agents/ai-cs-qa/scripts/setup_links.sh +39 -39
- package/agents/beauty/.config.json +17 -17
- package/agents/beauty/AGENTS.md +234 -234
- package/agents/beauty/BOOTSTRAP.md +55 -55
- package/agents/beauty/HEARTBEAT.md +5 -5
- package/agents/beauty/IDENTITY.md +5 -5
- package/agents/beauty/MEMORY.md +44 -44
- package/agents/beauty/SOUL.md +64 -64
- package/agents/beauty/TOOLS.md +160 -160
- package/agents/beauty/USER.md +114 -114
- package/agents/intern-admin/.config.json +60 -60
- package/agents/intern-admin/AGENTS.md +267 -267
- package/agents/intern-admin/BOOTSTRAP.md +21 -21
- package/agents/intern-admin/HEARTBEAT.md +3 -3
- package/agents/intern-admin/IDENTITY.md +6 -6
- package/agents/intern-admin/MEMORY.md +21 -21
- package/agents/intern-admin/SOUL.md +23 -23
- package/agents/intern-admin/TOOLS.md +93 -93
- package/agents/intern-admin/USER.md +16 -16
- package/agents/intern-admin/scripts/init_workspace.sh +27 -27
- package/agents/intern-qa/.config.json +46 -46
- package/agents/intern-qa/AGENTS.md +303 -303
- package/agents/intern-qa/BOOTSTRAP.md +16 -16
- package/agents/intern-qa/HEARTBEAT.md +3 -3
- package/agents/intern-qa/IDENTITY.md +6 -6
- package/agents/intern-qa/MEMORY.md +22 -22
- package/agents/intern-qa/SOUL.md +24 -24
- package/agents/intern-qa/TOOLS.md +24 -24
- package/agents/intern-qa/USER.md +27 -27
- package/agents/intern-qa/scripts/setup_links.sh +54 -54
- package/agents/parent-toddler/.config.json +37 -37
- package/agents/parent-toddler/AGENTS.md +51 -51
- package/agents/parent-toddler/BOOTSTRAP.md +55 -55
- package/agents/parent-toddler/HEARTBEAT.md +5 -5
- package/agents/parent-toddler/IDENTITY.md +5 -5
- package/agents/parent-toddler/MEMORY.md +22 -22
- package/agents/parent-toddler/SOUL.md +35 -35
- package/agents/parent-toddler/TOOLS.md +31 -31
- package/agents/parent-toddler/USER.md +44 -44
- package/agents/vip-admin/.config.json +51 -51
- package/agents/vip-admin/AGENTS.md +314 -314
- package/agents/vip-admin/BOOTSTRAP.md +21 -21
- package/agents/vip-admin/HEARTBEAT.md +19 -19
- package/agents/vip-admin/IDENTITY.md +6 -6
- package/agents/vip-admin/MEMORY.md +30 -30
- package/agents/vip-admin/SOUL.md +25 -25
- package/agents/vip-admin/TOOLS.md +108 -108
- package/agents/vip-admin/USER.md +31 -31
- package/agents/vip-qa/.config.json +58 -58
- package/agents/vip-qa/AGENTS.md +319 -319
- package/agents/vip-qa/BOOTSTRAP.md +73 -73
- package/agents/vip-qa/HEARTBEAT.md +23 -23
- package/agents/vip-qa/IDENTITY.md +7 -7
- package/agents/vip-qa/MEMORY.md +23 -23
- package/agents/vip-qa/SOUL.md +34 -34
- package/agents/vip-qa/TOOLS.md +41 -41
- package/agents/vip-qa/USER.md +16 -16
- package/agents/vip-qa/scripts/setup_links.sh +39 -39
- package/bin/sophhub.js +25 -25
- package/package.json +35 -33
- package/skills/agent-install/skill.json +34 -34
- package/skills/agent-install/src/SKILL.md +240 -240
- package/skills/agent-install/src/pyproject.toml +6 -6
- package/skills/agent-install/src/scripts/backup_agent.py +120 -120
- package/skills/agent-install/src/scripts/check_installed.py +479 -479
- package/skills/agent-install/src/scripts/common.py +568 -568
- package/skills/agent-install/src/scripts/copy_agent_files.py +59 -59
- package/skills/agent-install/src/scripts/list_agents.py +285 -285
- package/skills/agent-install/src/scripts/resolve_install_params.py +90 -90
- package/skills/agent-install/src/scripts/update_agent_md.py +76 -76
- package/skills/agent-install/src/scripts/update_openclaw.py +193 -193
- package/skills/agent-install/src/scripts/verify_download.py +148 -148
- package/skills/aippt/skill.json +20 -20
- package/skills/aippt/src/SKILL.md +235 -235
- package/skills/aippt/src/pyproject.toml +8 -8
- package/skills/aippt/src/scripts/auth.py +122 -122
- package/skills/aippt/src/scripts/ppt.py +361 -361
- package/skills/aippt/src/scripts/provider_docmee.py +299 -299
- package/skills/beauty-salon-inventory/skill.json +16 -16
- package/skills/beauty-salon-inventory/src/SKILL.md +69 -69
- package/skills/beauty-salon-inventory/src/scripts/init_salon_inventory.py +39 -39
- package/skills/beauty-salon-inventory/src/scripts/init_salon_inventory.sh +4 -4
- package/skills/beauty-salon-inventory/src/scripts/salon_inventory_cli.py +244 -244
- package/skills/beauty-salon-marketing/skill.json +10 -10
- package/skills/beauty-salon-marketing/src/SKILL.md +36 -36
- package/skills/beauty-salon-marketing/src/playbooks/beauty-salon-festival.md +19 -19
- package/skills/beauty-salon-marketing/src/playbooks/beauty-salon-segment.md +18 -18
- package/skills/beauty-salon-marketing/src/scripts/beauty_marketing_cli.py +99 -99
- package/skills/beauty-salon-marketing/src/scripts/member_segment.py +114 -114
- package/skills/beauty-salon-member-appointment/skill.json +10 -10
- package/skills/beauty-salon-member-appointment/src/SKILL.md +36 -36
- package/skills/beauty-salon-member-appointment/src/pyproject.toml +9 -9
- package/skills/beauty-salon-member-appointment/src/scripts/run_e2e_smoke.py +160 -160
- package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/__init__.py +1 -1
- package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/__main__.py +4 -4
- package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/cli.py +921 -921
- package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/db.py +30 -30
- package/skills/beauty-salon-membership/skill.json +20 -20
- package/skills/beauty-salon-membership/src/SKILL.md +67 -67
- package/skills/beauty-salon-product-service/skill.json +12 -12
- package/skills/beauty-salon-product-service/src/SKILL.md +42 -42
- package/skills/beauty-salon-product-service/src/pyproject.toml +9 -9
- package/skills/beauty-salon-product-service/src/src/product_service_cli/__init__.py +1 -1
- package/skills/beauty-salon-product-service/src/src/product_service_cli/__main__.py +4 -4
- package/skills/beauty-salon-product-service/src/src/product_service_cli/cli.py +329 -329
- package/skills/beauty-salon-product-service/src/src/product_service_cli/db.py +29 -29
- package/skills/beauty-salon-staff/skill.json +10 -10
- package/skills/beauty-salon-staff/src/SKILL.md +37 -37
- package/skills/beauty-salon-staff/src/pyproject.toml +9 -9
- package/skills/beauty-salon-staff/src/src/staff_cli/__init__.py +1 -1
- package/skills/beauty-salon-staff/src/src/staff_cli/__main__.py +4 -4
- package/skills/beauty-salon-staff/src/src/staff_cli/cli.py +479 -479
- package/skills/beauty-salon-staff/src/src/staff_cli/db.py +28 -28
- package/skills/beauty-salon-suite/skill.json +13 -13
- package/skills/beauty-salon-suite/src/SKILL.md +18 -18
- package/skills/beauty-salon-suite/src/beauty_db/__init__.py +2 -2
- package/skills/beauty-salon-suite/src/beauty_db/db.py +249 -249
- package/skills/beauty-salon-traffic/skill.json +20 -20
- package/skills/beauty-salon-traffic/src/SKILL.md +84 -84
- package/skills/bing-image-search/skill.json +20 -20
- package/skills/bing-image-search/src/SKILL.md +105 -105
- package/skills/bot-api-status/skill.json +44 -44
- package/skills/bot-api-status/src/SKILL.md +99 -99
- package/skills/bot-api-status/src/pyproject.toml +5 -5
- package/skills/bot-api-status/src/scripts/secret.py +496 -496
- package/skills/bot-secret/skill.json +35 -35
- package/skills/bot-secret/src/SKILL.md +51 -51
- package/skills/bot-secret/src/pyproject.toml +5 -5
- package/skills/bot-secret/src/scripts/secret.py +120 -120
- package/skills/cake-flower-holiday-campaign/skill.json +20 -20
- package/skills/cake-flower-holiday-campaign/src/SKILL.md +68 -68
- package/skills/cake-flower-order-sop/skill.json +20 -20
- package/skills/cake-flower-order-sop/src/SKILL.md +65 -65
- package/skills/claw-agent-get-send/skill.json +32 -32
- package/skills/claw-agent-get-send/src/SKILL.md +43 -43
- package/skills/claw-agent-get-send/src/pyproject.toml +5 -5
- package/skills/claw-agent-get-send/src/scripts/appia_claw.py +379 -379
- package/skills/compact-context/skill.json +20 -20
- package/skills/compact-context/src/SKILL.md +133 -133
- package/skills/compact-context/src/scripts/check.sh +381 -381
- package/skills/compact-context/src/scripts/set-keep-recent.mjs +1337 -1337
- package/skills/compact-context/src/scripts/setup.sh +96 -96
- package/skills/consensus/skill.json +20 -20
- package/skills/consensus/src/SKILL.md +93 -93
- package/skills/deepwiki/skill.json +20 -20
- package/skills/deepwiki/src/SKILL.md +45 -45
- package/skills/deepwiki/src/_meta.json +5 -5
- package/skills/deepwiki/src/scripts/deepwiki.js +135 -135
- package/skills/didi-ride/skill.json +20 -20
- package/skills/didi-ride/src/SKILL.md +309 -309
- package/skills/didi-ride/src/_meta.json +5 -5
- package/skills/didi-ride/src/assets/PREFERENCE.md +58 -58
- package/skills/didi-ride/src/package.json +15 -15
- package/skills/didi-ride/src/references/api_references.md +171 -171
- package/skills/didi-ride/src/references/error_handling.md +68 -68
- package/skills/didi-ride/src/references/setup.md +73 -73
- package/skills/didi-ride/src/references/workflow.md +150 -150
- package/skills/feishu-bitable/skill.json +20 -20
- package/skills/feishu-bitable/src/CHECKLIST.md +149 -149
- package/skills/feishu-bitable/src/README.md +177 -177
- package/skills/feishu-bitable/src/SKILL.md +113 -113
- package/skills/feishu-bitable/src/_meta.json +5 -5
- package/skills/feishu-bitable/src/api.js +380 -380
- package/skills/feishu-bitable/src/bin/cli.js +283 -283
- package/skills/feishu-bitable/src/description.md +142 -142
- package/skills/feishu-bitable/src/examples/create-records.json +51 -51
- package/skills/feishu-bitable/src/examples/create-table.json +63 -63
- package/skills/feishu-bitable/src/package-lock.json +324 -324
- package/skills/feishu-bitable/src/package.json +32 -32
- package/skills/feishu-bitable/src/publish-config.json +13 -13
- package/skills/feishu-bitable/src/test-simple.js +60 -60
- package/skills/feishu-bitable/src/utils.js +260 -260
- package/skills/feishu-notes-assistant-universal/skill.json +20 -20
- package/skills/feishu-notes-assistant-universal/src/README.md +55 -55
- package/skills/feishu-notes-assistant-universal/src/SKILL.md +159 -159
- package/skills/feishu-notes-assistant-universal/src/scripts/_resolve_lark_cli.py +58 -58
- package/skills/feishu-notes-assistant-universal/src/scripts/openclaw_meeting_minutes.py +462 -462
- package/skills/feishu-notes-assistant-universal/src/scripts/openclaw_notes_crud.py +547 -547
- package/skills/feishu-notes-assistant-universal/src/scripts/openclaw_notes_crud_test.py +181 -181
- package/skills/feishu-notes-assistant-universal/src/scripts/run_meeting_minutes.py +80 -80
- package/skills/feishu-notes-assistant-universal/src/scripts/run_meeting_minutes.sh +5 -5
- package/skills/feishu-notes-assistant-universal/src/scripts/run_note_crud.py +32 -32
- package/skills/feishu-notes-assistant-universal/src/scripts/run_note_crud.sh +5 -5
- package/skills/flight-booking/skill.json +36 -36
- package/skills/flight-booking/src/SKILL.md +288 -288
- package/skills/flight-booking/src/scripts/flight_booking.py +1237 -1237
- package/skills/flyai/skill.json +20 -20
- package/skills/flyai/src/SKILL.md +119 -119
- package/skills/flyai/src/references/fliggy-fast-search.md +53 -53
- package/skills/flyai/src/references/search-flight.md +89 -89
- package/skills/flyai/src/references/search-hotels.md +57 -57
- package/skills/flyai/src/references/search-poi.md +48 -48
- package/skills/google-maps/skill.json +20 -20
- package/skills/google-maps/src/SKILL.md +237 -237
- package/skills/google-maps/src/_meta.json +5 -5
- package/skills/google-maps/src/lib/map_helper.py +912 -912
- package/skills/image-classify/skill.json +42 -42
- package/skills/image-classify/src/SKILL.md +368 -368
- package/skills/image-classify/src/references/config.json +4 -4
- package/skills/image-classify/src/scripts/face_search.py +1276 -1276
- package/skills/image-description/skill.json +34 -34
- package/skills/image-description/src/SKILL.md +33 -33
- package/skills/image-description/src/pyproject.toml +8 -8
- package/skills/image-description/src/scripts/ana_image.py +112 -112
- package/skills/image-identify-world/skill.json +20 -20
- package/skills/image-identify-world/src/SKILL.md +40 -40
- package/skills/image-identify-world/src/pyproject.toml +8 -8
- package/skills/image-identify-world/src/scripts/identify_world.py +115 -115
- package/skills/insurance-policy-review/skill.json +27 -27
- package/skills/insurance-policy-review/src/SKILL.md +75 -75
- package/skills/insurance-sales-playbook/skill.json +20 -20
- package/skills/insurance-sales-playbook/src/SKILL.md +58 -58
- package/skills/inventory-management/skill.json +20 -20
- package/skills/inventory-management/src/SKILL.md +241 -241
- package/skills/inventory-management/src/scripts/inventory.py +1844 -1844
- package/skills/large-task-router/skill.json +20 -20
- package/skills/large-task-router/src/SKILL.md +79 -79
- package/skills/large-task-router/src/templates/plan.md +74 -74
- package/skills/lawding-contract-review/skill.json +20 -20
- package/skills/lawding-contract-review/src/SKILL.md +284 -284
- package/skills/lawding-contract-review/src/references/legal-language-library.md +1385 -1385
- package/skills/lawding-contract-review/src/scripts/build_reminders.py +471 -471
- package/skills/lawding-contract-review/src/scripts/register_contract_cron.py +457 -457
- package/skills/md2pdf-converter/skill.json +20 -20
- package/skills/md2pdf-converter/src/SKILL.md +244 -244
- package/skills/md2pdf-converter/src/_meta.json +5 -5
- package/skills/md2pdf-converter/src/scripts/generate_emoji_mapping.py +74 -74
- package/skills/md2pdf-converter/src/scripts/md2pdf-local.sh +291 -291
- package/skills/notes-hub-assistant/skill.json +20 -20
- package/skills/notes-hub-assistant/src/SKILL.md +233 -233
- package/skills/notes-hub-assistant/src/scripts/_resolve_lark_cli.py +48 -48
- package/skills/notes-hub-assistant/src/scripts/openclaw_meeting_minutes.py +473 -473
- package/skills/notes-hub-assistant/src/scripts/openclaw_notes_crud.py +596 -596
- package/skills/notes-hub-assistant/src/scripts/openclaw_wolai_notes_crud.py +364 -364
- package/skills/notes-hub-assistant/src/scripts/run_meeting_minutes.py +79 -79
- package/skills/notes-hub-assistant/src/scripts/run_note_crud.py +37 -37
- package/skills/notes-hub-assistant/src/scripts/run_notionbot.py +36 -36
- package/skills/notes-hub-assistant/src/scripts/run_wolai_note_crud.py +27 -27
- package/skills/schedule-reminder/skill.json +20 -20
- package/skills/schedule-reminder/src/SKILL.md +619 -619
- package/skills/schedule-reminder/src/schedule_template.md +68 -68
- package/skills/schedule-reminder/src/scripts/append_event.py +204 -204
- package/skills/schedule-reminder/src/scripts/create_reminders.sh +163 -163
- package/skills/schedule-reminder/src/scripts/daily_activate.sh +175 -175
- package/skills/schedule-reminder/src/scripts/parse_schedule.py +704 -704
- package/skills/schedule-reminder/src/scripts/setup.sh +242 -242
- package/skills/schedule-reminder/src//347/224/250/346/210/267/346/214/207/345/215/227.md +311 -311
- package/skills/sessions-analysis/skill.json +34 -34
- package/skills/sessions-analysis/src/SKILL.md +81 -81
- package/skills/sessions-analysis/src/pyproject.toml +5 -5
- package/skills/sessions-analysis/src/scripts/ana_logs.py +205 -205
- package/skills/share-skill/skill.json +20 -20
- package/skills/share-skill/src/SKILL.md +261 -261
- package/skills/share-skill/src/scripts/share_skill_to_friend.py +1031 -1031
- package/skills/skill-creator/skill.json +20 -20
- package/skills/skill-creator/src/SKILL.md +370 -370
- package/skills/skill-creator/src/license.txt +202 -202
- package/skills/skill-creator/src/scripts/init_skill.py +378 -378
- package/skills/skill-creator/src/scripts/package_skill.py +111 -111
- package/skills/skill-creator/src/scripts/quick_validate.py +101 -101
- package/skills/skillhub/skill.json +27 -27
- package/skills/skillhub/src/SKILL.md +121 -121
- package/skills/sophnet-age-appearance/skill.json +20 -20
- package/skills/sophnet-age-appearance/src/SKILL.md +83 -83
- package/skills/sophnet-age-appearance/src/pyproject.toml +10 -10
- package/skills/sophnet-age-appearance/src/scripts/age_appearance.py +395 -395
- package/skills/sophnet-age-appearance/src/scripts/age_face_crop.py +313 -313
- package/skills/sophnet-bot-client/skill.json +20 -20
- package/skills/sophnet-bot-client/src/SKILL.md +255 -255
- package/skills/sophnet-bot-client/src/pyproject.toml +13 -13
- package/skills/sophnet-bot-client/src/scripts/bot_client_proxy.py +165 -165
- package/skills/sophnet-bot-client/src/scripts/bot_client_safe.sh +29 -29
- package/skills/sophnet-bot-client/src/scripts/bot_client_setup.py +502 -502
- package/skills/sophnet-bot-client/src/tests/test_bot_client_proxy.py +255 -255
- package/skills/sophnet-bot-client/src/tests/test_bot_client_setup.py +679 -679
- package/skills/sophnet-bot-client/src/uv.lock +8 -8
- package/skills/sophnet-customer-management/skill.json +20 -20
- package/skills/sophnet-customer-management/src/SKILL.md +270 -270
- package/skills/sophnet-customer-management/src/pyproject.toml +15 -15
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/__init__.py +2 -2
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/__main__.py +5 -5
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/cli.py +67 -67
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/__init__.py +2 -2
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/customer.py +60 -60
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/export_file.py +18 -18
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/import_file.py +15 -15
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/reminder.py +26 -26
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/schema.py +28 -28
- package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/config.py +54 -54
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/__init__.py +2 -2
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/exporter.py +85 -85
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/models.py +84 -84
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/normalizer.py +144 -144
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/parser.py +241 -241
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/query.py +109 -109
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/reminder.py +121 -121
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/repository.py +397 -397
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/schema.py +106 -106
- package/skills/sophnet-customer-management/src/src/customer_mgmt_core/service.py +565 -565
- package/skills/sophnet-customer-management/src/uv.lock +48 -48
- package/skills/sophnet-customized-marketing/skill.json +28 -28
- package/skills/sophnet-customized-marketing/src/SKILL.md +144 -144
- package/skills/sophnet-customized-marketing/src/playbooks/campaign-planning.md +187 -187
- package/skills/sophnet-customized-marketing/src/playbooks/content-generation.md +124 -124
- package/skills/sophnet-customized-marketing/src/playbooks/marketing-calendar.md +59 -59
- package/skills/sophnet-customized-marketing/src/playbooks/multi-channel-bundle.md +94 -94
- package/skills/sophnet-customized-marketing/src/playbooks/poster-generation.md +182 -182
- package/skills/sophnet-customized-marketing/src/playbooks/style-profile-workflow.md +103 -103
- package/skills/sophnet-customized-marketing/src/pyproject.toml +8 -8
- package/skills/sophnet-customized-marketing/src/references/campaign-mechanics.md +168 -168
- package/skills/sophnet-customized-marketing/src/references/content-safety.md +26 -26
- package/skills/sophnet-customized-marketing/src/references/marketing-date-checklist.md +99 -99
- package/skills/sophnet-customized-marketing/src/references/platform-writing-guidelines.md +88 -88
- package/skills/sophnet-customized-marketing/src/references/quality-checklist.md +44 -44
- package/skills/sophnet-customized-marketing/src/scripts/generate_poster.py +572 -572
- package/skills/sophnet-customized-marketing/src/scripts/style_profile.py +215 -215
- package/skills/sophnet-dailynews/skill.json +20 -20
- package/skills/sophnet-dailynews/src/SKILL.md +179 -179
- package/skills/sophnet-dailynews/src/cache.json +150 -150
- package/skills/sophnet-dailynews/src/sources.json +230 -230
- package/skills/sophnet-docx/skill.json +20 -20
- package/skills/sophnet-docx/src/SKILL.md +463 -463
- package/skills/sophnet-docx/src/package-lock.json +208 -208
- package/skills/sophnet-docx/src/package.json +16 -16
- package/skills/sophnet-docx/src/pyproject.toml +11 -11
- package/skills/sophnet-docx/src/scripts/__init__.py +1 -1
- package/skills/sophnet-docx/src/scripts/accept_changes.py +135 -135
- package/skills/sophnet-docx/src/scripts/comment.py +318 -318
- package/skills/sophnet-docx/src/scripts/ensure_uv_env.sh +68 -68
- package/skills/sophnet-docx/src/scripts/office/helpers/merge_runs.py +199 -199
- package/skills/sophnet-docx/src/scripts/office/helpers/simplify_redlines.py +197 -197
- package/skills/sophnet-docx/src/scripts/office/pack.py +159 -159
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
- package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
- package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
- package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
- package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
- package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
- package/skills/sophnet-docx/src/scripts/office/schemas/mce/mc.xsd +75 -75
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-2010.xsd +560 -560
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-2012.xsd +67 -67
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-2018.xsd +14 -14
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -20
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -13
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
- package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -8
- package/skills/sophnet-docx/src/scripts/office/soffice.py +183 -183
- package/skills/sophnet-docx/src/scripts/office/unpack.py +132 -132
- package/skills/sophnet-docx/src/scripts/office/validate.py +111 -111
- package/skills/sophnet-docx/src/scripts/office/validators/__init__.py +15 -15
- package/skills/sophnet-docx/src/scripts/office/validators/base.py +847 -847
- package/skills/sophnet-docx/src/scripts/office/validators/docx.py +446 -446
- package/skills/sophnet-docx/src/scripts/office/validators/pptx.py +275 -275
- package/skills/sophnet-docx/src/scripts/office/validators/redlining.py +247 -247
- package/skills/sophnet-docx/src/scripts/templates/comments.xml +3 -3
- package/skills/sophnet-docx/src/scripts/templates/commentsExtended.xml +3 -3
- package/skills/sophnet-docx/src/scripts/templates/commentsExtensible.xml +3 -3
- package/skills/sophnet-docx/src/scripts/templates/commentsIds.xml +3 -3
- package/skills/sophnet-docx/src/scripts/templates/people.xml +3 -3
- package/skills/sophnet-docx/src/scripts/upload_file.sh +96 -96
- package/skills/sophnet-docx/src/uv.lock +320 -320
- package/skills/sophnet-face-search/skill.json +20 -20
- package/skills/sophnet-face-search/src/SKILL.md +115 -115
- package/skills/sophnet-face-search/src/pyproject.toml +11 -11
- package/skills/sophnet-face-search/src/scripts/face_search.py +335 -335
- package/skills/sophnet-face-search/src/uv.lock +508 -508
- package/skills/sophnet-id-photo/skill.json +20 -20
- package/skills/sophnet-id-photo/src/SKILL.md +107 -107
- package/skills/sophnet-id-photo/src/pyproject.toml +10 -10
- package/skills/sophnet-id-photo/src/scripts/id_photo.py +540 -540
- package/skills/sophnet-id-photo/src/scripts/id_photo_compliance.py +215 -215
- package/skills/sophnet-id-photo/src/scripts/id_photo_face_crop.py +313 -313
- package/skills/sophnet-image-edit/skill.json +20 -20
- package/skills/sophnet-image-edit/src/SKILL.md +140 -140
- package/skills/sophnet-image-edit/src/pyproject.toml +9 -9
- package/skills/sophnet-image-edit/src/scripts/edit_and_preview.sh +68 -68
- package/skills/sophnet-image-edit/src/scripts/edit_image.py +279 -279
- package/skills/sophnet-image-edit/src/uv.lock +234 -234
- package/skills/sophnet-image-generate/skill.json +20 -20
- package/skills/sophnet-image-generate/src/SKILL.md +62 -62
- package/skills/sophnet-image-generate/src/pyproject.toml +9 -9
- package/skills/sophnet-image-generate/src/scripts/generate_image.py +156 -156
- package/skills/sophnet-image-generate/src/uv.lock +234 -234
- package/skills/sophnet-image-ocr/skill.json +20 -20
- package/skills/sophnet-image-ocr/src/SKILL.md +167 -167
- package/skills/sophnet-image-ocr/src/pyproject.toml +13 -13
- package/skills/sophnet-image-ocr/src/scripts/ocr.py +225 -225
- package/skills/sophnet-image-ocr/src/uv.lock +234 -234
- package/skills/sophnet-infinite-talk/skill.json +20 -20
- package/skills/sophnet-infinite-talk/src/SKILL.md +140 -140
- package/skills/sophnet-infinite-talk/src/pyproject.toml +9 -9
- package/skills/sophnet-infinite-talk/src/scripts/gen.py +172 -172
- package/skills/sophnet-oss/skill.json +27 -27
- package/skills/sophnet-oss/src/SKILL.md +118 -118
- package/skills/sophnet-oss/src/pyproject.toml +8 -8
- package/skills/sophnet-oss/src/scripts/upload_file.py +43 -43
- package/skills/sophnet-pdf/skill.json +20 -20
- package/skills/sophnet-pdf/src/SKILL.md +413 -413
- package/skills/sophnet-pdf/src/forms.md +297 -297
- package/skills/sophnet-pdf/src/pyproject.toml +14 -14
- package/skills/sophnet-pdf/src/reference.md +611 -611
- package/skills/sophnet-pdf/src/scripts/check_bounding_boxes.py +65 -65
- package/skills/sophnet-pdf/src/scripts/check_fillable_fields.py +11 -11
- package/skills/sophnet-pdf/src/scripts/convert_pdf_to_images.py +33 -33
- package/skills/sophnet-pdf/src/scripts/create_validation_image.py +37 -37
- package/skills/sophnet-pdf/src/scripts/enhance_tutorial.py +557 -557
- package/skills/sophnet-pdf/src/scripts/ensure_uv_env.sh +68 -68
- package/skills/sophnet-pdf/src/scripts/extract_form_field_info.py +122 -122
- package/skills/sophnet-pdf/src/scripts/extract_form_structure.py +115 -115
- package/skills/sophnet-pdf/src/scripts/extract_pdf_content.py +34 -34
- package/skills/sophnet-pdf/src/scripts/fill_fillable_fields.py +98 -98
- package/skills/sophnet-pdf/src/scripts/fill_pdf_form_with_annotations.py +107 -107
- package/skills/sophnet-pdf/src/scripts/upload_file.sh +88 -88
- package/skills/sophnet-pdf/src/uv.lock +537 -537
- package/skills/sophnet-qa-install/skill.json +27 -27
- package/skills/sophnet-qa-install/src/SKILL.md +210 -210
- package/skills/sophnet-qa-install/src/pyproject.toml +6 -6
- package/skills/sophnet-qa-install/src/scripts/backup_md.py +35 -35
- package/skills/sophnet-qa-install/src/scripts/check_installed.py +143 -143
- package/skills/sophnet-qa-install/src/scripts/update_config.py +142 -142
- package/skills/sophnet-qa-install/src/scripts/update_md.py +73 -73
- package/skills/sophnet-schedule/skill.json +20 -20
- package/skills/sophnet-schedule/src/ARCHITECTURE.md +321 -321
- package/skills/sophnet-schedule/src/IMPROVEMENTS.md +145 -145
- package/skills/sophnet-schedule/src/SKILL.md +1050 -1050
- package/skills/sophnet-schedule/src/_meta.json +6 -6
- package/skills/sophnet-schedule/src/api/models.py +245 -245
- package/skills/sophnet-schedule/src/apps/add_event.py +237 -237
- package/skills/sophnet-schedule/src/apps/check_reminders.py +112 -112
- package/skills/sophnet-schedule/src/apps/check_roc.py +246 -246
- package/skills/sophnet-schedule/src/apps/generate_daily_plan.py +342 -342
- package/skills/sophnet-schedule/src/apps/import_events.py +216 -216
- package/skills/sophnet-schedule/src/apps/monitor_calendar_changes.py +140 -140
- package/skills/sophnet-schedule/src/apps/register_tasks.py +169 -169
- package/skills/sophnet-schedule/src/apps/sync_roc_to_gcal.py +174 -174
- package/skills/sophnet-schedule/src/compat.py +66 -66
- package/skills/sophnet-schedule/src/config/reminder_rules.yaml +96 -96
- package/skills/sophnet-schedule/src/config/roc_events.yaml +44 -44
- package/skills/sophnet-schedule/src/config/settings.py +133 -133
- package/skills/sophnet-schedule/src/config/task_registry.yaml +92 -92
- package/skills/sophnet-schedule/src/docs/FRONTEND_INTEGRATION_GUIDE.md +437 -437
- package/skills/sophnet-schedule/src/gcal/client.py +374 -374
- package/skills/sophnet-schedule/src/gcal/models.py +91 -91
- package/skills/sophnet-schedule/src/requirements.txt +6 -6
- package/skills/sophnet-schedule/src/scripts/setup_gcal_token.py +85 -85
- package/skills/sophnet-schedule/src/server.py +669 -669
- package/skills/sophnet-schedule/src/services/calendar_backend.py +139 -139
- package/skills/sophnet-schedule/src/services/conflict_detector.py +96 -96
- package/skills/sophnet-schedule/src/services/datetime_utils.py +117 -117
- package/skills/sophnet-schedule/src/services/event_classifier.py +100 -100
- package/skills/sophnet-schedule/src/services/event_diff.py +160 -160
- package/skills/sophnet-schedule/src/services/google_integration.py +500 -500
- package/skills/sophnet-schedule/src/services/job_store.py +100 -100
- package/skills/sophnet-schedule/src/services/local_event_store.py +266 -266
- package/skills/sophnet-schedule/src/services/reminder_planner.py +116 -116
- package/skills/sophnet-schedule/src/services/runtime_utils.py +31 -31
- package/skills/sophnet-schedule/src/services/table_parser.py +286 -286
- package/skills/sophnet-schedule/src/services/task_builder.py +167 -167
- package/skills/sophnet-schedule/src/services/time_window.py +72 -72
- package/skills/sophnet-sticker-edit/skill.json +27 -27
- package/skills/sophnet-sticker-edit/src/SKILL.md +80 -80
- package/skills/sophnet-sticker-edit/src/pyproject.toml +9 -9
- package/skills/sophnet-sticker-edit/src/scripts/edit_sticker_image.py +403 -403
- package/skills/sophnet-stock/skill.json +20 -20
- package/skills/sophnet-stock/src/App-Plan.md +442 -442
- package/skills/sophnet-stock/src/README.md +214 -214
- package/skills/sophnet-stock/src/SKILL.md +236 -236
- package/skills/sophnet-stock/src/TODO.md +394 -394
- package/skills/sophnet-stock/src/_meta.json +5 -5
- package/skills/sophnet-stock/src/docs/ARCHITECTURE.md +408 -408
- package/skills/sophnet-stock/src/docs/CONCEPT.md +233 -233
- package/skills/sophnet-stock/src/docs/HOT_SCANNER.md +288 -288
- package/skills/sophnet-stock/src/docs/README.md +95 -95
- package/skills/sophnet-stock/src/docs/USAGE.md +465 -465
- package/skills/sophnet-stock/src/scripts/analyze_stock.py +2565 -2565
- package/skills/sophnet-stock/src/scripts/dividends.py +365 -365
- package/skills/sophnet-stock/src/scripts/hot_scanner.py +582 -582
- package/skills/sophnet-stock/src/scripts/portfolio.py +548 -548
- package/skills/sophnet-stock/src/scripts/rumor_scanner.py +342 -342
- package/skills/sophnet-stock/src/scripts/test_stock_analysis.py +409 -409
- package/skills/sophnet-stock/src/scripts/watchlist.py +336 -336
- package/skills/sophnet-training-install/skill.json +27 -27
- package/skills/sophnet-training-install/src/SKILL.md +211 -211
- package/skills/sophnet-training-install/src/pyproject.toml +6 -6
- package/skills/sophnet-training-install/src/scripts/backup_md.py +35 -35
- package/skills/sophnet-training-install/src/scripts/check_installed.py +144 -144
- package/skills/sophnet-training-install/src/scripts/update_config.py +142 -142
- package/skills/sophnet-training-install/src/scripts/update_md.py +73 -73
- package/skills/sophnet-tts/skill.json +20 -20
- package/skills/sophnet-tts/src/SKILL.md +79 -79
- package/skills/sophnet-tts/src/pyproject.toml +9 -9
- package/skills/sophnet-tts/src/scripts/gen_tts.py +130 -130
- package/skills/sophnet-video-generate/skill.json +37 -37
- package/skills/sophnet-video-generate/src/SKILL.md +117 -117
- package/skills/sophnet-video-generate/src/scripts/gen_video.py +321 -321
- package/skills/sophnet-xlsx/skill.json +20 -20
- package/skills/sophnet-xlsx/src/SKILL.md +399 -399
- package/skills/sophnet-xlsx/src/pyproject.toml +11 -11
- package/skills/sophnet-xlsx/src/scripts/ensure_uv_env.sh +68 -68
- package/skills/sophnet-xlsx/src/scripts/office/helpers/merge_runs.py +199 -199
- package/skills/sophnet-xlsx/src/scripts/office/helpers/simplify_redlines.py +197 -197
- package/skills/sophnet-xlsx/src/scripts/office/pack.py +159 -159
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
- package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
- package/skills/sophnet-xlsx/src/scripts/office/schemas/mce/mc.xsd +75 -75
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-2010.xsd +560 -560
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-2012.xsd +67 -67
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-2018.xsd +14 -14
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -20
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -13
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
- package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -8
- package/skills/sophnet-xlsx/src/scripts/office/soffice.py +183 -183
- package/skills/sophnet-xlsx/src/scripts/office/unpack.py +132 -132
- package/skills/sophnet-xlsx/src/scripts/office/validate.py +111 -111
- package/skills/sophnet-xlsx/src/scripts/office/validators/__init__.py +15 -15
- package/skills/sophnet-xlsx/src/scripts/office/validators/base.py +847 -847
- package/skills/sophnet-xlsx/src/scripts/office/validators/docx.py +446 -446
- package/skills/sophnet-xlsx/src/scripts/office/validators/pptx.py +275 -275
- package/skills/sophnet-xlsx/src/scripts/office/validators/redlining.py +247 -247
- package/skills/sophnet-xlsx/src/scripts/recalc.py +184 -184
- package/skills/sophnet-xlsx/src/scripts/upload_file.sh +96 -96
- package/skills/sophnet-xlsx/src/uv.lock +319 -319
- package/skills/ui-ux-pro-max/skill.json +20 -20
- package/skills/ui-ux-pro-max/src/SKILL.md +377 -377
- package/skills/ui-ux-pro-max/src/data/icons.csv +101 -101
- package/skills/ui-ux-pro-max/src/data/react-performance.csv +45 -45
- package/skills/ui-ux-pro-max/src/data/stacks/astro.csv +54 -54
- package/skills/ui-ux-pro-max/src/data/stacks/jetpack-compose.csv +53 -53
- package/skills/ui-ux-pro-max/src/data/stacks/nuxt-ui.csv +51 -51
- package/skills/ui-ux-pro-max/src/data/stacks/nuxtjs.csv +59 -59
- package/skills/ui-ux-pro-max/src/data/stacks/shadcn.csv +61 -61
- package/skills/ui-ux-pro-max/src/data/typography.csv +57 -57
- package/skills/ui-ux-pro-max/src/data/ui-reasoning.csv +101 -101
- package/skills/ui-ux-pro-max/src/data/web-interface.csv +31 -31
- package/skills/ui-ux-pro-max/src/scripts/core.py +253 -253
- package/skills/ui-ux-pro-max/src/scripts/design_system.py +1067 -1067
- package/skills/video-understand/skill.json +20 -20
- package/skills/video-understand/src/SKILL.md +79 -79
- package/skills/video-understand/src/scripts/video_understand.py +204 -204
- package/skills/weather/skill.json +19 -19
- package/skills/weather/src/SKILL.md +112 -112
- package/skills/web-scraper/skill.json +20 -20
- package/skills/web-scraper/src/SKILL.md +101 -101
- package/skills/web-scraper/src/scripts/scrape.py +270 -270
- package/skills/website-builder/skill.json +20 -20
- package/skills/website-builder/src/SKILL.md +266 -266
- package/skills/website-builder/src/scripts/deploy_site.sh +46 -46
- package/skills/wechat-article-publisher/skill.json +20 -20
- package/skills/wechat-article-publisher/src/SKILL.md +60 -60
- package/skills/wechat-article-publisher/src/config.json +6 -6
- package/skills/wechat-article-publisher/src/pyproject.toml +12 -12
- package/skills/wechat-article-publisher/src/scripts/publish_wechat.py +825 -825
- package/skills/xiaohongshu/skill.json +20 -20
- package/skills/xiaohongshu/src/SKILL.md +91 -91
- package/skills/xiaohongshu/src/_meta.json +5 -5
- package/skills/xiaohongshu/src/assets/card.html +216 -216
- package/skills/xiaohongshu/src/assets/cover.html +82 -82
- package/skills/xiaohongshu/src/assets/example.md +84 -84
- package/skills/xiaohongshu/src/assets/styles.css +318 -318
- package/skills/xiaohongshu/src/scripts/render_xhs_v2.py +737 -737
- package/skills/xiaohongshu/src/scripts/sign_server.py +158 -158
- package/skills/xiaohongshu/src/scripts/stealth.min.js +6 -6
- package/skills/xiaohongshu/src/scripts/xhs_tool.py +186 -186
- package/skills/xiaohongshu/src/workflow.py +185 -185
- package/src/commands/agent.js +112 -112
- package/src/commands/download.js +101 -101
- package/src/commands/info.js +58 -58
- package/src/commands/list.js +71 -71
- package/src/utils/agents.js +36 -36
- package/src/utils/config.js +22 -22
- package/src/utils/paths.js +31 -31
- package/src/utils/versions.js +57 -57
|
@@ -1,284 +1,284 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: lawding-contract-review
|
|
3
|
-
description: "专业合同审核技能。对合同进行四层审核(基础、商业、法律、合规),生成审核意见书,将合同原件与审核文档备份到输出路径,并输出合同到期提醒、应付应收提醒、违约风险预警的 schema;如用户确认,再注册自动提醒 cron。TRIGGER when: (1) 用户提及合同审核、合同审查、合同风险、合同风险点等关键词,(2) 用户上传合同文件请求审核,(3) 用户说修改合同、改合同、分析合同、合同分析、帮我看看这个合同、看一下合同、合同有没有问题,(4) 用户询问合同条款设计、风险规避,(5) 用户需要分析合同条款的合法性、效力性,(6) 用户说起草合同并需要同步进行审核。输出:Word 文档(审核意见书)+ 备份目录 + reminders JSON。"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 专业合同审核 (Pro Contract Review)
|
|
7
|
-
|
|
8
|
-
你是一个专业的 AI 法律合规顾问,当前正在执行 `lawding-contract-review` 技能。
|
|
9
|
-
你的任务是严格遵循"三观四步法"审查体系,对用户提供的合同进行专业审查,并最终调用 `docx` 技能输出 Word 格式的交付物,同时将合同原件与审核文档备份到输出路径,生成 reminders schema,并在用户确认后注册自动提醒 cron。
|
|
10
|
-
|
|
11
|
-
请严格按照以下 4 个阶段执行任务。
|
|
12
|
-
|
|
13
|
-
## 输出路径与备份规则(全流程必须遵守)
|
|
14
|
-
|
|
15
|
-
### 默认输出目录
|
|
16
|
-
|
|
17
|
-
如用户未指定输出路径,默认输出到:
|
|
18
|
-
|
|
19
|
-
```text
|
|
20
|
-
/home/node/.openclaw/workspace/media/inbound/contracts/
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 自定义输出路径
|
|
24
|
-
|
|
25
|
-
如果用户明确提供了输出目录、保存目录、导出路径、归档目录等要求,则以用户指定路径为准。
|
|
26
|
-
|
|
27
|
-
### 目录结构
|
|
28
|
-
|
|
29
|
-
在最终输出前,必须先确定一个本次审核的归档目录,格式如下:
|
|
30
|
-
|
|
31
|
-
```text
|
|
32
|
-
<output_dir>/<合同名称规范化>_<YYYYMMDD-HHMMSS>/
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
其中:
|
|
36
|
-
|
|
37
|
-
- `合同名称规范化`:优先使用合同标题;若合同标题不明确,则使用"未命名合同"。目录名中仅保留中文、英文、数字、`-`、`_`,其余字符替换为 `_`。
|
|
38
|
-
- `YYYYMMDD-HHMMSS`:使用当前本地时间,避免重名覆盖。
|
|
39
|
-
|
|
40
|
-
### 必须保存的文件
|
|
41
|
-
|
|
42
|
-
每次审核完成后,归档目录中至少包含以下文件:
|
|
43
|
-
|
|
44
|
-
1. 合同原件备份
|
|
45
|
-
2. `审核意见书.docx`
|
|
46
|
-
3. `contract_reminders.json`
|
|
47
|
-
|
|
48
|
-
推荐同时补充:
|
|
49
|
-
|
|
50
|
-
1. `审核意见书.md`(传给 `docx` skill 前的结构化 Markdown 草稿)
|
|
51
|
-
2. `README.txt`(写明合同名称、审核时间、输出目录、文件清单)
|
|
52
|
-
3. `contract_review.json`(用于生成 reminders 的结构化合同要点)
|
|
53
|
-
4. `contract_cron_manifest.json`(如用户确认注册自动提醒,则保存注册结果)
|
|
54
|
-
|
|
55
|
-
### 合同原件备份规则
|
|
56
|
-
|
|
57
|
-
- 如果用户提供的是本地文件路径,必须将原文件复制到归档目录中,保留原扩展名。
|
|
58
|
-
- 如果用户上传的是文件但你只能获取到临时下载路径,也必须复制一份到归档目录中,文件名建议为 `合同原件<原扩展名>`。
|
|
59
|
-
- 如果用户提供的不是文件而是直接粘贴合同全文,则将全文保存为 `合同原文.md`。
|
|
60
|
-
- 若无法获得原文件路径,必须明确告知用户:"已生成审核意见书,但未能自动备份原合同文件;如需归档原件,请提供合同文件路径。"
|
|
61
|
-
|
|
62
|
-
### 输出完成后的反馈要求
|
|
63
|
-
|
|
64
|
-
完成归档后,必须在回复中明确告知用户:
|
|
65
|
-
|
|
66
|
-
- 最终归档目录路径
|
|
67
|
-
- `审核意见书.docx` 的完整路径
|
|
68
|
-
- 合同原件备份文件的完整路径(如有)
|
|
69
|
-
- `contract_reminders.json` 的完整路径
|
|
70
|
-
|
|
71
|
-
## 阶段一:强制前置信息收集 (Information Collection & Validation)
|
|
72
|
-
|
|
73
|
-
当你被触发时,**请立即中止审查动作**,进入信息收集和确认环节。请根据用户提供的上下文信息,判断以下要素是否完备:
|
|
74
|
-
|
|
75
|
-
1. **合同文件**(必须由用户提供原文)
|
|
76
|
-
2. **审查配置信息**(我方立场、市场地位、审核深度)
|
|
77
|
-
3. **特殊关注点**(询问是否有特殊要求)
|
|
78
|
-
4. **输出路径**(如用户未指定,则使用默认输出目录,无需强制追问)
|
|
79
|
-
|
|
80
|
-
**请按照以下逻辑向用户发起一次整合的提问确认:**
|
|
81
|
-
|
|
82
|
-
- **如果是初次收集**:
|
|
83
|
-
如果用户在提示中没有提供明确信息,你可以根据合同内容或上下文进行"智能推测"。在向用户提问时,不要抛出空白问题,而是**给出你的推测选项让用户确认**。
|
|
84
|
-
|
|
85
|
-
*话术示例:*
|
|
86
|
-
"我已经收到合同。基于初步浏览,我推测**我方立场**为【甲方/买方】,**市场地位**为【平等/相对弱势】。本次建议采用【标准】**审核深度**(不涉及具体耗时,仅代表检查的严密程度)。请确认以上设置是否符合您的要求?"
|
|
87
|
-
|
|
88
|
-
- **必问环节(无论用户是否主动提供)**:
|
|
89
|
-
你必须在这次提问的最后,附带询问用户:"**另外,请问针对这份合同,您有什么特殊的关注点或自定义的审查要求吗?(如没有可回复无)**"
|
|
90
|
-
|
|
91
|
-
> **⚠️ 特殊关注点评估指令:**
|
|
92
|
-
> - 如果用户回复"无",你可以直接进入下一阶段开始审查。
|
|
93
|
-
> - 如果用户提出了具体要求,你必须先评估其合理性(如:是否违反法律强制性规定或违背公序良俗?)。如果不合理,向用户礼貌解释法律风险并建议修改,取得同意后再继续;如果合理,将其设为本次审查的**最高优先级检查点**。
|
|
94
|
-
|
|
95
|
-
**确认完成后,告知用户:** "好的,开始审查,完成后将为您输出 Word 格式审核意见书,并将合同与审核文档归档到输出路径,请稍候。"
|
|
96
|
-
|
|
97
|
-
## 阶段二:严格加载方法论 (Load Methodologies)
|
|
98
|
-
|
|
99
|
-
你**绝对不能**使用通用常识去幻想或编造审查标准,你必须基于本技能自带的参考文件体系执行审查。请立即阅读并加载以下三个参考文件:
|
|
100
|
-
|
|
101
|
-
1. 读取 [references/contract-types.md](references/contract-types.md):找到当前合同对应的类型(共支持 17 类,如买卖、租赁等),明确该类合同的"核心审查要点"和"常见法律依据"。**读完后,将该合同类型的"关键条款"清单提取为一张内部检查表(每项标记为待勾选),供阶段三完整性核查使用。**
|
|
102
|
-
2. 读取 [references/review-methodology.md](references/review-methodology.md):根据用户选择的"审核深度"(快速/标准/深度),严格约束你的审查范围(宏观/中观/微观)。不要逾越或遗漏。
|
|
103
|
-
3. 读取 [references/risk-templates.md](references/risk-templates.md):后续在合同中发现的任何风险,都必须映射到这里的四个等级(致命、重要、一般、轻微瑕疵),并尽量采用模板中提供的标准修改建议。
|
|
104
|
-
4. 读取 [references/legal-language-library.md](references/legal-language-library.md):后续所有修改建议的措辞、条款表述,必须对照此规范库中的标准术语,使用规范"法言法语"。**禁止使用白话文表述**(如"交货"须改"交付","收钱"须改"收取价款","晚交"须改"迟延交付"等)。
|
|
105
|
-
5. 当审查涉及争议解决/管辖条款时,读取 [references/jurisdiction-review-rules.md](references/jurisdiction-review-rules.md):获取管辖约定的三步审查法、仲裁条款有效性审查、法院管辖审查规则、标准条款模板。
|
|
106
|
-
|
|
107
|
-
## 阶段三:执行四层审查 (Execution)
|
|
108
|
-
|
|
109
|
-
**【预处理:占位符识别】** 在开始审查前,先识别合同中的待填空白,以下内容视为"有意预留",不计入风险:
|
|
110
|
-
- 下划线占位:`___`、`______`
|
|
111
|
-
- 方括号占位:`[日期]`、`[金额]`、`[ ]`
|
|
112
|
-
- 括号标注:`(待填)`、`(另行确定)`
|
|
113
|
-
- 数字占位:`XX`、`×× 元`
|
|
114
|
-
|
|
115
|
-
对于识别出的待填空白,仅在意见书末尾统一列出"待填项清单",不作为风险计入风险汇总表。
|
|
116
|
-
|
|
117
|
-
结合用户的特殊要求和加载的方法论,在内部执行"四层审查":
|
|
118
|
-
|
|
119
|
-
- **基础层**:
|
|
120
|
-
1. **完整性核查**(先于逐条分析):对照阶段二提取的关键条款检查表,逐项判断合同是否包含该条款。**"缺失"的判断标准**:该主题在合同中完全没有涉及,或仅在前言/背景中一笔带过但无实质约定。对缺失条款打标,后续在意见书中单独列出。
|
|
121
|
-
2. **逐条分析**(现有条款):对合同中已存在的条款审查措辞风险,包括当事人身份、标的、履行条款完整性。
|
|
122
|
-
|
|
123
|
-
- **商业层**:权利义务分配、交易结构、支付条款。
|
|
124
|
-
- **法律层**:效力风险、违约责任、争议解决。
|
|
125
|
-
|
|
126
|
-
### 管辖约定专项审查
|
|
127
|
-
|
|
128
|
-
详见 [references/jurisdiction-review-rules.md](references/jurisdiction-review-rules.md)
|
|
129
|
-
|
|
130
|
-
合同管辖约定审查是法律层审核的重要组成部分,采用三步审查法:
|
|
131
|
-
|
|
132
|
-
**第一步:识别管辖约定**
|
|
133
|
-
- 合同是否约定了管辖机构(仲裁/法院/未约定)
|
|
134
|
-
|
|
135
|
-
**第二步:针对性询问**
|
|
136
|
-
- **未约定**:提示增加管辖约定,询问选择仲裁还是法院
|
|
137
|
-
- **约定法院**:确认是否需更改为仲裁,如需仲裁则明确具体仲裁委员会名称
|
|
138
|
-
- **约定仲裁**:确认是否需更改为法院
|
|
139
|
-
|
|
140
|
-
**第三步:深度审查**
|
|
141
|
-
- **仲裁机构审查**:明确具体仲裁委员会全称(严禁编造、改编、缩写),审查仲裁条款有效性(必备要素、常见无效情形),按标准条款模板进行约定或审查
|
|
142
|
-
- **法院管辖审查**:明确合同类型,调用 `lawding-regulation-retrieval` 检索管辖相关法律法规,判断专属管辖情形,审查协议管辖有效性,根据用户市场地位提供策略建议。当写明法院名称时,确保法院名称准确规范,不得编造、改编、缩写
|
|
143
|
-
|
|
144
|
-
- **合规层**:内部审批、行业要求、备案登记。
|
|
145
|
-
|
|
146
|
-
## 阶段四:生成最终交付物、提醒 schema,并按用户确认注册自动提醒 (Output + Reminder Schema + Optional Cron)
|
|
147
|
-
|
|
148
|
-
**本阶段必须调用 `docx` skill 生成 Word 文件,Markdown 草稿是传递给 docx skill 的中间格式,不是最终交付物。生成完成后,必须把合同原件与审核文档一并归档到输出路径,生成 reminders schema,并在用户确认后才注册自动提醒。**
|
|
149
|
-
|
|
150
|
-
### 4.1 草拟结构化 Markdown
|
|
151
|
-
|
|
152
|
-
基于审查结果生成结构化 Markdown,包含以下两部分:
|
|
153
|
-
|
|
154
|
-
**部分一:《[合同名称]_审核意见书》**
|
|
155
|
-
|
|
156
|
-
结构如下:
|
|
157
|
-
- **一、审查信息概述**:代表方、审核深度、自定义要求。
|
|
158
|
-
- **二、风险汇总表**(Markdown 表格):列出风险等级、风险描述、条款位置、修改建议。仅包含现有条款中发现的风险,不含缺失条款。
|
|
159
|
-
- **三、缺失条款清单**(Markdown 表格):仅列出完全缺失、合同中从未涉及的关键条款。与风险汇总表分开,避免混淆"条款有问题"和"条款不存在"。列:缺失条款 / 风险等级 / 建议补充要点 / 法律依据。若无缺失条款,此章节标注"经核查,本合同关键条款完整,无缺失。"
|
|
160
|
-
- **四、待填项清单**:列出合同中识别到的所有待填空白,提示签署前完成填写。若无,省略此章节。
|
|
161
|
-
- **五、自定义要求专项回应**(如有)。
|
|
162
|
-
- **六、总体签署建议**:建议签署 / 修改后签署 / 拒绝签署,并说明理由。
|
|
163
|
-
- **七、免责声明**:固定写入以下内容,不得省略或改写:"免责声明:本报告仅为 AI 辅助审查结果,供参考使用,不构成正式法律意见;重要合同请在签署前咨询专业律师。"
|
|
164
|
-
|
|
165
|
-
### 4.2 调用 DOCX 技能生成文件(必须执行)
|
|
166
|
-
|
|
167
|
-
完成上述 Markdown 草拟后,**必须立即**使用 `Skill` 工具调用 `docx` 技能:
|
|
168
|
-
- 工具名:`Skill`
|
|
169
|
-
- 参数:`skill: "docx"`
|
|
170
|
-
- 任务指示:将草拟的结构化 Markdown 转换为 Word 文件,文件名为 `[合同名称]_审核意见书.docx`,并保存到本次归档目录中。
|
|
171
|
-
|
|
172
|
-
### 4.3 执行归档备份(必须执行)
|
|
173
|
-
|
|
174
|
-
在 `docx` 文件生成后,必须立即完成以下归档动作:
|
|
175
|
-
|
|
176
|
-
1. 创建归档目录(若目录不存在则先创建)
|
|
177
|
-
2. 备份合同原件或合同原文
|
|
178
|
-
3. 保存 `审核意见书.docx`
|
|
179
|
-
4. 保存 `审核意见书.md`
|
|
180
|
-
5. 生成 `contract_review.json`
|
|
181
|
-
6. 基于 `contract_review.json` 生成 `contract_reminders.json`
|
|
182
|
-
7. 生成 `README.txt`
|
|
183
|
-
|
|
184
|
-
`README.txt` 至少包含以下内容:
|
|
185
|
-
|
|
186
|
-
- 合同名称
|
|
187
|
-
- 审核时间
|
|
188
|
-
- 我方立场
|
|
189
|
-
- 审核深度
|
|
190
|
-
- 归档目录
|
|
191
|
-
- 合同原件备份文件名
|
|
192
|
-
- 审核意见书文件名
|
|
193
|
-
- `contract_reminders.json` 文件名
|
|
194
|
-
|
|
195
|
-
### 4.4 生成提醒 schema(必须执行)
|
|
196
|
-
|
|
197
|
-
在审查结论与归档文件准备完成后,必须额外输出一份结构化合同要点文件 `contract_review.json`,并调用以下脚本生成提醒 schema:
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
python3 /app/skills/lawding-contract-review/scripts/build_reminders.py \
|
|
201
|
-
--input <archive_dir>/contract_review.json \
|
|
202
|
-
--output <archive_dir>/contract_reminders.json
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
`contract_review.json` 至少应包含下列已知字段(能提取多少写多少,不得编造):
|
|
206
|
-
|
|
207
|
-
- `contractName`
|
|
208
|
-
- `contractId`(如合同无编号,可自行生成归档用 ID)
|
|
209
|
-
- `counterparty`
|
|
210
|
-
- `currency`
|
|
211
|
-
- `signedDate`
|
|
212
|
-
- `effectiveDate`
|
|
213
|
-
- `expireDate`
|
|
214
|
-
- `terminationNoticeDays`
|
|
215
|
-
- `renewal`
|
|
216
|
-
- `payments`
|
|
217
|
-
- `breachRules`
|
|
218
|
-
|
|
219
|
-
**日期字段强制规则:**
|
|
220
|
-
|
|
221
|
-
- `contract_review.json` 中所有**可确定的日期字段**,必须统一使用 `YYYY-MM-DD` 格式。
|
|
222
|
-
- 严禁写成 `2026年3月31日`、`2026/3/31`、`3月31日`、`下月底` 等中文或自然语言日期形式。
|
|
223
|
-
- 至少以下字段必须遵守该规则:`signedDate`、`effectiveDate`、`expireDate`、`payments[].dueDate`、`breachRules[].anchorDate`。
|
|
224
|
-
- 对于**无法从合同中直接确定具体日期**的事项,不得编造、猜测或为了满足格式而虚构日期;应保留为条件描述,并将对应日期字段置空(如 `null`)。
|
|
225
|
-
- `triggerCondition`、`pendingCondition`、`notes` 等说明性字段可以保留自然语言,但不得冒充日期字段。
|
|
226
|
-
|
|
227
|
-
### 4.5 向用户展示提醒摘要,并询问是否注册自动提醒(必须执行)
|
|
228
|
-
|
|
229
|
-
生成 `contract_reminders.json` 后,**不要立刻注册 cron**。你必须先向用户展示提醒摘要,并明确询问是否注册自动提醒。
|
|
230
|
-
|
|
231
|
-
摘要至少包括:
|
|
232
|
-
|
|
233
|
-
- 合同到期提醒数量
|
|
234
|
-
- 应付/应收提醒数量
|
|
235
|
-
- 违约风险预警数量
|
|
236
|
-
- 因缺少明确日期而未能自动注册的待确认项数量(如有)
|
|
237
|
-
|
|
238
|
-
推荐话术:
|
|
239
|
-
|
|
240
|
-
> “已生成提醒方案:合同到期提醒 X 项、应付/应收提醒 Y 项、违约风险预警 Z 项。
|
|
241
|
-
> 其中仅对**能计算出明确日期**的提醒支持自动注册 cron。
|
|
242
|
-
> 是否现在为您注册自动提醒?如确认,我将把这些提醒注册为一次性 cron 任务,并在触发后自动删除。”
|
|
243
|
-
|
|
244
|
-
### 4.6 用户确认后注册自动提醒(仅在用户明确同意时执行)
|
|
245
|
-
|
|
246
|
-
如果用户明确回复“是 / 确认 / 注册 / 全部注册”等同意意思,才允许注册自动提醒。注册时必须调用以下脚本:
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
python3 /app/skills/lawding-contract-review/scripts/register_contract_cron.py \
|
|
250
|
-
--reminders-json <archive_dir>/contract_reminders.json
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
要求:
|
|
254
|
-
|
|
255
|
-
- 默认使用脚本的去重逻辑,先移除同名旧任务,再重新注册,避免重复提醒。
|
|
256
|
-
- 仅注册 `contract_reminders.json` 中**存在明确提醒日期**的事项。
|
|
257
|
-
- 所有自动提醒任务使用 one-shot 方式创建,执行后自动删除。
|
|
258
|
-
- 自动提醒统一走 `--session main + --system-event`,不要使用 `--message + --announce`。
|
|
259
|
-
|
|
260
|
-
如果用户回复“否 / 先不用 / 不注册”等拒绝意思,则停止在 schema 输出阶段,不创建任何 cron 任务。
|
|
261
|
-
|
|
262
|
-
### 4.7 最终回复要求
|
|
263
|
-
|
|
264
|
-
如果用户尚未确认注册自动提醒,先回复:
|
|
265
|
-
|
|
266
|
-
- 归档目录路径
|
|
267
|
-
- `审核意见书.docx` 路径
|
|
268
|
-
- 合同原件备份路径或 `合同原文.md` 路径
|
|
269
|
-
- `contract_reminders.json` 路径
|
|
270
|
-
- 提醒摘要
|
|
271
|
-
- 明确询问是否注册自动提醒
|
|
272
|
-
- 附上固定免责声明:"免责声明:本报告仅为 AI 辅助审查结果,供参考使用,不构成正式法律意见;重要合同请在签署前咨询专业律师。"
|
|
273
|
-
|
|
274
|
-
如果用户已经确认并完成注册,再回复:
|
|
275
|
-
|
|
276
|
-
- 归档目录路径
|
|
277
|
-
- `审核意见书.docx` 路径
|
|
278
|
-
- 合同原件备份路径或 `合同原文.md` 路径
|
|
279
|
-
- `contract_reminders.json` 路径
|
|
280
|
-
- `contract_cron_manifest.json` 路径
|
|
281
|
-
- 成功创建了多少个 cron 任务
|
|
282
|
-
- 跳过了多少个待确认项
|
|
283
|
-
- 若存在未完成的备份事项(如缺少原文件路径),要单独提示
|
|
284
|
-
- 附上固定免责声明:"免责声明:本报告仅为 AI 辅助审查结果,供参考使用,不构成正式法律意见;重要合同请在签署前咨询专业律师。"
|
|
1
|
+
---
|
|
2
|
+
name: lawding-contract-review
|
|
3
|
+
description: "专业合同审核技能。对合同进行四层审核(基础、商业、法律、合规),生成审核意见书,将合同原件与审核文档备份到输出路径,并输出合同到期提醒、应付应收提醒、违约风险预警的 schema;如用户确认,再注册自动提醒 cron。TRIGGER when: (1) 用户提及合同审核、合同审查、合同风险、合同风险点等关键词,(2) 用户上传合同文件请求审核,(3) 用户说修改合同、改合同、分析合同、合同分析、帮我看看这个合同、看一下合同、合同有没有问题,(4) 用户询问合同条款设计、风险规避,(5) 用户需要分析合同条款的合法性、效力性,(6) 用户说起草合同并需要同步进行审核。输出:Word 文档(审核意见书)+ 备份目录 + reminders JSON。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 专业合同审核 (Pro Contract Review)
|
|
7
|
+
|
|
8
|
+
你是一个专业的 AI 法律合规顾问,当前正在执行 `lawding-contract-review` 技能。
|
|
9
|
+
你的任务是严格遵循"三观四步法"审查体系,对用户提供的合同进行专业审查,并最终调用 `docx` 技能输出 Word 格式的交付物,同时将合同原件与审核文档备份到输出路径,生成 reminders schema,并在用户确认后注册自动提醒 cron。
|
|
10
|
+
|
|
11
|
+
请严格按照以下 4 个阶段执行任务。
|
|
12
|
+
|
|
13
|
+
## 输出路径与备份规则(全流程必须遵守)
|
|
14
|
+
|
|
15
|
+
### 默认输出目录
|
|
16
|
+
|
|
17
|
+
如用户未指定输出路径,默认输出到:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
/home/node/.openclaw/workspace/media/inbound/contracts/
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 自定义输出路径
|
|
24
|
+
|
|
25
|
+
如果用户明确提供了输出目录、保存目录、导出路径、归档目录等要求,则以用户指定路径为准。
|
|
26
|
+
|
|
27
|
+
### 目录结构
|
|
28
|
+
|
|
29
|
+
在最终输出前,必须先确定一个本次审核的归档目录,格式如下:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
<output_dir>/<合同名称规范化>_<YYYYMMDD-HHMMSS>/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
其中:
|
|
36
|
+
|
|
37
|
+
- `合同名称规范化`:优先使用合同标题;若合同标题不明确,则使用"未命名合同"。目录名中仅保留中文、英文、数字、`-`、`_`,其余字符替换为 `_`。
|
|
38
|
+
- `YYYYMMDD-HHMMSS`:使用当前本地时间,避免重名覆盖。
|
|
39
|
+
|
|
40
|
+
### 必须保存的文件
|
|
41
|
+
|
|
42
|
+
每次审核完成后,归档目录中至少包含以下文件:
|
|
43
|
+
|
|
44
|
+
1. 合同原件备份
|
|
45
|
+
2. `审核意见书.docx`
|
|
46
|
+
3. `contract_reminders.json`
|
|
47
|
+
|
|
48
|
+
推荐同时补充:
|
|
49
|
+
|
|
50
|
+
1. `审核意见书.md`(传给 `docx` skill 前的结构化 Markdown 草稿)
|
|
51
|
+
2. `README.txt`(写明合同名称、审核时间、输出目录、文件清单)
|
|
52
|
+
3. `contract_review.json`(用于生成 reminders 的结构化合同要点)
|
|
53
|
+
4. `contract_cron_manifest.json`(如用户确认注册自动提醒,则保存注册结果)
|
|
54
|
+
|
|
55
|
+
### 合同原件备份规则
|
|
56
|
+
|
|
57
|
+
- 如果用户提供的是本地文件路径,必须将原文件复制到归档目录中,保留原扩展名。
|
|
58
|
+
- 如果用户上传的是文件但你只能获取到临时下载路径,也必须复制一份到归档目录中,文件名建议为 `合同原件<原扩展名>`。
|
|
59
|
+
- 如果用户提供的不是文件而是直接粘贴合同全文,则将全文保存为 `合同原文.md`。
|
|
60
|
+
- 若无法获得原文件路径,必须明确告知用户:"已生成审核意见书,但未能自动备份原合同文件;如需归档原件,请提供合同文件路径。"
|
|
61
|
+
|
|
62
|
+
### 输出完成后的反馈要求
|
|
63
|
+
|
|
64
|
+
完成归档后,必须在回复中明确告知用户:
|
|
65
|
+
|
|
66
|
+
- 最终归档目录路径
|
|
67
|
+
- `审核意见书.docx` 的完整路径
|
|
68
|
+
- 合同原件备份文件的完整路径(如有)
|
|
69
|
+
- `contract_reminders.json` 的完整路径
|
|
70
|
+
|
|
71
|
+
## 阶段一:强制前置信息收集 (Information Collection & Validation)
|
|
72
|
+
|
|
73
|
+
当你被触发时,**请立即中止审查动作**,进入信息收集和确认环节。请根据用户提供的上下文信息,判断以下要素是否完备:
|
|
74
|
+
|
|
75
|
+
1. **合同文件**(必须由用户提供原文)
|
|
76
|
+
2. **审查配置信息**(我方立场、市场地位、审核深度)
|
|
77
|
+
3. **特殊关注点**(询问是否有特殊要求)
|
|
78
|
+
4. **输出路径**(如用户未指定,则使用默认输出目录,无需强制追问)
|
|
79
|
+
|
|
80
|
+
**请按照以下逻辑向用户发起一次整合的提问确认:**
|
|
81
|
+
|
|
82
|
+
- **如果是初次收集**:
|
|
83
|
+
如果用户在提示中没有提供明确信息,你可以根据合同内容或上下文进行"智能推测"。在向用户提问时,不要抛出空白问题,而是**给出你的推测选项让用户确认**。
|
|
84
|
+
|
|
85
|
+
*话术示例:*
|
|
86
|
+
"我已经收到合同。基于初步浏览,我推测**我方立场**为【甲方/买方】,**市场地位**为【平等/相对弱势】。本次建议采用【标准】**审核深度**(不涉及具体耗时,仅代表检查的严密程度)。请确认以上设置是否符合您的要求?"
|
|
87
|
+
|
|
88
|
+
- **必问环节(无论用户是否主动提供)**:
|
|
89
|
+
你必须在这次提问的最后,附带询问用户:"**另外,请问针对这份合同,您有什么特殊的关注点或自定义的审查要求吗?(如没有可回复无)**"
|
|
90
|
+
|
|
91
|
+
> **⚠️ 特殊关注点评估指令:**
|
|
92
|
+
> - 如果用户回复"无",你可以直接进入下一阶段开始审查。
|
|
93
|
+
> - 如果用户提出了具体要求,你必须先评估其合理性(如:是否违反法律强制性规定或违背公序良俗?)。如果不合理,向用户礼貌解释法律风险并建议修改,取得同意后再继续;如果合理,将其设为本次审查的**最高优先级检查点**。
|
|
94
|
+
|
|
95
|
+
**确认完成后,告知用户:** "好的,开始审查,完成后将为您输出 Word 格式审核意见书,并将合同与审核文档归档到输出路径,请稍候。"
|
|
96
|
+
|
|
97
|
+
## 阶段二:严格加载方法论 (Load Methodologies)
|
|
98
|
+
|
|
99
|
+
你**绝对不能**使用通用常识去幻想或编造审查标准,你必须基于本技能自带的参考文件体系执行审查。请立即阅读并加载以下三个参考文件:
|
|
100
|
+
|
|
101
|
+
1. 读取 [references/contract-types.md](references/contract-types.md):找到当前合同对应的类型(共支持 17 类,如买卖、租赁等),明确该类合同的"核心审查要点"和"常见法律依据"。**读完后,将该合同类型的"关键条款"清单提取为一张内部检查表(每项标记为待勾选),供阶段三完整性核查使用。**
|
|
102
|
+
2. 读取 [references/review-methodology.md](references/review-methodology.md):根据用户选择的"审核深度"(快速/标准/深度),严格约束你的审查范围(宏观/中观/微观)。不要逾越或遗漏。
|
|
103
|
+
3. 读取 [references/risk-templates.md](references/risk-templates.md):后续在合同中发现的任何风险,都必须映射到这里的四个等级(致命、重要、一般、轻微瑕疵),并尽量采用模板中提供的标准修改建议。
|
|
104
|
+
4. 读取 [references/legal-language-library.md](references/legal-language-library.md):后续所有修改建议的措辞、条款表述,必须对照此规范库中的标准术语,使用规范"法言法语"。**禁止使用白话文表述**(如"交货"须改"交付","收钱"须改"收取价款","晚交"须改"迟延交付"等)。
|
|
105
|
+
5. 当审查涉及争议解决/管辖条款时,读取 [references/jurisdiction-review-rules.md](references/jurisdiction-review-rules.md):获取管辖约定的三步审查法、仲裁条款有效性审查、法院管辖审查规则、标准条款模板。
|
|
106
|
+
|
|
107
|
+
## 阶段三:执行四层审查 (Execution)
|
|
108
|
+
|
|
109
|
+
**【预处理:占位符识别】** 在开始审查前,先识别合同中的待填空白,以下内容视为"有意预留",不计入风险:
|
|
110
|
+
- 下划线占位:`___`、`______`
|
|
111
|
+
- 方括号占位:`[日期]`、`[金额]`、`[ ]`
|
|
112
|
+
- 括号标注:`(待填)`、`(另行确定)`
|
|
113
|
+
- 数字占位:`XX`、`×× 元`
|
|
114
|
+
|
|
115
|
+
对于识别出的待填空白,仅在意见书末尾统一列出"待填项清单",不作为风险计入风险汇总表。
|
|
116
|
+
|
|
117
|
+
结合用户的特殊要求和加载的方法论,在内部执行"四层审查":
|
|
118
|
+
|
|
119
|
+
- **基础层**:
|
|
120
|
+
1. **完整性核查**(先于逐条分析):对照阶段二提取的关键条款检查表,逐项判断合同是否包含该条款。**"缺失"的判断标准**:该主题在合同中完全没有涉及,或仅在前言/背景中一笔带过但无实质约定。对缺失条款打标,后续在意见书中单独列出。
|
|
121
|
+
2. **逐条分析**(现有条款):对合同中已存在的条款审查措辞风险,包括当事人身份、标的、履行条款完整性。
|
|
122
|
+
|
|
123
|
+
- **商业层**:权利义务分配、交易结构、支付条款。
|
|
124
|
+
- **法律层**:效力风险、违约责任、争议解决。
|
|
125
|
+
|
|
126
|
+
### 管辖约定专项审查
|
|
127
|
+
|
|
128
|
+
详见 [references/jurisdiction-review-rules.md](references/jurisdiction-review-rules.md)
|
|
129
|
+
|
|
130
|
+
合同管辖约定审查是法律层审核的重要组成部分,采用三步审查法:
|
|
131
|
+
|
|
132
|
+
**第一步:识别管辖约定**
|
|
133
|
+
- 合同是否约定了管辖机构(仲裁/法院/未约定)
|
|
134
|
+
|
|
135
|
+
**第二步:针对性询问**
|
|
136
|
+
- **未约定**:提示增加管辖约定,询问选择仲裁还是法院
|
|
137
|
+
- **约定法院**:确认是否需更改为仲裁,如需仲裁则明确具体仲裁委员会名称
|
|
138
|
+
- **约定仲裁**:确认是否需更改为法院
|
|
139
|
+
|
|
140
|
+
**第三步:深度审查**
|
|
141
|
+
- **仲裁机构审查**:明确具体仲裁委员会全称(严禁编造、改编、缩写),审查仲裁条款有效性(必备要素、常见无效情形),按标准条款模板进行约定或审查
|
|
142
|
+
- **法院管辖审查**:明确合同类型,调用 `lawding-regulation-retrieval` 检索管辖相关法律法规,判断专属管辖情形,审查协议管辖有效性,根据用户市场地位提供策略建议。当写明法院名称时,确保法院名称准确规范,不得编造、改编、缩写
|
|
143
|
+
|
|
144
|
+
- **合规层**:内部审批、行业要求、备案登记。
|
|
145
|
+
|
|
146
|
+
## 阶段四:生成最终交付物、提醒 schema,并按用户确认注册自动提醒 (Output + Reminder Schema + Optional Cron)
|
|
147
|
+
|
|
148
|
+
**本阶段必须调用 `docx` skill 生成 Word 文件,Markdown 草稿是传递给 docx skill 的中间格式,不是最终交付物。生成完成后,必须把合同原件与审核文档一并归档到输出路径,生成 reminders schema,并在用户确认后才注册自动提醒。**
|
|
149
|
+
|
|
150
|
+
### 4.1 草拟结构化 Markdown
|
|
151
|
+
|
|
152
|
+
基于审查结果生成结构化 Markdown,包含以下两部分:
|
|
153
|
+
|
|
154
|
+
**部分一:《[合同名称]_审核意见书》**
|
|
155
|
+
|
|
156
|
+
结构如下:
|
|
157
|
+
- **一、审查信息概述**:代表方、审核深度、自定义要求。
|
|
158
|
+
- **二、风险汇总表**(Markdown 表格):列出风险等级、风险描述、条款位置、修改建议。仅包含现有条款中发现的风险,不含缺失条款。
|
|
159
|
+
- **三、缺失条款清单**(Markdown 表格):仅列出完全缺失、合同中从未涉及的关键条款。与风险汇总表分开,避免混淆"条款有问题"和"条款不存在"。列:缺失条款 / 风险等级 / 建议补充要点 / 法律依据。若无缺失条款,此章节标注"经核查,本合同关键条款完整,无缺失。"
|
|
160
|
+
- **四、待填项清单**:列出合同中识别到的所有待填空白,提示签署前完成填写。若无,省略此章节。
|
|
161
|
+
- **五、自定义要求专项回应**(如有)。
|
|
162
|
+
- **六、总体签署建议**:建议签署 / 修改后签署 / 拒绝签署,并说明理由。
|
|
163
|
+
- **七、免责声明**:固定写入以下内容,不得省略或改写:"免责声明:本报告仅为 AI 辅助审查结果,供参考使用,不构成正式法律意见;重要合同请在签署前咨询专业律师。"
|
|
164
|
+
|
|
165
|
+
### 4.2 调用 DOCX 技能生成文件(必须执行)
|
|
166
|
+
|
|
167
|
+
完成上述 Markdown 草拟后,**必须立即**使用 `Skill` 工具调用 `docx` 技能:
|
|
168
|
+
- 工具名:`Skill`
|
|
169
|
+
- 参数:`skill: "docx"`
|
|
170
|
+
- 任务指示:将草拟的结构化 Markdown 转换为 Word 文件,文件名为 `[合同名称]_审核意见书.docx`,并保存到本次归档目录中。
|
|
171
|
+
|
|
172
|
+
### 4.3 执行归档备份(必须执行)
|
|
173
|
+
|
|
174
|
+
在 `docx` 文件生成后,必须立即完成以下归档动作:
|
|
175
|
+
|
|
176
|
+
1. 创建归档目录(若目录不存在则先创建)
|
|
177
|
+
2. 备份合同原件或合同原文
|
|
178
|
+
3. 保存 `审核意见书.docx`
|
|
179
|
+
4. 保存 `审核意见书.md`
|
|
180
|
+
5. 生成 `contract_review.json`
|
|
181
|
+
6. 基于 `contract_review.json` 生成 `contract_reminders.json`
|
|
182
|
+
7. 生成 `README.txt`
|
|
183
|
+
|
|
184
|
+
`README.txt` 至少包含以下内容:
|
|
185
|
+
|
|
186
|
+
- 合同名称
|
|
187
|
+
- 审核时间
|
|
188
|
+
- 我方立场
|
|
189
|
+
- 审核深度
|
|
190
|
+
- 归档目录
|
|
191
|
+
- 合同原件备份文件名
|
|
192
|
+
- 审核意见书文件名
|
|
193
|
+
- `contract_reminders.json` 文件名
|
|
194
|
+
|
|
195
|
+
### 4.4 生成提醒 schema(必须执行)
|
|
196
|
+
|
|
197
|
+
在审查结论与归档文件准备完成后,必须额外输出一份结构化合同要点文件 `contract_review.json`,并调用以下脚本生成提醒 schema:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
python3 /app/skills/lawding-contract-review/scripts/build_reminders.py \
|
|
201
|
+
--input <archive_dir>/contract_review.json \
|
|
202
|
+
--output <archive_dir>/contract_reminders.json
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`contract_review.json` 至少应包含下列已知字段(能提取多少写多少,不得编造):
|
|
206
|
+
|
|
207
|
+
- `contractName`
|
|
208
|
+
- `contractId`(如合同无编号,可自行生成归档用 ID)
|
|
209
|
+
- `counterparty`
|
|
210
|
+
- `currency`
|
|
211
|
+
- `signedDate`
|
|
212
|
+
- `effectiveDate`
|
|
213
|
+
- `expireDate`
|
|
214
|
+
- `terminationNoticeDays`
|
|
215
|
+
- `renewal`
|
|
216
|
+
- `payments`
|
|
217
|
+
- `breachRules`
|
|
218
|
+
|
|
219
|
+
**日期字段强制规则:**
|
|
220
|
+
|
|
221
|
+
- `contract_review.json` 中所有**可确定的日期字段**,必须统一使用 `YYYY-MM-DD` 格式。
|
|
222
|
+
- 严禁写成 `2026年3月31日`、`2026/3/31`、`3月31日`、`下月底` 等中文或自然语言日期形式。
|
|
223
|
+
- 至少以下字段必须遵守该规则:`signedDate`、`effectiveDate`、`expireDate`、`payments[].dueDate`、`breachRules[].anchorDate`。
|
|
224
|
+
- 对于**无法从合同中直接确定具体日期**的事项,不得编造、猜测或为了满足格式而虚构日期;应保留为条件描述,并将对应日期字段置空(如 `null`)。
|
|
225
|
+
- `triggerCondition`、`pendingCondition`、`notes` 等说明性字段可以保留自然语言,但不得冒充日期字段。
|
|
226
|
+
|
|
227
|
+
### 4.5 向用户展示提醒摘要,并询问是否注册自动提醒(必须执行)
|
|
228
|
+
|
|
229
|
+
生成 `contract_reminders.json` 后,**不要立刻注册 cron**。你必须先向用户展示提醒摘要,并明确询问是否注册自动提醒。
|
|
230
|
+
|
|
231
|
+
摘要至少包括:
|
|
232
|
+
|
|
233
|
+
- 合同到期提醒数量
|
|
234
|
+
- 应付/应收提醒数量
|
|
235
|
+
- 违约风险预警数量
|
|
236
|
+
- 因缺少明确日期而未能自动注册的待确认项数量(如有)
|
|
237
|
+
|
|
238
|
+
推荐话术:
|
|
239
|
+
|
|
240
|
+
> “已生成提醒方案:合同到期提醒 X 项、应付/应收提醒 Y 项、违约风险预警 Z 项。
|
|
241
|
+
> 其中仅对**能计算出明确日期**的提醒支持自动注册 cron。
|
|
242
|
+
> 是否现在为您注册自动提醒?如确认,我将把这些提醒注册为一次性 cron 任务,并在触发后自动删除。”
|
|
243
|
+
|
|
244
|
+
### 4.6 用户确认后注册自动提醒(仅在用户明确同意时执行)
|
|
245
|
+
|
|
246
|
+
如果用户明确回复“是 / 确认 / 注册 / 全部注册”等同意意思,才允许注册自动提醒。注册时必须调用以下脚本:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
python3 /app/skills/lawding-contract-review/scripts/register_contract_cron.py \
|
|
250
|
+
--reminders-json <archive_dir>/contract_reminders.json
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
要求:
|
|
254
|
+
|
|
255
|
+
- 默认使用脚本的去重逻辑,先移除同名旧任务,再重新注册,避免重复提醒。
|
|
256
|
+
- 仅注册 `contract_reminders.json` 中**存在明确提醒日期**的事项。
|
|
257
|
+
- 所有自动提醒任务使用 one-shot 方式创建,执行后自动删除。
|
|
258
|
+
- 自动提醒统一走 `--session main + --system-event`,不要使用 `--message + --announce`。
|
|
259
|
+
|
|
260
|
+
如果用户回复“否 / 先不用 / 不注册”等拒绝意思,则停止在 schema 输出阶段,不创建任何 cron 任务。
|
|
261
|
+
|
|
262
|
+
### 4.7 最终回复要求
|
|
263
|
+
|
|
264
|
+
如果用户尚未确认注册自动提醒,先回复:
|
|
265
|
+
|
|
266
|
+
- 归档目录路径
|
|
267
|
+
- `审核意见书.docx` 路径
|
|
268
|
+
- 合同原件备份路径或 `合同原文.md` 路径
|
|
269
|
+
- `contract_reminders.json` 路径
|
|
270
|
+
- 提醒摘要
|
|
271
|
+
- 明确询问是否注册自动提醒
|
|
272
|
+
- 附上固定免责声明:"免责声明:本报告仅为 AI 辅助审查结果,供参考使用,不构成正式法律意见;重要合同请在签署前咨询专业律师。"
|
|
273
|
+
|
|
274
|
+
如果用户已经确认并完成注册,再回复:
|
|
275
|
+
|
|
276
|
+
- 归档目录路径
|
|
277
|
+
- `审核意见书.docx` 路径
|
|
278
|
+
- 合同原件备份路径或 `合同原文.md` 路径
|
|
279
|
+
- `contract_reminders.json` 路径
|
|
280
|
+
- `contract_cron_manifest.json` 路径
|
|
281
|
+
- 成功创建了多少个 cron 任务
|
|
282
|
+
- 跳过了多少个待确认项
|
|
283
|
+
- 若存在未完成的备份事项(如缺少原文件路径),要单独提示
|
|
284
|
+
- 附上固定免责声明:"免责声明:本报告仅为 AI 辅助审查结果,供参考使用,不构成正式法律意见;重要合同请在签署前咨询专业律师。"
|