Skip to content

Add Scoring runs and weekly factory PR samples - #1137

Merged
JacobStephens2 merged 4 commits into
issue-978from
issue-1024
Oct 23, 2026
Merged

JacobStephens2 merged 4 commits into
issue-978from
issue-1024

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

thirdshift score
  machine lock → Command record/log + Activity log
  previous window end .. Command start (first: seven days)
  configured owners → merged factory PRs → exclude security-fix
  seeded draw across Harness/Model pairs → private weekly sample
thirdshift scores [--json]
  list retained windows, seeds and samples by ISO week

Adds [scoring] defaults to Setup and documents both commands. Scoring uses the existing Inbox and Stop interfaces; failed searches land in Needs you and advance no window.

Closes #1024

Evidence

  • Before: cargo test --test scoring first_window_looks_back_seven_days_and_is_a_recorded_command failed because score was parsed as an Issue URL. The sampling test initially returned 29 unfiltered candidates instead of a three-pair sample; the Stop test initially rejected the displayed Scoring Command name.
    After: Scoring and Setup integration suites passed (10 + 30 tests), including the factory-writer/Scoring-reader round trip. The compact-help guard and complete-config Setup fixture pass. cargo check --all-targets and cargo clippy --all-targets -- -D warnings passed. The full CI Rust job passed on final head 6cd2e01; all applicable PR checks are green.
  • Final local selection: NEXTEST_TEST_THREADS=12 /usr/bin/time -p scripts/affected-tests issue-978 passed all 43 site browser tests. The duplicate Rust run was deliberately interrupted once the full Rust CI job passed on that exact head, reusing CI as docs/testing.md requires. This local attempt took 819.55 seconds before cancellation and included 7.14 seconds of incremental Rust compilation; it is not a completed full-suite timing.
  • The production GraphQL query was checked read-only against GitHub: 210 matches, 50 returned with a next-page cursor. Its page sizes fit GitHub's node budget.

Test seams

  • Whole binary against fake gh: score, scores, status/Inbox and Stop; retained samples, Command records, Command logs and Activity logs.
  • User config and Setup through their existing public interfaces.

Review

Fixed point: issue-978 (1ff8b2076d8381ecc3ec1c30b7483ac6aac53aa7). Standards and Spec reviewed independently, with a focused follow-up at 258146a. Standards raised one maintenance judgment, addressed by consolidating Built-with parsing and formatting under harness::built_with; no hard violations or outstanding judgments remain. Spec has no findings. Both axes read 34 of the final 35 changed files. Unread by both axes: src/setup.rs, changed after their follow-up to complete the config fixture with the new Scoring defaults. The later help compaction in src/main.rs was validated after review. Generated-output exclusions: none. Reports, including final files-read lists and coverage accounting, are retained locally as .thirdshift-review-erJbHo/standards.md and .thirdshift-review-erJbHo/spec.md.

Unaddressed findings

Standards

None.

Spec

None.

Security

None. Guidance-mode review of the issue-1024 diff against the pinned merge base found no introduced Security finding: gh runs via argv exec with no shell, configured owners are validated before search interpolation, security-fix label matching is case-insensitive and fail-closed on incomplete label evidence, samples persist privately with an OsRng seed, and over-limit searches advance no window. No fixes committed.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

The commands and configuration can be reverted; Scoring retains local samples without changing repositories.

Blast Radius: Scoring

Existing Runs share the User config reader and Built-with formatter. Samples remain private under ~/.thirdshift/evals/scoring/; Grader sessions and criterion Scores belong to subsequent work. Searches above GitHub's 1,000-result limit or with incomplete issue-label evidence fail without advancing the window.

Built with codex · gpt-6.1-sol · xhigh

Unify Built-with attribution so Scoring retains detected Harness versions while accepting legacy lines. Preserve the shared marker, formatter and reader, and verify the factory-to-Scoring version round trip.
@JacobStephens2
JacobStephens2 merged commit 9ab1273 into issue-978 Oct 23, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1024 branch October 23, 2026 08:50
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.

1 participant