diff --git a/docs/public/reference/cli.mdx b/docs/public/reference/cli.mdx
index 659b31bf2..39a72d299 100644
--- a/docs/public/reference/cli.mdx
+++ b/docs/public/reference/cli.mdx
@@ -63,7 +63,7 @@ fabro [OPTIONS] [COMMAND]
| Command | Description |
| --- | --- |
-| `fabro approve` | Approve pending workflow runs |
+| `fabro approve` | Approve pending workflow runs.
Controls permission to start a run. For human interview gates during execution, use the questions API. |
| `fabro archive` | Mark terminal runs as archived (reviewed, no further action needed). Archived runs are hidden from default listings |
| `fabro artifact` | Inspect and copy run artifacts (screenshots, reports, traces) |
| `fabro ask` | Ask Fabro a read-only question about a run |
@@ -71,7 +71,7 @@ fabro [OPTIONS] [COMMAND]
| `fabro auth` | Manage CLI authentication state |
| `fabro completion` | Generate shell completions |
| `fabro create` | Register a workflow version and create a submitted run |
-| `fabro deny` | Deny pending workflow runs |
+| `fabro deny` | Deny pending workflow runs.
Controls permission to start a run. For human interview gates during execution, use the questions API. |
| `fabro discord` | Open the Discord community in the browser |
| `fabro docs` | Open the docs website in the browser |
| `fabro doctor` | Check environment and integration health |
@@ -111,7 +111,7 @@ fabro [OPTIONS] [COMMAND]
### `fabro approve`
-Approve pending workflow runs
+Approve pending workflow runs.
Controls permission to start a run. For human interview gates during execution, use the questions API.
```bash
fabro approve [OPTIONS] ...
@@ -371,7 +371,7 @@ fabro create [OPTIONS]
### `fabro deny`
-Deny pending workflow runs
+Deny pending workflow runs.
Controls permission to start a run. For human interview gates during execution, use the questions API.
```bash
fabro deny [OPTIONS] ...
diff --git a/lib/apps/fabro-cli/src/args.rs b/lib/apps/fabro-cli/src/args.rs
index 09d7a01dc..1c09c47a2 100644
--- a/lib/apps/fabro-cli/src/args.rs
+++ b/lib/apps/fabro-cli/src/args.rs
@@ -1358,8 +1358,14 @@ pub(crate) enum RunsCommands {
/// Show detailed information about a workflow run
Inspect(InspectArgs),
/// Approve pending workflow runs.
+ ///
+ /// Controls permission to start a run. For human interview gates during
+ /// execution, use the questions API.
Approve(RunsApproveArgs),
/// Deny pending workflow runs.
+ ///
+ /// Controls permission to start a run. For human interview gates during
+ /// execution, use the questions API.
Deny(RunsDenyArgs),
/// Mark terminal runs as archived (reviewed, no further action needed).
/// Archived runs are hidden from default listings.
diff --git a/lib/apps/fabro-cli/tests/it/cmd/approve.rs b/lib/apps/fabro-cli/tests/it/cmd/approve.rs
index 2f4d23ad9..9af2123bb 100644
--- a/lib/apps/fabro-cli/tests/it/cmd/approve.rs
+++ b/lib/apps/fabro-cli/tests/it/cmd/approve.rs
@@ -14,21 +14,49 @@ fn help() {
success: true
exit_code: 0
----- stdout -----
- Approve pending workflow runs
+ Approve pending workflow runs.
+
+ Controls permission to start a run. For human interview gates during execution, use the questions API.
Usage: fabro approve [OPTIONS] ...
Arguments:
- ... Run IDs or workflow names to approve
+ ...
+ Run IDs or workflow names to approve
Options:
- --json Output as JSON [env: FABRO_JSON=]
- --server Fabro server target: http(s) URL or absolute Unix socket path [env: FABRO_SERVER=]
- --debug Enable DEBUG-level logging (default is INFO) [env: FABRO_DEBUG=]
- --no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
- --quiet Suppress non-essential output [env: FABRO_QUIET=]
- --verbose Enable verbose output [env: FABRO_VERBOSE=]
- -h, --help Print help
+ --json
+ Output as JSON
+
+ [env: FABRO_JSON=]
+
+ --server
+ Fabro server target: http(s) URL or absolute Unix socket path
+
+ [env: FABRO_SERVER=]
+
+ --debug
+ Enable DEBUG-level logging (default is INFO)
+
+ [env: FABRO_DEBUG=]
+
+ --no-upgrade-check
+ Disable automatic upgrade check
+
+ [env: FABRO_NO_UPGRADE_CHECK=true]
+
+ --quiet
+ Suppress non-essential output
+
+ [env: FABRO_QUIET=]
+
+ --verbose
+ Enable verbose output
+
+ [env: FABRO_VERBOSE=]
+
+ -h, --help
+ Print help (see a summary with '-h')
----- stderr -----
");
}
diff --git a/lib/apps/fabro-cli/tests/it/cmd/deny.rs b/lib/apps/fabro-cli/tests/it/cmd/deny.rs
index 867b65907..2638138c3 100644
--- a/lib/apps/fabro-cli/tests/it/cmd/deny.rs
+++ b/lib/apps/fabro-cli/tests/it/cmd/deny.rs
@@ -14,22 +14,52 @@ fn help() {
success: true
exit_code: 0
----- stdout -----
- Deny pending workflow runs
+ Deny pending workflow runs.
+
+ Controls permission to start a run. For human interview gates during execution, use the questions API.
Usage: fabro deny [OPTIONS] ...
Arguments:
- ... Run IDs or workflow names to deny
+ ...
+ Run IDs or workflow names to deny
Options:
- --json Output as JSON [env: FABRO_JSON=]
- --server Fabro server target: http(s) URL or absolute Unix socket path [env: FABRO_SERVER=]
- --debug Enable DEBUG-level logging (default is INFO) [env: FABRO_DEBUG=]
- --reason Reason for denying execution
- --no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
- --quiet Suppress non-essential output [env: FABRO_QUIET=]
- --verbose Enable verbose output [env: FABRO_VERBOSE=]
- -h, --help Print help
+ --json
+ Output as JSON
+
+ [env: FABRO_JSON=]
+
+ --server
+ Fabro server target: http(s) URL or absolute Unix socket path
+
+ [env: FABRO_SERVER=]
+
+ --debug
+ Enable DEBUG-level logging (default is INFO)
+
+ [env: FABRO_DEBUG=]
+
+ --reason
+ Reason for denying execution
+
+ --no-upgrade-check
+ Disable automatic upgrade check
+
+ [env: FABRO_NO_UPGRADE_CHECK=true]
+
+ --quiet
+ Suppress non-essential output
+
+ [env: FABRO_QUIET=]
+
+ --verbose
+ Enable verbose output
+
+ [env: FABRO_VERBOSE=]
+
+ -h, --help
+ Print help (see a summary with '-h')
----- stderr -----
");
}