Skip to content

feat(just): add renovate-risk to write per-PR dossiers for risk review - #531

Open
laurigates wants to merge 1 commit into
mainfrom
feat/just-renovate-risk
Open

laurigates wants to merge 1 commit into
mainfrom
feat/just-renovate-risk

Conversation

@laurigates

Copy link
Copy Markdown
Owner

What

Adds the global recipe just -g renovate-risk [out] [pattern] [owners] [authors] [jobs]. It writes one markdown dossier per open Renovate PR whose title matches pattern (default (?i)security|vulnerab|cve) into out (default tmp/renovate-risk). The recipe header in justfile and the recipe list in exact_dot_claude/CLAUDE.md now name it.

Each dossier holds:

  • whether the repo is archived or private;
  • the last commit on the default branch;
  • merge state and changed files;
  • every check with its conclusion;
  • the Renovate PR body: update table, release notes and advisories, with GitHub's truncation marker kept.

PRs in archived repos go to out/archived/, because they cannot be merged.

Why

renovate-triage sorts PRs into SAFE and HOLD. The HOLD side, security PRs especially, still needs each PR's release notes, advisories and checks read before anything merges. The dossiers are the input to that read. In the session that produced this, five Haiku lean-reader agents extracted CVEs and breaking changes from them verbatim, and the risk rating was done afterwards. The recipe only gathers; it makes no risk judgement.

Verification

  • On 2026-10-27 the session's prototype built dossiers for 41 ForumViriumHelsinki security PRs (14 in archived repos); 10 were merged as low risk afterwards.
  • just --justfile private_dot_config/just/justfile renovate-risk <dir> "(?i)security|vulnerab|cve" ForumViriumHelsinki app/fvh-renovate-bot from this branch gave MATCHED=33 LIVE=19 ARCHIVED=14. Diffed against the prototype's file set: the 10 merged PRs are gone, and two new ones are present (FVHIoT-python#73, Spotted-Cesium-Viewer#47), opened by Renovate after CI resumed. 41 − 10 + 2 = 33.
  • With default arguments (both owners) it gave MATCHED=72 LIVE=58 ARCHIVED=14.
  • just --list parses the file and lists the recipe; the pre-commit hooks passed on the commit.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LDMi9sT6VJh47Vur7G7cQ8

renovate-triage sorts open Renovate PRs into SAFE and HOLD buckets. The
HOLD side, security PRs especially, still needs each PR's release notes,
advisories and check state read before merging. Done by hand, that means
re-fetching every PR body.

renovate-risk writes one markdown dossier per open Renovate PR whose
title matches a pattern (default: security advisories): repo archived or
private, last default-branch commit, merge state, files, every check
with its conclusion, and the Renovate body. Archived-repo PRs go to an
archived/ subdirectory, since they cannot be merged. The dossiers are
the input for an extraction pass (cheap-model readers quoting CVEs and
breaking changes verbatim); the recipe itself makes no risk judgement.

First used on 2026-10-27 for 41 ForumViriumHelsinki security PRs (14 in
archived repos), from which 10 were merged as low risk.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LDMi9sT6VJh47Vur7G7cQ8

This branch has not been deployed

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

Labels

claude documentation Improvements or additions to documentation enhancement New feature or improvement merge:squash Merge with Squash and merge size/s

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant