Dashboard › cli › Distillation
b6a66ce1-b4a8-4938-a1bb-5827fd3cd301["lore_tm_v1_ZsDMGi_aPtxOmQRCLLTZOP4z3B9tKa4GS7F5_dpziyM","lore_tm_v1_sIay_QYdNvvjHCiFzemXe2otaMlHd1tBw4AB2YVbu7A","lore_tm_v1_ntul96XEWCvkJf6Hq8ECYt5bPXE4wLyHVLPhGyQCyJY"]
apps/cli-docs/src/fragments/commands/agent-conversation.md, packages/cli/plugins/sentry-cli/skills/sentry-cli/SKILL.md, and route references agent-conversation.md, alert.md, cli.md, explore.md, feedback.md, init.md, issue.md, monitor.md, org.md, project.md, release.md, replay.md, repo.md, team.md, trace.md, and trial.md under packages/cli/plugins/sentry-cli/skills/sentry-cli/references/.packages/cli/script/check-fragments.ts, packages/cli/script/generate-command-docs.ts, packages/cli/script/generate-skill-markdown.ts, packages/cli/script/generate-skill.ts, packages/cli/src/commands/agent-conversation/list.ts, packages/cli/src/commands/agent-conversation/view.ts, packages/cli/src/lib/command.ts, packages/cli/src/lib/introspect.ts, packages/cli/src/lib/list-command.ts, and packages/cli/src/lib/mutate-command.ts.packages/cli/test/commands/agent-conversation/list.test.ts, packages/cli/test/commands/agent-conversation/view.test.ts, packages/cli/test/lib/command.test.ts, packages/cli/test/lib/introspect.property.test.ts, packages/cli/test/lib/introspect.test.ts, and packages/cli/test/script/generate-skill-markdown.test.ts.packages/cli/script/check-fragments.ts now skips fragment subcommand-coverage validation for any introspected command whose cmd.examples.length > 0; commands with canonical metadata examples therefore no longer require duplicate examples or headings in hand-written fragments.packages/cli/script/generate-command-docs.ts documentation semantics changed: generated pages now include auto-generated command reference and examples from CLI metadata, while hand-written fragments are for guides, tips, and content that cannot live in command definitions.packages/cli/script/generate-command-docs.ts imports formatCommandExamples from ./generate-skill-markdown.js and generateCommandSection(cmd) appends its nonempty result after the options table, making canonical command examples appear in generated website documentation.formatPositionalsTable() in packages/cli/script/generate-command-docs.ts now renders optional positional arguments as [<${p.placeholder}>] and required positional arguments as <${p.placeholder}>; previously every positional was rendered as required.packages/cli/script/generate-skill-markdown.ts adds exported formatCommandExamples(examples: readonly string[]): string; it returns an empty string for zero examples, otherwise emits an **Examples:** section with one bash fence and examples separated by blank lines via examples.join("\n\n").packages/cli/script/generate-skill.ts imports formatCommandExamples and replaces its inline example-section construction in generateFullCommandDoc(cmd) with the shared formatter, keeping generated skill references and website command docs consistent.packages/cli/script/check-fragments.ts documents five validations: every route has a fragment plus index.md; every fragment maps to a route or index.md; fragments contain neither frontmatter nor <!-- GENERATED:END -->; required top-level fragments exist; and fragment content covers route subcommands, with warnings by default and errors under --strict.packages/cli/script/check-fragments.ts uses SKIP_ROUTES = new Set(["help"]), REQUIRED_TOP_LEVEL_FRAGMENTS = ["configuration"], DOCS_FRAGMENTS, and a generated stub at src/generated/skill-content.ts containing export const SKILL_FILES: [string, string][] = [];\n when that module is absent.tsx script/check-fragments.ts for missing-subcommand warnings and tsx script/check-fragments.ts --strict to treat those omissions as errors.fragmentMentionsSubcommand() in packages/cli/script/check-fragments.ts accepts three coverage signals: the full literal command path anywhere in content; bare sentry <route> for a default command, guarded so longer subcommands do not create false matches; or a level 1–4 Markdown heading containing the leaf subcommand name outside fenced code blocks.getMultiCommandRoutes() skips standalone routes only when route.commands.length <= 1 and route.commands[0]?.path === \sentry ${route.name}`, while findDefaultInRouteMap(target)resolves a default subcommand by object-reference comparison betweentarget.getDefaultCommand()and entries returned bytarget.getAllEntries()`.