| 66 | /// Requires Claude CLI (`claude`) to be installed and authenticated. |
| 67 | #[derive(Debug, Args)] |
| 68 | pub struct Explain { |
| 69 | /// Session ID to explain. |
| 70 | /// |
| 71 | /// The session must have at least one recorded turn on its agent view. |
| 72 | /// Use `atomic agent status` to see available sessions. |
| 73 | session_id: String, |
| 74 | |
| 75 | /// Explain a specific turn number (1-indexed). |
| 76 | /// |
| 77 | /// If not specified, explains the most recent turn. |
| 78 | #[arg(long, value_name = "N")] |
| 79 | turn: Option<u32>, |
| 80 | |
| 81 | /// Explain all turns in the session. |
| 82 | #[arg(long)] |
| 83 | all: bool, |
| 84 | |
| 85 | /// Save the reasoning back into the change's unhashed section. |
| 86 | /// |
| 87 | /// When saved, the reasoning persists in the change file and is |
| 88 | /// included when you `atomic push`. Without this flag, reasoning |
| 89 | /// is only displayed, not stored. |
| 90 | #[arg(long)] |
| 91 | save: bool, |
| 92 | |
| 93 | /// Claude CLI model to use for reasoning generation. |
| 94 | /// |
| 95 | /// Defaults to "sonnet". Use "opus" for higher quality at higher cost, |
| 96 | /// or "haiku" for faster/cheaper results. |
| 97 | #[arg(long, default_value = "sonnet")] |
| 98 | model: String, |
| 99 | } |
| 100 | |
| 101 | impl Explain { |
| 102 | /// Create a default instance for testing. |
no outgoing calls