From f4a838349890a7a76c0b8185da67de965c6df6c0 Mon Sep 17 00:00:00 2001 From: lhparker1 Date: Thu, 1 Oct 2026 09:08:24 -0700 Subject: [PATCH 1/2] Restructure the docs around one front door Reorganize the site into Home, Tutorial, Guides, Concepts, Reference and Developers, and present Lightcone as one toolkit: the agent plugin that drives an analysis, the lc engine that runs it, and Lightcone Lab for watching it. - Home is the overview; the Quickstart takes one tried-and-true path (agent plugin + JupyterLab with Lightcone Lab), with by-hand use moved to the "Use lc without an agent" guide and Reference > Installation. - Existing pages move to their new homes unchanged in substance: cli/ -> reference/cli/, api/ -> developers/internals/, contributing/ -> developers/contributing/, user/* -> guides/, concepts/ and reference/. - New: a six-chapter Tutorial skeleton built on the supernova example from agent-skills, an Agent plugin reference, How Lightcone works, and placeholder pages for the guides and concepts still to be written. - ASTRA is met as the analysis file; the standard is linked from Concepts, Developers and Home's "Where to next". Co-Authored-By: Claude Opus 5.5 --- docs/assets/hubble_two_panel.png | Bin 0 -> 136095 bytes docs/assets/lab-inventory.png | Bin 0 -> 82607 bytes docs/concepts/analysis-file.md | 17 ++ docs/concepts/evidence.md | 15 ++ .../concepts.md => concepts/provenance.md} | 10 +- docs/concepts/universes.md | 14 ++ docs/{ => developers}/architecture.md | 7 +- docs/developers/astra.md | 40 +++ .../contributing/extending.md | 0 docs/{ => developers}/contributing/setup.md | 0 docs/{ => developers}/contributing/testing.md | 0 docs/{maintainer.md => developers/index.md} | 18 +- docs/{api => developers/internals}/assets.md | 0 .../internals}/container.md | 0 docs/{api => developers/internals}/crate.md | 0 docs/{api => developers/internals}/dataset.md | 0 .../{api => developers/internals}/identity.md | 0 docs/{api => developers/internals}/index.md | 0 .../internals}/materialize.md | 0 docs/{api => developers/internals}/plan.md | 0 docs/{api => developers/internals}/project.md | 0 docs/{api => developers/internals}/sandbox.md | 0 docs/{api => developers/internals}/venue.md | 0 docs/{api => developers/internals}/worker.md | 0 docs/get-started/how-it-works.md | 53 ++++ docs/get-started/quickstart.md | 145 +++++++++++ docs/{user => guides}/cluster.md | 6 +- docs/guides/decisions.md | 19 ++ docs/guides/evidence.md | 19 ++ docs/guides/index.md | 21 ++ docs/guides/lab.md | 19 ++ docs/guides/publish.md | 20 ++ docs/guides/scope.md | 20 ++ .../without-agent.md} | 29 ++- docs/index.md | 115 ++++----- docs/{ => reference}/cli/build.md | 0 docs/{ => reference}/cli/index.md | 0 docs/{ => reference}/cli/init.md | 2 +- docs/{ => reference}/cli/materialize.md | 2 +- docs/{ => reference}/cli/run.md | 0 docs/{ => reference}/cli/status.md | 0 docs/{user => reference}/glossary.md | 0 docs/reference/installation.md | 230 ++++++++++++++++++ docs/reference/plugin.md | 109 +++++++++ docs/{user => reference}/troubleshooting.md | 4 +- docs/stylesheets/extra.css | 13 + docs/tutorial/1-data.md | 44 ++++ docs/tutorial/2-scope.md | 83 +++++++ docs/tutorial/3-reproduce.md | 103 ++++++++ docs/tutorial/4-evidence.md | 76 ++++++ docs/tutorial/5-decision.md | 89 +++++++ docs/tutorial/6-publish.md | 81 ++++++ docs/tutorial/index.md | 66 +++++ docs/user/index.md | 73 ------ docs/user/install.md | 124 ---------- zensical.toml | 109 ++++++--- 56 files changed, 1465 insertions(+), 330 deletions(-) create mode 100644 docs/assets/hubble_two_panel.png create mode 100644 docs/assets/lab-inventory.png create mode 100644 docs/concepts/analysis-file.md create mode 100644 docs/concepts/evidence.md rename docs/{user/concepts.md => concepts/provenance.md} (95%) create mode 100644 docs/concepts/universes.md rename docs/{ => developers}/architecture.md (97%) create mode 100644 docs/developers/astra.md rename docs/{ => developers}/contributing/extending.md (100%) rename docs/{ => developers}/contributing/setup.md (100%) rename docs/{ => developers}/contributing/testing.md (100%) rename docs/{maintainer.md => developers/index.md} (78%) rename docs/{api => developers/internals}/assets.md (100%) rename docs/{api => developers/internals}/container.md (100%) rename docs/{api => developers/internals}/crate.md (100%) rename docs/{api => developers/internals}/dataset.md (100%) rename docs/{api => developers/internals}/identity.md (100%) rename docs/{api => developers/internals}/index.md (100%) rename docs/{api => developers/internals}/materialize.md (100%) rename docs/{api => developers/internals}/plan.md (100%) rename docs/{api => developers/internals}/project.md (100%) rename docs/{api => developers/internals}/sandbox.md (100%) rename docs/{api => developers/internals}/venue.md (100%) rename docs/{api => developers/internals}/worker.md (100%) create mode 100644 docs/get-started/how-it-works.md create mode 100644 docs/get-started/quickstart.md rename docs/{user => guides}/cluster.md (96%) create mode 100644 docs/guides/decisions.md create mode 100644 docs/guides/evidence.md create mode 100644 docs/guides/index.md create mode 100644 docs/guides/lab.md create mode 100644 docs/guides/publish.md create mode 100644 docs/guides/scope.md rename docs/{user/getting-started.md => guides/without-agent.md} (92%) rename docs/{ => reference}/cli/build.md (100%) rename docs/{ => reference}/cli/index.md (100%) rename docs/{ => reference}/cli/init.md (98%) rename docs/{ => reference}/cli/materialize.md (98%) rename docs/{ => reference}/cli/run.md (100%) rename docs/{ => reference}/cli/status.md (100%) rename docs/{user => reference}/glossary.md (100%) create mode 100644 docs/reference/installation.md create mode 100644 docs/reference/plugin.md rename docs/{user => reference}/troubleshooting.md (98%) create mode 100644 docs/tutorial/1-data.md create mode 100644 docs/tutorial/2-scope.md create mode 100644 docs/tutorial/3-reproduce.md create mode 100644 docs/tutorial/4-evidence.md create mode 100644 docs/tutorial/5-decision.md create mode 100644 docs/tutorial/6-publish.md create mode 100644 docs/tutorial/index.md delete mode 100644 docs/user/index.md delete mode 100644 docs/user/install.md diff --git a/docs/assets/hubble_two_panel.png b/docs/assets/hubble_two_panel.png new file mode 100644 index 0000000000000000000000000000000000000000..5af6fe0395ce251656a5192ed5621d880557da72 GIT binary patch literal 136095 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 z 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

?9DE;1=E+sLOm}ve%|{PV6oh>*b(#9+zkOU$ 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�GTW_ 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 HP6}`, `{decisions.}` and `{output}` placeholders + - Why every dependency is declared: it is how `lc` orders the build and knows what to remake + - Who writes it: the agent drafts it as the scoping conversation settles, you review it, and it is validated on every save + - Splitting a large analysis into sub-analyses of the same shape + - What the file does not do: it describes the analysis; `lc` runs it + + Draws on: [Use lc without an agent](../guides/without-agent.md#3-write-the-spec) (step 3), the specification and getting-started pages at astra-spec.org + +`astra.yaml` follows ASTRA, an open standard for describing analyses. Full format reference at [astra-spec.org](https://astra-spec.org/). How Lightcone builds on it: [Built on ASTRA](../developers/astra.md). diff --git a/docs/concepts/evidence.md b/docs/concepts/evidence.md new file mode 100644 index 00000000..9bd94490 --- /dev/null +++ b/docs/concepts/evidence.md @@ -0,0 +1,15 @@ +# Evidence + +Evidence ties a claim to something a reader can check: a quoted passage in a paper, or an output the analysis produced. + +!!! abstract "Planned page" + What this page will cover: + + - Prior insights, claims from the literature that motivate a decision, and findings, claims the analysis itself makes + - An evidence item: a `doi` with the exact quoted text (and optionally a page), or an `artifact` naming an output + - The chain from option to insight to evidence to paper, and why it makes a decision auditable + - Quote verification: each quote is matched against a cached copy of the paper, so a citation that looks checkable is checked + - Evidence that points at an output is skipped, not failed, until that output has been made + - How the agent gathers citations, and where Lightcone Lab shows the cited papers + + Draws on: [Cite papers and verify evidence](../guides/evidence.md), [Tutorial step 4](../tutorial/4-evidence.md), [Agent plugin](../reference/plugin.md), the specification's evidence sections and the getting-started guide at astra-spec.org diff --git a/docs/user/concepts.md b/docs/concepts/provenance.md similarity index 95% rename from docs/user/concepts.md rename to docs/concepts/provenance.md index b290397a..fdc28e39 100644 --- a/docs/user/concepts.md +++ b/docs/concepts/provenance.md @@ -1,7 +1,7 @@ -# Core Concepts +# Outputs and provenance The mental model behind `lc`, in one page. Nothing here is required to -follow [Getting Started](getting-started.md) — come back when you want +follow the [Quickstart](../get-started/quickstart.md) — come back when you want to know *why* the tool behaves the way it does. ## A project is three files @@ -145,7 +145,7 @@ have. ## Where to next -- [Running on a Cluster](cluster.md) — the same model on SLURM. -- [Troubleshooting](troubleshooting.md) — the refusals quoted, with +- [Run on a cluster](../guides/cluster.md) — the same model on SLURM. +- [Troubleshooting](../reference/troubleshooting.md) — the refusals quoted, with their remedies. -- [Glossary](glossary.md) — the terms, one at a time. +- [Glossary](../reference/glossary.md) — the terms, one at a time. diff --git a/docs/concepts/universes.md b/docs/concepts/universes.md new file mode 100644 index 00000000..86e7cf86 --- /dev/null +++ b/docs/concepts/universes.md @@ -0,0 +1,14 @@ +# Decisions and universes + +A decision is a methodological choice that could change a result; a universe is one complete set of choices, and each universe gets its own results. + +!!! abstract "Planned page" + What this page will cover: + + - What deserves to be a decision, and its parts: `label`, `rationale`, `default` and `options` + - Universe files: `universes/.yaml` picks one option per decision, and its results land in `results//` + - How a choice reaches the code: as `{decisions.}` in the recipe, so scripts take it as an argument and nothing is hard-coded + - Options that cannot go together (`requires`, `incompatible_with`), and rejected options kept on the record with their reason + - Comparing universes: adding one runs only its outputs, and a target like `robust/fit` narrows a run to one + + Draws on: [Use lc without an agent](../guides/without-agent.md#6-sweep-the-decision) (step 6), [Add a decision and compare universes](../guides/decisions.md), [lc materialize](../reference/cli/materialize.md), the specification's Decisions, Options, Constraints and Universes sections at astra-spec.org diff --git a/docs/architecture.md b/docs/developers/architecture.md similarity index 97% rename from docs/architecture.md rename to docs/developers/architecture.md index 32081a20..edba68e9 100644 --- a/docs/architecture.md +++ b/docs/developers/architecture.md @@ -1,8 +1,9 @@ # Architecture How lightcone-cli is put together, for someone about to change it. The -[user-guide concepts page](user/concepts.md) covers what the tool -promises; this page covers how the promises are kept. +[Outputs and provenance](../concepts/provenance.md) concepts page +covers what the tool promises; this page covers how the promises are +kept. ## The split that everything else follows @@ -195,5 +196,5 @@ src/lightcone/ # namespace — NO __init__.py └── templates/ # the scaffold's file content, as real files ``` -Each module's page in [Engine Internals](api/index.md) carries its +Each module's page in [Engine internals](internals/index.md) carries its public surface and the invariants that bind it. diff --git a/docs/developers/astra.md b/docs/developers/astra.md new file mode 100644 index 00000000..7623a665 --- /dev/null +++ b/docs/developers/astra.md @@ -0,0 +1,40 @@ +# Built on ASTRA + +Lightcone's analysis file, `astra.yaml`, follows ASTRA — the Agentic +Schema for Transparent Research Analysis — an open standard for +declaring a scientific analysis: its inputs, outputs, decisions, and +the evidence behind them. ASTRA is a specification, not a runner. It +says what an analysis is and stays out of execution; `lc` is the +execution layer built on top of it. Everything about what a spec +*means* — universe resolution, input references, conditional outputs, +the recipe placeholder grammar — is answered by ASTRA's reference +tooling rather than re-implemented in the engine (see +[Architecture](architecture.md)). + +ASTRA is developed in the open, alongside Lightcone but separately from +it, with its own site, schema and tools. The schema is written in +LinkML. The `astra` CLI (the `astra-tools` package) validates specs, +generates and checks universes, and caches papers and verifies quotes. +A TypeScript SDK, `@astra-spec/sdk`, validates and resolves projects +for viewers and integrations; [Lightcone Lab](../guides/lab.md) reads +projects through it. Significant changes to the standard go through a +public RFC process. + +You can work with ASTRA directly. If a spec resolves wrongly, the fix +belongs in astra-tools, not in `lc`. If the format cannot express what +your analysis needs, open an issue on astra-spec or propose an RFC. +ASTRA is in early alpha, so reports from real analyses are the most +useful input it can get. + +- [astra-spec.org](https://astra-spec.org) — the specification site: + concepts, elements, and a getting-started walkthrough. +- [RFC process](https://astra-spec.org/latest/rfc-process/) — how a + proposal moves from idea to accepted; the RFCs themselves live in + [`astra-spec/rfcs`](https://github.com/LightconeResearch/astra-spec/tree/main/rfcs). +- [LightconeResearch/astra-spec](https://github.com/LightconeResearch/astra-spec) + — the LinkML schema and the documentation source. +- [LightconeResearch/astra-tools](https://github.com/LightconeResearch/astra-tools) + — the `astra` CLI and Python SDK + ([PyPI](https://pypi.org/project/astra-tools/)). +- [LightconeResearch/astra-typescript](https://github.com/LightconeResearch/astra-typescript) + — the TypeScript SDK, published on npm as `@astra-spec/sdk`. diff --git a/docs/contributing/extending.md b/docs/developers/contributing/extending.md similarity index 100% rename from docs/contributing/extending.md rename to docs/developers/contributing/extending.md diff --git a/docs/contributing/setup.md b/docs/developers/contributing/setup.md similarity index 100% rename from docs/contributing/setup.md rename to docs/developers/contributing/setup.md diff --git a/docs/contributing/testing.md b/docs/developers/contributing/testing.md similarity index 100% rename from docs/contributing/testing.md rename to docs/developers/contributing/testing.md diff --git a/docs/maintainer.md b/docs/developers/index.md similarity index 78% rename from docs/maintainer.md rename to docs/developers/index.md index fdfac4a5..a1f642ec 100644 --- a/docs/maintainer.md +++ b/docs/developers/index.md @@ -1,27 +1,29 @@ -# Developer corner +# Developers `lightcone-cli` is a small engine with strong opinions: one way to identify an output, one way to store it, one boundary to execute it -behind. This guide covers everything below the user surface — how the -engine is put together, what each module owns, and how to get a +behind. This section covers everything below the user surface — how +the engine is put together, what each module owns, and how to get a working dev loop. -If you're looking for the user-facing docs, the -[user guide](user/index.md) is the other half of this site. +If you're looking for the user-facing docs, start from the +[home page](../index.md). ## What this covers - [Architecture](architecture.md) — the CLI/engine/ASTRA split, the run pipeline, identity, storage, the exec boundary, and the invariants that hold them together. -- [CLI Reference](cli/index.md) — every `lc` command: flags, JSON - report shapes, exit codes. -- [Engine Internals](api/index.md) — the `lightcone.engine.*` +- [CLI reference](../reference/cli/index.md) — every `lc` command: + flags, JSON report shapes, exit codes. +- [Engine internals](internals/index.md) — the `lightcone.engine.*` modules: what each owns, its key symbols, and what must stay true of it. - [Contributing](contributing/setup.md) — clone, install, run the test suite; [how the suite is shaped](contributing/testing.md); and [where a change belongs](contributing/extending.md). +- [Built on ASTRA](astra.md) — the open standard the analysis file + follows, and where to engage with it directly. ## Get started in three commands diff --git a/docs/api/assets.md b/docs/developers/internals/assets.md similarity index 100% rename from docs/api/assets.md rename to docs/developers/internals/assets.md diff --git a/docs/api/container.md b/docs/developers/internals/container.md similarity index 100% rename from docs/api/container.md rename to docs/developers/internals/container.md diff --git a/docs/api/crate.md b/docs/developers/internals/crate.md similarity index 100% rename from docs/api/crate.md rename to docs/developers/internals/crate.md diff --git a/docs/api/dataset.md b/docs/developers/internals/dataset.md similarity index 100% rename from docs/api/dataset.md rename to docs/developers/internals/dataset.md diff --git a/docs/api/identity.md b/docs/developers/internals/identity.md similarity index 100% rename from docs/api/identity.md rename to docs/developers/internals/identity.md diff --git a/docs/api/index.md b/docs/developers/internals/index.md similarity index 100% rename from docs/api/index.md rename to docs/developers/internals/index.md diff --git a/docs/api/materialize.md b/docs/developers/internals/materialize.md similarity index 100% rename from docs/api/materialize.md rename to docs/developers/internals/materialize.md diff --git a/docs/api/plan.md b/docs/developers/internals/plan.md similarity index 100% rename from docs/api/plan.md rename to docs/developers/internals/plan.md diff --git a/docs/api/project.md b/docs/developers/internals/project.md similarity index 100% rename from docs/api/project.md rename to docs/developers/internals/project.md diff --git a/docs/api/sandbox.md b/docs/developers/internals/sandbox.md similarity index 100% rename from docs/api/sandbox.md rename to docs/developers/internals/sandbox.md diff --git a/docs/api/venue.md b/docs/developers/internals/venue.md similarity index 100% rename from docs/api/venue.md rename to docs/developers/internals/venue.md diff --git a/docs/api/worker.md b/docs/developers/internals/worker.md similarity index 100% rename from docs/api/worker.md rename to docs/developers/internals/worker.md diff --git a/docs/get-started/how-it-works.md b/docs/get-started/how-it-works.md new file mode 100644 index 00000000..70f052b3 --- /dev/null +++ b/docs/get-started/how-it-works.md @@ -0,0 +1,53 @@ +# How Lightcone works + +Three parts share one project directory: the agent plugin writes the analysis, `lc` runs it, and Lightcone Lab shows it. + +You describe what you want to learn. Your agent, guided by the plugin, writes it down as `astra.yaml`, [your analysis file](../concepts/analysis-file.md), with the scripts its recipes call. `lc materialize` runs each recipe in the project's locked environment, under a sandbox, and commits every output with a manifest of what made it ([outputs and provenance](../concepts/provenance.md)). Lab reads the same files and the same states `lc status` reports. + +```text +you and your agent (with the plugin) + │ write + ▼ +astra.yaml + scripts + │ run by + ▼ +lc materialize ──▶ results/ + a manifest per output, committed + │ browsed in + ▼ + Lightcone Lab +``` + +## Why it's built this way + +Scientific results depend on methodological choices: which data to +include, how to handle outliers, which prior to assume. In ordinary +research code those choices are scattered across notebooks, scripts, +comments, and memory, which makes results hard to reproduce, audit, and +extend. Lightcone keeps the technical and the conceptual pieces of your +work together: the code, data, and environment behind every result, and +the decisions and evidence behind every choice. All of it is tracked, +checked where it can be, and tied to each result as its provenance. + +## What you get + +- **Every choice on the record.** Decisions name the options that were + considered and why one was chosen. Claims taken from papers carry quotes + that are checked against the paper itself. +- **Locked, isolated execution.** The environment is pinned, and recipes + run under a sandbox that keeps undeclared files out and stray writes + contained. +- **Laptop to cluster.** The same project runs on your machine, in a + container, or across a SLURM allocation. +- **Ready to publish.** Declare a license and Lightcone keeps an RO-Crate + of the project and its provenance up to date, ready to archive or + deposit. + +!!! abstract "Planned page" + What this page will cover: + + - Which part does what, and which one you touch at each stage + - The project as a git repository: outputs committed with the code that made them + - The two paths, with your agent or by hand, and how they meet at `lc` + - Where the other concepts fit: [decisions and universes](../concepts/universes.md), [evidence](../concepts/evidence.md) + + Draws on: [Outputs and provenance](../concepts/provenance.md), [Installation](../reference/installation.md), [Agent plugin](../reference/plugin.md) diff --git a/docs/get-started/quickstart.md b/docs/get-started/quickstart.md new file mode 100644 index 00000000..6d579735 --- /dev/null +++ b/docs/get-started/quickstart.md @@ -0,0 +1,145 @@ +# Quickstart + +Before you start, you'll need [uv](https://docs.astral.sh/uv/) 0.12 or +newer. If you don't have it, follow its +[installation guide](https://docs.astral.sh/uv/getting-started/installation/); +if you do, run `uv self update`. + +Lightcone has two parts to set up: the plugin, which drives your +analysis through your agent, and JupyterLab, where you watch it take +shape. + +## 1. Install the Lightcone plugin + +The plugin is what drives Lightcone. Choose your agent: + +

+ +## 2. Install JupyterLab with Lightcone Lab + +Lightcone Lab is a JupyterLab extension that shows a project's results +and their status, its decisions, and the papers it cites. + +
+ +=== "JupyterLab" + + Install JupyterLab with Lightcone Lab, and `lc`, the Lightcone command + line the plugin drives: + + ```bash + uv tool install jupyterlab --with jupyterlab-lightcone --with-executables-from jupyter-core,lightcone-cli + ``` + + Then start it: + + ```bash + jupyter lab + ``` + + Already installed `lc` on its own? Leave `lightcone-cli` out of + `--with-executables-from`, or uv refuses to replace it. + +=== "VS Code (soon)" + + Coming soon. + +=== "Localhost (soon)" + + Coming soon. + +
+ +## 3. Start a new project + +*Under maintenance.* + + + +## 4. Watch it in Lightcone Lab + +In JupyterLab's file browser, open your project's directory. The status +bar shows **Lightcone · _your project_**; click it to open the project: its results, +their status and provenance, and its decisions. Lab checks for changes +every 15 seconds, so it keeps up as your agent works. + +![A project open in Lightcone Lab: the file browser on the left, and the project's inventory with its figure, decisions, and inputs.](../assets/lab-inventory.png) + +## 5. Keep working as usual + +Use your agent however you normally would to work through the project, +in JupyterLab's terminal or any other. Whenever you start it in the +project's directory, it manages everything through Lightcone: decisions +go into the analysis file, results are made with `lc`, and it keeps +track of what's out of date. + +## 6. Two commands to know + +```bash +lc materialize # make the results, each recorded with what made it +lc status # see which results are out of date, and why +``` + +Run them yourself, or ask your agent to. The +[`lc` reference](../reference/cli/index.md) covers every command. + +## Next steps + +- [Work through a full analysis](../tutorial/index.md) in the Tutorial, + from question to published result. +- [See how Lightcone works](how-it-works.md): the project, the run, and + the record behind every result. +- [Get more out of Lightcone Lab](../guides/lab.md), including its + built-in agent chat, run [on a compute cluster](../guides/cluster.md), + or [write up your analysis with MyST](../guides/publish.md). +- Working without an agent, or without JupyterLab? See + [Use lc without an agent](../guides/without-agent.md) and + [Installation](../reference/installation.md). + +## Uninstall + +=== "Claude Code" + + ```bash + claude plugin uninstall lightcone@lightcone-research + claude plugin marketplace remove lightcone-research + uv tool uninstall jupyterlab + ``` + +=== "Codex" + + ```bash + codex plugin remove lightcone@lightcone-research + codex plugin marketplace remove lightcone-research + uv tool uninstall jupyterlab + ``` + +Uninstalling `jupyterlab` also removes Lightcone Lab and `lc`. If you +installed `lc` on its own, remove it with `uv tool uninstall lightcone-cli`. +Your projects are left as they are: everything Lightcone knows about an +analysis lives in the project's own git repository. diff --git a/docs/user/cluster.md b/docs/guides/cluster.md similarity index 96% rename from docs/user/cluster.md rename to docs/guides/cluster.md index f422897c..f5f45836 100644 --- a/docs/user/cluster.md +++ b/docs/guides/cluster.md @@ -1,4 +1,4 @@ -# Running on a Cluster +# Run on a cluster When local laptop time isn't enough, the same project runs on a SLURM HPC system. There is no separate configuration to learn and no flag to @@ -122,6 +122,6 @@ project is a git repository, so `git push` to a remote (and ## Where to next -- [Core Concepts](concepts.md) — the model all of this rests on. -- [Troubleshooting](troubleshooting.md) — the refusals, quoted, with +- [Outputs and provenance](../concepts/provenance.md) — the model all of this rests on. +- [Troubleshooting](../reference/troubleshooting.md) — the refusals, quoted, with remedies. diff --git a/docs/guides/decisions.md b/docs/guides/decisions.md new file mode 100644 index 00000000..1107e6d5 --- /dev/null +++ b/docs/guides/decisions.md @@ -0,0 +1,19 @@ +# Add a decision and compare universes + +After this page you can add a methodological decision to an existing +analysis, run it in more than one universe, and compare the results. + +!!! abstract "Planned page" + What this page will cover: + + - Declaring a decision and its options in `astra.yaml`, and handing the active option to a script as a CLI flag through `{decisions.}` in the recipe. + - Creating a universe file per combination of options, by hand or with `astra universe generate -n `, and checking it with `astra universe check`. + - Why every universe needs its own `id`, and what `lc` says when two files share one. + - Which outputs a new decision makes `stale`, and why the rest stay `current`. + - Materializing every universe with a bare `lc materialize`, or one with a target such as `robust/fit`. + - Comparing: outputs side by side under `results//`, and the `decisions` each manifest records. + + Draws on: [Use lc without an agent, step 6](without-agent.md#6-sweep-the-decision), + [Decisions and universes](../concepts/universes.md), + [lc materialize](../reference/cli/materialize.md), and the + `astra universe` commands (`astra-tools/src/astra/cli.py`). diff --git a/docs/guides/evidence.md b/docs/guides/evidence.md new file mode 100644 index 00000000..a79c9da5 --- /dev/null +++ b/docs/guides/evidence.md @@ -0,0 +1,19 @@ +# Cite papers and verify evidence + +After this page you can back a decision with a quote from a paper, and +have every quote in the spec checked against the paper's PDF. + +!!! abstract "Planned page" + What this page will cover: + + - `prior_insights` and `findings`, and the `evidence` entries behind them: a DOI with a verbatim quote, or an artifact naming an output. + - Caching a paper with `astra paper add ` (`--version N` for an arXiv revision), and finding the PDF with `astra paper path `. + - Writing a quote a machine can find: `quote.exact`, plus `prefix` and `suffix` when the text occurs more than once. + - Checking one paper's quotes with `astra paper verify-quotes `, and the whole project with `astra validate --verify-evidence`. + - What a failed quote means, and why artifact-backed evidence is reported as skipped rather than failed. + - Asking the agent for a literature pass while scoping. + + Draws on: [Evidence](../concepts/evidence.md), the citations section + of the `astra` skill (`agent-skills/plugins/lightcone/skills/astra/SKILL.md`), + the `lightcone` plugin's `references/literature.md`, and the + `astra paper` command group (`astra-tools/src/astra/cli.py`). diff --git a/docs/guides/index.md b/docs/guides/index.md new file mode 100644 index 00000000..53e14677 --- /dev/null +++ b/docs/guides/index.md @@ -0,0 +1,21 @@ +# Guides + +Guides are task-focused recipes: each one takes a single job from start +to finish, and assumes you have already done the +[Quickstart](../get-started/quickstart.md). + +- [Scope an analysis with your agent](scope.md) — turn a research + question into a validated `astra.yaml` through the agent's interview. +- [Add a decision and compare universes](decisions.md) — declare a + methodological choice, run each option, and read the results side by + side. +- [Cite papers and verify evidence](evidence.md) — back a decision with + a quote and have every quote checked against its paper. +- [Run on a cluster](cluster.md) — take the same project to a SLURM + allocation. +- [Browse a project in Lightcone Lab](lab.md) — read a project's + analysis, outputs, provenance and papers in JupyterLab. +- [Publish a report](publish.md) — write the MyST report and make the + repository a deposit-ready RO-Crate. +- [Use lc without an agent](without-agent.md) — the full by-hand + walkthrough: write the spec and scripts yourself, run each command. diff --git a/docs/guides/lab.md b/docs/guides/lab.md new file mode 100644 index 00000000..a267b5ec --- /dev/null +++ b/docs/guides/lab.md @@ -0,0 +1,19 @@ +# Browse a project in Lightcone Lab + +After this page you can open a Lightcone project in JupyterLab and read +its analysis, outputs, provenance and cited papers in one place. + +!!! abstract "Planned page" + What this page will cover: + + - Installing the extension with `pip install jupyterlab-lightcone` (JupyterLab 4.5.10 or later, below 5); it brings `lightcone-cli` with it. + - Opening or creating a project from the Lightcone Lab launcher, and the status bar that names the current project. + - The read-only inventory of `astra.yaml`: outputs, decisions, inputs, findings and a bibliography, with previews of figures, tables and metrics. + - Output status markers for `behind` and `stale`, and the Provenance panel: last run, git revision, recorded recipe, input versions and environment. + - Cited papers: where the cache is read from, **Fetch paper**, and jumping to a quoted passage. + - Starting a Lightcone Agent chat in the project through Jupyter AI, and opening the report in the MySTRA viewer. + + Draws on: the `jupyterlab-lightcone` README + ([PyPI](https://pypi.org/project/jupyterlab-lightcone/)), and + [Outputs and provenance](../concepts/provenance.md) for what the + status markers mean. diff --git a/docs/guides/publish.md b/docs/guides/publish.md new file mode 100644 index 00000000..f5019868 --- /dev/null +++ b/docs/guides/publish.md @@ -0,0 +1,20 @@ +# Publish a report + +After this page you can turn a finished analysis into a MyST report, +and the repository into a deposit-ready RO-Crate. + +!!! abstract "Planned page" + What this page will cover: + + - The report `lc init` scaffolds: `myst.yml` and `index.md`, which reference `astra.yaml` by path through `{astra}` roles and directives. + - Pointing the report's references at your own decision and output ids, and writing the narrative around them. + - Declaring a `license` under `[project]` in `pyproject.toml`, after which every `lc materialize` maintains `ro-crate-metadata.json` and commits it on its own. + - Reading the `crate:` line of `lc status` to see whether the crate is up to date with the outputs. + - The gate before sharing: `astra validate` is clean and `lc materialize --check` passes. + - Depositing: `git archive` (or `datalad export-archive`) on the repository you already have. + + Draws on: [Outputs and provenance](../concepts/provenance.md#publication-is-a-license-away), + [lc materialize](../reference/cli/materialize.md), + [lc init](../reference/cli/init.md#what-it-creates), + [Use lc without an agent, step 7](without-agent.md#7-publish), and the + `lightcone` plugin's `references/reporting.md` and `references/publishing.md`. diff --git a/docs/guides/scope.md b/docs/guides/scope.md new file mode 100644 index 00000000..df2ec95d --- /dev/null +++ b/docs/guides/scope.md @@ -0,0 +1,20 @@ +# Scope an analysis with your agent + +After this page you can take a research question to a validated +`astra.yaml` through your agent's scoping interview, before any +analysis code is written. + +!!! abstract "Planned page" + What this page will cover: + + - Starting from `lc init` and asking the agent for a new analysis; while scoping, it edits only `astra.yaml`, `universes/` and `AGENTS.md`, and writes no implementation code. + - The interview's phases, each announced with a banner: research question, analysis structure, an optional literature deep dive, and finalize. + - Why one analysis stays flat, and why every output is a single file with a `format:`. + - The optional literature pass: you approve the papers, and every quote is verified before scoping ends. + - What finalize leaves behind: a validated spec, a `baseline` universe, the report's references repointed at real ids, and project notes in `AGENTS.md`. + - Resuming in a later session: the agent reads `lc status` and `AGENTS.md` rather than interviewing you again. + + Draws on: the `lightcone` plugin's scoping reference + (`agent-skills/plugins/lightcone/skills/lightcone/references/scoping.md`), + [Agent plugin](../reference/plugin.md), and tutorial step + [2. Scope the analysis](../tutorial/2-scope.md). diff --git a/docs/user/getting-started.md b/docs/guides/without-agent.md similarity index 92% rename from docs/user/getting-started.md rename to docs/guides/without-agent.md index 43c28d04..0afcfb69 100644 --- a/docs/user/getting-started.md +++ b/docs/guides/without-agent.md @@ -1,4 +1,11 @@ -# Getting Started +# Use lc without an agent + +Everything an agent does in a Lightcone project goes through the same +files and the same `lc` commands you can type yourself. This page is +the full by-hand walkthrough, for people not using an agent: you write +`astra.yaml` and the scripts, and you run each command. If you are +working with an agent, the [Quickstart](../get-started/quickstart.md) +is the shorter path. Let's go from nothing on your disk to a working, reproducible analysis. You can read this top to bottom without running anything, or follow along — @@ -10,7 +17,7 @@ from an initial fit are kept or clipped. The result is two universes, `baseline` and `robust`, each with its own fitted slope and figure, and a project that ends published as an [RO-Crate](https://www.researchobject.org/ro-crate/). -Make sure you've finished the [install](install.md) first. +Make sure you've finished the [install](../reference/installation.md) first. ## 1. Create a project @@ -62,7 +69,7 @@ A real project starts from a dataset; ours will generate a small one — 200 points on a line, with a few outliers thrown far off it: ```bash -python3 - <<'EOF' +uv run python - <<'EOF' import random random.seed(0) rows = ["x,y"] @@ -86,7 +93,7 @@ your tree, and the repository stays light. Open `astra.yaml` and replace the boilerplate with our analysis: ```yaml -version: "0.0.13" # ASTRA schema version — keep what the scaffold wrote +version: "0.0.14" # ASTRA schema version — keep what the scaffold wrote name: "line_fit" description: | Fit a straight line to a small synthetic dataset and sweep one @@ -163,11 +170,11 @@ materialize to `results//.`. Check the spec is well-formed: ```bash -astra validate astra.yaml +uvx --from astra-tools astra validate astra.yaml ``` -(`astra` is the spec-side CLI; it ships with `astra-tools`, a dependency -of lightcone-cli.) +(`astra` is the spec-side CLI from `astra-tools`; `uvx` runs it without +installing anything.) ## 4. Write the scripts @@ -384,11 +391,11 @@ themselves follow with `git annex get` whenever you actually need them. ## Where to next -- [Core Concepts](concepts.md) — the model behind what you just did: +- [Outputs and provenance](../concepts/provenance.md) — the model behind what you just did: the three states, the commit discipline, the two execution modes. -- [Running on a Cluster](cluster.md) — take the same project to SLURM. -- [Troubleshooting](troubleshooting.md) — when something goes sideways. -- [Glossary](glossary.md) — terms like universe, decision, and manifest +- [Run on a cluster](cluster.md) — take the same project to SLURM. +- [Troubleshooting](../reference/troubleshooting.md) — when something goes sideways. +- [Glossary](../reference/glossary.md) — terms like universe, decision, and manifest in plain language. - The [ASTRA docs](https://astra-spec.org/latest/) — the full spec: sub-analyses, prior insights, findings, and evidence. diff --git a/docs/index.md b/docs/index.md index 31464072..c617abba 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,61 +1,54 @@ -# lightcone-cli - -**lightcone-cli** is [Lightcone Research][lr]'s execution layer for -[**ASTRA**][astra] (Agentic Schema for Transparent Research Analysis). -It serves as the machinery that ties an analysis `astra.yaml` specification to a tree -of materialized outputs. - -!!! warning "Alpha development" - lightcone-cli is in **early alpha**. The CLI and the execution layer are - still moving — expect breaking changes between minor versions. Bug reports, design - challenges, and use cases the tooling doesn't yet cover are exactly what we want to - hear at this stage; please open an issue on the - [GitHub repo](https://github.com/LightconeResearch/lightcone-cli/issues). - -## Choose your path to the documentation - -
- -- __I want to try it out__ – :lucide-rocket: - - --- - - Installation instructions, step-by-step tutorial, and fast tour of the lightcone framework and its workflow capabilities. - - [User Guide](user/index.md){ .md-button .md-button--primary } - -- __I want to contribute__ – :lucide-cog: - - --- - - In depth tour of the software architecture and API docs, as well as contribution instructions, aimed for - contributors and maintainers. - - [Developer corner](maintainer.md){ .md-button .md-button--primary } - -
- ---- - -## Two libraries, one toolchain - -
- -- __lightcone-cli__ - - The library that ships the `lc` CLI: project scaffolding, locked environments, sandboxed execution, and the provenance layer. Depends on [**astra-tools**][astra-tools], the SDK for working with ASTRA analysis specifications. - - [:fontawesome-brands-github: Repository][cli]{ .md-button } - -- __astra-tools__ - - The SDK for working with [**ASTRA**][astra] analysis specifications. This library provides the `astra` CLI which handles the [**ASTRA**][astra] lifecycle and validation process (schema, prior insights & findings, evidence verification helpers). - - [:fontawesome-brands-github: Repository][astra-tools]{ .md-button } - -
- -[lr]: https://lightconeresearch.org/ -[astra]: https://astra-spec.org/latest/ -[astra-tools]: https://github.com/LightconeResearch/astra-tools -[cli]: https://github.com/LightconeResearch/lightcone-cli +# Rigorous research, without the bookkeeping + +Lightcone is a sidecar for your research: it attaches to the project +you're working on and to the agent you already use, stays out of the way +of how you work, and makes sure your work is rigorous and reproducible by +default. + +- **Every decision, and why.** The methodological choices you make are + written down with the options you considered, the reasons for the + choice, and the papers that informed it. +- **Every result, and what made it.** Each result carries a record of the + code, data, and environment that produced it, and anything made outside + that record is flagged. +- **What a change affects.** When a decision or the data changes, you can + see which results are out of date, and why. + +We're not prescriptive about how much you use AI in your research: use an +agent for everything, for some things, or not at all. Our goal is to make +sure that the science you do, however you do it, is rigorous and +reproducible. + +!!! warning "Beta development" + Lightcone is in a **public beta**: expect some breaking changes between + minor versions. Bug reports, design challenges, and use cases we don't + cover yet are exactly what we want to hear. Please + [open an issue](https://github.com/LightconeResearch/lightcone-cli/issues). + +## Where to next + +**New to Lightcone?** Follow the [Quickstart](get-started/quickstart.md) +to install Lightcone, set it up with your agent, and run your first +analysis. + +Then, depending on how you work: + +- [Work through a full analysis](tutorial/index.md), from question to + published result. +- [Use Lightcone interactively in JupyterLab](guides/lab.md). +- [Set Lightcone up on a compute cluster](guides/cluster.md). +- [Write up your analysis with MyST](guides/publish.md). +- [Use Lightcone without an agent](guides/without-agent.md). + +## Developer corner + +Lightcone Research is committed to open source. The `lc` engine, the +agent plugins, and the ASTRA specification are developed in the open on +[GitHub](https://github.com/LightconeResearch), and the +[developer docs](developers/index.md) cover the architecture, the +engine's internals, and how to contribute. + +Lightcone is built on [ASTRA](https://astra-spec.org), an open +specification for describing scientific analyses. Visit +[astra-spec.org](https://astra-spec.org) for the full specification, or +to contribute to it. diff --git a/docs/cli/build.md b/docs/reference/cli/build.md similarity index 100% rename from docs/cli/build.md rename to docs/reference/cli/build.md diff --git a/docs/cli/index.md b/docs/reference/cli/index.md similarity index 100% rename from docs/cli/index.md rename to docs/reference/cli/index.md diff --git a/docs/cli/init.md b/docs/reference/cli/init.md similarity index 98% rename from docs/cli/init.md rename to docs/reference/cli/init.md index ff367091..3960f8a4 100644 --- a/docs/cli/init.md +++ b/docs/reference/cli/init.md @@ -100,7 +100,7 @@ How git finds git-annex is still ordinary `PATH` resolution, which is why `lc` should be installed with `uv tool install lightcone-cli` — it puts `git-annex` on your `PATH` alongside `lc`. If your `git add` ever refuses, see -[`fatal: … clean filter 'annex' failed`](../user/troubleshooting.md#fatal-clean-filter-annex-failed) +[`fatal: … clean filter 'annex' failed`](../troubleshooting.md#fatal-clean-filter-annex-failed) in the troubleshooting guide. ## Options diff --git a/docs/cli/materialize.md b/docs/reference/cli/materialize.md similarity index 98% rename from docs/cli/materialize.md rename to docs/reference/cli/materialize.md index 6a7283c7..8a13714d 100644 --- a/docs/cli/materialize.md +++ b/docs/reference/cli/materialize.md @@ -53,7 +53,7 @@ never touched, under any flag. On a containerized project, the run resolves the committed image first (building it as a preflight if the declaration is committed but the image never built). Inside a SLURM allocation, the run spans every -allocated node — see [Running on a Cluster](../user/cluster.md). +allocated node — see [Run on a cluster](../../guides/cluster.md). ## Check mode diff --git a/docs/cli/run.md b/docs/reference/cli/run.md similarity index 100% rename from docs/cli/run.md rename to docs/reference/cli/run.md diff --git a/docs/cli/status.md b/docs/reference/cli/status.md similarity index 100% rename from docs/cli/status.md rename to docs/reference/cli/status.md diff --git a/docs/user/glossary.md b/docs/reference/glossary.md similarity index 100% rename from docs/user/glossary.md rename to docs/reference/glossary.md diff --git a/docs/reference/installation.md b/docs/reference/installation.md new file mode 100644 index 00000000..3815357a --- /dev/null +++ b/docs/reference/installation.md @@ -0,0 +1,230 @@ +# Installation + +Lightcone has three parts. The **agent plugin** teaches your coding +agent to scope and drive an analysis. The **`lc` CLI** runs it and +records what produced every result. **Lightcone Lab** is an optional +JupyterLab extension for browsing a project. Install the plugin first, +then `lc`; add Lab if you want it. + +!!! note "Supported platforms" + Linux (glibc 2.34+, x86_64 or aarch64) and macOS (14+ on Apple + silicon, 15+ on Intel). On Windows, use WSL. + +## Before you start: uv and git + +The plugin needs [uv](https://docs.astral.sh/uv/); `lc` needs uv and +git. `lc` uses uv as its only environment substrate — projects are +`pyproject.toml` + `uv.lock`, and uv manages the Python interpreters +too, so there is no separate Python install step. + +=== "macOS / Linux" + ```bash + curl -LsSf https://astral.sh/uv/install.sh | sh + ``` + + git is preinstalled on macOS; on Linux use your package manager + (`apt install git`, `dnf install git`, …). + +=== "NERSC Perlmutter" + NERSC doesn't ship `uv`, but it installs into your home directory + with a single curl: + + ```bash + curl -LsSf https://astral.sh/uv/install.sh | sh + ``` + + `uv` lands under `~/.local/bin` — make sure it's on your `PATH`. + git is already on the system. + +## 1. The agent plugin + +This is the recommended way to work: your agent scopes the analysis +with you, writes `astra.yaml` and the scripts, and drives `lc`. The +plugin is called **`lightcone`**, and it works in Claude Code and +Codex. It bundles everything the agent needs, so it is the only plugin +to install. + +=== "Claude Code" + + ```bash + claude plugin marketplace add LightconeResearch/agent-skills + claude plugin install lightcone@lightcone-research + ``` + + Then invoke `/lightcone:lightcone` in a session. + +=== "Claude App" + + Go to **Customize → Plugins**, click **Add**, then choose + **Add marketplace → Add from repo**. Paste + `https://github.com/LightconeResearch/agent-skills`, pick `lightcone`, + and call it with `/lightcone:lightcone`. + +=== "Codex CLI" + + ```bash + codex plugin marketplace add LightconeResearch/agent-skills + codex plugin add lightcone@lightcone-research + ``` + + Then invoke the skill in Codex, for example `$lightcone:lightcone`. + +=== "Codex App" + + Click the arrow beside **Create** and open **Plugins**. Install the + `LightconeResearch/agent-skills` marketplace, search for `lightcone`, + and install it. Then call `/lightcone:lightcone`. + +You rarely need to type the invocation: the agent loads the skill on +its own when you ask to start, run or resume an analysis, or when the +directory holds an `astra.yaml`. + +**The plugin does not install `lc`.** At the start of every session it +checks that `lc` is on your `PATH` and recent enough. If it isn't, the +agent tells you and asks whether to install or upgrade it, and waits +for your answer; only in a headless session, with no one to ask, does +it install `lc` on its own and say so. You can let the agent do it, or +install `lc` yourself with the next section. +[Agent plugin](plugin.md) in the Reference describes +everything the plugin ships. + +## 2. The `lc` CLI + +The published name on PyPI is `lightcone-cli`; the command it provides +is `lc`. + +=== "uv" + ```bash + uv tool install lightcone-cli + ``` + +=== "pip" + ```bash + python -m pip install lightcone-cli + ``` + +Get a confirmation of the proper installation by running + + lc --version # → lc, version ... + +> **Note** Some people may have already set a personal shell alias +> `lc='ls --color'`. If that's you, installing lightcone-cli will shadow +> the alias — make sure to rebind it (e.g. `alias l='ls --color'`). +> [Troubleshooting](troubleshooting.md) has more on a +> shadowed `lc`. + +### Tell git who you are + +Every output `lc` makes is committed, so git needs an identity before +the first build — `lc materialize` checks up front rather than failing +after your recipes have run: + +```bash +git config --global user.name "Ada Lovelace" +git config --global user.email "ada@example.org" +``` + +If you already commit from this machine, you're done. + +### (Optional) Podman or Docker + +Only *containerized* projects need a container runtime — a project opts +in by declaring `[tool.lightcone.image]` in its `pyproject.toml`, and +until it does, recipes run directly on your machine in the project's +own locked environment. + +- Local machine: install [Podman](https://podman.io/) (rootless, no + daemon) or [Docker](https://docs.docker.com/get-docker/). +- HPC login node: see [Run on a cluster](../guides/cluster.md). + +There is nothing to configure: `lc` detects whichever runtime is +available (`podman-hpc`, then `podman`, then `docker` — skipping docker +if its daemon isn't running). + +### Sanity check + + lc --help + lc init --help + +Both should print help text. If `lc` is shadowed by an `ls` alias, +unset it (`unalias lc`) or use the full path (`$(which lc) --version`). +The [`lc` CLI reference](cli/index.md) covers every verb. + +### Updating + +=== "uv tool" + ```bash + uv tool upgrade lightcone-cli + ``` + +=== "pip" + ```bash + pip install -U lightcone-cli + ``` + +An upgrade never invalidates your results: the engine's version is +recorded in every output's manifest, but it is not part of any output's +identity, so nothing gets rebuilt just because `lc` moved. + +### Uninstalling + +=== "uv tool" + ```bash + uv tool uninstall lightcone-cli + ``` + +=== "pip" + ```bash + pip uninstall lightcone-cli + ``` + +Your projects are untouched — everything `lc` knows about an analysis +lives in the project's own repository, not in any global state. + +## 3. Lightcone Lab + +Lightcone Lab is a JupyterLab extension for browsing a project: its +outputs, decisions, inputs and cited papers, with each output's state +and provenance. It needs Python 3.11+ and JupyterLab 4.5.10 or newer +(below 5), and uv 0.12 or newer: an older uv resolves an old release of +the extension without telling you. + +=== "New to JupyterLab" + + Install JupyterLab with the extension as one uv tool. This also puts + `lc` on your `PATH`: + + ```bash + uv tool install jupyterlab --with jupyterlab-lightcone --with-executables-from jupyter-core,lightcone-cli + jupyter lab + ``` + + If you have already installed `lc` on its own (section 2), leave + `lightcone-cli` out of `--with-executables-from`: uv refuses to + replace an executable another tool installed. + +=== "Your own JupyterLab" + + Install the extension into the environment JupyterLab runs from, + then restart JupyterLab: + + ```bash + pip install jupyterlab-lightcone + ``` + +The extension brings `lightcone-cli` with it as a dependency and calls +the engine directly, so `lc` does not have to be on the Jupyter server's +`PATH`; creating a project from Lab does need `uv` and `git` there. To +confirm it loaded: + +```bash +jupyter labextension list +``` + +[Browse a project in Lightcone Lab](../guides/lab.md) shows what to do +with it. + +## Next + +[Quickstart](../get-started/quickstart.md): set up Lightcone and start a +project. diff --git a/docs/reference/plugin.md b/docs/reference/plugin.md new file mode 100644 index 00000000..74e1e3ed --- /dev/null +++ b/docs/reference/plugin.md @@ -0,0 +1,109 @@ +# Agent plugin + +The `lightcone` plugin teaches a coding agent to scope, run and publish +a Lightcone project. It works in Claude Code and Codex, and ships two +skills and three hooks. It bundles the `astra` plugin, so it is the +only plugin to install: don't install `astra` alongside it. +Installation is covered in [Install](installation.md#1-the-agent-plugin). + +## What it ships + +| Part | What it does | +|---|---| +| `lightcone` skill | The project companion: scoping a new analysis, resuming one, running it with `lc`, diagnosing failures, writing the report, publishing. | +| `astra` skill | Writing and checking `astra.yaml`: its structure, decisions, universes, and citations with verifiable quotes. Bundled from the `astra` plugin. | +| Session-start hook: `lc` check | Tells the agent whether `lc` is installed and recent enough, before it tries to use it. | +| Session-start hook: project orientation | In a directory with an `astra.yaml`, gives the agent the file's location and a summary of the analysis. | +| Validate-on-save hook | Re-validates the project whenever the agent saves `astra.yaml` or a universe file, and hands the result back to the agent. | + +## Invoking the skills + +Skills are namespaced by plugin: `/:` in Claude, +`$:` in the Codex CLI. + +| Skill | Claude Code, Claude App, Codex App | Codex CLI | +|---|---|---| +| `lightcone` | `/lightcone:lightcone` | `$lightcone:lightcone` | +| `astra` | `/lightcone:astra` | `$lightcone:astra` | + +You rarely need to. The agent loads the `lightcone` skill on its own +when you ask to start, resume, run, debug or publish an analysis, and +whenever the directory holds an `astra.yaml` and you ask to run, fix or +interpret it. It loads the `astra` skill whenever it reads or writes +`astra.yaml`. + +## The `lightcone` skill + +The skill routes the agent by what you are doing: + +| You are | The agent | +|---|---| +| Starting from a research question | Interviews you to scope the analysis, and writes no code until the scope is agreed. Optionally reads the literature first and records what it finds. | +| Picking up an existing project | Runs `lc status` and summarizes where things stand before asking what's next, rather than re-interviewing you. | +| Writing or debugging a script | Tries it with `lc run`, which gives the command the same sandbox a recipe gets. | +| Producing an output | Wires the recipe into `astra.yaml`, commits, and runs `lc materialize`. It is done when `lc materialize --check` passes. | +| Hitting a refusal or a failing recipe | Follows the remedy `lc` names, rather than working around it. | +| Writing the report | Keeps the MyST report (`index.md`) referencing the analysis rather than restating it. | +| Sharing or archiving | Walks you through declaring a license, which turns on the RO-Crate view `lc materialize` maintains. | + +A few rules it holds to: + +- **It never installs or upgrades `lc` unasked** when someone is there + to answer. In a headless session it acts and says what it changed. +- It drives `lc` with `--json` and quotes the engine's own reasons + rather than guessing at them. +- It runs everything through `lc`: never the container runtime, the + sandbox or a scheduler directly, and never writes into `results/` by + hand. +- It keeps the **Project Notes** in the project's `AGENTS.md` current, + so a later session can pick the work up. + +## The `astra` skill + +The `astra` skill carries the judgment a schema cannot: what deserves +to be a decision, when to split an analysis, how to back a claim with +evidence. It runs the `astra` CLI through `uvx` at a pinned version, +never whatever `astra` is on your `PATH`, and re-validates after every +change. For citations, it caches each paper when it is cited, copies +quotes verbatim from the cached PDF, and verifies them before calling +the work done. + +## Hooks + +The hooks report; they never install anything. Each runs with a +90-second timeout and adds its findings to the agent's context. + +**`lc` check** (session start). Runs in every session, with or without +a project, since the skill's first job is often to create one. It +checks that `lc` is on `PATH`, that `lc --version` answers, and that +the version is at least the one the skill was written against. When +all is well it reports `Lightcone CLI ready: lc `, and the +agent skips its own check. Otherwise it names the problem and the +remedy: in an interactive session the agent asks you before installing, +upgrading or repairing `lc`; in a headless one (`claude -p`, an SDK +embed, or CI) it does so itself and says so. + +**Project orientation** (session start). Only when `./astra.yaml` +exists. It runs `astra info` and gives the agent the spec's location +and the analysis's shape. If uv is missing, it tells the agent to ask +you to install it. + +**Validate on save** (after the agent's `Write`, `Edit` or +`apply_patch`). When the save mentions `astra.yaml` or a universe file +and `./astra.yaml` exists, it validates the whole project, the +analysis file and every universe file, so an edit that strands a +universe fails at once. A failure is passed to the agent verbatim. + +## Requirements and versions + +- **uv.** The `astra` CLI runs through `uvx`, which installs it on + first use. +- **`lc`.** Not installed by the plugin; see + [Install](installation.md#2-the-lc-cli). The `lc` check + names the minimum version. +- **bash**, which runs the hook scripts. + +The plugin pins the tools it drives. In plugin version 0.0.3, the +`astra` CLI is `astra-tools` 0.2.17 and the minimum `lc` is +`lightcone-cli` 0.5.0rc3. The source is +[LightconeResearch/agent-skills](https://github.com/LightconeResearch/agent-skills). diff --git a/docs/user/troubleshooting.md b/docs/reference/troubleshooting.md similarity index 98% rename from docs/user/troubleshooting.md rename to docs/reference/troubleshooting.md index e7e59f1c..bad62335 100644 --- a/docs/user/troubleshooting.md +++ b/docs/reference/troubleshooting.md @@ -85,7 +85,7 @@ remade under the current environment: lc materialize --refresh ``` -See [Core Concepts](concepts.md) for the `stale` / `behind` +See [Outputs and provenance](../concepts/provenance.md) for the `stale` / `behind` distinction. ## Everything shows `stale` after a spec edit @@ -164,7 +164,7 @@ refuses to do that on a shared login node. The refusal prints the center's own `salloc` and `sbatch` spellings — copy one, run the same command inside the allocation. `lc status`, `lc materialize --check`, `lc build` and `lc run` work anywhere. See -[Running on a Cluster](cluster.md). +[Run on a cluster](../guides/cluster.md). ## git doesn't know who you are diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index e454c122..7e700a4a 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -55,3 +55,16 @@ body, background-color: rgba(76, 63, 70, 0.15); color: #c8dde5; } + +/* ── Options that are not available yet ────────────────────────────────── */ + +/* Wrapping a tab set in
(or soon-2) greys + out its last one (or two) tabs and makes them unselectable, so an + upcoming option is visible in the row but never opens onto an empty + panel. */ +.md-typeset .soon-1 > .tabbed-set > .tabbed-labels > label:last-child, +.md-typeset .soon-2 > .tabbed-set > .tabbed-labels > label:nth-last-child(-n + 2) { + pointer-events: none; + opacity: 0.4; + font-style: italic; +} diff --git a/docs/tutorial/1-data.md b/docs/tutorial/1-data.md new file mode 100644 index 00000000..6531f6af --- /dev/null +++ b/docs/tutorial/1-data.md @@ -0,0 +1,44 @@ +# 1. The data + +A classic cosmology problem, a public catalogue, and a directory to work in. + +!!! abstract "Planned changes" + - Re-run the prompt with the `lightcone` plugin installed (the source ran with + `astra` only). + - Decide whether `lc init` runs here, before the download, rather than in + [chapter 3](3-reproduce.md): the `lightcone` skill's scoping starts from an + `lc init` scaffold. + +We work through a classic cosmology problem: using the relation between the +brightness and redshifts of supernovae to estimate the dark energy content of +the universe. We will fit the standard ΛCDM model of cosmology to 580 Type Ia +supernovae from [Suzuki et al. 2012](https://arxiv.org/abs/1105.3470). +Mechanically, this is a straightforward least-squares fit with a single free +parameter, Ω_Λ. + +## Start your agent + +Make a directory to work in: + +```bash +mkdir sn-cosmology && cd sn-cosmology +``` + +Then start your agent in it, with the `lightcone` plugin installed (see +[install](../reference/installation.md)). + +## Get the data + +```text +Download the Union2.1 supernova compilation from the Supernova Cosmology +Project into a data/ directory: + + https://supernova.lbl.gov/Union/figures/SCPUnion2.1_mu_vs_z.txt + +Then show me the first few rows and tell me what's in the file. +``` + +## You now have + +- A working directory, `sn-cosmology`, with the Union2.1 compilation in `data/`. +- An agent that has read the file and can tell you what is in it. diff --git a/docs/tutorial/2-scope.md b/docs/tutorial/2-scope.md new file mode 100644 index 00000000..94d789e0 --- /dev/null +++ b/docs/tutorial/2-scope.md @@ -0,0 +1,83 @@ +# 2. Scope the analysis + +Before any code: say what the analysis is, and let the agent write it down. + +!!! abstract "Planned changes" + - Re-run the prompt with the `lightcone` plugin and capture the real + `astra.yaml`. The `lightcone` skill scopes by interview (research question, + structure, an optional literature pass, finalize), so it may ask questions + the `astra`-only run did not. + - Give both outputs a `format:`, from that re-run rather than by hand: `lc` + refuses an output without one, because the format names its file. `format:` + arrived in spec version 0.0.14, so check it validates under the `version:` below. + - The skill's finalize step also writes `AGENTS.md` and a `baseline` universe, + and repoints the scaffolded `index.md`. Decide how much of that to show here. + +Say what the analysis is: + +```text +Use the lightcone skill to set up an astra.yaml for this. I want to fit a flat +LCDM model to this data to recover Omega_Lambda, varying only Omega_Lambda +and using the metadata in the file's header. + +Two outputs: the best fit, and a downstream best-fit Hubble diagram figure +with an absolute panel and a residuals panel. + +In this first pass, let's only use inputs, outputs, and recipes. Please walk +me through each element that you add. +``` + +## Your analysis file + +The agent writes the analysis down in `astra.yaml`: your +[analysis file](../concepts/analysis-file.md), and the one place the analysis +is described. Everything that follows reads from it. + +When the agent writes `astra.yaml`, a hook fires and validates it immediately. +You should see something like this: + +```yaml +version: "0.0.12" +name: "Cosmic expansion from Type Ia supernovae" + +inputs: + - id: union21 + type: data + source: data/SCPUnion2.1_mu_vs_z.txt + description: > + Union2.1 SN Ia compilation. 580 rows spanning z = 0.015 to 1.414. The + header gives the assumed absolute magnitude, M(h=0.7), so the distance + moduli carry an h = 0.7 calibration. + +outputs: + - id: best_fit + type: metric + description: > + Best-fit Omega_Lambda with its uncertainty, chi-squared, dof. H0 is held + at 70 km/s/Mpc to match the calibration in the data file's header, not + fitted. + inputs: [union21] + recipe: + command: python src/fit.py --data {inputs.union21} --out {output} + + - id: hubble_diagram + type: figure + description: > + Two panels sharing a redshift axis: distance modulus with the best-fit + curve, and residuals below it. + inputs: [union21, best_fit] + recipe: + command: > + python src/plot_hubble.py --data {inputs.union21} --fit + {inputs.best_fit} --out {output} +``` + +Each output names what it depends on and a recipe: the command that makes it. +`{inputs.union21}` and `{output}` are placeholders, filled in when the recipe +runs. `hubble_diagram` takes `best_fit` as an input, so the figure is always +drawn from the fit it sits beside. + +## You now have + +- An `astra.yaml` declaring the data, two outputs, and the recipe that makes each. +- No code yet. The scripts the recipes call come in the next chapter. diff --git a/docs/tutorial/3-reproduce.md b/docs/tutorial/3-reproduce.md new file mode 100644 index 00000000..063b9f06 --- /dev/null +++ b/docs/tutorial/3-reproduce.md @@ -0,0 +1,103 @@ +# 3. Make it reproducible + +Run the analysis so that every output arrives with a record of how it was made. + +!!! abstract "Planned chapter" + Mostly new. The source tutorial had the agent run the scripts itself; here + `lc` runs them. Nothing below has been run yet: the prompts are drafts, and + every place real output belongs is marked **To capture**. + + 1. **`lc init`** makes the directory a Lightcone project. It adopts the + existing `astra.yaml` untouched and adds the rest. + 2. **Implement.** The agent adds packages with `uv add`, writes the scripts + the recipes call, and probes them with `lc run`. + 3. **Commit, then `lc materialize`.** Each output lands at + `results//.` beside a manifest, and is committed with + the code that made it. + 4. **`lc status`** shows both outputs `current`. + 5. **The result.** Confirm the materialized fit reproduces Ω_Λ = 0.722 ± 0.013 + (the source's agent-run number), and regenerate the figure from `results/`. + + Open questions for this chapter: + + - Beside an adopted spec, `lc init` writes no universe file, so the + `baseline` universe has to come from scoping ([chapter 2](2-scope.md)). + Confirm it does. + - `lc init` scaffolds `index.md` against its own boilerplate spec, so its + references name ids this analysis does not have. The skill repoints them + at the end of scoping, which in this order has already happened. + +## Make it a project + +`lc init` converges the working directory into a Lightcone project: a git +repository with git-annex for the data, a locked `uv` environment, a +`results/` directory that `lc` writes into, and a MyST report. A directory that +already holds an `astra.yaml` is adopted: the spec is left untouched, and only +the missing pieces are added. See [`lc init`](../reference/cli/init.md). + +```text +Make this directory a Lightcone project with lc init, and tell me what it +added. +``` + +!!! note "To capture" + The prompt's real run, and the agent's summary of what `lc init` added. + +## Implement the analysis + +```text +Implement the analysis: write the scripts the recipes call, add what they +import to the project, and try them out before we make anything for real. +``` + +A recipe runs in the project's locked environment, in a sandbox. So the agent +adds packages with `uv add`, never `pip install`, and tries each script with +`lc run`, which runs a command under the same boundary a recipe gets: what +works under `lc run` works as a recipe. + +!!! note "Where results go" + `{output}` is not yours to choose. `lc` composes it as + `results//.`, so the whole of `results/` + follows from the analysis file alone. + +!!! note "To capture" + The scripts the agent writes, the `uv add` it runs, and its `lc run` probes. + +## Materialize + +```text +Commit the data, the scripts and the spec, then materialize the outputs. +``` + +`lc materialize` runs each recipe in dependency order, `best_fit` before +`hubble_diagram`. Each output lands in `results//` beside a +`..manifest.json` that records the recipe, the decisions, the input +hashes, the environment, and the commit, and each is committed as it lands. See +[outputs and provenance](../concepts/provenance.md). + +!!! note "To capture" + The real `lc materialize` output, and a look at one manifest. + +## Check where it stands + +```bash +lc status +``` + +One line per output: its state, and the commit it was made at. Both should be +`current`. See [`lc status`](../reference/cli/status.md). + +!!! note "To capture" + The real `lc status` output. + +## The result + +One number comes back: **Ω_Λ = 0.722 ± 0.013.** + +![Two-panel Union2.1 Hubble diagram: distance modulus against redshift with the best-fit flat-ΛCDM curve, and residuals below.](../assets/hubble_two_panel.png) + +## You now have + +- A Lightcone project whose two outputs were each made by `lc materialize` and + committed with a manifest of how. +- Ω_Λ = 0.722 ± 0.013, and a Hubble diagram to go with it. diff --git a/docs/tutorial/4-evidence.md b/docs/tutorial/4-evidence.md new file mode 100644 index 00000000..f30953de --- /dev/null +++ b/docs/tutorial/4-evidence.md @@ -0,0 +1,76 @@ +# 4. Check it against the paper + +Put the paper's own number in the analysis file, with a quote checked against +the PDF. + +!!! abstract "Planned changes" + - Re-run the prompt with the `lightcone` plugin and capture the real output. + - Check the command name: this chapter says `astra paper verify-quote`, the + pinned `astra` skill lists `astra paper verify-quotes`. + - Add an `lc` beat: commit the spec change, and confirm with `lc status` that + a prior insight leaves both outputs `current` (it changes no output's + recipe or decisions). + - Decide whether the paper belongs here or in scoping: the `lightcone` skill + offers its literature pass while scoping, before any result exists. + +Is our result consistent with that found in the original paper? We check it by +quoting them — and the quote is verified against the paper itself. + +```text +The paper that published this catalogue is Suzuki et al. 2012, arXiv +1105.3470. Cache the paper, verify their own Omega_Lambda from these +supernovae, and show me the output. Then record it in astra.yaml as a prior +insight with the quote as evidence, and tell me how our constraint compares to +theirs. +``` + +The text is searched in the cached PDF; running `astra paper verify-quote` +gives: + +```text +✓ Verified Quote verified on page(s) [17] +``` + +```yaml +prior_insights: + suzuki_2012_result: + label: "Union2.1's own dark-energy constraint" + claim: > + Suzuki et al. (2012) constrain the dark energy density from these + supernovae alone, in a flat universe, to Omega_Lambda = 0.705 + (+0.040, -0.043) including systematic errors. + created_at: "2026-07-27T00:00:00Z" + tags: [physics, priors] + evidence: + - id: suzuki_2012_sne_alone_flat_lcdm + doi: "10.48550/arXiv.1105.3470" + quote: + exact: "In a flat Universe, SNe Ia alone constrain the dark-energy density, ΩΛ, to be ΩΛ = 0.705+0.040−0.043 including systematics" + location: + value: "page=17" +``` + +A prior insight is what the literature already says, written into the +analysis file with the evidence for it. See [evidence](../concepts/evidence.md). + +If you want to run the check yourself: + +```bash +uvx astra-tools validate astra.yaml --verify-evidence +``` + +```text +✓ Schema validation passed +✓ Semantic validation passed + +Verifying evidence... +✓ Evidence (prior_insights): 1/1 verified +``` + +Our central value agrees with theirs, but look at the error bars! + +## You now have + +- The paper's own Ω_Λ in `astra.yaml` as a prior insight, its quote verified + against the PDF. +- A central value that agrees with theirs, and error bars that do not. diff --git a/docs/tutorial/5-decision.md b/docs/tutorial/5-decision.md new file mode 100644 index 00000000..5823e071 --- /dev/null +++ b/docs/tutorial/5-decision.md @@ -0,0 +1,89 @@ +# 5. Add a decision + +Find out why our error bars are three times tighter than the paper's, and +record the answer as a decision. + +!!! abstract "Planned changes" + - Re-run the prompt with the `lightcone` plugin and capture the real decision + and universe files it writes. + - Add the `lc` beats, with real output: the decision changes the fit's recipe, + so `lc status` shows the chapter 3 fit `stale`; `lc materialize` makes both + universes; the table below is read from `results/`. + - Settle which option the `baseline` universe takes (statistical only, as + before, or statistical + systematic) and what the second universe is called. + +Ours are three times tighter — 0.722 ± 0.013 against their 0.705 ± 0.04, on the +same 580 supernovae. Find out why: + +```text +Let's understand why our error bars are so much tighter than theirs. Download +the two Union2.1 covariance files: + + https://supernova.lbl.gov/Union/figures/SCPUnion2.1_covmat_nosys.txt + https://supernova.lbl.gov/Union/figures/SCPUnion2.1_covmat_sys.txt + +Work out which one the main data file's error column is using, then add a +decision to astra.yaml to switch to the other, and see what impact it has on +our constraint. +``` + +The error column matches the no-systematics file: our fit has been statistical +only, and everything the systematic covariance knows was sitting in a file we +had not opened. + +## One decision, two universes + +A decision is a methodological choice with its options named and its reason +written down. Each universe is one choice of option for every decision, and +`lc` makes every output once per universe, under `results//`. See +[decisions and universes](../concepts/universes.md). + +!!! note "To capture" + The decision as the agent writes it in `astra.yaml`, and the universe files. + +## What changed + +The decision reaches the fit's recipe, so the fit made in +[chapter 3](3-reproduce.md) no longer matches the analysis file. `lc status` +says so: + +```bash +lc status +``` + +!!! note "To capture" + The real `lc status` output, with the reason `lc` gives for what is stale. + +Commit, and materialize both universes: + +```text +Commit the decision, then materialize every universe and compare the fits. +``` + +!!! note "To capture" + The real `lc materialize` output, and the comparison read from `results/`. + +## The comparison + +Switching to the systematic covariance gives: + +| | Ω_Λ | +|---|---| +| ours, statistical | 0.722 ± 0.013 | +| ours, statistical + systematic | **0.714 ± 0.030** | +| Suzuki et al., published | 0.705 (+0.040, −0.043) | + +The value barely moves. The uncertainty more than doubles — and only then is it +comparable with the paper's, which includes systematics too. Our second row +agrees with theirs to 0.2σ: their data, their systematics, their method. + +A comparison of best-fit numbers would have ranked this decision as nearly +irrelevant. It is the difference between a number that resembles theirs and a +number you can put beside theirs. + +## You now have + +- Two universes, statistical and statistical + systematic, each with its own + materialized fit and Hubble diagram. +- A number you can put beside the paper's, and the decision that made it so, + written down. diff --git a/docs/tutorial/6-publish.md b/docs/tutorial/6-publish.md new file mode 100644 index 00000000..15d0cb60 --- /dev/null +++ b/docs/tutorial/6-publish.md @@ -0,0 +1,81 @@ +# 6. Inspect and publish + +Look at what you built, write it up, and make it something others can check. + +!!! abstract "Planned chapter" + New. Nothing below has been run yet: the prompts are drafts, and every place + real output belongs is marked **To capture**. + + 1. **Lightcone Lab.** Browse the project: both universes, their outputs, and + the manifest and commit behind each. + 2. **The report.** Have the agent write the MyST report `lc init` scaffolded, + referencing numbers from the analysis rather than typing them. + 3. **Publish.** Declare a license, so `lc materialize` maintains an RO-Crate + of the project. + 4. **Going further.** Ported from the source tutorial as the close. + +## Browse it in Lightcone Lab + +!!! note "To capture" + Opening this project in Lightcone Lab, and what to look at first: the two + universes side by side, and the provenance behind each output. Screenshots. + +See [browse a project in Lightcone Lab](../guides/lab.md). + +## Write the report + +`lc init` scaffolded a MyST report next to the analysis file: `myst.yml` and +`index.md`. The report references the analysis instead of restating it, so a +number in the prose is read from the output that holds it, and cannot go stale +behind your back. + +```text +Write up the analysis in index.md: the question, the fit, the covariance +decision and why it matters, and the comparison with Suzuki et al. Reference +the numbers and the figure from the analysis rather than typing them. +``` + +!!! note "To capture" + The report as the agent writes it, and a rendered preview. + +## Publish it + +Declaring a license is how you tell `lc` the project is meant for the outside +world. With one declared, `lc materialize` maintains `ro-crate-metadata.json` +at the project root, an [RO-Crate](https://www.researchobject.org/ro-crate/) +rendered from the repository and committed with it. Nothing is rebuilt. See +[publish a report](../guides/publish.md). + +```text +Add a CC-BY-4.0 license to the project and materialize, so the RO-Crate is +maintained. +``` + +!!! note "To capture" + The real `lc materialize` output, and `lc status` reporting the crate. + +## Going further + +Three more decisions are sitting in this analysis, none of them implemented +here: + +- **Optimiser** — likely a null result, and worth recording as one. +- **Redshift range** — the high-z supernovae carry the longest lever arm and the + worst systematics. +- **Dark energy model** — assume w = −1, or fit it. The weaker assumption, at + the cost of a strong degeneracy with Ω_Λ. + +Each is one more option, one more recipe argument, and one more reason written +down. [Add a decision and compare universes](../guides/decisions.md) covers the +mechanics. + +The [agent plugin](../reference/plugin.md) page covers what the plugin ships, +and [how Lightcone works](../get-started/how-it-works.md) covers the model behind every +step you just took. + +## You now have + +- A project you have browsed in Lightcone Lab, with a MyST report that reads its + numbers from the analysis. +- An RO-Crate, kept current by every `lc materialize`, for anyone who wants to + check your work. diff --git a/docs/tutorial/index.md b/docs/tutorial/index.md new file mode 100644 index 00000000..a731bf19 --- /dev/null +++ b/docs/tutorial/index.md @@ -0,0 +1,66 @@ +# Tutorial + +Measure the dark energy content of the universe from 580 supernovae, with +your agent doing the work and Lightcone keeping the record. + +!!! abstract "Planned changes" + - Fill in the time estimate once the `lc` chapters have been run end to end. + - Publish the companion example repository and link it from each chapter. + +## What you'll build + +One number: **Ω_Λ**, the dark energy density of a flat ΛCDM universe, fitted +to the 580 Type Ia supernovae of the Union2.1 compilation +([Suzuki et al. 2012](https://arxiv.org/abs/1105.3470)). Mechanically, it is a +least-squares fit with a single free parameter. + +The fit is the easy part. The tutorial is about what it takes to put that +number beside the published one: an analysis file that says what was done, outputs +made with a record of how, a claim checked against the paper, and one +methodological decision that turns out to matter more than the fit itself. + +## What you'll learn + +- Scope an analysis with your agent, into an analysis file. +- Turn a working directory into a reproducible project with `lc init`. +- Make outputs with `lc materialize`, each committed with a manifest of how it + was made, and read their state with `lc status`. +- Check a result against a paper, with the quote verified against the PDF. +- Add a decision, and compare the universes it creates. +- Browse the project in Lightcone Lab and publish it. + +## Before you start + +- Finish the [install](../reference/installation.md): `lc`, `uv`, an agent, and + the `lightcone` plugin. +- We recommend the [quickstart](../get-started/quickstart.md) first. It is + shorter, and this tutorial assumes you have seen `lc` run once. +- No cosmology required. The agent explains what it needs to. + +**Time:** TBD. + +## How to read it + +We recommend that you let your agent do the work. Everything in a `text` block +is a prompt: paste it into the agent, not into your shell. Shell commands +appear only where you are meant to look at something yourself. + +The tutorial is intentionally sparse — we leave your own agent to do some of +the explaining for us. + +## Chapters + +| Chapter | At the end of it, you have | +|---|---| +| [1. The data](1-data.md) | A working directory, the Union2.1 compilation in `data/`, and an agent that has read it. | +| [2. Scope the analysis](2-scope.md) | An `astra.yaml` declaring the data, two outputs, and the recipe that makes each. | +| [3. Make it reproducible](3-reproduce.md) | A Lightcone project, a first Ω_Λ and a Hubble diagram, each committed with the code that made it. | +| [4. Check it against the paper](4-evidence.md) | The paper's own Ω_Λ recorded as a prior insight, its quote verified against the PDF. | +| [5. Add a decision](5-decision.md) | Two universes, statistical and statistical + systematic, and the reason only one of them compares with the paper. | +| [6. Inspect and publish](6-publish.md) | The project browsed in Lightcone Lab, a MyST report, and an RO-Crate for anyone who wants to check your work. | + +## Companion repository + +!!! note "Planned" + A companion example repository, with a git tag per chapter, is planned: start + from any chapter, or diff your run against ours. It does not exist yet. diff --git a/docs/user/index.md b/docs/user/index.md deleted file mode 100644 index c2dc24b9..00000000 --- a/docs/user/index.md +++ /dev/null @@ -1,73 +0,0 @@ -# Welcome to the user guide - -`lightcone-cli` is a small toolchain that turns a research question into -a reproducible analysis. You describe what you're trying to learn as a -precise specification — an `astra.yaml` file following the -[**ASTRA**][astra] schema — and the `lc` command line keeps the -resulting code, environments, decisions, and outputs in sync. - -ASTRA specs are plain YAML, designed to be easy for both humans and AI -assistants to write. However the spec gets written, **you stay in charge -of the scientific choices** — every methodological decision is declared -in the open, and `lc` records exactly what produced every result: the -recipe, the decisions, the input data, the environment, and the commit. - -## What this guide covers - -- [Install](install.md) — get the `lc` command line running on your - machine or on a cluster. -- [Getting Started](getting-started.md) — create your first project, - build it end-to-end, and understand what each piece does. -- [Core Concepts](concepts.md) — the model behind the tool: what the - states mean, why everything is committed, and how the two execution - modes differ. -- [Running on a Cluster](cluster.md) — taking your analysis to a SLURM - HPC system. -- [Troubleshooting](troubleshooting.md) — common issues and how to - unstick them. -- [Glossary](glossary.md) — the terms that show up everywhere - (universe, decision, manifest, …) explained in plain language. - -## What you'll do, in a handful of lines - -!!! tip "Quick start" - - === "uv" - ```bash - uv tool install lightcone-cli - lc init my-analysis && cd my-analysis - # describe your analysis in astra.yaml, write your scripts, - # declare what they import (uv add numpy ...), then: - git add -A && git commit -m "First analysis" - lc materialize - ``` - - === "pip" - ```bash - pip install lightcone-cli - lc init my-analysis && cd my-analysis - # describe your analysis in astra.yaml, write your scripts, - # declare what they import (uv add numpy ...), then: - git add -A && git commit -m "First analysis" - lc materialize - ``` - -That's the shortest possible path. The rest of the guide is the -unhurried version — and the commit is not ceremony: every output is -committed together with the code that produced it, which is why a build -starts from a clean tree. - -## What lightcone-cli is *not* - -- **A statistics package.** It runs your code; it doesn't compute - things itself. -- **A workflow language.** Recipes in `astra.yaml` are short shell - commands, not a DSL. There's no learning curve beyond what's in - [Getting Started](getting-started.md). -- **An IDE.** `lc` is a command-line tool; write `astra.yaml` and your - analysis code with whatever editor or tooling you prefer. - -If you'd rather skim the design and architecture, the -[maintainer docs](../maintainer.md) are the other half of this site. - -[astra]: https://astra-spec.org/latest/ diff --git a/docs/user/install.md b/docs/user/install.md deleted file mode 100644 index 48f13ed0..00000000 --- a/docs/user/install.md +++ /dev/null @@ -1,124 +0,0 @@ -# Install - -To work on a lightcone project you need two things on your machine: -[uv](https://docs.astral.sh/uv/) and git. Everything else — Python -itself included — is installed by uv or ships with `lc`. - -!!! note "Supported platforms" - Linux (glibc 2.34+, x86_64 or aarch64) and macOS (14+ on Apple - silicon, 15+ on Intel). On Windows, use WSL. - -## 1. uv and git - -`lc` uses uv as its only environment substrate — projects are -`pyproject.toml` + `uv.lock`, and uv manages the Python interpreters -too, so there is no separate Python install step. - -=== "macOS / Linux" - ```bash - curl -LsSf https://astral.sh/uv/install.sh | sh - ``` - - git is preinstalled on macOS; on Linux use your package manager - (`apt install git`, `dnf install git`, …). - -=== "NERSC Perlmutter" - NERSC doesn't ship `uv`, but it installs into your home directory - with a single curl: - - ```bash - curl -LsSf https://astral.sh/uv/install.sh | sh - ``` - - `uv` lands under `~/.local/bin` — make sure it's on your `PATH`. - git is already on the system. - -## 2. lightcone-cli - -The published name on PyPI is `lightcone-cli`; the command it provides -is `lc`. - -=== "uv" - ```bash - uv tool install lightcone-cli - ``` - -=== "pip" - ```bash - python -m pip install lightcone-cli - ``` - -Get a confirmation of the proper installation by running - - lc --version # → lc, version ... - -> **Note** Some people may have already set a personal shell alias -> `lc='ls --color'`. If that's you, installing lightcone-cli will shadow -> the alias — make sure to rebind it (e.g. `alias l='ls --color'`). - -## 3. Tell git who you are - -Every output `lc` makes is committed, so git needs an identity before -the first build — `lc materialize` checks up front rather than failing -after your recipes have run: - -```bash -git config --global user.name "Ada Lovelace" -git config --global user.email "ada@example.org" -``` - -If you already commit from this machine, you're done. - -## 4. (Optional) Podman or Docker - -Only *containerized* projects need a container runtime — a project opts -in by declaring `[tool.lightcone.image]` in its `pyproject.toml`, and -until it does, recipes run directly on your machine in the project's -own locked environment. - -- Local machine: install [Podman](https://podman.io/) (rootless, no - daemon) or [Docker](https://docs.docker.com/get-docker/). -- HPC login node: see [Running on a Cluster](cluster.md). - -There is nothing to configure: `lc` detects whichever runtime is -available (`podman-hpc`, then `podman`, then `docker` — skipping docker -if its daemon isn't running). - -## Sanity check - - lc --help - lc init --help - -Both should print help text. If `lc` is shadowed by an `ls` alias, -unset it (`unalias lc`) or use the full path (`$(which lc) --version`). - -## Updating - -=== "uv tool" - ```bash - uv tool upgrade lightcone-cli - ``` - -=== "pip" - ```bash - pip install -U lightcone-cli - ``` - -An upgrade never invalidates your results: the engine's version is -recorded in every output's manifest, but it is not part of any output's -identity, so nothing gets rebuilt just because `lc` moved. - -## Uninstalling - -=== "uv tool" - ```bash - uv tool uninstall lightcone-cli - ``` - -=== "pip" - ```bash - pip uninstall lightcone-cli - ``` - -Your projects are untouched — everything `lc` knows about an analysis -lives in the project's own repository, not in any global state. diff --git a/zensical.toml b/zensical.toml index 6850e3c5..65758e3e 100644 --- a/zensical.toml +++ b/zensical.toml @@ -1,6 +1,6 @@ [project] -site_name = "lightcone-cli" -site_description = "Execution layer for ASTRA research pipelines" +site_name = "Lightcone" +site_description = "Reproducible scientific analysis, with your agent" site_author = "Lightcone Research Team" repo_url = "https://github.com/LightconeResearch/lightcone-cli" repo_name = "LightconeResearch/lightcone-cli" @@ -8,49 +8,80 @@ copyright = "© 2026 Lightcone Research" docs_dir = "docs" extra_css = ["stylesheets/extra.css"] +# Six tabs, in the order a newcomer needs them: see what it is and do it +# once (Home), learn it properly (Tutorial), do a specific thing (Guides), +# understand it (Concepts), look it up (Reference), build on it +# (Developers). ASTRA is met as the astra.yaml file the agent writes; +# the standard itself is linked from Concepts and Developers only. nav = [ - {"Home" = "index.md"}, - {"User Guide" = [ - {"Welcome" = "user/index.md"}, - {"Install" = "user/install.md"}, - {"Getting Started" = "user/getting-started.md"}, - {"Core Concepts" = "user/concepts.md"}, - {"Running on a Cluster" = "user/cluster.md"}, - {"Troubleshooting" = "user/troubleshooting.md"}, - {"Glossary" = "user/glossary.md"}, + {"Home" = [ + {"Overview" = "index.md"}, + {"Quickstart" = "get-started/quickstart.md"}, + {"How Lightcone works" = "get-started/how-it-works.md"}, ]}, - {"Developer Corner" = [ - {"Welcome" = "maintainer.md"}, - {"Architecture" = "architecture.md"}, - {"CLI Reference" = [ - {"Overview" = "cli/index.md"}, - {"lc init" = "cli/init.md"}, - {"lc materialize" = "cli/materialize.md"}, - {"lc status" = "cli/status.md"}, - {"lc run" = "cli/run.md"}, - {"lc build" = "cli/build.md"}, + {"Tutorial" = [ + {"Overview" = "tutorial/index.md"}, + {"1. The data" = "tutorial/1-data.md"}, + {"2. Scope the analysis" = "tutorial/2-scope.md"}, + {"3. Make it reproducible" = "tutorial/3-reproduce.md"}, + {"4. Check it against the paper" = "tutorial/4-evidence.md"}, + {"5. Add a decision" = "tutorial/5-decision.md"}, + {"6. Inspect and publish" = "tutorial/6-publish.md"}, + ]}, + {"Guides" = [ + {"Overview" = "guides/index.md"}, + {"Scope an analysis with your agent" = "guides/scope.md"}, + {"Add a decision and compare universes" = "guides/decisions.md"}, + {"Cite papers and verify evidence" = "guides/evidence.md"}, + {"Run on a cluster" = "guides/cluster.md"}, + {"Browse a project in Lightcone Lab" = "guides/lab.md"}, + {"Publish a report" = "guides/publish.md"}, + {"Use lc without an agent" = "guides/without-agent.md"}, + ]}, + {"Concepts" = [ + {"Your analysis file" = "concepts/analysis-file.md"}, + {"Outputs and provenance" = "concepts/provenance.md"}, + {"Decisions and universes" = "concepts/universes.md"}, + {"Evidence" = "concepts/evidence.md"}, + ]}, + {"Reference" = [ + {"Installation" = "reference/installation.md"}, + {"lc CLI" = [ + {"Overview" = "reference/cli/index.md"}, + {"lc init" = "reference/cli/init.md"}, + {"lc materialize" = "reference/cli/materialize.md"}, + {"lc status" = "reference/cli/status.md"}, + {"lc run" = "reference/cli/run.md"}, + {"lc build" = "reference/cli/build.md"}, ]}, - {"Engine Internals" = [ - {"Overview" = "api/index.md"}, - {"project" = "api/project.md"}, - {"dataset" = "api/dataset.md"}, - {"identity" = "api/identity.md"}, - {"plan" = "api/plan.md"}, - {"assets" = "api/assets.md"}, - {"worker" = "api/worker.md"}, - {"materialize" = "api/materialize.md"}, - {"venue" = "api/venue.md"}, - {"sandbox" = "api/sandbox.md"}, - {"image & container" = "api/container.md"}, - {"crate" = "api/crate.md"}, + {"Agent plugin" = "reference/plugin.md"}, + {"Glossary" = "reference/glossary.md"}, + {"Troubleshooting" = "reference/troubleshooting.md"}, + ]}, + {"Developers" = [ + {"Welcome" = "developers/index.md"}, + {"Architecture" = "developers/architecture.md"}, + {"Engine internals" = [ + {"Overview" = "developers/internals/index.md"}, + {"project" = "developers/internals/project.md"}, + {"dataset" = "developers/internals/dataset.md"}, + {"identity" = "developers/internals/identity.md"}, + {"plan" = "developers/internals/plan.md"}, + {"assets" = "developers/internals/assets.md"}, + {"worker" = "developers/internals/worker.md"}, + {"materialize" = "developers/internals/materialize.md"}, + {"venue" = "developers/internals/venue.md"}, + {"sandbox" = "developers/internals/sandbox.md"}, + {"image & container" = "developers/internals/container.md"}, + {"crate" = "developers/internals/crate.md"}, ]}, {"Contributing" = [ - {"Development Setup" = "contributing/setup.md"}, - {"Testing" = "contributing/testing.md"}, - {"Extending" = "contributing/extending.md"}, + {"Development setup" = "developers/contributing/setup.md"}, + {"Testing" = "developers/contributing/testing.md"}, + {"Extending" = "developers/contributing/extending.md"}, ]}, + {"Built on ASTRA" = "developers/astra.md"}, ]}, - {"ASTRA docs" = "https://astra-spec.org/latest/"}, ] # Versioning is handled by mike (squidfunk's fork; see the docs @@ -68,8 +99,10 @@ features = [ "navigation.tabs", "navigation.sections", "navigation.top", + "navigation.footer", "search.highlight", "content.code.copy", + "content.tabs.link", ] [[project.theme.palette]] From d042c0b1bdf2109e1d5c8dade2921926955ed64f Mon Sep 17 00:00:00 2001 From: lhparker1 Date: Thu, 1 Oct 2026 09:10:43 -0700 Subject: [PATCH 2/2] Follow the new docs layout and explicit compute - Quickstart: run analyses on an explicit cluster (CLUSTER=$(lc compute launch --wait), then lc materialize "$CLUSTER"). - README, CLAUDE.md and the check-docs review prompt point at the new docs paths (reference/cli, developers/internals, guides, ...). Co-Authored-By: Claude Opus 5.5 --- .github/workflows/check-docs.yml | 18 ++++++++++-------- CLAUDE.md | 11 ++++++----- README.md | 2 +- docs/get-started/quickstart.md | 10 ++++++---- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml index fe9d23eb..fd64f18f 100644 --- a/.github/workflows/check-docs.yml +++ b/.github/workflows/check-docs.yml @@ -35,16 +35,18 @@ jobs: and complete given the code changes introduced by this PR. The documentation is structured, and each kind of change has a home: - - A verb's flags, output, JSON shape, or exit codes → its page in docs/cli/ - (one page per verb, plus the overview's exit-code contract). + - A verb's flags, output, JSON shape, or exit codes → its page in + docs/reference/cli/ (one page per verb, plus the overview's exit-code + contract). - An engine module's responsibility, key symbols, or invariants → its page - in docs/api/ (hand-written module tours) and, for cross-cutting shifts, - docs/architecture.md. + in docs/developers/internals/ (hand-written module tours) and, for + cross-cutting shifts, docs/developers/architecture.md. - User-visible behavior (scaffold contents, states, refusal messages, - environment model, SLURM, publication) → docs/user/ (getting-started - quotes real console output; troubleshooting quotes real refusals) and - README.md's quick start. - - Test structure, dev workflow, or conventions → docs/contributing/. + environment model, SLURM, publication) → docs/get-started/ (the + Quickstart), docs/guides/ (guides/without-agent.md quotes real console + output), docs/concepts/, docs/reference/ (troubleshooting quotes real + refusals; glossary; installation) and README.md's quick start. + - Test structure, dev workflow, or conventions → docs/developers/contributing/. Steps to follow: 1. Run: git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} diff --git a/CLAUDE.md b/CLAUDE.md index cf7933d9..eda23c96 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -107,11 +107,12 @@ Each of these has been asked for in review at least once; none is optional. - **No dead code.** If nothing in the current layer calls it, it doesn't land yet. `lc --help` advertises only verbs that work. - **`docs/` is live again** (rewritten 2026-08, PRs #185–#188; the - freeze is over). The site is two tracks — user guide + developer - corner — and a change now lands with its docs: a new or changed verb - updates its `docs/cli/` page, an engine change updates its - `docs/api/` module page, and user-visible behavior updates the user - guide. The docs' own rules match this file's: document only what + freeze is over). The site's sections are Home, Tutorial, Guides, + Concepts, Reference and Developers (the nav is `zensical.toml`), and + a change now lands with its docs: a new or changed verb updates its + `docs/reference/cli/` page, an engine change updates its + `docs/developers/internals/` module page, and user-visible behavior + updates the Quickstart, guide or concept page it touches. The docs' own rules match this file's: document only what exists, quote refusals from real runs, and verify every command block by executing it. `check-docs.yml` reviews each merged PR for drift. diff --git a/README.md b/README.md index 04bccffc..05394a6b 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ lc compute down "$CLUSTER" ASTRA specs are plain, structured YAML — they work well hand-written or drafted with any AI coding assistant. -→ [Full getting-started guide](https://docs.lightconeresearch.org/user/getting-started/) +→ [Full walkthrough](https://docs.lightconeresearch.org/guides/without-agent/) ## Capabilities diff --git a/docs/get-started/quickstart.md b/docs/get-started/quickstart.md index 6d579735..c73e63a3 100644 --- a/docs/get-started/quickstart.md +++ b/docs/get-started/quickstart.md @@ -98,14 +98,16 @@ project's directory, it manages everything through Lightcone: decisions go into the analysis file, results are made with `lc`, and it keeps track of what's out of date. -## 6. Two commands to know +## 6. Commands to know ```bash -lc materialize # make the results, each recorded with what made it -lc status # see which results are out of date, and why +CLUSTER=$(lc compute launch --wait) # start compute on this machine, keep its name +lc materialize "$CLUSTER" # make the results, each recorded with what made it +lc status # see which results are out of date, and why ``` -Run them yourself, or ask your agent to. The +The local cluster stops on its own after 30 minutes without work. Run +these yourself, or ask your agent to. The [`lc` reference](../reference/cli/index.md) covers every command. ## Next steps

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