Azure / Azure/azure-dev

[EPIC] H: Environment Health & Diagnostics

Open
#7,851 0 comments 0 reactions 0 assignees View on GitHub
area/core-cli epic
Dominant language
Go
Stars
569
Forks
364
Avg merge
2d 19h
Merged PRs (30d)
136

Description

## Problem / User Value

When a developer's environment is broken — tools not on PATH, wrong permissions, version conflicts — the debugging experience is painful. Error messages from individual tools are inconsistent and unhelpful. A comprehensive "flutter doctor"-style health check diagnoses the full environment in one command, with actionable remediation hints, so developers can fix problems themselves instead of filing support tickets.

## Definition of Done

`azd tool doctor` runs all health checks with ✓/✗/!/☠ output using flutter doctor's 5 validation types and 3 message types. 3-tier exit codes (0=healthy, 1=error, 2=warnings) improve on flutter's binary model for CI scripting. Agent-host plugin management research spike completed with feasibility assessment.

## Tasks

- [ ] **H-1: Implement `azd tool doctor` command** (L) — Flutter doctor-inspired validation with 5 types: success `[✓]`, partial `[!]`, notAvailable `[!]`, missing `[✗]`, crash `[☠]`. 3 sub-item message types: information (•), hint (!), error (✗). Summary mode (default) and verbose mode (`-v`). **3-tier exit codes** (improvement over flutter): 0=healthy, 1=error (missing/crash), 2=warnings (partial/notAvailable). Checks: PATH correctness, tool binary integrity, permissions, config validity, network connectivity, package manager health. Remediation hints included. JSON output with documented schema.
- AC: All 5 validation types displayed; 3 exit codes (0/1/2); summary vs verbose modes; remediation hints; `--output json` with schema; colors per azd style guide
- Traces to: F1
- [ ] **H-2: Agent-host plugin management (research spike)** (M) — Research spike for installing Azure plugins across multiple agent hosts (GitHub Copilot, Gemini, Claude). Each host has different plugin mechanisms. Produce feasibility assessment and design proposal.
- Traces to: F9

> **Note:** H-1 and H-2 are high-level task descriptions. Detailed issue bodies will be written when P1 work is complete.

## Sequencing

- **H-1** depends on A-3 (detector) and A-5 (ToolManager)
- **H-2** has no code dependencies — research can start independently
- H-1 and H-2 can run in parallel

## Dependencies

- **Epic A (Core Engine):** A-3 (ToolDetector), A-5 (ToolManager)
- P2 — begins after all P1 epics are complete
- Can run **in parallel with Epic G**

## Discussion Traceability

| Discussion Item | Task |
|---|---|
| F1 (doctor) | H-1 |
| F9 (agent-host plugins) | H-2 |

## Design References

- `docs/design/azd-tool/plan.md` — Phase 4b
- `docs/design/azd-tool-architecture.md` — §6.8 (doctor command), exit code model
- `docs/research-flutter-doctor-ux.md` — flutter doctor validation model research
- `docs/design/azd-tool/todos.md` — H-1, H-2 details

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.