This directory records the significant architectural decisions made on inferscope: the context that motivated each one, the decision itself, the alternatives considered, and the consequences.
ADRs are immutable once accepted. If a decision is later reversed, a new ADR is added that supersedes the old one; the old ADR's status is updated to point at its successor, but its text is left intact as a historical record.
| ID | Title | Status |
|---|---|---|
| ADR-001 | Profiling Scope for v0.1.0 | Accepted |
| ADR-002 | Token Timing Representation | Accepted |
| ADR-003 | sysmon Scope and Temporal Correlation | Accepted |
| ADR-004 | Report Metrics and Output Format | Accepted |
| ADR-005 | GPU Resource Sampling | Accepted |
| ADR-006 | Process Tree Aggregation for Sysmon | Accepted |
| ADR-007 | Per-Device GPU Metrics in the Report Schema | Accepted |
| ADR-008 | OpenTelemetry Export of Inferscope Reports | Accepted |
| ADR-009 | Sample-Only Mode | Accepted |
| ADR-010 | Energy Consumption and Efficiency Metrics | Accepted |
| ADR-011 | Prometheus vLLM Metric Source for KV-Cache Hit Rate | Accepted |
| ADR-012 | Per-Phase Energy Attribution (Prefill vs Decode) | Accepted |
| ADR-013 | Trajectory-Level Energy and Cache Attribution for Agentic Workloads | Accepted |
| ADR-014 | Multi-Engine Metric Schema (vLLM + SGLang) | Accepted |
ADRs follow the structure proposed by Michael Nygard in Documenting Architecture Decisions:
- Status — Proposed / Accepted / Deprecated / Superseded
- Context — the situation that requires a decision
- Decision — what was decided
- Consequences — positive and negative outcomes
- Alternatives Considered — what was not chosen, and why
New ADRs are numbered sequentially (002-..., 003-...).