Skip to content
cccskills
FreePublished on GitHub

baseline-epoch-partition

Content-addressed baseline-archive epoch partitioning. Partition baseline_archive.jsonl + the self-improving hub's baseline serving by a HASH of the full baseline-production+measurement spec — when the spec (margin_rule, fitness/margin logic version, the 4 roles' model+source, rubric/dim-set, bench, seed-pool identity) changes, the hash changes → a new epoch series (like seed-gen gen-*). Triggered by "baseline epoch", "baseline 아카이빙", "epoch partition", "spec hash", "content-addressed", "margin_rule namespace", "production logic 구분", "baseline 하위 서빙" keywords.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md8.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Baseline Epoch Partition — Content-Addressed Baseline Archiving

Source: operator design 2026-05-30 ([[project_baseline_archive_partition_plan]] · [[project_per_mutator_partition_plan]]). Philosophy: baselines produced under different production logic are not comparable — partition them, never average across the boundary. The boundary is the spec, and the spec is content-addressed so the discriminator can't drift. Historical basis: the v0.99.89 baseline registry, which already recorded margin_rule + role_provenance. Current owners are baseline_epoch.py for spec construction/hashing and ledger.py for _append_baseline_registry_row. Do not recreate the retired implementation path.

When this applies

Every promote appends a kind="baseline" row to the git-tracked evolve/scaffold_search/state/baseline_archive.jsonl. Those rows are partitioned into epochs — like seed-generation's gen-* series — keyed by the production logic, and the self-improving hub serves them under a baseline section, grouped by epoch. This skill specifies how the epoch discriminator is computed and recorded, so a future baseline lands in the right partition automatically and deterministically (no LLM, no manual epoch bump).

Core principle — the epoch IS a hash of the spec

epoch_hash = sha256(canonical_json(baseline_spec))[:12]

baseline_spec is the production + measurement surface that determines comparability. When any field changes, the hash changes → a new epoch begins on its own. Same spec → same hash, always (deterministic, reproducible, cross-machine stable). The discriminator is derived from the spec, so it can never lie about what produced the baseline.

The spec field-set (what is hashed)

The JSON below preserves the original schema-1 design for provenance, not a template for new writes. Current schema 2 also hashes promote_policy; use build_baseline_spec and canonical_spec_json from the current owner above instead of copying a field list or serializer from this document. Never recompute stored historical hashes using the current schema or fitness logic.

Hash a fixed, enumerated field-set — the surface (how a baseline is made), NEVER the instance (the baseline's measured values):

baseline_spec = {
  "spec_schema_version": "1",          // the field-set version itself (see A)
  "margin_rule": "fitness-stderr"|"dim-stderr",
  "margin_logic_version": "<tag>",     // bumped when _should_promote margin math changes
  "fitness_formula_version": "<tag>",  // bumped when compute_fitness semantics change
  "rubric_version": "<PETRI_RUBRIC_VERSION>",
  "dim_set": "<name>",
  "bench": false,
  "roles": {                            // model + source per role (lane is derived, not hashed)
    "auditor": {"model": ..., "source": ...},
    "target":  {"model": ..., "source": ...},
    "judge":   {"model": ..., "source": ...},
    "mutator": {"model": ..., "source": ...}
  },
  "seed_pool_id": "<pool content-hash>" // decision B — the pool IDENTITY, not bodies
}

EXCLUDED (instance, not spec) — never hash these: dim_means, fitness, fitness_stderr, the specific seed bodies, ts_utc, session_id, commit, seed_count. They vary per run; including them would make every run its own epoch and destroy the partition.

Four robustness rules (do not skip)

  1. Spec vs instance. Hash the surface (logic versions + config + role bindings + pool identity), not the results. The registry row still stores the instance fields separately; only the spec sub-object is hashed.
  2. Version-tags, not source-hash, for code. Fitness formula + margin logic are code — hashing their source churns the epoch on a comment edit. Instead carry deliberate constants (FITNESS_FORMULA_VERSION, MARGIN_LOGIC_VERSION) bumped on semantic change, and a guard test that FAILS if the logic changed without a version bump (under-sensitivity defense — pin a golden fitness value per version).
  3. Canonical serialization. json.dumps(spec, sort_keys=True, separators=(",", ":")) → sha256 → first 12 hex. Order/format must not move the hash.
  4. Hash + human label. The raw hash is the SoT discriminator; it is not readable on the hub. Assign a human epoch_label (be-001, be-002, … in hash-first-seen order, persisted in an epoch-label map) for display, like gen-2605-*. Store both on the row.

Resolved sub-decisions

  • (A) Write-time frozen hash + schema version — no retroactive recompute. Each row stores its epoch_hash computed at write time plus the baseline_spec it was computed from plus spec_schema_version. The hash is immutable per row — never recomputed. Adding a field to the spec field-set is a deliberate spec_schema_version bump; because spec_schema_version is itself hashed, old rows (schema 1) and new rows (schema 2) fall into different epochs naturally (correct — the definition of a baseline changed). No migration churns old hashes. Rationale: immutable content-addressing; a stored row is self-verifying (recompute hash from its stored spec → must equal stored epoch_hash).
  • (B) Seed-pool identity is in the spec. Different seeds → different measured dims → non-comparable, so the seed pool is part of the measurement surface. Include seed_pool_id = the pool's content-hash (a stable identity of the survivor set), NOT the raw bodies. A seed-pool change ⇒ new epoch. Ties to the deterministic seed-pool assembly (which emits the pool content-hash).

What each registry row records

_append_baseline_registry_row already writes baseline_spec (the hashed sub-object), spec_schema_version, epoch_hash, and epoch_label. The existing margin_rule + role_provenance are folded INTO baseline_spec (no duplication — keep them top-level too for back-compat readers, but the canonical comparability key is epoch_hash).

Hub serving

Serve baselines under a top-level baseline section, grouped by epoch_hash, each epoch rendered as a sub-series (like a gen-* run): epoch_label as the series name + a one-line spec summary (margin_rule · models · pool) + a dense table of that epoch's baselines (baseline-id · ts · fitness · fitness_stderr · verdict). Mirror scripts/build_self_improving_hub.py:_render_seedgen_index_rows (dense table + sidebar, NO card-grid / accent-bar slop — [[feedback_no_box_ui_no_emoji]]). Never render two epochs in one comparison table (the whole point is they are not comparable).

Determinism + guards

The following are invariant descriptions, not a request to add another test suite. Locate and preserve the existing checks under tests/evolve/scaffold_search/ before adding a missing case.

  • test_epoch_hash_deterministic — same spec dict → same hash across calls.
  • test_epoch_hash_changes_on_each_surface_field — flipping any spec field changes the hash; flipping an instance field (dim_means/fitness) does NOT.
  • test_logic_version_guard — a golden fitness value per FITNESS_FORMULA_VERSION (and margin behavior per MARGIN_LOGIC_VERSION); fails if the code changed without the version bump.
  • test_row_self_verifies — recompute epoch_hash from the row's stored baseline_spec → equals stored epoch_hash.
  • test_canonical_serialization — key order / whitespace does not move the hash.

The general pattern (reuse)

This is content-addressed epoch partitioning: partition a ledger by a hash of the spec that defines comparability, store hash + label, serve grouped by hash. It generalizes to per-mutator partitioning ([[project_per_mutator_partition_plan]]) and mirrors seed-generation's gen-* series. Apply the same four robustness rules whenever a ledger needs logic-keyed partitions.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Audit agent runtimes and their tests for lifecycle inference, capability overload, context pollution, correlated verification, prompt-only control, false success, dead compatibility paths, test-only seams, and complexity without contribution. Use for whole-repository agent audits, slop or dead-code triage, test contribution reviews, large refactors, tool/context simplification, and cleanup requests that need proof before deleting code or tests.

The English summary is being prepared. Showing the original description.

mangowhoiscloud/geode15Updated Oct 16, 2026

Diagnose agent operational failures through default-policy checks, multi-gap analysis, explicit service ownership, request-context lifetime, and degradation-versus-correctness checks.

The English summary is being prepared. Showing the original description.

mangowhoiscloud/geode15Updated Oct 16, 2026

Align, run, audit, and publish GEODE benchmark comparisons against Agent-World arXiv 2604.18292v1 across MCP-Mark, BFCL V4, and tau2-bench. Use for Agent-World or AgentWorld comparison requests, cross-suite agent benchmark design, Tau2 comparator/profile diagnosis, paired thin-runtime-versus-GEODE experiments, mean-accuracy@8 replication, or benchmark comparability and artifact reviews.

The English summary is being prepared. Showing the original description.

mangowhoiscloud/geode15Updated Oct 16, 2026

Verification checklist to prevent fake success. Detects test deletion/disabling, coverage regression, lint bypass, secret exposure. Triggered by "deception", "fake" ("가짜"), "fake success", "verification" ("검증"), "checklist" ("체크리스트"), "deletion detection" ("삭제 탐지"), "regression" keywords.

The English summary is being prepared. Showing the original description.

mangowhoiscloud/geode15Updated Oct 16, 2026

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use when architecting complex backend systems or refactoring existing applications for better maintainability.

The English summary is being prepared. Showing the original description.

mangowhoiscloud/geode15Updated Oct 16, 2026

Auto-search and summarize latest AI/agent papers.

The English summary is being prepared. Showing the original description.

mangowhoiscloud/geode15Updated Oct 16, 2026

See all skills by mangowhoiscloud

Report a problem with this skill