dsh-crwu-workbench 0.0.10
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/CHANGELOG.md +1516 -0
- package/LICENSE +26 -0
- package/README.en.md +204 -0
- package/README.md +521 -0
- package/SECURITY.md +39 -0
- package/bin/darwin-arm64/crwu +0 -0
- package/bin/darwin-arm64/dws +0 -0
- package/bin/darwin-arm64/ossutil +0 -0
- package/bin/manifest.json +82 -0
- package/bin/win32-x64/crwu.exe +0 -0
- package/bin/win32-x64/dws.exe +4 -0
- package/bin/win32-x64/ossutil.exe +0 -0
- package/common/skills/.synced.json +8 -0
- package/common/skills/crwu-dws/SKILL.md +208 -0
- package/common/skills/crwu-dws/references/00-/347/233/256/345/275/225/345/277/253/347/205/247schema.md +113 -0
- package/common/skills/crwu-dws/references/01-/345/256/241/346/240/270/344/270/213/350/275/275/344/270/216manifest/350/247/204/350/214/203.md +115 -0
- package/common/skills/crwu-dws/references/02-/347/274/223/345/255/230/344/270/216/345/205/234/345/272/225/346/237/245/346/211/276/350/247/204/350/214/203.md +119 -0
- package/common/skills/crwu-dws/scripts/test_dws_source_contract.py +493 -0
- package/common/skills/crwu-h3yun-login/SKILL.md +130 -0
- package/common/skills/crwu-h3yun-query/SKILL.md +192 -0
- package/config/crwu-workbench.yml +26 -0
- package/cordis.patch.yml +46 -0
- package/lib/client.js +10346 -0
- package/lib/index.js +11584 -0
- package/package.json +119 -0
- package/scripts/prepare.mjs +59 -0
- package/skills/README.md +26 -0
- package/skills/crwu/crwu-audit/SKILL.md +152 -0
- package/skills/crwu/crwu-audit/references/00-input-and-route-profile.md +232 -0
- package/skills/crwu/crwu-audit/references/01-report-id-resolution.md +13 -0
- package/skills/crwu/crwu-audit/references/02-scope-classification.md +25 -0
- package/skills/crwu/crwu-audit/references/03-asset-classification.md +27 -0
- package/skills/crwu/crwu-audit/references/04-business-classification.md +63 -0
- package/skills/crwu/crwu-audit/references/05-method-classification.md +66 -0
- package/skills/crwu/crwu-audit/references/06-overlay-classification.md +42 -0
- package/skills/crwu/crwu-audit/references/07-skill-registry.md +57 -0
- package/skills/crwu/crwu-audit/references/08-union-dispatch-rules.md +142 -0
- package/skills/crwu/crwu-audit/references/09-review-risk-classification.md +85 -0
- package/skills/crwu/crwu-audit/references/10-capability-gap-proposal.md +68 -0
- package/skills/crwu/crwu-audit/references/11-html-delivery-spec.md +881 -0
- package/skills/crwu/crwu-audit/references/12-leaf-common-contract.md +202 -0
- package/skills/crwu/crwu-audit/references/13-dingtalk-result-publish.md +88 -0
- package/skills/crwu/crwu-audit/references/14-orchestration-workflow.md +52 -0
- package/skills/crwu/crwu-audit/references/99-maintenance.md +62 -0
- package/skills/crwu/crwu-audit/scripts/README.md +157 -0
- package/skills/crwu/crwu-audit/scripts/audit_delivery.py +2736 -0
- package/skills/crwu/crwu-audit/scripts/audit_result.schema.json +1659 -0
- package/skills/crwu/crwu-audit/scripts/examples/audit-result.sample.json +739 -0
- package/skills/crwu/crwu-audit/scripts/fetch_review_records.py +85 -0
- package/skills/crwu/crwu-audit/scripts/media_extract.py +513 -0
- package/skills/crwu/crwu-audit/scripts/prepare_materials.py +1252 -0
- package/skills/crwu/crwu-audit/scripts/test_audit_delivery.py +1678 -0
- package/skills/crwu/crwu-audit/scripts/test_audit_multiaxis_router.py +1339 -0
- package/skills/crwu/crwu-audit/scripts/test_fetch_review_records.py +77 -0
- package/skills/crwu/crwu-audit/scripts/test_media_extract.py +332 -0
- package/skills/crwu/crwu-audit/scripts/test_prepare_materials.py +1081 -0
- package/skills/crwu/crwu-audit/template/audit-report.html +435 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-debt/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-debt/references/00-applicability.md +40 -0
- package/skills/crwu/crwu-audit-asset-debt/references/01-kb-assembly.md +41 -0
- package/skills/crwu/crwu-audit-asset-debt/references/02-review-focus.md +54 -0
- package/skills/crwu/crwu-audit-asset-debt/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/01-kb-assembly.md +35 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-asset-enterprise-value/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-equipment/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/00-applicability.md +40 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/01-kb-assembly.md +39 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/02-review-focus.md +52 -0
- package/skills/crwu/crwu-audit-asset-equipment/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-intangible/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/00-applicability.md +36 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/01-kb-assembly.md +40 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/02-review-focus.md +68 -0
- package/skills/crwu/crwu-audit-asset-intangible/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-inventory/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-inventory/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-mining-right/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/01-kb-assembly.md +35 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-asset-mining-right/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-other/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-other/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-other/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-other/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-other/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-portfolio/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-portfolio/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-realestate/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/00-applicability.md +43 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/01-kb-assembly.md +75 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/02-review-focus.md +93 -0
- package/skills/crwu/crwu-audit-asset-realestate/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/00-applicability.md +28 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/01-kb-assembly.md +31 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/02-review-focus.md +21 -0
- package/skills/crwu/crwu-audit-asset-scrap-materials/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/01-kb-assembly.md +35 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-asset-transport-equipment/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/00-applicability.md +30 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/01-kb-assembly.md +32 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/02-review-focus.md +42 -0
- package/skills/crwu/crwu-audit-biz-asset-operation/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/00-applicability.md +30 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/01-kb-assembly.md +32 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/02-review-focus.md +40 -0
- package/skills/crwu/crwu-audit-biz-consulting-review/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/00-applicability.md +41 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/01-kb-assembly.md +40 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/02-review-focus.md +64 -0
- package/skills/crwu/crwu-audit-biz-financial-reporting/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/01-kb-assembly.md +34 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/02-review-focus.md +47 -0
- package/skills/crwu/crwu-audit-biz-financing-debt/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/01-kb-assembly.md +34 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/02-review-focus.md +47 -0
- package/skills/crwu/crwu-audit-biz-investment-capital/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/00-applicability.md +30 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/01-kb-assembly.md +32 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/02-review-focus.md +40 -0
- package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-tax-history/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/00-applicability.md +29 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/01-kb-assembly.md +30 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/02-review-focus.md +33 -0
- package/skills/crwu/crwu-audit-biz-tax-history/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/SKILL.md +38 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/00-applicability.md +31 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/01-kb-assembly.md +34 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/02-review-focus.md +47 -0
- package/skills/crwu/crwu-audit-biz-transaction-disposal/references/03-common-contract.md +202 -0
- package/skills/crwu/crwu-audit-datacheck/SKILL.md +59 -0
- package/skills/crwu/crwu-audit-datacheck/references/00-KB/350/243/205/351/205/215/350/241/250.md +25 -0
- package/skills/crwu/crwu-audit-datacheck/references/01-runtime-and-check-catalog.md +139 -0
- package/skills/crwu/crwu-audit-datacheck/scripts/recalc_check.py +521 -0
- package/skills/crwu/crwu-audit-datacheck/scripts/test_recalc_check.py +419 -0
- package/skills/crwu/crwu-audit-datacheck/scripts/test_skill_self_containment.py +44 -0
- package/skills/crwu/crwu-audit-external-data/SKILL.md +73 -0
- package/skills/crwu/crwu-audit-external-data/references/00-KB/350/243/205/351/205/215/350/241/250.md +38 -0
- package/skills/crwu/crwu-audit-external-data/references/01-connector-access.md +116 -0
- package/skills/crwu/crwu-audit-external-data/references/02-verification-workflow.md +78 -0
- package/skills/crwu/crwu-audit-external-data/scripts/connector_probe.py +374 -0
- package/skills/crwu/crwu-audit-external-data/scripts/test_connector_probe.py +264 -0
- package/skills/crwu/crwu-audit-output-filter/SKILL.md +34 -0
- package/skills/crwu/crwu-audit-output-filter/references/00-applicability.md +7 -0
- package/skills/crwu/crwu-audit-output-filter/references/01-kb-assembly.md +11 -0
- package/skills/crwu/crwu-audit-output-filter/references/02-review-focus.md +25 -0
- package/skills/crwu/crwu-audit-public-general-standards/SKILL.md +46 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/00-applicability.md +41 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/01-kb-assembly.md +66 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/02-review-focus.md +111 -0
- package/skills/crwu/crwu-audit-public-general-standards/references/03-execution-contract.md +89 -0
- package/skills/crwu/crwu-dev-audit-optimize/SKILL.md +98 -0
- package/skills/crwu/crwu-dev-audit-optimize/references/00-/344/274/230/345/214/226/350/247/204/350/214/203/344/270/216/346/226/207/344/273/266/350/220/275/347/202/271.md +132 -0
- package/skills/crwu/crwu-dev-audit-optimize/references/01-/345/217/215/351/246/210/345/256/232/344/275/215/344/270/216/347/224/273/345/203/217/346/265/201/347/250/213.md +108 -0
- package/skills/crwu/crwu-dev-audit-optimize/references/02-/346/226/271/346/241/210/346/250/241/346/235/277/344/270/216/347/241/256/350/256/244/351/227/250/347/246/201.md +92 -0
- package/skills/crwu/crwu-dev-audit-optimize/references/03-AI/344/272/272/345/267/245/345/267/256/350/267/235/345/210/206/346/236/220/346/265/201/347/250/213.md +95 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/examples/gap-analysis.sample.json +116 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis.schema.json +33 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis_delivery.py +475 -0
- package/skills/crwu/crwu-dev-audit-optimize/scripts/test_gap_analysis_delivery.py +855 -0
- package/skills/crwu/crwu-dev-audit-optimize/template/NOTICE.echarts.txt +7 -0
- package/skills/crwu/crwu-dev-audit-optimize/template/echarts.min.js +45 -0
- package/skills/crwu/crwu-dev-audit-optimize/template/gap-analysis-report.html +71 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/SKILL.md +74 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/00-responsibility-and-modes.md +62 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/01-kb-source-discovery.md +89 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/02-child-skill-contract.md +99 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/03-review-item-execution-contract.md +51 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/04-registry-and-mapping-update.md +73 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/05-validation-and-delivery.md +127 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/06-live-routing-reconciliation.md +136 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/references/07-kb-skill-map.md +411 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/README.md +200 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/check_audit_skill_mappings.py +2477 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/kb_tool.py +577 -0
- package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/test_audit_skill_maintainer.py +5097 -0
- package/skills/dws/LICENSE +178 -0
- package/skills/dws/NOTICE +17 -0
- package/skills/dws/dingtalk-aisearch/SKILL.md +83 -0
- package/skills/dws/dingtalk-aisearch/references/aisearch.md +249 -0
- package/skills/dws/dingtalk-aisearch/references/intent-guide.md +15 -0
- package/skills/dws/dingtalk-aisearch/references/lite-recipes.md +31 -0
- package/skills/dws/dingtalk-aitable/SKILL.md +139 -0
- package/skills/dws/dingtalk-aitable/references/06-data-analytics.md +11 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-advperm.md +251 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-attachment.md +49 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-best-practices.md +48 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-cell-value.md +346 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-dashboard-chart.md +46 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-data-analysis-sop.md +131 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-datasource.md +272 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-error-recovery.md +128 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-export-import.md +113 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-field-properties.md +238 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-field.md +186 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-filter-sort.md +135 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-form.md +130 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-formula-guide.md +224 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-primary-doc.md +58 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-create.md +52 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-delete.md +20 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-history.md +97 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-name-key.md +47 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-query.md +120 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-share.md +54 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-stats.md +59 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-update.md +66 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-upsert.md +89 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-config.md +140 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-extras.md +195 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-types.md +95 -0
- package/skills/dws/dingtalk-aitable/references/aitable/aitable-workflow.md +384 -0
- package/skills/dws/dingtalk-aitable/references/aitable-record-ops.md +80 -0
- package/skills/dws/dingtalk-aitable/references/aitable-section.md +30 -0
- package/skills/dws/dingtalk-aitable/references/aitable.md +59 -0
- package/skills/dws/dingtalk-aitable/references/field-rules.md +17 -0
- package/skills/dws/dingtalk-aitable/references/intent-guide.md +17 -0
- package/skills/dws/dingtalk-aitable/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-aitable/references/url-patterns.md +144 -0
- package/skills/dws/dingtalk-aitable/scripts/aitable_export_via_task.py +210 -0
- package/skills/dws/dingtalk-aitable/scripts/aitable_import_via_task.py +173 -0
- package/skills/dws/dingtalk-aitable/scripts/bulk_add_fields.py +273 -0
- package/skills/dws/dingtalk-aitable/scripts/import_records.py +333 -0
- package/skills/dws/dingtalk-aitable/scripts/upload_attachment.py +190 -0
- package/skills/dws/dingtalk-calendar/SKILL.md +137 -0
- package/skills/dws/dingtalk-calendar/references/03-meeting.md +56 -0
- package/skills/dws/dingtalk-calendar/references/calendar.md +760 -0
- package/skills/dws/dingtalk-calendar/references/intent-guide.md +9 -0
- package/skills/dws/dingtalk-calendar/references/lite-recipes.md +25 -0
- package/skills/dws/dingtalk-calendar/scripts/calendar_free_slot_finder.py +199 -0
- package/skills/dws/dingtalk-calendar/scripts/calendar_schedule_meeting.py +233 -0
- package/skills/dws/dingtalk-calendar/scripts/calendar_today_agenda.py +139 -0
- package/skills/dws/dingtalk-chat/SKILL.md +127 -0
- package/skills/dws/dingtalk-chat/references/01-messaging.md +103 -0
- package/skills/dws/dingtalk-chat/references/card/callback.md +10 -0
- package/skills/dws/dingtalk-chat/references/card/create.md +27 -0
- package/skills/dws/dingtalk-chat/references/card/schema.md +14 -0
- package/skills/dws/dingtalk-chat/references/card/update.md +13 -0
- package/skills/dws/dingtalk-chat/references/chat/chat-bot.md +187 -0
- package/skills/dws/dingtalk-chat/references/chat/chat-conversation.md +165 -0
- package/skills/dws/dingtalk-chat/references/chat/group-admin.md +144 -0
- package/skills/dws/dingtalk-chat/references/chat/group-discovery.md +121 -0
- package/skills/dws/dingtalk-chat/references/chat/message-actions.md +132 -0
- package/skills/dws/dingtalk-chat/references/chat/message-media.md +76 -0
- package/skills/dws/dingtalk-chat/references/chat/message-query.md +135 -0
- package/skills/dws/dingtalk-chat/references/chat/thread.md +46 -0
- package/skills/dws/dingtalk-chat/references/chat-emoji-list.md +216 -0
- package/skills/dws/dingtalk-chat/references/chat.md +140 -0
- package/skills/dws/dingtalk-chat/references/contracts.md +70 -0
- package/skills/dws/dingtalk-chat/references/intent-guide.md +56 -0
- package/skills/dws/dingtalk-contact/SKILL.md +122 -0
- package/skills/dws/dingtalk-contact/references/08-directory.md +51 -0
- package/skills/dws/dingtalk-contact/references/contact.md +595 -0
- package/skills/dws/dingtalk-contact/references/intent-guide.md +14 -0
- package/skills/dws/dingtalk-contact/references/lite-recipes.md +30 -0
- package/skills/dws/dingtalk-contact/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-contact/scripts/contact_dept_members.py +130 -0
- package/skills/dws/dingtalk-doc/SKILL.md +112 -0
- package/skills/dws/dingtalk-doc/references/04-document.md +57 -0
- package/skills/dws/dingtalk-doc/references/contracts.md +40 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-block.md +39 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-comment.md +29 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-create.md +54 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-export.md +30 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-import.md +28 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-info.md +12 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-media.md +46 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-read.md +56 -0
- package/skills/dws/dingtalk-doc/references/doc/doc-update.md +87 -0
- package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-cookbook.md +469 -0
- package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.json +526 -0
- package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.md +711 -0
- package/skills/dws/dingtalk-doc/references/doc/style/doc-create-workflow.md +414 -0
- package/skills/dws/dingtalk-doc/references/doc/style/doc-style-guideline.md +404 -0
- package/skills/dws/dingtalk-doc/references/doc/style/doc-update-workflow.md +316 -0
- package/skills/dws/dingtalk-doc/references/doc.md +82 -0
- package/skills/dws/dingtalk-doc/references/intent-guide.md +20 -0
- package/skills/dws/dingtalk-drive/SKILL.md +128 -0
- package/skills/dws/dingtalk-drive/references/drive.md +126 -0
- package/skills/dws/dingtalk-drive/references/folder-sync.md +40 -0
- package/skills/dws/dingtalk-drive/references/intent-guide.md +22 -0
- package/skills/dws/dingtalk-drive/references/lite-recipes.md +39 -0
- package/skills/dws/dingtalk-event/SKILL.md +106 -0
- package/skills/dws/dingtalk-event/references/event-im-keys.md +54 -0
- package/skills/dws/dingtalk-event/references/event-im-lifecycle.md +35 -0
- package/skills/dws/dingtalk-event/references/event-im-operations.md +52 -0
- package/skills/dws/dingtalk-event/references/event-im-output.md +39 -0
- package/skills/dws/dingtalk-event/references/event-im.md +58 -0
- package/skills/dws/dingtalk-event/references/event-oa.md +155 -0
- package/skills/dws/dingtalk-event/references/event-todo.md +50 -0
- package/skills/dws/dingtalk-event/references/event-voip.md +69 -0
- package/skills/dws/dingtalk-mail/SKILL.md +113 -0
- package/skills/dws/dingtalk-mail/references/09-mail.md +45 -0
- package/skills/dws/dingtalk-mail/references/intent-guide.md +8 -0
- package/skills/dws/dingtalk-mail/references/lite-recipes.md +45 -0
- package/skills/dws/dingtalk-mail/references/mail.md +1889 -0
- package/skills/dws/dingtalk-mail/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-mail/scripts/mail_send_with_cc.py +122 -0
- package/skills/dws/dingtalk-mail/scripts/mail_unread_summary.py +114 -0
- package/skills/dws/dingtalk-minutes/SKILL.md +116 -0
- package/skills/dws/dingtalk-minutes/references/07-minutes.md +149 -0
- package/skills/dws/dingtalk-minutes/references/10-minutes-speaker-match.md +32 -0
- package/skills/dws/dingtalk-minutes/references/11-minutes-speaker-correct.md +40 -0
- package/skills/dws/dingtalk-minutes/references/intent-guide.md +79 -0
- package/skills/dws/dingtalk-minutes/references/lite-recipes.md +25 -0
- package/skills/dws/dingtalk-minutes/references/minutes.md +210 -0
- package/skills/dws/dingtalk-minutes/references/recipes/conventions.md +33 -0
- package/skills/dws/dingtalk-minutes/scripts/minutes_recent_summary.py +196 -0
- package/skills/dws/dingtalk-minutes/scripts/test_minutes_scripts.py +222 -0
- package/skills/dws/dingtalk-misc/SKILL.md +55 -0
- package/skills/dws/dingtalk-misc/references/05-reporting.md +29 -0
- package/skills/dws/dingtalk-misc/references/agoal.md +302 -0
- package/skills/dws/dingtalk-misc/references/attendance-intent-guide.md +7 -0
- package/skills/dws/dingtalk-misc/references/attendance-report.md +109 -0
- package/skills/dws/dingtalk-misc/references/attendance-schedule.md +115 -0
- package/skills/dws/dingtalk-misc/references/attendance-vacation.md +129 -0
- package/skills/dws/dingtalk-misc/references/attendance.md +149 -0
- package/skills/dws/dingtalk-misc/references/dev/app.md +42 -0
- package/skills/dws/dingtalk-misc/references/dev/connect.md +108 -0
- package/skills/dws/dingtalk-misc/references/dev/credentials.md +26 -0
- package/skills/dws/dingtalk-misc/references/dev/dev-index.md +13 -0
- package/skills/dws/dingtalk-misc/references/dev/event.md +47 -0
- package/skills/dws/dingtalk-misc/references/dev/mcp.md +106 -0
- package/skills/dws/dingtalk-misc/references/dev/member.md +19 -0
- package/skills/dws/dingtalk-misc/references/dev/permission.md +56 -0
- package/skills/dws/dingtalk-misc/references/dev/recipes.md +58 -0
- package/skills/dws/dingtalk-misc/references/dev/robot.md +74 -0
- package/skills/dws/dingtalk-misc/references/dev/security.md +21 -0
- package/skills/dws/dingtalk-misc/references/dev/version.md +99 -0
- package/skills/dws/dingtalk-misc/references/dev/webapp.md +22 -0
- package/skills/dws/dingtalk-misc/references/devapp.md +148 -0
- package/skills/dws/dingtalk-misc/references/devdoc-intent-guide.md +7 -0
- package/skills/dws/dingtalk-misc/references/devdoc.md +42 -0
- package/skills/dws/dingtalk-misc/references/ding.md +184 -0
- package/skills/dws/dingtalk-misc/references/hrbrain.md +67 -0
- package/skills/dws/dingtalk-misc/references/live.md +23 -0
- package/skills/dws/dingtalk-misc/references/markdown.md +167 -0
- package/skills/dws/dingtalk-misc/references/oa/oa-form-components.md +345 -0
- package/skills/dws/dingtalk-misc/references/oa/oa-process-nodes.md +374 -0
- package/skills/dws/dingtalk-misc/references/oa.md +1014 -0
- package/skills/dws/dingtalk-misc/references/openapi-explorer.md +47 -0
- package/skills/dws/dingtalk-misc/references/pat.md +52 -0
- package/skills/dws/dingtalk-misc/references/profile.md +41 -0
- package/skills/dws/dingtalk-misc/references/recruit.md +89 -0
- package/skills/dws/dingtalk-misc/references/report-conventions.md +44 -0
- package/skills/dws/dingtalk-misc/references/report-intent-guide.md +11 -0
- package/skills/dws/dingtalk-misc/references/report-lite-recipes.md +25 -0
- package/skills/dws/dingtalk-misc/references/report.md +109 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-batch-operations.md +104 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-chart.md +69 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-comment.md +166 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-conditional-format.md +59 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-dimension-operations.md +60 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-dropdown.md +103 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-export.md +135 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-filter-view.md +51 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-filter.md +181 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-formula.md +192 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-import.md +76 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-media-image.md +263 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-pivot-table.md +292 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-range-operations.md +161 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-read-data.md +60 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-revision-changeset.md +46 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-search-replace.md +120 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-style-format.md +71 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-version.md +84 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-workbook.md +59 -0
- package/skills/dws/dingtalk-misc/references/sheet/sheet-write-data.md +93 -0
- package/skills/dws/dingtalk-misc/references/sheet-conventions.md +44 -0
- package/skills/dws/dingtalk-misc/references/sheet-intent-guide.md +12 -0
- package/skills/dws/dingtalk-misc/references/sheet.md +166 -0
- package/skills/dws/dingtalk-misc/references/skill.md +98 -0
- package/skills/dws/dingtalk-misc/references/unsupported-scripts.md +49 -0
- package/skills/dws/dingtalk-misc/references/url-patterns.md +144 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/compose.md +200 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/01-overview.md +57 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/02-query.md +288 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/03-update.md +249 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/04-text-style.md +395 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/05-shape-frame-group-connector.md +186 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/06-vector-icon-path.md +313 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/07-examples-errors-write-support.md +270 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/08-catalogs.md +61 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1.md +54 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/replace.md +41 -0
- package/skills/dws/dingtalk-misc/references/whiteboard/vector.md +51 -0
- package/skills/dws/dingtalk-misc/references/whiteboard.md +115 -0
- package/skills/dws/dingtalk-misc/scripts/aiapp_create_and_poll.py +138 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_my_record.py +91 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_checkin.py +440 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_common.py +1698 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_daily.py +558 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_detail.py +809 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_monthly.py +758 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_report_record.py +947 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_schedule_export.py +344 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_schedule_import.py +498 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_team_shift.py +89 -0
- package/skills/dws/dingtalk-misc/scripts/attendance_vacation_balance.py +617 -0
- package/skills/dws/dingtalk-misc/scripts/finance_daily_cashflow.py +70 -0
- package/skills/dws/dingtalk-misc/scripts/finance_expense_flow.py +138 -0
- package/skills/dws/dingtalk-misc/scripts/oa_batch_approve.py +158 -0
- package/skills/dws/dingtalk-misc/scripts/oa_pending_review.py +132 -0
- package/skills/dws/dingtalk-misc/scripts/report_received_today.py +315 -0
- package/skills/dws/dingtalk-misc/scripts/yida_custom_page_update.py +401 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_builder.py +526 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_fields.py +315 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_inspector.py +311 -0
- package/skills/dws/dingtalk-misc/scripts/yida_form_update.py +185 -0
- package/skills/dws/dingtalk-misc/scripts/yida_jsx_pipeline.py +1588 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_compiler.py +1441 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_generate.py +514 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_schema.py +519 -0
- package/skills/dws/dingtalk-misc/scripts/yida_page_self_check.py +398 -0
- package/skills/dws/dingtalk-misc/scripts/yida_process_flow.py +1478 -0
- package/skills/dws/dingtalk-misc/scripts/yida_process_update.py +589 -0
- package/skills/dws/dingtalk-misc/scripts/yida_report_builder.py +494 -0
- package/skills/dws/dingtalk-misc/scripts/yida_report_charts.py +1434 -0
- package/skills/dws/dingtalk-misc/scripts/yida_report_update.py +244 -0
- package/skills/dws/dingtalk-misc/scripts/yida_schema_common.py +340 -0
- package/skills/dws/dingtalk-shared/SKILL.md +83 -0
- package/skills/dws/dingtalk-shared/references/capability-limits.md +31 -0
- package/skills/dws/dingtalk-shared/references/channel-login.md +26 -0
- package/skills/dws/dingtalk-shared/references/confirmation.md +59 -0
- package/skills/dws/dingtalk-shared/references/error-codes.md +155 -0
- package/skills/dws/dingtalk-shared/references/global-reference.md +122 -0
- package/skills/dws/dingtalk-shared/references/intent-guide.md +537 -0
- package/skills/dws/dingtalk-shared/references/recipes/conventions.md +45 -0
- package/skills/dws/dingtalk-shared/references/recipes/lite-catalog.md +275 -0
- package/skills/dws/dingtalk-shared/references/recipes/meta.md +67 -0
- package/skills/dws/dingtalk-shared/references/routing.md +52 -0
- package/skills/dws/dingtalk-shared/references/runtime-contract.md +11 -0
- package/skills/dws/dingtalk-shared/references/schema-usage.md +88 -0
- package/skills/dws/dingtalk-shared/references/url-patterns.md +144 -0
- package/skills/dws/dingtalk-shared/references/workflow-routing.md +45 -0
- package/skills/dws/dingtalk-todo/SKILL.md +119 -0
- package/skills/dws/dingtalk-todo/references/02-task.md +70 -0
- package/skills/dws/dingtalk-todo/references/intent-guide.md +15 -0
- package/skills/dws/dingtalk-todo/references/lite-recipes.md +68 -0
- package/skills/dws/dingtalk-todo/references/recipes/conventions.md +44 -0
- package/skills/dws/dingtalk-todo/references/todo.md +517 -0
- package/skills/dws/dingtalk-todo/scripts/todo_batch_create.py +354 -0
- package/skills/dws/dingtalk-todo/scripts/todo_daily_summary.py +153 -0
- package/skills/dws/dingtalk-todo/scripts/todo_overdue_check.py +101 -0
- package/skills/dws/dingtalk-wiki/SKILL.md +117 -0
- package/skills/dws/dingtalk-wiki/references/intent-guide.md +14 -0
- package/skills/dws/dingtalk-wiki/references/lite-recipes.md +44 -0
- package/skills/dws/dingtalk-wiki/references/wiki-members.md +32 -0
- package/skills/dws/dingtalk-wiki/references/wiki-node-ops.md +46 -0
- package/skills/dws/dingtalk-wiki/references/wiki.md +65 -0
- package/skills/dws/provenance.json +27 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""connector_probe 的单元测试(纯标准库;用临时目录造假宿主配置,不触碰真实凭据)。
|
|
3
|
+
|
|
4
|
+
`connector_probe.py` 只探测一类事实:**WorkBuddy 宿主连接器声明**(`ifind-mcp`)。
|
|
5
|
+
它不再搜索、不再判断任何 DSH 技能目录 —— DSH 侧的取数入口是宿主的结构化 Tool,
|
|
6
|
+
可见性由宿主决定,不属于本探测器。因此这里只覆盖 WorkBuddy 行为,并额外锁死
|
|
7
|
+
"探测器里不得再出现技能探测接口与字段"这条实现边界。
|
|
8
|
+
|
|
9
|
+
本测试只依赖同目录的 connector_probe.py —— 本技能单独安装时也能通过。
|
|
10
|
+
"""
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import contextlib
|
|
14
|
+
import inspect
|
|
15
|
+
import io
|
|
16
|
+
import json
|
|
17
|
+
import os
|
|
18
|
+
import re
|
|
19
|
+
import sys
|
|
20
|
+
import tempfile
|
|
21
|
+
import unittest
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
|
|
24
|
+
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
25
|
+
|
|
26
|
+
import connector_probe as probe # noqa: E402
|
|
27
|
+
|
|
28
|
+
PROBE_SOURCE = Path(__file__).resolve().parent / "connector_probe.py"
|
|
29
|
+
|
|
30
|
+
FAKE_TOKEN = "FAKE-SECRET-TOKEN-1234567890"
|
|
31
|
+
|
|
32
|
+
# 实现边界:这些标识只属于已删除的 DSH 技能探测路径,源码里不得再出现
|
|
33
|
+
# (含注释)。扫描覆盖整个文件,不区分代码与注释。
|
|
34
|
+
FORBIDDEN_MARKERS = (
|
|
35
|
+
"ifind-finance-data",
|
|
36
|
+
"HARNESS_SKILL_ID",
|
|
37
|
+
"SKILLS_ROOT_ENV",
|
|
38
|
+
"DEFAULT_SKILLS_ROOTS",
|
|
39
|
+
"find_harness_skill",
|
|
40
|
+
"classify_skill",
|
|
41
|
+
"call\\.py",
|
|
42
|
+
"call-node\\.js",
|
|
43
|
+
"mcp_config\\.json",
|
|
44
|
+
"--skills-root",
|
|
45
|
+
"harnessSkill",
|
|
46
|
+
"harness_skill",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
# 旧输出里属于 DSH 技能路径的字段,必须一个都不剩。
|
|
50
|
+
FORBIDDEN_RESULT_KEYS = ("skillsRoots", "harnessSkill", "harnessSkillVerdict", "harness_skill")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def write_json(path: Path, payload) -> None:
|
|
54
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
55
|
+
path.write_text(json.dumps(payload, ensure_ascii=False), encoding="utf-8")
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def build_root(
|
|
59
|
+
root: Path,
|
|
60
|
+
*,
|
|
61
|
+
declare_ifind: bool = True,
|
|
62
|
+
ifind_disabled: bool | None = None,
|
|
63
|
+
enabled: list | None = None,
|
|
64
|
+
stored_auth: list | None = None,
|
|
65
|
+
ever: list | None = None,
|
|
66
|
+
auth_mode: str = "server-side",
|
|
67
|
+
) -> None:
|
|
68
|
+
"""造一个 WorkBuddy 风格的宿主连接器根目录。"""
|
|
69
|
+
servers = {}
|
|
70
|
+
if declare_ifind:
|
|
71
|
+
entry = {"url": "https://api-mcp.51ifind.com:8643/ds-mcp-servers/hexin-ifind-mcp?token=%s" % FAKE_TOKEN}
|
|
72
|
+
if ifind_disabled is not None:
|
|
73
|
+
entry["disabled"] = ifind_disabled
|
|
74
|
+
servers["connector:ifind-mcp"] = entry
|
|
75
|
+
write_json(root / "mcp.json", {"mcpServers": servers})
|
|
76
|
+
|
|
77
|
+
state_dir = root / "connectors" / "00000000-1111-2222-3333-444444444444"
|
|
78
|
+
write_json(
|
|
79
|
+
state_dir / "connector-states.v3.json",
|
|
80
|
+
{
|
|
81
|
+
"enabled": enabled if enabled is not None else ["ifind-mcp"],
|
|
82
|
+
"userDisabled": {},
|
|
83
|
+
"everConnected": ever if ever is not None else ["ifind-mcp"],
|
|
84
|
+
"headerOverrides": {
|
|
85
|
+
name: {"Authorization": {"iv": "x", "ct": FAKE_TOKEN}}
|
|
86
|
+
for name in (stored_auth if stored_auth is not None else ["ifind-mcp"])
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
)
|
|
90
|
+
write_json(
|
|
91
|
+
root / "connectors-marketplace" / ".codebuddy-connector" / "connectors.json",
|
|
92
|
+
{
|
|
93
|
+
"connectors": [
|
|
94
|
+
{"id": "ifind-mcp", "name_zh": "同花顺iFinD金融数据查询", "auth_mode": auth_mode},
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class ProbeTest(unittest.TestCase):
|
|
101
|
+
def test_host_connector_available(self):
|
|
102
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
103
|
+
root = Path(tmp) / "workbuddy"
|
|
104
|
+
build_root(root)
|
|
105
|
+
result = probe.probe(root)
|
|
106
|
+
ifind = result["targets"]["ifind"]
|
|
107
|
+
self.assertEqual("available", ifind["state"])
|
|
108
|
+
self.assertEqual("host_connector", ifind["accessPath"])
|
|
109
|
+
self.assertEqual("ifind-mcp", ifind["connectorId"])
|
|
110
|
+
self.assertEqual("api-mcp.51ifind.com", ifind["endpointHost"])
|
|
111
|
+
self.assertEqual("stored_authorization", ifind["authEvidence"])
|
|
112
|
+
|
|
113
|
+
def test_catalog_only_connector_is_not_declared(self):
|
|
114
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
115
|
+
root = Path(tmp) / "workbuddy"
|
|
116
|
+
build_root(root, declare_ifind=False, enabled=[], stored_auth=[])
|
|
117
|
+
ifind = probe.probe(root)["targets"]["ifind"]
|
|
118
|
+
self.assertEqual("not_declared", ifind["state"])
|
|
119
|
+
self.assertIn("目录", ifind["reason"])
|
|
120
|
+
|
|
121
|
+
def test_connector_declared_but_disabled(self):
|
|
122
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
123
|
+
root = Path(tmp) / "workbuddy"
|
|
124
|
+
build_root(root, ifind_disabled=True, enabled=[], stored_auth=[])
|
|
125
|
+
self.assertEqual("declared_disabled", probe.probe(root)["targets"]["ifind"]["state"])
|
|
126
|
+
|
|
127
|
+
def test_connector_not_in_enabled_list_is_disabled(self):
|
|
128
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
129
|
+
root = Path(tmp) / "workbuddy"
|
|
130
|
+
build_root(root, enabled=[], stored_auth=["ifind-mcp"])
|
|
131
|
+
self.assertEqual("declared_disabled", probe.probe(root)["targets"]["ifind"]["state"])
|
|
132
|
+
|
|
133
|
+
def test_other_account_state_disabled_does_not_override_active_state(self):
|
|
134
|
+
"""真实场景:connectors/default 把 ifind 标为 disabled=true,但当前账号态已启用且连过。"""
|
|
135
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
136
|
+
root = Path(tmp) / "workbuddy"
|
|
137
|
+
build_root(root)
|
|
138
|
+
write_json(
|
|
139
|
+
root / "connectors" / "default" / "mcp.json",
|
|
140
|
+
{
|
|
141
|
+
"mcpServers": {
|
|
142
|
+
"connector:ifind-mcp": {
|
|
143
|
+
"url": "https://api-mcp.51ifind.com:8643/ds-mcp-servers/hexin-ifind-mcp",
|
|
144
|
+
"disabled": True,
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
)
|
|
149
|
+
result = probe.probe(root)
|
|
150
|
+
self.assertEqual("connectors/00000000-1111-2222-3333-444444444444", result["activeStateScope"])
|
|
151
|
+
self.assertEqual("available", result["targets"]["ifind"]["state"])
|
|
152
|
+
|
|
153
|
+
def test_missing_everything_is_reported_not_guessed(self):
|
|
154
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
155
|
+
missing = Path(tmp) / "nope"
|
|
156
|
+
result = probe.probe(missing)
|
|
157
|
+
self.assertFalse(result["rootExists"])
|
|
158
|
+
self.assertEqual("not_declared", result["targets"]["ifind"]["state"])
|
|
159
|
+
buffer = io.StringIO()
|
|
160
|
+
with contextlib.redirect_stdout(buffer):
|
|
161
|
+
code = probe.main(["--root", str(missing), "--format", "json"])
|
|
162
|
+
self.assertEqual(2, code)
|
|
163
|
+
self.assertEqual([], json.loads(buffer.getvalue())["connectors"])
|
|
164
|
+
|
|
165
|
+
def test_main_returns_zero_when_connector_available(self):
|
|
166
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
167
|
+
root = Path(tmp) / "workbuddy"
|
|
168
|
+
build_root(root)
|
|
169
|
+
buffer = io.StringIO()
|
|
170
|
+
with contextlib.redirect_stdout(buffer):
|
|
171
|
+
code = probe.main(["--root", str(root), "--format", "json"])
|
|
172
|
+
self.assertEqual(0, code)
|
|
173
|
+
self.assertEqual("host_connector", json.loads(buffer.getvalue())["targets"]["ifind"]["accessPath"])
|
|
174
|
+
|
|
175
|
+
def test_token_auth_without_evidence_exits_two(self):
|
|
176
|
+
"""已声明且启用、但授权形态是 token 且无任何授权证据 → 预检不可用(退出码 2)。"""
|
|
177
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
178
|
+
root = Path(tmp) / "workbuddy"
|
|
179
|
+
build_root(root, stored_auth=[], ever=[], auth_mode="token")
|
|
180
|
+
buffer = io.StringIO()
|
|
181
|
+
with contextlib.redirect_stdout(buffer):
|
|
182
|
+
code = probe.main(["--root", str(root), "--format", "json"])
|
|
183
|
+
self.assertEqual(2, code)
|
|
184
|
+
self.assertEqual("likely_unauthenticated", json.loads(buffer.getvalue())["targets"]["ifind"]["state"])
|
|
185
|
+
|
|
186
|
+
def test_never_leaks_credentials(self):
|
|
187
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
188
|
+
root = Path(tmp) / "workbuddy"
|
|
189
|
+
build_root(root)
|
|
190
|
+
result = probe.probe(root)
|
|
191
|
+
payload = json.dumps(result, ensure_ascii=False)
|
|
192
|
+
self.assertNotIn(FAKE_TOKEN, payload)
|
|
193
|
+
self.assertNotIn('"Authorization"', payload)
|
|
194
|
+
self.assertNotIn(FAKE_TOKEN, probe.render_text(result))
|
|
195
|
+
|
|
196
|
+
def test_text_format_excludes_wind(self):
|
|
197
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
198
|
+
root = Path(tmp) / "workbuddy"
|
|
199
|
+
build_root(root)
|
|
200
|
+
text = probe.render_text(probe.probe(root))
|
|
201
|
+
self.assertIn("同花顺 iFinD", text)
|
|
202
|
+
self.assertNotIn("万得", text)
|
|
203
|
+
self.assertNotIn("wind", text.lower())
|
|
204
|
+
|
|
205
|
+
def test_env_var_supplies_default_connector_root(self):
|
|
206
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
207
|
+
root = Path(tmp) / "workbuddy"
|
|
208
|
+
build_root(root)
|
|
209
|
+
buffer = io.StringIO()
|
|
210
|
+
old = os.environ.get(probe.DEFAULT_ROOT_ENV)
|
|
211
|
+
os.environ[probe.DEFAULT_ROOT_ENV] = str(root)
|
|
212
|
+
try:
|
|
213
|
+
with contextlib.redirect_stdout(buffer):
|
|
214
|
+
code = probe.main(["--format", "json"])
|
|
215
|
+
finally:
|
|
216
|
+
if old is None:
|
|
217
|
+
os.environ.pop(probe.DEFAULT_ROOT_ENV, None)
|
|
218
|
+
else:
|
|
219
|
+
os.environ[probe.DEFAULT_ROOT_ENV] = old
|
|
220
|
+
self.assertEqual(0, code)
|
|
221
|
+
self.assertEqual("available", json.loads(buffer.getvalue())["targets"]["ifind"]["state"])
|
|
222
|
+
|
|
223
|
+
# ---- 以下用例锁定"探测器只探测 WorkBuddy"这条实现边界 ----
|
|
224
|
+
|
|
225
|
+
def test_probe_signature_takes_only_the_connector_root(self):
|
|
226
|
+
"""`probe()` 只接宿主连接器根;skills 根形参不是可选项,而是必须不存在。"""
|
|
227
|
+
parameters = list(inspect.signature(probe.probe).parameters)
|
|
228
|
+
self.assertEqual(["root"], parameters, "probe() must only accept the WorkBuddy connector root")
|
|
229
|
+
|
|
230
|
+
def test_cli_no_longer_accepts_skills_root(self):
|
|
231
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
232
|
+
stderr = io.StringIO()
|
|
233
|
+
with contextlib.redirect_stderr(stderr):
|
|
234
|
+
with self.assertRaises(SystemExit) as caught:
|
|
235
|
+
probe.main(["--root", tmp, "--skills-root", tmp, "--format", "json"])
|
|
236
|
+
self.assertEqual(2, caught.exception.code, "argparse must reject the removed --skills-root option")
|
|
237
|
+
|
|
238
|
+
def test_result_json_has_no_skill_path_fields(self):
|
|
239
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
240
|
+
root = Path(tmp) / "workbuddy"
|
|
241
|
+
build_root(root)
|
|
242
|
+
result = probe.probe(root)
|
|
243
|
+
for key in FORBIDDEN_RESULT_KEYS:
|
|
244
|
+
self.assertNotIn(key, result, "probe result must not expose %s" % key)
|
|
245
|
+
self.assertNotIn(key, result["targets"]["ifind"], "ifind target must not expose %s" % key)
|
|
246
|
+
self.assertNotEqual("harness_skill", result["targets"]["ifind"]["accessPath"])
|
|
247
|
+
|
|
248
|
+
def test_render_text_has_no_skill_path_lines(self):
|
|
249
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
250
|
+
root = Path(tmp) / "workbuddy"
|
|
251
|
+
build_root(root)
|
|
252
|
+
text = probe.render_text(probe.probe(root))
|
|
253
|
+
for marker in ("skillsRoots", "Harness 技能根", "Harness 技能:", "harness_skill"):
|
|
254
|
+
self.assertNotIn(marker, text, "text rendering must not mention %s" % marker)
|
|
255
|
+
|
|
256
|
+
def test_source_has_no_dsh_skill_probe_markers(self):
|
|
257
|
+
"""实现边界硬判据:源码(含注释)不得再出现技能探测路径的任何标识。"""
|
|
258
|
+
source = PROBE_SOURCE.read_text(encoding="utf-8")
|
|
259
|
+
hits = sorted({marker for marker in FORBIDDEN_MARKERS if re.search(marker, source)})
|
|
260
|
+
self.assertEqual([], hits, "connector_probe.py must not contain: %s" % ", ".join(hits))
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
if __name__ == "__main__":
|
|
264
|
+
unittest.main()
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: crwu-audit-output-filter
|
|
3
|
+
description: Use when crwu-audit is preparing its final phase-one findings and must remove reviewer-approved, low-value opinion types through the live suppression checklist.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 审核意见输出过滤
|
|
7
|
+
|
|
8
|
+
## 调用边界
|
|
9
|
+
|
|
10
|
+
仅经 `crwu-audit` router 编排调用,禁止单独调用。本技能是恒加载的 `public` 轴后处理能力:不产生审核意见、不改变专业判断,只在全部候选审核意见汇总完成后、阶段一冻结前,按知识库《02-屏蔽清单》过滤不进入正式审核结果的意见。
|
|
11
|
+
|
|
12
|
+
本技能只读取运行时清单,不读取《01-维护规则》。维护规则供人员维护知识库使用,不属于每次审核的运行材料。
|
|
13
|
+
|
|
14
|
+
## 输入
|
|
15
|
+
|
|
16
|
+
- 已完成归并、尚未冻结的候选审核意见;
|
|
17
|
+
- 每条候选意见的稳定匹配标识:优先使用 `checkId`;无 Check ID 时使用受控的 `字段编号:问题类型`;
|
|
18
|
+
- router 已确定的资产、业务、方法、监管覆盖和审核阶段;
|
|
19
|
+
- 经 `crwu-dws` 本次实时下载并验证的《02-屏蔽清单》。
|
|
20
|
+
|
|
21
|
+
缺少或无法读取屏蔽清单时,不执行任何屏蔽,保留全部候选意见并记录 capability gap。不得沿用上一轮清单或凭记忆过滤。
|
|
22
|
+
|
|
23
|
+
## 必读 references
|
|
24
|
+
|
|
25
|
+
1. [00-applicability.md](references/00-applicability.md):适用范围和失败降级;
|
|
26
|
+
2. [01-kb-assembly.md](references/01-kb-assembly.md):本次只下载运行时屏蔽清单;
|
|
27
|
+
3. [02-review-focus.md](references/02-review-focus.md):精确匹配、例外和输出纪律。
|
|
28
|
+
|
|
29
|
+
## 执行结果
|
|
30
|
+
|
|
31
|
+
- 命中启用记录,且同时满足适用范围与屏蔽条件、未命中不屏蔽例外:该候选意见不进入正式审核结果;
|
|
32
|
+
- 未命中、匹配冲突、条件不完整或无法判断:保留候选意见;
|
|
33
|
+
- 屏蔽动作不得改写其他意见的事实、严重度、证据或 `source_skills[]`;
|
|
34
|
+
- 正式交付不得逐条展示已屏蔽意见,也不得用摘要、备注或“其他轻微问题”等措辞变相输出其内容。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 审核意见屏蔽清单装配
|
|
2
|
+
|
|
3
|
+
本技能只装配运行时《02-屏蔽清单》;《01-维护规则》供人员维护知识库使用,不进入每次审核下载清单。
|
|
4
|
+
|
|
5
|
+
单文件路径逐字使用知识库节点名,不加 `.md` 后缀。运行时由 `crwu-dws` 实时下载正文,不读取跨审核缓存。
|
|
6
|
+
|
|
7
|
+
| source_key | owner_axis | canonical_label | kb_root | request_kind | recursive | required |
|
|
8
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
9
|
+
| `OUTPUT_SUPPRESSION_CHECKLIST` | `public` | `审核意见屏蔽` | `06-规则库/04-AI审核意见屏蔽/02-屏蔽清单` | `file` | `false` | `true` |
|
|
10
|
+
|
|
11
|
+
下载失败时本技能降级为零屏蔽,保留全部候选意见并记录 capability gap;不得猜测近似路径或读取《01-维护规则》替代。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 输出过滤规则
|
|
2
|
+
|
|
3
|
+
## 1. 读取有效记录
|
|
4
|
+
|
|
5
|
+
只读取《02-屏蔽清单》表格中 `状态=启用` 的记录。停用、字段缺失或表格无法解析的记录不执行。
|
|
6
|
+
|
|
7
|
+
## 2. 精确匹配
|
|
8
|
+
|
|
9
|
+
每条候选意见先形成稳定 `匹配标识`:
|
|
10
|
+
|
|
11
|
+
- 有 `checkId`:直接使用该编号;
|
|
12
|
+
- 无 `checkId`:仅使用已有受控字段编号构成 `字段编号:问题类型`;
|
|
13
|
+
- 禁止仅凭相似措辞、自由文本关键词或语义猜测扩大匹配。
|
|
14
|
+
|
|
15
|
+
## 3. 条件与例外
|
|
16
|
+
|
|
17
|
+
精确命中后,依次核对适用范围和屏蔽条件。任一条件不满足,或命中“不屏蔽例外”,均保留意见。
|
|
18
|
+
|
|
19
|
+
同一意见同时命中屏蔽和保留条件时,以保留为准。无法判断时也以保留为准。
|
|
20
|
+
|
|
21
|
+
## 4. 输出纪律
|
|
22
|
+
|
|
23
|
+
满足全部条件的候选意见不进入正式 `issues[]`,也不进入员工 HTML 的问题、摘要、建议或备注区域。不得变相输出被屏蔽意见的具体内容。
|
|
24
|
+
|
|
25
|
+
本能力只过滤正式输出,不把屏蔽规则解释成专业结论,也不为其他候选意见增删证据或改变严重度。
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: crwu-audit-public-general-standards
|
|
3
|
+
description: Use when crwu-audit has selected the public 通用准则 capability for report-disclosure and procedure/quality-control review.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 通用准则公共审核(报告披露 · 程序与质控)
|
|
7
|
+
|
|
8
|
+
## 调用边界
|
|
9
|
+
|
|
10
|
+
仅经 `crwu-audit` router 编排调用,禁止单独调用。本技能是 `public` 轴叶子,只审核**报告形态无关的通用准则层**:报告与披露要求、评估程序执行要求、机构质量控制要求。不查询报告记录、不准备材料、不重新下载规则,也不替代任何专业轴技能。
|
|
11
|
+
|
|
12
|
+
本能力的执行契约见 [执行契约](references/03-execution-contract.md):输入边界、执行顺序、条目状态、来源优先级、证据字段与 capability gap 均按该文件执行。本技能**只读取自己目录内的文件**,不读取任何 sibling Skill;资产/业务叶子共同约束里的轴边界、一级根装配与二级选择**对本能力不适用**。
|
|
13
|
+
|
|
14
|
+
- 对象专业事项(权属、实物与经济特征、对象特有方法前提)由 `crwu-audit-asset-*` 处理;
|
|
15
|
+
- 评估目的与经济行为对口径、材料、判断的影响由 `crwu-audit-biz-*` 处理;
|
|
16
|
+
- 方法与监管正文由 method / overlay 轴处理;表格勾稽由 `crwu-audit-datacheck` 处理;
|
|
17
|
+
- 本技能**不替代**上述任何一轴,也不因某专业轴 `pending` 而停止执行。对象、业务、方法、监管全部缺失时,本技能仍须独立产出通用准则层的检查结果。
|
|
18
|
+
|
|
19
|
+
本技能对**任何报告形态恒适用**,因此由 router 在公共能力求值阶段无条件并入 `public_skills[]`,不依赖材料类型条件。
|
|
20
|
+
|
|
21
|
+
## 输入
|
|
22
|
+
|
|
23
|
+
- 同一份 `route_profile`(五轴标签与证据;本技能不消费具体专业标签,只用 `report_form`、`record_context` 与材料分区);
|
|
24
|
+
- router 已准备并隔离的报告、评估说明、测算明细表等材料路径;
|
|
25
|
+
- router 已验证的本次 DWS manifest、规则快照及其文件路径。
|
|
26
|
+
|
|
27
|
+
缺少上述输入时记录 capability gap,不自行补取、猜测或沿用上一轮材料。
|
|
28
|
+
|
|
29
|
+
## 必读 references
|
|
30
|
+
|
|
31
|
+
执行前依次读取:
|
|
32
|
+
|
|
33
|
+
1. [00-applicability.md](references/00-applicability.md):确认本公共能力的适用、排除与边界;
|
|
34
|
+
2. [01-kb-assembly.md](references/01-kb-assembly.md):核对本次规则快照覆盖的 RULE 与库内层级路径;
|
|
35
|
+
3. [02-review-focus.md](references/02-review-focus.md):按报告披露层与程序质控层的关注点实施检查;
|
|
36
|
+
4. [03-execution-contract.md](references/03-execution-contract.md):本能力自包含执行契约(输入边界、执行顺序、条目状态、来源优先级、证据字段、capability gap)。
|
|
37
|
+
|
|
38
|
+
## 执行与输出
|
|
39
|
+
|
|
40
|
+
1. 用 `00-applicability.md` 界定本次适用范围;不改变 router 已确定的任何轴标签。
|
|
41
|
+
2. **先判规则版本**:程序准则与质控指南存在新旧两版且施行日期不同,按报告基准日/报告日所属期间选定整段引用版本,禁止新旧条款混引(判定规则见 `02-review-focus.md` §1)。版本无法确定时记录冲突并转人工判断,不任选一版。
|
|
42
|
+
3. 用本次 DWS manifest 验证 `01-kb-assembly.md` 所需文件;缺失项按路径和原因记录 gap,对应检查不引用、不编造。
|
|
43
|
+
4. 按 `02-review-focus.md` 分别审核报告、评估说明、测算明细表;报告披露层与程序质控层各自独立出条目状态,不以"未发现问题"笼统概括。
|
|
44
|
+
5. 索引卡类文件**不构成规则条目**,不得作为引用依据;模板参考类文件只做格式基线对照,判定以准则正文条款为准。
|
|
45
|
+
6. 输出通用准则层 findings;每条均带 `source_skills[]`,其中至少包含 `crwu-audit-public-general-standards`。相同事实由其他技能共同支持时保留全部来源,冲突时并列交人工复核。
|
|
46
|
+
7. 按本次 DWS 执行契约输出证据与修改建议;出处包含本次下载文件、实际行号、库内路径、本次运行返回的 `nodeId` 和 `exportedAt`(运行时值不写回本技能)。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 通用准则公共能力适用与边界
|
|
2
|
+
|
|
3
|
+
## Canonical 标签
|
|
4
|
+
|
|
5
|
+
- canonical:`通用准则`
|
|
6
|
+
- 轴:`public`(报告形态无关的公共能力,不入专业轴)
|
|
7
|
+
- 装配语义:命中即**无条件加载**,与对象、业务、方法、监管标签是否命中或 `pending` 无关。
|
|
8
|
+
|
|
9
|
+
## 纳入范围
|
|
10
|
+
|
|
11
|
+
本能力覆盖两层,两层各自独立执行、独立出条目状态:
|
|
12
|
+
|
|
13
|
+
| 层 | 覆盖内容 | 规则来源装配键 |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| 报告披露层 | 报告结构要素、正文要素、声明、摘要、使用人、评估目的唯一性、对象与范围载明、价值类型、基准日一致性、评估依据、方法与理由、假设披露、结论表述、特别事项、使用限制、报告日、附件 | `PUBLIC_REPORT_DISCLOSURE_ROOT` |
|
|
16
|
+
| 程序与质控层 | 评估程序各环节的执行与留痕要求、程序缺失处理、内部/分级审核、报备一致性、档案归集;机构层面质量控制体系、审核人员独立性、记录与档案、信息技术与 AI 使用边界 | `PUBLIC_PROCEDURE_QUALITY_ROOT` |
|
|
17
|
+
|
|
18
|
+
两层同时适用时**全部保留**,不因命中其一而省略另一层。
|
|
19
|
+
|
|
20
|
+
## 与专业轴的接口
|
|
21
|
+
|
|
22
|
+
本能力只审"通用准则要求本身是否被满足",不代替专业判断:
|
|
23
|
+
|
|
24
|
+
- 报告是否载明评估方法及其理由 → 本能力检查**载明与披露完整性**;方法选取是否恰当 → method 轴;
|
|
25
|
+
- 报告是否载明程序受限情况及处理方式 → 本能力检查**说明义务**;受限对结论的影响程度是否成立 → 由对象/方法轴结合材料判断;
|
|
26
|
+
- 报告是否载明特别事项 → 本能力检查**七类披露完整性**;事项本身对评估结论的影响 → 对应专业轴;
|
|
27
|
+
- 分级审核记录是否留存、审核人员是否独立 → 本能力检查**机构层面合规**;具体检查点内容是否命中 → 由执行该检查的专业轴产出。
|
|
28
|
+
|
|
29
|
+
同一事实被多个技能共同支持时合并 finding 并保留全部 `source_skills[]`;结论冲突时并列交人工复核,不以后加载来源覆盖。
|
|
30
|
+
|
|
31
|
+
## 边界与不适用
|
|
32
|
+
|
|
33
|
+
- 库内**索引卡**类节点(登记元数据与编撰规划的说明页)不构成规则条目,**不得作为审核引用依据**;仅在需要说明"某准则尚未精编"时作为内容缺口证据。
|
|
34
|
+
- 模板参考类节点(封面/文号/声明样稿样式)只做格式基线对照,**判定一律以准则正文条款为准**,不得据模板文件出规则性缺陷结论。
|
|
35
|
+
- 规则条目自带发布状态与时效信息时,只采用其**当前有效**版本;已废止版本仅在审核该版本适用期间的报告时引用。
|
|
36
|
+
- 被审材料是咨询报告、估值文书等非评估报告形态时,报告准则条款的适用性需按报告形态另行确认,不适用范围不得强行套用。
|
|
37
|
+
|
|
38
|
+
## 待确认项
|
|
39
|
+
|
|
40
|
+
- 报告准则体系在准则重构期是否修订处于跟踪状态,报告日跨重构节点的项目需确认所适用版本。
|
|
41
|
+
- 程序准则与质控指南的旧版精编状态不一致(详见 `02-review-focus.md` §1 与 §5),2026 年内报告的程序/质控对照依据存在内容缺口,按 gap 如实登记,不补造。
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 通用准则规则装配
|
|
2
|
+
|
|
3
|
+
**路径键写法**:逐字使用库内节点名(`crwu-dws` 的 `by_path` 键 = 原样精确名,不做大小写/全半角折叠)。**单文件路径不要加 `.md` 后缀**——`.md` 只是导出到本地时的文件名(`<节点名>.md`),不是库内节点名;带后缀会与 `by_path` 键不匹配而在 M2 记 failure。目录路径以 `/` 结尾并递归下载。
|
|
4
|
+
|
|
5
|
+
本表只保存 RULE/CHK 编号和库内层级路径寻址键。运行时由 `crwu-audit` 汇总清单,再由 `crwu-dws` 实时下载正文并生成本次 manifest;目录缓存只用于定位,正文文件零缓存,不得读取上一轮下载物。
|
|
6
|
+
|
|
7
|
+
清单条目有两种语义:不以 `/` 结尾的是单文件路径,只下载该文件;以 `/` 结尾的是目录路径,**递归下载其中全部支持正文**。清单外零下载。
|
|
8
|
+
|
|
9
|
+
## 1. 装配映射(公共轴:两个根 + 一个单文件 + 一个清单根)
|
|
10
|
+
|
|
11
|
+
| source_key | owner_axis | canonical_label | kb_root | request_kind | recursive | required |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
13
|
+
| `PUBLIC_REPORT_DISCLOSURE_ROOT` | `public` | `通用准则` | `06-规则库/02-通用准则-报告与披露/` | `directory` | `true` | `true` |
|
|
14
|
+
| `PUBLIC_PROCEDURE_QUALITY_ROOT` | `public` | `通用准则` | `06-规则库/03-通用准则-程序与档案/` | `directory` | `true` | `true` |
|
|
15
|
+
| `PUBLIC_BASIS_CURRENCY_CHECK` | `public` | `通用准则` | `06-规则库/01-监管规则与口径/依据时效对照表` | `file` | `false` | `true` |
|
|
16
|
+
| `PUBLIC_PITFALL_LIBRARY_ROOT` | `public` | `通用准则` | `06-规则库/易错点库/` | `directory` | `true` | `true` |
|
|
17
|
+
|
|
18
|
+
四项均为 `required=true`:报告披露层、程序质控层与依据时效判定对任何报告形态恒适用,**易错点库(PIT 条目)为跨对象跨业务的复核反馈沉淀,须对全体项目可见**(此前仅由 `crwu-audit-asset-realestate` 装配 → 其余 11 个资产类型读不到)。
|
|
19
|
+
命中本能力即按下表下载,不逐文件挑选、不按对象或方法条件裁剪。
|
|
20
|
+
|
|
21
|
+
- `PUBLIC_BASIS_CURRENCY_CHECK` 是**单文件**:只下载该文件本身(不带 `.md` 后缀、不以 `/` 结尾);
|
|
22
|
+
它是 `02-review-focus.md` §2「依据章节的三类可判定缺陷」的判定依据(`RULE-01-03-001~030`),**不是可选参考**。
|
|
23
|
+
|
|
24
|
+
## 2. expected_structure 断言
|
|
25
|
+
|
|
26
|
+
**`PUBLIC_REPORT_DISCLOSURE_ROOT`**(2026-09-10 本次实时目录核对):
|
|
27
|
+
|
|
28
|
+
- `报告准则-精编条目/`:`README`、`报告准则-总则与基本遵循`、`报告准则-报告内容与附则`、`报告准则-附件格式与声明样稿-参考`;
|
|
29
|
+
- `资产评估报告准则`(索引卡:登记元数据与编撰规划,**不构成规则条目、不作引用依据**)。
|
|
30
|
+
|
|
31
|
+
覆盖 `RULE-01-02-251~279`:`报告准则-总则与基本遵循` = 251~260(第一至十条),`报告准则-报告内容与附则` = 261~279(第十一至二十九条)。
|
|
32
|
+
|
|
33
|
+
**`PUBLIC_PROCEDURE_QUALITY_ROOT`**:
|
|
34
|
+
|
|
35
|
+
- `程序准则2018-精编条目/`:`README`、`程序准则旧版2018-总则基本遵循与实施要求上`、`程序准则旧版2018-实施要求下与附则` → `RULE-01-02-101~115`、`RULE-01-02-116~127`;
|
|
36
|
+
- `程序准则2026-精编条目/`:`README`、`程序准则2026-第一章总则与第二章基本遵循`、`程序准则2026-第三章实施要求-上`、`程序准则2026-第三章实施要求-下与第四章附则` → `RULE-01-02-001~007`、`RULE-01-02-008~019`、`RULE-01-02-020~028`;
|
|
37
|
+
- `质控指南2026-精编条目/`:`README`、`质控指南-总则质量控制责任`、`质控指南-职业道德人力资源承接计划`、`质控指南-实施审核与监控等` → `RULE-01-02-401~417`、`RULE-01-02-418~434`、`RULE-01-02-435~456`;
|
|
38
|
+
- 索引卡类(**不构成规则条目、不作引用依据**):`机构业务质量控制指南2026-6号`、`资产评估程序准则2026版`、`资产评估执业准则-利用专家工作及相关报告-索引卡`。
|
|
39
|
+
|
|
40
|
+
库内若缺其中某项,按实际下载结果执行并记**知识库内容缺口**,不据目录名猜测替代路径。
|
|
41
|
+
|
|
42
|
+
**`PUBLIC_BASIS_CURRENCY_CHECK`**(单文件;2026-09-16 本次实时目录核对,`extension=adoc`):
|
|
43
|
+
|
|
44
|
+
- `依据时效对照表`:`RULE-01-03-001~003`(三类判定口径:版本过期/分类错位/适用性存疑)+ `RULE-01-03-004~030`(逐条对照)。
|
|
45
|
+
- 表内标注 `核验状态=待官方核验` 的行,出意见前须先比对官方原文(见 `02-review-focus.md` §2)。
|
|
46
|
+
- 该文件缺失时按 §5 记 gap 并转人工,**不凭经验判定版本新旧**。
|
|
47
|
+
|
|
48
|
+
**`PUBLIC_PITFALL_LIBRARY_ROOT`**(2026-09-16 本次实时目录核对):
|
|
49
|
+
|
|
50
|
+
- `首批易错点`:`PIT-001~030`(错误表现/依据/正确做法·检查动作/历史命中);
|
|
51
|
+
- `README`:易错点条目三要素与引用资格说明。
|
|
52
|
+
- 易错点本身不创造规则,须挂 ≥1 条 `RULE-*` A 级条目;未挂依据者只作 B/C 级提示,不作硬依据。
|
|
53
|
+
|
|
54
|
+
## 3. 版本选择(本轴特有,装配后立即适用)
|
|
55
|
+
|
|
56
|
+
两个根内**同时存在新旧两版**程序准则,施行期间不同,装配后必须先按报告的基准日/报告日选定版本(判定规则与登记状态见 `02-review-focus.md` §1)。禁止把两版条目混引;禁止用尚未施行的版本倒查在该版本施行前出具的报告。
|
|
57
|
+
|
|
58
|
+
## 4. 不装配的内容
|
|
59
|
+
|
|
60
|
+
- 机构内部制度文本:不在本技能范围(机构层面制度对照属部署方与知识库其他目录)。
|
|
61
|
+
- 方法与监管覆盖正文:属 method / overlay 轴;财务报告覆盖规则是按 `business_types[]=财务报告` 追加的业务补充包。它们均由 router 按命中标签动态装配,本技能只登记公共准则层与上表四项的寻址键。
|
|
62
|
+
- 表格勾稽口径:属 public 轴 `crwu-audit-datacheck`,与工程执行契约一并由其装配。
|
|
63
|
+
|
|
64
|
+
## 5. 失败与出处
|
|
65
|
+
|
|
66
|
+
下载零命中、多命中、类型不符、跳过或失败时,以 manifest 状态记录对应 gap,不猜测近似路径。最终出处按 R6 由 manifest 与本次下载物共同形成:本次下载文件、实际行号、库内路径、运行时 `nodeId` 和 `exportedAt`;运行时值不得写回本文件。
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# 通用准则审核要点(报告披露层 · 程序质控层)
|
|
2
|
+
|
|
3
|
+
> 本文件为**本次实时下载正文后归纳**的审核要点,不复制知识库正文。要点只回指 RULE 编号与库内层级路径寻址键;判定一律以本次下载的规则条目原文为准。
|
|
4
|
+
|
|
5
|
+
## 1. 版本选择门禁(执行前置,先判后审)
|
|
6
|
+
|
|
7
|
+
库内同时存在新旧两版程序准则,施行期间不同,**必须按报告的基准日/报告日所属期间整段选定版本**:
|
|
8
|
+
|
|
9
|
+
| 规则族 | RULE 编号 | 施行状态 | 2026 年内报告的适用依据 |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| 报告准则(中评协〔2018〕35 号) | `RULE-01-02-251~279` | 自 2019-01-01 施行,现行 | **适用** |
|
|
12
|
+
| 程序准则旧版(中评协〔2018〕36 号) | `RULE-01-02-101~127` | 至 **2026-12-31 仍现行**,2027-01-01 废止 | **适用** |
|
|
13
|
+
| 程序准则新版(中评协〔2026〕5 号) | `RULE-01-02-001~028` | 自 **2027-01-01 施行** | **不适用**(不得倒查) |
|
|
14
|
+
| 质控指南(中评协〔2026〕6 号) | `RULE-01-02-401~456` | 自 **2027-01-01 施行** | **不适用**(旧版未精编,见 §5) |
|
|
15
|
+
|
|
16
|
+
纪律:
|
|
17
|
+
|
|
18
|
+
- 禁止新旧条款混引;禁止用 2027-01-01 才施行的条目审查此前出具的报告。
|
|
19
|
+
- 新旧版存在实质差异,按选定版本核查,**不得以新版新增要求倒查旧版期间报告**。已核实的差异点(旧版为对照基准):
|
|
20
|
+
- 基本程序环节:旧版 7 环节(`101~115` 范围内第五条)→ 新版 9 环节并单列"不得随意减少"(`008~019` 范围内第五条、第六条);
|
|
21
|
+
- 程序缺失处理:旧版仅"不得出具"限则 → 新版增加告知委托人、底稿记录限制情形/弥补措施/影响分析、报告披露三项(对应 `RULE-01-02-106` 与 `RULE-01-02-006`);
|
|
22
|
+
- 内部审核:旧版为"对初步报告进行内部审核"(`RULE-01-02-123`)→ 新版升级为分级审核并对过程与结果详细记录(`RULE-01-02-023`);
|
|
23
|
+
- 出具前沟通:旧版无"调整后再次审核"(`RULE-01-02-124`)→ 新版新增(`RULE-01-02-024`);
|
|
24
|
+
- 业务报备:旧版无 → 新版新增"先报备后出具、与报备系统一致"(`RULE-01-02-026`);审旧版报告不查报备一致(`RULE-01-02-125`);
|
|
25
|
+
- 档案:旧版无涉密档案专项表述(`RULE-01-02-126`)→ 新版新增保密法衔接(`RULE-01-02-027`)。
|
|
26
|
+
- 版本无法从材料确定时,记录冲突双方并转人工判断,不任选一版。
|
|
27
|
+
|
|
28
|
+
## 2. 报告披露层检查维度(`RULE-01-02-251~279`)
|
|
29
|
+
|
|
30
|
+
**基准与编制**:内容清晰准确、不得有误导性表述(`254`);必要信息充分使使用人能正确理解结论(`255`);详略程度与对象复杂程度、委托人要求相称(`256`,属**防误报**条目——简单项合理精简不构成缺陷);中文撰写与币种计量、外币须注基准日汇率(`259`)。
|
|
31
|
+
|
|
32
|
+
**签署与时效**:至少两名承办该项业务的资产评估专业人员签名并加盖机构印章,法定业务须至少两名资产评估师签名(`258`);报告是否载明评估结论使用有效期,基准日与经济行为实现日相距通常不超过一年(`260`)。
|
|
33
|
+
|
|
34
|
+
**结构与要素**(M-报告披露清单主干):报告结构六要素完整性(`261`);声明章节逐项核查(`262`);摘要(`263`);**正文十四要素核对,缺失任一要素即"要素不全"**(`264`);附件五类核对(`278`)。
|
|
35
|
+
|
|
36
|
+
**载明事项**:使用人界定(`265`);**评估目的唯一性——多目的并存表述即缺陷**(`266`);评估对象与范围载明(`267`);价值类型的理由与定义(`268`);**报告基准日与合同基准日一致**(`269`);评估依据四类(法律法规/准则/权属/取价)载明,并核查是否引用已废止或过时文件(`270`)。
|
|
37
|
+
|
|
38
|
+
**依据章节的三类可判定缺陷**(`270` 的落地口径,逐类出条目、不得合并成"依据不完整"一句):
|
|
39
|
+
|
|
40
|
+
| 类别 | 判据 | 证据要求 |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| **版本过期** | 所列文件已被修订/废止/为新法取代(例:增值税暂行条例已被增值税法取代;公司法 2018 版已被 2023-12-29 修订版取代;财政部令第 86 号已被第 97 号取代) | 报告位置 + 所引版本原文 + 现行版本名称与施行日期 |
|
|
43
|
+
| **分类错位** | 依据未按「准则依据/法律法规依据/其他参考依据」三分法归位(例:企业会计准则基本准则被放入法律法规依据;专家指引、监管规则适用指引被放入准则依据) | 报告位置 + 现归类 + 应归类 |
|
|
44
|
+
| **适用性存疑** | 所列文件与本项目评估目的/对象/监管归属不匹配(含应列而未列、不应列而列入,例:税务定价目的报告列入国资监管法规) | 报告位置 + 本项目五轴画像 + 不匹配理由 |
|
|
45
|
+
|
|
46
|
+
- 具体失效/待更新文件清单与应替换文本,按 `06-规则库/01-监管规则与口径/依据时效对照表` 的库内层级路径寻址键,经本次实时下载后只读引用(该条目 **2026-09-16 已入库**,编号 `RULE-01-03-001~030`:三类判定口径 + 逐条对照);**本文件不复制该对照表正文**;该条目下载不到时按 §5 `G-5` 记 gap 并转人工,**不凭经验判定版本新旧**。
|
|
47
|
+
- 表内标注 `核验状态=待官方核验` 的行(文号待核、标准现行版本待核),出意见前须先比对官方原文,不得直接据此判"依据过期"。
|
|
48
|
+
- 本类缺陷只核"依据章节自身",不重复核测算参数取值(归方法轴)。
|
|
49
|
+
|
|
50
|
+
**方法与程序披露**:评估方法及选取理由;仅采用单一方法时须披露适用受限或操作受限的原因(`271`);程序实施过程说明(`272`);评估假设披露(`273`)。
|
|
51
|
+
|
|
52
|
+
**结论与特别事项**:结论须文字与数字双表述、载明使用有效期,区间值或其他形式须经与委托人沟通(`274`);**特别事项说明七类完整性判定主干**(`275`);使用限制说明四项(`276`);报告日(结论形成日)与签署日可不同,按字段口径核对(`277`)。
|
|
53
|
+
|
|
54
|
+
**程序受限的报告说明义务**(`257`,与程序层衔接):程序受限时报告须说明受限情况、处理方式及其对结论的影响三要素;受限对结论有重大影响或无法判断影响程度时不得出具报告。
|
|
55
|
+
|
|
56
|
+
## 3. 程序与质控层检查维度
|
|
57
|
+
|
|
58
|
+
### 3.1 程序执行(按 §1 选定版本的对应条目)
|
|
59
|
+
|
|
60
|
+
**承接**:受理前应明确的基本事项清单(新版 `008`/旧版 `108`);胜任能力、独立性与业务风险评价,须有书面评价记录;不具备条件仍承接为高严重度(`009`/`109`);委托合同订立与服务费合理性(`010`/`110`)。
|
|
61
|
+
|
|
62
|
+
**计划与调查**:评估计划要素齐全,计划与实际出现重大差异时是否调整(`011`/`111`);是否实施现场调查,**抽样调查是否对方法、比例、样本代表性作出分析说明**——无分析即缺陷(`012`/`112`);资料多维收集与涉密项目保密安排(`013`/`113`);重要资料是否取得委托人确认,拒绝确认是否按程序缺失条款处理(`014`/`114`);关键文件与证明的核查验证留痕(`015`/`115`)。
|
|
63
|
+
|
|
64
|
+
**程序缺失与专业能力受限**(高频依据):是否告知委托人相关限制与风险、底稿是否记录限制情形/弥补措施/影响分析、报告是否披露、有重大影响或无法判断影响程度时是否仍出具报告——后两者直接构成高严重度缺陷(`006`);超出专业能力的受限事项处理链(`016`/`116`)。
|
|
65
|
+
|
|
66
|
+
**引用其他机构报告(利用专家工作)**:报告披露引用其他机构报告结论的,**除核对披露要素(特别事项第四项,`275`)外,须单独核对报告是否说明对被引用报告本体的核查验证方式、范围与结论**(`015`/`115`)——只有披露、没有核查验证说明即出条目。被引用报告由委托人、产权持有人或其关联方出具的(如同为项目数据服务商、同一集团内机构),还须核对报告是否披露该报告的客观性保障依据;依据不足时按待人工确认处理,不直接判不符。利用专家工作类准则精编未就位时的覆盖不完整,按 §5 `G-2` 声明。
|
|
67
|
+
|
|
68
|
+
**同事实多轴归属纪律**:程序层事实(引用他人报告、核实与调查程序、核查验证留痕)**不得只在报告披露轴登记**——披露轴核"是否披露",程序轴另核"是否实施、是否与对象适配";两轴各自出条目状态,缺一不可。事实已在披露轴出现过,不构成程序轴免检的理由。
|
|
69
|
+
|
|
70
|
+
**测算与结论**:资料的分析归纳整理留痕(`017`/`117`);方法选择是否经适用性分析(`018`/`118`);公式与参数选取和方法的匹配性(`019`/`119`);假设是否合理使用并已在报告中披露(`020`/`120`);多方法并存时是否对各方法结果分析比较后形成结论(`021`/`121`)。
|
|
71
|
+
|
|
72
|
+
**出具与档案**:初步评估报告编制时点与"先结论后初稿"的程序顺序(`022`/`122`);内部审核/分级审核执行与记录(`023`/`123`);出具前沟通保持独立判断、调整后是否再次审核(`024`/`124`,旧版无再审核要求);重大特别事项的关注与充分披露(`025`/`125`);业务报备与出具版本一致性(`026`);归档及时性与完整性、涉密档案要求(`027`/`126`)。
|
|
73
|
+
|
|
74
|
+
### 3.2 机构质量控制(`RULE-01-02-401~456`,2027-01-01 起施行,见 §1)
|
|
75
|
+
|
|
76
|
+
**体系与责任**:质量控制体系要求与构成(`402`/`403`);质量控制制度与程序九要素框架(`404`);制度书面化与记录(`405`);控制主体与责任落实机制,含独立的"项目审核人员"角色(`407`);最高管理层界定与最终责任(`408`/`409`);首席评估师制度与职责(`410`/`411`);项目负责人制度——**法定评估业务项目负责人须为评估师**(`412`/`413`);项目审核人员要求与职责四项(`414`/`415`)。
|
|
77
|
+
|
|
78
|
+
**职业道德与人力**:职业道德制度与强化方式(`418`/`419`);独立性保障(`420`);保密管理(`421`);人力资源配置与团队配备条件(`422`~`424`);利用专家与外部人员工作的档案三要素——资质、独立性声明、工作底稿(`425`);业务承接控制、客户与业务选择、承接决定、业务风险分类(`426`~`430`);委托合同变更中止解除(`431`);计划控制目标与制度、编制职责及新技术使用须有技术路径说明书与签批(`432`~`434`)。
|
|
79
|
+
|
|
80
|
+
**实施、审核与监控**:**法定评估业务不得以估值报告或价值咨询报告替代评估报告**(`435`);疑难问题与意见分歧须形成书面结论后方可出具报告(`438`);项目负责人指导监督(`439`);**内部审核与分级审核——设专门部门/岗位实施内部审核、按重要性与复杂程度分级、证券评估业务至少三级审核,二三级审核人员独立于项目团队、不得签署本人审核的报告、不得参与本人审核的项目,分支机构报告统一审核把关**(`440`,本项目"审核/复核独立性"判定最直接的规则);报告签发与瑕疵处置(`441`);质量监控内容、监控措施、纠正预防、体系评价改进(`442`~`445`);文件控制——防用废止版本文件(`446`);记录与档案管理(`447`~`450`);质量控制记录类别含 AI/相关技术工具使用记录(`448`);数据安全、信息技术控制、**数字化技术不得替代专业判断**、人工复核机制、网络安全(`451`~`455`)。
|
|
81
|
+
|
|
82
|
+
## 4. 与其他能力的接口
|
|
83
|
+
|
|
84
|
+
| 接口 | 本技能负责 | 交出给谁 |
|
|
85
|
+
| --- | --- | --- |
|
|
86
|
+
| 报告载明的方法与理由是否完整(`271`)↔ 方法选取是否恰当 | 载明与披露完整性 | method 轴 |
|
|
87
|
+
| 程序受限的说明义务(`257`)↔ 受限处理链(`006`/`016`) | 说明义务与处理链留痕 | 对象/方法轴判断影响程度 |
|
|
88
|
+
| 特别事项七类披露(`275`)↔ 重大特别事项关注(`025`) | 披露完整性 | 对应专业轴 |
|
|
89
|
+
| 基准日一致性(`269`)↔ 基准要素一致性模块 | 报告与合同基准日比对 | 对象/业务轴 |
|
|
90
|
+
| 报告引用数字可追溯(`015`/`019` 留痕)↔ 表格勾稽差异清单 | 底稿留痕核对 | `crwu-audit-datacheck` |
|
|
91
|
+
| 分级审核与审核人员独立性(`440`) | 机构层面合规 | 人工复核(涉机构制度) |
|
|
92
|
+
|
|
93
|
+
## 5. 内容缺口(如实登记,不补造)
|
|
94
|
+
|
|
95
|
+
| 编号 | 缺口 | 影响 |
|
|
96
|
+
| --- | --- | --- |
|
|
97
|
+
| G-1 | 质控指南旧版(中评协〔2017〕46 号)**未精编**,库内仅有 2026 版(2027-01-01 起施行)精编条目 | 2026 年内报告的机构质控对照**无现行依据**,只能记 gap 并转人工 |
|
|
98
|
+
| G-2 | 利用专家工作准则(中评协〔2017〕35 号)精编**待办**,库内仅有索引卡(不构成规则条目) | 专家工作类程序与披露检查只能间接引用报告准则特别事项与质控指南专家工作条款,须声明覆盖不完整 |
|
|
99
|
+
| G-3 | 报告准则体系在准则重构期是否修订**处于跟踪状态** | 报告日跨重构节点的项目版本适用性需人工确认 |
|
|
100
|
+
| G-4 | `报告准则-报告内容与附则` 中声明要素条目数与模板参考文件所述条目数**表述不一致**(一处为六项、一处为七项) | 声明章节核查按规则条目原文为准,条目数分歧登记为待核项,不自行取舍 |
|
|
101
|
+
| ~~G-5~~ | **已消解(2026-09-16)**:`06-规则库/01-监管规则与口径/依据时效对照表` 已入库(`RULE-01-03-001~030`) | 已可按该路径键实时引用;仅 `核验状态=待官方核验` 的行仍须比对官方原文后再出意见 |
|
|
102
|
+
|
|
103
|
+
`报告准则-附件格式与声明样稿-参考` 为模板类参考文件,只做格式基线对照,不构成硬依据;其使用提示要求以规则条目原文判定。
|
|
104
|
+
|
|
105
|
+
## 6. 输出
|
|
106
|
+
|
|
107
|
+
条目状态、证据字段、来源优先级与 gap 登记按 [执行契约](03-execution-contract.md) 对应章节执行,不在此复述。本技能特有要求:
|
|
108
|
+
|
|
109
|
+
- 报告披露层与程序质控层**各自独立**出条目状态,任一层缺依据不影响另一层执行;
|
|
110
|
+
- 版本选择结论(选定的版本与依据)须在输出中显式记录,便于人工复核;
|
|
111
|
+
- 索引卡与模板参考类文件不得出现在 `rule_source` 的规则性缺陷依据中。
|