--- name: edt-mcp-project-runtime-debug description: Collect bounded runtime and debugger evidence for a 1C project through EDT-MCP, including launch, breakpoints, variables, event log, and cleanup. --- # EDT-MCP runtime debugging ## Purpose and trigger Use this skill when one runtime question needs authorized launch, Attach, debugger, variable, expression, or event-log evidence. ## Operating rule Read and apply [the common operating rules](../COMMON.md) before this workflow. ## Task boundary Resolve one exact project, application, launch/Attach configuration, and runtime question. Skip launch and debugger work entirely when bounded `get_event_log` evidence alone answers the question. ## Primary workflow 1. For event-log-only work, resolve the authorized log source, apply current server-side bounds from help, call `get_event_log`, and report any paging, format, location, disclosure, or completeness gap. 2. Otherwise resolve the target with `get_applications`, `list_configurations`, `debug_status`, and `list_breakpoints`; distinguish pre-existing breakpoints from task-owned ones, and settle update, external-change, restart, credential, and data-disclosure authority before launching. 3. Use `set_infobase_credentials` only for the confirmed target and only when authorized. Decide from `debug_status` whether to use an existing session or start a fresh one before installing the smallest `set_breakpoint`. Use an existing session directly only when it is the exact authorized target and no fresh-start effect is required; install the breakpoint and continue without `launch`, or stop. For a fresh launch or Attach, set the breakpoint before starting it and retain task-owned identifiers. When that exact session is already running and no breakpoint line is known, `debug_pause` stops it at the next BSL statement it runs instead. 4. If a preflight race makes `launch` report `alreadyRunning=true`, do not claim that launch, update, restart, or startup options ran. Refresh the uniquely identified target, resume only a suspension caused by the task's breakpoint, remove task-owned temporary state, and stop unless a fresh relaunch was explicitly authorized. Never resume an ambiguous or unrelated suspension. 5. Settle any in-progress or unknown launch outcome under current help and a bounded caller-approved deadline before removing a task-owned breakpoint, treating the launch as absent, or completing. Before `debug_pause`, `wait_for_break`, `get_variables`, `evaluate_expression`, `set_variable`, `step`, or `resume`, require current help and status to identify one unambiguous intended debug target. Otherwise remove only task-owned temporary state and stop. 6. Collect only the bounded evidence needed. Treat expression evaluation and variable mutation as potentially state-changing. 7. Resume execution if this task suspended it. A `debug_pause` that returned `paused: false` stays armed: catch it with `wait_for_break` and resume it, or report the armed request. Call `remove_breakpoint`, and use `terminate_launch` only for a uniquely identified, task-owned launch whose termination is authorized. ## Authority rule Infobase update/restructure, external-change handling, credentials, restart, Attach, sensitive-data disclosure, expression/state mutation, and launch termination each require authority for the exact target and effect. ## Stop rule Stop on ambiguous debugger target, missing launch/Attach route, unapproved side effects or disclosure, shared-session risk, or uncontrolled BSL execution. ## Completion signal Report the exact runtime target and mode, decisive frame/value/log evidence, server-side bounds and partial-result caveats, any state mutation, and cleanup of task-owned suspensions, breakpoints, and launches.