{"id":"5701a26d-bf61-4d2f-9995-ca85d5e60d91","entityType":"agent","slug":"clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi","name":"Crop Fruit Ripeness Grading | 经济作物果实成熟度分级","canonicalUrl":"https://www.xpersona.co/agent/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi","canonicalPath":"/agent/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi","generatedAt":"2026-10-10T11:00:50.985Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T08:20:47.318Z","emptyReason":null},"description":"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。 Skill: Crop Fruit Ripeness Grading | 经济作物果实成熟度分级 Owner: smyx-sunjinhui Summary: Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。 Tags: latest:1.0.13 Version history: v1.0.13 | 2026-09-27T20:48:34.134Z | auto - Removed the file: skill-card.md. - No feature or logic changes; do","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-crop-fruit-ripeness-grading-analysis","sourceUrl":"https://clawhub.ai/smyx-sunjinhui/smyx-crop-fruit-ripeness-grading-analysis","homepage":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/smyx-sunjinhui/smyx-crop-fruit-ripeness-grading-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:47.318Z","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-10T08:20:47.318Z","emptyReason":null},"stars":null,"forks":null,"downloads":1562,"packageName":null,"latestVersion":"1.0.13","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:20:47.248Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T08:20:47.318Z","lastCrawledAt":"2026-10-10T08:20:47.248Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T08:20:47.248Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.13","createdAt":"2026-09-27T20:48:34.134Z","changelog":"- Removed the file: skill-card.md. - No feature or logic changes; documentation and functionality remain unchanged.","fileCount":31,"zipByteSize":39149},{"version":"1.0.12","createdAt":"2026-09-27T00:27:25.651Z","changelog":"- Version update to 1.0.13. - Documentation updated in SKILL.md (version number incremented, no feature or workflow changes). - Removed obsolete file: skill-card.md. - Minor config updates in scripts/config.yaml.","fileCount":31,"zipByteSize":39141},{"version":"1.0.11","createdAt":"2026-09-14T17:44:28.559Z","changelog":"- Version updated to 1.0.11. - Documentation improvements: SKILL.md edited for clarity and detail. - Obsolete file skill-card.md removed.","fileCount":31,"zipByteSize":39485},{"version":"1.0.10","createdAt":"2026-08-24T14:32:34.055Z","changelog":"- Updated version metadata in SKILL.md from 1.0.7 to 1.0.9 - Removed the file: skill-card.md - No functional or logic changes to core documentation or workflow - Minor maintenance update for documentation and file structure consistency","fileCount":31,"zipByteSize":39244},{"version":"1.0.9","createdAt":"2026-08-18T21:22:28.513Z","changelog":"- Updated configuration in skills/smyx_common/scripts/config.yaml. - Removed the documentation file skill-card.md. - No changes made to overall features or workflow. - Version number in documentation remains 1.0.7.","fileCount":31,"zipByteSize":39492},{"version":"1.0.8","createdAt":"2026-08-11T20:13:36.153Z","changelog":"- Updated version from 1.0.5 to 1.0.7 in documentation. - Removed the file skill-card.md. - No changes to features or functionality described in SKILL.md. - Build and usage instructions, workflow, and usage examples remain unchanged.","fileCount":31,"zipByteSize":39439},{"version":"1.0.7","createdAt":"2026-08-03T10:17:30.564Z","changelog":"- Updated SKILL.md: changed version from 1.0.4 to 1.0.5. - Removed file: skill-card.md. - No changes to functional description or technical capabilities. - Documentation and output behavior remain unchanged.","fileCount":31,"zipByteSize":39300},{"version":"1.0.6","createdAt":"2026-07-26T19:57:32.985Z","changelog":"- Updated SKILL.md version from 1.0.2 to 1.0.4 with minor documentation changes. - Removed redundant or outdated file: skill-card.md. - No core logic or feature changes; documentation and metadata maintenance only.","fileCount":31,"zipByteSize":39529}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-crop-fruit-ripeness-grading-analysis","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"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-crop-fruit-ripeness-grading-analysi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/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-10T11:00:50.980Z"}},"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-crop-fruit-ripeness-grading-analysi/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-crop-fruit-ripeness-grading-analysi/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":"high","updatedAt":"2026-10-10T08:20:47.318Z","emptyReason":null},"readme":"Skill: Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\nOwner: smyx-sunjinhui\n\nSummary: Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n\nTags: latest:1.0.13\n\nVersion history:\n\nv1.0.13 | 2026-09-27T20:48:34.134Z | auto\n\n- Removed the file: skill-card.md.\n- No feature or logic changes; documentation and functionality remain unchanged.\n\nv1.0.12 | 2026-09-27T00:27:25.651Z | auto\n\n- Version update to 1.0.13.\n- Documentation updated in SKILL.md (version number incremented, no feature or workflow changes).\n- Removed obsolete file: skill-card.md.\n- Minor config updates in scripts/config.yaml.\n\nv1.0.11 | 2026-09-14T17:44:28.559Z | auto\n\n- Version updated to 1.0.11.\n- Documentation improvements: SKILL.md edited for clarity and detail.\n- Obsolete file skill-card.md removed.\n\nv1.0.10 | 2026-08-24T14:32:34.055Z | auto\n\n- Updated version metadata in SKILL.md from 1.0.7 to 1.0.9\n- Removed the file: skill-card.md\n- No functional or logic changes to core documentation or workflow\n- Minor maintenance update for documentation and file structure consistency\n\nv1.0.9 | 2026-08-18T21:22:28.513Z | auto\n\n- Updated configuration in skills/smyx_common/scripts/config.yaml.\n- Removed the documentation file skill-card.md.\n- No changes made to overall features or workflow.\n- Version number in documentation remains 1.0.7.\n\nv1.0.8 | 2026-08-11T20:13:36.153Z | auto\n\n- Updated version from 1.0.5 to 1.0.7 in documentation.\n- Removed the file skill-card.md.\n- No changes to features or functionality described in SKILL.md.\n- Build and usage instructions, workflow, and usage examples remain unchanged.\n\nv1.0.7 | 2026-08-03T10:17:30.564Z | auto\n\n- Updated SKILL.md: changed version from 1.0.4 to 1.0.5.\n- Removed file: skill-card.md.\n- No changes to functional description or technical capabilities. \n- Documentation and output behavior remain unchanged.\n\nv1.0.6 | 2026-07-26T19:57:32.985Z | auto\n\n- Updated SKILL.md version from 1.0.2 to 1.0.4 with minor documentation changes.\n- Removed redundant or outdated file: skill-card.md.\n- No core logic or feature changes; documentation and metadata maintenance only.\n\nv1.0.5 | 2026-07-18T01:24:31.031Z | auto\n\n- Removed the file: skill-card.md\n- No functional or interface changes; documentation only updated by removing an auxiliary file.\n\nv1.0.4 | 2026-07-12T11:47:42.163Z | auto\n\n- Updated internal version designation from 1.0.0 to 1.0.2 in SKILL.md.\n- Removed redundant documentation file skill-card.md.\n- Minor updates to utility scripts and documentation for improved maintainability.\n\nv1.0.3 | 2026-07-03T19:40:25.053Z | auto\n\n- Updated internal config in scripts/config.py.\n- Removed the skill-card.md file.\n- No changes to user-facing features or documentation.\n\nv1.0.2 | 2026-07-03T09:19:32.084Z | auto\n\n- Updated the Skill Demo link in SKILL.md to point to a new sample URL.\n- Minor formatting changes in the skill description for improved clarity.\n- No functional changes to analysis capabilities or API usage.\n\nv1.0.1 | 2026-07-03T08:27:53.887Z | auto\n\n- Documentation content in SKILL.md was updated, including summarizing and streamlining the overview section.\n- Added a description line at the top of the document for improved clarity.\n- No logic, code, or functionality changes were made to the skill itself.\n\nv1.0.0 | 2026-07-03T08:24:47.121Z | auto\n\nInitial release – standardized fruit ripeness grading based on image and video analysis.\n\n- Identifies ripeness stages (green / turning / ripe / over-ripe) using color, size, and gloss features.\n- Supports analysis via local files and URLs; processes images and videos up to 10MB.\n- Outputs structured ripeness grade reports and harvest window suggestions.\n- Provides automated cloud-based history report queries with results in Markdown table format.\n- Ensures privacy: user identity is managed internally and never exposed in outputs.\n\nArchive index:\n\nArchive v1.0.13: 31 files, 39149 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2036b), SKILL.md (11553b), 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 (161b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1790542114134\n}\n\nFile v1.0.13: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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` - 经济作物果实成熟度分级\n\nFile v1.0.13: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.13:scripts/config.yaml\n\n{}\n\nFile v1.0.13:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.13: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.13: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.13: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.13:skill-card.md\n\n## Description:\n\nGrades the ripeness of crop fruit from images or videos using visible color, size, and gloss features, and suggests a harvest window.\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\nGrowers and agricultural teams use fruit images or videos to assess ripeness stages for crops such as tomatoes and peppers, plan harvest timing, and review past reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Images, videos, or media URLs are sent to an external analysis service.\n\nMitigation: Use only media approved for external processing, and disclose the transfer before use.\n\nRisk: The skill can silently create or reuse an identity and register or log in remotely.\n\nMitigation: Confirm that users accept automatic account linkage before enabling the skill.\n\nRisk: Session tokens persist in a local workspace database, and cloud history is linked to the derived identity.\n\nMitigation: Restrict access to the workspace and historical reports; review retention and token removal procedures before deployment.\n\n## Reference(s):\n\n- [Fruit ripeness grading API documentation](artifact/references/api_doc.md)\n- [ClawHub skill listing](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Markdown analysis reports and historical-report tables]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes ripeness grades, harvest-window guidance, and report links when available.]\n\n## Skill Version(s):\n\n1.0.13 (source: skill frontmatter and ClawHub release)\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.13:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.13:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.12: 31 files, 39141 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2037b), SKILL.md (11553b), 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 (161b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790468845651\n}\n\nFile v1.0.12: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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` - 经济作物果实成熟度分级\n\nFile v1.0.12: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.12:scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.12: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.12: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.12: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.12:skill-card.md\n\n## Description:\n\nGrades the ripeness of crop fruits from images or videos using visual features and returns a report to support harvest timing decisions.\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\nGrowers and agricultural advisors use fruit images or videos to assess ripeness stages, review harvest guidance, and retrieve past grading reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Fruit images and videos are uploaded to a cloud analysis service, and report history can be queried remotely.\n\nMitigation: Obtain permission before uploading media, avoid sensitive imagery, and review the service's data handling before use.\n\nRisk: The skill may silently create or reuse an account, log in remotely, and store session tokens in a local SQLite database without clear inspection or deletion controls.\n\nMitigation: Review the account and session model before installation; restrict access to the workspace and arrange separate credential and account cleanup.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis)\n- [Skill API reference](references/api_doc.md)\n- [Analysis API reference](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON]\n\n**Output Format:** [Structured grading report or JSON; Markdown table for report history]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include harvest guidance and report links; results can optionally be saved to a file.]\n\n## Skill Version(s):\n\n1.0.12 (source: server-resolved 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.12:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.12:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.11: 31 files, 39485 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2662b), SKILL.md (11553b), 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 (161b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1789407868559\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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: dev\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nIdentifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\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 agricultural operators use this skill to grade ripeness for tomato, pepper, and similar economic crop fruit from images or video, then review structured results, harvest-window guidance, and report links. Developers can run the bundled command-line interface to submit local media or media URLs and query historical analysis reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The security evidence reports silent provisioning and storage of local identity tokens.\n\nMitigation: Review workspace data storage before installation, restrict workspace access, and remove local identity or token records when the skill is no longer needed.\n\nRisk: The security evidence reports development HTTP endpoint configuration for sensitive uploads.\n\nMitigation: Use only trusted production HTTPS endpoints before processing media or querying reports.\n\nRisk: Uploaded media and report history are processed through a remote backend.\n\nMitigation: Use the skill only when the publisher and backend are trusted and uploaded images or videos are appropriate for that service.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API interface documentation](references/api_doc.md)\n- [Shared analysis API documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and JSON text, with optional saved output files and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Returns structured ripeness grades, analysis details, harvest-window guidance, historical report listings, and export links from remote API responses.]\n\n## Skill Version(s):\n\n1.0.11 (source: frontmatter and server release evidence)\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, 39244 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2311b), SKILL.md (11552b), 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 (161b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.9\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1787581954055\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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\nIdentifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade.\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 growers, agronomy teams, and agents use this skill to analyze fruit images or videos for ripeness grading, harvest-window guidance, and cloud report lookup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Media files or URLs are sent to a remote analysis service.\n\nMitigation: Review the service endpoint, data-handling terms, and input sensitivity before submitting crop media.\n\nRisk: The skill manages identity, account tokens, report history, and persistent local state.\n\nMitigation: Confirm token storage, token-retention controls, and local state cleanup requirements before deployment.\n\nRisk: Cloud report history can be queried automatically for the current identity.\n\nMitigation: Verify access controls and report-retention policy before enabling history lookup workflows.\n\nRisk: The security evidence flags dev/private endpoint configuration and unclear token-retention controls.\n\nMitigation: Resolve endpoint configuration and token-retention controls with the publisher before production use.\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):** [Analysis, Markdown, JSON, Files]\n\n**Output Format:** [Markdown report or JSON analysis, with optional saved output file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include ripeness grades, harvest-window guidance, report links, and history tables from the remote service.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata; artifact frontmatter says 1.0.9)\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, 39492 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2911b), SKILL.md (11552b), 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 (160b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1787088148513\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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\nIdentifies fruit ripeness stages (green, turning, ripe, and over-ripe) from fruit image or video inputs using color, size, and gloss features, then returns a standardized ripeness grade.\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\nGrowers, agricultural operators, and agents use this skill to grade tomato, pepper, and similar commercial crop fruit ripeness from images, videos, local files, or URLs. It can also retrieve account-linked historical ripeness reports from the configured backend.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The security review reports that the skill sends crop images, videos, URLs, and account-linked report queries to a configured backend.\n\nMitigation: Review the backend destination and data handling expectations before installation, and use the skill only when sending those inputs to the configured service is acceptable.\n\nRisk: The security review reports silent account identity management and local persistence of identity or token material.\n\nMitigation: Treat the local data directory as sensitive, document how account creation and token storage work, and avoid exposing identity values in user-facing output.\n\nRisk: The security review reports development or private HTTP endpoints in configuration.\n\nMitigation: Switch to intended production HTTPS endpoints or validate the configured endpoints before deployment.\n\nRisk: Historical report retrieval is account-linked and may expose prior analysis records for the resolved identity.\n\nMitigation: Add explicit confirmation before retrieving history and show only reports associated with the current resolved identity.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-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, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and text reports with optional JSON-oriented detail and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include structured ripeness grades, harvest-window guidance, analysis progress, saved result files, and historical report tables.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release metadata; SKILL.md frontmatter remains 1.0.7)\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, 39439 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2720b), SKILL.md (11552b), 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 (160b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1786479216153\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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: prod\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nIdentifies fruit ripeness stages (green, turning, ripe, or over-ripe) from fruit image or video inputs using visual features such as color, size, and gloss, then returns a standardized ripeness grade.\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 agricultural users and agent operators use this skill to grade fruit ripeness from tomato, pepper, and similar economic-crop media, supporting harvest-window decisions and report lookup. It returns visual-feature-based grading and harvest guidance for review alongside field judgment.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Fruit images, videos, or media URLs are sent to configured lifeemergence.com services for remote analysis.\n\nMitigation: Submit only media intended for remote processing, avoid unrelated sensitive content in the frame, and review organizational approval for the configured service before installation.\n\nRisk: Requests can be linked to a workspace identity and local token or account state may persist across runs.\n\nMitigation: Use an isolated workspace for evaluation and clear the workspace data file or local SQLite/token storage when persistent account linkage is not desired.\n\nRisk: Historical report lookup retrieves cloud-stored reports associated with the active workspace identity.\n\nMitigation: Confirm the intended workspace identity before listing reports and avoid sharing report links outside the intended audience.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-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, guidance]\n\n**Output Format:** [Markdown text with structured analysis content, ripeness grades, report links, and optional JSON-style report listings]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can analyze local image/video files or media URLs, save output to a file, and list cloud-stored historical reports for the workspace-linked identity.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release metadata; artifact frontmatter states 1.0.7)\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, 39300 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2508b), SKILL.md (11552b), 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 (160b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1785752250564\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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: <br>\nIdentifies fruit ripeness stages from crop fruit images or videos using color, size, and gloss features, then returns a standardized ripeness grade. <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 agricultural users and agents use this skill to grade ripeness for tomatoes, peppers, and similar crop fruit from images, videos, local files, or media URLs. It supports harvest-window decisions and historical report review through the configured cloud service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Fruit images, videos, or media URLs are sent to configured lifeemergence.com cloud services for analysis. <br>\nMitigation: Use only with media approved for that service, avoid unrelated sensitive content in captures, and review organizational data-sharing requirements before deployment. <br>\nRisk: The skill can silently create or reuse an internal identity and store authentication tokens locally. <br>\nMitigation: Run the skill in a scoped workspace, review local data files periodically, and remove stored account or token data when persistent report history is not needed. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [API interface 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, JSON, Files] <br>\n**Output Format:** [Markdown or JSON analysis report with ripeness grades, harvest-window guidance, and report links; optional saved text output.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Input may be a local image/video file path or a media URL; historical report listings are formatted as Markdown tables.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server release evidence; artifact frontmatter says 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.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, 39529 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2857b), SKILL.md (11552b), 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 (160b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.4\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785095852985\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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: <br>\nIdentifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。 <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, growers, agronomists, and developers use this skill to submit crop fruit images, videos, or URLs for ripeness grading and harvest-window guidance. It can also return identity-linked historical analysis reports from the vendor service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Crop images or videos and report queries are sent to the vendor API for analysis and history lookup. <br>\nMitigation: Use only media that is appropriate to share with the vendor service, and review data retention and account-management expectations before deployment. <br>\nRisk: Analysis history is tied to an internally managed identity, and service tokens or user records may be stored in the workspace data directory. <br>\nMitigation: Run the skill in an isolated workspace, avoid shared machines for sensitive media, and clear local identity or token storage according to operational policy. <br>\nRisk: Ripeness grades and harvest-window guidance are advisory and may be incomplete for commodity grading decisions. <br>\nMitigation: Require human review and applicable enterprise grading standards before acting on harvest or commercial quality decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis) <br>\n- [Crop Fruit Ripeness Grading API Reference](artifact/references/api_doc.md) <br>\n- [Shared Analysis API Reference](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):** [Analysis, API Calls, Markdown, JSON, Files, Shell commands, Guidance] <br>\n**Output Format:** [Markdown or JSON analysis reports, with optional saved output files and report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Processes image, video, or URL inputs and may query history from the vendor API.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release metadata; artifact frontmatter lists 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.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, 39307 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2452b), SKILL.md (11552b), 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 (160b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.2\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1784337871031\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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>\nIdentifies fruit ripeness stages from crop-fruit images or videos using color, size, and gloss cues, then returns a standardized ripeness grade. <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 growers, agricultural operators, and developers use this skill to grade tomato, pepper, and similar crop-fruit ripeness from media or URLs and to review report history for harvest-window decisions. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Crop images, videos, or submitted URLs are uploaded to configured LifeEmergence cloud services for analysis. <br>\nMitigation: Use only media and URLs approved for cloud processing; avoid private/internal URLs and files containing unrelated sensitive content. <br>\nRisk: The skill may silently create or reuse an account-like identity and store returned service tokens locally. <br>\nMitigation: Review whether silent identity handling is acceptable before installation and confirm how local workspace data and tokens can be deleted. <br>\nRisk: History-listing behavior retrieves cloud report history for the resolved identity. <br>\nMitigation: Confirm report-history retention and deletion expectations before using the skill with sensitive operational records. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-crop-fruit-ripeness-grading-analysis) <br>\n- [API 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] <br>\n**Output Format:** [Markdown text containing structured JSON-style analysis and report links; optional local output file when requested.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Supports local file or URL input, report-history listing, and saved output files.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; artifact frontmatter is 1.0.2) <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, 39223 bytes\n\nFiles: references/api_doc.md (674b), scripts/__init__.py (55b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_crop_fruit_ripeness_grading_analysis.py (3556b), skill-card.md (2237b), SKILL.md (11552b), 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 (160b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.2\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备果实图像/视频输入 | 提供本地文件路径或网络 URL；确保果实清晰、符合采集要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行果实成熟度分级 | 调用 `-m scripts.smyx_crop_fruit_ripeness_grading_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看每颗果实的成熟度等级、整体采收建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地果实图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络果实图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（果蔬场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_crop_fruit_ripeness_grading_analysis.py`](scripts/smyx_crop_fruit_ripeness_grading_analysis.py) | 调用 API 进行成熟度分级分析或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供采收决策参考，本技能不提供采后处理或储存建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与果实成熟度分级直接相关的图像/视频数据，不采集与作物无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨用户汇总或共享 |\n| 5 | 分析结果仅供参考，实际采收与商品化分级请结合企业标准与人工复核 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `果实成熟度分级报告-{记录id}` 形式拼接 |\n| 成熟度等级 | 从接口返回数据中提取（青熟 / 转色 / 成熟 / 过熟） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 成熟度等级 | 分析时间 | 点击查看 |\n|----------|------------|----------|----------|\n| 果实成熟度分级报告-20260703160500001 | 成熟 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🍅 分析本地番茄果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg\n```\n\n### 🌶️ 分析本地辣椒果实图像\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg\n```\n\n### 🌐 分析网络果实图像/视频\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史成熟度报告\n\n> 自动触发关键词：查看历史成熟度报告、历史报告、果实分级清单等。\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input tomato.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input pepper.jpg --output result.json\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1783856862163\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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>\nIdentifies fruit ripeness stages from image or video inputs using color, size, gloss, and visible ripeness features, then outputs a standardized ripeness grade. <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>\nGrowers, agronomy teams, and developers use this skill to analyze fruit images or short videos for ripeness grading, harvest-window suggestions, structured reports, and account-linked report history. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Fruit images, videos, URLs, and report history may be sent to or retrieved from the publisher's cloud service. <br>\nMitigation: Install only when this data sharing is acceptable; avoid sensitive media and treat report links and history as account-linked data. <br>\nRisk: The skill creates or reuses a local identity and stores authentication data in a workspace SQLite database. <br>\nMitigation: Run it in a trusted workspace, protect or clean the workspace data directory, and avoid sharing generated database files or tokens. <br>\n\n\n## Reference(s): <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [SMYX analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill usage introduction](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 and JSON analysis reports, with optional saved text output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include cloud report links and account-linked history queries; supported media inputs are limited to 10 MB.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release metadata; SKILL.md frontmatter reports 1.0.2) <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","readmeExcerpt":"Skill: Crop Fruit Ripeness Grading | 经济作物果实成熟度分级 Owner: smyx-sunjinhui Summary: Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。 Tags: latest:1.0.13 Version history: v1.0.13 | 2026-09-27T20:48:34.134Z | auto - Removed the file: skill-card.md. - No feature or logic changes; do","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list"},{"language":"txt","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/tomato.jpg"},{"language":"bash","snippet":"python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --input /path/to/pepper.jpg"},{"language":"bash","snippet":"python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --url https://example.com/tomato_cluster.mp4"},{"language":"bash","snippet":"python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-crop-fruit-ripeness-grading-analysis\"\ndescription: \"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 🍅 Crop Fruit Ripeness Grading | 经济作物果实成熟度分级\n\n> 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。\n>\n> **智能采收决策中枢** · 图片/视频智能分析 · 成熟度分级 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **经济作物果实成熟度分级** |\n| 🎯 核心目标 | 基于经济作物果实的图像/视频，识别颜色、着色面积、光泽度及大小等视觉特征，输出标准化的成熟度等级（青熟 / 转色 / 成熟 / 过熟），辅助番茄、辣椒等经济作物把握最佳采收窗口 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、成熟度等级、采收窗口建议、报告链接 |\n| 🏢 适用场景 | 番茄、辣椒等经济作物的最佳采收期判断，减少采后损失 |\n| 🧩 场景码 | `SMYX_CROP_FRUIT_RIPENESS_GRADING_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的园艺作物采收 AI。你的任务是基于经济作物果实的图像，分析果实颜色、着色面积、光泽度及大小，判断其成熟度等级，输出标准化的分级结果。不要提供采收后处理或储存建议，仅客观描述基于视觉特征的成熟度判断。** |\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_crop_fruit_ripeness_grading_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_crop_fruit_ripeness_grading_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 拍摄距离建议 20cm～80cm，能清晰看到果皮颜色、光泽和果实轮廓 |\n| 2 | 优先在自然散射光下拍摄，避免强逆光、镜头眩光或大面积阴影 |\n| 3 | 尽量正面拍摄单颗或成串果实，避免叶片、支架大面积遮挡果面 |\n| 4 | 支持单张图或短视频（≤10MB），视频建议 5~15 秒平稳环绕拍摄 |\n| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n\n---\n\n## 🚀 操作步骤 | Workflow\n\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-crop-fruit-ripeness-grading-analysis\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1790542114134\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/ai-analysis/v2/start-common-ai-analysis` - 启动果实成熟度分级分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_CROP_FRUIT_RIPENESS_GRADING_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":"Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。 Skill: Crop Fruit Ripeness Grading | 经济作物果实成熟度分级 Owner: smyx-sunjinhui Summary: Identifies fruit ripeness stages (green / turning / ripe / over-ripe) based on color, size and gloss features to output a standardized ripeness grade. | 通过颜色、大小、光泽度识别果实成熟度（青/转色/成熟/过熟），输出成熟度等级。 Tags: latest:1.0.13 Version history: v1.0.13 | 2026-09-27T20:48:34.134Z | auto - Removed the file: skill-card.md. - No feature or logic changes; do","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":780,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:20:47.318Z","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-10T08:20:47.318Z","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-10T11:00:50.985Z","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"}]}}}