Repository navigation
Landscape-sweep templates: OpenSSF Scorecard maintenance rule; licenses never a refutation reason - #385
Merged
seathatflowsinourveins merged 5 commits intoSep 27, 2026
Conversation
…es never a refutation reason The sweep's templates change in two ways: - "Maintained upstream with 2025-2026 activity" becomes the OpenSSF Scorecard Maintained check. A stale repository (archived, or without a default-branch commit in the last 90 days) is excluded whatever its stars. A repository under 90 days old is flagged as too new to assess. An old tag on an active branch is not stale; pin the commit instead. - Licenses are recorded as information only and are never a reason to exclude, refute or rank down a candidate. This follows the operator's 2026-09-26 decision; the fit refuter was still told to refute non-commercial or unclear licenses. The template-hash change detector moves to PROMPTS_SHA256_CURRENT (dc5ffcb6...). The 2026-09-26 value stays as that run's recorded hash. A new test checks both rules are in the templates. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
…e the maintenance rule precisely Independent review (headless Sonnet 5, effort max): needs_changes, 1 major and 4 minor findings. - major: the shared common template, which reaches every role including the fit refuter, still judged "license and platform fit". It now reads "and platform fit (license is information only)". - minor: the rule is now "derived from" the Scorecard Maintained check and states Scorecard's actual criteria (archived is lowest; a 90-day window; top score needs a commit per week). This rule excludes only the zero-activity end. - minor: the commit fact is established with gh api .../commits?since=<90 days ago>, not pushed_at (any branch). - minor: a repository under 90 days old says "TOO NEW TO ASSESS (<90 days)" at the start of its demonstrated_gap. - minor: docs/harness-defaults.md's anti-pattern row no longer calls the template change pending. The regression test now scans every template for license-as-criterion phrases. PROMPTS_SHA256_CURRENT is updated to 0e443585. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
… necessary; REST URL alternative The independent Opus re-check agreed the major and 3 of 4 minor findings were resolved, and raised two minors. - The shared template said Scorecard "gives its top score only for at least one commit per week". It now gives the top score to at least one commit per week and partial credit for maintainers' issue activity (the Scorecard doc's sufficient condition). - The commit check also names the same https://api.github.com REST URL, for lanes without the gh CLI. The test comment says "derived from", and the anti-pattern log names the test. PROMPTS_SHA256_CURRENT is updated to a9722fec. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
…y lanes cannot reach the commit evidence) GPT-6 cross-family review (gpt-6-astra, max) of b87a656 returned needs_changes, with 1 medium finding. The web-only GPT-6 lane cannot run gh (make_prompt.py TAIL), and its web tools failed to fetch the commits API URL. Since the fit refuter defaults to refuted, maintained repositories could be refuted for unreachable evidence. - common: a lane that cannot reach either source records the commit fact as unknown and never excludes or refutes on unknown maintenance, because a missing result is pending, never refuted. - fit: staleness must be established from evidence; unknown maintenance is never a reason to refute. The test asserts both. PROMPTS_SHA256_CURRENT is updated to f64eec22. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
Collaborator
Author
|
Reviews complete at
At
|
…s-maintained-license-20260927 # Conflicts: # manifests/evidence.json
seathatflowsinourveins
deleted the
claude/sweep-templates-maintained-license-20260927
branch
September 27, 2026 06:40
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
This PR fixes the landscape-sweep harness's frozen prompt templates (
tools/sota-convergence/landscape-sweep/templates.json) so that the next per-layer sweep applies the operator's rules.commonprinciple "maintained upstream with 2025-2026 activity" becomes a rule derived from Scorecard's check. Scorecard gives an archived repository its lowest score, uses a 90-day window, and gives its top score to at least one commit per week, with partial credit for maintainers' issue activity.gh api repos/<o>/<r>/commits?since=<90 days ago>&per_page=1, or the sameapi.github.comREST URL. Don't usepushed_at, which counts any branch.demonstrated_gapwith "TOO NEW TO ASSESS (<90 days):".commonno longer has "OSI or clearly usable license" as a selection principle. Its merit criteria read "maintenance and supply-chain health, and platform fit (license is information only)"; before, they read "… license and platform fit".docs/harness-defaults.md: the anti-pattern row "Gating candidates on license" now names this change and its test, instead of saying it is pending.Reviews
01766f33):needs_changes, 1 major and 4 minor findings. All five were fixed in65cb1e83. The major one was thecommonmerit clause, which still judged licenses.65cb1e83): the major finding and 3 of the 4 minors resolved. It raised two minors: the Scorecard wording ("only"), and this description. Both are fixed at the current head.Tests
PROMPTS_SHA256_CURRENT=a9722fec…. Per the test's own procedure, an intended template edit updates it.PROMPTS_SHA256_20260926(3adfbed7…) stays as that run's recorded value, which the fixtures use.test_templates_never_refute_on_license_and_name_the_maintenance_rulescans every template for license-as-criterion phrases and checks that the maintenance rule's command,pushed_atexclusion and too-new prefix are present.python3 -m unittest tests.test_landscape_sweep_harness tests.test_saturation_ledger: 153 run, OK (3 skipped).scripts/validate.pypassed.git diff origin/main -- templates.jsonchanges only thecommonandfitstrings; the file's 1-space JSON formatting is unchanged.SOTA sources
shadefaults to the default branch): https://docs.github.com/en/rest/commits/commits#list-commitstests/test_landscape_sweep_harness.py(change-detector comment) andtools/sota-convergence/landscape-sweep/README.md("Run it").🤖 Generated with Claude Code
https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5