Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,13 @@ Do not create a second event log, model registry, or capability inventory.
elsewhere.** The three checks and the `verify.py` summary now say so themselves, from
`capability_activation_audit.entrypoint_presence` / `absent_entrypoint_note`, which name the
sibling checkout the code was found in — but read the message rather than the missing-parts list.
**And FETCH BEFORE you conclude the code is nowhere.** An empty
`git log --all --oneline -- <file>` proves nothing until the refs exist locally: `--all` searches
the refs this checkout HAS, so an unfetched sibling branch reads as "no such file was ever
committed anywhere". That false negative is what produced the wrong verdict on 2026-08-22 and cost
a full session. `git fetch origin` first, then search. The honest verdict on a branch carrying
someone else's ledger row comes from a fresh-state run with BOTH `ORCH_STATE_DIR` and
`ORCH_LOCAL_RUNTIME` pointed at empty directories, which is what CI does.
- **The split is TOOL vs EVIDENCE.** Generic capabilities, gates and tests are committed. This
instance's evidence is not: `CAPABILITY_USEFULNESS.md`, `LOCAL_POLICY.md`, `*.local.md`,
`experiments/`, `ux_reviews/`, `data/`, `Audits/` — gitignored in the tree — plus the ledger, the
Expand Down
13 changes: 12 additions & 1 deletion exploration_backfill.py
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,14 @@ def _selftest() -> None:
assert plan["planned_jobs"] and plan["planned_jobs"][0]["target"] == "o/r#1", plan[
"planned_jobs"
]
assert {"cursor", "vibe"} <= set(plan["planned_jobs"][0]["agents"]), plan["planned_jobs"][0]
planned_job = plan["planned_jobs"][0]
assert {"cursor", "vibe"} <= set(planned_job["agents"]), planned_job
# The exp_id TEMPLATE is a derived contract, not a passthrough: `o/r#1` must become
# `backfill-o-r-1`, because `schedule_backfill` builds the real exp_id by appending a
# timestamp to it (`f"{job.get('exp_id_template')}-{int(time.time())}"`). Nothing asserted
# the derivation, so a change to the slugging would rename every backfill experiment
# silently and only surface as unjoinable experiment artifacts much later.
assert planned_job["exp_id_template"] == "backfill-o-r-1", planned_job
assert "ORCH_EXPLORATION_BACKFILL=1" in format_human(plan), format_human(plan)

calls: list[dict] = []
Expand Down Expand Up @@ -783,6 +790,10 @@ def fake_prepare(
exploration_evidence_plan._backlog_items = original_backlog_items # type: ignore
assert launched["active"] is True and calls, launched
assert calls[0]["task_type"] == "implement", calls
# ...and the DISPATCHED exp_id must actually derive from that template. Asserting the
# template alone would leave the two halves free to drift apart, which is the same shape
# as a gate whose measuring window differs from its draining window.
assert calls[0]["exp_id"].startswith(f"{planned_job['exp_id_template']}-"), calls
assert claims.holder("o/r#1")["agent"] == BACKFILL_CLAIM_AGENT, claims.holder("o/r#1")

no_progress_db = Path(tmp) / "no-progress.db"
Expand Down
Loading