# Blog

Notes on making data analysis **trustworthy and reproducible** — for humans and AI coding agents. Results you can believe, lineage that says which code and inputs made every number, honest tool comparisons — and, because nothing recomputes twice, a trustworthy path that also happens to be the fast, cheap one.

## Start here

- **[Why oryxflow](<https://docs.oryxflow.dev/docs/why-oryxflow/index.md>)** — the positioning in one page: trustworthy results, reproducibility, lineage, and trustworthy AI data analysis, plus when *not* to reach for it.
- **[Reproducible data science workflows in Python](<https://docs.oryxflow.dev/blog/posts/reproducible-data-science-workflows-python/index.md>)** — what makes a workflow reproducible, and the missing middle between notebooks and orchestrators.

**Trust, reproducibility &amp; caching**

- [Turn a messy notebook into a reproducible pipeline](<https://docs.oryxflow.dev/blog/posts/notebook-to-pipeline/index.md>) — migrate an analysis into tasks, one step at a time, so every result is tied to the code that made it.
- [4 reasons your machine learning code is bad](<https://docs.oryxflow.dev/blog/posts/4-reasons-your-ml-code-is-bad/index.md>) — the failure modes a task DAG fixes, starting with the silent one.
- [Stop rerunning your whole pipeline](<https://docs.oryxflow.dev/blog/posts/stop-rerunning-your-pipeline/index.md>) — how a change reruns exactly what it affects, so nothing sits on stale data and nothing recomputes twice.
- [Cache intermediate DataFrames in Python](<https://docs.oryxflow.dev/blog/posts/cache-intermediate-dataframes-python/index.md>) — why hand-rolled pickle caches go stale, and caching by task identity you can actually trust.

**Tool comparisons**

- [oryxflow vs the field](<https://docs.oryxflow.dev/blog/posts/oryxflow-vs-the-field/index.md>) — the full framework landscape for iterative, AI-assisted analysis.
- [oryxflow vs Airflow](<https://docs.oryxflow.dev/blog/posts/oryxflow-vs-airflow/index.md>) — research workflows vs production orchestration.
- [oryxflow vs Prefect](<https://docs.oryxflow.dev/blog/posts/oryxflow-vs-prefect/index.md>) — zero-config code-aware caching vs configurable orchestration.
- [oryxflow vs Dagster](<https://docs.oryxflow.dev/blog/posts/oryxflow-vs-dagster/index.md>) — a lightweight research loop vs an asset platform.
- [oryxflow vs DVC](<https://docs.oryxflow.dev/blog/posts/oryxflow-vs-dvc/index.md>) — native Python task identity vs file-hash data versioning.
- [MLflow, or a reproducible pipeline?](<https://docs.oryxflow.dev/blog/posts/mlflow-or-pipeline-caching/index.md>) — experiment tracking vs workflow caching (and DVC).
- [MLflow alternatives](<https://docs.oryxflow.dev/blog/posts/mlflow-alternatives/index.md>) — the experiment-tracker landscape, and where a caching DAG fits beside (not against) it.
- [Airflow alternatives for data science](<https://docs.oryxflow.dev/blog/posts/airflow-alternatives-for-data-science/index.md>) — research-loop tools vs production orchestrators, and when you don't need an orchestrator at all.

**Trustworthy AI-assisted data science**

- [How to make Claude Code a trustworthy data scientist](<https://docs.oryxflow.dev/blog/posts/caching-dag-for-ai-agents/index.md>) — where agents fail at pipeline work, and what removes those failures.
- [Claude Code skills for data science](<https://docs.oryxflow.dev/blog/posts/claude-code-skills-for-data-science/index.md>) — what a skill is, how it differs from a plugin, a slash command and an MCP server, and why it's the piece that keeps AI-written analysis reproducible.
- [Best practices for AI-assisted data analysis](<https://docs.oryxflow.dev/blog/posts/ai-data-analysis-best-practices/index.md>) — how to keep AI-generated analysis reproducible, auditable, and honest about correctness.
- [The best Claude Code plugins and tools for data science](<https://docs.oryxflow.dev/blog/posts/best-claude-code-plugins-data-science/index.md>) — a by-the-job roundup of the AI data-science tooling landscape.
- [The best AI tools for data analysis](<https://docs.oryxflow.dev/blog/posts/best-ai-data-analysis-tools/index.md>) — the layers of the AI data stack, and the trust layer most of them miss.

**LLM evals**

- [Your eval platform deletes your results in 14 days](<https://docs.oryxflow.dev/blog/posts/llm-eval-results-retention/index.md>) — eval platforms are working sets, not archives; keep the scored rows yourself.
- [LLM evals are a parameter sweep](<https://docs.oryxflow.dev/blog/posts/llm-evals-are-a-parameter-sweep/index.md>) — the scoring is new, the matrix underneath it is a solved problem.
- [Cheap, durable LLM evals: pydantic-evals + oryxflow](<https://docs.oryxflow.dev/blog/posts/cheap-durable-llm-evals/index.md>) — how a metered eval matrix gets expensive, and what to cache instead.

**Practical patterns**

- [Parameter sweeps without rerunning upstream steps](<https://docs.oryxflow.dev/blog/posts/parameter-sweeps-without-rerunning/index.md>) — compare many configurations while shared steps compute once.
- [Migrate from d6tflow to oryxflow](<https://docs.oryxflow.dev/blog/posts/migrate-from-d6tflow/index.md>) — a whole-word package rename, not an API port; your cache comes with you.
- [When *not* to use oryxflow](<https://docs.oryxflow.dev/blog/posts/when-not-to-use-oryxflow/index.md>) — an honest guide to non-fit.

---

## All posts
