| 1 | # Playbook: tooling — build, test, debug (troubleshooting v1) |
| 2 | |
| 3 | > **Контур:** A · мир **hci.ux-dx** (сквозной tooling для .NET и IDE) · kb-public |
| 4 | > **Канон:** этот файл; легаси-редирект: [`../../tooling-debug-playbook.md`](../../tooling-debug-playbook.md) |
| 5 | > **Roslyn depth:** [`../../software-dotnet-tooling-roslyn/troubleshooting/`](../../software-dotnet-tooling-roslyn/troubleshooting/) |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Purpose |
| 10 | |
| 11 | Build, test, diagnostics, debugging across .NET projects; кратчайший цикл обратной связи. |
| 12 | |
| 13 | --- |
| 14 | |
| 15 | ## Симптом → куда |
| 16 | |
| 17 | | Симптом | Действие | |
| 18 | |---------|----------| |
| 19 | | CSxxxx / analyzer / code fix | Roslyn troubleshooting (см. ссылку выше) | |
| 20 | | `Author identity unknown` / empty ident | § Git identity ниже | |
| 21 | | Flaky test / build break / exe locked | § Build/test + Debugging workflow | |
| 22 | | «Тормозит» runtime .NET | [`../../software-dotnet-csharp/troubleshooting/`](../../software-dotnet-csharp/troubleshooting/) | |
| 23 | | Avalonia runtime-only bug | [`../../software-dotnet-avalonia/troubleshooting/`](../../software-dotnet-avalonia/troubleshooting/) | |
| 24 | |
| 25 | --- |
| 26 | |
| 27 | ## Evidence-based loop |
| 28 | |
| 29 | - **Fact:** failing signal (build, test, runtime). |
| 30 | - **Hypothesis:** smallest corrective action. |
| 31 | - **Check:** focused rebuild/retest/debug. |
| 32 | - **Decision:** close/escalate threshold upfront. |
| 33 | |
| 34 | --- |
| 35 | |
| 36 | ## Operational baseline |
| 37 | |
| 38 | - Shortest loop first: lint/diagnostics → build → test. |
| 39 | - Isolate scope: file → project → solution. |
| 40 | - Reproducible debug state (breakpoints, target, args, env). |
| 41 | |
| 42 | --- |
| 43 | |
| 44 | ## Build and test |
| 45 | |
| 46 | - Build failures before optional refactors. |
| 47 | - Flaky tests tracked, not ignored. |
| 48 | - CI aligned with local where practical. |
| 49 | |
| 50 | --- |
| 51 | |
| 52 | ## Git identity triage |
| 53 | |
| 54 | | Step | Command / check | |
| 55 | |------|-------------------| |
| 56 | | 1 | `git config --show-origin --get user.name` / `user.email` | |
| 57 | | 2 | `git var GIT_AUTHOR_IDENT` / `GIT_COMMITTER_IDENT` | |
| 58 | | 3 | Env: `GIT_AUTHOR_*`, `GIT_COMMITTER_*`, `EMAIL` | |
| 59 | | Workaround | `git -c user.name=… -c user.email=… commit …` | |
| 60 | |
| 61 | Подробнее Git workflow: [`../../collaboration-git-pr/playbook-git-workflow-v1.md`](../../collaboration-git-pr/playbook-git-workflow-v1.md). |
| 62 | |
| 63 | --- |
| 64 | |
| 65 | ## Debugging workflow |
| 66 | |
| 67 | 1. Minimal repro. |
| 68 | 2. Expected vs actual before deep step. |
| 69 | 3. Verify after each step-out/continue. |
| 70 | 4. One root-cause note at end. |
| 71 | |
| 72 | **MCP dotnet-debug:** `debug_continue` / `debug_stop`; не taskkill netcoredbg. |
| 73 | |
| 74 | --- |
| 75 | |
| 76 | ## Metrics & revisit |
| 77 | |
| 78 | MTTR root cause; restore pipeline time; reopen rate; documented RCA %. |
| 79 | Revisit if cycle times up, repeated failure class, low-signal debug sessions. |
| 80 | |
| 81 | --- |
| 82 | |
| 83 | ## Как дополнять |
| 84 | |
| 85 | Product-specific tooling — `work/projects/…`; сюда — только обобщённые паттерны. |
| 86 | |
| 87 | |