llms.txt ยท diff

git:20261101.e8fbacd to git:20261103.1ae4ddc

20 added, 27 removed. Audit B to B.

# ADA (automated-data-analyst)
- > ADA is the math arm for LLMs: a Python package, command-line tool and set of function-calling tool definitions that compute numbers from CSV, TSV and Excel tables with pandas, SciPy and statsmodels, show the calculation and the rows behind each one, and check a number stated about a table: verified, or unverified with one of six reasons (missing_context, ambiguous_intent, inaccessible_data, unsupported_analysis, conflicting_evidence, failed_check) and the one question that would let the check go ahead. A language model (Claude, Codex, or an open-source model run with Ollama, llama.cpp, vLLM or LM Studio) calls ADA instead of doing arithmetic itself. ADA also maps a folder of related files and the keys that join them, fits cross-validated models that predict a column (Kaggle style, with a readable model on request), and makes a paper's assets from research data (audit, dictionary, tables, figures, methods draft) that `ada verify` rebuilds and checks. MIT licence, Python 3.11+.
+ > ADA is the math arm for LLMs: a Python package, command-line tool and set of function-calling tool definitions that compute numbers from CSV, TSV and Excel tables with pandas, SciPy and statsmodels, show the calculation and the rows behind each one, and check a number stated about a table: verified, or unverified with one of six reasons (missing_context, ambiguous_intent, inaccessible_data, unsupported_analysis, conflicting_evidence, failed_check) and the one question that would let the check go ahead. A language model (Claude, Codex, or an open-source model run with Ollama, llama.cpp, vLLM or LM Studio) calls ADA instead of doing arithmetic itself. ADA also maps a folder of related files and the keys that join them, and takes a first look at any table: data checks, group comparisons, relationships and trends. MIT licence, Python 3.11+.
Give a language model ADA's tools (function calling):
```
from ada import tools
tools.definitions() # OpenAI-compatible: Ollama, llama.cpp server, vLLM, LM Studio; "anthropic" for the Anthropic API
- tools.run(name, arguments, root="data") # runs ada_ask, ada_check_claim, ada_scan or ada_model; returns JSON to send back
+ tools.run(name, arguments, root="data") # runs ada_ask, ada_check_claim, ada_scan or ada_compute (all read-only); returns JSON to send back
+ tools.langchain(root="data") # the four tools as LangChain tools, for LangChain agents and LangGraph (pip install "automated-data-analyst[langchain]")
```
+ Exact arithmetic with every step, for any numbers a model has:
+
+ ```
+ import ada
+ ada.compute("0.15 * (1200 - 300)").value # "135"; 0.1 + 0.2 is exactly 0.3; 6/2(1+2) is refused as ambiguous
+ ada.check_arithmetic(reply) # each equation written in a worked answer, checked; correct=False marks a slip, with the right value
+ ada.solve("x + y = 10; x - y = 2").values # {"x": "6", "y": "4"}: linear equations and systems, exact, each step, checked by putting the values back
+ ```
+
+ `ada compute "EXPRESSION"` does the same in a shell, and solves an equation given one: `ada compute "2x + 3 = 11"`.
+
`tools.SYSTEM_PROMPT` tells the model which tool to use when and to take every number from them. `ada tools` prints the definitions.
Chat with a local model that uses ADA, or plug ADA into an app that takes MCP servers:
```
ada chat penguins.csv # Ollama by default (ollama pull qwen3:1.7b); --base-url for LM Studio, llama.cpp, vLLM
- ada mcp # MCP over stdio: {"mcpServers": {"ada": {"command": "uvx", "args": ["--from", "automated-data-analyst", "ada", "mcp"]}}}
+ ada mcp # MCP over stdio: {"mcpServers": {"ada": {"command": "uvx", "args": ["automated-data-analyst", "mcp"]}}}
ada mcp --http # Streamable HTTP at http://127.0.0.1:8000/mcp, for Open WebUI
```
Check a number, compute an answer, or map a folder:
```
ada claim flights.csv "The average departure delay was about 13 minutes." # exit 0 verified, 1 failed check, 2 unreadable, 3 unverified
ada ask flights.csv "average dep_delay by origin" --json
ada scan data/ # each file, how they join, what to confirm
```
From Python: `ada.check_claim(path, claim)`, `ada.analyze(path).ask(question)` (an answer with `.to_dict()`, or a falsy refusal with `code` and `message`), `ada.scan(folder)`. A check covers one number, as read; unverified is not false, and only `failed_check` with `agreement: "mismatch"` says the data give a different number.
- Predict a column (needs `pip install "automated-data-analyst[model]"`):
-
- ```
- ada model titanic/ --metric accuracy --out submission.csv # cross-validated LightGBM, XGBoost and a linear model, blended
- ada auto titanic/ --metric accuracy --jobs 2 # a wider search: CatBoost, a neural network, a second layer
- ada model train.csv test.csv --target price --explain # a linear or additive model with coefficients and effect curves
- ```
-
- Install with `pip install automated-data-analyst`. For a paper, in the folder that holds a study's data:
-
- ```
- ada init data/measurements.csv # asks about the study; writes study.yml
- ada build # writes paper-assets/
- ada verify # rebuilds and checks every number
- ```
-
- `study.yml` holds the design (independent, paired, repeated or clustered), the subject or cluster column, each variable's role and type, exclusions with their reasons, and the planned analyses. The design picks the test: Welch's t-test or ANOVA for independent groups, the paired t-test for paired data, a linear mixed model with a random intercept per subject or cluster for repeated and clustered data, with p-values adjusted within families. ADA runs only the analyses listed, labels each planned or exploratory, and refuses designs it can't fit instead of approximating them.
+ Install with `pip install automated-data-analyst`. For a first look at any table: `ada analyze data.csv`, or `import ada; ada.analyze("data.csv")` in Python.
- From Python: `from ada import research; research.build("study.yml")`, or `import ada; ada.analyze("data.csv")` for the first look.
+ The research workflow (paper tables, figures and a methods draft from a study.yml), the modelling mode (`ada model`) and the browser app are in ADA Lab (https://github.com/saineshnakra/ada-lab): `pip install ada-lab`. With it installed, `ada init`, `ada build`, `ada model` and the other moved commands run from the `ada` command too.
For AI coding assistants: `ada skill` writes ADA's SKILL.md (Agent Skills format) into `.claude/skills/ada/` for Claude Code and `.agents/skills/ada/` for Codex. As a plugin (the folder `plugins/automated-data-analyst/`): `/plugin marketplace add saineshnakra/automated-data-analyst` then `/plugin install automated-data-analyst@automated-data-analyst` in Claude Code, or `codex plugin marketplace add saineshnakra/automated-data-analyst` then `codex plugin add automated-data-analyst@automated-data-analyst` in Codex. The arithmetic runs in ADA, not in the model: the assistant reports the numbers ADA computed, each with its calculation, checks the numbers it states with `ada claim`, says which are unverified and why, and asks the person ADA's clarifying question instead of guessing.
## Docs
- [README](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/README.md): what ADA does, with examples
- [ADA as the math tool of a language model](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/llm-tools.md): setups for Ollama, LM Studio, Open WebUI, Jan, Claude Desktop, Cursor, VS Code, Claude Code and Codex (`ada chat`, `ada mcp`), tool definitions for function calling, which local models work, and what comes back
- - [Predicting a column](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/reference/modelling.md): `ada model`, `ada auto` and `--explain`
- - [Paper assets for a study](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/research.md): `ada init`, `ada build` and `ada verify`, the study.yml format, the tests used and every file written
- [Checking claims](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/reference/claims.md): how a stated number is read, the interval it stands for, the six reasons and the JSON record
- [Reading a folder of tables](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/reference/folder.md): file profiles, proposed links and the questions to confirm
- - [Agent skill](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/ada/skills/ada/SKILL.md): how an AI assistant should use ADA on a researcher's data
+ - [Agent skill](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/ada/skills/ada/SKILL.md): how an AI assistant should use ADA to compute and check numbers
- [FAQ](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/faq.md): short answers
## Optional
- [Concepts](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/concepts.md): terms used in the first-look report
- - [How it works](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/how-it-works.md): the steps from upload to report
+ - [How it works](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/how-it-works.md): the steps from a file to a report
- [Credits](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/docs/credits.md): the libraries and methods behind each calculation, and how to cite them
- - [Kaggle competitions](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/results/kaggle/README.md): `ada model` and `ada auto` scored on 22 tabular competitions, with a holdout inside each
- - [Tested on 60 research datasets](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/results/README.md): how the first look did on real data, and what it still gets wrong
+ - [Checking numbers on real public data](https://raw.githubusercontent.com/saineshnakra/automated-data-analyst/main/results/verification/README.md): the evaluation behind `ada claim`, `ada ask --json` and `ada scan`, 73 cases on 20 public datasets
- [PyPI](https://pypi.org/project/automated-data-analyst/): releases