# Problem Parser

Parse a mathematical-modeling problem into goals, objects, data, constraints, outputs...

- Repository: https://github.com/zhnnky329/MathModeling-skills (1073 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-09-24
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add zhnnky329/MathModeling-skills --skill problem-parser -g -a claude-code -y`
Codex: `npx skills add zhnnky329/MathModeling-skills --skill problem-parser -g -a codex -y`
Cursor: `npx skills add zhnnky329/MathModeling-skills --skill problem-parser -g -a cursor -y`
Gemini CLI: `npx skills add zhnnky329/MathModeling-skills --skill problem-parser -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add zhnnky329/MathModeling-skills`

## Description

Parse a mathematical-modeling problem into goals, objects, data, constraints, outputs, subquestions, dependencies, variables, relationships, and human-confirmed success criteria before any method selection.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Purpose

Produce a model-neutral problem contract. Do not start from favorite algorithms or infer missing attachments.

# Inputs

- complete problem statement and attachments list;
- contest rules and required deliverables;
- user clarifications;
- existing parse when revising.

# Workflow

1. Record source files and missing referenced material.
2. Extract the global objective and each Qx verbatim enough to preserve intent.
3. For each Qx identify:
   - goal;
   - objects/entities;
   - inputs and data;
   - decisions or unknowns;
   - hard and soft constraints;
   - required output and format;
   - evaluation/success criteria;
   - dependencies on other Qx;
   - uncertainty and ambiguity.
4. Separate:
   - statement facts;
   - observations from supplied data;
   - proposed relationships;
   - assumptions requiring human judgment.
5. If output form or success criteria are materially ambiguous, invoke one choice card. Do not choose the framing silently.
6. Save:
   - `planning/parse/problem_parse.json`
   - an optional concise `planning/parse/problem_parse.md` only when a human-readable view is useful.
7. Update the manifest status when present.

# JSON Contract

```json
{
  "schema_version": 1,
  "problem_source": [],
  "global_goal": "",
  "objects": [],
  "data_inventory": [],
  "global_constraints": [],
  "subquestions": [
    {
      "id": "Q1",
      "statement": "",
      "goal": "",
      "inputs": [],
      "unknowns_or_decisions": [],
      "constraints": [],
      "required_outputs": [],
      "success_criteria": [],
      "dependencies": [],
      "proposed_relationships": [],
      "ambiguities": []
    }
  ],
  "missing_material": [],
  "human_decisions_needed": []
}
```

# Rules

The rest: https://github.com/zhnnky329/MathModeling-skills/blob/HEAD/.claude/skills/problem-parser/SKILL.md
