generated-scene: add scheduled monitoring runtime and helper lifecycle hardening
This commit is contained in:
18
tests/fixtures/generated_scene/p0_canonical_answers/README.md
vendored
Normal file
18
tests/fixtures/generated_scene/p0_canonical_answers/README.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# P0 Canonical Answers
|
||||
|
||||
This directory stores repo-local canonical answer baselines for the
|
||||
`2026-04-17-scene-skill-60-to-90-roadmap` execution line.
|
||||
|
||||
These assets are not a claim that the full external production scenes are
|
||||
already checked into this repository. They are the in-repo equivalent
|
||||
golden baselines used to keep three P0 archetypes stable during regression:
|
||||
|
||||
- `p0-1-tq-lineloss-report.scene-ir.json`
|
||||
Repo-local `multi_mode_request` canonical aligned to the `tq` benchmark role.
|
||||
- `p0-2-single-request-table.scene-ir.json`
|
||||
Repo-local `single_request_table` canonical for generic single-request reports.
|
||||
- `p0-3-paginated-enrichment.scene-ir.json`
|
||||
Repo-local `paginated_enrichment` canonical for list-detail enrichment flows.
|
||||
|
||||
The current execution phase uses these files as golden `Scene IR` references
|
||||
until full external P0 source packages are brought into a controlled fixture set.
|
||||
71
tests/fixtures/generated_scene/p0_canonical_answers/p0-1-tq-lineloss-report.scene-ir.json
vendored
Normal file
71
tests/fixtures/generated_scene/p0_canonical_answers/p0-1-tq-lineloss-report.scene-ir.json
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"sceneId": "tq-lineloss-report",
|
||||
"sceneName": "台区线损月周累计统计分析",
|
||||
"sceneKind": "report_collection",
|
||||
"workflowArchetype": "multi_mode_request",
|
||||
"bootstrap": {
|
||||
"expectedDomain": "20.76.57.61:18080",
|
||||
"targetUrl": "http://20.76.57.61:18080/gsllys",
|
||||
"requiresTargetPage": true,
|
||||
"pageTitleKeywords": ["台区线损"],
|
||||
"source": "canonical_fixture"
|
||||
},
|
||||
"defaultMode": "month",
|
||||
"modeSwitchField": "period_mode",
|
||||
"modes": [
|
||||
{
|
||||
"name": "month",
|
||||
"label": "month",
|
||||
"condition": {
|
||||
"field": "period_mode",
|
||||
"operator": "equals",
|
||||
"value": "month"
|
||||
},
|
||||
"apiEndpoint": {
|
||||
"name": "monthReport",
|
||||
"url": "http://20.76.57.61:18080/gsllys/monthReport",
|
||||
"method": "POST",
|
||||
"contentType": "application/x-www-form-urlencoded"
|
||||
},
|
||||
"requestTemplate": {
|
||||
"orgno": "${args.org_code}",
|
||||
"tjzq": "month"
|
||||
},
|
||||
"responsePath": "content"
|
||||
},
|
||||
{
|
||||
"name": "week",
|
||||
"label": "week",
|
||||
"condition": {
|
||||
"field": "period_mode",
|
||||
"operator": "equals",
|
||||
"value": "week"
|
||||
},
|
||||
"apiEndpoint": {
|
||||
"name": "weekReport",
|
||||
"url": "http://20.76.57.61:18080/gsllys/weekReport",
|
||||
"method": "POST",
|
||||
"contentType": "application/x-www-form-urlencoded"
|
||||
},
|
||||
"requestTemplate": {
|
||||
"orgno": "${args.org_code}",
|
||||
"tjzq": "week"
|
||||
},
|
||||
"responsePath": "content"
|
||||
}
|
||||
],
|
||||
"workflowSteps": [
|
||||
{ "type": "request", "description": "select mode and query corresponding endpoint" },
|
||||
{ "type": "transform", "description": "normalize mode-specific table rows" }
|
||||
],
|
||||
"readiness": {
|
||||
"level": "A",
|
||||
"gates": [
|
||||
{ "name": "bootstrap_resolved", "passed": true },
|
||||
{ "name": "request_contract_complete", "passed": true },
|
||||
{ "name": "response_contract_complete", "passed": true },
|
||||
{ "name": "workflow_contract_complete", "passed": true },
|
||||
{ "name": "runtime_contract_compatible", "passed": true }
|
||||
]
|
||||
}
|
||||
}
|
||||
36
tests/fixtures/generated_scene/p0_canonical_answers/p0-2-single-request-table.scene-ir.json
vendored
Normal file
36
tests/fixtures/generated_scene/p0_canonical_answers/p0-2-single-request-table.scene-ir.json
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"sceneId": "single-request-report",
|
||||
"sceneName": "单请求通用报表",
|
||||
"sceneKind": "report_collection",
|
||||
"workflowArchetype": "single_request_table",
|
||||
"bootstrap": {
|
||||
"expectedDomain": "yx.gs.sgcc.com.cn",
|
||||
"targetUrl": "http://yx.gs.sgcc.com.cn/report",
|
||||
"requiresTargetPage": true,
|
||||
"pageTitleKeywords": ["通用报表"],
|
||||
"source": "canonical_fixture"
|
||||
},
|
||||
"apiEndpoints": [
|
||||
{
|
||||
"name": "reportList",
|
||||
"url": "http://yx.gs.sgcc.com.cn/report/list",
|
||||
"method": "POST",
|
||||
"contentType": "application/json"
|
||||
}
|
||||
],
|
||||
"responsePath": "rows",
|
||||
"workflowSteps": [
|
||||
{ "type": "request", "description": "single request table collection" },
|
||||
{ "type": "transform", "description": "normalize table rows" }
|
||||
],
|
||||
"readiness": {
|
||||
"level": "A",
|
||||
"gates": [
|
||||
{ "name": "bootstrap_resolved", "passed": true },
|
||||
{ "name": "request_contract_complete", "passed": true },
|
||||
{ "name": "response_contract_complete", "passed": true },
|
||||
{ "name": "workflow_contract_complete", "passed": true },
|
||||
{ "name": "runtime_contract_compatible", "passed": true }
|
||||
]
|
||||
}
|
||||
}
|
||||
100
tests/fixtures/generated_scene/p0_canonical_answers/p0-3-paginated-enrichment.scene-ir.json
vendored
Normal file
100
tests/fixtures/generated_scene/p0_canonical_answers/p0-3-paginated-enrichment.scene-ir.json
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"sceneId": "paginated-enrichment-report",
|
||||
"sceneName": "分页补数明细报表",
|
||||
"sceneKind": "report_collection",
|
||||
"workflowArchetype": "paginated_enrichment",
|
||||
"bootstrap": {
|
||||
"expectedDomain": "yx.gs.sgcc.com.cn",
|
||||
"targetUrl": "http://yx.gs.sgcc.com.cn",
|
||||
"requiresTargetPage": true,
|
||||
"pageTitleKeywords": ["分页补数"],
|
||||
"source": "canonical_fixture"
|
||||
},
|
||||
"apiEndpoints": [
|
||||
{
|
||||
"name": "userList",
|
||||
"url": "http://yx.gs.sgcc.com.cn/marketing/userList",
|
||||
"method": "POST",
|
||||
"contentType": "application/json"
|
||||
},
|
||||
{
|
||||
"name": "userCharges",
|
||||
"url": "http://yx.gs.sgcc.com.cn/marketing/userCharges",
|
||||
"method": "POST",
|
||||
"contentType": "application/json"
|
||||
}
|
||||
],
|
||||
"mainRequest": {
|
||||
"apiEndpoint": {
|
||||
"name": "userList",
|
||||
"url": "http://yx.gs.sgcc.com.cn/marketing/userList",
|
||||
"method": "POST",
|
||||
"contentType": "application/json",
|
||||
"description": "g3_main_request"
|
||||
},
|
||||
"requestTemplate": {
|
||||
"page": "${args.page}",
|
||||
"pageSize": "${args.page_size}"
|
||||
},
|
||||
"responsePath": "rows",
|
||||
"columnDefs": []
|
||||
},
|
||||
"paginationPlan": {
|
||||
"pageField": "page",
|
||||
"pageSizeField": "pageSize",
|
||||
"startPage": 1,
|
||||
"terminationRule": "stop_when_page_rows_empty"
|
||||
},
|
||||
"enrichmentRequests": [
|
||||
{
|
||||
"name": "userCharges",
|
||||
"apiEndpoint": {
|
||||
"name": "userCharges",
|
||||
"url": "http://yx.gs.sgcc.com.cn/marketing/userCharges",
|
||||
"method": "POST",
|
||||
"contentType": "application/json",
|
||||
"description": "g3_enrichment_request"
|
||||
},
|
||||
"paramBindings": {},
|
||||
"responsePath": "rows",
|
||||
"consumedFields": ["custNo"]
|
||||
}
|
||||
],
|
||||
"joinKeys": ["custNo"],
|
||||
"mergeOrDedupeRules": ["dedupe:custNo", "aggregate:charge"],
|
||||
"exportPlan": {
|
||||
"entry": "exportExcel",
|
||||
"artifactType": "report-artifact",
|
||||
"dependsOnHostBridge": false
|
||||
},
|
||||
"responsePath": "rows",
|
||||
"workflowSteps": [
|
||||
{ "type": "request", "entry": "getUserList", "endpoint": "userList" },
|
||||
{ "type": "paginate", "entry": "getUserList" },
|
||||
{ "type": "secondary_request", "entry": "getUserCharges" },
|
||||
{ "type": "filter", "expr": "row.charge !== 0" },
|
||||
{ "type": "export", "entry": "exportExcel" }
|
||||
],
|
||||
"workflowEvidence": {
|
||||
"requestEntries": ["getUserList"],
|
||||
"paginationFields": ["page", "pageSize"],
|
||||
"secondaryRequestEntries": ["getUserCharges"],
|
||||
"postProcessSteps": ["filter", "export"]
|
||||
},
|
||||
"readiness": {
|
||||
"level": "A",
|
||||
"gates": [
|
||||
{ "name": "bootstrap_resolved", "passed": true },
|
||||
{ "name": "request_contract_complete", "passed": true },
|
||||
{ "name": "response_contract_complete", "passed": true },
|
||||
{ "name": "workflow_contract_complete", "passed": true },
|
||||
{ "name": "runtime_contract_compatible", "passed": true },
|
||||
{ "name": "g3_main_request_resolved", "passed": true },
|
||||
{ "name": "g3_pagination_contract_complete", "passed": true },
|
||||
{ "name": "g3_enrichment_contract_complete", "passed": true },
|
||||
{ "name": "g3_join_key_resolved", "passed": true },
|
||||
{ "name": "g3_export_path_identified", "passed": true },
|
||||
{ "name": "g3_runtime_scope_compatible", "passed": true }
|
||||
]
|
||||
}
|
||||
}
|
||||
120
tests/fixtures/generated_scene/p0_canonical_answers/p0-canonical-manifest.json
vendored
Normal file
120
tests/fixtures/generated_scene/p0_canonical_answers/p0-canonical-manifest.json
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"targets": [
|
||||
{
|
||||
"id": "p0-1-tq-lineloss-report",
|
||||
"fixtureDir": "tests/fixtures/generated_scene/multi_mode",
|
||||
"canonicalSceneIr": "tests/fixtures/generated_scene/p0_canonical_answers/p0-1-tq-lineloss-report.scene-ir.json",
|
||||
"requiredEvidenceTypes": [
|
||||
"bootstrap_candidate",
|
||||
"endpoint_candidate",
|
||||
"request_template_candidate",
|
||||
"workflow_candidate"
|
||||
],
|
||||
"requiredWorkflowStepTypes": [
|
||||
"request",
|
||||
"transform"
|
||||
],
|
||||
"requiredGateNames": [
|
||||
"bootstrap_resolved",
|
||||
"request_contract_complete",
|
||||
"response_contract_complete",
|
||||
"workflow_contract_complete",
|
||||
"runtime_contract_compatible"
|
||||
],
|
||||
"acceptanceChecklist": [
|
||||
"mode_matrix_restored",
|
||||
"request_response_contract_restored",
|
||||
"bootstrap_context_resolved"
|
||||
],
|
||||
"failureTaxonomy": [
|
||||
"bootstrap_target",
|
||||
"request_mode_param",
|
||||
"response_path",
|
||||
"workflow_transform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "p0-2-single-request-table",
|
||||
"fixtureDir": "tests/fixtures/generated_scene/single_request_table",
|
||||
"canonicalSceneIr": "tests/fixtures/generated_scene/p0_canonical_answers/p0-2-single-request-table.scene-ir.json",
|
||||
"requiredEvidenceTypes": [
|
||||
"bootstrap_candidate",
|
||||
"endpoint_candidate",
|
||||
"request_template_candidate",
|
||||
"response_path_candidate"
|
||||
],
|
||||
"requiredWorkflowStepTypes": [
|
||||
"request",
|
||||
"transform"
|
||||
],
|
||||
"requiredGateNames": [
|
||||
"bootstrap_resolved",
|
||||
"request_contract_complete",
|
||||
"response_contract_complete",
|
||||
"workflow_contract_complete",
|
||||
"runtime_contract_compatible"
|
||||
],
|
||||
"acceptanceChecklist": [
|
||||
"single_request_template_restored",
|
||||
"response_contract_restored",
|
||||
"generic_report_runnable"
|
||||
],
|
||||
"failureTaxonomy": [
|
||||
"request_endpoint",
|
||||
"response_path",
|
||||
"workflow_steps"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "p0-3-paginated-enrichment",
|
||||
"fixtureDir": "tests/fixtures/generated_scene/paginated_enrichment",
|
||||
"canonicalSceneIr": "tests/fixtures/generated_scene/p0_canonical_answers/p0-3-paginated-enrichment.scene-ir.json",
|
||||
"requiredEvidenceTypes": [
|
||||
"bootstrap_candidate",
|
||||
"endpoint_candidate",
|
||||
"main_request_candidate",
|
||||
"enrichment_request_candidate",
|
||||
"join_key_candidate",
|
||||
"dedupe_or_merge_rule_candidate",
|
||||
"response_path_candidate",
|
||||
"workflow_candidate"
|
||||
],
|
||||
"requiredWorkflowStepTypes": [
|
||||
"request",
|
||||
"paginate",
|
||||
"secondary_request",
|
||||
"filter",
|
||||
"export"
|
||||
],
|
||||
"requiredGateNames": [
|
||||
"bootstrap_resolved",
|
||||
"request_contract_complete",
|
||||
"response_contract_complete",
|
||||
"workflow_contract_complete",
|
||||
"runtime_contract_compatible",
|
||||
"g3_main_request_resolved",
|
||||
"g3_pagination_contract_complete",
|
||||
"g3_enrichment_contract_complete",
|
||||
"g3_join_key_resolved",
|
||||
"g3_export_path_identified",
|
||||
"g3_runtime_scope_compatible"
|
||||
],
|
||||
"acceptanceChecklist": [
|
||||
"main_request_restored",
|
||||
"pagination_chain_restored",
|
||||
"secondary_request_restored",
|
||||
"join_key_restored",
|
||||
"fail_closed_ready"
|
||||
],
|
||||
"failureTaxonomy": [
|
||||
"main_request",
|
||||
"paginate_step",
|
||||
"secondary_request",
|
||||
"join_key_missing",
|
||||
"post_process",
|
||||
"response_path",
|
||||
"export_plan"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user