aukeys-opscli 0.0.24__tar.gz → 0.0.26__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/CLAUDE.md +79 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/PKG-INFO +37 -1
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/README.md +36 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/README_MCP.md +47 -0
- aukeys_opscli-0.0.26/docs/change-log-pending.md +283 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/guide/opscli/345/221/275/344/273/244/347/224/250/344/276/213/346/211/213/345/206/214.md +63 -2
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/query.py +43 -2
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/commands/cli.py +34 -5
- aukeys_opscli-0.0.26/opscli/query/services/manager.py +1214 -0
- aukeys_opscli-0.0.26/opscli/query/transport/client.py +290 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/commands/cli.py +5 -2
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/SKILL.md +232 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/data/VERSION.json +4 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references}/ads_metrics_guide.md +5 -5
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references}/campaign_optimization_playbook.md +4 -4
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references/cli.md +140 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-dataset-query → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer}/references/data-query-service-dev-guide.md +9 -9
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references}/dataset_fields_mapping.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references/mcp.md +255 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/ads_budget_allocator.py +64 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/ads_budget_allocator_mcp.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/analyze_ads_efficiency.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/analyze_ads_efficiency_mcp.py +81 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/calculate_roas_acos.py +78 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/calculate_roas_acos_mcp.py +80 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/core.py +251 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-amazon/SKILL.md +85 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-amazon/SKILL.md → aukeys_opscli-0.0.26/opscli/skills/templates/ops-amazon/references/cli.md +1 -7
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-amazon/SKILL_MCP.md → aukeys_opscli-0.0.26/opscli/skills/templates/ops-amazon/references/mcp.md +2 -8
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/SKILL.md +231 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/cli.md +209 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-asin-health-diagnoser/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references}/dataset_fields_mapping.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/mcp.md +363 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/query-essential-guide.md +149 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-asin-health-diagnoser/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references}/threshold_reference.md +6 -6
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/scripts/calculate_health_score.py +110 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/scripts/calculate_health_score_mcp.py +168 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/scripts/core.py +388 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-auth/SKILL.md +81 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/SKILL.md +171 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/cli.md +134 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-competitive-intelligence-analyst/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references}/dataset_fields_mapping.md +4 -4
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/mcp.md +189 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-competitive-intelligence-analyst/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references}/porter_template.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/competitive_analysis.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/competitive_analysis_mcp.py +63 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/competitive_analysis.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/core.py +67 -335
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/SKILL.md +168 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/data/VERSION.json +4 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-cross-border-product-selector/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references}/bsr_filtering_rules.md +4 -4
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/cli.md +124 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-cross-border-product-selector/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references}/dataset_fields_mapping.md +3 -3
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/mcp.md +177 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-cross-border-product-selector/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references}/quadrant_matrix_guide.md +23 -22
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-cross-border-product-selector/scripts/product_selector.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/scripts/core.py +66 -404
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/scripts/product_selector.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/scripts/product_selector_mcp.py +63 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-dataset-query/SKILL.md +84 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-dataset-query/SKILL.md → aukeys_opscli-0.0.26/opscli/skills/templates/ops-dataset-query/references/cli.md +56 -13
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-dataset-query/references/data-query-service-dev-guide.md +1173 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-dataset-query/SKILL_MCP.md → aukeys_opscli-0.0.26/opscli/skills/templates/ops-dataset-query/references/mcp.md +31 -3
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze.py +4 -2
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_map.py +72 -9
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_map_mcp.py +69 -7
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/SKILL.md +180 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/cli.md +114 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-inventory-health-monitor/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references}/dataset_fields_mapping.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/mcp.md +177 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/query-essential-guide.md +149 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-inventory-health-monitor/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references}/replenishment_formula.md +8 -8
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/calculate_inventory_health.py +69 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/calculate_inventory_health_mcp.py +73 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-inventory-health-monitor/scripts/calculate_inventory_health.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/core.py +65 -83
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/generate_replenishment_plan.py +74 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/generate_replenishment_plan_mcp.py +78 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/SKILL.md +174 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/cli.md +174 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-perspective-builder/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references}/dataset_fields_mapping.md +9 -9
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/mcp.md +237 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-perspective-builder/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references}/perspective_catalog.md +34 -34
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/scripts/build_perspective_config.py +75 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/scripts/build_perspective_config_mcp.py +76 -0
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-perspective-builder/scripts/build_perspective_config.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/scripts/core.py +20 -261
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/SKILL.md +171 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/data/VERSION.json +4 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references}/3d_tag_dictionary.md +4 -4
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references}/attribute_mapping_table.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/cli.md +114 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references}/dataset_fields_mapping.md +2 -2
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/market_portrait_template.md +37 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/mcp.md +189 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/analyze_attribute_combo.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/analyze_attribute_combo_mcp.py +71 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/calculate_weighted_share.py +68 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/calculate_weighted_share_mcp.py +72 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/core.py +208 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/generate_market_portrait.py +68 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/generate_market_portrait_mcp.py +72 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/SKILL.md +169 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/cli.md +104 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-profit-structure-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references}/dataset_fields_mapping.md +5 -5
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/mcp.md +153 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/scripts/analyze_cost_structure.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/scripts/analyze_cost_structure_mcp.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/scripts/core.py +194 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/SKILL.md +169 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/cli.md +124 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-refund-priority-matrix/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references}/dataset_fields_mapping.md +4 -4
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/mcp.md +177 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/refund_reasons_catalog.md +49 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/scripts/calculate_priority_matrix.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/scripts/calculate_priority_matrix_mcp.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/scripts/core.py +202 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/pyproject.toml +1 -1
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/query/test_cli.py +8 -2
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/query/test_client.py +64 -1
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/query/test_manager.py +183 -0
- aukeys_opscli-0.0.24/docs/change-log-pending.md +0 -114
- aukeys_opscli-0.0.24/opscli/query/services/manager.py +0 -687
- aukeys_opscli-0.0.24/opscli/query/transport/client.py +0 -82
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/SKILL.md +0 -231
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/ads_budget_allocator.py +0 -149
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/analyze_ads_efficiency.py +0 -253
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/calculate_roas_acos.py +0 -125
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-asin-health-diagnoser/SKILL.md +0 -107
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-asin-health-diagnoser/scripts/calculate_health_score.py +0 -299
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-competitive-intelligence-analyst/SKILL.md +0 -204
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-cross-border-product-selector/SKILL.md +0 -228
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-inventory-health-monitor/SKILL.md +0 -226
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-inventory-health-monitor/scripts/generate_replenishment_plan.py +0 -153
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-perspective-builder/SKILL.md +0 -195
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/SKILL.md +0 -182
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/reference/market_portrait_template.md +0 -37
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/scripts/analyze_attribute_combo.py +0 -135
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/scripts/calculate_weighted_share.py +0 -136
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-product-attribute-analyzer/scripts/generate_market_portrait.py +0 -155
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-profit-structure-analyzer/SKILL.md +0 -246
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-profit-structure-analyzer/scripts/analyze_cost_structure.py +0 -402
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-refund-priority-matrix/SKILL.md +0 -267
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-refund-priority-matrix/reference/refund_reasons_catalog.md +0 -49
- aukeys_opscli-0.0.24/opscli/skills/templates/ops-refund-priority-matrix/scripts/calculate_priority_matrix.py +0 -391
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.agents/plugins/marketplace.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.agents/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.agents/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/CLAUDE.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/agents/super-dev.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/commands/super-dev-seeai.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/commands/super-dev.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/settings.local.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.claude-plugin/marketplace.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.github/workflows/cross-platform-preflight.yml +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.gitignore +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/.super-dev/install-manifest.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/AGENTS.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/analysis/Skill/346/226/271/346/263/225/350/256/272/346/267/261/345/272/246/345/210/206/346/236/220/344/270/216/346/225/260/346/215/256/351/233/206/350/236/215/345/220/210/345/244/215/347/224/250/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/analysis/amazon-monitor/346/216/245/345/205/245/345/210/206/346/236/220.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/analysis/opscli/347/263/273/347/273/237/346/236/266/346/236/204/345/210/206/346/236/220/346/212/245/345/221/212.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/analysis//344/272/232/351/251/254/351/200/212/344/272/247/345/223/201/345/205/250/347/273/264/345/210/206/346/236/220/344/275/223/347/263/273_v1.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/analysis//344/272/232/351/251/254/351/200/212/344/272/247/345/223/201/345/205/250/347/273/264/345/210/206/346/236/220/344/275/223/347/263/273_/347/254/254/344/270/200/346/255/245/351/200/217/350/247/206/345/233/276/346/236/204/345/273/272/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/analysis//346/216/210/346/235/203/346/250/241/345/274/217/345/257/271/346/257/224/345/210/206/346/236/220/346/212/245/345/221/212.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/1.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/AI/345/217/226/346/225/260/350/203/275/345/212/233/345/272/225/345/272/247/345/274/200/345/217/221/351/234/200/346/261/202.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/CLI/345/212/250/346/200/201/346/250/241/345/235/227/345/212/240/350/275/275/346/224/271/351/200/240/345/256/236/346/226/275/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/Skills/345/244/232/345/267/245/345/205/267/350/260/203/347/240/224/350/247/204/345/210/222.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/amazon/345/273/272/350/241/250SQL/350/215/211/346/241/210/344/270/216ops API/350/257/267/346/261/202/344/275/223/345/256/232/344/271/211.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/amazon/346/225/260/346/215/256/346/250/241/345/236/213/344/270/216API/351/242/204/347/225/231/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/ops-amazon Skill/350/247/204/345/210/222/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/opscli-session/345/205/261/347/224/250/346/200/247/345/210/206/346/236/220/344/270/216/344/274/230/345/214/226/346/226/271/346/241/210/346/212/245/345/221/212.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/opscli/346/216/210/346/235/203/346/265/201/347/250/213/346/267/261/345/272/246/345/210/206/346/236/220.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design/query/346/250/241/345/235/227/350/256/276/350/256/241.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//346/225/260/346/215/256/346/237/245/350/257/242/346/234/215/345/212/241/345/274/200/345/217/221/350/257/264/346/230/216/346/226/207/346/241/243.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//346/225/260/346/215/256/351/233/206/345/255/227/346/256/265/346/212/200/350/203/275/347/263/273/347/273/237/346/212/200/346/234/257/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/345/215/217/350/256/256/344/270/216/346/217/222/344/273/266/346/263/250/345/206/214/346/216/245/345/217/243/350/256/276/350/256/241.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/345/256/211/350/243/205/345/210/206/345/261/202/344/270/216/351/273/230/350/256/244/345/217/221/350/241/214/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/346/217/222/344/273/266/345/214/226/344/270/216/345/244/232/345/233/242/351/230/237/346/262/273/347/220/206/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/347/233/256/345/275/225/345/210/206/345/261/202/350/247/204/350/214/203.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/design//351/200/232/347/224/250Skill/347/211/210/346/234/254/346/216/247/345/210/266/346/236/266/346/236/204.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/guide/MCP/345/267/245/345/205/267/344/275/277/347/224/250/346/211/213/345/206/214.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/guide/Skills/345/237/272/347/241/200/345/274/200/345/217/221/345/237/271/350/256/255/346/211/213/345/206/214.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/guide//344/273/216/351/233/266/345/256/211/350/243/205/351/203/250/347/275/262/346/214/207/345/215/227.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/guide//350/256/244/350/257/201/346/250/241/345/235/227/344/275/277/347/224/250/346/214/207/345/215/227.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/guide//350/267/250/345/271/263/345/217/260/345/217/221/345/270/203/345/211/215/346/243/200/346/237/245.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans/2026-04-22-p1-contract-version-governance.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans/MCP/346/234/215/345/212/241/345/256/214/345/226/204/346/225/264/346/224/271/350/256/241/345/210/222/344/271/246.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/345/211/251/344/275/231/344/273/273/345/212/241.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/345/217/221/345/270/203/346/243/200/346/237/245/346/270/205/345/215/225.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/345/274/200/345/217/221/350/256/241/345/210/222.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/350/201/224/350/260/203/350/256/260/345/275/225.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/351/252/214/346/224/266/346/211/213/345/206/214.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//350/256/244/350/257/201/346/250/241/345/235/227/345/256/236/346/226/275/350/256/241/345/210/222.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/plans//350/256/244/350/257/201/346/250/241/345/235/227/350/256/276/350/256/241/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/release//345/244/232/345/214/205/345/217/221/345/270/203/344/270/216/350/201/232/345/220/210/345/217/221/350/241/214/347/255/226/347/225/245.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/release//346/211/223/345/214/205/345/217/221/345/270/203/346/214/207/345/215/227.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/01-asin-health-diagnoser.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/02-profit-structure-analyzer.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/03-refund-priority-matrix.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/04-product-attribute-analyzer.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/05-advertising-efficiency-optimizer.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/06-inventory-health-monitor.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/07-ops-perspective-builder.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/08-competitive-intelligence-analyst.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/09-cross-border-product-selector.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/skills/README.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/spec/MCP/346/250/241/345/235/227/346/216/245/345/205/245/350/247/204/350/214/203.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/docs/spec//345/274/200/345/217/221/350/247/204/350/214/203.md" +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/client.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/commands/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/domain/models.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/models.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/parser.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/scraper.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/scraping/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/scraping/parser.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/scraping/scraper.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/services/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/services/manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/amazon/transport/client.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/commands/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/config.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/core/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/core/device_flow.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/core/system_registry.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/core/token_manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/storage/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/storage/credential_store.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/auth/storage/crypto.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/config.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/auth_middleware.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/context.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/credential_cache.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/server.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/amazon.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/auth.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/chatgpt.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/helpers.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/tools/skills.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/mcp/user_store.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/client.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/domain/models.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/models.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/services/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/query/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/shared/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/shared/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/shared/http.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/shared/logging.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/detector.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/discovery/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/discovery/detector.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/domain/models.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/exceptions.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/models.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/services/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/services/manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/sync/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/sync/updater.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-amazon/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-auth/data/VERSION.json +0 -0
- /aukeys_opscli-0.0.24/opscli/skills/templates/ops-auth/SKILL.md → /aukeys_opscli-0.0.26/opscli/skills/templates/ops-auth/references/cli.md +0 -0
- /aukeys_opscli-0.0.24/opscli/skills/templates/ops-auth/SKILL_MCP.md → /aukeys_opscli-0.0.26/opscli/skills/templates/ops-auth/references/mcp.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/dataset_fields.csv +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/datasets.csv +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/query_metadata.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze_mcp.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/core.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/excel_export.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/excel_export_mcp.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/query.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/query_mcp.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/search.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/updater.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/updater_mcp.py +0 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-inventory-health-monitor/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references}/inventory_thresholds.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-mcp/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-mcp/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.24/opscli/skills/templates/ops-profit-structure-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references}/four_actions_template.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-skills/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-skills/SKILL_MCP.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-skills/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/skills/updater.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/opscli/version.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/amazon-payload-sample-shell.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/amazon-payload-sample.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/amazon-scrape-sample-shell.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/amazon-scrape-sample.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/amazon-search-sample-shell.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/amazon-search-sample.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/maintenance/host-onboard-smoke-20260423-082206.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/maintenance/host-onboard-smoke-20260423-082206.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/code_analysis.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/config_patterns/config_patterns.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/config_patterns/config_patterns.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/dependency_graph.dot +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/dependency_graph.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/dependency_graph.mmd +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/statistics.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/documentation/documentation_index.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/documentation/extraction_summary.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/documentation/templates/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/.claude-plugin/plugin.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/README.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/.codex-plugin/plugin.json +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/README.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/publish.sh +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/scripts/release_preflight.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/amazon/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/amazon/test_cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/amazon/test_client.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/amazon/test_manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/amazon/test_parser.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/auth/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/auth/test_credential_store.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/auth/test_crypto.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/auth/test_device_flow.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/auth/test_system_registry.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/auth/test_token_manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/benchmark_credential_read.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/conftest.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/test_cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/test_context.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/test_credential_cache.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/test_multi_user_isolation.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/test_tools.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/mcp/test_user_store.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/shared/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/shared/test_shared.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/skills/__init__.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/skills/test_cli.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/skills/test_detector.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/skills/test_manager.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/skills/test_ops_dataset_query_search.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/skills/test_updater.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/test_session_sharing.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/tests/test_version_consistency.py +0 -0
- {aukeys_opscli-0.0.24 → aukeys_opscli-0.0.26}/uv.lock +0 -0
|
@@ -432,6 +432,85 @@ with self._thread_lock:
|
|
|
432
432
|
- ❌ 公开方法缺少 docstring
|
|
433
433
|
- ❌ 复杂逻辑只靠变量名自说明,不加任何注释
|
|
434
434
|
|
|
435
|
+
### 【铁律18】代码修改后必须更新变更记录文件
|
|
436
|
+
|
|
437
|
+
每次通过 Edit/Write 工具修改代码文件后,**必须立即**将改动记录追加到 `/Users/mask/python3/opscli/docs/change-log-pending.md`。
|
|
438
|
+
|
|
439
|
+
**格式要求**:
|
|
440
|
+
|
|
441
|
+
```markdown
|
|
442
|
+
## YYYY-MM-DD 模块名 - 简短标题
|
|
443
|
+
|
|
444
|
+
**变更原因**:为什么要改(1-2 句话)
|
|
445
|
+
**改动点**:改了哪些文件/模块,具体改了什么
|
|
446
|
+
**验证结果**:如何验证(测试命令/脚本运行结果)
|
|
447
|
+
**影响范围**:哪些功能受影响
|
|
448
|
+
**回滚方式**:如何回滚
|
|
449
|
+
---
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
**禁止行为**:
|
|
453
|
+
- ❌ 修改代码后不写变更记录
|
|
454
|
+
- ❌ 只写"改了什么"不写"为什么"
|
|
455
|
+
- ❌ 变更记录缺少验证结果或回滚方式
|
|
456
|
+
|
|
457
|
+
### 【铁律19】编码前先思考,不假设、不掩盖困惑
|
|
458
|
+
|
|
459
|
+
在动手写代码之前,必须先完成以下检查:
|
|
460
|
+
|
|
461
|
+
- **显式声明假设**:对任何不确定的假设必须明确写出。如果不确定,先问用户
|
|
462
|
+
- **多方案时要列出**:如果存在多种理解或实现方式,必须全部列出让用户选择,禁止静默取一种
|
|
463
|
+
- **更简方案优先**:如果存在更简单的方案,必须主动提出。有理有据地反驳不合理的需求
|
|
464
|
+
- **有疑问就停下**:如果某个需求不清楚或令人困惑,立即停下来命名困惑点并提问,禁止猜测
|
|
465
|
+
|
|
466
|
+
**权衡**:这条铁律偏向谨慎而非速度。对于真正零歧义的小任务,可以适当简化。
|
|
467
|
+
|
|
468
|
+
### 【铁律20】极简优先,只写解决问题所需的最少代码
|
|
469
|
+
|
|
470
|
+
- **禁止超范围功能**:不实现用户没有要求的功能
|
|
471
|
+
- **禁止单次抽象**:如果代码只使用一次,不做抽象
|
|
472
|
+
- **禁止未请求的灵活性和可配置性**:不加用户没要求的参数、配置项或钩子
|
|
473
|
+
- **禁止不可能场景的错误处理**:不为逻辑上不可能发生的场景写防御代码
|
|
474
|
+
- **200 行能写 50 行的必须重写**:如果代码膨胀,问自己"资深工程师会认为这段代码过度复杂吗?"如果会,精简
|
|
475
|
+
|
|
476
|
+
### 【铁律21】精确变更,只改必须改的
|
|
477
|
+
|
|
478
|
+
编辑现有代码时:
|
|
479
|
+
|
|
480
|
+
- **不美化邻里代码**:不改adjacent代码的注释、格式或风格
|
|
481
|
+
- **不改不坏的东西**:不重构正常运行的代码
|
|
482
|
+
- **匹配现有风格**:即使自己会用不同风格,也必须匹配已有代码风格
|
|
483
|
+
- **发现无关死代码只报告不删除**:如果注意到无关的死代码,在注释中提及或口头上报告,不主动删除
|
|
484
|
+
|
|
485
|
+
当你的修改产生了孤立代码:
|
|
486
|
+
|
|
487
|
+
- **必须清理自己制造的孤儿**:删除因你的修改而变为未使用的 import、变量、函数
|
|
488
|
+
- **不删预存的死代码**:除非用户明确要求
|
|
489
|
+
|
|
490
|
+
**判断标准**:每一行改动都必须能追溯到用户的明确请求。
|
|
491
|
+
|
|
492
|
+
### 【铁律22】目标导向执行,定义成功标准并验证闭环
|
|
493
|
+
|
|
494
|
+
将所有任务转化为可验证的目标:
|
|
495
|
+
|
|
496
|
+
- "添加验证" → "为无效输入写测试,然后让测试通过"
|
|
497
|
+
- "修复 Bug" → "写一个能复现该 Bug 的测试,然后让测试通过"
|
|
498
|
+
- "重构 X" → "确保重构前后测试都通过"
|
|
499
|
+
|
|
500
|
+
多步骤任务必须先声明简要计划:
|
|
501
|
+
|
|
502
|
+
```
|
|
503
|
+
1. [步骤] → 验证: [检查方式]
|
|
504
|
+
2. [步骤] → 验证: [检查方式]
|
|
505
|
+
3. [步骤] → 验证: [检查方式]
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
**强的验收标准**让你可以独立闭环。**弱的标准**(如"让它能跑")则需要反复确认。
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
> **这些铁律有效的标志**:diff 中不必要的减少、因过度复杂导致的重写减少、澄清问题在实现之前而非犯错之后。
|
|
513
|
+
|
|
435
514
|
---
|
|
436
515
|
|
|
437
516
|
## 开发流程
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aukeys-opscli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.26
|
|
4
4
|
Summary: Aukeys 运营 CLI 工具集
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: cryptography>=38
|
|
@@ -827,6 +827,42 @@ opscli query chart --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --run --dry-run -
|
|
|
827
827
|
|
|
828
828
|
> 每个 query 独立执行,失败不影响其他 query;合并结果中每行附加 `_query_index` 标识来源。
|
|
829
829
|
|
|
830
|
+
### `opscli query chart-doc` - 通过 chart_uuid 生成图表 API 调用 Markdown 文档
|
|
831
|
+
|
|
832
|
+
```bash
|
|
833
|
+
# 生成图表 API 调用文档
|
|
834
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --pretty
|
|
835
|
+
|
|
836
|
+
# 将 Markdown 文档写入指定文件
|
|
837
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --output chart-doc.md --pretty
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
| 参数 | 必需 | 说明 |
|
|
841
|
+
|------|------|------|
|
|
842
|
+
| `--uuid` | 是 | 图表 UUID(chart_uuid) |
|
|
843
|
+
| `--output` | 否 | 将 Markdown 文档写入指定文件路径 |
|
|
844
|
+
| `--pretty` | 否 | 格式化 JSON 输出 |
|
|
845
|
+
|
|
846
|
+
**返回结构**:
|
|
847
|
+
|
|
848
|
+
```json
|
|
849
|
+
{
|
|
850
|
+
"success": true,
|
|
851
|
+
"command": "query chart-doc",
|
|
852
|
+
"data": {
|
|
853
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
854
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
855
|
+
"query_count": 3,
|
|
856
|
+
"dataset_aliases": ["sales_order_d"],
|
|
857
|
+
"dataset_count": 1,
|
|
858
|
+
"output_path": "/path/to/chart-doc.md"
|
|
859
|
+
},
|
|
860
|
+
"error": null
|
|
861
|
+
}
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
> 生成的 Markdown 文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。
|
|
865
|
+
|
|
830
866
|
## Skills 使用
|
|
831
867
|
|
|
832
868
|
### `opscli skills list`
|
|
@@ -809,6 +809,42 @@ opscli query chart --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --run --dry-run -
|
|
|
809
809
|
|
|
810
810
|
> 每个 query 独立执行,失败不影响其他 query;合并结果中每行附加 `_query_index` 标识来源。
|
|
811
811
|
|
|
812
|
+
### `opscli query chart-doc` - 通过 chart_uuid 生成图表 API 调用 Markdown 文档
|
|
813
|
+
|
|
814
|
+
```bash
|
|
815
|
+
# 生成图表 API 调用文档
|
|
816
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --pretty
|
|
817
|
+
|
|
818
|
+
# 将 Markdown 文档写入指定文件
|
|
819
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --output chart-doc.md --pretty
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
| 参数 | 必需 | 说明 |
|
|
823
|
+
|------|------|------|
|
|
824
|
+
| `--uuid` | 是 | 图表 UUID(chart_uuid) |
|
|
825
|
+
| `--output` | 否 | 将 Markdown 文档写入指定文件路径 |
|
|
826
|
+
| `--pretty` | 否 | 格式化 JSON 输出 |
|
|
827
|
+
|
|
828
|
+
**返回结构**:
|
|
829
|
+
|
|
830
|
+
```json
|
|
831
|
+
{
|
|
832
|
+
"success": true,
|
|
833
|
+
"command": "query chart-doc",
|
|
834
|
+
"data": {
|
|
835
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
836
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
837
|
+
"query_count": 3,
|
|
838
|
+
"dataset_aliases": ["sales_order_d"],
|
|
839
|
+
"dataset_count": 1,
|
|
840
|
+
"output_path": "/path/to/chart-doc.md"
|
|
841
|
+
},
|
|
842
|
+
"error": null
|
|
843
|
+
}
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
> 生成的 Markdown 文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。
|
|
847
|
+
|
|
812
848
|
## Skills 使用
|
|
813
849
|
|
|
814
850
|
### `opscli skills list`
|
|
@@ -315,6 +315,53 @@ query_build_and_run(
|
|
|
315
315
|
|
|
316
316
|
---
|
|
317
317
|
|
|
318
|
+
#### `query_chart_doc`
|
|
319
|
+
|
|
320
|
+
通过 chart_uuid 生成图表 API 调用 Markdown 文档,包含查询结构、字段映射、过滤规则与样例。**需要认证**。
|
|
321
|
+
|
|
322
|
+
文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。适合 Skill / AI Agent 直接消费。
|
|
323
|
+
|
|
324
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
325
|
+
|------|------|------|------|
|
|
326
|
+
| `chart_uuid` | string | 是 | 图表唯一标识 |
|
|
327
|
+
| `output_path` | string | 否 | 将 Markdown 写入指定文件路径 |
|
|
328
|
+
| `session_id` | string | **是** | 用户授权后获得的 session_id |
|
|
329
|
+
| `jwt` | string | 否 | JWT,不传则自动用 session_id 换取 |
|
|
330
|
+
|
|
331
|
+
**返回示例:**
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"success": true,
|
|
335
|
+
"data": {
|
|
336
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
337
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
338
|
+
"query_count": 3,
|
|
339
|
+
"dataset_aliases": ["sales_order_d"],
|
|
340
|
+
"dataset_count": 1,
|
|
341
|
+
"output_path": "/path/to/chart-doc.md"
|
|
342
|
+
},
|
|
343
|
+
"error": null
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**典型用法:**
|
|
348
|
+
```python
|
|
349
|
+
# 生成图表文档(Markdown 在返回数据中)
|
|
350
|
+
query_chart_doc(
|
|
351
|
+
chart_uuid="32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
352
|
+
session_id="860b0636485b5188a2b9b4ed5210e736",
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
# 生成文档并写入本地文件
|
|
356
|
+
query_chart_doc(
|
|
357
|
+
chart_uuid="32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
358
|
+
output_path="/tmp/chart-doc.md",
|
|
359
|
+
session_id="860b0636485b5188a2b9b4ed5210e736",
|
|
360
|
+
)
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
318
365
|
### 认证(auth_*)
|
|
319
366
|
|
|
320
367
|
#### `auth_login_start`
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# 待归档变更记录
|
|
2
|
+
|
|
3
|
+
## 2026-04-29 opscli - 实现 Skill 委托模式,防止 AI 猜测字段名
|
|
4
|
+
|
|
5
|
+
**变更原因**:测试调用记录显示,AI 在执行数据集查询时经常直接猜测字段名(如 `ds_pdTYjvLRCadv.asin`),导致 `INVALID_PAYLOAD` 错误。需要显式声明业务逻辑层 Skill 应将数据查询工作委托给 `ops-dataset-query` Skill,由其负责字段发现、metadata 验证和 payload 构造。
|
|
6
|
+
|
|
7
|
+
**改动点**:
|
|
8
|
+
- 为 9 个数据查询类 Skill 的 `SKILL.md` 添加"## 技能委托声明"部分
|
|
9
|
+
- ops-asin-health-diagnoser(之前已完成)
|
|
10
|
+
- ops-competitive-intelligence-analyst
|
|
11
|
+
- ops-cross-border-product-selector
|
|
12
|
+
- ops-advertising-efficiency-optimizer
|
|
13
|
+
- ops-inventory-health-monitor
|
|
14
|
+
- ops-product-attribute-analyzer
|
|
15
|
+
- ops-perspective-builder
|
|
16
|
+
- ops-profit-structure-analyzer
|
|
17
|
+
- ops-refund-priority-matrix
|
|
18
|
+
- 每个委托声明包含:
|
|
19
|
+
- 责任边界表(数据查询层 → ops-dataset-query,业务逻辑层 → 当前 Skill)
|
|
20
|
+
- 委托触发规则表(5 场景,标注 ✅ 必须委托 / ❌ 可直接执行)
|
|
21
|
+
- 委托调用方式示例(→ 调用 / ← 返回)
|
|
22
|
+
- 反例警告(禁止直接猜测字段名)
|
|
23
|
+
- 插入位置统一为"阅读入口"和"使用原则"之间
|
|
24
|
+
|
|
25
|
+
**验证结果**:
|
|
26
|
+
- `grep -l "## 技能委托声明" opscli/skills/templates/ops-*/SKILL.md | wc -l` 返回 9
|
|
27
|
+
- 所有 9 个数据查询类 Skill 已包含完整委托声明
|
|
28
|
+
|
|
29
|
+
**影响范围**:
|
|
30
|
+
- AI Agent 在调用这些 Skill 时,会优先切换到 ops-dataset-query 进行字段发现
|
|
31
|
+
- 减少 INVALID_PAYLOAD 错误,避免额外的往返修复
|
|
32
|
+
- 不影响 CLI 模式用户直接使用 opscli query 命令
|
|
33
|
+
|
|
34
|
+
**回滚方式**:
|
|
35
|
+
- 删除各 SKILL.md 中"## 技能委托声明"部分(从 `---` 到下一个 `---`)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2026-04-27 opscli - 新增 chart_analyze_mcp.py
|
|
40
|
+
|
|
41
|
+
**变更原因**:为 ops-dataset-query Skill 新增 MCP 无状态模式的图表异常检测脚本,原 `chart_analyze.py` 依赖 `opscli` CLI(subprocess),无法在纯 MCP 环境中使用。
|
|
42
|
+
|
|
43
|
+
**改动点**:
|
|
44
|
+
- 新增 `opscli/skills/templates/ops-dataset-query/scripts/chart_analyze_mcp.py`
|
|
45
|
+
- 移除所有 `subprocess` 调用 `opscli` 的逻辑
|
|
46
|
+
- 数据获取改为纯文件输入(`--input` / `--dc-input`),由 MCP Agent 预先通过 `query_chart` / `query_build_and_run` Tool 获取后传入
|
|
47
|
+
- 移除自动 `upgrade` 兜底,改为返回错误并提示调用 MCP `skills_upgrade`
|
|
48
|
+
- 文件头部添加详细 MCP 调用指南注释(含前置 session 检查、Tool 调用示例、dataComparison 用法)
|
|
49
|
+
- 核心异常检测逻辑(5 类规则)与 `chart_analyze.py` 完全一致
|
|
50
|
+
|
|
51
|
+
**验证结果**:`python -m py_compile` 语法检查通过
|
|
52
|
+
|
|
53
|
+
**影响范围**:不影响现有 `chart_analyze.py`,为 MCP 环境提供独立入口
|
|
54
|
+
|
|
55
|
+
**回滚方式**:删除 `chart_analyze_mcp.py` 即可
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 2026-04-27 opscli - 新增 chart_map_mcp.py / excel_export_mcp.py / query_mcp.py / updater_mcp.py
|
|
60
|
+
|
|
61
|
+
**变更原因**:为 ops-dataset-query Skill 的 4 个核心脚本创建 MCP 无状态模式版本,原脚本均依赖 opscli CLI(subprocess 或直接导入内部模块),无法在纯 MCP 环境中使用。
|
|
62
|
+
|
|
63
|
+
### chart_map_mcp.py
|
|
64
|
+
- 新增 `opscli/skills/templates/ops-dataset-query/scripts/chart_map_mcp.py`
|
|
65
|
+
- 移除 `subprocess` 调用 `opscli query chart`(原 `--uuid`/`--run` 参数)
|
|
66
|
+
- 移除 `_try_upgrade()` 自动升级逻辑,映射失败时提示调用 MCP `skills_upgrade`
|
|
67
|
+
- 数据入口改为纯 `--input` 文件(由 MCP `query_chart` 获取后保存)
|
|
68
|
+
- 保留核心映射函数:`discover_data_dir`、`load_local_index`、`map_chart_queries`、`map_query_results`
|
|
69
|
+
|
|
70
|
+
### excel_export_mcp.py
|
|
71
|
+
- 新增 `opscli/skills/templates/ops-dataset-query/scripts/excel_export_mcp.py`
|
|
72
|
+
- 不再从 `chart_analyze.py` 导入 CLI 函数(`_check_mapping_hit`、`_try_upgrade`、`load_chart_data`)
|
|
73
|
+
- 自行实现文件版 `load_chart_data()` 和 `_check_mapping_hit()`
|
|
74
|
+
- 移除 `--uuid` 和 `--no-auto-upgrade` 参数
|
|
75
|
+
- 保留 Excel 导出核心逻辑:样式、行列类型判断、百分比列识别、列宽自适应
|
|
76
|
+
|
|
77
|
+
### query_mcp.py
|
|
78
|
+
- 新增 `opscli/skills/templates/ops-dataset-query/scripts/query_mcp.py`
|
|
79
|
+
- 原 `query.py` 为纯 opscli 转发脚本(`subprocess` 调用 CLI),MCP 模式下无直接价值
|
|
80
|
+
- 改造为**本地 Payload 构造器**:使用本地 CSV 索引实现字段别名解析(`global_alias > field_name > verbose_name`),构造标准 query payload JSON
|
|
81
|
+
- 支持 `build` 子命令(dimensions/metrics/where/order_by/limit/offset/data_comparison)和 `metadata` 子命令
|
|
82
|
+
- 输出 payload JSON 文件,供 MCP `query_run` Tool 使用
|
|
83
|
+
- 实现字段歧义自动消歧(`_pick_primary_field`,优先选取原始字段)
|
|
84
|
+
|
|
85
|
+
### updater_mcp.py
|
|
86
|
+
- 新增 `opscli/skills/templates/ops-dataset-query/scripts/updater_mcp.py`
|
|
87
|
+
- 移除对 `opscli.skills.models.SkillRecord` 和 `opscli.skills.updater.SkillsUpdater` 的依赖
|
|
88
|
+
- 改为仅检查本地 `VERSION.json` 和数据文件(`datasets.csv`、`dataset_fields.csv`、`query_metadata.json`)完整性的轻量脚本
|
|
89
|
+
- 更新操作提示通过 MCP `skills_upgrade` Tool 执行
|
|
90
|
+
|
|
91
|
+
**验证结果**:`python -m py_compile` 语法检查全部通过(4/4)
|
|
92
|
+
|
|
93
|
+
**影响范围**:不影响现有 CLI 版本脚本,为 MCP 环境提供独立入口
|
|
94
|
+
|
|
95
|
+
**回滚方式**:删除 4 个 `*_mcp.py` 文件即可
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 2026-04-27 opscli - 更新 SKILL_MCP.md 文档
|
|
100
|
+
|
|
101
|
+
**变更原因**:将新增的 5 个 MCP 版本脚本(`query_mcp.py`、`chart_map_mcp.py`、`chart_analyze_mcp.py`、`excel_export_mcp.py`、`updater_mcp.py`)的调用方式及用法补充到 SKILL_MCP.md 中,方便 MCP Agent 查阅。
|
|
102
|
+
|
|
103
|
+
**改动点**:
|
|
104
|
+
- 在 `opscli/skills/templates/ops-dataset-query/SKILL_MCP.md` 的"辅助脚本"章节中新增"MCP 环境辅助脚本"小节
|
|
105
|
+
- 每个脚本包含:功能说明、用法示例、输入来源(对应哪个 MCP Tool)、输出格式
|
|
106
|
+
- `query_mcp.py` 单独说明与 `query_run` Tool 的配合使用流程
|
|
107
|
+
- `chart_analyze_mcp.py` 包含 5 类异常检测规则速查表
|
|
108
|
+
- `excel_export_mcp.py` 包含格式规范说明
|
|
109
|
+
|
|
110
|
+
**影响范围**:仅文档更新,不影响代码
|
|
111
|
+
|
|
112
|
+
**回滚方式**:回退 SKILL_MCP.md 修改即可
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 2026-04-27 opscli - 新增 ops-skills/SKILL_MCP.md
|
|
117
|
+
|
|
118
|
+
**变更原因**:`ops-skills` 虽然不需要 `*_mcp.py` 脚本(核心功能本身就是 MCP Tool),但缺少 MCP 模式下的使用文档,导致 MCP Agent 无法了解 `skills_list`、`skills_install`、`skills_status`、`skills_upgrade` 四个 Tool 的参数格式和返回结构。
|
|
119
|
+
|
|
120
|
+
**改动点**:
|
|
121
|
+
- 新增 `opscli/skills/templates/ops-skills/SKILL_MCP.md`
|
|
122
|
+
- 包含完整的 4 个 MCP Tool 参数表:
|
|
123
|
+
- `skills_list`:本地扫描,无需认证
|
|
124
|
+
- `skills_status`:含远端版本对比
|
|
125
|
+
- `skills_install`:纯本地模板安装
|
|
126
|
+
- `skills_upgrade`:仅支持 `ops-dataset-query` 远端升级
|
|
127
|
+
- 提供典型工作流(全新环境初始化、日常版本维护、指定路径安装、强制重置)
|
|
128
|
+
- 明确认证说明:`skills_list`/`skills_install` 纯本地操作无需认证;`skills_status`/`skills_upgrade` 远端调用由服务器端内部处理
|
|
129
|
+
|
|
130
|
+
**影响范围**:仅文档新增,不影响代码
|
|
131
|
+
|
|
132
|
+
**回滚方式**:删除 SKILL_MCP.md 即可
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 2026-04-27 opscli - 新增 MCP 工具使用手册
|
|
137
|
+
|
|
138
|
+
**变更原因**:CLI 命令用例手册 (`opscli命令用例手册.md`) 无法直接指导 MCP 环境下的 Tool 调用,需要一份对应的 MCP Tool 使用手册,覆盖全部 4 个模块(auth / amazon / query / skills)共 24+ 个 Tool 的参数、返回结构和示例。
|
|
139
|
+
|
|
140
|
+
**改动点**:
|
|
141
|
+
- 新增 `docs/guide/MCP工具使用手册.md`
|
|
142
|
+
- 结构与 CLI 手册一一对应,但使用 Python 函数调用风格展示参数
|
|
143
|
+
- 每个 Tool 包含:参数表、返回示例、调用示例
|
|
144
|
+
- 包含认证状态速查表(哪些 Tool 需要认证、认证方式)
|
|
145
|
+
- 包含 CLI → MCP Tool 的映射对照表(快速索引)
|
|
146
|
+
- 覆盖 CLI 手册中所有 8 个常见组合用例的 MCP 版本
|
|
147
|
+
|
|
148
|
+
**影响范围**:仅文档新增,不影响代码
|
|
149
|
+
|
|
150
|
+
**回滚方式**:删除 `docs/guide/MCP工具使用手册.md` 即可
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 2026-04-29 opscli/skills - Skills 深度审查修复(16 项)
|
|
155
|
+
|
|
156
|
+
**变更原因**:对已开发完成的 9 个 Skills 进行全面深度审查,发现 7 项必须修复问题 + 6 项建议修复 + 3 项可选优化,逐一修复确保代码质量和安全性。
|
|
157
|
+
|
|
158
|
+
**改动点**:
|
|
159
|
+
|
|
160
|
+
### 🔴 必须修复(7 项)
|
|
161
|
+
1. **permission 格式错误**:5 个 reference 文件中 `"permission": ["{permission}"]` 改为 `"permission": "{permission}"`(字符串而非数组)
|
|
162
|
+
- `ops-competitive-intelligence-analyst/reference/dataset_fields_mapping.md`
|
|
163
|
+
- `ops-refund-priority-matrix/reference/dataset_fields_mapping.md`
|
|
164
|
+
- `ops-perspective-builder/reference/dataset_fields_mapping.md`
|
|
165
|
+
- `ops-profit-structure-analyzer/reference/dataset_fields_mapping.md`
|
|
166
|
+
- `ops-cross-border-product-selector/reference/dataset_fields_mapping.md`
|
|
167
|
+
2. **透视模板缺失**:`build_perspective_config.py` 补充 4 个缺失模板(`ad_type_comparison`、`device_traffic`、`promotion_effectiveness`、`inventory_structure`)及对应触发词
|
|
168
|
+
3. **四行动策略硬编码**:`competitive_analysis.py` 的 `analyze_four_actions()` 将硬编码的保温杯建议改为基于品类数据和定位分析动态生成
|
|
169
|
+
4. **毛利润可能为负**:`analyze_cost_structure.py` 的 `gross_profit = 1.0 - total_cost` 改为 `max(0.0, min(1.0, 1.0 - total_cost))`
|
|
170
|
+
5. **重复 import**:`calculate_roas_acos.py` 删除 `if __name__` 块中重复的 `from typing import Optional`
|
|
171
|
+
6. **预估成本硬编码**:`product_selector.py` 的 `price * 0.35` 改为可配置参数 `DEFAULT_COST_RATIO` + 支持 `item.estimated_cost` 和 `internal_capability.cost_ratio`
|
|
172
|
+
|
|
173
|
+
### 🟡 建议修复(6 项)
|
|
174
|
+
7. **字段映射声明**:`ops-asin-health-diagnoser/SKILL.md` 阈值表添加 `sell_qty_days → inventory_days` 字段映射说明
|
|
175
|
+
8. **参数类型标注错误**:`product_selector.py` 的 `classify_quadrant` 参数 `sentiment_score` 从 `Optional[str]` 改为 `Optional[float]`
|
|
176
|
+
9. **硬编码日期**:`generate_replenishment_plan.py` 新增 `reference_date` 参数,默认 `datetime.now()`,支持测试和回测
|
|
177
|
+
10. **description 混合语言**:`ops-profit-structure-analyzer` 和 `ops-refund-priority-matrix` 的 frontmatter description 改为纯英文
|
|
178
|
+
11. **错误输出方向**:`calculate_health_score.py` 错误信息同时输出到 stdout 和 stderr
|
|
179
|
+
12. **SKILL.md 标题风格**:统一 3 个标题为 `# 英文标题` + 中文副标题格式
|
|
180
|
+
|
|
181
|
+
### 新增铁律
|
|
182
|
+
13. **CLAUDE.md 新增【铁律18】**:代码修改后必须更新变更记录文件 `docs/change-log-pending.md`
|
|
183
|
+
|
|
184
|
+
**验证结果**:所有 14 个脚本通过 `echo '{}' | python script.py` 基础测试,关键脚本(health_score、cost_structure、roas_acos、perspective_builder、competitive_analysis、product_selector)通过正常数据测试
|
|
185
|
+
|
|
186
|
+
**影响范围**:仅影响 Skills 模板的脚本和文档,不影响 opscli 核心功能(auth/query/mcp)
|
|
187
|
+
|
|
188
|
+
**回滚方式**:`git checkout -- opscli/skills/templates/ CLAUDE.md docs/change-log-pending.md`
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 2026-04-29 CLAUDE.md - 整合 Andrej Karpathy 编码行为准则为铁律19-22
|
|
193
|
+
|
|
194
|
+
**变更原因**:将 https://github.com/forrestchang/andrej-karpathy-skills/blob/main/CLAUDE.md 中 4 条编码行为准则翻译为中文,以【铁律19~22】形式追加到项目 CLAUDE.md 的铁律章节,与项目现有铁律风格保持一致。
|
|
195
|
+
|
|
196
|
+
**改动点**:
|
|
197
|
+
- CLAUDE.md 新增 4 条铁律:
|
|
198
|
+
- 【铁律19】编码前先思考,不假设、不掩盖困惑(原文:Think Before Coding)
|
|
199
|
+
- 【铁律20】极简优先,只写解决问题所需的最少代码(原文:Simplicity First)
|
|
200
|
+
- 【铁律21】精确变更,只改必须改的(原文:Surgical Changes)
|
|
201
|
+
- 【铁律22】目标导向执行,定义成功标准并验证闭环(原文:Goal-Driven Execution)
|
|
202
|
+
- 原则:忠于原文核心精神,中文表达贴合项目铁律风格(禁止行为列表 + 判断标准)
|
|
203
|
+
|
|
204
|
+
**验证结果**:4 条铁律内容对照原文无遗漏,中文表达通顺
|
|
205
|
+
|
|
206
|
+
**影响范围**:仅影响 CLAUDE.md 文档,不影响代码
|
|
207
|
+
|
|
208
|
+
**回滚方式**:删除 CLAUDE.md 中【铁律19】至【铁律22】段落
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 2026-04-29 auto-scheduler + opscli - 图表查询接口增加过滤字段及新增 chart-doc 指令
|
|
213
|
+
|
|
214
|
+
**变更原因**:
|
|
215
|
+
1. 服务端 `latest-request-data` 接口需要返回当前图表数据集支持的过滤条件字段,供 opscli 侧了解可用 WHERE 条件
|
|
216
|
+
2. opscli 侧需要在图表查询结果中透传过滤字段信息
|
|
217
|
+
3. 新增 `opscli query chart-doc` 指令,支持通过 chart_uuid 自动生成完整 API 调用 Markdown 文档
|
|
218
|
+
|
|
219
|
+
**改动点**:
|
|
220
|
+
|
|
221
|
+
### 服务端(auto-scheduler)
|
|
222
|
+
- 修改 `vendor/aukey/data-metrics/src/Http/Controllers/CliQueryApiController.php`
|
|
223
|
+
- 引入 `Aukey\DataMetrics\Models\SelectColumnRelation`
|
|
224
|
+
- `latestRequestData` 方法新增逻辑:通过 `query.from.alias` → `dm_tables.dataset_alias` → `dm_select_column_relations.dataset_alias` 查询启用的过滤字段
|
|
225
|
+
- 返回结构扩展:每个 query item 新增 `filterable_fields` 字段(含 `column_name`、`verbose_name`、`source_column_name`)
|
|
226
|
+
- 按 `dataset_alias` 缓存避免重复查询
|
|
227
|
+
|
|
228
|
+
### opscli 侧
|
|
229
|
+
- 修改 `opscli/query/services/manager.py`
|
|
230
|
+
- `run_chart_queries` 方法透传 `filterable_fields` 和 `query_structure` 到每个 query 结果中
|
|
231
|
+
- 新增 `generate_chart_doc(chart_uuid)` 方法:生成完整 Markdown 文档,含数据集概览、过滤字段表、查询结构说明、API 调用顺序、Payload 示例、WHERE 条件构建指南
|
|
232
|
+
- 示例中敏感字段(`table`/`permission`)使用占位符,不返回 `userEmail`
|
|
233
|
+
- 修改 `opscli/query/commands/cli.py`
|
|
234
|
+
- 新增 `chart-doc` 子命令:`opscli query chart-doc --uuid <chart_uuid> [--output <file>] [--pretty]`
|
|
235
|
+
- 支持将 Markdown 文档直接写入文件
|
|
236
|
+
|
|
237
|
+
**验证结果**:
|
|
238
|
+
- `python -m py_compile opscli/query/services/manager.py opscli/query/commands/cli.py` 语法检查通过
|
|
239
|
+
- 服务端 PHP 文件未引入语法错误(新增 import + 扩展已有循环逻辑)
|
|
240
|
+
|
|
241
|
+
**影响范围**:
|
|
242
|
+
- 服务端 `latest-request-data` 接口返回结构向后兼容扩展(新增字段)
|
|
243
|
+
- opscli `query chart` 和 `query chart-run` 返回的每个 query 中新增 `filterable_fields` 和 `query_structure`
|
|
244
|
+
- 新增 `query chart-doc` 命令,不影响现有命令
|
|
245
|
+
|
|
246
|
+
**回滚方式**:
|
|
247
|
+
- 服务端:回退 `CliQueryApiController.php` 的 `latestRequestData` 方法修改
|
|
248
|
+
- opscli:回退 `manager.py` 中 `run_chart_queries` 和 `generate_chart_doc`,回退 `cli.py` 中 `chart_doc` 命令
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 2026-04-29 query - 优化 chart-doc 生成文档结构
|
|
253
|
+
|
|
254
|
+
**变更原因**:生成的文档存在三个缺陷:可过滤字段在多 Query 时重复渲染浪费 token;7.1 字段映射表列数达 8 列宽表 AI 不友好;缺少字段命名约定说明导致 AI 无法处理边界场景
|
|
255
|
+
**改动点**:
|
|
256
|
+
1. `opscli/query/services/manager.py - generate_chart_doc`:
|
|
257
|
+
- §2 新增"字段命名约定"小节(§2.2),说明 query_alias / global_alias / origin_name / expr 的格式规律、生成方式和使用场景,及公式字段边界说明
|
|
258
|
+
- §7.1 输出字段映射由 1 张 8 列宽表拆分为 2 张 4 列表(表A字段语义 + 表B字段引用),以 field_name 作连接键,expr 列去掉并在表B注释中说明
|
|
259
|
+
- §7.3 可过滤字段新增去重逻辑:对比当前 Query 与所属数据集(§5.2)的 filterable_fields 集合,完全相同时只输出一行引用语句,不同才完整渲染
|
|
260
|
+
2. `tests/query/test_manager.py`:更新两个受影响的测试断言匹配新双表格式和去重引用格式
|
|
261
|
+
**验证结果**:pytest tests/query/ 39 passed
|
|
262
|
+
**影响范围**:opscli query chart-doc 命令输出的 Markdown 文档结构;不影响 API 调用逻辑
|
|
263
|
+
**回滚方式**:git revert 此次改动,恢复 manager.py 和 test_manager.py 对应段落
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 2026-04-29 skills/templates - 精简所有 Skill 的 references 文档
|
|
267
|
+
|
|
268
|
+
**变更原因**:`data-query-service-dev-guide.md`(1173行)在 9 个业务 Skill 中存在完全相同的 10 份副本,占每个 Skill 文档总量的 60-75%;其中大量章节(多次查询、MOY/ACC/PPT、缓存、PHP 伪代码)对 Skill 执行无用,造成 AI 上下文浪费和维护困难
|
|
269
|
+
|
|
270
|
+
**改动点**:
|
|
271
|
+
1. 新建 `query-essential-guide.md`(149行):从完整 dev-guide 中提取 Skill 真正需要的内容(WHERE 操作符、SELECT 格式、日期规范、dataComparison、错误码),复制到 9 个业务 Skill 的 references/
|
|
272
|
+
2. 删除 9 个业务 Skill 中的 `data-query-service-dev-guide.md`,保留 `ops-dataset-query/references/` 中的唯一完整版
|
|
273
|
+
3. 精简 `ops-asin-health-diagnoser/references/dataset_fields_mapping.md`(134行→65行):去掉静态 payload 模板,保留数据集索引 + 核心字段业务语义 + chart-doc 使用指引
|
|
274
|
+
4. 更新 9 个 Skill 的 `SKILL.md`、`references/cli.md`、`references/mcp.md` 中的文件名引用(data-query-service-dev-guide → query-essential-guide)
|
|
275
|
+
|
|
276
|
+
**验证结果**:
|
|
277
|
+
- dev-guide 残留检查通过(9 个业务 Skill 均已删除)
|
|
278
|
+
- query-essential-guide 分布:9 个 Skill 均已到位
|
|
279
|
+
- 各 Skill 文档总行数:平均从 ~1800 行降至 ~737 行,减少约 59%
|
|
280
|
+
|
|
281
|
+
**影响范围**:所有业务类 Skill 的 references 目录结构;ops-dataset-query 不受影响
|
|
282
|
+
**回滚方式**:从 ops-dataset-query/references/data-query-service-dev-guide.md 重新 cp 到各 Skill,删除 query-essential-guide.md,恢复文件名引用
|
|
283
|
+
---
|
|
@@ -39,7 +39,8 @@ opscli
|
|
|
39
39
|
│ ├── metadata
|
|
40
40
|
│ ├── run
|
|
41
41
|
│ ├── build
|
|
42
|
-
│
|
|
42
|
+
│ ├── chart
|
|
43
|
+
│ └── chart-doc
|
|
43
44
|
└── skills
|
|
44
45
|
├── list
|
|
45
46
|
├── install
|
|
@@ -632,6 +633,66 @@ opscli query chart --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --run --dry-run -
|
|
|
632
633
|
|
|
633
634
|
---
|
|
634
635
|
|
|
636
|
+
---
|
|
637
|
+
|
|
638
|
+
### 6.5 `opscli query chart-doc`
|
|
639
|
+
|
|
640
|
+
通过 `chart_uuid` 生成图表 API 调用 Markdown 文档,包含查询结构、字段映射、过滤规则与样例。
|
|
641
|
+
|
|
642
|
+
**用法**
|
|
643
|
+
|
|
644
|
+
```bash
|
|
645
|
+
opscli query chart-doc --uuid <chart_uuid> [--output <file>] [--pretty]
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
**参数**
|
|
649
|
+
|
|
650
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
651
|
+
| --- | --- | --- | --- |
|
|
652
|
+
| `--uuid` | 是 | - | 图表 UUID(chart_uuid) |
|
|
653
|
+
| `--output` | 否 | - | 将 Markdown 文档写入指定文件路径 |
|
|
654
|
+
| `--pretty` | 否 | `false` | 美化 JSON 输出 |
|
|
655
|
+
|
|
656
|
+
**说明**
|
|
657
|
+
|
|
658
|
+
- 该命令通过 `chart_uuid` 获取图表的查询结构,自动生成一份完整 Markdown 文档。
|
|
659
|
+
- 生成的文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。
|
|
660
|
+
- 使用 `--output` 可将 Markdown 内容直接写入文件,方便保存和分发。
|
|
661
|
+
|
|
662
|
+
**示例**
|
|
663
|
+
|
|
664
|
+
生成文档并在终端查看:
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --pretty
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
将文档写入文件:
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --output chart-doc.md --pretty
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
**返回结构**
|
|
677
|
+
|
|
678
|
+
```json
|
|
679
|
+
{
|
|
680
|
+
"success": true,
|
|
681
|
+
"command": "query chart-doc",
|
|
682
|
+
"data": {
|
|
683
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
684
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
685
|
+
"query_count": 3,
|
|
686
|
+
"dataset_aliases": ["sales_order_d"],
|
|
687
|
+
"dataset_count": 1,
|
|
688
|
+
"output_path": "/path/to/chart-doc.md"
|
|
689
|
+
},
|
|
690
|
+
"error": null
|
|
691
|
+
}
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
---
|
|
695
|
+
|
|
635
696
|
### 6.3 `opscli query build`
|
|
636
697
|
|
|
637
698
|
基于简化参数构造标准 query payload;也可以直接执行。
|
|
@@ -948,5 +1009,5 @@ opscli skills upgrade ops-dataset-query --pretty
|
|
|
948
1009
|
| Token | `opscli auth token status`、`get`、`check`、`refresh` |
|
|
949
1010
|
| 系统管理 | `opscli auth system list`、`sync`、`add`、`remove` |
|
|
950
1011
|
| Amazon | `opscli amazon scrape`、`payload`、`search`、`schema`、`history` |
|
|
951
|
-
| 查询 | `opscli query metadata`、`run`、`build`、`chart` |
|
|
1012
|
+
| 查询 | `opscli query metadata`、`run`、`build`、`chart`、`chart-doc` |
|
|
952
1013
|
| Skills | `opscli skills list`、`install`、`status`、`upgrade` |
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
- query_run — 读取本地 payload 文件并执行查询
|
|
7
7
|
- query_build_and_run — 构造 payload 并立即执行,一步返回结果
|
|
8
8
|
- query_chart — 通过 chart_uuid 获取/执行图表查询
|
|
9
|
+
- query_chart_doc — 通过 chart_uuid 生成图表 API 调用 Markdown 文档
|
|
9
10
|
|
|
10
11
|
所有工具函数定义在模块级,可直接导入调用(测试友好)。
|
|
11
12
|
调用 register(mcp) 将以上工具批量注册到指定 MCP 实例。
|
|
@@ -218,8 +219,47 @@ async def query_chart(
|
|
|
218
219
|
return _ok(result)
|
|
219
220
|
else:
|
|
220
221
|
# 仅获取图表查询结构,不执行
|
|
221
|
-
|
|
222
|
-
return _ok(
|
|
222
|
+
chart_bundle = manager.fetch_chart_bundle(chart_uuid)
|
|
223
|
+
return _ok(chart_bundle)
|
|
224
|
+
except Exception as exc:
|
|
225
|
+
return _err(exc)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
async def query_chart_doc(
|
|
229
|
+
chart_uuid: str,
|
|
230
|
+
output_path: str | None = None,
|
|
231
|
+
session_id: str | None = None,
|
|
232
|
+
jwt: str | None = None,
|
|
233
|
+
) -> dict:
|
|
234
|
+
"""通过 chart_uuid 生成图表 API 调用 Markdown 文档,包含查询结构、字段映射、过滤规则与样例。
|
|
235
|
+
|
|
236
|
+
生成的文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、
|
|
237
|
+
字段明细表、过滤规则、查询拆解与样例。适合 Skill / AI Agent 消费。
|
|
238
|
+
|
|
239
|
+
如果未提供 session_id / jwt,会自动尝试从本地加载已保存的凭据。
|
|
240
|
+
|
|
241
|
+
Args:
|
|
242
|
+
chart_uuid: 图表唯一标识
|
|
243
|
+
output_path: 可选,将 Markdown 写入指定文件路径
|
|
244
|
+
session_id: 可选,OAuth 授权后的 Session ID(为空则自动加载本地保存的)
|
|
245
|
+
jwt: 可选,已有 JWT(为空则自动加载本地缓存的)
|
|
246
|
+
"""
|
|
247
|
+
from opscli.mcp.tools.helpers import _get_auth_pair
|
|
248
|
+
|
|
249
|
+
sid, jw = _get_auth_pair("ops", session_id, jwt)
|
|
250
|
+
if not sid:
|
|
251
|
+
return _err(ValueError("无 session_id:请完成授权登录,或传入有效的 session_id"))
|
|
252
|
+
manager = _query_manager(jwt=jw, session_id=sid)
|
|
253
|
+
try:
|
|
254
|
+
result = manager.generate_chart_doc(chart_uuid=chart_uuid)
|
|
255
|
+
if output_path:
|
|
256
|
+
from pathlib import Path
|
|
257
|
+
|
|
258
|
+
p = Path(output_path).expanduser()
|
|
259
|
+
p.parent.mkdir(parents=True, exist_ok=True)
|
|
260
|
+
p.write_text(result["markdown"], encoding="utf-8")
|
|
261
|
+
result["output_path"] = str(p)
|
|
262
|
+
return _ok(result)
|
|
223
263
|
except Exception as exc:
|
|
224
264
|
return _err(exc)
|
|
225
265
|
|
|
@@ -231,6 +271,7 @@ _ALL_TOOLS = [
|
|
|
231
271
|
query_run,
|
|
232
272
|
query_build_and_run,
|
|
233
273
|
query_chart,
|
|
274
|
+
query_chart_doc,
|
|
234
275
|
]
|
|
235
276
|
|
|
236
277
|
|