Skip to main content

plan_issue/tracking/
close_ready.rs

1//! Non-mutating close-readiness probe.
2//!
3//! Task 1.1 declares the result shapes; Task 6.2 implements the probe
4//! against the same strict gates as `record close`.
5
6use serde::{Deserialize, Serialize};
7
8/// Stable blocked code emitted by the probe.
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct CloseReadyBlocker {
11    pub code: String,
12    pub message: String,
13    pub suggested_unblock: String,
14}
15
16/// Outcome of the close-ready probe.
17#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18pub struct CloseReadyReport {
19    pub ready: bool,
20    pub blockers: Vec<CloseReadyBlocker>,
21    pub linked_prs: Vec<String>,
22    #[serde(default)]
23    pub visible_completeness: Option<VisibleSummary>,
24}
25
26/// Compact visible-completeness summary attached to the probe result.
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct VisibleSummary {
29    pub checked: bool,
30    pub pass: bool,
31    pub findings: Vec<String>,
32}