@huicai/cli 2026.804.0 → 2026.1019.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +391 -32
- package/README.md +176 -10
- package/bin/huicai.js +166 -73
- package/package.json +27 -8
- package/skills/ab-testing/trigger-cases.json +30 -0
- package/skills/academic-writing/trigger-cases.json +30 -0
- package/skills/accounting-ops/trigger-cases.json +30 -0
- package/skills/ai-agent/trigger-cases.json +30 -0
- package/skills/ai-aiops/trigger-cases.json +30 -0
- package/skills/ai-coding/trigger-cases.json +30 -0
- package/skills/ai-compliance/trigger-cases.json +30 -0
- package/skills/ai-eval/trigger-cases.json +30 -0
- package/skills/ai-llm-app/trigger-cases.json +30 -0
- package/skills/ai-mlops/trigger-cases.json +30 -0
- package/skills/ai-multimodal/trigger-cases.json +30 -0
- package/skills/ai-prompt/trigger-cases.json +30 -0
- package/skills/ai-rag/trigger-cases.json +30 -0
- package/skills/anomaly-detection/trigger-cases.json +30 -0
- package/skills/api-design/trigger-cases.json +31 -0
- package/skills/api-integration/trigger-cases.json +31 -0
- package/skills/arch-design/trigger-cases.json +12 -0
- package/skills/arch-diagram/SKILL.md +118 -0
- package/skills/arch-diagram/trigger-cases.json +30 -0
- package/skills/arch-distributed/trigger-cases.json +30 -0
- package/skills/arch-multitenant/trigger-cases.json +30 -0
- package/skills/audio-brief/SKILL.md +65 -0
- package/skills/audio-brief/trigger-cases.json +30 -0
- package/skills/audit-assist/trigger-cases.json +30 -0
- package/skills/audit-chain/trigger-cases.json +31 -0
- package/skills/banking-credit/trigger-cases.json +30 -0
- package/skills/brand-design/trigger-cases.json +30 -0
- package/skills/business-plan/trigger-cases.json +30 -0
- package/skills/capital-ops/trigger-cases.json +30 -0
- package/skills/cicd-pipeline/trigger-cases.json +31 -0
- package/skills/code-archaeology/SKILL.md +55 -0
- package/skills/code-archaeology/trigger-cases.json +9 -0
- package/skills/code-quality/SKILL.md +138 -0
- package/skills/code-quality/references/languages.md +107 -0
- package/skills/code-quality/scripts/__pycache__/code_battery.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_check.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_check.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_csharp.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_csharp.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_fix.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_fix.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_java.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_java.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_jsts.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_jsts.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_lens.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_lens.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_python.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_python.cpython-313.pyc +0 -0
- package/skills/code-quality/scripts/__pycache__/code_testplan.cpython-312.pyc +0 -0
- package/skills/code-quality/scripts/code_battery.py +1072 -0
- package/skills/code-quality/scripts/code_check.py +1269 -0
- package/skills/code-quality/scripts/code_csharp.py +371 -0
- package/skills/code-quality/scripts/code_fix.py +201 -0
- package/skills/code-quality/scripts/code_java.py +695 -0
- package/skills/code-quality/scripts/code_jsts.py +313 -0
- package/skills/code-quality/scripts/code_lens.py +1079 -0
- package/skills/code-quality/scripts/code_python.py +536 -0
- package/skills/code-quality/scripts/code_testplan.py +239 -0
- package/skills/code-quality/trigger-cases.json +45 -0
- package/skills/code-review/SKILL.md +24 -0
- package/skills/code-review/trigger-cases.json +35 -0
- package/skills/commit-and-pr/trigger-cases.json +31 -0
- package/skills/content-creation/trigger-cases.json +30 -0
- package/skills/corporate-governance/trigger-cases.json +30 -0
- package/skills/crawl-chain/trigger-cases.json +31 -0
- package/skills/customer-service/trigger-cases.json +30 -0
- package/skills/data-analysis/trigger-cases.json +30 -0
- package/skills/data-chain/SKILL.md +1 -1
- package/skills/data-chain/trigger-cases.json +31 -0
- package/skills/data-governance/trigger-cases.json +30 -0
- package/skills/data-report-pro/trigger-cases.json +30 -0
- package/skills/data-streaming/trigger-cases.json +30 -0
- package/skills/data-wrangling/SKILL.md +1 -1
- package/skills/data-wrangling/trigger-cases.json +30 -0
- package/skills/db-es/trigger-cases.json +30 -0
- package/skills/db-migration/trigger-cases.json +30 -0
- package/skills/db-mysql/trigger-cases.json +30 -0
- package/skills/db-postgres/trigger-cases.json +30 -0
- package/skills/db-redis/trigger-cases.json +30 -0
- package/skills/debug-root-cause/trigger-cases.json +30 -0
- package/skills/dependency-audit/SKILL.md +56 -0
- package/skills/dependency-audit/trigger-cases.json +7 -0
- package/skills/dependency-upgrade/trigger-cases.json +31 -0
- package/skills/dev-cpp/trigger-cases.json +30 -0
- package/skills/dev-cross-platform/trigger-cases.json +30 -0
- package/skills/dev-csharp/SKILL.md +23 -0
- package/skills/dev-csharp/trigger-cases.json +30 -0
- package/skills/dev-frontend/SKILL.md +19 -0
- package/skills/dev-frontend/trigger-cases.json +30 -0
- package/skills/dev-go/trigger-cases.json +30 -0
- package/skills/dev-harmony/trigger-cases.json +30 -0
- package/skills/dev-java/SKILL.md +20 -0
- package/skills/dev-java/trigger-cases.json +30 -0
- package/skills/dev-mobile/trigger-cases.json +30 -0
- package/skills/dev-node/trigger-cases.json +30 -0
- package/skills/dev-php/trigger-cases.json +30 -0
- package/skills/dev-python/SKILL.md +21 -0
- package/skills/dev-python/trigger-cases.json +30 -0
- package/skills/dev-rust/trigger-cases.json +30 -0
- package/skills/dev-toolchain/trigger-cases.json +31 -0
- package/skills/doc-chain/trigger-cases.json +31 -0
- package/skills/doc-compare/trigger-cases.json +30 -0
- package/skills/docx-author/SKILL.md +127 -25
- package/skills/docx-author/scripts/__pycache__/docx_battery.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/docx_build.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/docx_check.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/docx_layout.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/__pycache__/zh_prose.cpython-312.pyc +0 -0
- package/skills/docx-author/scripts/docx_battery.py +586 -0
- package/skills/docx-author/scripts/docx_build.py +995 -0
- package/skills/docx-author/scripts/docx_check.py +1306 -0
- package/skills/docx-author/scripts/docx_doc.py +14 -154
- package/skills/docx-author/scripts/docx_layout.py +490 -0
- package/skills/docx-author/scripts/zh_prose.py +639 -0
- package/skills/docx-author/trigger-cases.json +58 -0
- package/skills/echo-brief/SKILL.md +84 -0
- package/skills/echo-brief/references/echo-format.md +68 -0
- package/skills/echo-brief/trigger-cases.json +40 -0
- package/skills/ecommerce-ops/trigger-cases.json +30 -0
- package/skills/education-training/trigger-cases.json +30 -0
- package/skills/ehs-safety/trigger-cases.json +30 -0
- package/skills/email-writing/trigger-cases.json +30 -0
- package/skills/eng-ai/trigger-cases.json +30 -0
- package/skills/eng-architecture/trigger-cases.json +31 -0
- package/skills/eng-automation/trigger-cases.json +31 -0
- package/skills/eng-collaboration/trigger-cases.json +30 -0
- package/skills/eng-complex-env/trigger-cases.json +30 -0
- package/skills/eng-data-platform/trigger-cases.json +31 -0
- package/skills/eng-database/trigger-cases.json +31 -0
- package/skills/eng-develop/trigger-cases.json +30 -0
- package/skills/eng-docs/SKILL.md +24 -0
- package/skills/eng-docs/trigger-cases.json +30 -0
- package/skills/eng-efficiency/trigger-cases.json +30 -0
- package/skills/eng-infra/trigger-cases.json +30 -0
- package/skills/eng-integration/trigger-cases.json +31 -0
- package/skills/eng-legacy/trigger-cases.json +31 -0
- package/skills/eng-observability/trigger-cases.json +31 -0
- package/skills/eng-ops/trigger-cases.json +31 -0
- package/skills/eng-performance/trigger-cases.json +31 -0
- package/skills/eng-planning/trigger-cases.json +31 -0
- package/skills/eng-quality/SKILL.md +8 -0
- package/skills/eng-quality/trigger-cases.json +31 -0
- package/skills/eng-release/trigger-cases.json +31 -0
- package/skills/eng-reliability/trigger-cases.json +31 -0
- package/skills/eng-requirements/trigger-cases.json +12 -0
- package/skills/eng-research/trigger-cases.json +30 -0
- package/skills/eng-security/trigger-cases.json +31 -0
- package/skills/eng-ux/trigger-cases.json +30 -0
- package/skills/engineering-chain/trigger-cases.json +30 -0
- package/skills/env-offline/trigger-cases.json +31 -0
- package/skills/env-private-deploy/trigger-cases.json +31 -0
- package/skills/env-xinchuang/trigger-cases.json +31 -0
- package/skills/equipment-tpm/trigger-cases.json +30 -0
- package/skills/esg-report/trigger-cases.json +30 -0
- package/skills/event-management/trigger-cases.json +30 -0
- package/skills/excel-analysis-chain/SKILL.md +17 -4
- package/skills/excel-analysis-chain/trigger-cases.json +31 -0
- package/skills/explain-codebase/trigger-cases.json +11 -0
- package/skills/file-ingest/trigger-cases.json +30 -0
- package/skills/finance-analysis/trigger-cases.json +31 -0
- package/skills/finance-chain/trigger-cases.json +31 -0
- package/skills/financial-modeling/trigger-cases.json +31 -0
- package/skills/find-simplifications/SKILL.md +43 -0
- package/skills/find-simplifications/trigger-cases.json +23 -0
- package/skills/foreign-trade/trigger-cases.json +30 -0
- package/skills/funnel-cohort/trigger-cases.json +30 -0
- package/skills/gov-document/trigger-cases.json +30 -0
- package/skills/gui-change-evidence/SKILL.md +47 -0
- package/skills/gui-change-evidence/trigger-cases.json +23 -0
- package/skills/hr-chain/trigger-cases.json +31 -0
- package/skills/hr-operations/trigger-cases.json +30 -0
- package/skills/info-disclosure/trigger-cases.json +31 -0
- package/skills/infra-gateway/trigger-cases.json +31 -0
- package/skills/infra-k8s/trigger-cases.json +31 -0
- package/skills/infra-mq/trigger-cases.json +30 -0
- package/skills/insurance-advisory/trigger-cases.json +30 -0
- package/skills/internal-audit/trigger-cases.json +30 -0
- package/skills/ip-management/trigger-cases.json +31 -0
- package/skills/ipo-listing/trigger-cases.json +31 -0
- package/skills/it-audit/trigger-cases.json +31 -0
- package/skills/itsm-ops/trigger-cases.json +31 -0
- package/skills/knowledge-sop/trigger-cases.json +31 -0
- package/skills/legal-chain/trigger-cases.json +31 -0
- package/skills/legal-contract/trigger-cases.json +30 -0
- package/skills/litigation-support/trigger-cases.json +31 -0
- package/skills/logistics-warehouse/trigger-cases.json +30 -0
- package/skills/long-doc-analysis/trigger-cases.json +31 -0
- package/skills/management-accounting/trigger-cases.json +30 -0
- package/skills/manufacturing-chain/trigger-cases.json +31 -0
- package/skills/manufacturing-quality/trigger-cases.json +30 -0
- package/skills/marketing-analytics/trigger-cases.json +31 -0
- package/skills/marketing-chain/trigger-cases.json +31 -0
- package/skills/meeting-minutes/trigger-cases.json +30 -0
- package/skills/metrics-system/trigger-cases.json +31 -0
- package/skills/negotiation-prep/trigger-cases.json +30 -0
- package/skills/obs-prometheus/trigger-cases.json +31 -0
- package/skills/office-automation/trigger-cases.json +31 -0
- package/skills/okr-review/trigger-cases.json +30 -0
- package/skills/ops-fleet/trigger-cases.json +31 -0
- package/skills/ops-linux/trigger-cases.json +31 -0
- package/skills/optimization-solver/trigger-cases.json +30 -0
- package/skills/patent-disclosure/SKILL.md +105 -0
- package/skills/patent-disclosure/references/figures.md +110 -0
- package/skills/patent-disclosure/references/outline.md +162 -0
- package/skills/patent-disclosure/scripts/patent_docx.py +230 -0
- package/skills/patent-disclosure/trigger-cases.json +31 -0
- package/skills/patent-drafting/SKILL.md +108 -0
- package/skills/patent-drafting/trigger-cases.json +31 -0
- package/skills/patent-portfolio/SKILL.md +81 -0
- package/skills/patent-portfolio/trigger-cases.json +31 -0
- package/skills/pdf-toolkit/trigger-cases.json +31 -0
- package/skills/perf-optimize/trigger-cases.json +31 -0
- package/skills/pivot-crosstab/trigger-cases.json +30 -0
- package/skills/policy-analysis/trigger-cases.json +31 -0
- package/skills/portfolio-analysis/trigger-cases.json +31 -0
- package/skills/ppt-chain/SKILL.md +14 -6
- package/skills/ppt-chain/trigger-cases.json +31 -0
- package/skills/pptx-author/SKILL.md +86 -33
- package/skills/pptx-author/scripts/__pycache__/pptx_check.cpython-312.pyc +0 -0
- package/skills/pptx-author/scripts/__pycache__/pptx_deck.cpython-312.pyc +0 -0
- package/skills/pptx-author/scripts/__pycache__/pptx_layout.cpython-312.pyc +0 -0
- package/skills/pptx-author/scripts/pptx_battery.py +178 -0
- package/skills/pptx-author/scripts/pptx_build.py +119 -0
- package/skills/pptx-author/scripts/pptx_check.py +1182 -0
- package/skills/pptx-author/scripts/pptx_deck.py +736 -145
- package/skills/pptx-author/scripts/pptx_layout.py +384 -0
- package/skills/pptx-author/trigger-cases.json +15 -0
- package/skills/pr-comms/trigger-cases.json +30 -0
- package/skills/procurement-supply/trigger-cases.json +31 -0
- package/skills/product-design/trigger-cases.json +31 -0
- package/skills/production-planning/trigger-cases.json +31 -0
- package/skills/project-management/trigger-cases.json +31 -0
- package/skills/project-proposal/trigger-cases.json +31 -0
- package/skills/prose-standard/SKILL.md +53 -0
- package/skills/prose-standard/trigger-cases.json +23 -0
- package/skills/qa-api-automation/trigger-cases.json +31 -0
- package/skills/qa-mobile-automation/trigger-cases.json +31 -0
- package/skills/qa-ui-automation/trigger-cases.json +31 -0
- package/skills/quant-analysis/trigger-cases.json +31 -0
- package/skills/rag-triage/SKILL.md +64 -0
- package/skills/rag-triage/evals.json +57 -0
- package/skills/rag-triage/references/triage-playbook.md +75 -0
- package/skills/rag-triage/trigger-cases.json +31 -0
- package/skills/real-estate-property/trigger-cases.json +30 -0
- package/skills/refactor-safely/SKILL.md +1 -1
- package/skills/refactor-safely/trigger-cases.json +30 -0
- package/skills/regression-forecast/trigger-cases.json +31 -0
- package/skills/release-checklist/trigger-cases.json +31 -0
- package/skills/report-craft/SKILL.md +76 -0
- package/skills/report-craft/references/feasibility.md +118 -0
- package/skills/report-craft/references/review-checklist.md +51 -0
- package/skills/report-craft/references/visuals.md +114 -0
- package/skills/report-craft/references/writing.md +80 -0
- package/skills/report-craft/scripts/__pycache__/chart_render.cpython-312.pyc +0 -0
- package/skills/report-craft/scripts/__pycache__/fin_model.cpython-312.pyc +0 -0
- package/skills/report-craft/scripts/__pycache__/project_facts.cpython-312.pyc +0 -0
- package/skills/report-craft/scripts/chart_render.py +1222 -0
- package/skills/report-craft/scripts/fin_model.py +602 -0
- package/skills/report-craft/scripts/project_facts.py +580 -0
- package/skills/report-craft/scripts/report_battery.py +349 -0
- package/skills/report-craft/trigger-cases.json +15 -0
- package/skills/retail-store-ops/trigger-cases.json +30 -0
- package/skills/risk-compliance/trigger-cases.json +31 -0
- package/skills/scope-creep/SKILL.md +45 -0
- package/skills/scope-creep/trigger-cases.json +7 -0
- package/skills/sec-auth/trigger-cases.json +31 -0
- package/skills/sec-compliance/trigger-cases.json +31 -0
- package/skills/securities-chain/trigger-cases.json +31 -0
- package/skills/securities-research/trigger-cases.json +31 -0
- package/skills/security-audit/trigger-cases.json +31 -0
- package/skills/slides-html/SKILL.md +25 -10
- package/skills/slides-html/trigger-cases.json +11 -0
- package/skills/sql-analysis/SKILL.md +110 -0
- package/skills/sql-analysis/trigger-cases.json +34 -0
- package/skills/sql-tuning/trigger-cases.json +31 -0
- package/skills/statistical-testing/trigger-cases.json +31 -0
- package/skills/strategy-planning/trigger-cases.json +30 -0
- package/skills/supply-chain/trigger-cases.json +31 -0
- package/skills/tax-compliance/trigger-cases.json +30 -0
- package/skills/tech-doc/SKILL.md +262 -0
- package/skills/tech-doc/scripts/__pycache__/archive_battery.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/archive_build.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/archive_check.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/archive_spec.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/__pycache__/doc_templates.cpython-312.pyc +0 -0
- package/skills/tech-doc/scripts/archive_battery.py +860 -0
- package/skills/tech-doc/scripts/archive_build.py +599 -0
- package/skills/tech-doc/scripts/archive_check.py +1307 -0
- package/skills/tech-doc/scripts/archive_spec.py +499 -0
- package/skills/tech-doc/scripts/doc_templates.py +624 -0
- package/skills/tech-doc/trigger-cases.json +57 -0
- package/skills/tech-research/trigger-cases.json +31 -0
- package/skills/tender-bidding/trigger-cases.json +31 -0
- package/skills/translation-pro/trigger-cases.json +30 -0
- package/skills/treasury-mgmt/trigger-cases.json +31 -0
- package/skills/trim-cot-leakage/SKILL.md +58 -0
- package/skills/trim-cot-leakage/trigger-cases.json +23 -0
- package/skills/web-craft/SKILL.md +103 -0
- package/skills/web-craft/references/craft-checklist.md +75 -0
- package/skills/web-craft/references/design-direction.md +122 -0
- package/skills/web-craft/references/h5-mobile.md +100 -0
- package/skills/web-craft/references/motion.md +136 -0
- package/skills/web-craft/references/recipes.md +74 -0
- package/skills/web-craft/templates/wedding-invitation.html +1180 -0
- package/skills/web-craft/trigger-cases.json +14 -0
- package/skills/web-scraping/trigger-cases.json +34 -0
- package/skills/web-search/SKILL.md +11 -10
- package/skills/web-search/trigger-cases.json +31 -0
- package/skills/weekly-report/SKILL.md +134 -0
- package/skills/weekly-report/trigger-cases.json +11 -0
- package/skills/write-tests/trigger-cases.json +31 -0
- package/skills/xlsx-analysis/SKILL.md +143 -77
- package/skills/xlsx-analysis/scripts/__pycache__/data_profile.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_build.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_check.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_layout.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/__pycache__/xlsx_toolkit.cpython-312.pyc +0 -0
- package/skills/xlsx-analysis/scripts/data_profile.py +391 -0
- package/skills/xlsx-analysis/scripts/xlsx_battery.py +389 -0
- package/skills/xlsx-analysis/scripts/xlsx_build.py +522 -0
- package/skills/xlsx-analysis/scripts/xlsx_check.py +924 -0
- package/skills/xlsx-analysis/scripts/xlsx_layout.py +235 -0
- package/skills/xlsx-analysis/scripts/xlsx_style.py +28 -66
- package/skills/xlsx-analysis/scripts/xlsx_toolkit.py +61 -5
- package/skills/xlsx-analysis/trigger-cases.json +59 -0
- package/squads/hc-defense.md +47 -0
- package/squads/hc-rdarchive.md +110 -0
- package/squads/hc-redteam.md +50 -0
- package/squads/hc-weekly.md +125 -0
- package/src/account.js +1 -0
- package/src/acp.js +1 -0
- package/src/advisor.js +1 -1
- package/src/agent.js +1 -1
- package/src/api.js +1 -1
- package/src/archaeology.js +1 -0
- package/src/ask-ui.js +1 -0
- package/src/assets-import.js +1 -1
- package/src/autofix.js +1 -1
- package/src/automation-tools.js +1 -0
- package/src/automation.js +1 -1
- package/src/autorun.js +1 -1
- package/src/banner.js +1 -1
- package/src/capability-probe.js +1 -0
- package/src/checkpoints.js +1 -1
- package/src/code-tools.js +1 -0
- package/src/codeindex.js +1 -1
- package/src/codemode.js +1 -0
- package/src/command-bridge.js +1 -0
- package/src/command-ui.js +1 -0
- package/src/commands.js +1 -1
- package/src/compaction.js +1 -1
- package/src/computer.js +1 -0
- package/src/config.js +1 -1
- package/src/consult.js +1 -1
- package/src/context-report.js +1 -1
- package/src/context-window.js +1 -0
- package/src/context.js +1 -1
- package/src/crew.js +1 -0
- package/src/crush.js +1 -0
- package/src/daemon.js +1 -1
- package/src/decisions.js +1 -1
- package/src/depaudit.js +1 -0
- package/src/device.js +1 -1
- package/src/diagram-draw.js +1 -0
- package/src/diagram-layouts.js +1 -0
- package/src/diagram-raster.js +1 -0
- package/src/diagram.js +1 -0
- package/src/dictation.js +1 -0
- package/src/diffview.js +1 -1
- package/src/doctor.js +1 -1
- package/src/docx-tools.js +1 -0
- package/src/errkind.js +1 -0
- package/src/evidence.js +1 -0
- package/src/executors.js +1 -1
- package/src/expert-catalog.js +1 -1
- package/src/experts-store.js +1 -1
- package/src/experts.js +1 -1
- package/src/external-agents.js +1 -0
- package/src/forks.js +1 -1
- package/src/fs-observe.js +1 -0
- package/src/gitflow.js +1 -1
- package/src/goalround.js +1 -0
- package/src/hooks.js +1 -1
- package/src/input.js +1 -1
- package/src/insights.js +1 -1
- package/src/jobs.js +1 -0
- package/src/kbsync.js +1 -1
- package/src/lsp.js +1 -0
- package/src/mcp-apps.js +1 -0
- package/src/mcp.js +1 -1
- package/src/memory.js +1 -1
- package/src/notify.js +1 -0
- package/src/permissions.js +1 -1
- package/src/plan-limits.js +1 -0
- package/src/policy.js +1 -0
- package/src/pptx-tools.js +1 -0
- package/src/presence.js +1 -0
- package/src/privatedir.js +1 -0
- package/src/pyruntime.js +1 -1
- package/src/radar.js +1 -0
- package/src/render.js +1 -1
- package/src/repl.js +1 -1
- package/src/report-tools.js +1 -0
- package/src/routing.js +1 -0
- package/src/sandbox-probe.js +1 -0
- package/src/sandbox-win-launcher.mjs +156 -0
- package/src/sandbox.js +1 -0
- package/src/scan.js +1 -1
- package/src/schedule.js +1 -1
- package/src/scopecreep.js +1 -0
- package/src/sdk.js +1 -0
- package/src/selection.js +1 -0
- package/src/session-events.js +1 -0
- package/src/session.js +1 -1
- package/src/sessionindex.js +1 -0
- package/src/sessionlog.js +1 -0
- package/src/skill-catalog.js +1 -0
- package/src/skill-lint.js +1 -0
- package/src/skill-optimize.js +1 -0
- package/src/skill-scan.js +1 -0
- package/src/skills.js +1 -1
- package/src/spill.js +1 -0
- package/src/squad.js +1 -1
- package/src/subagent.js +1 -1
- package/src/surface-state.js +1 -0
- package/src/tapd.js +1 -0
- package/src/terminal-select.js +1 -0
- package/src/terminal.js +1 -0
- package/src/test-runner.js +1 -0
- package/src/todo.js +1 -1
- package/src/toolpipe.js +1 -0
- package/src/tools.js +1 -1
- package/src/toon.js +1 -0
- package/src/transcript.js +1 -1
- package/src/tui/app.js +1 -1
- package/src/tui/command-menu.js +1 -0
- package/src/tui/progress.js +1 -0
- package/src/tui/scroll.js +1 -0
- package/src/tui/welcome.js +1 -0
- package/src/tui/workbench.js +1 -0
- package/src/ui-spec.js +1 -0
- package/src/uitree.js +1 -0
- package/src/uninstall.js +1 -1
- package/src/vision.js +1 -0
- package/src/visual.js +1 -0
- package/src/voice-form.js +1 -0
- package/src/voice.js +1 -0
- package/src/watch.js +1 -1
- package/src/web-audit.js +1 -0
- package/src/web-cdp.js +1 -0
- package/src/web-inspect.js +1 -0
- package/src/websearch.js +1 -0
- package/src/weekly.js +1 -0
- package/src/workflow.js +1 -0
- package/src/worklog.js +1 -0
- package/src/xlsx-tools.js +1 -0
- package/ui/command-picker.js +79 -0
- package/skills/ab-testing/scripts/__pycache__/ab_test.cpython-312.pyc +0 -0
- package/skills/accounting-ops/scripts/__pycache__/acct_tools.cpython-312.pyc +0 -0
- package/skills/anomaly-detection/scripts/__pycache__/anomaly.cpython-312.pyc +0 -0
- package/skills/audit-assist/scripts/__pycache__/audit_sampling.cpython-312.pyc +0 -0
- package/skills/banking-credit/scripts/__pycache__/credit_metrics.cpython-312.pyc +0 -0
- package/skills/data-report-pro/scripts/__pycache__/bigdata.cpython-312.pyc +0 -0
- package/skills/data-wrangling/scripts/__pycache__/join_tools.cpython-312.pyc +0 -0
- package/skills/ecommerce-ops/scripts/__pycache__/gmv_decompose.cpython-312.pyc +0 -0
- package/skills/funnel-cohort/scripts/__pycache__/funnel.cpython-312.pyc +0 -0
- package/skills/management-accounting/scripts/__pycache__/costing.cpython-312.pyc +0 -0
- package/skills/manufacturing-quality/scripts/__pycache__/spc.cpython-312.pyc +0 -0
- package/skills/marketing-analytics/scripts/__pycache__/rfm.cpython-312.pyc +0 -0
- package/skills/optimization-solver/scripts/__pycache__/solver.cpython-312.pyc +0 -0
- package/skills/pivot-crosstab/scripts/__pycache__/pivot_tools.cpython-312.pyc +0 -0
- package/skills/portfolio-analysis/scripts/__pycache__/portfolio.cpython-312.pyc +0 -0
- package/skills/procurement-supply/scripts/__pycache__/supply.cpython-312.pyc +0 -0
- package/skills/production-planning/scripts/__pycache__/mrp_capacity.cpython-312.pyc +0 -0
- package/skills/project-management/scripts/__pycache__/cpm.cpython-312.pyc +0 -0
- package/skills/quant-analysis/scripts/__pycache__/quant.cpython-312.pyc +0 -0
- package/skills/real-estate-property/scripts/__pycache__/property_calc.cpython-312.pyc +0 -0
- package/skills/regression-forecast/scripts/__pycache__/regress.cpython-312.pyc +0 -0
- package/skills/securities-research/scripts/__pycache__/valuation.cpython-312.pyc +0 -0
- package/skills/statistical-testing/scripts/__pycache__/stat_tests.cpython-312.pyc +0 -0
- package/skills/treasury-mgmt/scripts/__pycache__/cashflow_forecast.cpython-312.pyc +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "esg-report",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "写一份 ESG 可持续发展报告",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "碳盘查 Scope1 2 3 怎么核算",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "评级问卷怎么应答,重要性议题矩阵怎么做",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一份财务年报解读",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "写一份安全生产台账",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "event-management",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "办一场发布会,策划案和预算怎么做",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "年会展会执行手册和应急预案",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "发布会活动复盘和执行手册",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次培训课程设计",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "写一份会议纪要",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: excel-analysis-chain
|
|
3
|
-
description: Excel 与数据分析技能链总控(接入→清洗→透视→统计→建模→优化→可视化全链、19
|
|
3
|
+
description: Excel 与数据分析技能链总控(接入→清洗→透视→统计→建模→优化→可视化全链、19 项数据能力路由、原始数据到洞察/自动化报表流/精细化运营三条端到端工作流)。当手上已有表格或明细数据要动手做分析("从一堆表做出经营看板""这份数据能挖出什么""帮我透视一下""几十万行 Excel 卡死了")时载入。
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ version: 1.0.0
|
|
|
14
14
|
| # | 能力(Excel 里叫什么) | 技能 |
|
|
15
15
|
|---|---|---|
|
|
16
16
|
| 1 | 数据清洗与规范化 | **data-wrangling** |
|
|
17
|
-
| 2 | 多表关联与匹配(VLOOKUP/INDEX-MATCH) | **data-wrangling** |
|
|
17
|
+
| 2 | 多表关联与匹配(VLOOKUP/INDEX-MATCH) | **data-wrangling**;表大或关联多张改走 **sql-analysis** |
|
|
18
18
|
| 3 | 维度透视与交叉分析(数据透视表) | **pivot-crosstab** |
|
|
19
19
|
| 4 | 趋势与对比分析(环比同比) | pivot-crosstab + data-analysis |
|
|
20
20
|
| 5 | 用户与产品精细化运营(分类分层 RFM) | marketing-analytics + **funnel-cohort** |
|
|
@@ -30,7 +30,7 @@ version: 1.0.0
|
|
|
30
30
|
| 15 | 非线性与复杂运筹优化 | **optimization-solver** |
|
|
31
31
|
| 16 | 假设分析与决策模拟(规划求解 What-if) | **optimization-solver** + financial-modeling(情景) |
|
|
32
32
|
| 17 | 自动化报表与数据流动 | office-automation + xlsx-analysis |
|
|
33
|
-
| 18 | 大型复杂报表(百万行/勾稽对账) | **data-report-pro** |
|
|
33
|
+
| 18 | 大型复杂报表(百万行/勾稽对账) | **data-report-pro** + **sql-analysis**(几十万行以上、多表 join:DuckDB 直接对文件跑 SQL,不落库) |
|
|
34
34
|
| 19 | 真正融合 Python 的高阶数据科学 | 上述脚本组合 + packages 装 sklearn/statsmodels 按需 |
|
|
35
35
|
|
|
36
36
|
## 端到端工作流
|
|
@@ -44,7 +44,7 @@ pivot-crosstab 多维透视)→ 检验(statistical-testing:差异真假 + an
|
|
|
44
44
|
|
|
45
45
|
### ② 自动化报表流链(周期常态)
|
|
46
46
|
数据源约定(落库目录/接口)→ 清洗管道(data-wrangling 固化)→ 指标计算
|
|
47
|
-
(pivot-crosstab + metrics-system 驱动树)→ 报表生成(xlsx-analysis
|
|
47
|
+
(pivot-crosstab + metrics-system 驱动树)→ 报表生成(xlsx-analysis 的 create_sheet:合计走公式、列宽先量后画 + 图)→
|
|
48
48
|
**Dashboard**(html 交互看板:内置浏览器可看,或经营仪表盘 slides-html)→
|
|
49
49
|
分发(office-automation 例程:定时出报表+异常预警+OS 通知)——**一次搭建,长期自动跑**。
|
|
50
50
|
|
|
@@ -66,6 +66,19 @@ pivot-crosstab 多维透视)→ 检验(statistical-testing:差异真假 + an
|
|
|
66
66
|
| 图表 | data-analysis(中文字体规范) |
|
|
67
67
|
一句话描述你在 Excel 里想做什么,系统自动路由到对应能力——**不需要学新软件**。
|
|
68
68
|
|
|
69
|
+
## 两条必经的闸(放在链的两端,不是可选项)
|
|
70
|
+
|
|
71
|
+
链再长,头尾这两步跳不得——它们治的是**不报错、只把数字算错**的那类问题:
|
|
72
|
+
|
|
73
|
+
- **入口闸:动手算之前先 `xlsx_inspect(path, profile=true)`。**
|
|
74
|
+
读进来的东西不是你以为的东西,是数据分析出错误答案的头号原因:金额是文本(SUM 得 0)、
|
|
75
|
+
编号被读成数字(前导零没了)、明细里混着「合计」行(一汇总就翻倍)、
|
|
76
|
+
两个「北京」差一个空格(分组分成两组)。这一步 10 秒,省的是整条链重算。
|
|
77
|
+
- **出口闸:报表用 `create_sheet` 产出,交付前 `xlsx_inspect` 必修清零。**
|
|
78
|
+
引擎把合计写成 `SUBTOTAL` 公式而不是算好的常量——常量合计在下游改了明细后不会更新,
|
|
79
|
+
也不报错;列宽按内容量,数字列不够宽会显示成 ####;编号列锁文本防前导零丢失。
|
|
80
|
+
详见 [xlsx-analysis](../xlsx-analysis/SKILL.md)。
|
|
81
|
+
|
|
69
82
|
## 使用纪律
|
|
70
83
|
|
|
71
84
|
链上数据同源、可复算(中间表落盘、口径进 data-governance 字典);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "excel-analysis-chain",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "从一堆表做出经营看板,整条链怎么走",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "这份数据能挖出什么,先透视一下",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "几十万行 Excel 卡死了,怎么办",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "设计一套指标口径体系",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "写一段数据库的聚合查询",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "explain-codebase",
|
|
3
|
+
"purpose": "触发行为规格。与 code-review 是易混对:本技能是「讲清楚这块代码在干嘛」,code-review 是「挑毛病」。",
|
|
4
|
+
"cases": [
|
|
5
|
+
{ "id": "how-it-runs", "prompt": "这个项目怎么跑起来的,从哪看起", "shouldTrigger": true },
|
|
6
|
+
{ "id": "explain-logic", "prompt": "这段代码是干嘛的,帮我理解一下逻辑", "shouldTrigger": true },
|
|
7
|
+
{ "id": "arch-what", "prompt": "这个陌生代码库的架构是什么样的", "shouldTrigger": true },
|
|
8
|
+
{ "id": "near-miss-review", "prompt": "提交前自查一下质量,重点看边界和安全", "shouldTrigger": false },
|
|
9
|
+
{ "id": "near-miss-write", "prompt": "帮我给这个模块补一批单元测试", "shouldTrigger": false }
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "file-ingest",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "读一下这个文件,看看里面是什么",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "这是什么文件,扩展名不对劲,帮我提取内容",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "OFD 电子发票和扫描件怎么读",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "把这批数据做成透视表",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "写一份 Word 报告",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "finance-analysis",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "帮我解读一下财报,三表勾稽对不对",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "做杜邦分解和比率分析",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "经营分析和预算执行怎么看,现金流质量如何",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次财务预测建模",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "写一份融资商业计划书",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "finance-chain",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "财务诉求跨了好几个环节,先看看用哪个技能",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "帮我把月结做完,整条链怎么走",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "从预测到融资,端到端怎么排",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次账龄分析和催款",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "写一份税务申报表",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "financial-modeling",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "做个三年财务模型,驱动式怎么搭",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "收入预测和预算模型怎么做",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "情景分析和敏感性测算,单位经济模型",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "解读一下这份财报的三表勾稽",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "写一份投资尽调清单",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: find-simplifications
|
|
3
|
+
description: 在一份代码里找出"删掉反而更好"的东西——没有生产消费者的接口、只有测试在用的行为、两处表示同一事实、手写了依赖已经提供的功能。当用户说"看看有什么可以简化的""这块是不是过度设计了""帮我瘦身/清理冗余",或做重构前的摸底时使用。判据是证据不是直觉。
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 找简化候选
|
|
8
|
+
|
|
9
|
+
目标不是「让代码更漂亮」,是**删掉、折叠或降级某个真实存在的东西**,并拿出它「维持的代价大于买到的价值」的证据。
|
|
10
|
+
宁可给三条证据扎实的候选,也不要给二十条凭感觉的猜测。
|
|
11
|
+
|
|
12
|
+
## 强候选的判据(命中即值得写下来)
|
|
13
|
+
|
|
14
|
+
1. **没有生产消费者**:某个公开方法/事件/配置项/注册回调/辅助函数,全仓搜索只有定义和测试。
|
|
15
|
+
2. **只有测试在用**:测试是唯一消费者,且它钉住的行为不承载任何产品语义。
|
|
16
|
+
3. **同一事实两处表示**:两个字段/两份状态描述同一件事,必须靠人手动保持同步。
|
|
17
|
+
4. **无人实现的缝**:一个接口要求所有实现都提供某方法,但没有任何调用方用它。
|
|
18
|
+
5. **投机式通用性**:为「将来可能需要」造的多级抽象、插件点、策略表,至今只有一个实现,
|
|
19
|
+
且说不出哪位使用者在等它。
|
|
20
|
+
6. **手写了依赖已提供的**:外部成熟库或 Node 内置已经做了同一件事,换过去能**连实现带专属测试一起删掉**。
|
|
21
|
+
7. **只为保护废接口而存在的**:某条不变式/回滚路径/特例分支,唯一的作用是伺候上面那些没人用的东西。
|
|
22
|
+
8. **行为可以略有不同**:简化后语义变了一点,但新语义同样合理,而且**更好解释**。
|
|
23
|
+
|
|
24
|
+
## 弱候选(别浪费评审时间)
|
|
25
|
+
|
|
26
|
+
- 「这个函数有点长」「命名可以更好」——那是风格,不是简化。
|
|
27
|
+
- 「两段代码看起来像」——先确认它们**表达的是同一个概念**;形似而义不同的合并是负债。
|
|
28
|
+
- 「这层抽象似乎多余」——找出它的消费者再说,找不到才算证据。
|
|
29
|
+
|
|
30
|
+
## 刻意保留的东西(本仓约定,别当冗余删)
|
|
31
|
+
|
|
32
|
+
- **反例式论证注释**(「若只做 X,就挡不住 Y」)——它是设计理由,不是废话。
|
|
33
|
+
判断口径见 [trim-cot-leakage](../trim-cot-leakage/SKILL.md)。
|
|
34
|
+
- **四端同源的重复**:`huicai-cli/src` 是权威源,三个宿主各有一份提交进 Git 的副本。
|
|
35
|
+
那不是重复代码,是分发产物,由 `scripts/sync-core.cjs` 维护、由闸校验。
|
|
36
|
+
- **降级路径与「如实报不可用」分支**:看起来像冗余,实际是「绝不假装保护生效」这条纪律的实现。
|
|
37
|
+
|
|
38
|
+
## 用法
|
|
39
|
+
|
|
40
|
+
1. 先摸清范围与依赖:`grep`/`search_code` 找每个候选的全部引用,**把测试与生产分开数**。
|
|
41
|
+
2. 每条候选写成:**是什么 → 证据(引用位置与计数)→ 删掉之后会怎样 → 风险**。
|
|
42
|
+
3. 有疑问的标「需确认」,不要自作主张删。
|
|
43
|
+
4. 真要动手时:一次只删一件事,删完立刻跑测试;测试因此变红,先判断是「测试在保护废接口」还是「真删错了」。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "find-simplifications",
|
|
3
|
+
"purpose": "触发行为规格。负样例分两类:不同词汇的近邻走词法层(CI 跑),同词汇不同意图的近邻标 lexical:false 归行为层。",
|
|
4
|
+
"cases": [
|
|
5
|
+
{ "id": "what-can-be-removed", "prompt": "看看这个模块有什么可以简化的,哪些东西其实没人用", "shouldTrigger": true },
|
|
6
|
+
{ "id": "over-engineered", "prompt": "这块是不是过度设计了,抽象了半天只有一个实现", "shouldTrigger": true },
|
|
7
|
+
{ "id": "slim-down", "prompt": "帮我给这个包瘦身,清理掉冗余的接口和死配置", "shouldTrigger": true },
|
|
8
|
+
{ "id": "dead-surface", "prompt": "找一下哪些公开方法只有测试在调,生产代码里根本没人用", "shouldTrigger": true },
|
|
9
|
+
{
|
|
10
|
+
"id": "near-miss-perf",
|
|
11
|
+
"prompt": "这个接口太慢了,帮我优化一下响应时间",
|
|
12
|
+
"shouldTrigger": false,
|
|
13
|
+
"note": "词汇不重合(响应时间/慢 vs 简化/冗余/没人用),词法层能分开。"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "near-miss-refactor",
|
|
17
|
+
"prompt": "帮我重构一下这段代码,让它更好读",
|
|
18
|
+
"shouldTrigger": false,
|
|
19
|
+
"lexical": false,
|
|
20
|
+
"note": "与「简化」共用「这段代码/重构」——同词汇不同意图(改写以便读 vs 删掉多余的东西),词法层分不开,归行为层(应落到 refactor-safely)。"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "foreign-trade",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "做外贸单证,箱单发票怎么审",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "信用证条款审查和 Incoterms 责任划分",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "出口退税资料和跨境开发信怎么写",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次国内物流运费对账",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "写一份采购比价方案",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "funnel-cohort",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "转化漏斗流失在哪,帮我定位",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "做个 cohort 同期群留存矩阵",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "复购和用户路径流向怎么看",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次 AB 实验的显著性检验",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "写一份用户访谈提纲",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "gov-document",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "帮我写个请示和通知",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "红头文件版式怎么排,上报材料怎么写",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "写个函和会议决定,公文文种怎么选",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "写一份 Word 项目方案",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "做一份对外新闻稿",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gui-change-evidence
|
|
3
|
+
description: 给界面改动取证:改完面板/页面/样式之后,在真实环境里跑一遍并截图或录屏,证明它真的能用。当用户说"截个图证明一下能用""录一段演示走一遍交互""深色模式下也截一张看看样式有没有糊""界面验证要覆盖哪几个状态才算数"时使用。要覆盖的状态包括空数据、加载中、出错三态与浅色深色两个主题;禁止用假数据或桩数据凑证据。
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 界面改动的证据纪律
|
|
8
|
+
|
|
9
|
+
一句话:**改了用户看得见的东西,就要拿出它在真实环境里能用的证据;描述不算证据。**
|
|
10
|
+
|
|
11
|
+
## 为什么值得较真
|
|
12
|
+
|
|
13
|
+
界面缺陷有个特点:**单元测试全绿、代码读起来也对,但打开就是不对**——
|
|
14
|
+
组件没挂上、样式在深色模式下糊了、状态没刷新、空数据时一片空白。
|
|
15
|
+
这类问题只有「真的打开看一眼」能发现,而「我改好了」这句话发现不了。
|
|
16
|
+
|
|
17
|
+
## 三条硬纪律
|
|
18
|
+
|
|
19
|
+
1. **真环境、真数据、真模型轮次。**
|
|
20
|
+
不能用固定桩数据、不能注入假事件、不能只跑组件单测截个组件的图。
|
|
21
|
+
要证明的是「用户走这条路会看到什么」,任何替身都让证据失效。
|
|
22
|
+
环境确实起不来(缺凭据、依赖没装),**如实说明这一限制**,不要拿桩数据顶上。
|
|
23
|
+
|
|
24
|
+
2. **说清这份证据到底证明了什么。**
|
|
25
|
+
贴图旁边写明:跑的是哪个分支/哪次改动、什么环境、有没有真实模型参与、
|
|
26
|
+
哪些条件是特意设置的。读者据此判断这份证据的分量。
|
|
27
|
+
|
|
28
|
+
3. **录制与发布分开。**
|
|
29
|
+
录制只产出本地文件,不改动任何远端状态。要把它贴到哪里,是之后单独的一步。
|
|
30
|
+
|
|
31
|
+
## 怎么做(惠彩)
|
|
32
|
+
|
|
33
|
+
1. **桌面端**:`HUICAI_CAPTURE=<场景>` 可一键自检截图;`screenshot/` 目录放产出。
|
|
34
|
+
2. **要覆盖的状态**,别只截「一切正常」那一张:
|
|
35
|
+
- 空数据 / 加载中 / 出错三态;
|
|
36
|
+
- 浅色与深色两个主题(本仓颜色一律走 `--wt-*` 令牌,深色出问题往往就在漏了令牌的地方);
|
|
37
|
+
- 有内容溢出时的滚动与截断。
|
|
38
|
+
3. **动态交互**(多步流程、拖拽、实时刷新)截图说不清,就录一小段:
|
|
39
|
+
帧要按**状态变化**取,不要按固定间隔取——否则十帧里九帧一模一样。
|
|
40
|
+
4. **收尾时把证据和改动放在一起**:改了什么、证据在哪、覆盖了哪几个状态、哪些没覆盖。
|
|
41
|
+
|
|
42
|
+
## 反面清单
|
|
43
|
+
|
|
44
|
+
- 只贴一张「正常态」截图就说验证过了。
|
|
45
|
+
- 用假数据截图,却不说明那是假数据。
|
|
46
|
+
- 录了一段但没说是哪个版本、什么环境。
|
|
47
|
+
- 界面改了却只跑了单元测试——单测绿和界面能用是两件事。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "gui-change-evidence",
|
|
3
|
+
"purpose": "触发行为规格。负样例分两类:不同词汇的近邻走词法层(CI 跑),同词汇不同意图的近邻标 lexical:false 归行为层。",
|
|
4
|
+
"cases": [
|
|
5
|
+
{ "id": "screenshot-proof", "prompt": "界面改完了,截个图证明一下真的能用", "shouldTrigger": true },
|
|
6
|
+
{ "id": "record-demo", "prompt": "录一段演示,把这个交互流程走一遍", "shouldTrigger": true },
|
|
7
|
+
{ "id": "dark-mode-check", "prompt": "这个面板改了样式,深色模式下也截一张看看有没有糊", "shouldTrigger": true },
|
|
8
|
+
{ "id": "which-states", "prompt": "界面验证要覆盖哪几个状态才算数", "shouldTrigger": true },
|
|
9
|
+
{
|
|
10
|
+
"id": "near-miss-design",
|
|
11
|
+
"prompt": "帮我设计一个新的仪表盘布局",
|
|
12
|
+
"shouldTrigger": false,
|
|
13
|
+
"note": "词汇不重合(设计/布局 vs 截图/录屏/证据),词法层能分开。"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "near-miss-ui-build",
|
|
17
|
+
"prompt": "给这个页面加一个筛选器",
|
|
18
|
+
"shouldTrigger": false,
|
|
19
|
+
"lexical": false,
|
|
20
|
+
"note": "与「界面改动」共用「页面/界面」——同词汇不同意图(实现功能 vs 为已完成的改动取证),词法层分不开,归行为层。"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "hr-chain",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "HR 诉求跨环节,从 JD 到入职全流程怎么走",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "年度绩效整个周期,人力链怎么串",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "不确定用哪个人力技能,先看总控",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "帮我写一份 JD 和面试题",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "做一次薪酬核算",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "hr-operations",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "帮我写个 JD,再出几道面试题",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "筛一下这批简历,做评估表",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "绩效方案和 offer 辞退沟通文书怎么写",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次员工满意度调研分析",
|
|
22
|
+
"shouldTrigger": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "neg-2",
|
|
26
|
+
"prompt": "写一份培训课程大纲",
|
|
27
|
+
"shouldTrigger": false
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "info-disclosure",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "上市公司定期报告和临时公告怎么判定",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "内幕信息知情人登记怎么管",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "窗口期和减持合规提示,董秘要注意什么",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次 IPO 申报材料准备",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "写一份投资者路演材料",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "infra-gateway",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"id": "pos-1",
|
|
6
|
+
"prompt": "入口架构分层,API 网关还是服务网格",
|
|
7
|
+
"shouldTrigger": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "pos-2",
|
|
11
|
+
"prompt": "APISIX 还是 Kong,灰度路由怎么配",
|
|
12
|
+
"shouldTrigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "pos-3",
|
|
16
|
+
"prompt": "网关证书到期事故,WAF 误杀怎么处置",
|
|
17
|
+
"shouldTrigger": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "neg-1",
|
|
21
|
+
"prompt": "做一次 K8s Ingress 的排障",
|
|
22
|
+
"shouldTrigger": false,
|
|
23
|
+
"lexical": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "neg-2",
|
|
27
|
+
"prompt": "写一段限流算法的实现",
|
|
28
|
+
"shouldTrigger": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|