lzwei196/kiss-knowledge-infrastructure-for-scientific-simulation/lpj-guess

Claude Code and agent skill by lzwei196/kiss-knowledge-infrastructure-for-scientific-simulation

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Install

npx vskill@latest install lzwei196/kiss-knowledge-infrastructure-for-scientific-simulation/lpj-guess

SKILL.md

MANDATORY EXECUTION POLICY — READ BEFORE PROCEEDING
You MUST run the actual model binary or package described in this document.
If the model fails to import, compile, or execute, you MUST:
1. Check diagnostics/triplets.yaml for a matching error pattern
2. Try the fix suggested in the triplet's remedy section
3. If still failing, report the error to the user with full details
You MUST NOT substitute a simplified Python formula, regression equation,
or hand-coded approximation in place of the real model. Doing so produces
scientifically invalid results and defeats the purpose of the KI.
Before starting, run: python preflight_check.py (in this KI directory)
to verify that the model binary/package and required data are available.
DEBUGGING PROTOCOL — When something goes wrong (model crashes, wrong output,
unexpected values), follow this order. Do NOT skip steps or write debug scripts:
1. Check triplets — diagnostics/triplets.yaml may already cover this error
2. Read official docs — Check the model's own documentation (PDF manual, README,
official examples) for expected input formats, variable names, and units
3. Find working examples — Look in outputs/ for previous successful runs of
this model, or check if the model ships with test/example data
4. Fix the tool — Now that you know what "correct" looks like, make targeted fixes
Resist the urge to write diagnostic/debug Python scripts. The answers are almost
always in the official docs and working examples, not in reverse-engineering the binary.

<!-- KI-MAP:BEGIN (projected by generate_skill_map.py — edit the KI, not this table) -->

KI map — what to read, and when

when you needreadwhy
FIRST, alwayspreflight_check.pyrun it (python preflight_check.py): proves env/binary/data are usable and emits a machine-readable PREFLIGHT_REPORT= line. Do not debug a run that never had a healthy environment.
to run the pipeline stagestools/ (8 tools)the executable pipeline. Read each tool's argparse (--help) before composing a command; SKILL.md's stage table says which tool serves which stage.
before running a stagedocs/s*_*.md (9 stage docs)per-stage procedure, verification and traps — the how-to that SKILL.md's overview compresses.
on ANY error, before debuggingdiagnostics/triplets.yaml (35 entries)symptom → diagnosis → remedy for this model's known failure modes. Check here FIRST; the answer usually exists. Never renumber or rewrite entries.
to know what an output ISdag.yamlthe model's identity: every output's medium, units, validation_rank (1 = the headline variable) and observability. Scoring and obs-binding read THIS — when asked 'what does this model predict', the dag is the answer, not a guess.
when building inputs / parsing outputsdocs/format_spec.yamlexact I/O shapes + known_issues, projected from dag + triplets. Regenerate with ki_tools_common/generate_format_spec.py after changing either — never hand-edit.
to judge a run's skilldocs/validation_convention.yamlhow this model's field judges it validated: per-dag_variable metrics, directions and CITED pass-bands. A run is graded against these, not against intuition.
for claims and thresholdsdocs/gathered_papers.json (20 papers) + docs/papers_index.mdthe literature this KI is judged by; each entry's text_path is fetched full text in the central paper cache. role: benchmark marks the model's own skill paper.
for a machine-readable summaryknowledge_infrastructure.yamlthe manifest (package, pipeline, validation tier, counts) — projected by ki_tools_common/generate_ki_manifest.py; regenerate after structural changes, never hand-edit.

Projected 2026-10-07 from the KI's actual contents — 9 components present. Refresh: `python3 ki_tools_common/generate_skill_map.py --ki_dir <this KI>`. <!-- KI-MAP:END -->

<!-- KI-TOOL-INDEX:BEGIN (projected by generate_skill_map.py — the discoverability contract: every public tool, exact path; PURPOSE stays human-authored elsewhere) -->

Executable tool index (projected — complete by construction)

Every public tool in this KI, by exact path. What each is FOR lives in the human-written Tool Inventory above; --help on any of these prints its arguments.

tool (exact path)invocation
tools/build_lpjguess_cf_forcing.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/build_lpjguess_cf_forcing.py --help
tools/build_lpjguess_co2_file.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/build_lpjguess_co2_file.py --help
tools/convert_forcing_to_lpjguess.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/convert_forcing_to_lpjguess.py --help
tools/convert_parameters_to_lpjguess.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/convert_parameters_to_lpjguess.py --help
tools/parse_lpjguess_engine_output.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/parse_lpjguess_engine_output.py --help
tools/parse_output_lpjguess.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/parse_output_lpjguess.py --help
tools/run_lpjguess.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/run_lpjguess.py --help
tools/run_lpjguess_engine.pyKISSPATH_PYTHON_ENV/bin/python {KI}/tools/run_lpjguess_engine.py --help

8 public tools; `_`-prefixed helpers and packaging files excluded. <!-- KI-TOOL-INDEX:END -->

LPJ-GUESS -- Knowledge Infrastructure Skill Document

Version: LPJ-GUESS 4.1.1 (real engine) — KI rewired 2026-10-07
Domain: terrestrial biogeochemistry / dynamic vegetation (C, N, water)
Last updated: 2026-10-07
Validation status: real engine; official demo reproduced exactly (manifest tier tested)
Default run route: tools/run_lpjguess_engine.py (the real guess binary). The surrogate is never the default.
SURROGATE WARNING. tools/run_lpjguess.py, convert_forcing_to_lpjguess.py,
convert_parameters_to_lpjguess.py and parse_output_lpjguess.py are a **Python
light-use-efficiency SURROGATE** (LUE GPP + Q10 respiration) kept for history. They are
not LPJ-GUESS and their numbers must never be reported
as LPJ-GUESS results (dt_lpjguess_033). Their old contract is kept apart in
docs/surrogate_lpjguess_lue_dag.yaml; their old scores sit only under
validation.surrogate_metrics_not_lpjguess in knowledge_infrastructure.yaml. Triplets
dt_lpjguess_001-004 and 011-014 apply to the surrogate only (applies_to: surrogate). Every
result in this document comes from the real engine through the four *_engine* /
build_lpjguess_* tools.

1. Model Identity

PropertyValue
Full nameLund-Potsdam-Jena General Ecosystem Simulator
Version4.1.1 research release
SourceZenodo record 8065737 (doi 10.5281/zenodo.8065737), linked from https://web.nateko.lu.se/lpj-guess/download.html
LicenseMPL-2.0
LanguageC++ (cmake), NetCDF C for the CF input module
BinaryKISSPATH_HOME/engine_builds_20261006/LPJ_GUESS/build/guess (ELF, 1.4 MB)
Engine sourceKISSPATH_HOME/engine_builds_20261006/LPJ_GUESS/src/
Build logKISSPATH_HOME/engine_builds_20261006/LPJ_GUESS/BUILD_LOG.md
Key papersSmith et al. 2001 (GEB 10:621); Smith et al. 2014 (Biogeosciences 11:2027); Sitch et al. 2003 (GCB 9:161)

2. What This Model Does

LPJ-GUESS simulates vegetation and soil carbon, nitrogen and water from daily weather and CO2. Plants are individuals/cohorts of plant functional types (12 global PFTs in global.ins) that compete for light and water on replicate patches; establishment, mortality and disturbance run yearly. Daily processes: photosynthesis and stomatal conductance (canexch.cpp), multi-layer soil water and snow (soil.cpp), autotrophic respiration; CENTURY soil organic matter with a coupled N cycle (somdynam.cpp, ntransform.cpp); fire (GLOBFIRM here; BLAZE needs files not on the server).

The engine reads climate through input modules: demo (toy monthly climate, used for the official demo), cru (CRU binary archives, not on the server) and cf (CF-NetCDF — what this KI uses for real sites).

Capabilities wired by this KI (full list: docs/input_preparation.md §1):

  1. [PRIMARY] Site carbon/water fluxes — GPP, Ra, Rh, Reco, NEE, NPP, ET components, monthly and annual.
  2. Official demo / install check — 13 cells, byte-exact against the build-time run.
  3. Vegetation composition — PFT selection via --set 'pft "X" ( include 0 )'.
  4. Fire model choice — --firemodel GLOBFIRM|NOFIRE|BLAZE.
  5. Spin-up / patch / any `.ins` switch — --nyear_spinup, --npatch, --set.
  6. Water fluxes — transpiration, soil evaporation, interception, runoff, PET + water-balance check.
  7. Scoring against FLUXNET2015 monthly GPP/NEE/RECO/ET.

Not wired yet: crops/land cover/managed forest, transient N deposition, sub-daily output.

3. Input Requirements

Exact shapes: docs/format_spec.yaml (projected from dag.yaml). Preparation plan with the verified shared-library schema: docs/input_preparation.md.

3.1 Meteorological Forcing (CF input, daily)
VariableUnit the engine checksCF standard_nameBuilt from loader key
tempKair_temperaturetemp_mean_c + 273.15
preckg m-2 s-1precipitation_fluxprecip_mm / 86400
insolW m-2 (24-h mean)surface_downwelling_shortwave_flux_in_airsrad_wm2
min_temp / max_tempKair_temperaturetemp_min_c / temp_max_c + 273.15
relhum1 (fraction)relative_humidityfrom shum_kgkg, pres_pa, temp
windm s-1wind_speedwind_ms (10 m)

At least 30 full years are required (spin-up climate = first 30 years; dt_lpjguess_021). Data source used: NASA POWER (global, proxy-safe, ~4 s/yr; shortwave from 1984). FLUXNET met is too short (≤26 yr); CMFD is China-only; MSWX is slow and its 1979 file is broken.

3.2 Static Inputs
InputFileNote
CO2models/LPJ_GUESS/inputs/co2/co2_1901_2014.txtLaw Dome (pre-1959) + NOAA Mauna Loa; not shipped with 4.1.1 (dt_lpjguess_022)
Soil codeshipped src/data/env/soils_lpj.datrun tool adds an exact site line (dt_lpjguess_019/020)
Gridlistgridlist_cf.txt0 0 <site> — array INDICES (dt_lpjguess_024)
N depositionnoneconstant pre-industrial 2 kgN/ha/yr (dt_lpjguess_035)
3.3 Configuration Files

Copied from src/data/ins/: global.ins (PFTs + switches), global_cf.ins (file paths, imports global.ins and global_soiln.ins), global_demo.ins. The cf mode writes site_cf.ins = global_cf.ins with only the param "file_*" values replaced on active lines, plus appended overrides (later lines win). Nothing is generated from scratch.

4. Build Instructions

Already built — do not rebuild for KI work. For reference (BUILD_LOG.md):

bash
cd KISSPATH_HOME/engine_builds_20261006/LPJ_GUESS/build
cmake ../src -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5
make -j4 # 7 s, warnings only; NetCDF found -> cf input compiled in

5. Execution

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/lzwei196/kiss-knowledge-infrastructure-for-scientific-simulation/lpj-guess/badge)](https://verified-skill.com/skills/lzwei196/kiss-knowledge-infrastructure-for-scientific-simulation/lpj-guess)

Something wrong with this skill or its page? Tell us.