Skip to content

docs(proof): tbench scoring is on, document attach surface - #265

Open
echobt wants to merge 2 commits into
mainfrom
cursor/docs-tbench-scoring-on-dcb2
Open

echobt wants to merge 2 commits into
mainfrom
cursor/docs-tbench-scoring-on-dcb2

Conversation

@echobt

@echobt echobt commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Miner guide for live tbench still said scoring was deferred (defer_scoring=true, 201 queued only, can_score false). Live prod (2026-09-10) scores the topic. Seiran/Max were blocked on that messaging and on a missing attach-surface.

  • Rewrite docs/external-miner/proof-tbench.md Status right now to scoring ON (can_score=true, scorable_topics=[tbench], deferred_topics=[], custom_ready / registered_custom include tbench). Keep a historical note that defer_scoring may return; miners must read ctx proof status.
  • Miner artefact / attach surface (kept with fix(proof): attach miner harbor agent on evaluate #266): uncompressed tar -cf recipe.tar recipe/ + sha256 of that file; unpack to PROOF_ARTIFACT_DIR; pack is PROOF_PACK_DIR (miners do not patch it). Harbor -a is a built-in name or module.path:ClassName, not a filesystem path; adaptor resolves $PROOF_ARTIFACT_DIR/agent then …/recipe/agent; recipe/run.sh alone fails closed (never terminus-2). Off-limits: same_seed, no_tb4_hardcoding, no_eval_short_circuit, no embedded sk-or- keys.
  • BYOK: experiment-VM path has HTTPS egress; sister-with-network-none is the other custom path. tbench uses baseline_runner=rlm_fc_in_guest_harbor.
  • --train-dataset: honest harness id is enough when there is no training; empty manifest → persisted rejected (verdict.failed.evidence_missing.field = contamination_evidence; ctx names it contamination_evidence_missing).
  • Artefacts zip: host collects recipe + report.json + checklist.json + baseline_ref.json + logs/runner.log (redacted stdout/stderr tail). Extra files under PROOF_WORK_DIR / PROOF_OUTPUT_DIR die with the VM and are not in the zip.
  • Standing sealed bar is the stub custom_value=0.5 in baselines.json until a measured n=15 is sealed. No invented digests.
  • Index / troubleshoot / proof.md no longer imply tbench is deferred-only.
  • external-docs-check pins scoring-on + attach-surface strings (scorable_topics contains tbench, PROOF_ARTIFACT_DIR, recipe/agent, rlm_fc_in_guest_harbor).

Rebased onto main after #266. Greptile P1/P2 on the rebase head addressed in 5f27c6c3.

Greptile

Every PR is reviewed by Greptile before merge. Config: .greptile/.

  • Greptile has reviewed this PR; findings are fixed or answered
  • If the bot was silent, I commented @greptileai review

Test plan

  • cargo run -p xtask -- external-docs-check (after rebase and after Greptile fixes)
  • Confirm live GET /challenge/proof/v1/status still matches the status section (can_score, scorable_topics, deferred_topics)
  • Docs-only: xtask pin tests (the_topic_page_keeps_the_topic_gates, gate_passes_on_this_workspace)
  • GitHub CI green on rebase head cb7d9180 (5 checks)
  • GitHub CI green on 5f27c6c3 (fmt · clippy · test · deny · xtask, Analyze, CodeQL, Greptile Review)

Risk

Miner-facing copy only. Does not change scoring, emission, or CVM measurement. If defer_scoring is re-set, miners who skip ctx proof status could still assume scoring is on — the page tells them to read live fields.

Naming

I did not rename BASE_* environment variables, deployed host paths
(/opt/base, /run/base, …), GHCR baseintelligence/base package names, or
base-*-v1 cryptographic domain tags, unless this PR’s purpose is a coordinated
cutover documented in docs/NAMING.md.

Open in Web Open in Cursor 

@cursor

cursor Bot commented Sep 10, 2026

Copy link
Copy Markdown

@greptileai review

@echobt
echobt marked this pull request as ready for review September 10, 2026 10:11
@greptile-apps

greptile-apps Bot commented Sep 10, 2026

Copy link
Copy Markdown

Greptile Summary

The PR updates external-miner documentation for live tbench scoring, BYOK execution, rejection formats, and scored-run archive contents. It also strengthens the documentation check to ensure the active topic remains explicitly represented in scorable_topics guidance.

Confidence Score: 5/5

Safe to merge.

No new issues require action. The previous archive-content finding is fully fixed: the guide now states that logs/runner.log is the returned redacted stdout/stderr tail and that other files under the work and output directories are not archived. The previous rejection-format finding is fully fixed: the guide distinguishes the local ctx label from the persisted verdict.failed structure. The previous scoring-status guard finding is fully fixed: the documentation check requires wording that scorable_topics contains tbench.

Reviews (3): Last reviewed commit: "docs(proof): honest tbench artefacts zip..." | Re-trigger Greptile

Comment thread docs/external-miner/proof-tbench.md Outdated
Comment on lines +311 to +315
honest id is enough when you did not train (a harness name such as
`my-harness-v0` is fine). An **empty** manifest — no
`train_dataset_ids` and no `train_content_hashes` — is not a clean
contamination check: on `tbench` it is a persisted **`rejected`** row with
`contamination_evidence_missing` and **no rent**. `ctx` refuses to build

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Document server rejection format

The guide says an empty contamination manifest produces contamination_evidence_missing, but that is only the local ctx validation label. A direct submission is persisted as a rejected row whose verdict.failed value is {"evidence_missing":{"field":"contamination_evidence"}}; the submit response has no stable rejection-code field. This is a non-blocking documentation concern, but it can send miners troubleshooting a server-side rejection toward an identifier that the returned row does not contain.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Artifacts

Evidence from the check

  • Runs the ctx and proof HTTP focused tests, then serializes the server gate with workspace dependencies; it is the executed validation source.

Evidence from the check

  • Constructs the exact `EvidenceMissing { field: "contamination_evidence" }` server gate and prints its JSON serialization, showing the public persisted token differs from the guide.

Command output from the check

  • Captured `cargo test -p ctx empty_manifest_is_contamination_evidence_missing`; the passing test confirms ctx refuses an empty manifest before a submit request is constructed.

Command output from the check

  • Captured proof HTTP execution shows the direct signed empty-evidence path passes its rejected/no-rent test and prints the actual persisted `verdict.failed` JSON, demonstrating the API token mismatch.

Command output from the check

  • Records execution of the uploaded validation script from `/home/user/repo` with exit code 0, confirming the evidence captures were generated by a completed run.

View artifacts

T-Rex Ran code and verified through T-Rex

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed on 5f27c6c3. ctx still names contamination_evidence_missing; the stored row is documented as verdict.failed = {"evidence_missing":{"field":"contamination_evidence"}}.

"tbench",
"deferred_topics",
"queued",
"scorable_topics",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Pin active scoring status

The documentation guard accepts the bare scorable_topics substring even when it appears only in historical text. A deferred-only version of the guide, stating that submissions queue and are not evaluated, still passes while retaining historical scorable_topics wording. This is a non-blocking regression-coverage concern, but it leaves the check unable to catch miner-facing status changes that could lead to incorrect submission or spending decisions.

Artifacts

Evidence from the check

  • Archives tracked source to an isolated temporary workspace, rewrites only the copied tbench status guidance to deferred, and executes the real docs guard before and after; it demonstrates the guard can accept deferred-only guidance.

Command output from the check

  • Captured execution of the real docs guard against the unmodified archived checkout, including command, isolated working directory, exit code 0, and success output; it establishes the baseline passes.

Command output from the check

  • Captured execution of the real docs guard after the copied tbench guide was rewritten to say scoring is deferred and submissions queue without evaluation, including exit code 0; it proves the semantic regression passes.

View artifacts

T-Rex Ran code and verified through T-Rex

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed on 5f27c6c3. The docs gate now also pins the substring scorable_topics` contains `tbench so a deferred-only rewrite that only mentions the field historically fails external-docs-check.

Rewrite the tbench miner guide for live scoring (can_score true,
scorable_topics=[tbench], deferred_topics empty). Keep a historical note
that defer_scoring may return. Add the artefact attach-surface contract
(uncompressed tar, PROOF_ARTIFACT_DIR vs pack, Harbor agent layout),
experiment-VM BYOK egress vs sister network-none, artefacts zip, and
honest --train-dataset labels. Pin the new gates in external-docs-check.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/docs-tbench-scoring-on-dcb2 branch from c686566 to cb7d918 Compare September 10, 2026 11:11
@cursor

cursor Bot commented Sep 10, 2026

Copy link
Copy Markdown

@greptileai review

Rebased onto main after #266. Conflict resolution kept both: scoring-ON miner status plus the Harbor attach-surface (-a is an import path, $PROOF_ARTIFACT_DIR/agent then recipe/agent, fail-closed, no terminus-2 fallback).

Comment thread docs/external-miner/proof-tbench.md Outdated
Comment on lines +242 to +243
- runner logs (`logs/`) — whatever the adaptor wrote under
`PROOF_WORK_DIR` / `PROOF_OUTPUT_DIR`, plus harness stdout the guest kept

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Archive Drops Saved Logs

The guide says files written under PROOF_WORK_DIR and PROOF_OUTPUT_DIR are added beneath logs/ in the result archive. A scored guest run returns only the redacted stdout/stderr tail as runner.log; it does not collect either directory. Miners who rely on this guidance can lose diagnostic files they expected to retrieve from the archive.

Artifacts

Evidence from the check

  • The authored focused Rust test writes unique sentinels under both guest work and output directories, then checks that only the returned runner log is exposed, showing the intended reproduction setup.

Command output from the check

  • The focused guest evaluation test completed successfully and printed that both sentinels remained on disk while the returned log list was only runner.log, showing those files are not returned for archiving.

Command output from the check

  • The focused scored submission-to-promotion archive test completed successfully, showing the current scorer archive integration executed successfully.

View artifacts

T-Rex Ran code and verified through T-Rex

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed on 5f27c6c3. The zip list is now honest: logs/runner.log is the redacted stdout/stderr tail the guest returns. Extra files under PROOF_WORK_DIR / PROOF_OUTPUT_DIR die with the VM and are not archived. report.json / checklist.json still ship as named zip entries.

The guest only returns logs/runner.log (redacted stdout/stderr tail);
PROOF_WORK_DIR / PROOF_OUTPUT_DIR files die with the VM. Name the
server evidence_missing field next to the ctx contamination label, and
pin that scorable_topics contains tbench so a deferred-only rewrite fails
the docs gate.

Co-authored-by: Mathis <echobt@users.noreply.github.com>
@cursor

cursor Bot commented Sep 10, 2026

Copy link
Copy Markdown

@greptileai review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants