github Python re-analysis due

davidesg/art-python

v0.1.12
github

ART (art-tseries) — Box-Jenkins-Treadway model-building toolkit + MCP server; includes the atsw umbrella meta-package. Part of the ATSW suite.

maintainer
davidesg
license
GPL-2.0-or-later
first seen
2026-08-10
last seen
2026-09-03
releases · 30d
9
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 35 tools
transport stdio counts 35 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • ar_factorization
  • batch_build
  • boxcox_analysis
  • build_model
  • compare_versions
  • confirm_and_estimate
  • create_inp
  • estimate_and_diagnose
  • export_guion
  • formal_tests
  • full_report
  • generate_forecast
  • get_out_report
  • guided_identification
  • identification_analysis
  • intervention_analysis
  • load_data
  • meg_frequency
  • meg_reformulate
  • model_equation_display
  • model_histogram
  • overparameterization_analysis
  • preliminary_outlier_scan
  • preview_data
  • record_version
  • save_identification_report
  • seasonal_analysis
  • seasonal_param_analysis
  • series_info
  • sps_dashboard
  • suggest_intervention_form
  • test_interventions
  • test_seasonal_simplification
  • unit_root_analysis
  • update_and_forecast
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 1a3b0de · analyzer v33 · 4d ago

skills & prompt files 1

code evidence v0.1.11 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 86

filesystem 29

  • fs davidesg-art-python-1a3b0de/atsw-suite/src/atsw/mcp_install.py :25 import shutil
  • fs davidesg-art-python-1a3b0de/bugs/BUG-0015-repro/repro.py :35 import pathlib
  • fs davidesg-art-python-1a3b0de/bugs/BUG-0016-repro/repro.py :37 import pathlib
  • fs davidesg-art-python-1a3b0de/bugs/BUG-0020-repro/repro.py :30 t = open(os.path.join(d, hit[-1])).read().splitlines()
  • fs davidesg-art-python-1a3b0de/research/sf_meg/final_table.py :98 with open(emit_json, "w") as fh:
  • fs davidesg-art-python-1a3b0de/research/sf_meg/shinfuller_arf_harmonic_table.py :122 json.dump(results, open(OUT, "w"))
  • fs davidesg-art-python-1a3b0de/src/art/bugs.py :28 from pathlib import Path
  • fs davidesg-art-python-1a3b0de/src/art/diagnosis.py :592 with open(path, 'w', encoding='utf-8') as fh:
  • fs davidesg-art-python-1a3b0de/src/art/full_report.py :114 with open(path, 'w', encoding='utf-8') as fh:
  • fs davidesg-art-python-1a3b0de/src/art/guion.py :86 with open(path, encoding="utf-8") as f:
  • fs davidesg-art-python-1a3b0de/src/art/identification.py :574 with open(path, 'w', encoding='utf-8') as f:
  • fs davidesg-art-python-1a3b0de/src/art/mcp_server.py :387 """Save figure to /tmp and open with xdg-open (non-blocking)."""
  • fs davidesg-art-python-1a3b0de/src/art/model_detection.py :711 with open(path, 'w', encoding='utf-8') as f:
  • fs davidesg-art-python-1a3b0de/src/art/pipeline.py :82 with open(path, "w") as fh:
  • fs davidesg-art-python-1a3b0de/src/art/seasonal_detection.py :455 with open(path, 'w', encoding='utf-8') as f:
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_annual_i0_precipitation_controls.py :45 for line in open(path, encoding="utf-8", errors="replace").read().splitlines()[1:]:
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_bug_0001_mu_collapse.py :46 os.remove(tmp)
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_bug_0015_0016_policy_domain_and_d_cap.py :71 src = open(os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_bug_0018_annual_series.py :102 header = open(path).read().splitlines()[8]
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_dcd_crit_provenance.py :26 with open(_JSON) as fh:
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_full_report.py :98 with open(out, encoding="utf-8") as f:
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_golden_pipeline.py :42 with open(_SERIES_JSON) as fh:
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_guion.py :133 with open(path) as f:
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_identification.py :101 html = open(out).read()
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_mcp_server.py :193 os.unlink(tmp)
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_meg_hybrid_chile.py :34 txt = open(out_path, encoding="latin-1").read()
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_rescaling_invariant.py :57 os.unlink(tmp)
  • fs (weak) davidesg-art-python-1a3b0de/tests/test_thesis_i2_chile_colombia.py :59 open(dst, "w", encoding="utf-8").write(
  • fs davidesg-art-python-1a3b0de/tools/gen_tools_md.py :67 open(dest, "w", encoding="utf-8").write(render(mod_name, server))

shell / exec 2

  • shell davidesg-art-python-1a3b0de/atsw-suite/src/atsw/mcp_install.py :26 import subprocess
  • shell davidesg-art-python-1a3b0de/src/art/mcp_server.py :397 target=lambda: subprocess.Popen(["xdg-open", path],

tool registrations 35

  • create_inp davidesg-art-python-1a3b0de/src/art/mcp_server.py :465
  • series_info davidesg-art-python-1a3b0de/src/art/mcp_server.py :538
  • boxcox_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :575
  • seasonal_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :605
  • unit_root_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :634
  • identification_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :666
  • preliminary_outlier_scan davidesg-art-python-1a3b0de/src/art/mcp_server.py :701
  • model_equation_display davidesg-art-python-1a3b0de/src/art/mcp_server.py :755
  • estimate_and_diagnose davidesg-art-python-1a3b0de/src/art/mcp_server.py :787
  • model_histogram davidesg-art-python-1a3b0de/src/art/mcp_server.py :837
  • overparameterization_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :868
  • formal_tests davidesg-art-python-1a3b0de/src/art/mcp_server.py :1042
  • ar_factorization davidesg-art-python-1a3b0de/src/art/mcp_server.py :1130
  • meg_reformulate davidesg-art-python-1a3b0de/src/art/mcp_server.py :1211
  • meg_frequency davidesg-art-python-1a3b0de/src/art/mcp_server.py :1292
  • seasonal_param_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :1410
  • test_seasonal_simplification davidesg-art-python-1a3b0de/src/art/mcp_server.py :1460
  • intervention_analysis davidesg-art-python-1a3b0de/src/art/mcp_server.py :1504
  • test_interventions davidesg-art-python-1a3b0de/src/art/mcp_server.py :1534
  • full_report davidesg-art-python-1a3b0de/src/art/mcp_server.py :1587
  • save_identification_report davidesg-art-python-1a3b0de/src/art/mcp_server.py :1632
  • guided_identification davidesg-art-python-1a3b0de/src/art/mcp_server.py :1769
  • confirm_and_estimate davidesg-art-python-1a3b0de/src/art/mcp_server.py :2156
  • record_version davidesg-art-python-1a3b0de/src/art/mcp_server.py :2346
  • export_guion davidesg-art-python-1a3b0de/src/art/mcp_server.py :2421
  • compare_versions davidesg-art-python-1a3b0de/src/art/mcp_server.py :2515
  • suggest_intervention_form davidesg-art-python-1a3b0de/src/art/mcp_server.py :2700
  • build_model davidesg-art-python-1a3b0de/src/art/mcp_server.py :2942
  • batch_build davidesg-art-python-1a3b0de/src/art/mcp_server.py :3150
  • generate_forecast davidesg-art-python-1a3b0de/src/art/mcp_server.py :3334
  • update_and_forecast davidesg-art-python-1a3b0de/src/art/mcp_server.py :3398
  • sps_dashboard davidesg-art-python-1a3b0de/src/art/mcp_server.py :3508
  • preview_data davidesg-art-python-1a3b0de/src/art/mcp_server.py :3628
  • load_data davidesg-art-python-1a3b0de/src/art/mcp_server.py :3736
  • get_out_report davidesg-art-python-1a3b0de/src/art/mcp_server.py :3868

declared dependencies 8

  • mcp@>=1.0,<2
  • fue@>=0.1.10
  • pyfug@>=2.0
  • numpy@>=1.24
  • matplotlib@>=3.7
  • scipy@>=1.10
  • statsmodels@>=0.14
  • pytest@>=7