一键导入
summarize-calibration-round
Produce a one-round calibration summary — whole-ensemble biomass graphs (combined 519-yr axis + TRANS), an evaluation report (best case,
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Produce a one-round calibration summary — whole-ensemble biomass graphs (combined 519-yr axis + TRANS), an evaluation report (best case,
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
First-run interactive setup for the offline agent — the official "getting started" flow the FIRST time someone uses A2MC in a repo/site. Interview the user (is a2mc_config.sh set up, where is the E3SM/ELM-FATES checkout, FATES on/off, carbon-only vs nutrient-enabled PARTEH, ECA vs RD, site name/location, PFTs, calibration targets), verify the checkout + RAG milestone, then create and populate the use case (site config + validation targets + parameter list) and hand off to phase0-design. Use when the user says "set up A2MC", "first time using A2MC", "help me get started / onboard me to A2MC", "initialize a new site / use case", "configure A2MC for my site", "I want to calibrate a new site". DISTINCT from onboard-session (which resumes an ALREADY-configured setup).
Scaffold + register (or retire + de-register) an A2MC skill so the registry steps are never half-done. Use when the user or agent wants to create a new capability — "add a skill", "create/scaffold a skill", "make this reusable as a skill", "distill X into a skill" — OR to remove one — "remove/retire/delete the X skill". Writes (or deletes) the SKILL.md, and registers (or de-registers) it across all THREE human-facing registries (the README 'Current skills' table, docs/a2mc_reference/skills_catalog.md, AND the AGENTS.md 'At a glance' table), runs the mechanical drift check, and stops for human review before commit. Human-gated.
Set up real-time monitoring of an active A2MC HPC ensemble or experiment on Perlmutter at session start (CLAUDE.md Rule
Log interactive calibration work for a site under use_cases/{site}/memory/logs/. Two log types — a PHASE log (a diagnosis, screening, experiment design/result, refinement — recorded the same way the autonomous agent does, via PhaseLogger, so both modes' logs synthesize together) or a free-form SESSION log (exploratory work that does not map to a specific phase). Use when the user wants to record calibration or exploration work — "log this", "log this phase / diagnosis / experiment", "log this calibration session", "write a session log", "record what I explored".
Compare A2MC calibration rounds (R1, R2, …) against each other and the validation targets — top-N best-achievable biomass per round, per-target Morris μ* sensitivity, P-pool / cross-regime overlays. Use when the user asks to "compare rounds", "update the multi-round figure", "refresh the R1-RN comparison", "which round is best", "top sensitive parameters per round", or to regenerate any `multiround_*` / cross-round figure after new cases complete. Codifies the multiround bundle pipeline + the footguns (screening contamination, case-name patterns, μ* ranking, param-set mismatch, partial-ensemble caveats).
Inject a human-originated domain fact (a discovery, a parameter insight, a mechanism/relationship) into A2MC's curated knowledge so the calibration agent surfaces it — placing it correctly across the up-to-three channels (site discoveries.json, generic parameters.json, curated_relationships.yaml), validating, and rebuilding the graph. Use when the user says "add this finding/parameter knowledge to A2MC's AI", "inject the X discovery into the KB", "make the agent aware of X", "author a curated relationship for X", or wants a manuscript/literature insight to reach the reasoning pipeline. This is the HUMAN-originated counterpart to curate-knowledge (which promotes run-originated proposals); both are Tier-3 curated writes and you (the human-in-the-loop) own the truth call. Distilled from graphrag_curated_yaml_roadmap.md + dev log 20260519d (the clumping_index injection).
| name | summarize-calibration-round |
| description | Produce a one-round calibration summary — whole-ensemble biomass graphs (combined 519-yr axis + TRANS), an evaluation report (best case, |
| modes | {"requires_fates":true,"nutrient_pathway":"any","scope":["analysis"],"summary":"FATES Morris-ensemble round summary (figures + evaluation + sensitivity); requires a FATES calibration ensemble. Drives targets from the case targets.yaml."} |
Single-round deliverable: ensemble graphs + evaluation + sensitivity, tied into a markdown/PDF
report. The cross-round analog is compare-calibration-rounds; this is its per-round complement and
shares the same footguns + tooling.
compare-calibration-rounds).source a2mc_config.sh
source use_cases/<site>/config/<site>_config_r<N>.sh # sets ENSEMBLE_OUTPUT, EXTRACTED_DATA,
# A2MC_CASE_NAME_PATTERN, targets
Round run dir = $A2MC_ENSEMBLE_OUTPUT; extract dir = $A2MC_EXTRACTED_DATA.
tools/plot_ensemble_cases.py (--combined for the 519-yr ADSP+RGSP+TRANS axis; default for the
TRANS-only zoom) — or the round wrapper regen_ensemble_milestone_plot.sh /
use_cases/<site>/analysis/regen_milestone_plot.sh. Combined needs ADSP(1-200)+RGSP(201-400)+TRANS
NCs per case (extract all 3 phases). Output: R{N}_{combined,TRANS}_{count}cases_ensemble.png.
phases/phase2_screening/screen_ensemble.py --data-dir $A2MC_EXTRACTED_DATA --top-n 100 --output-dir <out> → best case #, composite NRMSE, # targets met, per-target best-case sim vs obs.
--max-case-num <Morris size> (e.g. 4890) so out-of-Morris
experiment cases that happen to share the extract dir (e.g. H1 clumping #5001) don't rank as
"best". This is distinct from #1: the round's own reruns are a separate model-swap view, not part
of its Morris screening._results.txt Sim_ columns + screening_result.json best_case_num, NOT the indices file.Per target (PFT×organ): build_Y_from_monthly.py (builds Y, auto-excludes case# > ensemble size)
→ phases/phase1_exploration/morris_sensitivity_analysis.py --output-var {leaf,fineroot}_biomass --x-matrix <Morris X> --y-matrix <Y> --problem <salib_problem> --output-dir <out> → per-PFT μ* CSVs.
A round summary is read by a PI, a collaborator, or a manuscript reviewer who has never seen the codebase, the logs, or any internal name. Internal logs may use project shorthand because writer and reader share context; a report may not. Write to that reader:
PARTEH, ADSP/RGSP/TRANS, cohort_n, l2fr, prescribed_puptake,
EDMainMod.F90:1010), and A2MC terms (V0, Morris μ*, skip-test). e.g. write "the plant
carbon–nutrient allocation solver (called PARTEH in FATES)", not "PARTEH".feedback_figures_over_tables_over_words
caption discipline, applied to the report body: name the figure, quote the key number, say what it means.Write R{N}_summary_<date>.md (a git-tracked home such as reports/R{N}_summary_{date}/ keeps the report +
its figures together), then render with the markdown-to-pdf skill. Structure (apply the writing
standard above throughout):
0. Executive summary — 3–5 plain sentences (see standard #1).
--max-case-num to drop foreign experiment cases; per-round
graphs stay uncapped for the round's own reruns.rank is by mu; rank by mu_star for importance.morris_leafbiomass_* — organ is set by the directory._results.txt + JSON, not the (partial-ensemble-buggy) screening_top50_indices.txt.extract_monthly_variables_FATES.py (production, _exp-gated) vs
extract_and_plot_selected_cases.py (any phase/suffix via CLI) — see offline-testing-workflow.$HOME/repo tmp/ only.compare-calibration-rounds (cross-round), markdown-to-pdf (report rendering),
offline-testing-workflow (extraction conventions).tools/plot_ensemble_cases.py, phases/phase2_screening/screen_ensemble.py,
phases/phase1_exploration/morris_sensitivity_analysis.py, tools/regen_ensemble_milestone_plot.sh.the originating dev/ana log,b (R5/R3 graphs), the originating dev/ana log.d788bd1/2cb3056/3519a61), scrubbed of Kougarok run-specific codenames. See memory
feedback_report_writing_self_contained.## Changelog convention adopted (see .claude/skills/README.md). Earlier history: git log + memory/dev_logs/.