feat(cli): envelope-probe discoverability + kind-key refusal prose (#193 residue)

The --unwired help line names the whole-envelope starting move (start
from a bare {}), closing the 0106-F1 discoverability gap the narrowed
issue kept open; the wrong-kind refusal names the exact key a blind
author must fix ('the "kind" key must be "process"') instead of
describing the mismatch abstractly. The third original item (block-ids
vs field names in --vocabulary) is sufficiently served by the
envelope probe per the issue's narrowing comment.

RED-first (tdd-author handoff): both pins observed failing on the old
help text / prose.

Gates: workspace 1043/0, clippy -D warnings clean.

closes #193
This commit is contained in:
2026-07-04 04:27:52 +02:00
parent 179c2f8bf0
commit 01925e0619
2 changed files with 47 additions and 2 deletions
+2 -2
View File
@@ -39,7 +39,7 @@ pub struct DocIntrospectCmd {
/// Describe one block's typed slots
#[arg(long, value_name = "ID")]
pub block: Option<String>,
/// List the open slots of a (partial) document
/// List the open slots of a (partial) document — start from a bare {} to see the whole envelope
#[arg(long, value_name = "FILE")]
pub unwired: Option<PathBuf>,
/// Print the content id of a valid document
@@ -112,7 +112,7 @@ pub(crate) fn doc_error_prose(what: &str, e: &DocError) -> String {
DocKind::Process => "process",
DocKind::Campaign => "campaign",
};
format!("{what}: wrong document kind (expected \"{want}\")")
format!("{what}: the \"kind\" key must be \"{want}\"")
}
DocError::Malformed(msg) => format!("{what}: {msg}"),
}