math-modeling-competition-kit 0.1.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. math_modeling_competition_kit-0.1.0a1/LICENSE +21 -0
  2. math_modeling_competition_kit-0.1.0a1/PKG-INFO +163 -0
  3. math_modeling_competition_kit-0.1.0a1/README.md +140 -0
  4. math_modeling_competition_kit-0.1.0a1/pyproject.toml +40 -0
  5. math_modeling_competition_kit-0.1.0a1/setup.cfg +4 -0
  6. math_modeling_competition_kit-0.1.0a1/src/math_modeling_competition_kit.egg-info/PKG-INFO +163 -0
  7. math_modeling_competition_kit-0.1.0a1/src/math_modeling_competition_kit.egg-info/SOURCES.txt +48 -0
  8. math_modeling_competition_kit-0.1.0a1/src/math_modeling_competition_kit.egg-info/dependency_links.txt +1 -0
  9. math_modeling_competition_kit-0.1.0a1/src/math_modeling_competition_kit.egg-info/entry_points.txt +3 -0
  10. math_modeling_competition_kit-0.1.0a1/src/math_modeling_competition_kit.egg-info/top_level.txt +1 -0
  11. math_modeling_competition_kit-0.1.0a1/src/mmkit/__init__.py +5 -0
  12. math_modeling_competition_kit-0.1.0a1/src/mmkit/benchmark/__init__.py +23 -0
  13. math_modeling_competition_kit-0.1.0a1/src/mmkit/benchmark/core.py +586 -0
  14. math_modeling_competition_kit-0.1.0a1/src/mmkit/cli.py +465 -0
  15. math_modeling_competition_kit-0.1.0a1/src/mmkit/coordination/__init__.py +35 -0
  16. math_modeling_competition_kit-0.1.0a1/src/mmkit/coordination/core.py +565 -0
  17. math_modeling_competition_kit-0.1.0a1/src/mmkit/optimization/__init__.py +1 -0
  18. math_modeling_competition_kit-0.1.0a1/src/mmkit/paper.py +418 -0
  19. math_modeling_competition_kit-0.1.0a1/src/mmkit/provenance/__init__.py +17 -0
  20. math_modeling_competition_kit-0.1.0a1/src/mmkit/provenance/registry.py +385 -0
  21. math_modeling_competition_kit-0.1.0a1/src/mmkit/reporting/__init__.py +1 -0
  22. math_modeling_competition_kit-0.1.0a1/src/mmkit/reproducibility/__init__.py +12 -0
  23. math_modeling_competition_kit-0.1.0a1/src/mmkit/reproducibility/manifest.py +90 -0
  24. math_modeling_competition_kit-0.1.0a1/src/mmkit/reproducibility/runner.py +193 -0
  25. math_modeling_competition_kit-0.1.0a1/src/mmkit/rolling_horizon/__init__.py +1 -0
  26. math_modeling_competition_kit-0.1.0a1/src/mmkit/scaffold/__init__.py +36 -0
  27. math_modeling_competition_kit-0.1.0a1/src/mmkit/scaffold/project.py +421 -0
  28. math_modeling_competition_kit-0.1.0a1/src/mmkit/scenarios/__init__.py +1 -0
  29. math_modeling_competition_kit-0.1.0a1/src/mmkit/submission/__init__.py +5 -0
  30. math_modeling_competition_kit-0.1.0a1/src/mmkit/submission/gate.py +208 -0
  31. math_modeling_competition_kit-0.1.0a1/tests/test_benchmark.py +131 -0
  32. math_modeling_competition_kit-0.1.0a1/tests/test_benchmark_cli.py +68 -0
  33. math_modeling_competition_kit-0.1.0a1/tests/test_cli.py +42 -0
  34. math_modeling_competition_kit-0.1.0a1/tests/test_coordination.py +171 -0
  35. math_modeling_competition_kit-0.1.0a1/tests/test_coordination_cli.py +85 -0
  36. math_modeling_competition_kit-0.1.0a1/tests/test_distribution_audit.py +73 -0
  37. math_modeling_competition_kit-0.1.0a1/tests/test_paper.py +133 -0
  38. math_modeling_competition_kit-0.1.0a1/tests/test_paper_cli.py +60 -0
  39. math_modeling_competition_kit-0.1.0a1/tests/test_provenance.py +182 -0
  40. math_modeling_competition_kit-0.1.0a1/tests/test_provenance_cli.py +89 -0
  41. math_modeling_competition_kit-0.1.0a1/tests/test_publish_workflow_contract.py +36 -0
  42. math_modeling_competition_kit-0.1.0a1/tests/test_release_metadata.py +21 -0
  43. math_modeling_competition_kit-0.1.0a1/tests/test_release_tag.py +42 -0
  44. math_modeling_competition_kit-0.1.0a1/tests/test_reproducibility_manifest.py +37 -0
  45. math_modeling_competition_kit-0.1.0a1/tests/test_reproducibility_runner.py +46 -0
  46. math_modeling_competition_kit-0.1.0a1/tests/test_scaffold.py +101 -0
  47. math_modeling_competition_kit-0.1.0a1/tests/test_scaffold_benchmark.py +39 -0
  48. math_modeling_competition_kit-0.1.0a1/tests/test_scaffold_cli.py +77 -0
  49. math_modeling_competition_kit-0.1.0a1/tests/test_scaffold_coordination.py +33 -0
  50. math_modeling_competition_kit-0.1.0a1/tests/test_submission_gate.py +45 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 jzhao0
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: math-modeling-competition-kit
3
+ Version: 0.1.0a1
4
+ Summary: Reusable engineering infrastructure for mathematical modeling competitions
5
+ Author: jzhao0
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/jzhao0/math-modeling-competition-kit
8
+ Project-URL: Repository, https://github.com/jzhao0/math-modeling-competition-kit
9
+ Project-URL: Issues, https://github.com/jzhao0/math-modeling-competition-kit/issues
10
+ Project-URL: Documentation, https://github.com/jzhao0/math-modeling-competition-kit/tree/main/docs
11
+ Keywords: mathematical-modeling,reproducibility,competition,research-engineering
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
19
+ Requires-Python: >=3.11
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Dynamic: license-file
23
+
24
+ # Math Modeling Competition Kit
25
+
26
+ A reusable engineering toolkit for mathematical modeling competitions.
27
+
28
+ ## Release status
29
+
30
+ The current public line is preparing **`v0.1.0a1`**. This release is intentionally an **engineering core**, not an algorithm encyclopedia.
31
+
32
+ The `v0.1.x` public scope is distilled from the completed CUMCM 2026 development cycle and subsequent generic hardening of those engineering capabilities. It does **not** publish private contest artifacts, active future-competition training, or competition-specific tactics.
33
+
34
+ > Core principle: **Choose and validate the model early. Once the model is correct, optimize the algorithm and engineering implementation instead of endlessly replacing the model.**
35
+
36
+ ## What v0.1 provides
37
+
38
+ - deterministic workspace manifests;
39
+ - bounded clean-room execution;
40
+ - generic final-submission engineering audit;
41
+ - claim/evidence provenance locks and stale detection;
42
+ - cross-platform competition project scaffold;
43
+ - deterministic LaTeX source/dependency/citation audit;
44
+ - bounded shell-free paper build with PDF hash evidence;
45
+ - revision-guarded multi-agent task state and role leases;
46
+ - compact handoff, stale-lease reporting, writer/reviewer separation, and two-failure circuit breaking;
47
+ - post-model-freeze warmup/repeated-run runtime benchmarking;
48
+ - explicit runtime regression thresholds, environment-drift reporting, and output-identity locks;
49
+ - Windows + Ubuntu CI on Python 3.11 and 3.13.
50
+
51
+ Reusable modeling modules such as rolling-horizon engines, scenario reduction, or solver abstractions are **not part of v0.1 unless repeated real-project need has been established and the module has separately passed public-release review**.
52
+
53
+ ## Installation
54
+
55
+ From a source checkout:
56
+
57
+ ```text
58
+ python -m pip install .
59
+ ```
60
+
61
+ After the first PyPI release is explicitly approved and published:
62
+
63
+ ```text
64
+ python -m pip install math-modeling-competition-kit
65
+ ```
66
+
67
+ The command-line entry point is:
68
+
69
+ ```text
70
+ mmkit --help
71
+ ```
72
+
73
+ ## Workflow
74
+
75
+ ```text
76
+ Problem understanding
77
+ -> Model design
78
+ -> Model validation
79
+ -> MODEL_FROZEN
80
+ -> Correct implementation
81
+ -> Clean-room reproduction
82
+ -> Algorithm/runtime optimization
83
+ -> Production core
84
+ -> Paper/figures/tables
85
+ -> Final submission gate
86
+ -> Hash/freeze/submit
87
+ ```
88
+
89
+ ## Quick start
90
+
91
+ Create a generic workspace without assuming a specific future contest:
92
+
93
+ ```text
94
+ mmkit init demo-project --competition CUSTOM --year 2027
95
+ cd demo-project
96
+ mmkit coord status .
97
+ mmkit reproduce . config/run_manifest.json --json coordination/reproduction.json
98
+ mmkit benchmark run . config/benchmark.json --json coordination/benchmark.json
99
+ mmkit paper init .
100
+ mmkit paper audit . paper/main.tex --json coordination/paper_audit.json
101
+ ```
102
+
103
+ After a correct implementation is selected, lock an explicit runtime/output baseline before optimizing it:
104
+
105
+ ```text
106
+ mmkit benchmark lock coordination/benchmark.json \
107
+ --output coordination/benchmark.baseline.json \
108
+ --max-regression-percent 15
109
+
110
+ mmkit benchmark compare \
111
+ coordination/benchmark.json \
112
+ coordination/benchmark.baseline.json \
113
+ --json coordination/benchmark.compare.json
114
+ ```
115
+
116
+ When a TeX runtime is installed and the build contract is configured:
117
+
118
+ ```text
119
+ mmkit paper build . config/paper_build.json --json coordination/paper_build.json
120
+ ```
121
+
122
+ ## Documentation
123
+
124
+ See:
125
+
126
+ - `docs/PROJECT_SCAFFOLD.md` — workspace contract;
127
+ - `docs/MVP_REPRODUCIBILITY_FINAL_GATE.md` — clean-room and final-gate semantics;
128
+ - `docs/PROVENANCE_MVP.md` — claim/evidence locking;
129
+ - `docs/PAPER_PIPELINE_MVP.md` — paper auditing/build semantics;
130
+ - `docs/AGENT_COORDINATION.md` — multi-agent checkpoint/handoff semantics;
131
+ - `docs/ALGORITHM_RUNTIME_BENCHMARKING.md` — post-model-freeze performance measurement;
132
+ - `docs/RELEASE_SCOPE_V0.1.md` — exact first-release publication boundary;
133
+ - `docs/RELEASE_CHECKLIST_V0.1.md` — release gate and remaining external actions.
134
+
135
+ ## Repository structure
136
+
137
+ - `src/mmkit/` — reusable Python package;
138
+ - `tools/` — release/final-gate and audit utilities;
139
+ - `coordination/` — public coordination contracts;
140
+ - `tests/` — automated tests;
141
+ - `docs/` — architecture, contracts, roadmap and release documents;
142
+ - `migration_sources/` — frozen historical migration evidence; not product code and not part of public distribution archives.
143
+
144
+ ## Design principles
145
+
146
+ 1. Model selection happens early.
147
+ 2. Correctness comes before performance.
148
+ 3. After correctness, optimize algorithms and implementation before changing models.
149
+ 4. Research pipelines and production pipelines must be separated.
150
+ 5. Every important paper claim should have a traceable producer.
151
+ 6. Final results must be reproducible from a clean environment.
152
+ 7. Only one final integrator may write to the final submission directory.
153
+ 8. New research routes stop before the submission deadline.
154
+ 9. Submission artifacts are validated, hashed and frozen.
155
+ 10. Postmortems are converted into reusable tooling only after privacy/provenance/reuse review.
156
+
157
+ ## Publication boundary
158
+
159
+ Future competition training and new competition-specific work are private by default. They are not copied into this public repository during active preparation or competition. Any later publication requires a separate post-competition distillation, provenance/license review, tests, PR, and explicit human publication decision.
160
+
161
+ ## License
162
+
163
+ MIT
@@ -0,0 +1,140 @@
1
+ # Math Modeling Competition Kit
2
+
3
+ A reusable engineering toolkit for mathematical modeling competitions.
4
+
5
+ ## Release status
6
+
7
+ The current public line is preparing **`v0.1.0a1`**. This release is intentionally an **engineering core**, not an algorithm encyclopedia.
8
+
9
+ The `v0.1.x` public scope is distilled from the completed CUMCM 2026 development cycle and subsequent generic hardening of those engineering capabilities. It does **not** publish private contest artifacts, active future-competition training, or competition-specific tactics.
10
+
11
+ > Core principle: **Choose and validate the model early. Once the model is correct, optimize the algorithm and engineering implementation instead of endlessly replacing the model.**
12
+
13
+ ## What v0.1 provides
14
+
15
+ - deterministic workspace manifests;
16
+ - bounded clean-room execution;
17
+ - generic final-submission engineering audit;
18
+ - claim/evidence provenance locks and stale detection;
19
+ - cross-platform competition project scaffold;
20
+ - deterministic LaTeX source/dependency/citation audit;
21
+ - bounded shell-free paper build with PDF hash evidence;
22
+ - revision-guarded multi-agent task state and role leases;
23
+ - compact handoff, stale-lease reporting, writer/reviewer separation, and two-failure circuit breaking;
24
+ - post-model-freeze warmup/repeated-run runtime benchmarking;
25
+ - explicit runtime regression thresholds, environment-drift reporting, and output-identity locks;
26
+ - Windows + Ubuntu CI on Python 3.11 and 3.13.
27
+
28
+ Reusable modeling modules such as rolling-horizon engines, scenario reduction, or solver abstractions are **not part of v0.1 unless repeated real-project need has been established and the module has separately passed public-release review**.
29
+
30
+ ## Installation
31
+
32
+ From a source checkout:
33
+
34
+ ```text
35
+ python -m pip install .
36
+ ```
37
+
38
+ After the first PyPI release is explicitly approved and published:
39
+
40
+ ```text
41
+ python -m pip install math-modeling-competition-kit
42
+ ```
43
+
44
+ The command-line entry point is:
45
+
46
+ ```text
47
+ mmkit --help
48
+ ```
49
+
50
+ ## Workflow
51
+
52
+ ```text
53
+ Problem understanding
54
+ -> Model design
55
+ -> Model validation
56
+ -> MODEL_FROZEN
57
+ -> Correct implementation
58
+ -> Clean-room reproduction
59
+ -> Algorithm/runtime optimization
60
+ -> Production core
61
+ -> Paper/figures/tables
62
+ -> Final submission gate
63
+ -> Hash/freeze/submit
64
+ ```
65
+
66
+ ## Quick start
67
+
68
+ Create a generic workspace without assuming a specific future contest:
69
+
70
+ ```text
71
+ mmkit init demo-project --competition CUSTOM --year 2027
72
+ cd demo-project
73
+ mmkit coord status .
74
+ mmkit reproduce . config/run_manifest.json --json coordination/reproduction.json
75
+ mmkit benchmark run . config/benchmark.json --json coordination/benchmark.json
76
+ mmkit paper init .
77
+ mmkit paper audit . paper/main.tex --json coordination/paper_audit.json
78
+ ```
79
+
80
+ After a correct implementation is selected, lock an explicit runtime/output baseline before optimizing it:
81
+
82
+ ```text
83
+ mmkit benchmark lock coordination/benchmark.json \
84
+ --output coordination/benchmark.baseline.json \
85
+ --max-regression-percent 15
86
+
87
+ mmkit benchmark compare \
88
+ coordination/benchmark.json \
89
+ coordination/benchmark.baseline.json \
90
+ --json coordination/benchmark.compare.json
91
+ ```
92
+
93
+ When a TeX runtime is installed and the build contract is configured:
94
+
95
+ ```text
96
+ mmkit paper build . config/paper_build.json --json coordination/paper_build.json
97
+ ```
98
+
99
+ ## Documentation
100
+
101
+ See:
102
+
103
+ - `docs/PROJECT_SCAFFOLD.md` — workspace contract;
104
+ - `docs/MVP_REPRODUCIBILITY_FINAL_GATE.md` — clean-room and final-gate semantics;
105
+ - `docs/PROVENANCE_MVP.md` — claim/evidence locking;
106
+ - `docs/PAPER_PIPELINE_MVP.md` — paper auditing/build semantics;
107
+ - `docs/AGENT_COORDINATION.md` — multi-agent checkpoint/handoff semantics;
108
+ - `docs/ALGORITHM_RUNTIME_BENCHMARKING.md` — post-model-freeze performance measurement;
109
+ - `docs/RELEASE_SCOPE_V0.1.md` — exact first-release publication boundary;
110
+ - `docs/RELEASE_CHECKLIST_V0.1.md` — release gate and remaining external actions.
111
+
112
+ ## Repository structure
113
+
114
+ - `src/mmkit/` — reusable Python package;
115
+ - `tools/` — release/final-gate and audit utilities;
116
+ - `coordination/` — public coordination contracts;
117
+ - `tests/` — automated tests;
118
+ - `docs/` — architecture, contracts, roadmap and release documents;
119
+ - `migration_sources/` — frozen historical migration evidence; not product code and not part of public distribution archives.
120
+
121
+ ## Design principles
122
+
123
+ 1. Model selection happens early.
124
+ 2. Correctness comes before performance.
125
+ 3. After correctness, optimize algorithms and implementation before changing models.
126
+ 4. Research pipelines and production pipelines must be separated.
127
+ 5. Every important paper claim should have a traceable producer.
128
+ 6. Final results must be reproducible from a clean environment.
129
+ 7. Only one final integrator may write to the final submission directory.
130
+ 8. New research routes stop before the submission deadline.
131
+ 9. Submission artifacts are validated, hashed and frozen.
132
+ 10. Postmortems are converted into reusable tooling only after privacy/provenance/reuse review.
133
+
134
+ ## Publication boundary
135
+
136
+ Future competition training and new competition-specific work are private by default. They are not copied into this public repository during active preparation or competition. Any later publication requires a separate post-competition distillation, provenance/license review, tests, PR, and explicit human publication decision.
137
+
138
+ ## License
139
+
140
+ MIT
@@ -0,0 +1,40 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "math-modeling-competition-kit"
7
+ version = "0.1.0a1"
8
+ description = "Reusable engineering infrastructure for mathematical modeling competitions"
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{name = "jzhao0"}]
14
+ keywords = ["mathematical-modeling", "reproducibility", "competition", "research-engineering"]
15
+ classifiers = [
16
+ "Development Status :: 3 - Alpha",
17
+ "Intended Audience :: Science/Research",
18
+ "Operating System :: OS Independent",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Topic :: Scientific/Engineering :: Mathematics",
23
+ ]
24
+ dependencies = []
25
+
26
+ [project.urls]
27
+ Homepage = "https://github.com/jzhao0/math-modeling-competition-kit"
28
+ Repository = "https://github.com/jzhao0/math-modeling-competition-kit"
29
+ Issues = "https://github.com/jzhao0/math-modeling-competition-kit/issues"
30
+ Documentation = "https://github.com/jzhao0/math-modeling-competition-kit/tree/main/docs"
31
+
32
+ [project.scripts]
33
+ mmkit = "mmkit.cli:main"
34
+ mmkit-final-gate = "mmkit.submission.gate:main"
35
+
36
+ [tool.setuptools.packages.find]
37
+ where = ["src"]
38
+
39
+ [tool.setuptools]
40
+ package-dir = {"" = "src"}
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: math-modeling-competition-kit
3
+ Version: 0.1.0a1
4
+ Summary: Reusable engineering infrastructure for mathematical modeling competitions
5
+ Author: jzhao0
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/jzhao0/math-modeling-competition-kit
8
+ Project-URL: Repository, https://github.com/jzhao0/math-modeling-competition-kit
9
+ Project-URL: Issues, https://github.com/jzhao0/math-modeling-competition-kit/issues
10
+ Project-URL: Documentation, https://github.com/jzhao0/math-modeling-competition-kit/tree/main/docs
11
+ Keywords: mathematical-modeling,reproducibility,competition,research-engineering
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
19
+ Requires-Python: >=3.11
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Dynamic: license-file
23
+
24
+ # Math Modeling Competition Kit
25
+
26
+ A reusable engineering toolkit for mathematical modeling competitions.
27
+
28
+ ## Release status
29
+
30
+ The current public line is preparing **`v0.1.0a1`**. This release is intentionally an **engineering core**, not an algorithm encyclopedia.
31
+
32
+ The `v0.1.x` public scope is distilled from the completed CUMCM 2026 development cycle and subsequent generic hardening of those engineering capabilities. It does **not** publish private contest artifacts, active future-competition training, or competition-specific tactics.
33
+
34
+ > Core principle: **Choose and validate the model early. Once the model is correct, optimize the algorithm and engineering implementation instead of endlessly replacing the model.**
35
+
36
+ ## What v0.1 provides
37
+
38
+ - deterministic workspace manifests;
39
+ - bounded clean-room execution;
40
+ - generic final-submission engineering audit;
41
+ - claim/evidence provenance locks and stale detection;
42
+ - cross-platform competition project scaffold;
43
+ - deterministic LaTeX source/dependency/citation audit;
44
+ - bounded shell-free paper build with PDF hash evidence;
45
+ - revision-guarded multi-agent task state and role leases;
46
+ - compact handoff, stale-lease reporting, writer/reviewer separation, and two-failure circuit breaking;
47
+ - post-model-freeze warmup/repeated-run runtime benchmarking;
48
+ - explicit runtime regression thresholds, environment-drift reporting, and output-identity locks;
49
+ - Windows + Ubuntu CI on Python 3.11 and 3.13.
50
+
51
+ Reusable modeling modules such as rolling-horizon engines, scenario reduction, or solver abstractions are **not part of v0.1 unless repeated real-project need has been established and the module has separately passed public-release review**.
52
+
53
+ ## Installation
54
+
55
+ From a source checkout:
56
+
57
+ ```text
58
+ python -m pip install .
59
+ ```
60
+
61
+ After the first PyPI release is explicitly approved and published:
62
+
63
+ ```text
64
+ python -m pip install math-modeling-competition-kit
65
+ ```
66
+
67
+ The command-line entry point is:
68
+
69
+ ```text
70
+ mmkit --help
71
+ ```
72
+
73
+ ## Workflow
74
+
75
+ ```text
76
+ Problem understanding
77
+ -> Model design
78
+ -> Model validation
79
+ -> MODEL_FROZEN
80
+ -> Correct implementation
81
+ -> Clean-room reproduction
82
+ -> Algorithm/runtime optimization
83
+ -> Production core
84
+ -> Paper/figures/tables
85
+ -> Final submission gate
86
+ -> Hash/freeze/submit
87
+ ```
88
+
89
+ ## Quick start
90
+
91
+ Create a generic workspace without assuming a specific future contest:
92
+
93
+ ```text
94
+ mmkit init demo-project --competition CUSTOM --year 2027
95
+ cd demo-project
96
+ mmkit coord status .
97
+ mmkit reproduce . config/run_manifest.json --json coordination/reproduction.json
98
+ mmkit benchmark run . config/benchmark.json --json coordination/benchmark.json
99
+ mmkit paper init .
100
+ mmkit paper audit . paper/main.tex --json coordination/paper_audit.json
101
+ ```
102
+
103
+ After a correct implementation is selected, lock an explicit runtime/output baseline before optimizing it:
104
+
105
+ ```text
106
+ mmkit benchmark lock coordination/benchmark.json \
107
+ --output coordination/benchmark.baseline.json \
108
+ --max-regression-percent 15
109
+
110
+ mmkit benchmark compare \
111
+ coordination/benchmark.json \
112
+ coordination/benchmark.baseline.json \
113
+ --json coordination/benchmark.compare.json
114
+ ```
115
+
116
+ When a TeX runtime is installed and the build contract is configured:
117
+
118
+ ```text
119
+ mmkit paper build . config/paper_build.json --json coordination/paper_build.json
120
+ ```
121
+
122
+ ## Documentation
123
+
124
+ See:
125
+
126
+ - `docs/PROJECT_SCAFFOLD.md` — workspace contract;
127
+ - `docs/MVP_REPRODUCIBILITY_FINAL_GATE.md` — clean-room and final-gate semantics;
128
+ - `docs/PROVENANCE_MVP.md` — claim/evidence locking;
129
+ - `docs/PAPER_PIPELINE_MVP.md` — paper auditing/build semantics;
130
+ - `docs/AGENT_COORDINATION.md` — multi-agent checkpoint/handoff semantics;
131
+ - `docs/ALGORITHM_RUNTIME_BENCHMARKING.md` — post-model-freeze performance measurement;
132
+ - `docs/RELEASE_SCOPE_V0.1.md` — exact first-release publication boundary;
133
+ - `docs/RELEASE_CHECKLIST_V0.1.md` — release gate and remaining external actions.
134
+
135
+ ## Repository structure
136
+
137
+ - `src/mmkit/` — reusable Python package;
138
+ - `tools/` — release/final-gate and audit utilities;
139
+ - `coordination/` — public coordination contracts;
140
+ - `tests/` — automated tests;
141
+ - `docs/` — architecture, contracts, roadmap and release documents;
142
+ - `migration_sources/` — frozen historical migration evidence; not product code and not part of public distribution archives.
143
+
144
+ ## Design principles
145
+
146
+ 1. Model selection happens early.
147
+ 2. Correctness comes before performance.
148
+ 3. After correctness, optimize algorithms and implementation before changing models.
149
+ 4. Research pipelines and production pipelines must be separated.
150
+ 5. Every important paper claim should have a traceable producer.
151
+ 6. Final results must be reproducible from a clean environment.
152
+ 7. Only one final integrator may write to the final submission directory.
153
+ 8. New research routes stop before the submission deadline.
154
+ 9. Submission artifacts are validated, hashed and frozen.
155
+ 10. Postmortems are converted into reusable tooling only after privacy/provenance/reuse review.
156
+
157
+ ## Publication boundary
158
+
159
+ Future competition training and new competition-specific work are private by default. They are not copied into this public repository during active preparation or competition. Any later publication requires a separate post-competition distillation, provenance/license review, tests, PR, and explicit human publication decision.
160
+
161
+ ## License
162
+
163
+ MIT
@@ -0,0 +1,48 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ src/math_modeling_competition_kit.egg-info/PKG-INFO
5
+ src/math_modeling_competition_kit.egg-info/SOURCES.txt
6
+ src/math_modeling_competition_kit.egg-info/dependency_links.txt
7
+ src/math_modeling_competition_kit.egg-info/entry_points.txt
8
+ src/math_modeling_competition_kit.egg-info/top_level.txt
9
+ src/mmkit/__init__.py
10
+ src/mmkit/cli.py
11
+ src/mmkit/paper.py
12
+ src/mmkit/benchmark/__init__.py
13
+ src/mmkit/benchmark/core.py
14
+ src/mmkit/coordination/__init__.py
15
+ src/mmkit/coordination/core.py
16
+ src/mmkit/optimization/__init__.py
17
+ src/mmkit/provenance/__init__.py
18
+ src/mmkit/provenance/registry.py
19
+ src/mmkit/reporting/__init__.py
20
+ src/mmkit/reproducibility/__init__.py
21
+ src/mmkit/reproducibility/manifest.py
22
+ src/mmkit/reproducibility/runner.py
23
+ src/mmkit/rolling_horizon/__init__.py
24
+ src/mmkit/scaffold/__init__.py
25
+ src/mmkit/scaffold/project.py
26
+ src/mmkit/scenarios/__init__.py
27
+ src/mmkit/submission/__init__.py
28
+ src/mmkit/submission/gate.py
29
+ tests/test_benchmark.py
30
+ tests/test_benchmark_cli.py
31
+ tests/test_cli.py
32
+ tests/test_coordination.py
33
+ tests/test_coordination_cli.py
34
+ tests/test_distribution_audit.py
35
+ tests/test_paper.py
36
+ tests/test_paper_cli.py
37
+ tests/test_provenance.py
38
+ tests/test_provenance_cli.py
39
+ tests/test_publish_workflow_contract.py
40
+ tests/test_release_metadata.py
41
+ tests/test_release_tag.py
42
+ tests/test_reproducibility_manifest.py
43
+ tests/test_reproducibility_runner.py
44
+ tests/test_scaffold.py
45
+ tests/test_scaffold_benchmark.py
46
+ tests/test_scaffold_cli.py
47
+ tests/test_scaffold_coordination.py
48
+ tests/test_submission_gate.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ mmkit = mmkit.cli:main
3
+ mmkit-final-gate = mmkit.submission.gate:main
@@ -0,0 +1,5 @@
1
+ """Math Modeling Competition Kit public package."""
2
+
3
+ __version__ = "0.1.0a1"
4
+
5
+ __all__ = ["__version__"]
@@ -0,0 +1,23 @@
1
+ """Algorithm/runtime benchmarking primitives."""
2
+
3
+ from .core import (
4
+ BenchmarkError,
5
+ build_baseline,
6
+ compare_to_baseline,
7
+ init_benchmark,
8
+ load_baseline,
9
+ run_benchmark,
10
+ validate_benchmark_manifest,
11
+ write_json,
12
+ )
13
+
14
+ __all__ = [
15
+ "BenchmarkError",
16
+ "build_baseline",
17
+ "compare_to_baseline",
18
+ "init_benchmark",
19
+ "load_baseline",
20
+ "run_benchmark",
21
+ "validate_benchmark_manifest",
22
+ "write_json",
23
+ ]