ワンクリックで
problem-classifier
Classify each subquestion into standard mathematical modeling problem types.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Classify each subquestion into standard mathematical modeling problem types.
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-classifier |
| description | Classify each subquestion into standard mathematical modeling problem types. |
| license | MIT |
Classify each parsed subquestion into standard mathematical modeling problem types.
This skill converts a validated problem parse into a problem-type map. It identifies the core task type of each subquestion, explains the classification reason, lists candidate method families at a high level, and flags common misclassification risks.
This skill does not select the final model, generate code, clean data, or write paper sections.
Use this skill:
problem-parser has produced a validated problem parse.related-paper-analyzer and method-selector.A validated problem parse should exist and include:
If the problem parse is missing or incomplete, hand back to problem-parser.
Use or request:
workspace/problem/problem-parser/problem_parse.json, if available.problem-parser.Read the parsed subquestions.
Identify the main verb and expected output.
Suggest the primary type — but do not finalize the framing.
ai_suggested_type with an ai_suggestion_confidence, keeping it clearly the AI's suggestion.method-selector. It is the human's call, not the AI's. Leave modeler_chosen_type and framing_rationale as [MODELER INPUT NEEDED: ...] sentinels for the modeler to author. Do NOT pre-fill them by copying ai_suggested_type.Determine the secondary type if needed.
Identify candidate method families.
method-selector.Flag unsuitable or risky directions.
Produce a classification artifact.
workspace/problem/problem-classifier/.related-paper-analyzer as the next skill if classification is complete.Produce a problem classification artifact as paired outputs:
workspace/problem/problem-classifier/problem_classification.jsonworkspace/problem/problem-classifier/problem_classification.mdThe artifacts should contain:
classification_summarysubquestion_classificationsglobal_structurecandidate_method_familiesunsuitable_directionsclassification_risksambiguitiesrecommended_next_skillPrefer this JSON-compatible structure for workspace/problem/problem-classifier/problem_classification.json:
{
"classification_summary": {
"overall_pattern": "hybrid",
"reason": "The problem combines evaluation, prediction, and optimization across different subquestions."
},
"subquestion_classifications": [
{
"id": "Q1",
"ai_suggested_type": "evaluation",
"ai_suggestion_confidence": "high",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'evaluation']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q2 is evaluation not prediction because the graded output is a ranking, not a future value]",
"secondary_type": "data_analysis",
"classification_reason": "The subquestion asks for comparable scores or rankings based on multiple indicators.",
"output_driver": [
"ranking",
"score",
"comparative explanation"
],
"candidate_method_families": [
"indicator system construction",
"weighting methods",
"multi-criteria evaluation",
"dimensionality reduction"
],
"unsuitable_directions": [
{
"direction": "time series forecasting",
"reason": "The required output is a ranking or score, not a future value."
}
],
"risk_flags": [
"weight source must be justified",
"positive and negative indicators must be normalized consistently"
]
}
],
"global_structure": {
"is_hybrid": true,
"dependency_pattern": [
{
"from": "Q1",
"to": "Q2",
"reason": "Q2 may use Q1 scores as explanatory variables or inputs."
}
],
"suggested_workflow_order": [
"Q1",
"Q2",
"Q3"
]
},
"classification_risks": [
"Do not force the whole problem into one type if subquestions differ."
],
"ambiguities": [
"Ambiguity inherited from the problem parse, if any."
],
"recommended_next_skill": "related-paper-analyzer"
}
Also produce workspace/problem/problem-classifier/problem_classification.md with the same fields in readable Markdown form.
B-layer human-confirmation field (load-bearing framing). The primary problem-type label steers method selection, so the AI suggests but the human decides. For every subquestion:
ai_suggested_type — the AI's pick (the old primary_type). The AI authors this, with ai_suggestion_confidence and a classification_reason.modeler_chosen_type — the confirmed primary type. Emit it as [MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests '<ai_suggested_type>']. The AI must NOT fill this in.framing_rationale — emit as [MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q2 is evaluation not prediction because…]. The AI must NOT fill this in.A surviving [MODELER INPUT NEEDED (or [AI-DRAFT) sentinel in a finalized classification artifact is a Gate G1 FAIL — completeness-auditor already treats these sentinels as "not done", exactly like the C-layer <<<HUMAN>>> decision sentinel. The human must replace both sentinels before classification is "ready". Carry ai_suggested_type forward in every example below; never replace it with a finalized primary_type.
Use these labels consistently:
evaluationpredictionoptimizationmechanismclassification-clusteringgraph-routingsimulationdata-analysishybridUse when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when the main output is:
Common cues:
Common risks:
Candidate method families:
Use when:
Common risks:
Candidate method families:
method-selector. The AI suggests it (ai_suggested_type + confidence + reason); the human owns the final framing. Emit modeler_chosen_type and framing_rationale as [MODELER INPUT NEEDED: ...] sentinels and let the modeler author them.ai_suggested_type into modeler_chosen_type or framing_rationale on the human's behalf.[MODELER INPUT NEEDED or [AI-DRAFT sentinel in the finalized classification artifact is a Gate G1 FAIL — treat it exactly like the C-layer <<<HUMAN>>> sentinel; classification is not "ready" until the human replaces it.problem-parser.model-code-analyzer.Before handing off, verify:
ai_suggested_type (the AI's suggested primary type) with a confidence and reason.[MODELER INPUT NEEDED: ...] sentinels for modeler_chosen_type and framing_rationale — the AI must not have authored or copied them. A surviving sentinel is a Gate G1 FAIL the human must clear (it confirms the framing has not yet been ratified); the AI hands off with these sentinels intact, not pre-filled.related-paper-analyzer.Stop and report a blocker if:
This skill must stop instead of guessing when:
When stopping, output:
After producing a validated classification artifact, hand off to:
related-paper-analyzer
The handoff should include:
ai_suggested_type (the AI's suggested primary type) plus the modeler_chosen_type / framing_rationale status (confirmed by the human, or still a [MODELER INPUT NEEDED] sentinel)Do not hand off to method-selector directly unless literature analysis has already been completed or intentionally skipped.
Input state:
Output:
{
"classification_summary": {
"overall_pattern": "hybrid",
"reason": "The problem combines evaluation, prediction, and optimization in sequence."
},
"subquestion_classifications": [
{
"id": "Q1",
"ai_suggested_type": "evaluation",
"ai_suggestion_confidence": "high",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'evaluation']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q1 is evaluation not prediction because the graded output is a ranking, not a future value]",
"secondary_type": "data-analysis",
"classification_reason": "Q1 asks for city ranking based on multiple indicators.",
"candidate_method_families": [
"indicator system construction",
"weighting methods",
"multi-criteria evaluation"
],
"risk_flags": [
"indicator selection and weight source must be justified"
]
},
{
"id": "Q2",
"ai_suggested_type": "prediction",
"ai_suggestion_confidence": "high",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'prediction']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q2 is prediction not evaluation because the graded output is a future demand value, not a ranking]",
"secondary_type": "data-analysis",
"classification_reason": "Q2 asks for future demand estimates.",
"candidate_method_families": [
"regression",
"time series analysis",
"ensemble prediction"
],
"risk_flags": [
"prediction error and generalization must be checked"
]
},
{
"id": "Q3",
"ai_suggested_type": "optimization",
"ai_suggestion_confidence": "high",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'optimization']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q3 is optimization not evaluation because the graded output is an allocation plan under constraints, not a score]",
"secondary_type": "multi-objective decision",
"classification_reason": "Q3 asks for an allocation plan under limited resources.",
"candidate_method_families": [
"linear programming",
"integer programming",
"multi-objective optimization"
],
"risk_flags": [
"decision variables, objective function, and constraints must be explicit"
]
}
],
"recommended_next_skill": "related-paper-analyzer"
}
Input state:
Output:
{
"classification_summary": {
"overall_pattern": "hybrid",
"reason": "The title is prediction-oriented, but the subquestions require data analysis, prediction, and optimization."
},
"subquestion_classifications": [
{
"id": "Q1",
"ai_suggested_type": "data-analysis",
"ai_suggestion_confidence": "medium",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'data-analysis']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q1 is data-analysis not prediction because the graded output is influencing-factor relationships, not future values]",
"classification_reason": "Q1 asks for relationships and influencing factors rather than future values."
},
{
"id": "Q2",
"ai_suggested_type": "prediction",
"ai_suggestion_confidence": "high",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'prediction']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q2 is prediction not data-analysis because the graded output is future sales values]",
"classification_reason": "Q2 asks for future sales estimates."
},
{
"id": "Q3",
"ai_suggested_type": "optimization",
"ai_suggestion_confidence": "high",
"modeler_chosen_type": "[MODELER INPUT NEEDED: confirm or override the primary type — the AI suggests 'optimization']",
"framing_rationale": "[MODELER INPUT NEEDED: which type, and why this framing over the alternative — e.g. Q3 is optimization not prediction because the graded output is a pricing decision under constraints]",
"classification_reason": "Q3 asks for a pricing decision."
}
],
"recommended_next_skill": "related-paper-analyzer"
}
Input state:
Output:
{
"blocked_items": [
"The evaluation target and required output form are unclear."
],
"partial_classifications": [],
"missing_information": [
"What object is being evaluated",
"Whether the required output is a score, ranking, grade, or recommendation",
"Available indicator fields"
],
"recommended_next_action": "Return to problem-parser or ask the user for the missing output requirements."
}