BenchmarkLedger

marola.bench.BenchmarkLedger

MIP-0010 §5, task 4: what an OceanBenchmark.Report looks like as a ledger run — experiment /benchmark, params (which model, embedder, threshold, corpus and commit produced it), one metric per ArmSummary column, the Markdown report as the artifact.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

final case class Context(model: String, embedModel: String, minScore: Double, corpusSha: String, gitSha: String)

The run's provenance, everything the report itself does not carry.

The run's provenance, everything the report itself does not carry.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Value members

Concrete methods

def corpusSha(dir: Path): String

First 12 hex chars of SHA-256 over every corpus file marola.knowledge.Corpus.listFiles sees (every top-level .md file plus every .md file directly under safety/, MIP-0022), sorted, name and content both hashed — so a renamed or edited document changes it and anything else in the directory (README.txt, an editor's swap file) does not.

First 12 hex chars of SHA-256 over every corpus file marola.knowledge.Corpus.listFiles sees (every top-level .md file plus every .md file directly under safety/, MIP-0022), sorted, name and content both hashed — so a renamed or edited document changes it and anything else in the directory (README.txt, an editor's swap file) does not.

Attributes

def gitSha(dir: Path = ...): String

git rev-parse --short HEAD in dir, "unknown" when git or the repo is not there (the Docker image, for one).

git rev-parse --short HEAD in dir, "unknown" when git or the repo is not there (the Docker image, for one).

Attributes

def log(ledger: RunLedger, experimentPrefix: String, report: Report, context: Context, reportPath: Path): Option[RunHandle] < Sync

One run, in order: start → metrics → artifact → end(ok = true).

One run, in order: start → metrics → artifact → end(ok = true).

Attributes

def metrics(report: Report): Map[String, Double]

. for every ArmSummary column — the same numbers as the report's first table.

. for every ArmSummary column — the same numbers as the report's first table.

Attributes

def params(report: Report, context: Context): Map[String, String]
def runName(reportPath: Path): String

data/benchmark-20260905-1550.md → benchmark-20260905-1550, the run's display name.

data/benchmark-20260905-1550.md → benchmark-20260905-1550, the run's display name.

Attributes