swarm-review-classifier: answer a try-out with one claude run per classification
A new service crate. It reads its queue client secret from the store at start, takes try-outs on the review classifier subject in its queue group, and for each run reads the Anthropic API key from the store, builds the shared context (commits with full messages, diff with lockfiles collapsed), runs one claude --print per classification with no session, no tools, no MCP server and the key in the child's environment only, validates the JSON answer and aggregates the rows. A missing key or a run where no classification got an answer fails the run; one failed classification is an excluded row with its error. One journal line per run names the operator, repo, PR, head SHA, rows and overall verdict. swarm-secret-client gains the two paths the service reads.
This commit is contained in:
parent
98c873965b
commit
88a55f136e
11 changed files with 1235 additions and 1 deletions
|
|
@ -5,7 +5,8 @@
|
|||
//! the rules every path obeys ([`path`]), the translation from this
|
||||
//! deployment's environment into a logged-in client ([`client`]), and, per kind
|
||||
//! of secret, the path it lives at together with the fields it holds
|
||||
//! ([`matrix`], [`queue`], [`mtls`], [`forge`], [`github`], [`acp`], [`ci`]). Each of those is a thing the controller
|
||||
//! ([`matrix`], [`queue`], [`mtls`], [`forge`], [`github`], [`acp`], [`ci`],
|
||||
//! [`review_classifier`]). Each of those is a thing the controller
|
||||
//! and a hive must say identically, so it is said once here.
|
||||
//!
|
||||
//! [`policy`] is the same kind of agreement seen from the other side: which of
|
||||
|
|
@ -32,6 +33,7 @@ pub mod mtls;
|
|||
pub mod path;
|
||||
pub mod policy;
|
||||
pub mod queue;
|
||||
pub mod review_classifier;
|
||||
|
||||
pub use client::SecretStore;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue