Dashboard › cli › Distillation
26305588-b922-41c3-a5f1-8fbd1f9fb885["lore_tm_v1_x1ookqYEGERP9jT5W_rG4u4UH_geKzqxI1TjuWGqC0U","lore_tm_v1_sGrS6Jy4pE-BP38fg4L9oDtBqJGcudzjQJ8EE840jfA","lore_tm_v1_iUlmjOyhQy0UZ9N7X74WJEhQy4l5SJgzZOfheYA2jdE","lore_tm_v1_rKL0yhIiceOk2ghYjc8kEFHv7XwiI3BRVJkEC-A2sN4","lore_tm_v1_KWgUhYBRZ6OiK6nDiF0ve_c-qt2xExiX-D-O_46OVdY","lore_tm_v1_JaJYIEcsQ46CWSBIGQLFwVnKo67dISnqfDLW-oz5hOo","lore_tm_v1_2vIuFCnzWAV7Ndx5SAWF8LPZU2Wg0f8tGP4-XOzosZw","lore_tm_v1_A5JfPTU-75elesac9dZ8l9PrBWjzKOqbtM2mmqERKGU","lore_tm_v1_wQfZ5meOj80jEt6dqs8yB_AdvhR9TlxTLmKY53jiDp4","lore_tm_v1_6o_KKomH5SRKHNmUxCaK_LvGIcTskUT2VTNJqsNLkzw","lore_tm_v1_SPmY-fTg_PPxOL720A2eciggZO-rtaKjnZjfhYi_8R0","lore_tm_v1_Xi1oaqMO5zz8jKuW4i4D7MP7_ZBYTkWgM4tBQDTugZM","lore_tm_v1_iEzisy7Q_FY8J4K4ycBS-7YjWbpOLyYsAiUOaeAuiZA","lore_tm_v1_RdbGUx4qoVNN4uAVq9h7Q_Efn5pcMH6Ila0JT7qYRtU"]
Date: Sep 10, 2026
packages/cli/src/lib/introspect.ts:214-216 “always renders arrays as required,” while :248-255 hardcodes optional: false and ignores params.parameter.optional.packages/cli/src/commands/event/send.ts:140-147 marks files optional and :297-320 supports --message with no file, yet generated apps/cli-docs/src/content/docs/commands/event.md:49-57 renders sentry event send <args...>; packages/cli/src/commands/schema.ts:359-365 permits no positional arguments, yet generated schema.md:18 renders <resource...>.getPositionalString() and extractPositionals(), explicitly mark every semantically optional array command, and keep issue merge required.[<args...>] on event send and <issue...> on issue merge.packages/cli/src/commands/agent-conversation/view.ts:30-31,75 defines canonical syntax [<org>/]<conversation-id>, but packages/cli/src/lib/introspect.ts:307-309 applies __primaryUsage only to the heading while argument rows remain derived from raw parser metadata; packages/cli/script/generate-command-docs.ts:200-204 renders that raw metadata.apps/cli-docs/src/content/docs/commands/agent-conversation.md:49 has the correct heading, but :57 incorrectly renders [<org/conversation-id>], exposing rejected raw syntax and falsely implying that the required conversation ID is optional.customUsage be carried into argument-row metadata through an authoritative representation such as a syntax field and used when rendering compound single-token positionals: “Never derive public syntax solely from parser optionality.”[<org>/]<conversation-id>, with no <org/conversation-id>, and required project create as another compound-customUsage regression.packages/cli/test/script/generate-skill-markdown.test.ts:135-149 as depending on generated command pages excluded by .gitignore:73, allowing stale-workspace passes or clean-checkout failures.22 for omission and exit 21 for a supplied blank target (view.ts:107,116-128; scanner-flags.integration.test.ts:82-116 exercises run(app, ...)); group help uses canonical usage (command.ts:458-472; help-positional.test.ts:196-206); required issue merge renders <issue...> and release deploy tuple entries render correctly (issue.md:147-155, release.md:136-146); structured examples precede legacy document fallback at introspect.ts:311-315, and references/agent-conversation.md:66-83 contains corrected syntax/examples.tsc --noEmit passed; Biome checked 1,030 files with no fixes; default fragment check passed with one unchanged ProGuard coverage warning, while strict mode treats that pre-existing warning as an error; git diff --check passed.ec83887a16f780f32fba4b7d710bad262dba3a22, HEAD ac72db51b18bb3e23999483233c9ad02d72ea531, tree 92109205f179b9b3cad90ca4df73a855d75d64ba, diff SHA-256 e24b72e24667e4605f6e839f22c9df55f4d6662c4aaff28ed126b8e1637bcbc6, clean worktree; verdict was DO-NOT-MERGE.trace/view.ts:484, trace/logs.ts:130, span/view.ts:384, span/list.ts:575, send-envelope.ts:26, schema.ts:324, replay/view.ts:360, event/view.ts:1082, event/send.ts:142, docs/query.ts:40, docs/list.ts:54, debug-files/upload.ts:567, react-native/xcode.ts:491, debug-files/find.ts:131, project/create.ts:637, dashboard/widget/edit.ts:212, proguard/upload.ts:172, dashboard/widget/delete.ts:85, dashboard/widget/add.ts:108, dashboard/view.ts:190, dashboard/revisions.ts:135, dashboard/restore.ts:72, dashboard/list.ts:391, dashboard/create.ts:157, monitor/run.ts:187, log/view.ts:512, log/list.ts:730, cli/feedback.ts:41, cli/defaults.ts:308, build/upload.ts:178, help.ts:36, issue/merge.ts:276, local/run.ts:366, and packages/cli/src/lib/introspect.ts:70.packages/cli/src/commands/project/create.ts:609 uses customUsage: ["[<org>/]<name>:<platform>..."], and packages/cli/src/commands/agent-conversation/view.ts:75 uses customUsage: [USAGE].customUsage can be tested without ignored generated files.ses_f74578b50ffez0wf9CV29HmvDn started; instructions prohibited sleeping, polling, requesting status, or duplicating its files/topics.packages/cli/script/generate-command-docs.ts showed generated output is gitignored and fragment files are committed source of truth (:14-15); formatPositionalsTable() (:147-164) constructs syntax solely from placeholder, variadic, and optional; generateCommandSection() (:191-219) uses cmd.positional for the heading but cmd.positionals for the argument table.packages/cli/node_modules/@stricli/core/dist/index.d.ts:1045-1049.RequiredPositionalParameter has optional?: false, OptionalPositionalParameter requires optional: true, TypedPositionalParameter<T> selects optionality based on whether undefined extends T, and PositionalParameterArray carries kind: "array", parameter, optional minimum, and optional maximum (index.d.ts:1014-1060).node_modules/@stricli/core/dist/index.js:800-844 shows array cardinality is enforced through positional.minimum and positional.maximum; parameter.optional is consulted only on tuple entries when an input is missing.node_modules/@stricli/core/dist/index.js:1835-1851,1966-1994 shows array usage/documentation always formats the element placeholder variadically without consulting parameter.optional or minimum, whereas tuple formatting brackets entries based on optional or defaults.