{"id":"eb91e965-dfa5-4d12-9044-4d183499b3fc","entityType":"agent","slug":"clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis","name":"Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）","canonicalUrl":"https://www.xpersona.co/agent/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis","canonicalPath":"/agent/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis","generatedAt":"2026-10-10T07:12:36.719Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":null},"description":"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-race-foul-detection-analysis","sourceUrl":"https://clawhub.ai/smyx-sunjinhui/smyx-race-foul-detection-analysis","homepage":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/smyx-sunjinhui/smyx-race-foul-detection-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道） technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust m"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":null},"stars":null,"forks":null,"downloads":1799,"packageName":null,"latestVersion":"1.0.11","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T01:41:31.723Z","lastCrawledAt":"2026-10-10T01:41:31.723Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T01:41:31.723Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.11","createdAt":"2026-09-30T10:27:27.095Z","changelog":"- Updated skill version to 1.0.16. - Synchronized documentation (SKILL.md) to match the latest description, details, and versioning. - Removed the redundant skill-card.md file. - Internal configuration updated; no changes to skill usage or features for users.","fileCount":31,"zipByteSize":39217},{"version":"1.0.10","createdAt":"2026-09-08T17:59:29.098Z","changelog":"- skill-card.md file removed. - SKILL.md updated: bumped version to 1.0.13. - No functional, logic, or usage changes. - Documentation and metadata adjustments only.","fileCount":31,"zipByteSize":39267},{"version":"1.0.9","createdAt":"2026-08-27T23:49:30.090Z","changelog":"- Version bump from 1.0.11 to 1.0.12 in SKILL.md. - Minor edits to documentation; no functional or code changes. - Removed skill-card.md file.","fileCount":31,"zipByteSize":39254},{"version":"1.0.8","createdAt":"2026-08-19T17:04:30.306Z","changelog":"- Updated skill version to 1.0.11. - Synchronized and revised content in SKILL.md for consistency and clarity. - Removed redundant file: skill-card.md. - Updated scripts/smyx_common/scripts/config.yaml in line with version requirements.","fileCount":31,"zipByteSize":39292},{"version":"1.0.7","createdAt":"2026-08-12T06:42:39.609Z","changelog":"- Updated version number to 1.0.10 in SKILL.md. - Removed the skill-card.md file. - No changes to functional features or logic—documentation and metadata maintenance only.","fileCount":31,"zipByteSize":39370},{"version":"1.0.6","createdAt":"2026-08-05T06:42:35.872Z","changelog":"smyx-race-foul-detection-analysis 1.0.6 Changelog - Updated SKILL.md with minor text and metadata changes. - Bumped version from 1.0.7 to 1.0.8 in SKILL.md. - Removed skill-card.md file.","fileCount":31,"zipByteSize":39225},{"version":"1.0.5","createdAt":"2026-07-27T06:03:28.103Z","changelog":"- Updated skill version to 1.0.7. - Removed the file: skill-card.md. - SKILL.md updated; content and usage instructions clarified, but no core functionality changes documented. - Version and documentation consistency improved.","fileCount":31,"zipByteSize":39322},{"version":"1.0.4","createdAt":"2026-07-18T01:59:31.342Z","changelog":"# smyx-race-foul-detection-analysis 1.0.4 Changelog - Updated SKILL.md: revised skill metadata and documentation. - Removed skill-card.md for a more streamlined documentation set.","fileCount":31,"zipByteSize":39196}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-race-foul-detection-analysis","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-race-foul-detection-analysis` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/smyx-sunjinhui/smyx-race-foul-detection-analysis before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T07:12:36.716Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-race-foul-detection-analysis/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":null},"readme":"Skill: Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nOwner: smyx-sunjinhui\n\nSummary: Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\nTags: latest:1.0.11\n\nVersion history:\n\nv1.0.11 | 2026-09-30T10:27:27.095Z | auto\n\n- Updated skill version to 1.0.16.\n- Synchronized documentation (SKILL.md) to match the latest description, details, and versioning.\n- Removed the redundant skill-card.md file.\n- Internal configuration updated; no changes to skill usage or features for users.\n\nv1.0.10 | 2026-09-08T17:59:29.098Z | auto\n\n- skill-card.md file removed.\n- SKILL.md updated: bumped version to 1.0.13.\n- No functional, logic, or usage changes.\n- Documentation and metadata adjustments only.\n\nv1.0.9 | 2026-08-27T23:49:30.090Z | auto\n\n- Version bump from 1.0.11 to 1.0.12 in SKILL.md.\n- Minor edits to documentation; no functional or code changes.\n- Removed skill-card.md file.\n\nv1.0.8 | 2026-08-19T17:04:30.306Z | auto\n\n- Updated skill version to 1.0.11.\n- Synchronized and revised content in SKILL.md for consistency and clarity.\n- Removed redundant file: skill-card.md.\n- Updated scripts/smyx_common/scripts/config.yaml in line with version requirements.\n\nv1.0.7 | 2026-08-12T06:42:39.609Z | auto\n\n- Updated version number to 1.0.10 in SKILL.md.\n- Removed the skill-card.md file.\n- No changes to functional features or logic—documentation and metadata maintenance only.\n\nv1.0.6 | 2026-08-05T06:42:35.872Z | auto\n\nsmyx-race-foul-detection-analysis 1.0.6 Changelog\n\n- Updated SKILL.md with minor text and metadata changes.\n- Bumped version from 1.0.7 to 1.0.8 in SKILL.md.\n- Removed skill-card.md file.\n\nv1.0.5 | 2026-07-27T06:03:28.103Z | auto\n\n- Updated skill version to 1.0.7.\n- Removed the file: skill-card.md.\n- SKILL.md updated; content and usage instructions clarified, but no core functionality changes documented.\n- Version and documentation consistency improved.\n\nv1.0.4 | 2026-07-18T01:59:31.342Z | auto\n\n# smyx-race-foul-detection-analysis 1.0.4 Changelog\n\n- Updated SKILL.md: revised skill metadata and documentation.\n- Removed skill-card.md for a more streamlined documentation set.\n\nv1.0.3 | 2026-07-10T22:17:30.238Z | auto\n\n- Updated version to 1.0.5.\n- Documentation (SKILL.md) updated; version number incremented and content refreshed.\n- Internal script improvements in `skills/smyx_common/scripts/util.py`.\n- Removed deprecated `skill-card.md` file.\n\nv1.0.2 | 2026-07-04T22:02:43.568Z | auto\n\n- Updated version number to 1.0.4.\n- Documentation updates in SKILL.md for improved clarity and accuracy.\n- Removed obsolete file: skill-card.md.\n- Internal script/config, dao, and util.py adjustments (details not specified).\n- No functional changes to user-facing features.\n\nv1.0.1 | 2026-06-24T21:22:33.814Z | auto\n\n- Improved user privacy and experience: user identity (open-id) is now handled automatically by the system and never requested from or exposed to the user.\n- Unified and simplified trigger and workflow rules; tabled summaries and clearer operator instructions.\n- Revised documentation for easier understanding, removing ID prompts and clarifying parameter usage.\n- Updated scripts and configuration for seamless integration and internal user context handling.\n- Historical report retrieval now strictly uses cloud API with standardized Markdown table output.\n- Removed redundant and deprecated files to streamline the codebase.\n\nv1.0.0 | 2026-05-22T15:19:46.539Z | auto\n\nsmyx-race-foul-detection-analysis 1.0.0 — Initial release for pet race foul detection via video analysis.\n\n- Triggers on start/finish track video upload or URL for pet races (dog, horse, etc.), analyzing for false starts and lane crossing.\n- Extracts each participant’s start time, finish order, lane assignment, and outputs structured verdicts without providing race advice.\n- Enforces strict open-id (user identity) collection process before any analysis or report listing.\n- Supports both video upload and network URLs for analysis using a dedicated Python script and API.\n- Includes automatic detection and Markdown-formatted listing of historical foul reports upon certain keywords.\n\nArchive index:\n\nArchive v1.0.11: 31 files, 39217 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2389b), SKILL.md (12491b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (153b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1790764047095\n}\n\nFile v1.0.11:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.11:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.11:scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nAnalyzes pet race videos to flag false starts and lane crossings and provide structured results to assist referees.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nRace referees and event organizers use this skill to review start and finish footage, identify possible false starts or lane crossings, and consult past reports. Its findings assist rather than replace the on-site referee's decision.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Race footage or supplied video URLs are sent to external services for analysis.\n\nMitigation: Use only footage you are authorized to share; avoid sensitive footage unless you trust the service's retention and access controls.\n\nRisk: The skill creates or reuses a local identity and stores tokens and profile data in a workspace SQLite database.\n\nMitigation: Review this behavior before installation and restrict access to the workspace and stored identity data.\n\nRisk: History requests automatically retrieve cloud reports with limited user control.\n\nMitigation: Review access to report history before use and avoid invoking history queries when cloud retrieval is not appropriate.\n\nRisk: Automated foul assessments may affect race decisions.\n\nMitigation: Treat results as referee assistance and leave final rulings to the on-site head referee.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis)\n- [Skill demonstration](https://lifeemergence.com/sample.html)\n- [API reference](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, JSON, Guidance]\n\n**Output Format:** [Structured analysis results, report links, and Markdown tables for report history]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Optional JSON result file; supports basic, standard, and JSON detail levels.]\n\n## Skill Version(s):\n\n1.0.11 (source: ClawHub release metadata; bundled SKILL.md lists 1.0.16)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.11:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.11:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.10: 31 files, 39267 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2592b), SKILL.md (12491b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (153b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1788890369098\n}\n\nFile v1.0.10:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.10:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.10:scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nAnalyzes pet race start and finish videos to identify start timing, lane assignment, finish order, false starts, and lane-crossing fouls for referee review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal event operators, referees, trainers, and developers use this skill to submit pet racing video URLs or files for cloud-assisted foul detection and structured race reports. It supports objective review of false starts, lane crossing, lane assignment, and finish order, with final decisions remaining with event officials.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends video files or video URLs to a Life Emergence cloud service for analysis.\n\nMitigation: Use only media that the operator is authorized to upload, and review provider privacy, retention, and data handling terms before installation.\n\nRisk: The skill can create or reuse an internal identity, send that identity to the backend, and store returned credentials in a shared local SQLite database.\n\nMitigation: Run the skill in an isolated environment, restrict local database access, and clear stored credentials when deprovisioning or rotating users.\n\nRisk: The skill can query cloud-stored report history associated with the internal identity.\n\nMitigation: Confirm report-history access controls and avoid using the skill where identity-linked media analysis history must not be retained by the provider.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis)\n- [API interface documentation](artifact/references/api_doc.md)\n- [Analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown tables, JSON-style structured reports, report links, and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include cloud-hosted report links and history lists returned by the provider service.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.10:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.10:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.9: 31 files, 39254 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2476b), SKILL.md (12491b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1787874570090\n}\n\nFile v1.0.9:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.9:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.9:scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nAnalyzes pet race start or finish videos to identify false starts, lane crossing, finish order, and lane assignments for referee review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, event staff, and developers use this skill to run video-based foul detection for pet racing, including false-start and lane-crossing checks. Results are intended to support referee review rather than replace the final on-site decision.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Race media or media URLs may be sent to a remote service for analysis.\n\nMitigation: Review the configured service endpoints and only process media that is approved for that destination.\n\nRisk: The skill may silently create or reuse an account identity and store session tokens or profile data in the workspace.\n\nMitigation: Run it in an isolated workspace, review local stored identity data, and remove or rotate tokens after use when appropriate.\n\nRisk: History queries may retrieve prior cloud reports linked to the resolved identity.\n\nMitigation: Confirm the user is authorized to view those reports before running history-list mode.\n\nRisk: Bundled configuration may select dev HTTP or private-network endpoints.\n\nMitigation: Change configuration to approved production HTTPS endpoints before commercial use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API documentation](references/api_doc.md)\n- [SMYX analysis API documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, shell commands]\n\n**Output Format:** [Markdown reports with structured JSON-style results, report links, and inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include cloud report history when history-query mode is requested.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release metadata; artifact frontmatter says 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.9:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.9:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.8: 31 files, 39292 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2615b), SKILL.md (12491b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1787159070306\n}\n\nFile v1.0.8:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.8:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.8:scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nAnalyzes pet race start and finish media to identify start timing, lane assignment, finish order, false starts, and lane-crossing fouls, returning objective judgment results for referee review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal event organizers, referees, and trainers use this skill to analyze pet racing videos or URLs for false starts, lane crossing, finish order, and supporting evidence. The results are intended to assist race officials, with final decisions remaining with the event referee.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Race media and report history are processed by the publisher's cloud service.\n\nMitigation: Use the skill only with media and report data approved for third-party cloud processing.\n\nRisk: The skill creates or reuses a local identity and stores account tokens in a workspace SQLite database.\n\nMitigation: Install only in workspaces where local identity and token storage are acceptable, and review local storage handling before use.\n\nRisk: Cloud report history can be retrieved without clear user control.\n\nMitigation: Limit use to intended accounts and review report-history access expectations before enabling history lookup.\n\nRisk: Race foul analysis is an automated referee aid and may not match event rules or on-site judgment.\n\nMitigation: Treat outputs as supporting evidence and keep final race decisions with qualified event officials.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API interface documentation](references/api_doc.md)\n- [Analysis API documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and JSON-style structured analysis reports with report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include historical report tables and cloud report URLs when history lookup is requested.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release metadata; artifact frontmatter says 1.0.11)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.8:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.8:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.7: 31 files, 39370 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2754b), SKILL.md (12491b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1786516959609\n}\n\nFile v1.0.7:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.7:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.7:scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nAnalyzes pet race start or finish footage to identify start timing, lane assignment, finish order, false starts, lane crossings, and evidence useful for referee review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and event operators use this skill to submit pet race video files or URLs for foul detection and structured referee-assistance results. It can also retrieve cloud-hosted history records for prior race-foul reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Race footage or video URLs are sent to the LifeEmergence cloud service for analysis.\n\nMitigation: Use only footage approved for cloud processing, and review retention, deletion, and account-linking expectations before using sensitive event media.\n\nRisk: The skill can create or reuse a local identity and store authentication tokens or report history in the workspace data directory.\n\nMitigation: Use an isolated workspace on shared machines, restrict filesystem access to the workspace data directory, and clear local identity or token data when access should end.\n\nRisk: The security scan verdict is suspicious because cloud service contact and local identity handling require review before installation.\n\nMitigation: Review the security summary and guidance before deployment, and install only when the cloud-service and local-storage behavior matches the intended environment.\n\nRisk: Video-based foul detection is referee assistance and may be affected by footage quality, frame rate, or event-specific thresholds.\n\nMitigation: Treat outputs as decision support, use clear supported-format footage, and keep final rulings with the responsible human official.\n\n## Reference(s):\n\n- [API Interface Documentation](references/api_doc.md)\n- [SMYX Analysis API Documentation](skills/smyx_analysis/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands]\n\n**Output Format:** [Markdown or JSON text with structured analysis results and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Supports local video files or video URLs, optional report-history listing, and optional file output.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata; artifact frontmatter reports 1.0.10)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.7:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.7:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.6: 31 files, 39225 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2362b), SKILL.md (12490b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.8\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785912155872\n}\n\nFile v1.0.6:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.6:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.6:scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.6:skill-card.md\n\n## Description:\n\nAnalyzes pet race start and finish video to identify start timing, lane assignment, finish order, false starts, and lane-crossing fouls for referee review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, event operators, and developers use this skill to submit pet race video or video URLs and receive structured referee-support results for false-start and lane-crossing review. The outputs are intended to support human adjudication, not replace the final decision of race officials.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Race videos or video URLs are sent to the configured cloud service for analysis.\n\nMitigation: Use non-sensitive media, confirm publisher retention and processing terms, and avoid submitting confidential footage unless those controls are acceptable.\n\nRisk: The skill may silently create or reuse an internal identity and tie history reports to that identity.\n\nMitigation: Run the skill in a dedicated workspace and review account scoping before using history-report features.\n\nRisk: Service tokens may be stored in a local workspace database.\n\nMitigation: Restrict local workspace access, avoid shared workspaces for sensitive use, and clear local data when the skill is no longer needed.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis)\n- [API Documentation](artifact/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Structured text or Markdown containing JSON-like analysis results and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include saved output files when the optional output path is provided.]\n\n## Skill Version(s):\n\n1.0.6 (source: server release metadata; artifact frontmatter says 1.0.8)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.6:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.6:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.5: 31 files, 39322 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2760b), SKILL.md (12490b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1785132208103\n}\n\nFile v1.0.5:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.5:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.5:scripts/config.yaml\n\n{}\n\nFile v1.0.5:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.5:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.5:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.5:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.5:skill-card.md\n\n## Description: <br>\nAnalyzes pet race start and finish videos or URLs to identify start timing, finish order, lane assignment, false starts, and lane-crossing fouls, returning objective referee-assist results rather than race advice. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users, event staff, and developers use this skill to submit pet race videos or video URLs for foul detection and structured referee-assist reporting. It can also retrieve cloud-stored historical race foul reports for the resolved user identity. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Race videos, video URLs, and analysis requests are sent to lifeemergence.com services. <br>\nMitigation: Use the skill only for footage whose upload to that service is acceptable; avoid sensitive, proprietary, or private race footage unless the data flow has been approved. <br>\nRisk: The skill can create or reuse a local identity and store auth tokens in a workspace SQLite database. <br>\nMitigation: Review local workspace data before sharing or archiving the workspace, and rotate or remove stored credentials when the skill is no longer needed. <br>\nRisk: Historical report queries can retrieve cloud-stored report history associated with the resolved identity. <br>\nMitigation: Run history queries only when the user expects cloud report retrieval and the account association is appropriate. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n- [Pet Race Foul Detection API Documentation](artifact/references/api_doc.md) <br>\n- [Shared Analysis API Documentation](artifact/skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown and JSON-formatted text with optional report links and optional saved output files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Analysis uses local video files or public video URLs and history queries return API-backed report lists.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; SKILL.md frontmatter says 1.0.7) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.5:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.5:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.4: 31 files, 39196 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2510b), SKILL.md (12490b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1784339971342\n}\n\nFile v1.0.4:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.4:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.4:scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nAnalyzes pet race start and finish videos to identify false starts, lane crossings, finish order, lane assignment, and supporting evidence for referee review. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nEvent organizers, referees, trainers, and developers use this skill to review pet racing video for objective foul-detection results. It supports adjudication workflows by returning structured findings, evidence snippets, and historical report listings without providing race advice. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Race videos may be uploaded to a configured cloud analysis service. <br>\nMitigation: Use the skill only when that service and its data handling are acceptable for the video content being analyzed. <br>\nRisk: The skill can silently create or reuse a local identity and store identity tokens for report association. <br>\nMitigation: Run it in a workspace where local identity-token storage is acceptable, and avoid placing unrelated secrets in the workspace data directory. <br>\nRisk: Historical report retrieval may return identity-linked cloud reports. <br>\nMitigation: Review generated report listings before sharing them and limit use to environments where identity-linked report access is expected. <br>\n\n\n## Reference(s): <br>\n- [Skill API Documentation](references/api_doc.md) <br>\n- [Shared Analysis API Documentation](skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, guidance] <br>\n**Output Format:** [Markdown reports and tables, with JSON available for detailed analysis output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include report links, detected foul status, lane and finish-order details, and history listings from the configured cloud service.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.4:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.4:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.3: 31 files, 39285 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2682b), SKILL.md (12490b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (152b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1783721850238\n}\n\nFile v1.0.3:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.3:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.3:scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nAnalyzes pet race start/finish videos or video URLs to identify start times, finish order, lane assignment, false starts, and lane-crossing fouls for referee review. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users, event staff, referees, and developers use this skill to evaluate pet racing video evidence for false starts, lane crossing, finish order, and supporting report output. The results are intended as referee-assistance material rather than final adjudication. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Race videos or referenced URLs may be sent to lifeemergence.com services for analysis. <br>\nMitigation: Use only media and URLs approved for external processing; avoid private videos, internal URLs, or confidential event footage unless that data flow is acceptable. <br>\nRisk: The skill can automatically resolve or create a local identity and associate analysis history with that identity. <br>\nMitigation: Review workspace identity settings before use and avoid shared workspaces when report history should remain separated. <br>\nRisk: Service tokens may be created, reused, and stored in a workspace SQLite database. <br>\nMitigation: Protect the workspace data directory, review token storage before deployment, and rotate or remove stored credentials when they are no longer needed. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis) <br>\n- [Pet race foul detection API documentation](artifact/references/api_doc.md) <br>\n- [Shared SMYX analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Guidance] <br>\n**Output Format:** [Markdown report text, Markdown history tables, and optional JSON-oriented detail output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May save report output to a local file when an output path is provided.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata; artifact frontmatter reports 1.0.5) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.3:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.3:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.2: 31 files, 39096 bytes\n\nFiles: references/api_doc.md (697b), scripts/__init__.py (72b), scripts/config.py (690b), scripts/config.yaml (3b), scripts/skill.py (599b), scripts/smyx_race_foul_detection_analysis.py (3624b), skill-card.md (2421b), SKILL.md (12490b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28605b), _meta.json (152b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.4\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别与跟踪 |\n| 4 | 窜道行为检测 |\n| 5 | 终点顺序判定 |\n| 6 | 犯规证据片段定位 |\n| 7 | 结构化裁判结果输出 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物赛道起点或终点视频 URL/文件需要做犯规检测时，默认触发本技能进行竞赛犯规识别 |\n| 🔎 明确分析意图 | 当用户明确需要做赛事裁判辅助时，提及抢跑、起跑犯规、窜道、跨道、灵缇赛、赛犬、赛马、宠物障碍赛、犯规判定等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史犯规报告、历史赛事报告、犯规检测清单、查询历史竞赛报告、显示所有比赛犯规报告、显示赛道裁判记录 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_race_foul_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_race_foul_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备赛道视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行竞赛犯规检测分析 | 调用 `-m scripts.smyx_race_foul_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地赛道视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络赛道视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示竞赛犯规历史检测报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_race_foul_detection_analysis.py`](scripts/smyx_race_foul_detection_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 视频要求：支持 mp4/avi/mov 格式，最大 10MB；建议帧率 ≥ 60fps 以保证起跑时序精度 |\n| 🔎 使用提醒 | 起跑判定阈值（反应时下限）和窜道判定容差由 API 端按赛事规则自定义 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅作为裁判辅助参考，最终判罚以现场主裁判决为准 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物竞赛犯规检测报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1783202563568\n}\n\nFile v1.0.2:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）\n\nFile v1.0.2:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.2:scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.2:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.2:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nAnalyzes pet race start and finish videos or URLs to detect false starts, lane crossing, finish order, and lane assignment, returning video-based referee-assistance results. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users, event staff, and developers use this skill to analyze pet racing videos for objective foul-detection support, including false starts, lane crossing, finish order, and report history lookup. It is intended as referee assistance; final decisions remain with event officials. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends pet race videos, video URLs, account identifiers, and generated tokens to lifeemergence/open.lifeemergence services and may store identity or token data locally. <br>\nMitigation: Use only when cloud processing and account-linked report history are acceptable; avoid sensitive footage unless backend retention and access controls are understood. <br>\nRisk: The skill's video analysis is designed to assist foul review and may not be sufficient as the sole basis for official race decisions. <br>\nMitigation: Have event officials review the generated findings, evidence snippets, and report links before making final rulings. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-race-foul-detection-analysis) <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, files, shell commands] <br>\n**Output Format:** [Markdown report text or JSON, with optional saved output files.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include cloud report links and Markdown tables for historical report listings.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: ClawHub release evidence; artifact frontmatter reports 1.0.4) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.2:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.2:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3","readmeExcerpt":"Skill: Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道） Owner: smyx-sunjinhui Summary: Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_race_foul_detection_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_race_foul_detection_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --input /path/to/race_video.mp4 --pet-type dog\n\n# 分析网络赛道视频\npython -m scripts.smyx_race_foul_detection_analysis --url https://example.com/race_video.mp4 --pet-type dog\n\n# 显示历史分析报告/犯规检测历史清单（自动触发关键词：查看历史犯规报告、犯规检测清单等）\npython -m scripts.smyx_race_foul_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_race_foul_detection_analysis --input race.mp4 --pet-type dog --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-race-foul-detection-analysis\"\ndescription: \"Triggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results. | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 🏁 Pet Race Foul Detection (False Start / Lane Crossing) | 宠物赛跑/竞赛作弊识别（起跑/窜道）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物赛跑/竞赛作弊识别（起跑/窜道）** |\n| 🎯 核心目标 | 当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_RACE_FOUL_DETECTION_ANALYSIS` |\n\nTriggers when a user provides a pet racing track start/finish video URL or file for analysis; uses HD cameras at the starting line and finish line to analyze race video in real time, detecting each pet's (greyhounds, racehorses, etc.) start time, finish order, and lane assignment, automatically determining false starts (start before the signal) or lane crossing (deviating from own lane into an adjacent lane) fouls and outputting judgment results. Assists referee decisions and improves race fairness. Application: pet racing (greyhound, horse, obstacle course), pet sports events, professional track training. Does NOT provide race advice — only returns objective video-based judgment results.\n\n当用户提供宠物赛道起点/终点视频URL或文件时，触发本技能进行竞赛犯规检测分析；通过架设在赛道起点和终点线的高清摄像头，实时分析比赛视频，检测每只宠物（赛犬、赛马等）的起跑时间、通过终点线的顺序以及所在道次，自动判定是否存在抢跑（起跑时间早于发令信号）或窜道（偏离自身赛道进入邻道）等犯规行为，并输出判定结果。辅助裁判决策，提高赛事公平性。应用场景：宠物竞速比赛（灵缇赛跑、赛马、宠物障碍赛）、宠物运动会、专业赛道训练。仅输出基于视频的客观判定结果，不提供赛事建议。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物赛事裁判AI。你的任务是分析赛道起点和终点区域的视频，检测每只宠物（参赛者）的起跑时间、通过终点的顺序以及所在道次，判定是否存在抢跑（提前于发令信号起跑）或窜道（偏离自身赛道进入其他赛道）行为。不提供赛事建议，仅输出基于视频的客观判定结果。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过赛道起点/终点区域视频识别每只参赛宠物的起跑时刻、所在道次、通过终点顺序，并自动判定抢跑/窜道犯规\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 发令信号识别 |\n| 2 | 起跑时间提取 |\n| 3 | 道次识别"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-race-foul-detection-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1790764047095\n}"},{"path":"references/api_doc.md","content":"# API 接口文档\n\n此处用于存放宠物赛跑/竞赛作弊识别（起跑/窜道） API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动赛道犯规检测任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_RACE_FOUL_DETECTION_ANALYSIS` - 宠物赛跑/竞赛作弊识别（起跑/窜道）"},{"path":"skills/smyx_analysis/references/api_doc.md","content":"# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |"},{"path":"scripts/config.yaml","content":"{}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1066,"uniquenessScore":37,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T01:41:31.723Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:12:36.719Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}