| 1 | #:schema ../docs/schemas/intent-catalog.schema.json |
| 2 | # intent-catalog.toml — command-first каталог форм ввода (ADR 0109, 0119) |
| 3 | # Оверлей: IntentMelody/intent-catalog.toml рядом с exe (legacy: intent-melody-aliases.toml). |
| 4 | # |
| 5 | # Cookbook: |
| 6 | # - Якорь: command_id (канон IdeCommands / MCP). |
| 7 | # - Melody: поля melody_* на [[command]] (0–1 slug на команду); в палитре c:<slug>. |
| 8 | # - Slash: [[command.slash]] (0..N); intent-first пути /namespace action. |
| 9 | # - slash_group на [[command]] — группа autocomplete по умолчанию для всех slash ниже. |
| 10 | # - [command.form.slash.args] — статические args (page, surface); legacy mfd_page тоже читается. |
| 11 | # - enabled = false — отключить команду или отдельный slash без удаления из файла. |
| 12 | # - auto_run_on_commit / auto_run_requires_args — после Tab выполнить без второго Enter (по умолчанию false / true). |
| 13 | # - arg_tail = none|optional|required — режим хвоста после полного пути (ADR 0150; обязательно для новых slash). |
| 14 | # - domain / object / intent / path_role — семантика пути (ADR 0154); path_role=alias при elision (/build run). |
| 15 | # - requires_arg_tail — устарело; не использовать (loader маппит только для старых оверлеев). |
| 16 | # - IML v2 (параметрические мелодии, tail_wire_class) — смысл языка, ADR 0109; не путать с intent_catalog_schema_version. |
| 17 | # - Параметрический slash: любая команда с melody_shape=parametric — хвост по wire_class (ADR 0124). |
| 18 | # Редактор: /editor line select|delete <строки>. Портал: /portal open [url] (как c:wai). |
| 19 | # - Норматив: docs/intent-melody-language-v1.md |
| 20 | # |
| 21 | intent_catalog_schema_version = 2 |
| 22 | |
| 23 | # ============================================================================== |
| 24 | # Doc correspondence (ADR 0061, 0155) |
| 25 | # ============================================================================== |
| 26 | |
| 27 | [[command]] |
| 28 | command_id = "open_workspace_adr_correspondence" |
| 29 | |
| 30 | [[command.slash]] |
| 31 | path = "/docs adr open" |
| 32 | domain = "docs" |
| 33 | object = "adr" |
| 34 | intent = "open" |
| 35 | help = "Открыть correspondence ADR для текущего файла (как клик по строке ADR на PFD)." |
| 36 | group = "Docs" |
| 37 | arg_tail = "none" |
| 38 | |
| 39 | [[command]] |
| 40 | command_id = "open_workspace_feature_docs" |
| 41 | |
| 42 | [[command.slash]] |
| 43 | path = "/docs feature open" |
| 44 | domain = "docs" |
| 45 | object = "feature" |
| 46 | intent = "open" |
| 47 | help = "Открыть docs фичи для текущего файла (как клик по строке Feature на PFD)." |
| 48 | group = "Docs" |
| 49 | arg_tail = "none" |
| 50 | |
| 51 | [[command]] |
| 52 | command_id = "open_docs_template" |
| 53 | |
| 54 | [[command.slash]] |
| 55 | path = "/docs template open" |
| 56 | domain = "docs" |
| 57 | object = "template" |
| 58 | intent = "open" |
| 59 | help = "Открыть шаблон документации из docs/templates (picker) в Markdown Preview." |
| 60 | group = "Docs" |
| 61 | arg_tail = "none" |
| 62 | |
| 63 | # ------------------------------------------------------------------------------ |
| 64 | # [[tail_wire_class]] — провода хвоста parametric melody (c:) |
| 65 | # ------------------------------------------------------------------------------ |
| 66 | |
| 67 | [[tail_wire_class]] |
| 68 | id = "url_remainder" |
| 69 | kind = "single_remainder" |
| 70 | |
| 71 | [[tail_wire_class]] |
| 72 | id = "int_chain_colon_space" |
| 73 | kind = "delimited_slots" |
| 74 | between_slots_any_of = [":", ";", " "] |
| 75 | |
| 76 | [[tail_wire_class]] |
| 77 | id = "bracket_code_ref" |
| 78 | kind = "single_remainder" |
| 79 | |
| 80 | # ============================================================================== |
| 81 | # Editor (parametric line) |
| 82 | # ============================================================================== |
| 83 | |
| 84 | # apply_edit — Удалить строки в открытом файле (1-based): одна, «5 10» или … (/editor line delete) |
| 85 | [[command]] |
| 86 | command_id = "apply_edit" |
| 87 | melody_slug = "eld" |
| 88 | melody_shape = "parametric" |
| 89 | melody_tail_signature = "<start:ln>:<end:ln>" |
| 90 | melody_wire_class = "int_chain_colon_space" |
| 91 | melody_chord_commit = "enter" |
| 92 | melody_palette_usage_hint = "c:eld:<start>:<end> или одна строка c:eld:<line> (в аккорде c:eld;<start>;<end> / c:eld;<line> — «;» без Shift) — удалить строки" |
| 93 | melody_palette_usage_category = "Editor -> Line -> Delete" |
| 94 | |
| 95 | [[command.slash]] |
| 96 | path = "/editor line delete" |
| 97 | domain = "editor" |
| 98 | object = "line" |
| 99 | intent = "delete" |
| 100 | help = "Удалить строки в открытом файле (1-based): одна, «5 10» или «5:10»." |
| 101 | group = "Editor" |
| 102 | arg_tail = "required" |
| 103 | |
| 104 | # select — Выделить строки в открытом файле (1-based): одна, «5 10» или… (/editor line select) |
| 105 | [[command]] |
| 106 | command_id = "select" |
| 107 | melody_slug = "els" |
| 108 | melody_shape = "parametric" |
| 109 | melody_tail_signature = "<start:ln>:<end:ln>" |
| 110 | melody_wire_class = "int_chain_colon_space" |
| 111 | melody_chord_commit = "enter" |
| 112 | melody_palette_usage_hint = "c:els:<start>:<end> или одна строка c:els:<line> (в аккорде c:els;<start>;<end> / c:els;<line> — «;» без Shift) — выделить строки" |
| 113 | melody_palette_usage_category = "Editor -> Line -> Select" |
| 114 | |
| 115 | [[command.slash]] |
| 116 | path = "/editor line select" |
| 117 | domain = "editor" |
| 118 | object = "line" |
| 119 | intent = "select" |
| 120 | help = "Выделить строки в открытом файле (1-based): одна, «5 10» или «5:10»." |
| 121 | group = "Editor" |
| 122 | arg_tail = "required" |
| 123 | |
| 124 | # editor.select_code — Select по bracket [M:…] (ADR 0131) |
| 125 | [[command]] |
| 126 | command_id = "editor.select_code" |
| 127 | melody_slug = "esc" |
| 128 | melody_shape = "parametric" |
| 129 | melody_tail_signature = "<code_ref:bracket>" |
| 130 | melody_wire_class = "bracket_code_ref" |
| 131 | melody_chord_commit = "enter" |
| 132 | melody_palette_usage_hint = "c:esc:[M:Method] — выделить фрагмент по bracket-ссылке" |
| 133 | melody_palette_usage_category = "Editor -> Code" |
| 134 | |
| 135 | [[command.slash]] |
| 136 | path = "/editor select code" |
| 137 | domain = "editor" |
| 138 | object = "code" |
| 139 | intent = "select" |
| 140 | help = "Выделить фрагмент по bracket: [M:…], [file.cs M:…] или [F:…; M:…; L:…]." |
| 141 | group = "Editor" |
| 142 | arg_tail = "required" |
| 143 | |
| 144 | # editor.reveal_code — Reveal по bracket (ADR 0131, 0130) |
| 145 | [[command]] |
| 146 | command_id = "editor.reveal_code" |
| 147 | melody_slug = "erc" |
| 148 | melody_shape = "parametric" |
| 149 | melody_tail_signature = "<code_ref:bracket>" |
| 150 | melody_wire_class = "bracket_code_ref" |
| 151 | melody_chord_commit = "enter" |
| 152 | melody_palette_usage_hint = "c:erc:[M:Method] — показать фрагмент (transient highlight)" |
| 153 | melody_palette_usage_category = "Editor -> Code" |
| 154 | |
| 155 | [[command.slash]] |
| 156 | path = "/editor reveal code" |
| 157 | domain = "editor" |
| 158 | object = "code" |
| 159 | intent = "reveal" |
| 160 | help = "Показать фрагмент по bracket без изменения selection." |
| 161 | group = "Editor" |
| 162 | arg_tail = "required" |
| 163 | |
| 164 | # ============================================================================== |
| 165 | # Forge Lens (ADR 0158, 0159) |
| 166 | # ============================================================================== |
| 167 | |
| 168 | # ============================================================================== |
| 169 | # forge.artifact.goto — slash path from forge capabilities overlay (ADR 0160); |
| 170 | # MCP handler remains in IdeCommands.Forge (was forge_lens.open). |
| 171 | # ============================================================================== |
| 172 | |
| 173 | # attach_selection — прикрепить выделение в редакторе (ADR 0128) |
| 174 | [[command]] |
| 175 | command_id = "intercom.attach_selection" |
| 176 | melody_slug = "ias" |
| 177 | melody_shape = "simple" |
| 178 | melody_palette_usage_hint = "c:ias — прикрепить выделение в Intercom composer" |
| 179 | melody_palette_usage_category = "Intercom -> Attach" |
| 180 | |
| 181 | [[command.slash]] |
| 182 | path = "/intercom attach selection" |
| 183 | domain = "intercom" |
| 184 | object = "attach" |
| 185 | intent = "selection" |
| 186 | help = "Прикрепить текущее выделение в редакторе к черновику сообщения." |
| 187 | group = "Intercom" |
| 188 | kind = "intercom" |
| 189 | intercom_handler = "attach_selection" |
| 190 | arg_tail = "none" |
| 191 | |
| 192 | # attach_scope — syntax scope @ caret (ADR 0128 H0b) |
| 193 | [[command]] |
| 194 | command_id = "intercom.attach_scope" |
| 195 | melody_slug = "isc" |
| 196 | melody_shape = "simple" |
| 197 | melody_palette_usage_hint = "c:isc — прикрепить syntax scope @ caret" |
| 198 | melody_palette_usage_category = "Intercom -> Attach" |
| 199 | |
| 200 | [[command.slash]] |
| 201 | path = "/intercom attach scope" |
| 202 | domain = "intercom" |
| 203 | object = "attach" |
| 204 | intent = "scope" |
| 205 | help = "Прикрепить innermost for/if/while @ каретке." |
| 206 | group = "Intercom" |
| 207 | kind = "intercom" |
| 208 | intercom_handler = "attach_scope" |
| 209 | arg_tail = "none" |
| 210 | |
| 211 | # attach_file — файл или диапазон строк (ADR 0128) |
| 212 | [[command]] |
| 213 | |
| 214 | [[command.slash]] |
| 215 | path = "/intercom attach file" |
| 216 | domain = "intercom" |
| 217 | object = "attach" |
| 218 | intent = "file" |
| 219 | help = "Прикрепить файл: /attach file <path> [start] [end]." |
| 220 | group = "Intercom" |
| 221 | kind = "intercom" |
| 222 | intercom_handler = "attach_file" |
| 223 | completion = "workspace_files" |
| 224 | arg_tail = "required" |
| 225 | |
| 226 | # ============================================================================== |
| 227 | # Intercom |
| 228 | # ============================================================================== |
| 229 | |
| 230 | # chat_export_readable — Экспорт чата в Markdown. (/export) |
| 231 | [[command]] |
| 232 | command_id = "chat_export_readable" |
| 233 | melody_slug = "cex" |
| 234 | melody_shape = "simple" |
| 235 | |
| 236 | [[command.slash]] |
| 237 | path = "/export" |
| 238 | domain = "export" |
| 239 | help = "Экспорт чата в Markdown." |
| 240 | group = "Intercom" |
| 241 | |
| 242 | # chat_get_product_spine — Показать текущий spine (JSON). (/spine show) |
| 243 | [[command]] |
| 244 | command_id = "chat_get_product_spine" |
| 245 | |
| 246 | [[command.slash]] |
| 247 | path = "/intercom spine show" |
| 248 | domain = "intercom" |
| 249 | object = "spine" |
| 250 | intent = "show" |
| 251 | help = "Показать текущий spine (JSON)." |
| 252 | group = "Intercom" |
| 253 | |
| 254 | # chat_open_selected_thread — Открыть detail выбранной темы. (/open) |
| 255 | [[command]] |
| 256 | command_id = "chat_open_selected_thread" |
| 257 | melody_slug = "ato" |
| 258 | melody_shape = "simple" |
| 259 | |
| 260 | [[command.slash]] |
| 261 | path = "/open" |
| 262 | domain = "open" |
| 263 | help = "Открыть detail выбранной темы." |
| 264 | group = "Intercom" |
| 265 | |
| 266 | # chat_select_next_message — c:amn (c:amn) |
| 267 | [[command]] |
| 268 | command_id = "chat_select_next_message" |
| 269 | melody_slug = "amn" |
| 270 | melody_shape = "simple" |
| 271 | |
| 272 | [[command.slash]] |
| 273 | path = "/intercom message next" |
| 274 | domain = "intercom" |
| 275 | object = "message" |
| 276 | intent = "next" |
| 277 | help = "Следующее сообщение в detail-ленте." |
| 278 | group = "Intercom" |
| 279 | |
| 280 | # chat_select_next_thread — Следующая тема в overview. (/thread next) |
| 281 | [[command]] |
| 282 | command_id = "chat_select_next_thread" |
| 283 | melody_slug = "atn" |
| 284 | melody_shape = "simple" |
| 285 | |
| 286 | [[command.slash]] |
| 287 | path = "/intercom topic next" |
| 288 | domain = "intercom" |
| 289 | object = "topic" |
| 290 | intent = "next" |
| 291 | help = "Следующая тема в overview." |
| 292 | group = "Intercom" |
| 293 | |
| 294 | # chat_select_prev_message — c:amp (c:amp) |
| 295 | [[command]] |
| 296 | command_id = "chat_select_prev_message" |
| 297 | melody_slug = "amp" |
| 298 | melody_shape = "simple" |
| 299 | |
| 300 | [[command.slash]] |
| 301 | path = "/intercom message prev" |
| 302 | domain = "intercom" |
| 303 | object = "message" |
| 304 | intent = "prev" |
| 305 | help = "Предыдущее сообщение в detail-ленте." |
| 306 | group = "Intercom" |
| 307 | |
| 308 | # chat_select_prev_thread — Предыдущая тема в overview. (/thread prev) |
| 309 | [[command]] |
| 310 | command_id = "chat_select_prev_thread" |
| 311 | melody_slug = "atp" |
| 312 | melody_shape = "simple" |
| 313 | |
| 314 | [[command.slash]] |
| 315 | path = "/intercom topic prev" |
| 316 | domain = "intercom" |
| 317 | object = "topic" |
| 318 | intent = "prev" |
| 319 | help = "Предыдущая тема в overview." |
| 320 | group = "Intercom" |
| 321 | |
| 322 | # chat_set_product_spine — Обновить product spine (хвост — focus). (/spine set) |
| 323 | [[command]] |
| 324 | command_id = "chat_set_product_spine" |
| 325 | |
| 326 | [[command.slash]] |
| 327 | path = "/intercom spine set" |
| 328 | domain = "intercom" |
| 329 | object = "spine" |
| 330 | intent = "set" |
| 331 | help = "Обновить product spine (хвост — focus)." |
| 332 | group = "Intercom" |
| 333 | arg_tail = "required" |
| 334 | |
| 335 | # chat_show_thread_overview — Показать картотеку тем. (/overview) |
| 336 | [[command]] |
| 337 | command_id = "chat_show_thread_overview" |
| 338 | melody_slug = "atb" |
| 339 | melody_shape = "simple" |
| 340 | |
| 341 | [[command.slash]] |
| 342 | path = "/intercom overview" |
| 343 | domain = "intercom" |
| 344 | intent = "overview" |
| 345 | help = "Показать картотеку тем." |
| 346 | group = "Intercom" |
| 347 | |
| 348 | # chat_toggle_product_spine_in_agent_context — Spine в контексте агента: вкл/выкл. (/spine toggle) |
| 349 | [[command]] |
| 350 | command_id = "chat_toggle_product_spine_in_agent_context" |
| 351 | |
| 352 | [[command.slash]] |
| 353 | path = "/intercom spine toggle" |
| 354 | domain = "intercom" |
| 355 | object = "spine" |
| 356 | intent = "toggle" |
| 357 | help = "Spine в контексте агента: вкл/выкл." |
| 358 | group = "Intercom" |
| 359 | |
| 360 | # chat_toggle_selected_thinking — c:amt (c:amt) |
| 361 | [[command]] |
| 362 | command_id = "chat_toggle_selected_thinking" |
| 363 | melody_slug = "amt" |
| 364 | melody_shape = "simple" |
| 365 | |
| 366 | # chat_toggle_show_thinking_in_history — c:amh (c:amh) |
| 367 | [[command]] |
| 368 | command_id = "chat_toggle_show_thinking_in_history" |
| 369 | melody_slug = "amh" |
| 370 | melody_shape = "simple" |
| 371 | |
| 372 | # fork_chat_thread — Новая ветка (MCP / melody ctf). Заголовок — /intercom topic create. |
| 373 | [[command]] |
| 374 | command_id = "fork_chat_thread" |
| 375 | melody_slug = "ctf" |
| 376 | melody_shape = "simple" |
| 377 | |
| 378 | # send_chat — Отправить черновик из поля ввода (как c:cs). (c:cs · /chat send) |
| 379 | [[command]] |
| 380 | command_id = "send_chat" |
| 381 | melody_slug = "cs" |
| 382 | melody_shape = "simple" |
| 383 | |
| 384 | [[command.slash]] |
| 385 | path = "/chat send" |
| 386 | domain = "chat" |
| 387 | intent = "send" |
| 388 | help = "Отправить черновик из поля ввода (как c:cs)." |
| 389 | group = "Intercom" |
| 390 | |
| 391 | # show_chat_page — Страница Chat (регион Mfd). (c:cps · /chat show) |
| 392 | [[command]] |
| 393 | command_id = "show_chat_page" |
| 394 | melody_slug = "cps" |
| 395 | melody_shape = "simple" |
| 396 | |
| 397 | [[command.slash]] |
| 398 | path = "/chat show" |
| 399 | domain = "chat" |
| 400 | intent = "show" |
| 401 | help = "Страница Chat (регион Mfd)." |
| 402 | group = "Intercom" |
| 403 | |
| 404 | # ============================================================================== |
| 405 | # Build & quality |
| 406 | # ============================================================================== |
| 407 | |
| 408 | # build — Собрать решение (structured JSON). (/build run) |
| 409 | [[command]] |
| 410 | command_id = "build" |
| 411 | |
| 412 | [[command.slash]] |
| 413 | path = "/build run" |
| 414 | domain = "solution" |
| 415 | object = "build" |
| 416 | intent = "run" |
| 417 | path_role = "alias" |
| 418 | help = "Собрать решение (structured JSON)." |
| 419 | group = "Сборка" |
| 420 | arg_tail = "none" |
| 421 | |
| 422 | # build_solution_ui — Собрать решение (вывод в панель). (/build ui) |
| 423 | [[command]] |
| 424 | command_id = "build_solution_ui" |
| 425 | melody_slug = "br" |
| 426 | melody_shape = "simple" |
| 427 | |
| 428 | [[command.slash]] |
| 429 | path = "/build ui" |
| 430 | domain = "solution" |
| 431 | object = "build" |
| 432 | intent = "ui" |
| 433 | path_role = "alias" |
| 434 | help = "Собрать решение (вывод в панель)." |
| 435 | group = "Сборка" |
| 436 | |
| 437 | # build_structured — Собрать решение (structured JSON, без UI-панели). (c:bs · /build structured) |
| 438 | [[command]] |
| 439 | command_id = "build_structured" |
| 440 | melody_slug = "bs" |
| 441 | melody_shape = "simple" |
| 442 | |
| 443 | [[command.slash]] |
| 444 | path = "/build structured" |
| 445 | domain = "solution" |
| 446 | object = "build" |
| 447 | intent = "structured" |
| 448 | path_role = "alias" |
| 449 | help = "Собрать решение (structured JSON, без UI-панели)." |
| 450 | group = "Сборка" |
| 451 | |
| 452 | # run_code_cleanup — dotnet format / code cleanup. (/format run) |
| 453 | [[command]] |
| 454 | command_id = "run_code_cleanup" |
| 455 | |
| 456 | [[command.slash]] |
| 457 | path = "/format run" |
| 458 | domain = "solution" |
| 459 | object = "format" |
| 460 | intent = "run" |
| 461 | path_role = "alias" |
| 462 | help = "dotnet format / code cleanup." |
| 463 | group = "Сборка" |
| 464 | |
| 465 | # ============================================================================== |
| 466 | # Tests |
| 467 | # ============================================================================== |
| 468 | |
| 469 | # run_affected_tests — Затронутые тесты (git changed paths). (/test affected) |
| 470 | [[command]] |
| 471 | command_id = "run_affected_tests" |
| 472 | |
| 473 | [[command.slash]] |
| 474 | path = "/test affected" |
| 475 | domain = "solution" |
| 476 | object = "test" |
| 477 | intent = "affected" |
| 478 | path_role = "alias" |
| 479 | help = "Затронутые тесты (git changed paths)." |
| 480 | group = "Тесты" |
| 481 | |
| 482 | # run_tests — Запустить тесты. (/test run) |
| 483 | [[command]] |
| 484 | command_id = "run_tests" |
| 485 | melody_slug = "bt" |
| 486 | melody_shape = "simple" |
| 487 | |
| 488 | [[command.slash]] |
| 489 | path = "/test run" |
| 490 | domain = "solution" |
| 491 | object = "test" |
| 492 | intent = "run" |
| 493 | path_role = "alias" |
| 494 | help = "Запустить тесты." |
| 495 | group = "Тесты" |
| 496 | |
| 497 | # ============================================================================== |
| 498 | # Debug |
| 499 | # ============================================================================== |
| 500 | |
| 501 | # debug_attach — Подключиться к процессу .NET. (c:da · /debug attach) |
| 502 | [[command]] |
| 503 | command_id = "debug_attach" |
| 504 | melody_slug = "da" |
| 505 | melody_shape = "simple" |
| 506 | |
| 507 | [[command.slash]] |
| 508 | path = "/debug attach" |
| 509 | domain = "solution" |
| 510 | object = "debug" |
| 511 | intent = "attach" |
| 512 | path_role = "alias" |
| 513 | help = "Подключиться к процессу .NET." |
| 514 | group = "Отладка" |
| 515 | |
| 516 | # debug_continue — Продолжить (F5). (/debug continue) |
| 517 | [[command]] |
| 518 | command_id = "debug_continue" |
| 519 | melody_slug = "dc" |
| 520 | melody_shape = "simple" |
| 521 | |
| 522 | [[command.slash]] |
| 523 | path = "/debug continue" |
| 524 | domain = "solution" |
| 525 | object = "debug" |
| 526 | intent = "continue" |
| 527 | path_role = "alias" |
| 528 | help = "Продолжить (F5)." |
| 529 | group = "Отладка" |
| 530 | |
| 531 | # debug_launch — Запуск под отладчиком. (/debug launch) |
| 532 | [[command]] |
| 533 | command_id = "debug_launch" |
| 534 | melody_slug = "dl" |
| 535 | melody_shape = "simple" |
| 536 | |
| 537 | [[command.slash]] |
| 538 | path = "/debug launch" |
| 539 | domain = "solution" |
| 540 | object = "debug" |
| 541 | intent = "launch" |
| 542 | path_role = "alias" |
| 543 | help = "Запуск под отладчиком." |
| 544 | group = "Отладка" |
| 545 | |
| 546 | # debug_step_into — Шаг с заходом. (/debug step-into) |
| 547 | [[command]] |
| 548 | command_id = "debug_step_into" |
| 549 | melody_slug = "di" |
| 550 | melody_shape = "simple" |
| 551 | |
| 552 | [[command.slash]] |
| 553 | path = "/debug step-into" |
| 554 | domain = "solution" |
| 555 | object = "debug" |
| 556 | intent = "step-into" |
| 557 | path_role = "alias" |
| 558 | help = "Шаг с заходом." |
| 559 | group = "Отладка" |
| 560 | |
| 561 | # debug_step_out — Шаг с выходом. (/debug step-out) |
| 562 | [[command]] |
| 563 | command_id = "debug_step_out" |
| 564 | melody_slug = "df" |
| 565 | melody_shape = "simple" |
| 566 | |
| 567 | [[command.slash]] |
| 568 | path = "/debug step-out" |
| 569 | domain = "solution" |
| 570 | object = "debug" |
| 571 | intent = "step-out" |
| 572 | path_role = "alias" |
| 573 | help = "Шаг с выходом." |
| 574 | group = "Отладка" |
| 575 | |
| 576 | # debug_step_over — Шаг с обходом. (/debug step-over) |
| 577 | [[command]] |
| 578 | command_id = "debug_step_over" |
| 579 | melody_slug = "dn" |
| 580 | melody_shape = "simple" |
| 581 | |
| 582 | [[command.slash]] |
| 583 | path = "/debug step-over" |
| 584 | domain = "solution" |
| 585 | object = "debug" |
| 586 | intent = "step-over" |
| 587 | path_role = "alias" |
| 588 | help = "Шаг с обходом." |
| 589 | group = "Отладка" |
| 590 | |
| 591 | # debug_stop — Остановить сессию отладки. (/debug stop) |
| 592 | [[command]] |
| 593 | command_id = "debug_stop" |
| 594 | melody_slug = "dx" |
| 595 | melody_shape = "simple" |
| 596 | |
| 597 | [[command.slash]] |
| 598 | path = "/debug stop" |
| 599 | domain = "solution" |
| 600 | object = "debug" |
| 601 | intent = "stop" |
| 602 | path_role = "alias" |
| 603 | help = "Остановить сессию отладки." |
| 604 | group = "Отладка" |
| 605 | |
| 606 | # ============================================================================== |
| 607 | # Git |
| 608 | # ============================================================================== |
| 609 | |
| 610 | # git_branch — git branch list/create. (/git branch) |
| 611 | [[command]] |
| 612 | command_id = "git_branch" |
| 613 | |
| 614 | [[command.slash]] |
| 615 | path = "/git branch" |
| 616 | domain = "git" |
| 617 | intent = "branch" |
| 618 | help = "git branch list/create." |
| 619 | group = "Git" |
| 620 | |
| 621 | # git_commit — Коммит: хвост — сообщение (можно в кавычках: \"feat: …\"). (/git commit) |
| 622 | [[command]] |
| 623 | command_id = "git_commit" |
| 624 | melody_slug = "gc" |
| 625 | melody_shape = "simple" |
| 626 | |
| 627 | [[command.slash]] |
| 628 | path = "/git commit" |
| 629 | domain = "git" |
| 630 | intent = "commit" |
| 631 | help = "Коммит: хвост — сообщение (можно в кавычках: «feat: …»)." |
| 632 | group = "Git" |
| 633 | |
| 634 | # git_diff — git diff (опционально path в хвосте). (/git diff) |
| 635 | [[command]] |
| 636 | command_id = "git_diff" |
| 637 | |
| 638 | [[command.slash]] |
| 639 | path = "/git diff" |
| 640 | domain = "git" |
| 641 | intent = "diff" |
| 642 | help = "git diff (опционально path в хвосте)." |
| 643 | group = "Git" |
| 644 | |
| 645 | # git_fetch — git fetch. (/git fetch) |
| 646 | [[command]] |
| 647 | command_id = "git_fetch" |
| 648 | |
| 649 | [[command.slash]] |
| 650 | path = "/git fetch" |
| 651 | domain = "git" |
| 652 | intent = "fetch" |
| 653 | help = "git fetch." |
| 654 | group = "Git" |
| 655 | |
| 656 | # git_log — git log (хвост — n, напр. 20). (/git log) |
| 657 | [[command]] |
| 658 | command_id = "git_log" |
| 659 | |
| 660 | [[command.slash]] |
| 661 | path = "/git log" |
| 662 | domain = "git" |
| 663 | intent = "log" |
| 664 | help = "git log (хвост — n, напр. 20)." |
| 665 | group = "Git" |
| 666 | |
| 667 | # git_preflight — Preflight перед коммитом. (/git preflight) |
| 668 | [[command]] |
| 669 | command_id = "git_preflight" |
| 670 | |
| 671 | [[command.slash]] |
| 672 | path = "/git preflight" |
| 673 | domain = "git" |
| 674 | intent = "preflight" |
| 675 | help = "Preflight перед коммитом." |
| 676 | group = "Git" |
| 677 | |
| 678 | # git_preflight_fix_safe — Preflight + renormalize (safe). (/git preflight-fix) |
| 679 | [[command]] |
| 680 | command_id = "git_preflight_fix_safe" |
| 681 | |
| 682 | [[command.slash]] |
| 683 | path = "/git preflight-fix" |
| 684 | domain = "git" |
| 685 | intent = "preflight-fix" |
| 686 | help = "Preflight + renormalize (safe)." |
| 687 | group = "Git" |
| 688 | |
| 689 | # git_pull — git pull (--ff-only). (/git pull) |
| 690 | [[command]] |
| 691 | command_id = "git_pull" |
| 692 | |
| 693 | [[command.slash]] |
| 694 | path = "/git pull" |
| 695 | domain = "git" |
| 696 | intent = "pull" |
| 697 | help = "git pull (--ff-only)." |
| 698 | group = "Git" |
| 699 | |
| 700 | # git_push — git push. (/git push) |
| 701 | [[command]] |
| 702 | command_id = "git_push" |
| 703 | melody_slug = "gp" |
| 704 | melody_shape = "simple" |
| 705 | |
| 706 | [[command.slash]] |
| 707 | path = "/git push" |
| 708 | domain = "git" |
| 709 | intent = "push" |
| 710 | help = "git push." |
| 711 | group = "Git" |
| 712 | |
| 713 | # git_status — git status (кратко). (/git status) |
| 714 | [[command]] |
| 715 | command_id = "git_status" |
| 716 | melody_slug = "gs" |
| 717 | melody_shape = "simple" |
| 718 | |
| 719 | [[command.slash]] |
| 720 | path = "/git status" |
| 721 | domain = "git" |
| 722 | intent = "status" |
| 723 | help = "git status (кратко)." |
| 724 | group = "Git" |
| 725 | |
| 726 | # git_submodule — git submodule status/update. (/git submodule) |
| 727 | [[command]] |
| 728 | command_id = "git_submodule" |
| 729 | melody_slug = "gsu" |
| 730 | melody_shape = "simple" |
| 731 | |
| 732 | [[command.slash]] |
| 733 | path = "/git submodule" |
| 734 | domain = "git" |
| 735 | intent = "submodule" |
| 736 | help = "git submodule status/update." |
| 737 | group = "Git" |
| 738 | |
| 739 | # ============================================================================== |
| 740 | # Workspace & search |
| 741 | # ============================================================================== |
| 742 | |
| 743 | # focus_editor — Фокус в редактор. (/editor focus) |
| 744 | [[command]] |
| 745 | command_id = "focus_editor" |
| 746 | |
| 747 | [[command.slash]] |
| 748 | path = "/editor focus" |
| 749 | domain = "editor" |
| 750 | intent = "focus" |
| 751 | help = "Фокус в редактор." |
| 752 | group = "Редактор" |
| 753 | |
| 754 | # get_current_file_diagnostics — Диагностики открытого .cs. (/diagnostics show) |
| 755 | [[command]] |
| 756 | command_id = "get_current_file_diagnostics" |
| 757 | |
| 758 | [[command.slash]] |
| 759 | path = "/diagnostics show" |
| 760 | domain = "diagnostics" |
| 761 | intent = "show" |
| 762 | help = "Диагностики открытого .cs." |
| 763 | group = "Workspace" |
| 764 | |
| 765 | # get_ide_state — Сводка состояния IDE (JSON). (/state show) |
| 766 | [[command]] |
| 767 | command_id = "get_ide_state" |
| 768 | |
| 769 | [[command.slash]] |
| 770 | path = "/state show" |
| 771 | domain = "state" |
| 772 | intent = "show" |
| 773 | help = "Сводка состояния IDE (JSON)." |
| 774 | group = "Workspace" |
| 775 | |
| 776 | # open_solution_dialog — Открыть диалог выбора .sln / .slnx. (c:so · /solution open) |
| 777 | [[command]] |
| 778 | command_id = "open_solution_dialog" |
| 779 | melody_slug = "so" |
| 780 | melody_shape = "simple" |
| 781 | |
| 782 | [[command.slash]] |
| 783 | path = "/solution open" |
| 784 | domain = "solution" |
| 785 | intent = "open" |
| 786 | help = "Открыть диалог выбора .sln / .slnx." |
| 787 | group = "Workspace" |
| 788 | |
| 789 | # create_new_solution_dialog — Новое пустое решение (dotnet new sln). (/solution new) |
| 790 | [[command]] |
| 791 | command_id = "create_new_solution_dialog" |
| 792 | |
| 793 | [[command.slash]] |
| 794 | path = "/solution new" |
| 795 | domain = "solution" |
| 796 | intent = "new" |
| 797 | help = "Новое пустое решение (диалог, dotnet new sln)." |
| 798 | group = "Workspace" |
| 799 | |
| 800 | # create_project_in_solution — dotnet new + sln add (ADR 0125). (/solution new console|classlib|webapi) |
| 801 | [[command]] |
| 802 | command_id = "create_project_in_solution" |
| 803 | |
| 804 | [[command.slash]] |
| 805 | path = "/solution new console" |
| 806 | domain = "solution" |
| 807 | object = "project" |
| 808 | intent = "new" |
| 809 | path_role = "alias" |
| 810 | help = "Добавить консольный проект в открытое решение (хвост — имя)." |
| 811 | group = "Workspace" |
| 812 | |
| 813 | [[command.slash]] |
| 814 | path = "/solution new classlib" |
| 815 | help = "Добавить class library в открытое решение (хвост — имя)." |
| 816 | group = "Workspace" |
| 817 | |
| 818 | [[command.slash]] |
| 819 | path = "/solution new webapi" |
| 820 | help = "Добавить Web API в открытое решение (хвост — имя)." |
| 821 | group = "Workspace" |
| 822 | |
| 823 | # open_folder_dialog — Открыть папку как workspace. (/folder open) |
| 824 | [[command]] |
| 825 | command_id = "open_folder_dialog" |
| 826 | |
| 827 | [[command.slash]] |
| 828 | path = "/folder open" |
| 829 | domain = "folder" |
| 830 | intent = "open" |
| 831 | help = "Открыть папку как workspace (диалог)." |
| 832 | group = "Workspace" |
| 833 | |
| 834 | # load_solution — Загрузить .sln / .csproj / каталог по пути. (/solution load) |
| 835 | [[command]] |
| 836 | command_id = "load_solution" |
| 837 | |
| 838 | [[command.slash]] |
| 839 | path = "/solution load" |
| 840 | domain = "solution" |
| 841 | intent = "load" |
| 842 | help = "Загрузить решение или проект по пути (хвост — путь)." |
| 843 | group = "Workspace" |
| 844 | completion = "workspace_files" |
| 845 | auto_run_on_commit = true |
| 846 | arg_tail = "required" |
| 847 | |
| 848 | # open_file_dialog — Диалог выбора файла. (/file pick) |
| 849 | [[command]] |
| 850 | command_id = "open_file_dialog" |
| 851 | |
| 852 | [[command.slash]] |
| 853 | path = "/file pick" |
| 854 | domain = "file" |
| 855 | intent = "pick" |
| 856 | help = "Диалог выбора файла для редактора." |
| 857 | group = "Файл" |
| 858 | |
| 859 | # open_file — Открыть файл в редакторе. (/file open) |
| 860 | [[command]] |
| 861 | command_id = "open_file" |
| 862 | |
| 863 | [[command.slash]] |
| 864 | path = "/file open" |
| 865 | domain = "file" |
| 866 | intent = "open" |
| 867 | help = "Открыть файл в редакторе (хвост — путь)." |
| 868 | group = "Файл" |
| 869 | completion = "workspace_files" |
| 870 | auto_run_on_commit = true |
| 871 | arg_tail = "required" |
| 872 | |
| 873 | # search_workspace_text — Поиск по workspace (хвост — pattern). (/search) |
| 874 | [[command]] |
| 875 | command_id = "search_workspace_text" |
| 876 | |
| 877 | [[command.slash]] |
| 878 | path = "/search" |
| 879 | domain = "search" |
| 880 | help = "Поиск по workspace (хвост — pattern)." |
| 881 | group = "Workspace" |
| 882 | arg_tail = "required" |
| 883 | |
| 884 | # set_primary_work_surface — Якорь Forward: Intercom. (/intercom show, /editor show) |
| 885 | [[command]] |
| 886 | command_id = "set_primary_work_surface" |
| 887 | |
| 888 | [[command.slash]] |
| 889 | path = "/intercom show" |
| 890 | domain = "intercom" |
| 891 | intent = "show" |
| 892 | help = "Якорь Forward: Intercom." |
| 893 | group = "Intercom" |
| 894 | args = { surface = "intercom" } |
| 895 | |
| 896 | [[command.slash]] |
| 897 | path = "/editor show" |
| 898 | help = "Якорь Forward: редактор." |
| 899 | group = "Редактор" |
| 900 | args = { surface = "editor" } |
| 901 | |
| 902 | # toggle_workspace_splitters_lock — Сплиттеры рабочей области: переключить ON GND / IN AIR. (c:tol · /workspace splitters-lock) |
| 903 | [[command]] |
| 904 | command_id = "toggle_workspace_splitters_lock" |
| 905 | melody_slug = "tol" |
| 906 | melody_shape = "simple" |
| 907 | |
| 908 | [[command.slash]] |
| 909 | path = "/workspace splitters-lock" |
| 910 | domain = "workspace" |
| 911 | intent = "splitters-lock" |
| 912 | help = "Сплиттеры рабочей области: переключить ON GND / IN AIR." |
| 913 | group = "Workspace" |
| 914 | |
| 915 | # ============================================================================== |
| 916 | # Solution explorer & code navigation map |
| 917 | # ============================================================================== |
| 918 | |
| 919 | # show_solution_explorer_page — Обозреватель решения на Mfd. (/solution explorer show) |
| 920 | [[command]] |
| 921 | command_id = "show_solution_explorer_page" |
| 922 | |
| 923 | [[command.slash]] |
| 924 | path = "/solution explorer show" |
| 925 | domain = "solution" |
| 926 | object = "explorer" |
| 927 | intent = "show" |
| 928 | help = "Обозреватель решения (дерево проектов и файлов) в регионе Mfd." |
| 929 | group = "Workspace" |
| 930 | auto_run_on_commit = true |
| 931 | arg_tail = "none" |
| 932 | |
| 933 | # set_code_navigation_map_level — Уровень карты намерений PFD: file | controlFlow. (/map type file, /map type controlflow) |
| 934 | [[command]] |
| 935 | command_id = "set_code_navigation_map_level" |
| 936 | slash_group = "Карта" |
| 937 | |
| 938 | [[command.slash]] |
| 939 | path = "/map type file" |
| 940 | domain = "map" |
| 941 | object = "type" |
| 942 | intent = "set" |
| 943 | path_role = "alias" |
| 944 | help = "Карта намерений: уровень file (связанные файлы по якорю)." |
| 945 | group = "Карта" |
| 946 | auto_run_on_commit = true |
| 947 | arg_tail = "none" |
| 948 | args = { level = "file" } |
| 949 | |
| 950 | [[command.slash]] |
| 951 | path = "/map type controlflow" |
| 952 | help = "Карта намерений: уровень controlFlow (подграф потока управления)." |
| 953 | group = "Карта" |
| 954 | auto_run_on_commit = true |
| 955 | arg_tail = "none" |
| 956 | args = { level = "controlFlow" } |
| 957 | |
| 958 | # cycle_code_navigation_map_presentation — list → graph → both. (/map cycle presentation) |
| 959 | [[command]] |
| 960 | command_id = "cycle_code_navigation_map_presentation" |
| 961 | |
| 962 | [[command.slash]] |
| 963 | path = "/map cycle presentation" |
| 964 | domain = "map" |
| 965 | object = "cycle" |
| 966 | intent = "presentation" |
| 967 | help = "Карта намерений: цикл вида list / graph / both." |
| 968 | group = "Карта" |
| 969 | auto_run_on_commit = true |
| 970 | arg_tail = "none" |
| 971 | |
| 972 | # cycle_code_navigation_map_level — file ↔ controlFlow (toggle). (/map cycle level) |
| 973 | [[command]] |
| 974 | command_id = "cycle_code_navigation_map_level" |
| 975 | |
| 976 | [[command.slash]] |
| 977 | path = "/map cycle level" |
| 978 | domain = "map" |
| 979 | object = "cycle" |
| 980 | intent = "level" |
| 981 | help = "Карта намерений: переключить уровень file ↔ controlFlow." |
| 982 | group = "Карта" |
| 983 | auto_run_on_commit = true |
| 984 | arg_tail = "none" |
| 985 | |
| 986 | # cycle_code_navigation_map_detail_level — glance → normal → inspect. (/map cycle detail) |
| 987 | [[command]] |
| 988 | command_id = "cycle_code_navigation_map_detail_level" |
| 989 | |
| 990 | [[command.slash]] |
| 991 | path = "/map cycle detail" |
| 992 | domain = "map" |
| 993 | object = "cycle" |
| 994 | intent = "detail" |
| 995 | help = "Карта намерений: цикл детализации glance / normal / inspect." |
| 996 | group = "Карта" |
| 997 | auto_run_on_commit = true |
| 998 | arg_tail = "none" |
| 999 | |
| 1000 | # cycle_code_navigation_map_related_graph_layout — radial → top_down → bottom_up. (/map cycle layout) |
| 1001 | [[command]] |
| 1002 | command_id = "cycle_code_navigation_map_related_graph_layout" |
| 1003 | |
| 1004 | [[command.slash]] |
| 1005 | path = "/map cycle layout" |
| 1006 | domain = "map" |
| 1007 | object = "cycle" |
| 1008 | intent = "layout" |
| 1009 | help = "Карта намерений: цикл укладки related (radial / top_down / bottom_up)." |
| 1010 | group = "Карта" |
| 1011 | auto_run_on_commit = true |
| 1012 | arg_tail = "none" |
| 1013 | |
| 1014 | # show_pfd_region_panel — развернуть Pfd / карту. (/pfd show) |
| 1015 | [[command]] |
| 1016 | command_id = "show_pfd_region_panel" |
| 1017 | |
| 1018 | [[command.slash]] |
| 1019 | path = "/pfd show" |
| 1020 | domain = "pfd" |
| 1021 | intent = "show" |
| 1022 | help = "Развернуть регион Pfd (карта намерений)." |
| 1023 | group = "Карта" |
| 1024 | auto_run_on_commit = true |
| 1025 | arg_tail = "none" |
| 1026 | |
| 1027 | # toggle_pfd_region_expanded — свернуть/развернуть Pfd. (/pfd toggle) |
| 1028 | [[command]] |
| 1029 | command_id = "toggle_pfd_region_expanded" |
| 1030 | |
| 1031 | [[command.slash]] |
| 1032 | path = "/pfd toggle" |
| 1033 | domain = "pfd" |
| 1034 | intent = "toggle" |
| 1035 | help = "Переключить регион Pfd (карта намерений)." |
| 1036 | group = "Карта" |
| 1037 | auto_run_on_commit = true |
| 1038 | arg_tail = "none" |
| 1039 | |
| 1040 | # show_related_files_mfd_page — связанные файлы на Mfd. (/related show) |
| 1041 | [[command]] |
| 1042 | command_id = "show_related_files_mfd_page" |
| 1043 | |
| 1044 | [[command.slash]] |
| 1045 | path = "/related show" |
| 1046 | domain = "related" |
| 1047 | intent = "show" |
| 1048 | help = "Страница «Связанные файлы» (Mfd) по якорю." |
| 1049 | group = "Карта" |
| 1050 | auto_run_on_commit = true |
| 1051 | arg_tail = "none" |
| 1052 | |
| 1053 | # show_correspondence_page — Correspondence (CRS). (c:crs · /correspondence show) |
| 1054 | [[command]] |
| 1055 | command_id = "show_correspondence_page" |
| 1056 | melody_slug = "crs" |
| 1057 | melody_shape = "simple" |
| 1058 | |
| 1059 | [[command.slash]] |
| 1060 | path = "/correspondence show" |
| 1061 | domain = "correspondence" |
| 1062 | intent = "show" |
| 1063 | help = "Страница Correspondence (CRS): слои L0–L4, forward/reverse ADR." |
| 1064 | group = "Карта" |
| 1065 | auto_run_on_commit = true |
| 1066 | arg_tail = "none" |
| 1067 | |
| 1068 | # toggle_mfd_region_expanded — регион Mfd. (/mfd toggle) |
| 1069 | [[command]] |
| 1070 | command_id = "toggle_mfd_region_expanded" |
| 1071 | |
| 1072 | [[command.slash]] |
| 1073 | path = "/mfd toggle" |
| 1074 | domain = "mfd" |
| 1075 | intent = "toggle" |
| 1076 | help = "Переключить развёрнут/свёрнут регион Mfd." |
| 1077 | group = "Панели" |
| 1078 | auto_run_on_commit = true |
| 1079 | arg_tail = "none" |
| 1080 | |
| 1081 | # show_markdown_preview_page — Markdown preview на Mfd. (/preview show) |
| 1082 | [[command]] |
| 1083 | command_id = "show_markdown_preview_page" |
| 1084 | |
| 1085 | [[command.slash]] |
| 1086 | path = "/preview show" |
| 1087 | domain = "preview" |
| 1088 | intent = "show" |
| 1089 | help = "Markdown preview (страница Mfd)." |
| 1090 | group = "Панели" |
| 1091 | auto_run_on_commit = true |
| 1092 | arg_tail = "none" |
| 1093 | |
| 1094 | # toggle_build_output — вывод сборки. (/output toggle) |
| 1095 | [[command]] |
| 1096 | command_id = "toggle_build_output" |
| 1097 | |
| 1098 | [[command.slash]] |
| 1099 | path = "/output toggle" |
| 1100 | domain = "output" |
| 1101 | intent = "toggle" |
| 1102 | help = "Переключить панель вывода сборки." |
| 1103 | group = "Сборка" |
| 1104 | auto_run_on_commit = true |
| 1105 | arg_tail = "none" |
| 1106 | |
| 1107 | # hide_build_output_panel — скрыть вывод сборки. (/output hide) |
| 1108 | [[command]] |
| 1109 | command_id = "hide_build_output_panel" |
| 1110 | |
| 1111 | [[command.slash]] |
| 1112 | path = "/output hide" |
| 1113 | domain = "output" |
| 1114 | intent = "hide" |
| 1115 | help = "Скрыть панель вывода сборки." |
| 1116 | group = "Сборка" |
| 1117 | auto_run_on_commit = true |
| 1118 | arg_tail = "none" |
| 1119 | |
| 1120 | # toggle_git_panel — панель Git. (/repository toggle) |
| 1121 | [[command]] |
| 1122 | command_id = "toggle_git_panel" |
| 1123 | |
| 1124 | [[command.slash]] |
| 1125 | path = "/repository toggle" |
| 1126 | domain = "repository" |
| 1127 | intent = "toggle" |
| 1128 | help = "Переключить панель Git (SCM)." |
| 1129 | group = "Панели" |
| 1130 | auto_run_on_commit = true |
| 1131 | arg_tail = "none" |
| 1132 | |
| 1133 | # toggle_instrumentation_dock — Events/Tests/Debug dock. (/instrumentation toggle) |
| 1134 | [[command]] |
| 1135 | command_id = "toggle_instrumentation_dock" |
| 1136 | |
| 1137 | [[command.slash]] |
| 1138 | path = "/instrumentation toggle" |
| 1139 | domain = "instrumentation" |
| 1140 | intent = "toggle" |
| 1141 | help = "Переключить док инструментирования (Events/Tests/Debug)." |
| 1142 | group = "Панели" |
| 1143 | auto_run_on_commit = true |
| 1144 | arg_tail = "none" |
| 1145 | |
| 1146 | # set_single_editor_group — одна группа редакторов. (/editor layout single) |
| 1147 | [[command]] |
| 1148 | command_id = "set_single_editor_group" |
| 1149 | |
| 1150 | [[command.slash]] |
| 1151 | path = "/editor layout single" |
| 1152 | domain = "editor" |
| 1153 | object = "layout" |
| 1154 | intent = "single" |
| 1155 | help = "Одна группа редакторов (1-up)." |
| 1156 | group = "Редактор" |
| 1157 | auto_run_on_commit = true |
| 1158 | arg_tail = "none" |
| 1159 | |
| 1160 | # set_dual_editor_group — две группы. (/editor layout dual) |
| 1161 | [[command]] |
| 1162 | command_id = "set_dual_editor_group" |
| 1163 | |
| 1164 | [[command.slash]] |
| 1165 | path = "/editor layout dual" |
| 1166 | domain = "editor" |
| 1167 | object = "layout" |
| 1168 | intent = "dual" |
| 1169 | help = "Две группы редакторов (2-up)." |
| 1170 | group = "Редактор" |
| 1171 | auto_run_on_commit = true |
| 1172 | arg_tail = "none" |
| 1173 | |
| 1174 | # set_triple_editor_group — три группы. (/editor layout triple) |
| 1175 | [[command]] |
| 1176 | command_id = "set_triple_editor_group" |
| 1177 | |
| 1178 | [[command.slash]] |
| 1179 | path = "/editor layout triple" |
| 1180 | domain = "editor" |
| 1181 | object = "layout" |
| 1182 | intent = "triple" |
| 1183 | help = "Три группы редакторов (3-up)." |
| 1184 | group = "Редактор" |
| 1185 | auto_run_on_commit = true |
| 1186 | arg_tail = "none" |
| 1187 | |
| 1188 | # ============================================================================== |
| 1189 | # Panels (MFD) |
| 1190 | # ============================================================================== |
| 1191 | |
| 1192 | # set_mfd_shell_page — Показать панель вывода сборки. (/output show, /tests show, /debug show…) |
| 1193 | [[command]] |
| 1194 | command_id = "set_mfd_shell_page" |
| 1195 | slash_group = "Панели" |
| 1196 | |
| 1197 | [[command.slash]] |
| 1198 | path = "/output show" |
| 1199 | domain = "output" |
| 1200 | intent = "show" |
| 1201 | help = "Показать панель вывода сборки." |
| 1202 | group = "Сборка" |
| 1203 | args = { page = "Build" } |
| 1204 | |
| 1205 | [[command.slash]] |
| 1206 | path = "/tests show" |
| 1207 | help = "Показать панель тестов." |
| 1208 | group = "Тесты" |
| 1209 | args = { page = "Tests" } |
| 1210 | |
| 1211 | [[command.slash]] |
| 1212 | path = "/debug show" |
| 1213 | help = "Показать стек отладки." |
| 1214 | group = "Отладка" |
| 1215 | args = { page = "DebugStack" } |
| 1216 | |
| 1217 | [[command.slash]] |
| 1218 | path = "/repository show" |
| 1219 | help = "Показать панель Git (SCM)." |
| 1220 | group = "Панели" |
| 1221 | args = { page = "Git" } |
| 1222 | |
| 1223 | [[command.slash]] |
| 1224 | path = "/editor panel" |
| 1225 | help = "Страница редактора на MFD." |
| 1226 | group = "Редактор" |
| 1227 | args = { page = "Editor" } |
| 1228 | |
| 1229 | [[command.slash]] |
| 1230 | path = "/terminal show" |
| 1231 | help = "Показать терминал." |
| 1232 | group = "Панели" |
| 1233 | args = { page = "Terminal" } |
| 1234 | |
| 1235 | [[command.slash]] |
| 1236 | path = "/problems show" |
| 1237 | help = "Показать Problems." |
| 1238 | group = "Панели" |
| 1239 | args = { page = "Problems" } |
| 1240 | |
| 1241 | [[command.slash]] |
| 1242 | path = "/events show" |
| 1243 | help = "Показать события агента." |
| 1244 | group = "Панели" |
| 1245 | args = { page = "Events" } |
| 1246 | |
| 1247 | [[command.slash]] |
| 1248 | path = "/workspace show" |
| 1249 | help = "Здоровье workspace." |
| 1250 | group = "Панели" |
| 1251 | args = { page = "WorkspaceHealth" } |
| 1252 | |
| 1253 | [[command.slash]] |
| 1254 | path = "/settings show" |
| 1255 | help = "Параметры (AI, MCP, Intercom, сочетания в чате)." |
| 1256 | group = "Панели" |
| 1257 | args = { page = "AiChatSettings" } |
| 1258 | |
| 1259 | [[command.slash]] |
| 1260 | path = "/ide options show" |
| 1261 | help = "То же, что «Параметры»: страница настроек (AI, MCP, Intercom)." |
| 1262 | group = "Панели" |
| 1263 | args = { page = "AiChatSettings" } |
| 1264 | |
| 1265 | # show_environment_readiness_page — Страница готовности окружения (Environment Readiness). (c:ers · /readiness show) |
| 1266 | [[command]] |
| 1267 | command_id = "show_environment_readiness_page" |
| 1268 | melody_slug = "ers" |
| 1269 | melody_shape = "simple" |
| 1270 | |
| 1271 | [[command.slash]] |
| 1272 | path = "/readiness show" |
| 1273 | domain = "readiness" |
| 1274 | intent = "show" |
| 1275 | help = "Страница готовности окружения (Environment Readiness)." |
| 1276 | group = "Панели" |
| 1277 | |
| 1278 | # show_hybrid_index_page — Hybrid codebase index. (/index show) |
| 1279 | [[command]] |
| 1280 | command_id = "show_hybrid_index_page" |
| 1281 | melody_slug = "his" |
| 1282 | melody_shape = "simple" |
| 1283 | |
| 1284 | [[command.slash]] |
| 1285 | path = "/index show" |
| 1286 | domain = "index" |
| 1287 | intent = "show" |
| 1288 | help = "Hybrid codebase index." |
| 1289 | group = "Панели" |
| 1290 | |
| 1291 | # show_terminal_panel — c:ts (c:ts) |
| 1292 | [[command]] |
| 1293 | command_id = "show_terminal_panel" |
| 1294 | melody_slug = "ts" |
| 1295 | melody_shape = "simple" |
| 1296 | |
| 1297 | # show_web_ai_portal_page — Открыть Web AI Portal; опционально URL (как c:wai:…). Без UR… (/portal open) |
| 1298 | [[command]] |
| 1299 | command_id = "show_web_ai_portal_page" |
| 1300 | melody_slug = "wai" |
| 1301 | melody_shape = "parametric" |
| 1302 | melody_show_usage_hint_if_bare_slug = false |
| 1303 | melody_tail_signature = "<url:url>" |
| 1304 | melody_wire_class = "url_remainder" |
| 1305 | melody_chord_commit = "enter" |
| 1306 | melody_palette_hint_slug = "wai-url" |
| 1307 | melody_palette_usage_hint = "c:wai:<адрес> - веб-портал AI; адрес можно без схемы (или c:wai: для страницы по умолчанию)" |
| 1308 | melody_palette_usage_category = "Web AI Portal" |
| 1309 | |
| 1310 | [[command.slash]] |
| 1311 | path = "/portal open" |
| 1312 | domain = "portal" |
| 1313 | intent = "open" |
| 1314 | help = "Открыть Web AI Portal; опционально URL (как c:wai:…). Без URL — страница по умолчанию." |
| 1315 | group = "Web AI Portal" |
| 1316 | arg_tail = "optional" |
| 1317 | |
| 1318 | # ============================================================================== |
| 1319 | # Intercom inspect (local report) |
| 1320 | # ============================================================================== |
| 1321 | |
| 1322 | [[command]] |
| 1323 | [[command.slash]] |
| 1324 | path = "/intercom topic list" |
| 1325 | domain = "intercom" |
| 1326 | object = "topic" |
| 1327 | intent = "list" |
| 1328 | help = "Интерактивный список тем в ленте (клик — открыть). Текст для агента: /topic list text." |
| 1329 | group = "Intercom" |
| 1330 | kind = "intercom" |
| 1331 | intercom_handler = "topic_list" |
| 1332 | |
| 1333 | [[command]] |
| 1334 | [[command.slash]] |
| 1335 | path = "/intercom topic list text" |
| 1336 | domain = "intercom" |
| 1337 | object = "topic" |
| 1338 | intent = "list_text" |
| 1339 | help = "Текстовый список тем (для агента): main, active, число сообщений." |
| 1340 | group = "Intercom" |
| 1341 | kind = "report" |
| 1342 | report_handler = "topic_list_text" |
| 1343 | |
| 1344 | [[command]] |
| 1345 | [[command.slash]] |
| 1346 | path = "/intercom topic tree" |
| 1347 | domain = "intercom" |
| 1348 | object = "topic" |
| 1349 | intent = "tree" |
| 1350 | help = "Интерактивное дерево тем в ленте (клик — открыть). Текст: /topic tree text." |
| 1351 | group = "Intercom" |
| 1352 | kind = "intercom" |
| 1353 | intercom_handler = "topic_tree" |
| 1354 | |
| 1355 | [[command]] |
| 1356 | [[command.slash]] |
| 1357 | path = "/intercom topic tree text" |
| 1358 | domain = "intercom" |
| 1359 | object = "topic" |
| 1360 | intent = "tree_text" |
| 1361 | help = "Текстовое дерево веток (fork) с числом сообщений." |
| 1362 | group = "Intercom" |
| 1363 | kind = "report" |
| 1364 | report_handler = "topic_tree_text" |
| 1365 | |
| 1366 | [[command]] |
| 1367 | [[command.slash]] |
| 1368 | path = "/intercom topic create" |
| 1369 | domain = "intercom" |
| 1370 | object = "topic" |
| 1371 | intent = "create" |
| 1372 | help = "Новая тема с заголовком: /topic create <название>." |
| 1373 | group = "Intercom" |
| 1374 | kind = "intercom" |
| 1375 | intercom_handler = "topic_create" |
| 1376 | arg_tail = "required" |
| 1377 | |
| 1378 | [[command]] |
| 1379 | [[command.slash]] |
| 1380 | path = "/intercom topic rename" |
| 1381 | domain = "intercom" |
| 1382 | object = "topic" |
| 1383 | intent = "rename" |
| 1384 | help = "Переименовать текущую тему: /topic rename <название>." |
| 1385 | group = "Intercom" |
| 1386 | kind = "intercom" |
| 1387 | intercom_handler = "topic_rename" |
| 1388 | arg_tail = "required" |
| 1389 | |
| 1390 | [[command]] |
| 1391 | [[command.slash]] |
| 1392 | path = "/intercom spine list" |
| 1393 | domain = "intercom" |
| 1394 | object = "spine" |
| 1395 | intent = "list" |
| 1396 | help = "Product spine: линия, фокус, вехи (список)." |
| 1397 | group = "Intercom" |
| 1398 | kind = "report" |
| 1399 | report_handler = "spine_list" |
| 1400 | |
| 1401 | [[command]] |
| 1402 | [[command.slash]] |
| 1403 | path = "/intercom spine tree" |
| 1404 | domain = "intercom" |
| 1405 | object = "spine" |
| 1406 | intent = "tree" |
| 1407 | help = "Product spine: линия → фокус → вехи (дерево)." |
| 1408 | group = "Intercom" |
| 1409 | kind = "report" |
| 1410 | report_handler = "spine_tree" |
| 1411 | |
| 1412 | [[command]] |
| 1413 | [[command.slash]] |
| 1414 | path = "/intercom sedm scope" |
| 1415 | domain = "intercom" |
| 1416 | object = "sedm" |
| 1417 | intent = "scope" |
| 1418 | help = "SEDM scope strip: context + intent + decision one-liner." |
| 1419 | group = "Intercom" |
| 1420 | kind = "report" |
| 1421 | report_handler = "sedm_scope_text" |
| 1422 | |
| 1423 | [[command]] |
| 1424 | [[command.slash]] |
| 1425 | path = "/intercom sedm detail" |
| 1426 | domain = "intercom" |
| 1427 | object = "sedm" |
| 1428 | intent = "detail" |
| 1429 | help = "SEDM: scope strip + timeline cards активной workline." |
| 1430 | group = "Intercom" |
| 1431 | kind = "report" |
| 1432 | report_handler = "sedm_scope_detail" |
| 1433 | |
| 1434 | # chat_get_sedm_scope — JSON scope strip (MCP) |
| 1435 | [[command]] |
| 1436 | command_id = "chat_get_sedm_scope" |
| 1437 | |
| 1438 | [[command.slash]] |
| 1439 | path = "/intercom sedm show" |
| 1440 | domain = "intercom" |
| 1441 | object = "sedm" |
| 1442 | intent = "show" |
| 1443 | help = "SEDM scope strip (JSON)." |
| 1444 | group = "Intercom" |
| 1445 | |
| 1446 | # chat_record_sedm_intent — Intent card T1 (MCP) |
| 1447 | [[command]] |
| 1448 | command_id = "chat_record_sedm_intent" |
| 1449 | |
| 1450 | # chat_record_sedm_decision — Decision record (MCP) |
| 1451 | [[command]] |
| 1452 | command_id = "chat_record_sedm_decision" |
| 1453 | |
| 1454 | [[command]] |
| 1455 | [[command.slash]] |
| 1456 | path = "/intercom topic cards" |
| 1457 | domain = "intercom" |
| 1458 | object = "topic" |
| 1459 | intent = "cards" |
| 1460 | help = "Картотека тем (overview): карточки тем и spine; drill-in — /topic open." |
| 1461 | group = "Intercom" |
| 1462 | kind = "intercom" |
| 1463 | intercom_handler = "topic_cards" |
| 1464 | auto_run_on_commit = true |
| 1465 | auto_run_requires_args = false |
| 1466 | arg_tail = "none" |
| 1467 | |
| 1468 | [[command]] |
| 1469 | [[command.slash]] |
| 1470 | path = "/intercom topic open" |
| 1471 | domain = "intercom" |
| 1472 | object = "topic" |
| 1473 | intent = "open" |
| 1474 | help = "Открыть тему (detail): подсказки «id · заголовок»; аргумент — короткий id, заголовок или пусто — выбранная/активная." |
| 1475 | group = "Intercom" |
| 1476 | kind = "intercom" |
| 1477 | intercom_handler = "topic_open" |
| 1478 | completion = "session_topics" |
| 1479 | auto_run_on_commit = true |
| 1480 | auto_run_requires_args = false |
| 1481 | arg_tail = "optional" |
| 1482 | |
| 1483 | [[command]] |
| 1484 | [[command.slash]] |
| 1485 | path = "/intercom spine open" |
| 1486 | domain = "intercom" |
| 1487 | object = "spine" |
| 1488 | intent = "open" |
| 1489 | help = "Картотека (overview); то же, что /intercom topic cards." |
| 1490 | group = "Intercom" |
| 1491 | kind = "intercom" |
| 1492 | intercom_handler = "spine_open" |
| 1493 | auto_run_on_commit = true |
| 1494 | auto_run_requires_args = false |
| 1495 | arg_tail = "optional" |
| 1496 | |
| 1497 | [[command]] |
| 1498 | [[command.slash]] |
| 1499 | path = "/intercom message select" |
| 1500 | domain = "intercom" |
| 1501 | object = "message" |
| 1502 | intent = "select" |
| 1503 | help = "Выбрать сообщение по gutter (1-based): n, «n m» или «n:m» (как /editor line select); активно — конец диапазона." |
| 1504 | group = "Intercom" |
| 1505 | kind = "intercom" |
| 1506 | intercom_handler = "message_select" |
| 1507 | arg_tail = "required" |
| 1508 | |
| 1509 | [[command]] |
| 1510 | [[command.slash]] |
| 1511 | path = "/intercom message select clear" |
| 1512 | domain = "intercom" |
| 1513 | object = "message" |
| 1514 | intent = "select_clear" |
| 1515 | help = "Сбросить подсветку gutter-выбора и активное сообщение в detail-ленте." |
| 1516 | group = "Intercom" |
| 1517 | kind = "intercom" |
| 1518 | intercom_handler = "message_select_clear" |
| 1519 | |
| 1520 | [[command]] |
| 1521 | [[command.slash]] |
| 1522 | path = "/intercom message find" |
| 1523 | domain = "intercom" |
| 1524 | object = "message" |
| 1525 | intent = "find" |
| 1526 | help = "Сообщения ветки по коду (inferred из attach): selection, L:10-20, [M:…]." |
| 1527 | group = "Intercom" |
| 1528 | kind = "intercom" |
| 1529 | intercom_handler = "message_find" |
| 1530 | arg_tail = "required" |
| 1531 | |
| 1532 | [[command]] |
| 1533 | [[command.slash]] |
| 1534 | path = "/intercom message relate" |
| 1535 | domain = "intercom" |
| 1536 | object = "message" |
| 1537 | intent = "relate" |
| 1538 | help = "Связать диапазон gutter (#n или n:m) с кодом: «3:5 relate selection»; в лог — AttachmentAnchor, не голые строки." |
| 1539 | group = "Intercom" |
| 1540 | kind = "intercom" |
| 1541 | intercom_handler = "message_relate" |
| 1542 | arg_tail = "required" |
| 1543 | |
| 1544 | [[command]] |
| 1545 | [[command.slash]] |
| 1546 | path = "/intercom message anchors list" |
| 1547 | domain = "intercom" |
| 1548 | object = "message" |
| 1549 | intent = "anchors_list" |
| 1550 | help = "Якоря выбранного сообщения и черновика composer: a:id, статус resolve, путь. Без hit-test — затем /anchor peek <id>." |
| 1551 | group = "Intercom" |
| 1552 | kind = "intercom" |
| 1553 | intercom_handler = "message_anchors_list" |
| 1554 | |
| 1555 | [[command]] |
| 1556 | [[command.slash]] |
| 1557 | path = "/anchor peek" |
| 1558 | domain = "intercom" |
| 1559 | object = "anchor" |
| 1560 | intent = "peek" |
| 1561 | path_role = "alias" |
| 1562 | help = "Reveal вложения: № якоря (#1…) выбранного сообщения или 8 hex (⟦a:…⟧, list). Пример: /anchor peek 1" |
| 1563 | group = "Intercom" |
| 1564 | kind = "intercom" |
| 1565 | intercom_handler = "anchor_peek" |
| 1566 | completion = "message_anchors" |
| 1567 | arg_tail = "required" |
| 1568 | |
| 1569 | [[command.slash]] |
| 1570 | path = "/intercom anchor peek" |
| 1571 | help = "То же, что /anchor peek — reveal вложения по № или 8 hex." |
| 1572 | group = "Intercom" |
| 1573 | kind = "intercom" |
| 1574 | intercom_handler = "anchor_peek" |
| 1575 | completion = "message_anchors" |
| 1576 | arg_tail = "required" |
| 1577 | |
| 1578 | [[command]] |
| 1579 | [[command.slash]] |
| 1580 | path = "/intercom server status" |
| 1581 | domain = "intercom" |
| 1582 | object = "server" |
| 1583 | intent = "status" |
| 1584 | help = "Статус локального intercom-service, /health и transport." |
| 1585 | group = "Intercom" |
| 1586 | kind = "intercom" |
| 1587 | intercom_handler = "server_status" |
| 1588 | |
| 1589 | [[command]] |
| 1590 | [[command.slash]] |
| 1591 | path = "/intercom server start" |
| 1592 | domain = "intercom" |
| 1593 | object = "server" |
| 1594 | intent = "start" |
| 1595 | help = "Запустить reference intercom-service (dotnet run). Опционально base URL." |
| 1596 | group = "Intercom" |
| 1597 | kind = "intercom" |
| 1598 | intercom_handler = "server_start" |
| 1599 | arg_tail = "optional" |
| 1600 | |
| 1601 | [[command]] |
| 1602 | [[command.slash]] |
| 1603 | path = "/intercom server stop" |
| 1604 | domain = "intercom" |
| 1605 | object = "server" |
| 1606 | intent = "stop" |
| 1607 | help = "Остановить intercom-service, запущенный из CIDE." |
| 1608 | group = "Intercom" |
| 1609 | kind = "intercom" |
| 1610 | intercom_handler = "server_stop" |
| 1611 | |
| 1612 | [[command]] |
| 1613 | [[command.slash]] |
| 1614 | path = "/intercom team members" |
| 1615 | domain = "intercom" |
| 1616 | object = "team" |
| 1617 | intent = "members" |
| 1618 | help = "Список участников team (member_id, role, display name)." |
| 1619 | group = "Intercom" |
| 1620 | kind = "intercom" |
| 1621 | intercom_handler = "team_members" |
| 1622 | |
| 1623 | [[command]] |
| 1624 | [[command.slash]] |
| 1625 | path = "/intercom team invite" |
| 1626 | domain = "intercom" |
| 1627 | object = "team" |
| 1628 | intent = "invite" |
| 1629 | help = "Создать invite token. Хвост: team_role (member, guest, admin…)." |
| 1630 | group = "Intercom" |
| 1631 | kind = "intercom" |
| 1632 | intercom_handler = "team_invite" |
| 1633 | arg_tail = "required" |
| 1634 | |
| 1635 | [[command]] |
| 1636 | [[command.slash]] |
| 1637 | path = "/intercom team seed" |
| 1638 | domain = "intercom" |
| 1639 | object = "team" |
| 1640 | intent = "seed" |
| 1641 | help = "Seed project+repo для resolve (ADR 0147 §1b). Хвост: project_id." |
| 1642 | group = "Intercom" |
| 1643 | kind = "intercom" |
| 1644 | intercom_handler = "team_seed_project" |
| 1645 | arg_tail = "required" |
| 1646 | |
| 1647 | [[command]] |
| 1648 | [[command.slash]] |
| 1649 | path = "/intercom agent list" |
| 1650 | domain = "intercom" |
| 1651 | object = "agent" |
| 1652 | intent = "list" |
| 1653 | help = "Список agent accounts в team (* — выбранный для fan-out)." |
| 1654 | group = "Intercom" |
| 1655 | kind = "intercom" |
| 1656 | intercom_handler = "agent_list" |
| 1657 | |
| 1658 | [[command]] |
| 1659 | [[command.slash]] |
| 1660 | path = "/intercom agent provision" |
| 1661 | domain = "intercom" |
| 1662 | object = "agent" |
| 1663 | intent = "provision" |
| 1664 | help = "Создать agent account. Хвост: display name." |
| 1665 | group = "Intercom" |
| 1666 | kind = "intercom" |
| 1667 | intercom_handler = "agent_provision" |
| 1668 | arg_tail = "required" |
| 1669 | |
| 1670 | [[command]] |
| 1671 | [[command.slash]] |
| 1672 | path = "/intercom agent select" |
| 1673 | domain = "intercom" |
| 1674 | object = "agent" |
| 1675 | intent = "select" |
| 1676 | help = "Выбрать agent member_id для transport fan-out." |
| 1677 | group = "Intercom" |
| 1678 | kind = "intercom" |
| 1679 | intercom_handler = "agent_select" |
| 1680 | arg_tail = "required" |
| 1681 | |
| 1682 | # ============================================================================== |
| 1683 | # Agent environment (ADR 0148 W1) |
| 1684 | # ============================================================================== |
| 1685 | |
| 1686 | [[command.slash]] |
| 1687 | path = "/agent verify" |
| 1688 | domain = "agent" |
| 1689 | intent = "verify" |
| 1690 | help = "Verification ladder (build + tests по policy). Хвост: minimal | standard | strict | ci_parity." |
| 1691 | group = "Agent" |
| 1692 | kind = "agent" |
| 1693 | arg_tail = "optional" |
| 1694 | |
| 1695 | [[command.slash]] |
| 1696 | path = "/agent cancel" |
| 1697 | help = "Отменить активный verify run." |
| 1698 | group = "Agent" |
| 1699 | kind = "agent" |
| 1700 | arg_tail = "none" |
| 1701 | |
| 1702 | [[command.slash]] |
| 1703 | path = "/agent status" |
| 1704 | help = "Статус AEE: активный verify, snapshot_id." |
| 1705 | group = "Agent" |
| 1706 | kind = "agent" |
| 1707 | arg_tail = "none" |
| 1708 | |
| 1709 | [[command.slash]] |
| 1710 | path = "/agent last" |
| 1711 | help = "Time accounting последнего verify run." |
| 1712 | group = "Agent" |
| 1713 | kind = "agent" |
| 1714 | arg_tail = "none" |
| 1715 | |
| 1716 | [[command.slash]] |
| 1717 | path = "/agent sandbox" |
| 1718 | help = "Подготовить sandbox substrate. Хвост: agent_ephemeral | agent_worktree | in_place." |
| 1719 | group = "Agent" |
| 1720 | kind = "agent" |
| 1721 | arg_tail = "optional" |
| 1722 | |
| 1723 | # ============================================================================== |
| 1724 | # Cockpit (ADR 0138) |
| 1725 | # ============================================================================== |
| 1726 | |
| 1727 | # cockpit.open_command_line — Cockpit Command Line (slash REPL над composer). (c:ccl · Ctrl+K /) |
| 1728 | [[command]] |
| 1729 | command_id = "cockpit.open_command_line" |
| 1730 | melody_slug = "ccl" |
| 1731 | melody_shape = "simple" |
| 1732 | melody_palette_usage_hint = "c:ccl или Ctrl+K затем / — полоса slash REPL (Enter — выполнить, Esc — закрыть)" |
| 1733 | melody_palette_usage_category = "Cockpit" |
| 1734 | |
| 1735 | [[command.slash]] |
| 1736 | path = "/cockpit command line" |
| 1737 | domain = "cockpit" |
| 1738 | object = "command" |
| 1739 | intent = "line" |
| 1740 | help = "Открыть Cockpit Command Line над composer (не путать с composer и не с MFD Terminal)." |
| 1741 | group = "Cockpit" |
| 1742 | |
| 1743 | # ============================================================================== |
| 1744 | # Help |
| 1745 | # ============================================================================== |
| 1746 | |
| 1747 | # local — Справка Intercom (локально, не в общий канал). (/help) |
| 1748 | [[command]] |
| 1749 | |
| 1750 | [[command.slash]] |
| 1751 | path = "/help" |
| 1752 | domain = "help" |
| 1753 | help = "Справка Intercom: темы, [вложения], слэши; /help <namespace> — только команды." |
| 1754 | group = "Справка" |
| 1755 | kind = "help" |
| 1756 | audience = "self" |
| 1757 | arg_tail = "optional" |