generated-scene: add scheduled monitoring runtime and helper lifecycle hardening

This commit is contained in:
木炎
2026-05-06 09:47:12 +08:00
parent 6cdd71b682
commit 8162118e6d
183 changed files with 103674 additions and 130 deletions

View 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.

View 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 }
]
}
}

View 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 }
]
}
}

View 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 }
]
}
}

View 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"
]
}
]
}