Dashboard › cli › Distillation
59dcad22-05c5-413f-a68a-cd5b079285e5["lore_tm_v1_xWRyGJQER5FH87UYkZ0BXgPgYQLenxFkG0TiwzbFGqE","lore_tm_v1_Gpvc7Kc-aqfAQ6W4gAxxy9ABMwpCuKbHeYMxvPMOfy4","lore_tm_v1_E84B7VWhUOb4DwltILn9P34rnwdqNFFUMURxMRg4yco","lore_tm_v1_8fzfTwEJ_ixyGZ8Ku_J40XxbYuGHDnok1kJJP1fO8ao","lore_tm_v1_EkBAjJ1OgsNyC-mutaVjG5dJYV4UWQjlF58XMB1819g","lore_tm_v1_hpNz1KS-ksDn4jRJoI7BBBQ3bsV5HFLzcyDrELK7J7o","lore_tm_v1_vkLBEzhj0vBRRAlfWY7uhuM3TXFuA2vRHmRkqovYZcQ","lore_tm_v1_aNyFXxxFw8GCGcYBarCZU8SQk6XxrPv3x9oA1XQj7ro","lore_tm_v1_cO5IrJj68gvPQfA3dLRtzlXIdpHRVteBU4mtOU9Wl-E","lore_tm_v1_kZZYPGWfoSSNVGmrfN9o-QDpMm6NbWHr6YZPo7Yuw1o","lore_tm_v1_cebg9pH-irjsPzd_Nxoh80189ONWHJM0mV1SttwvLAI","lore_tm_v1_yY6sUzOC4dJiJUKWhrT3IABgcGnisqNPL_5vC-M3UeA","lore_tm_v1_9ZkyeKEFBTBlMJ0LH1YL7Gk2KuW1Ppx7zdrXaNOHN9o","lore_tm_v1_7MewjR4JvsgrXxGSdyXea3Jxg4JsrQeCkvgOzwbVJ-g","lore_tm_v1_SM-X2ckilI0oi6ZFh_4Jya6KbROvs-2yllWTddbCiF0","lore_tm_v1_OUjlAwsri6dXv_suIahmVP6Jrtak9FjeccbLWniuTcM","lore_tm_v1_eRRiIhNYF02tjGfiKJuW7OdMmJH-bbrTitANVVeh4G0","lore_tm_v1_6TMRQEpLXjAkUWdvQnn4SxJvCNqaCkPi7SvI78OhRAo","lore_tm_v1_J6P03KTHkYG22lHnoDPYZCKRMc1fZBXlDTHDCtJyJX0","lore_tm_v1_NVyG-XmBfZ0uOwTSCRsHQxLrQ2nmx0zBik1Bb8_BbvM","lore_tm_v1_NcAvIqe3jlMS_gHjJL-MNjlnXYBIs-UbBhgYnhM6lPA"]
agent-conversation view positional parser optional, (2) override child usage-line rendering when canonical customUsage exists, and (3) carry variadic independently from tuple optionality./home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/commands/agent-conversation/view.ts, /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/command.ts, /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/introspect.ts, and /home/byk/Code/getsentry/cli-pr-1558/packages/cli/script/generate-command-docs.ts.test/script/generate-skill-markdown.test.ts expected the generated argument-table row | \<issue...>` | Issue IDs to merge (2 or more required) |but found| `<issue>` | ... |`, because the test read a pre-regeneration documentation artifact rather than exposing a remaining source regression.pnpm generate:command-docs ran from /home/byk/Code/getsentry/cli-pr-1558/packages/cli; .env.local was absent and execution continued. It generated exactly 36 command documentation pages plus ../../apps/cli-docs/src/content/docs/commands/index.md and ../../apps/cli-docs/src/content/docs/configuration.md.test/lib/help-positional.test.ts > project create parser contract > rejects the removed -p flag failed before its assertion with ENOENT: no such file or directory, mkdtemp '/tmp/sentry-cli-test-w3/help-positional-MnoFVf' at createTestConfigDir() in test/helpers.ts:47.mkdtemp ... ENOENT as the known Vitest worker temporary-root race, not an assertion failure, and chose to rerun the unchanged focused suite.packages/cli/script/generate-command-docs.ts, packages/cli/src/commands/agent-conversation/view.ts, packages/cli/src/lib/command.ts, packages/cli/src/lib/introspect.ts, packages/cli/test/lib/help-positional.test.ts, packages/cli/test/lib/introspect.test.ts, packages/cli/test/lib/scanner-flags.integration.test.ts, and packages/cli/test/script/generate-skill-markdown.test.ts./home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/lib/introspect.property.test.ts.test/lib/introspect.property.test.ts suite passed 10 consecutive executions; each execution had 1 passing file and exactly 10 passing tests.packages/cli/src/lib/command.ts: all command functions are async generators; non-streaming commands yield one CommandOutput<T> and may return { hint }; streaming yields render immediately; JSON-capable commands must yield one aggregate value when callers require one parseable JSON document because individual JSON chunks are pretty-printed rather than JSONL; void commands may return without yielding; hints live exclusively on the return value, never on individual yields.SentryCommandFunction<FLAGS, ARGS, CONTEXT> returns AsyncGenerator<unknown, CommandReturn | void, undefined>.packages/cli/src/lib/command.ts states that all commands must import buildCommand from that module rather than directly from @stricli/core, because direct Stricli imports bypass telemetry and global flag handling.buildCommand injects hidden global --log-level and --verbose flags. Before the original func runs, it sets logger level and strips injected flags; if a command defines its own --verbose (for example, api uses it for HTTP output), injection is skipped and the command’s value serves both purposes.OutputConfig, buildCommand automatically injects --json and --fields; commands that define their own json flag retain it.CommandDocumentation extends native Stricli docs with examples?: readonly CommandExample[]; when customUsage exists, its first line is the canonical signature suffix and later lines may document equivalent forms.attachDocumentationMetadata() in /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/command.ts:459-476 takes docs.customUsage?.[0], resolves either the string itself or .input, stores it as metadata.__primaryUsage, and overrides metadata.formatUsageLine to return [...prefix, input].join(" "); non-empty examples are stored as metadata.__examples.prepareNativeDocs() removes extended examples metadata before passing docs to Stricli; when examples exist, it appends an Examples: section where each entry renders as ${command} # ${description}.ALWAYS_STRIP are always stripped (command never sees them). In packages/cli/src/lib/command.ts, ALWAYS_STRIP is new Set([LOG_LEVEL_KEY]).GLOBAL_FLAG_DEFAULTS maps [LOG_LEVEL_KEY] to LOG_LEVEL_FLAG, verbose to VERBOSE_FLAG, org to ORG_FLAG, and project to PROJECT_FLAG. mergeGlobalFlags injects a global only if the command does not already define it and adds injected keys to stripKeys before calling func./home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/lib/help-positional.test.ts during implementation-diff cleanup.