microsoft/hve-core

Public

mirrored fromhttps://github.com/microsoft/hve-coreAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
hve-core-v2.3.6

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

docs/templates/adr-template-solutions.md

267lines · modepreview

---
title: ADR Title
description: '[The title should be unique within the library, provide a longer title if needed to differentiate with other ADRs]'
author: Name of author(s)
ms.date: 2025-06-06
ms.topic: architecture
estimated_reading_time: 2
keywords:
  - architecture
  - design
  - implementation
  - workspaces
  - edge
  - solution
  - adr
  - library
---

## Overview

This template provides a structured approach to documenting architectural decisions. Use the YAML drafting guide below to organize your thoughts before writing the full ADR.

## YAML Drafting Guide

Use this comprehensive YAML template to draft your ADR before writing the full documentation:

```yaml
# ADR Drafting Worksheet - Complete this first to organize your thinking
adr:
  title: "[Clear, descriptive title of the decision]"
  description: "[Brief summary of what is being decided]"
  author: "[Your name or team name]"
  date: "[YYYY-MM-DD]"

  context:
    scenario: "[What business scenario or use case is this for?]"
    problem: "[What specific problem are you solving?]"
    background: "[Additional context that readers need to understand]"

    stakeholders:
      primary: "[Who is most affected by this decision?]"
      secondary: "[Who else needs to know about this decision?]"

    constraints:
      technical:
        - "[Platform limitations]"
        - "[Integration requirements]"
        - "[Performance requirements]"
      business:
        - "[Budget constraints]"
        - "[Timeline requirements]"
        - "[Regulatory compliance]"
      organizational:
        - "[Team expertise]"
        - "[Operational capabilities]"
        - "[Strategic direction]"

    success_criteria:
      quantitative:
        - "[Measurable performance target]"
        - "[Cost target]"
        - "[Timeline goal]"
      qualitative:
        - "[Maintainability goal]"
        - "[Security posture]"
        - "[Developer experience]"

  decision:
    summary: "[One clear sentence stating what was decided]"
    rationale: "[Why this decision was made - key reasoning]"
    implementation_approach: "[High-level approach to implementing this decision]"

  decision_drivers:
    - name: "[Driver 1 - e.g., Performance Requirements]"
      description: "[Why this factor influenced the decision]"
      weight: "[High/Medium/Low priority]"
    - name: "[Driver 2 - e.g., Cost Optimization]"
      description: "[Why this factor influenced the decision]"
      weight: "[High/Medium/Low priority]"
    - name: "[Driver 3 - e.g., Team Expertise]"
      description: "[Why this factor influenced the decision]"
      weight: "[High/Medium/Low priority]"

  considered_options:
    - name: "[Option 1 - e.g., Technology A]"
      description: "[Brief description of what this option entails]"

      technical_details:
        - "[Architecture approach]"
        - "[Key components]"
        - "[Integration requirements]"

      pros:
        - "[Specific advantage 1]"
        - "[Specific advantage 2]"
        - "[Quantifiable benefit]"

      cons:
        - "[Specific disadvantage 1]"
        - "[Specific disadvantage 2]"
        - "[Quantifiable limitation]"

      risks:
        - risk: "[Risk description]"
          probability: "[High/Medium/Low]"
          impact: "[High/Medium/Low]"
          mitigation: "[How to address this risk]"

      dependencies:
        - "[External dependency]"
        - "[Internal capability requirement]"
        - "[Timeline dependency]"

      costs:
        initial: "[Implementation cost]"
        ongoing: "[Operational cost]"
        effort: "[Development effort required]"

    - name: "[Option 2 - e.g., Technology B]"
      description: "[Brief description]"
      technical_details: ["[Key technical aspects]"]
      pros: ["[Advantages]"]
      cons: ["[Disadvantages]"]
      risks:
        - risk: "[Risk]"
          probability: "[Level]"
          impact: "[Level]"
          mitigation: "[Mitigation strategy]"
      dependencies: ["[Dependencies]"]
      costs:
        initial: "[Cost]"
        ongoing: "[Cost]"
        effort: "[Effort]"

  comparison_matrix:
    criteria:
      - name: "[Evaluation criteria 1]"
        weight: "[High/Medium/Low]"
        option_1_score: "[Score/Rating]"
        option_2_score: "[Score/Rating]"
      - name: "[Evaluation criteria 2]"
        weight: "[High/Medium/Low]"
        option_1_score: "[Score/Rating]"
        option_2_score: "[Score/Rating]"

  consequences:
    positive:
      - "[Positive outcome 1]"
      - "[Positive outcome 2]"
    negative:
      - "[Negative impact 1]"
      - "[Negative impact 2]"
    neutral:
      - "[Neutral change 1]"
      - "[Neutral change 2]"
    risks:
      - "[Risk that remains after decision]"
      - "[Monitoring requirement]"

  implementation:
    phases:
      - "[Phase 1 description]"
      - "[Phase 2 description]"
    timeline: "[Expected timeline]"
    resources_required: "[Team/budget/tools needed]"
    success_metrics: "[How to measure success]"

  future_considerations:
    monitoring:
      - "[What to watch for]"
      - "[When to re-evaluate]"
    evolution:
      - "[Future technology to consider]"
      - "[Upcoming decisions that may affect this]"
    triggers_for_review:
      - "[Condition that would trigger re-evaluation]"
      - "[Timeline for regular review]"
```

---

## ADR Document Structure

After completing the YAML drafting guide above, use this structure for your final ADR:

### Status

[Mark the most applicable status for tracking purposes]

- [ ] Draft
- [ ] Proposed
- [ ] Accepted
- [ ] Deprecated

### Context

**Scenario Context**: [Describe the business scenario or use case]

**Problem Statement**: [Clearly articulate the problem being solved]

**Constraints and Requirements**: [Document technical, business, and organizational boundaries]

**Success Criteria**: [Define measurable outcomes for success]

### Decision

**Decision Statement**: [Clear, single sentence stating what was decided]

**Decision Rationale**: [Explain the reasoning behind this decision]

**Implementation Approach**: [Outline how this decision will be implemented]

### Decision Drivers (optional)

List the key factors that influenced this decision:

- [Driver 1]
- [Driver 2]
- [Driver 3]

### Considered Options (optional)

**Option Evaluation Framework**: [For each option considered, provide:]

#### Option [Number]: [Option Name]

**Description**: [What this option entails]

**Technical Details**: [Architecture, components, requirements]

**Pros**: [Specific advantages with supporting detail]

**Cons**: [Specific disadvantages with impact assessment]

**Risks and Mitigation**: [Risks with probability, impact, and mitigation strategies]

**Dependencies**: [External dependencies and prerequisites]

**Cost Analysis**: [Implementation and operational costs]

### Comparison Matrix (optional)

| Criteria     | Option 1 | Option 2 | Option 3 | Weight  |
|--------------|----------|----------|----------|---------|
| [Criteria 1] | [Score]  | [Score]  | [Score]  | [H/M/L] |
| [Criteria 2] | [Score]  | [Score]  | [Score]  | [H/M/L] |

### Consequences

**Positive Consequences**: [Benefits and positive outcomes]

**Negative Consequences**: [Risks and negative impacts]

**Neutral Consequences**: [Other changes or considerations]

### Future Considerations (optional)

**Monitoring and Evolution**: [What to watch for and when to re-evaluate]

**Review Triggers**: [Conditions that would require re-evaluation of this decision]

---

<!-- markdownlint-disable MD036 -->
*🤖 Crafted with precision by ✨Copilot following brilliant human instruction,
then carefully refined by our team of discerning human reviewers.*
<!-- markdownlint-enable MD036 -->