Dashboard › cli › Distillation
e1212220-dd27-452f-be0a-7295d33a4b3d["lore_tm_v1_WzVE3xvlkboFzZAkX6oQ4fGSBCSS04zRwkCP224h4wE","lore_tm_v1_3dxC6gN4oxSmAYl-tMwEvYEOsEOnpIOoi8yiP6GXRtQ","lore_tm_v1_Cwiq5jx42gow1rjvt1UIVIwsgZ6Bb1hMg1KjCD35Cbc","lore_tm_v1_p1lPeOHMebHigwsrkrutz8L6bp1cKkVEbuaFzLN3--E","lore_tm_v1_5lX92HYVNqvzNFGI22vqTVR6POUbbhmW3g4_EdPAn4g","lore_tm_v1_MrSSHawto55VvxijVrf4h17vWTPNbTg9Z2nhZ-NdKl4"]
Date: Sep 8, 2026
/home/byk/Code/getsentry/cli-pr-1558; it contains 18 entries: .craft.yml, .git, .github/, .gitignore, .lore.md, .nojekyll, .npmrc, AGENTS.md, apps/, CHANGELOG.md, codemods/, LICENSE.md, node_modules/, package.json, packages/, pnpm-lock.yaml, pnpm-workspace.yaml, and README.md./home/byk/Code/getsentry/cli-pr-1558/AGENTS.md, /home/byk/Code/getsentry/cli-pr-1558/packages/cli/AGENTS.md, and /home/byk/Code/getsentry/cli-pr-1558/packages/cli/CONTRIBUTING.md; target repositories require reading their AGENTS.md / CONTRIBUTING.md first.repo-setup before situation skills; skills live under .agents/skills/, are generated from canonical skills/, and are synchronized by scripts/sync-skills.mjs.package.json for the latest scripts. Commands run from packages/cli, or from the repository root via pnpm --filter sentry run <script>.packages/cli; the Astro + Starlight documentation site is in apps/cli-docs.devDependencies, never dependencies, because esbuild bundles everything at build time and CI enforces this with pnpm run check:deps.pnpm add -D <package>, including the -D flag.node:* APIs and prohibits reintroducing Bun.* globals, bun:test, or bun CLI commands because the project migrated from Bun to Node.js.execFileSync/execFile with array arguments over string-based execSync when passing user-controlled values, to avoid shell injection.buildCommand from ../../lib/command.js, never directly from @stricli/core; the wrapper adds telemetry, injects --json/--fields, and handles output rendering.async *func() generators, yield new CommandOutput(data), and optionally return { hint }; commands must not add their own json flag, branch on flags.json, or call stdout.write().buildRouteMap from ../../lib/route-map.js, never directly from @stricli/core; the wrapper auto-adds aliases list → ls, view → show, delete → remove, rm, and create → new, and these standard aliases must not be manually duplicated.mdKvTable(), colorTag(), escapeMarkdownCell(), and renderMarkdown(); raw muted()/chalk must not be embedded in output strings.isPlainOutput() precedence is SENTRY_PLAIN_OUTPUT > NO_COLOR > FORCE_COLOR (TTY only) > !isTTY; its implementation is in src/lib/formatters/plain-detect.ts and is re-exported from markdown.ts.buildDeleteCommand() from src/lib/mutate-command.ts; it injects --yes, --force, and --dry-run with aliases -y, -f, and -n, and blocks non-interactive execution without --yes/--force unless dry-run bypasses the guard.-c next / -c prev, including resolveCursor, advancePaginationState, hasPreviousPage, and paginationHint() at the appropriate abstraction level.buildOrgListCommand for fully automatic simple organization-scoped lists, 2. dispatchOrgScopedList with overrides for mostly automatic commands with custom modes, 3. buildListCommand with manual pagination for commands such as trace/span/dashboard lists.--limit exceeds API_MAX_PER_PAGE (100) to transparently fetch multiple pages, using Math.min(flags.limit, API_MAX_PER_PAGE) and looping until results.length >= limit or pages are exhausted.per_page value larger than API_MAX_PER_PAGE to the API; the server silently caps oversized values, which otherwise causes commands to return fewer items than requested.pnpm run generate:docs, which runs generate:command-docs and then generate:skill; generation also runs during dev, build, typecheck, and test.docs/src/content/docs/commands/*.md are gitignored and generated from CLI metadata plus fragments in docs/src/fragments/commands/; skill files under plugins/sentry-cli/skills/sentry-cli/ are committed and CI auto-commits them when stale.docs/src/fragments/commands/ for custom examples and guides, validating fragment-to-route consistency with pnpm run check:fragments, and using descriptive positional placeholders such as "org/project/trace-id" rather than "args".