一键导入
problem-parser
Parse a mathematical modeling problem into goals, objects, constraints, data, outputs, and subquestions.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Parse a mathematical modeling problem into goals, objects, constraints, data, outputs, and subquestions.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
At a judgment point, emit the 2-3 questions only the human modeler can answer — framed as trade-offs, not answers — and refuse to answer them. The inverse of "AI answers, human confirms": here the AI asks, the human answers, then the AI assists with the consequences.
Manage the full mathematical modeling contest workflow and decide which skill should be used next.
Verify every skill that claims "completed" produced a substantive audit/review artifact on disk with ≥ 5 explicit pass items. Runs as part of the independent audit layer that does not trust any single skill's self-declaration of done.
Plan figures and tables that support the modeling logic, results, and paper narrative.
Generate publication-quality mathematical modeling figures with matplotlib, covering evaluation charts, prediction plots, optimization diagrams, mechanism schematics, heatmaps, and multi-panel layouts. Use when creating or revising figures for contest papers.
Extract, organize, and document unified model assumptions from the problem parse and candidate method pools, distinguishing necessary from simplifying assumptions.
| name | problem-parser |
| description | Parse a mathematical modeling problem into goals, objects, constraints, data, outputs, and subquestions. |
| license | MIT |
Convert a raw mathematical modeling contest problem into a structured task specification.
This skill focuses on reading and decomposing the problem. It extracts what the contest is asking for, what objects are being studied, what data and constraints are available, what outputs are required, and how the subquestions depend on each other.
This skill does not classify the final problem type, select models, write code, or draft paper sections.
Use this skill:
At least one of the following must be available:
If the problem statement is incomplete, parse the available content and mark the missing parts explicitly.
Use or request the following:
workspace/problem/ files, if available.Read the problem for structure, not for model names.
Extract the five required reading labels.
Decompose every subquestion.
Q1, Q2, Q3.evaluation_criteria / success-definition. The rubric a judge grades against — what counts as a good answer — is a modeling judgment, not a parse. Emit it as a [MODELER INPUT NEEDED: in the team's words, what makes an answer to this subquestion good?] placeholder for the human to fill. The AI must not invent the rubric.Extract variables, parameters, and relationships at a preliminary level.
[AI-DRAFT — modeler must confirm: <relationship>] so the human ratifies or rewrites it before it is treated as settled.Identify ambiguity and risk.
Produce a structured parse artifact.
workspace/problem/problem-parser/.Produce a structured problem parse as paired artifacts:
workspace/problem/problem-parser/problem_parse.jsonworkspace/problem/problem-parser/problem_parse.mdThe artifacts should contain:
backgroundmain_goalobjectssubquestionsconstraintsdata_inventoryrequired_outputspreliminary_variablespreliminary_relationshipsdependenciesambiguitiesrisk_flagsmissing_informationrecommended_next_skillPrefer this JSON-compatible structure for workspace/problem/problem-parser/problem_parse.json:
{
"background": "Short description of the real-world context.",
"main_goal": "What the team must ultimately solve or explain.",
"objects": [
{
"name": "object name",
"scope": "time, location, population, system, or boundary if known"
}
],
"subquestions": [
{
"id": "Q1",
"task": "What this subquestion asks for.",
"input": [
"Available or required input."
],
"processing_need": [
"What must be transformed, estimated, compared, optimized, explained, or validated."
],
"output": [
"Required deliverable for this subquestion."
],
"constraints": [
"Explicit or implicit limits."
],
"depends_on": [],
"evaluation_criteria": [
"[MODELER INPUT NEEDED: in the team's words, what makes an answer to this subquestion good?]"
]
}
],
"constraints": {
"explicit": [
"Constraints directly stated in the problem."
],
"implicit": [
"Realistic constraints inferred from the context."
]
},
"data_inventory": {
"provided": [
{
"name": "attachment or field name",
"description": "Known content or role.",
"unit": "unit if known",
"risk": "missing, inconsistent, small sample, unclear definition, or none"
}
],
"missing": [
"Data needed but not provided."
],
"external_data_needed": false
},
"required_outputs": [
"ranking, prediction, decision plan, parameter estimate, figure, table, explanation, or recommendation"
],
"preliminary_variables": {
"observable_quantities": [],
"controllable_quantities": [],
"external_parameters": [],
"unknowns_to_estimate": []
},
"preliminary_relationships": [
"[AI-DRAFT — modeler must confirm: qualitative or explicit relationship found in the problem.]"
],
"dependencies": [
{
"from": "Q1",
"to": "Q2",
"reason": "Q2 uses the result of Q1."
}
],
"ambiguities": [
"Ambiguous wording or unresolved interpretation."
],
"risk_flags": [
"Potential issue that may affect modeling."
],
"missing_information": [
"Information required to complete parsing or proceed safely."
],
"recommended_next_skill": "problem-classifier"
}
Also produce workspace/problem/problem-parser/problem_parse.md with the same fields in readable Markdown form.
evaluation_criteria / success-definition. The rubric a judge grades against is the modeler's, not the parser's — emit it as [MODELER INPUT NEEDED: in the team's words, what makes an answer to this subquestion good?] and leave it for the human. The AI provides no draft to copy here.preliminary_relationships (causal links, conservation laws, mechanism claims) on the human's behalf. Draft each one wrapped as [AI-DRAFT — modeler must confirm: <relationship>] so the human ratifies or rewrites it.[AI-DRAFT or [MODELER INPUT NEEDED sentinel in a finalized parse artifact is a GATE FAIL — exactly like a <<<HUMAN>>> sentinel in a decision artifact. The artifact is not "ready" until the human has replaced every such span. Do not strip a sentinel yourself to make the gate pass.Before handing off, verify:
evaluation_criteria carries a [MODELER INPUT NEEDED: ...] placeholder until the human supplies the rubric; the AI has authored none of it.preliminary_relationships entry is wrapped as [AI-DRAFT — modeler must confirm: ...] and none has been finalized as settled fact.[AI-DRAFT or [MODELER INPUT NEEDED sentinel survives. A surviving sentinel is a GATE FAIL (treated like <<<HUMAN>>> in decision artifacts); the parse is "ready" only after the human has replaced every such span. Never strip a sentinel to force the gate.problem-classifier.Stop and report a blocker if:
This skill must stop instead of guessing when:
When stopping, output:
After producing a validated problem parse, hand off to:
problem-classifier
The handoff should include:
Do not hand off to method-selector directly unless problem-classifier has already been completed and validated.
Input state:
Output:
{
"main_goal": "Build a decision-support solution for city evaluation, demand prediction, and resource allocation.",
"subquestions": [
{
"id": "Q1",
"task": "Evaluate and rank cities.",
"input": [
"historical indicator data"
],
"processing_need": [
"construct evaluation criteria and produce comparable scores"
],
"output": [
"city ranking",
"evaluation explanation"
],
"constraints": [],
"depends_on": [],
"evaluation_criteria": [
"[MODELER INPUT NEEDED: in the team's words, what makes an answer to this subquestion good?]"
]
},
{
"id": "Q2",
"task": "Predict future demand.",
"input": [
"historical demand data",
"Q1 evaluation results if relevant"
],
"processing_need": [
"estimate future values and explain uncertainty"
],
"output": [
"future demand predictions",
"error or uncertainty discussion"
],
"constraints": [],
"depends_on": [
"Q1"
],
"evaluation_criteria": [
"[MODELER INPUT NEEDED: in the team's words, what makes an answer to this subquestion good?]"
]
},
{
"id": "Q3",
"task": "Propose an allocation plan.",
"input": [
"predicted demand",
"resource limits"
],
"processing_need": [
"choose an allocation under constraints"
],
"output": [
"allocation decision",
"implementation explanation"
],
"constraints": [
"limited resources"
],
"depends_on": [
"Q2"
],
"evaluation_criteria": [
"[MODELER INPUT NEEDED: in the team's words, what makes an answer to this subquestion good?]"
]
}
],
"recommended_next_skill": "problem-classifier"
}
Input state:
Output:
{
"blocked_items": [
"Attachment 1 is required to identify available indicators."
],
"partial_parse_available": true,
"missing_information": [
"Attachment 1 or its field description"
],
"recommended_next_action": "Provide the missing attachment or a list of its columns before classification."
}
Input state:
Output:
{
"current_stage": "problem_parsing",
"blocked_items": [
"Model choice is premature before subquestions, data, and required outputs are parsed."
],
"next_skill": "problem-parser",
"next_actions": [
"Extract goals, objects, constraints, data, outputs, and subquestions first.",
"Then classify the subquestions before selecting methods."
]
}