cumcm-workflow · git:20260904.c1f0066 · 2026-09-04 · sha256 f3390a3723a6c38b

cumcm-workflow git:20260904.c1f0066A

Immutable. This exact content is served forever at /api/v1/blob/f3390a3723a6c38b.

---
name: cumcm-workflow
description: Build or resume a contest-ready CUMCM (China Undergraduate Mathematical Contest in Modeling) project from official problem files through modeling, one selected computation backend, bounded independent validation, fresh-context paper writing, and final delivery. Use for real CUMCM work; do not use for ordinary paper polishing or unsupported one-shot answers.
---

# CUMCM Workflow (Claude Code entry point)

This is a router. The workflow itself lives in one canonical tree so that the Codex and Claude Code entry points cannot drift apart:

```text
.agents/skills/cumcm-workflow/
├── SKILL.md      # the full workflow instructions -- read this first
├── references/   # per-stage guides
├── schemas/      # JSON Schemas for every machine-readable contract
├── scripts/      # the initializer, recorders, checker and handoff builders
└── assets/       # LaTeX scaffold and the independent-review package
```

## Do this

1. Read `.agents/skills/cumcm-workflow/SKILL.md` and follow it. Everything below is a summary of that file, not a substitute for it.
2. Read only the reference for the active stage, plus `references/handoffs.md` when crossing stages.
3. Run scripts as `python3 .agents/skills/cumcm-workflow/scripts/<name>.py ...` from the repository root. They resolve their own schemas and assets, so the working directory does not matter.

## The two rules that shape everything

- **Tooling records machine facts; you write judgement.** Never type a hash, an exit code, a page count, a source-tree digest or a result value. `record_run.py`, `index_result.py`, `record_compile.py` and `refresh_evidence.py` observe those.
- **The model is chosen late.** `working` mode accepts a draft model contract (method and scope only). The complete contract is frozen on entering `finalizing`.

## Common commands

```bash
S=.agents/skills/cumcm-workflow/scripts
python3 $S/init_project.py --project <new-dir> --project-id CUMCM-2026-B --official <official-files>
python3 $S/record_run.py --project <p> -- python3 code/try.py            # exploratory, zero declarations
python3 $S/record_run.py --project <p> --official --capability CAP-Q1-001 \
  --source code/solve.py --output results/q1.json:claim -- python3 code/solve.py
python3 $S/index_result.py --project <p> --result-id RES-Q1-001 --run RUN-Q1-001 \
  --locator results/q1.json#/minimum_cost --name "Minimum cost" --unit CNY --scope "..."
python3 $S/cumcm_check.py --project <p> --stage computation --gate-mode preflight
python3 $S/plan_redo.py --project <p> --changed code/solve.py
python3 $S/record_compile.py --project <p> --update-quality
```

## Boundaries

Never invent observed data, approvals, independent review, or successful execution. Never modify the copied official sources. Passing the checks establishes structure, provenance and preserved execution — never mathematical correctness.

To use this outside a checkout, copy this directory to `~/.claude/skills/cumcm-workflow/` and keep the repository available; the router's relative paths assume the repository is the working root.