<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ExpLedger</title><link>https://marcfranquesa.github.io/expledger/</link><description>Recent content on ExpLedger</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://marcfranquesa.github.io/expledger/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting started</title><link>https://marcfranquesa.github.io/expledger/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/getting-started/</guid><description>&lt;h1 id="getting-started"&gt;Getting started&lt;a class="anchor" href="#getting-started"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;ExpLedger keeps coding experiments as folders in your project. Each folder has&#10;structured metadata, independent notes, and a script you can run in place.&#10;There is no database or automatic Git provenance. ExpLedger is in active&#10;development; expect breaking changes.&lt;/p&gt;&#10;&lt;h2 id="install"&gt;Install&lt;a class="anchor" href="#install"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Follow the &lt;a href="https://marcfranquesa.github.io/expledger/docs/install/"&gt;installation guide&lt;/a&gt; to install the CLI and add it to your&#10;&lt;code&gt;PATH&lt;/code&gt;. The installed CLI has no Git dependency. Running experiment scripts&#10;requires macOS or Linux.&lt;/p&gt;</description></item><item><title>Installation</title><link>https://marcfranquesa.github.io/expledger/docs/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/install/</guid><description>&lt;h1 id="installation"&gt;Installation&lt;a class="anchor" href="#installation"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The planned first release is &lt;strong&gt;v0.1.0&lt;/strong&gt;. It has not been published yet; the&#10;release installation examples below become available when it is published.&lt;/p&gt;&#10;&lt;h2 id="release-archives"&gt;Release archives&lt;a class="anchor" href="#release-archives"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Download the archive for your machine and &lt;code&gt;checksums.txt&lt;/code&gt; from the same&#10;&lt;a href="https://github.com/marcfranquesa/expledger/releases"&gt;GitHub Release&lt;/a&gt;.&#10;Archives support macOS (&lt;code&gt;darwin&lt;/code&gt;) and Linux (&lt;code&gt;linux&lt;/code&gt;), each on &lt;code&gt;arm64&lt;/code&gt; and&#10;&lt;code&gt;amd64&lt;/code&gt;. Apple Silicon uses &lt;code&gt;darwin_arm64&lt;/code&gt;; Intel Macs use &lt;code&gt;darwin_amd64&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;For example, on Apple Silicon, after downloading both files:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;shasum -a &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; --ignore-missing -c checksums.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -xzf expledger_0.1.0_darwin_arm64.tar.gz&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$HOME&lt;span style="color:#e6db74"&gt;/.local/bin&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;install -m &lt;span style="color:#ae81ff"&gt;755&lt;/span&gt; expledger &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$HOME&lt;span style="color:#e6db74"&gt;/.local/bin/expledger&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Confirm the downloaded archive is reported &lt;code&gt;OK&lt;/code&gt; before extracting it. Each&#10;archive contains &lt;code&gt;expledger&lt;/code&gt; and the MIT &lt;code&gt;LICENSE&lt;/code&gt;. Add &lt;code&gt;$HOME/.local/bin&lt;/code&gt; to&#10;your &lt;code&gt;PATH&lt;/code&gt; if needed. Archives are not Apple-notarized.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://marcfranquesa.github.io/expledger/docs/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/configuration/</guid><description>&lt;h1 id="configuration"&gt;Configuration&lt;a class="anchor" href="#configuration"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The initialized project root contains &lt;code&gt;expledger.yaml&lt;/code&gt;, exactly one YAML mapping&#10;with optional settings:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;experiments_dir&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;experiments&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;experiment_format&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;{date:20060102}-{slug}&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;remote_url&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;https://github.com/owner/repo/tree/main/experiments&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;sources&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;../experiment-worktree&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;/Users/me/projects/another-worktree&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Set &lt;code&gt;remote_url&lt;/code&gt; when initializing a project; edit the config for other settings:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;expledger init --remote-url https://github.com/owner/repo/tree/main/experiments&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For an existing project, edit &lt;code&gt;remote_url&lt;/code&gt; in its root &lt;code&gt;expledger.yaml&lt;/code&gt; explicitly.&#10;&lt;code&gt;build&lt;/code&gt; and &lt;code&gt;serve&lt;/code&gt; use it for each experiment's View remote link. It must point to&#10;the published &lt;strong&gt;experiments directory&lt;/strong&gt;, not the repository home page.&lt;/p&gt;</description></item><item><title>Running experiments</title><link>https://marcfranquesa.github.io/expledger/docs/running/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/running/</guid><description>&lt;h1 id="running-experiments"&gt;Running experiments&lt;a class="anchor" href="#running-experiments"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;code&gt;expledger new&lt;/code&gt; creates an executable &lt;code&gt;&amp;lt;experiments_dir&amp;gt;/&amp;lt;id&amp;gt;/run.sh&lt;/code&gt; stub that exits&#10;with configuration guidance. Replace it with the experiment's commands, using a&#10;shebang and fixed parameters. For example, with &lt;code&gt;experiment.py&lt;/code&gt; beside it:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exec uv run --locked python experiment.py --seed &lt;span style="color:#ae81ff"&gt;42&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Follow &lt;a href="https://marcfranquesa.github.io/expledger/docs/getting-started/"&gt;Getting started&lt;/a&gt; to initialize a project and create a&#10;record, then prepare the code and dependencies you want. Git is not required. Run:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;expledger run &amp;lt;id&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ExpLedger executes &lt;code&gt;./run.sh&lt;/code&gt; directly from the existing experiment directory.&#10;Use the full ID relative to the configured experiments folder, including any&#10;grouping path such as &lt;code&gt;2026-10-06/baseline&lt;/code&gt;.&#10;The script inherits your environment and writes results wherever it chooses.&#10;Keep parameters in the script or nearby configuration; additional arguments and&#10;revision-selection options are rejected. Both &lt;code&gt;run.sh&lt;/code&gt; and &lt;code&gt;experiment.yaml&lt;/code&gt; must&#10;be regular files, and &lt;code&gt;run.sh&lt;/code&gt; must be executable. Supporting files are left to&#10;the script.&lt;/p&gt;</description></item><item><title>Experiment format</title><link>https://marcfranquesa.github.io/expledger/docs/format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/format/</guid><description>&lt;h1 id="experiment-format"&gt;Experiment format&lt;a class="anchor" href="#experiment-format"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Each experiment has &lt;code&gt;&amp;lt;experiments_dir&amp;gt;/&amp;lt;id&amp;gt;/experiment.yaml&lt;/code&gt; under the initialized&#10;project root. The directory defaults to &lt;code&gt;experiments&lt;/code&gt;; see&#10;&lt;a href="https://marcfranquesa.github.io/expledger/docs/configuration/#experiment-folders-and-names"&gt;Configuration&lt;/a&gt; to customize it&#10;and the creation format. This file is the sole source of&#10;ExpLedger metadata. &lt;code&gt;README.md&lt;/code&gt; holds independent notes; other files can hold&#10;scripts, artifacts, or another tool's&#10;metadata. &lt;code&gt;new&lt;/code&gt; creates a README and an executable &lt;code&gt;run.sh&lt;/code&gt; stub; neither file is&#10;required for catalog reads. An optional &lt;code&gt;report.yaml&lt;/code&gt; declares a browser report&#10;using Markdown and CSV results; see &lt;a href="https://marcfranquesa.github.io/expledger/docs/reports/"&gt;Experiment reports&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Experiment reports</title><link>https://marcfranquesa.github.io/expledger/docs/reports/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reports/</guid><description>&lt;h1 id="experiment-reports"&gt;Experiment reports&lt;a class="anchor" href="#experiment-reports"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Add an optional &lt;code&gt;report.yaml&lt;/code&gt; beside an experiment's &lt;code&gt;experiment.yaml&lt;/code&gt; to compose&#10;a report from Markdown and CSV results. &lt;code&gt;build&lt;/code&gt; bundles each report into its&#10;self-contained HTML snapshot; &lt;code&gt;serve&lt;/code&gt; refreshes reports as their files change.&#10;Experiments without &lt;code&gt;report.yaml&lt;/code&gt; remain ordinary catalog entries.&lt;/p&gt;&#10;&lt;p&gt;Reports follow the project's configured &lt;code&gt;experiments_dir&lt;/code&gt; and experiment ID,&#10;including IDs with nested grouping folders. For example, an experiment with ID&#10;&lt;code&gt;2026-10-06/baseline&lt;/code&gt; under &lt;code&gt;experiments_dir: trials&lt;/code&gt; keeps its report at&#10;&lt;code&gt;trials/2026-10-06/baseline/report.yaml&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Versions and releases</title><link>https://marcfranquesa.github.io/expledger/docs/releases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/releases/</guid><description>&lt;h1 id="versions-and-releases"&gt;Versions and releases&lt;a class="anchor" href="#versions-and-releases"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;strong&gt;v0.1.0 is the planned first release, not an existing published release.&lt;/strong&gt;&#10;Maintainers choose versions manually. There is no release per PR and no version&#10;inference from commit messages.&lt;/p&gt;&#10;&lt;h2 id="compatibility-policy"&gt;Compatibility policy&lt;a class="anchor" href="#compatibility-policy"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;ExpLedger follows &lt;a href="https://semver.org/"&gt;Semantic Versioning&lt;/a&gt;. Within SemVer's&#10;initial development phase, this project uses these conventions:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;During &lt;code&gt;0.x&lt;/code&gt;, compatible fixes and small internal improvements increment the&#10;patch version (for example, &lt;code&gt;0.1.0&lt;/code&gt; to &lt;code&gt;0.1.1&lt;/code&gt;).&lt;/li&gt;&#10;&lt;li&gt;New functionality or breaking changes increment the minor version (for&#10;example, &lt;code&gt;0.1.1&lt;/code&gt; to &lt;code&gt;0.2.0&lt;/code&gt;). Breaking changes require clear migration notes.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;1.0.0&lt;/code&gt; marks a stable public interface. After that, incompatible public&#10;changes increment major, compatible features minor, and compatible fixes patch.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The public interface includes commands, flags, configuration, experiment&#10;records, and documented execution behavior. Internal Go packages are not part&#10;of that interface.&lt;/p&gt;</description></item><item><title>expledger</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger/</guid><description>&lt;h2 id="expledger"&gt;expledger&lt;a class="anchor" href="#expledger"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Manage experiment records in an initialized project&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Manage experiment records and run scripts in an initialized project.&#10;Run init once in the project directory. Other commands find the nearest&#10;expledger.yaml in the current directory or its parents. Help needs no project.&#10;See &lt;a href="https://marcfranquesa.github.io/expledger/"&gt;https://marcfranquesa.github.io/expledger/&lt;/a&gt; for guides and configuration.&lt;/p&gt;&#10;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; expledger init&#10; expledger new baseline&#10; expledger list&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for expledger&#10; -v, --version version for expledger&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_build/"&gt;expledger build&lt;/a&gt;&#9; - Build a static experiment web page&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_init/"&gt;expledger init&lt;/a&gt;&#9; - Initialize an ExpLedger project in the current directory&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_list/"&gt;expledger list&lt;/a&gt;&#9; - List experiment IDs and titles&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_new/"&gt;expledger new&lt;/a&gt;&#9; - Create an experiment folder, metadata, README, and run.sh&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_run/"&gt;expledger run&lt;/a&gt;&#9; - Run an experiment's run.sh in its existing folder&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_serve/"&gt;expledger serve&lt;/a&gt;&#9; - Browse experiments in a local web page&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger_validate/"&gt;expledger validate&lt;/a&gt;&#9; - Validate experiment metadata&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>expledger build</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_build/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_build/</guid><description>&lt;h2 id="expledger-build"&gt;expledger build&lt;a class="anchor" href="#expledger-build"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Build a static experiment web page&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Write a self-contained index.html snapshot, newest experiments first.&#10;Include optional report.yaml blocks and their Markdown and CSV sources.&#10;Create the output directory if needed and replace its index.html on each build.&#10;Other files in the directory are left unchanged. The root expledger.yaml's optional&#10;remote_url supplies the full browser URL of the remote experiments directory.&#10;Each ID path segment is escaped and appended; omit remote_url for a local-only catalog.&#10;Only the current project is included; sources applies only to serve.&#10;The generated page needs no running ExpLedger server and does not poll.&lt;/p&gt;</description></item><item><title>expledger init</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_init/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_init/</guid><description>&lt;h2 id="expledger-init"&gt;expledger init&lt;a class="anchor" href="#expledger-init"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Initialize an ExpLedger project in the current directory&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Create expledger.yaml in the current directory. Existing valid config is left unchanged.&#10;Use --remote-url for the full browser URL of the remote experiments directory.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;expledger init [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; expledger init&#10; expledger init --remote-url https://github.com/owner/repo/tree/main/experiments&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for init&#10; --remote-url URL Full browser URL of the remote experiments directory&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger/"&gt;expledger&lt;/a&gt;&#9; - Manage experiment records in an initialized project&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>expledger list</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_list/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_list/</guid><description>&lt;h2 id="expledger-list"&gt;expledger list&lt;a class="anchor" href="#expledger-list"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;List experiment IDs and titles&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Read experiment.yaml files recursively under the configured experiments_dir.&#10;The project expledger.yaml defaults experiments_dir to experiments.&#10;Display IDs and titles by created_at, newest first.&#10;Each YAML id must exactly match its path relative to experiments_dir.&#10;IDs containing whitespace, quotes, or non-printable characters are double-quoted,&#10;using Go-style escapes such as \t and \n.&#10;Title whitespace is collapsed to spaces; other non-printable characters are escaped.&#10;Explore grouping directories, but do not scan inside experiment folders.&#10;Report invalid metadata with its path.&lt;/p&gt;</description></item><item><title>expledger new</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_new/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_new/</guid><description>&lt;h2 id="expledger-new"&gt;expledger new&lt;a class="anchor" href="#expledger-new"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Create an experiment folder, metadata, README, and run.sh&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Create experiment.yaml, README.md, and executable run.sh in a new experiment folder.&#10;Configure experiments_dir and experiment_format in the project expledger.yaml.&#10;Defaults are experiments/ and {date:20060102}-{slug}, producing experiments/YYYYMMDD-SLUG/.&#10;Use {date}/{slug} for date folders or {date}/{time}-{slug} for timestamps.&#10;{date} inserts the local YYYY-MM-DD date, {time} the local HH-MM-SS time,&#10;and {slug} the positional slug. Customize with native Go time.Time.Format layouts:&#10;2006 for the year, 01 for the month, 02 for the day, 15 for the hour (24-hour clock),&#10;04 for the minute, and 05 for the second. Use {time:15:04} for hours:minutes or&#10;{time:05:04:15} for seconds:minutes:hours. Unrecognized layout text remains literal.&#10;See &lt;a href="https://pkg.go.dev/time#Time.Format"&gt;https://pkg.go.dev/time#Time.Format&lt;/a&gt; for the reference-time layout syntax.&#10;Literal text is unchanged. Placeholders can repeat or be omitted.&#10;Slugs contain lowercase letters, digits, and single hyphens between words.&#10;Existing experiments are never overwritten.&#10;Validate only the direct parents named by --based-on. Each must have a valid&#10;experiment.yaml whose id exactly matches its path relative to experiments_dir.&lt;/p&gt;</description></item><item><title>expledger run</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_run/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_run/</guid><description>&lt;h2 id="expledger-run"&gt;expledger run&lt;a class="anchor" href="#expledger-run"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Run an experiment's run.sh in its existing folder&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Execute ./run.sh from experiments_dir/ID/ with the current checkout and environment.&#10;The project expledger.yaml configures experiments_dir, defaulting to experiments.&#10;Keep workload parameters in run.sh or its input files; extra arguments are rejected.&#10;The script chooses output paths. Metadata is not changed and no provenance is&#10;recorded. Git is not required.&#10;The shebang selects the runtime. Standard streams and exit status are forwarded.&#10;Ctrl+C stops the workload and its ordinary child processes. Requires macOS or&#10;Linux; supports batch workloads, not interactive terminal input or daemons.&lt;/p&gt;</description></item><item><title>expledger serve</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_serve/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_serve/</guid><description>&lt;h2 id="expledger-serve"&gt;expledger serve&lt;a class="anchor" href="#expledger-serve"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Browse experiments in a local web page&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Serve experiments on 127.0.0.1 with live list and lineage views.&#10;Include optional report.yaml blocks with shared chart styling.&#10;Poll configuration, records, and report sources every few seconds without reloading the page.&#10;Use sources in expledger.yaml, or repeat --source to replace that list.&#10;Paths name project roots; relative paths resolve from the current project config&#10;directory. No ~ or environment-variable expansion is performed.&#10;The first source wins each ID, including its relationships and remote links.&#10;Other commands remain scoped to the current project. Failed refreshes keep the&#10;last valid view until recovery. Press Ctrl+C to stop the server.&lt;/p&gt;</description></item><item><title>expledger validate</title><link>https://marcfranquesa.github.io/expledger/docs/reference/expledger_validate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marcfranquesa.github.io/expledger/docs/reference/expledger_validate/</guid><description>&lt;h2 id="expledger-validate"&gt;expledger validate&lt;a class="anchor" href="#expledger-validate"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Validate experiment metadata&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Check experiments_dir/ID/experiment.yaml at the project root.&#10;The project expledger.yaml configures experiments_dir, defaulting to experiments.&#10;Require schema: expledger/v1 and valid id, title, and created_at fields.&#10;The YAML id must match its path relative to experiments_dir. README.md is independent.&#10;Report the first error with its file path; no files are changed.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;expledger validate &amp;lt;id&amp;gt; [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; expledger validate 20260924-my-idea&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for validate&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://marcfranquesa.github.io/expledger/docs/reference/expledger/"&gt;expledger&lt;/a&gt;&#9; - Manage experiment records in an initialized project&lt;/li&gt;&#10;&lt;/ul&gt;</description></item></channel></rss>