Dashboard › cli › Distillation
81ff7b7c-03bf-4060-b416-9e317541622c["lore_tm_v1_FNhlk7SHuHkS6fgqPzU0bD5fwHGD82DhqU55CadshMw","lore_tm_v1_eNfQB2aiNUjH6Tpr7YQmzKjk4GJ5gY70iC322BLbqlo","lore_tm_v1_mHVrqYG7mOAwIzvDz90FlhD5g9s5SlCGN2jwafC9zaY","lore_tm_v1_oce9oQ1AZFc7P8SIK-Pmw8LSUTK5u3gG_sRlpQdukWo","lore_tm_v1_TVW4Pj_dwHOdftnfZsjGKoYo6i4DMkXwhxMIZAotTWI"]
packages/cli/test/commands/agent-conversation/list.test.ts coverage asserting organization-resolution failures expose canonical command usage sentry agent-conversation list [<org>].packages/cli/test/commands/agent-conversation/view.test.ts to import ValidationError and test 5 malformed targets: ${ORG}/${CONVERSATION_ID}/extra, ${ORG}//${CONVERSATION_ID}, ${ORG}/${CONVERSATION_ID}/, /${CONVERSATION_ID}, and ${ORG}/. Each must fail before organization resolution or API access with a ValidationError, field: "conversation-id", and a message containing sentry agent-conversation view [<org>/]<conversation-id>.packages/cli/test/lib/command.test.ts coverage proving buildCommand() retains structured docs.examples metadata as __examples; the fixture preserves { description: "Select an organization explicitly", command: "sentry thing list my-org" }.extractFlags() always returns one FlagInfo per input entry.:; the space-separated form is invalid.packages/cli/test/lib/introspect.property.test.ts was extended so generated tuple parameters include optional: boolean(), and each parameter must render as <placeholder> when required or [<placeholder>] when optional, defaulting missing placeholders to arg${index}.packages/cli/test/lib/introspect.property.test.ts assert: extractFlags() output length equals Object.keys(flags).length; flag names are preserved; boolean flags without an explicit optional value default to optional: true; array positionals contain ...; and extractAllRoutes() excludes names that exist only as hidden entries.packages/cli/test/lib/introspect.test.ts added an exact optional-tuple expectation: parameters { placeholder: "required" } and { placeholder: "optional", optional: true } render as <required> [<optional>].packages/cli/test/lib/introspect.test.ts confirms positional formatting conventions: undefined positional metadata renders ""; tuple placeholders render <org> <project>; unnamed tuple parameters render <arg0> <arg1>; an array placeholder command renders <command...>; and an unnamed array parameter renders <args...>.packages/cli/test/lib/introspect.test.ts added precedence coverage showing structured command metadata in __examples overrides legacy document examples. Structured examples become comment-prefixed shell snippets in order: 1. # Use automatic organization detection\nsentry thing list; 2. # Select an organization explicitly\nsentry thing list my-org; legacy sentry thing list stale-org is discarded.packages/cli/test/lib/introspect.test.ts confirms buildCommandInfo() prefers public __primaryUsage syntax <name>:<kind>... over the underlying array positional placeholder <name:kind...>.packages/cli/test/script/generate-skill-markdown.test.ts added integration coverage using listCommand, viewCommand, and buildCommandInfo(): agent-conversation list has no __primaryUsage, derives positional syntax [<org>], and includes # Explicit organization\nsentry agent-conversation list my-org.[<org>/]<conversation-id> and exactly 3 ordered examples: 1. # View full transcript (organization auto-detected)\nsentry agent-conversation view conv-123; 2. # Explicit organization\nsentry agent-conversation view my-org/conv-123; 3. # JSON output\nsentry agent-conversation view my-org/conv-123 --json.formatCommandExamples() is expected to render those 3 agent-conversation view examples under **Examples:** in one fenced bash block, preserving each description as a shell comment and separating examples with blank lines.### \sentry project create [<org>/]<name>:<platform>...`and rejects stale examples containingsentry project create "My New App":or the invalid space-separated formsentry project create my-new-app javascript-nextjs`.packages/cli/src/lib/errors.ts:518-565 found buildValidationMessage(headline, examples, note?), which renders a headline, optional Try: section with each example indented by 2 spaces, and optional Note: ${note} diagnostic context.packages/cli/src/lib/errors.ts:540-549 defines validationError(headline, examples, field?, note?), a wrapper that constructs ValidationError(buildValidationMessage(headline, examples, note), field).packages/cli/src/lib/errors.ts:558-565 defines ValidationError extends CliError; its constructor calls super(message, EXIT.VALIDATION), sets name = "ValidationError", and retains optional field. Nearby guidance at lines 510-512 says callers should always provide field, because unfielded validation errors collapse into one Sentry fingerprint.