You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Los Alamos Exploration Layer (optional, auto-triggered addon)
Hypothesis tree/DAG materialized view (scripts/los_alamos/hypothesis_tree.py),
event-sourced from an append-only message bus (bus.py); four evaluation
tracks: Track 0 (semantic screening), Track R "Bletchley" (red-team stress
test), Track 1 (entropy-weight + TOPSIS objective ranking), Track 2
(qualitative pairwise judge panel, Copeland ranking, Shannon-entropy
disagreement)
Six autonomous trigger criteria (SKILL.md path C Step 0), including a new
"problem-complexity initial judgment" checkable as early as problem_analysis — no longer requires an explicit human request or
literature-survey-stage evidence to fire
New LOS_ALAMOS_METHOD_CATALOG.md — six-category MCM paradigm taxonomy
(optimization / prediction / evaluation / simulation / classification /
network) used by Alsos literature surveys and Director's first-layer branch
selection to widen candidate coverage beyond ad-hoc search
Elastic branch width (2 branches under time pressure, 3–4 when time budget
allows) and deeper branching support (same-paradigm technical-choice
sub-branches, depth + --parent-ids)
Governance rule (SOP §9.2.6): branch decisions must query hypothesis_tree.py status before acting, not rely on narrative memory —
wired into SKILL.md at Step 5 (build/verify dispatch) and Step 9 (finals)
Fixed: adjudicate.py screen/redteam previously left the hypothesis_tree_{N}.json materialized-view snapshot stale until the next hypothesis_tree.py invocation; both now call _sync_tree() immediately
pipeline_manager.py init --skunk-works, relaxes citation gate (≥1 vs ≥2)
and Checkpoint report verbosity; §4 self-verification mandate is explicitly not relaxed
Autonomous trigger extended (SOP §10.1): Director may self-trigger based on
a time-pressure signal alone (not only explicit human request), but must
announce the switch before executing — never silent
Andon Cord — universal emergency stop
pipeline_manager.py andon-pull/andon-clear/andon-status; freezes advance
pipeline-wide until cleared; AP mode cannot auto-clear (one of only two
hard human-in-the-loop exceptions, alongside Checkpoint LA)
NASA Mission Control Go/No-Go — final_compile pre-flight check
quality_gate.py launch-check (gate 8): polls Andon / stage completeness
(now filtered by problem_count, see Fixed) / image existence / placeholder
residue / anonymity / Los Alamos assumption-ledger integrity
Mandatory before final_compile (new absolute-prohibition item, SOP §7)
pipeline_manager.py kaizen-assess/kaizen-round-start/kaizen-status;
4-dimension self-assessment (significance / robustness / assumptions /
completeness, threshold 4.0/5), capped at 2 rounds, gated by the same
objective time-budget signal as Skunk Works (opposite direction: adds
rigor when time allows rather than relaxing it under pressure)
Hard boundary vs. writing-style polish (§16): Kaizen may revise numeric
conclusions and model content; style passes may not
Work Log — single-file complete session record
scripts/worklog.py — append-only, Simplified Chinese, CUMCM_Workspace/memory/worklog.md; stage transitions / rework / Andon /
Kaizen / gate results auto-logged from pipeline_manager.py and quality_gate.py at zero extra token cost; user messages and undocumented
Agent decisions logged manually via worklog.py append
Citation Authenticity Verification & Shared Pool
scripts/cite_check.py — register (dedup by DOI/URL/title into a shared citations.bib across sub-problems) / verify (DOI via CrossRef API, URL
via HEAD request — catches hallucinated citations, not just format-shape
matching) / list / export-bibitems
quality_gate.pylit gate now prioritizes the verified citation pool over
the legacy prose-regex scan; legacy path still works with a migration nudge
Fixed: export-bibitems did not escape LaTeX special characters — a real
DOI containing an underscore broke xelatex compilation with a fatal error
Writing-Style / "AI-Generated Feel" Reduction
scripts/style_check.py scan — six objective, non-LLM checks: list-density
in narrative sections, stock-phrase repetition, mechanical
first/second/finally transition skeletons, sentence-length coefficient of
variation, paragraph-length CV, cross-section n-gram repetition; thresholds
informed by public research (mrshibly/Humanizer, Wikipedia:Signs of AI
Writing, Pangram) and recalibrated against real Chinese academic writing
SOP §16 writing protocol: plan-then-segment writing, ≤2 style-polish rounds;
hard boundary — style polish may only change how something is said, never
numeric conclusions (Kaizen's territory)
Fixed: LaTeX comment lines (%% ==== section divider ====) were leaking
into n-gram frequency analysis as false "repeated phrases"
Fixed: overlapping sliding-window n-gram duplicates of the same longer
phrase (e.g. three 6-char windows of one 8-char term) now merge into one
finding instead of three
Official Format Compliance (SOP §17)
CUMCM: templates/latex_template.tex synced to the 2026 format spec —
electronic-version-compliant cover-page structure (title+abstract combined
as page 1, page numbering starts there), \tableofcontents removed (official
rule: no TOC), commented-out print-only 承诺书/编号页 block
New anonymity heuristic gate quality_gate.py anon-check (self-referential
/ labeled-field phrase matching), wired into launch-check
New scripts/ai_usage_doc.py: generate (builds a standalone
《AI工具使用详情》PDF from worklog.md per the 2025-trial AI-tool-usage
regulation's four required sections), cite-format (CUMCM reference-line
formatter), mcm-entry (COMAP Report on Use of AI Tools entry formatter)
— none of these auto-insert into the paper; declaring AI usage is a
deliberate, manual decision by design
MCM/ICM: templates/mcm_template.tex gets \setcounter{tocdepth}{2}
(keeps the required TOC to ~1 page) and a commented-out Report on Use of AI Tools placeholder section (COMAP format, appended
after the 25-page solution, not counted toward the limit)
compile_pdf.py now reports page counts after a successful compile
(PDF-bookmark-based body/appendix split) with contest-specific soft targets
and hard-cap warnings — CUMCM body target 20–25 pages / hard cap 30
(appendix unlimited); MCM/ICM hard cap 25 pages total including appendix
code — and recommends compacting appendix core code first when over budget
§18 — Research domain-conventional visualization forms before drawing
New AutoMCM_SOP.md §18 ("画图前先查领域惯例"): before designing any result
figure, search (web-search, keywords abstracted per S3) for the
conventional visualization form for that problem archetype — e.g.
trajectory/geometry-optimization problems → 3D trajectory + key-moment
annotation; coverage/siting/allocation → map/scatter + Gantt-style timeline;
multi-objective/multi-scenario comparison → Pareto front or radar chart;
sensitivity analysis → tornado chart or multi-parameter curve family;
classification/clustering/ranking → heatmap or a re-sorted stacked bar
chart. Findings recorded in thought_process.md; falling back to
common-sense judgment is permitted when no clear convention is found, but
— same spirit as §7's "never silently skip a failed check" — that fallback
must also be recorded, never silently taken.
Wired into .claude/skills/auto-mcm/SKILL.md's 图表风格规范 section (new
subsection preceding 标准用法) and cross-referenced across all three lean
runtime bindings (.opencode/, .dsh/, .agents/).
Codex binding's existing "known capability gap: no native web search"
section extended to explicitly cover this new requirement too — the same
underlying gap (no WebSearch/WebFetch tool) blocks the domain-convention
research step, not just literature review; the existing "disclose at
Checkpoint① rather than silently skip" guidance now applies to both.
Two new fully-autonomous demo cases (replacing the previous single showcase)
demo/2020C/ — real 2020 CUMCM Problem C (Credit Strategy for Small and
Micro Enterprises), official attachments (~1.1M invoice rows) downloaded
and verified from mcm.edu.cn. Full dsh headless run (zero human
checkpoints) through all three sub-problems + sensitivity analysis:
logistic-regression default-probability model (5-fold CV AUC 0.935),
entropy-weight/TOPSIS cross-validation track, PSI transfer-stability check,
KMeans industry-behavior clustering, expected-profit-maximizing credit
allocation. 30 pages (21-page body), 18 figures, all 2D, zero 3D plots.
demo/2025A/ — 2025 CUMCM Problem A (smoke-screen decoy deployment),
restyled end-to-end into a NASA technical-report / orbital-mechanics
chart theme (white background, dense fine grid + bold major gridlines,
black/white primary lines, NASA Blue #0B3D91 / NASA Red #FC3D21
reserved for key-annotation accents only, fully boxed axes) — implemented
as a workspace-local override of scripts/plot_style.py's palette/rcParams/ save() grid post-processing, not a change to the repository's shared
style module. 28 pages (20-page body), same modeling conclusions as before
restyling.
demo/mind_reader_ui.png — the Mind-Reader tool screenshot (previously
nested inside the single demo's CUMCM_Workspace/) relocated to a
case-independent top-level path, since it illustrates the tool, not either
specific paper.
All three verified via real executed tasks (not documentation inference),
cross-checked through structured runtime session logs (opencode export,
decompressed .zstd dsh session logs, plain-.jsonl Codex rollouts)
Fixed
templates/latex_template.tex and templates/mcm_template.tex both
failed to compile out of the box — both loaded \usepackage{natbib}
while their bibliography section used plain \bibitem/\cite (not
natbib's \citep/\citet), which is a fatal incompatibility
(Package natbib Error: Bibliography not compatible with author-year citations). Neither template body actually uses any natbib-specific
command, so natbib was unnecessary; removed from both. Verified with a
from-scratch standalone xelatex compile of each template (CUMCM: exit 0,
6 pages, zero errors once a placeholder figure exists; MCM/ICM: confirmed
the natbib error is gone, remaining failure is the separate, already-
documented mcmthesis.cls external-package requirement). This bug predates
this release — every fresh template compile would have hit it — and had
only ever been patched ad hoc inside individual generated papers' main.tex, never at the template source; this is the first fix at the
actual source. README prerequisites also updated to document the mcmthesis package requirement for the MCM/ICM template specifically
(most minimal TeX Live installs don't ship it; CUMCM doesn't need it).
plot_style.py: correlation-matrix heatmap used a one-directional
sequential colormap for signed (−1…1) data instead of diverging_cmap() —
negative and positive correlation were nearly indistinguishable at a
glance; fixed.
Two instances of a "single-x-tick stacked bar chart degenerates into a
solid-color rectangle with no visible structure" bug, both triggered when
an expected-profit-maximizing credit allocation concentrated almost
entirely into one rating tier (2020C demo, problem1_credit.py and problem2_credit.py) — replaced with per-enterprise sorted horizontal bar
charts (amount + PD annotated per bar), which is both correct rendering
and more informative than the aggregate single bar it replaced.
LaTeX verification-summary table (2025A demo main.tex) overflowed the
page's right margin by ~415pt (~5.7in) — a plain lcl tabular with long
cell text and no wrap points; fixed with array package p{}-width
wrapped columns, plus \allowbreak inserted after underscores in
monospace filenames (which otherwise have no natural line-break point and
still overflow their column even when wrapping is enabled).
3D scene-overview and trajectory figures (2025A demo) had large dead
whitespace bands where set_box_aspect'd axes were never tightened to
their actual rendered content — added plot_style.fit3d_axes() (two-pass
render + get_tightbbox()-based repositioning) and wired it into the
affected 00_data_eda.py/problem1_geometry.py figure functions; also
replaced two 3D-space text labels that sat close together in this
scenario's real geometry (and so collided under certain view angles) with
projection-immune screen-space text2D anchors.
Documented, and deliberately reverted rather than shipped: a third 3D
inset panel + taller figure canvas intermittently caused bbox_inches='tight''s save-time crop to drop unrelated existing labels
from a sibling subplot on the same figure — reproduced twice independently
(including after reducing label offsets), suspected to be an mplot3d Text3D bounding-box quirk rather than a usage error in this codebase;
reverted to the previously-verified two-panel layout instead of risking a
silent regression for a marginal enhancement.
gate_launch_check() stage-completeness check now filters by problem_count — previously always scanned model_1–model_3 regardless
of actual sub-problem count, producing a false permanent NO-GO for any
1- or 2-problem contest
Hardcoded /tmp/ absolute paths in quality_gate.py example commands
replaced with in-workspace paths — broke under sandboxed runtimes' external_directory permission checks
Testing
Every bug above (degenerate allocation charts, dead 3D whitespace, table
overflow, wrong colormap) was found by direct human/Claude visual
inspection of the rendered PDF pages — none were caught by the dsh agent's
own completion report, and none could have been: the model dsh was running
(deepseek-v4-flash) has no image-input support, so its claimed "visual
self-review" was necessarily only ever a file/pixel-level programmatic
check, disclosed honestly in worklog.md rather than misrepresented.
Multiple full real-agent pipeline runs (dsh, opencode) exercising the
complete new addon set together, independently re-verified rather than
trusting agent self-reports (PDF validity/page counts, launch-check
re-run, cite_check verify re-run, session-log decompression for
tool-call audit)
Los Alamos genuinely self-triggered via multiple distinct criteria across
runs (explicit "compare methods" problem wording, autonomous
complexity judgment with no such wording); one run surfaced two genuine
Checkpoint LA two-track conflicts (one directional contradiction, one
Condorcet cycle) — resolved with fully documented headless-degradation
reasoning; flagged as a known test-methodology limitation that Checkpoint
LA's true human-wait path remains unverified in a genuinely interactive
session