@mytechtoday/augment-extensions 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/augment-extensions/visual-design/CHANGELOG.md +132 -0
  2. package/augment-extensions/visual-design/README.md +255 -0
  3. package/augment-extensions/visual-design/__tests__/README.md +119 -0
  4. package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -0
  5. package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -0
  6. package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -0
  7. package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -0
  8. package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -0
  9. package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -0
  10. package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -0
  11. package/augment-extensions/visual-design/domains/other/os-application.ts +156 -0
  12. package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -0
  13. package/augment-extensions/visual-design/domains/other/web-app.ts +157 -0
  14. package/augment-extensions/visual-design/domains/other/website.ts +161 -0
  15. package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -0
  16. package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -0
  17. package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -0
  18. package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -0
  19. package/augment-extensions/visual-design/examples/README.md +97 -0
  20. package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -0
  21. package/augment-extensions/visual-design/examples/basic-usage.md +216 -0
  22. package/augment-extensions/visual-design/examples/domain-workflows.md +257 -0
  23. package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -0
  24. package/augment-extensions/visual-design/module.json +78 -0
  25. package/augment-extensions/visual-design/style-selector.ts +177 -0
  26. package/augment-extensions/visual-design/types.ts +302 -0
  27. package/augment-extensions/visual-design/visual-design-core.ts +469 -0
  28. package/augment-extensions/workflows/adr-support/README.md +227 -0
  29. package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -0
  30. package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -0
  31. package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -0
  32. package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -0
  33. package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -0
  34. package/augment-extensions/workflows/adr-support/module.json +112 -0
  35. package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -0
  36. package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -0
  37. package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -0
  38. package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -0
  39. package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -0
  40. package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -0
  41. package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -0
  42. package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -0
  43. package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -0
  44. package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -0
  45. package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -0
  46. package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -0
  47. package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -0
  48. package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -0
  49. package/cli/dist/utils/__tests__/adr-validator.example.d.ts +6 -0
  50. package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +1 -0
  51. package/cli/dist/utils/__tests__/adr-validator.example.js +148 -0
  52. package/cli/dist/utils/__tests__/adr-validator.example.js.map +1 -0
  53. package/cli/dist/utils/adr-validator.d.ts +65 -0
  54. package/cli/dist/utils/adr-validator.d.ts.map +1 -0
  55. package/cli/dist/utils/adr-validator.js +203 -0
  56. package/cli/dist/utils/adr-validator.js.map +1 -0
  57. package/package.json +1 -1
@@ -0,0 +1,191 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://augment-extensions.dev/schemas/adr-config.json",
4
+ "title": "ADR Configuration Schema",
5
+ "description": "JSON schema for .adr-config.json configuration file",
6
+ "type": "object",
7
+ "properties": {
8
+ "version": {
9
+ "type": "string",
10
+ "description": "Configuration schema version",
11
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
12
+ "default": "1.0.0"
13
+ },
14
+ "adrDirectory": {
15
+ "type": "string",
16
+ "description": "Directory where ADRs are stored",
17
+ "default": "docs/adr",
18
+ "pattern": "^[a-zA-Z0-9/_-]+$"
19
+ },
20
+ "defaultTemplate": {
21
+ "type": "string",
22
+ "description": "Default ADR template to use",
23
+ "enum": ["nygard", "madr-simple", "madr-elaborate", "business-case"],
24
+ "default": "madr-simple"
25
+ },
26
+ "numberingScheme": {
27
+ "type": "string",
28
+ "description": "ADR numbering scheme",
29
+ "enum": ["sequential", "date-based", "custom"],
30
+ "default": "sequential"
31
+ },
32
+ "numberingFormat": {
33
+ "type": "string",
34
+ "description": "Format for ADR numbers (e.g., '0001', 'YYYY-MM-DD')",
35
+ "default": "0000"
36
+ },
37
+ "filenameFormat": {
38
+ "type": "string",
39
+ "description": "Format for ADR filenames",
40
+ "default": "{number}-{title}.md",
41
+ "pattern": ".*\\{number\\}.*\\{title\\}.*\\.md$"
42
+ },
43
+ "statusValues": {
44
+ "type": "array",
45
+ "description": "Allowed status values for ADRs",
46
+ "items": {
47
+ "type": "string"
48
+ },
49
+ "default": ["draft", "proposed", "approved", "implemented", "maintained", "superseded", "sunset"],
50
+ "minItems": 1,
51
+ "uniqueItems": true
52
+ },
53
+ "requiredMetadata": {
54
+ "type": "array",
55
+ "description": "Required metadata fields in ADR frontmatter",
56
+ "items": {
57
+ "type": "string"
58
+ },
59
+ "default": ["title", "status", "date", "deciders"],
60
+ "uniqueItems": true
61
+ },
62
+ "customMetadata": {
63
+ "type": "object",
64
+ "description": "Custom metadata fields and their types",
65
+ "additionalProperties": {
66
+ "type": "object",
67
+ "properties": {
68
+ "type": {
69
+ "type": "string",
70
+ "enum": ["string", "number", "boolean", "array", "object"]
71
+ },
72
+ "required": {
73
+ "type": "boolean",
74
+ "default": false
75
+ },
76
+ "description": {
77
+ "type": "string"
78
+ }
79
+ },
80
+ "required": ["type"]
81
+ }
82
+ },
83
+ "integrations": {
84
+ "type": "object",
85
+ "description": "Integration settings for external tools",
86
+ "properties": {
87
+ "openspec": {
88
+ "type": "object",
89
+ "properties": {
90
+ "enabled": {
91
+ "type": "boolean",
92
+ "default": true
93
+ },
94
+ "linkToSpecs": {
95
+ "type": "boolean",
96
+ "description": "Automatically link ADRs to OpenSpec specs",
97
+ "default": true
98
+ },
99
+ "updateCoordination": {
100
+ "type": "boolean",
101
+ "description": "Update coordination manifest when ADRs change",
102
+ "default": true
103
+ }
104
+ }
105
+ },
106
+ "beads": {
107
+ "type": "object",
108
+ "properties": {
109
+ "enabled": {
110
+ "type": "boolean",
111
+ "default": true
112
+ },
113
+ "createTasks": {
114
+ "type": "boolean",
115
+ "description": "Create Beads tasks for ADR implementation",
116
+ "default": false
117
+ },
118
+ "linkToIssues": {
119
+ "type": "boolean",
120
+ "description": "Link ADRs to related Beads issues",
121
+ "default": true
122
+ }
123
+ }
124
+ }
125
+ }
126
+ },
127
+ "validation": {
128
+ "type": "object",
129
+ "description": "Validation rules for ADRs",
130
+ "properties": {
131
+ "enforceMetadata": {
132
+ "type": "boolean",
133
+ "description": "Enforce required metadata fields",
134
+ "default": true
135
+ },
136
+ "enforceStatus": {
137
+ "type": "boolean",
138
+ "description": "Enforce valid status values",
139
+ "default": true
140
+ },
141
+ "maxTitleLength": {
142
+ "type": "integer",
143
+ "description": "Maximum length for ADR titles",
144
+ "minimum": 10,
145
+ "maximum": 200,
146
+ "default": 100
147
+ },
148
+ "requireContext": {
149
+ "type": "boolean",
150
+ "description": "Require Context section in ADR",
151
+ "default": true
152
+ },
153
+ "requireDecision": {
154
+ "type": "boolean",
155
+ "description": "Require Decision section in ADR",
156
+ "default": true
157
+ },
158
+ "requireConsequences": {
159
+ "type": "boolean",
160
+ "description": "Require Consequences section in ADR",
161
+ "default": true
162
+ }
163
+ }
164
+ },
165
+ "lifecycle": {
166
+ "type": "object",
167
+ "description": "ADR lifecycle management settings",
168
+ "properties": {
169
+ "reviewSchedule": {
170
+ "type": "string",
171
+ "description": "Review schedule for ADRs (e.g., 'quarterly', 'annually')",
172
+ "enum": ["monthly", "quarterly", "biannually", "annually", "none"],
173
+ "default": "quarterly"
174
+ },
175
+ "autoSupersede": {
176
+ "type": "boolean",
177
+ "description": "Automatically mark ADRs as superseded when new ADR references them",
178
+ "default": false
179
+ },
180
+ "archiveSuperseded": {
181
+ "type": "boolean",
182
+ "description": "Move superseded ADRs to archive directory",
183
+ "default": false
184
+ }
185
+ }
186
+ }
187
+ },
188
+ "required": ["version", "adrDirectory", "defaultTemplate"],
189
+ "additionalProperties": false
190
+ }
191
+
@@ -0,0 +1,172 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://augment-extensions.dev/schemas/adr-metadata.json",
4
+ "title": "ADR Metadata Schema",
5
+ "description": "JSON schema for ADR frontmatter metadata validation",
6
+ "type": "object",
7
+ "properties": {
8
+ "title": {
9
+ "type": "string",
10
+ "description": "Title of the ADR",
11
+ "minLength": 10,
12
+ "maxLength": 100
13
+ },
14
+ "status": {
15
+ "type": "string",
16
+ "description": "Current status of the ADR",
17
+ "enum": ["draft", "proposed", "approved", "implemented", "maintained", "superseded", "sunset"]
18
+ },
19
+ "date": {
20
+ "type": "string",
21
+ "description": "Date of the ADR (ISO 8601 format)",
22
+ "format": "date",
23
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
24
+ },
25
+ "deciders": {
26
+ "type": "array",
27
+ "description": "List of people who made the decision",
28
+ "items": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "minItems": 1,
33
+ "uniqueItems": true
34
+ },
35
+ "consulted": {
36
+ "type": "array",
37
+ "description": "List of people consulted for the decision",
38
+ "items": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ "uniqueItems": true
43
+ },
44
+ "informed": {
45
+ "type": "array",
46
+ "description": "List of people informed about the decision",
47
+ "items": {
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ "uniqueItems": true
52
+ },
53
+ "tags": {
54
+ "type": "array",
55
+ "description": "Tags for categorizing the ADR",
56
+ "items": {
57
+ "type": "string",
58
+ "pattern": "^[a-z0-9-]+$"
59
+ },
60
+ "uniqueItems": true
61
+ },
62
+ "supersedes": {
63
+ "type": "array",
64
+ "description": "List of ADR numbers this ADR supersedes",
65
+ "items": {
66
+ "type": "string",
67
+ "pattern": "^(\\d{4}|\\d{4}-\\d{2}-\\d{2})$"
68
+ },
69
+ "uniqueItems": true
70
+ },
71
+ "supersededBy": {
72
+ "type": "string",
73
+ "description": "ADR number that supersedes this ADR",
74
+ "pattern": "^(\\d{4}|\\d{4}-\\d{2}-\\d{2})$"
75
+ },
76
+ "relatedTo": {
77
+ "type": "array",
78
+ "description": "List of related ADR numbers",
79
+ "items": {
80
+ "type": "string",
81
+ "pattern": "^(\\d{4}|\\d{4}-\\d{2}-\\d{2})$"
82
+ },
83
+ "uniqueItems": true
84
+ },
85
+ "openspecSpecs": {
86
+ "type": "array",
87
+ "description": "Related OpenSpec specification files",
88
+ "items": {
89
+ "type": "string",
90
+ "pattern": "^openspec/specs/.*\\.md$"
91
+ },
92
+ "uniqueItems": true
93
+ },
94
+ "beadsIssues": {
95
+ "type": "array",
96
+ "description": "Related Beads issue IDs",
97
+ "items": {
98
+ "type": "string",
99
+ "pattern": "^bd-[a-z0-9]+(\\.\\d+)?$"
100
+ },
101
+ "uniqueItems": true
102
+ },
103
+ "implementationStatus": {
104
+ "type": "string",
105
+ "description": "Implementation status of the decision",
106
+ "enum": ["not-started", "in-progress", "completed", "blocked", "deferred"]
107
+ },
108
+ "reviewDate": {
109
+ "type": "string",
110
+ "description": "Next scheduled review date (ISO 8601 format)",
111
+ "format": "date",
112
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
113
+ },
114
+ "lastReviewed": {
115
+ "type": "string",
116
+ "description": "Date of last review (ISO 8601 format)",
117
+ "format": "date",
118
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
119
+ },
120
+ "impact": {
121
+ "type": "string",
122
+ "description": "Impact level of the decision",
123
+ "enum": ["low", "medium", "high", "critical"]
124
+ },
125
+ "scope": {
126
+ "type": "array",
127
+ "description": "Scope of the decision (e.g., components, modules affected)",
128
+ "items": {
129
+ "type": "string",
130
+ "minLength": 1
131
+ },
132
+ "uniqueItems": true
133
+ },
134
+ "stakeholders": {
135
+ "type": "array",
136
+ "description": "Stakeholders affected by the decision",
137
+ "items": {
138
+ "type": "string",
139
+ "minLength": 1
140
+ },
141
+ "uniqueItems": true
142
+ },
143
+ "technicalDebt": {
144
+ "type": "object",
145
+ "description": "Technical debt information",
146
+ "properties": {
147
+ "exists": {
148
+ "type": "boolean",
149
+ "description": "Whether this decision introduces technical debt"
150
+ },
151
+ "description": {
152
+ "type": "string",
153
+ "description": "Description of the technical debt"
154
+ },
155
+ "mitigationPlan": {
156
+ "type": "string",
157
+ "description": "Plan to address the technical debt"
158
+ },
159
+ "targetDate": {
160
+ "type": "string",
161
+ "description": "Target date to address the debt (ISO 8601 format)",
162
+ "format": "date",
163
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
164
+ }
165
+ },
166
+ "required": ["exists"]
167
+ }
168
+ },
169
+ "required": ["title", "status", "date", "deciders"],
170
+ "additionalProperties": true
171
+ }
172
+
@@ -0,0 +1,235 @@
1
+ # ADR-{number}: {Title}
2
+
3
+ **Status:** {Draft | Proposed | Approved | Implemented | Superseded | Deprecated}
4
+
5
+ **Date:** {YYYY-MM-DD}
6
+
7
+ **Deciders:** {List of people involved in the decision}
8
+
9
+ **Business Owner:** {Name of business stakeholder}
10
+
11
+ **Technical Story:** {Optional: Link to related issue, spec, or task}
12
+
13
+ ---
14
+
15
+ ## Executive Summary
16
+
17
+ {Provide a 2-3 sentence summary of the decision, the problem it solves, and the expected business value.}
18
+
19
+ ---
20
+
21
+ ## Business Context
22
+
23
+ ### Problem Statement
24
+
25
+ {Describe the business problem or opportunity. What pain points exist? What business goals are not being met?}
26
+
27
+ ### Current State
28
+
29
+ {Describe the current situation, including existing solutions, workarounds, and their limitations}
30
+
31
+ ### Desired State
32
+
33
+ {Describe the target state after implementing this decision. What will be different?}
34
+
35
+ ---
36
+
37
+ ## Strategic Alignment
38
+
39
+ ### Business Objectives
40
+
41
+ {How does this decision align with organizational goals?}
42
+
43
+ - {Objective 1}
44
+ - {Objective 2}
45
+ - {Objective 3}
46
+
47
+ ### Key Performance Indicators (KPIs)
48
+
49
+ {What metrics will this decision impact?}
50
+
51
+ - {KPI 1: Current value → Target value}
52
+ - {KPI 2: Current value → Target value}
53
+ - {KPI 3: Current value → Target value}
54
+
55
+ ---
56
+
57
+ ## Financial Analysis
58
+
59
+ ### Cost Breakdown
60
+
61
+ #### Initial Investment
62
+
63
+ | Category | Description | Cost |
64
+ |----------|-------------|------|
65
+ | Development | {Description} | ${amount} |
66
+ | Infrastructure | {Description} | ${amount} |
67
+ | Licensing | {Description} | ${amount} |
68
+ | Training | {Description} | ${amount} |
69
+ | **Total Initial** | | **${total}** |
70
+
71
+ #### Ongoing Costs (Annual)
72
+
73
+ | Category | Description | Cost |
74
+ |----------|-------------|------|
75
+ | Maintenance | {Description} | ${amount}/year |
76
+ | Support | {Description} | ${amount}/year |
77
+ | Licensing | {Description} | ${amount}/year |
78
+ | Infrastructure | {Description} | ${amount}/year |
79
+ | **Total Annual** | | **${total}/year** |
80
+
81
+ ### Return on Investment (ROI)
82
+
83
+ #### Expected Benefits (Annual)
84
+
85
+ | Benefit | Description | Value |
86
+ |---------|-------------|-------|
87
+ | Revenue Increase | {Description} | ${amount}/year |
88
+ | Cost Savings | {Description} | ${amount}/year |
89
+ | Efficiency Gains | {Description} | ${amount}/year |
90
+ | **Total Annual Benefit** | | **${total}/year** |
91
+
92
+ #### ROI Calculation
93
+
94
+ - **Total Initial Investment:** ${amount}
95
+ - **Annual Net Benefit:** ${annual benefit - annual cost}
96
+ - **Payback Period:** {X months/years}
97
+ - **3-Year ROI:** {percentage}%
98
+ - **5-Year ROI:** {percentage}%
99
+
100
+ ### Risk-Adjusted ROI
101
+
102
+ {Consider risks and their probability/impact on ROI}
103
+
104
+ - **Best Case:** {ROI percentage}%
105
+ - **Expected Case:** {ROI percentage}%
106
+ - **Worst Case:** {ROI percentage}%
107
+
108
+ ---
109
+
110
+ ## Risk Assessment
111
+
112
+ ### Business Risks
113
+
114
+ | Risk | Probability | Impact | Mitigation Strategy |
115
+ |------|-------------|--------|---------------------|
116
+ | {Risk 1} | {Low/Med/High} | {Low/Med/High} | {Strategy} |
117
+ | {Risk 2} | {Low/Med/High} | {Low/Med/High} | {Strategy} |
118
+ | {Risk 3} | {Low/Med/High} | {Low/Med/High} | {Strategy} |
119
+
120
+ ### Technical Risks
121
+
122
+ | Risk | Probability | Impact | Mitigation Strategy |
123
+ |------|-------------|--------|---------------------|
124
+ | {Risk 1} | {Low/Med/High} | {Low/Med/High} | {Strategy} |
125
+ | {Risk 2} | {Low/Med/High} | {Low/Med/High} | {Strategy} |
126
+
127
+ ---
128
+
129
+ ## Alternatives Considered
130
+
131
+ ### Option 1: {Option Name}
132
+
133
+ **Cost:** ${amount}
134
+ **ROI:** {percentage}%
135
+ **Pros:** {Brief list}
136
+ **Cons:** {Brief list}
137
+ **Why not chosen:** {Reason}
138
+
139
+ ### Option 2: {Option Name}
140
+
141
+ **Cost:** ${amount}
142
+ **ROI:** {percentage}%
143
+ **Pros:** {Brief list}
144
+ **Cons:** {Brief list}
145
+ **Why not chosen:** {Reason}
146
+
147
+ ### Option 3: Do Nothing
148
+
149
+ **Cost:** ${opportunity cost}
150
+ **Impact:** {Description of impact of not acting}
151
+ **Why not chosen:** {Reason}
152
+
153
+ ---
154
+
155
+ ## Decision Outcome
156
+
157
+ **Chosen option:** "{Option X}"
158
+
159
+ ### Justification
160
+
161
+ {Explain why this option provides the best business value, considering costs, benefits, risks, and strategic alignment}
162
+
163
+ ### Success Criteria
164
+
165
+ {How will we measure success?}
166
+
167
+ - {Criterion 1}
168
+ - {Criterion 2}
169
+ - {Criterion 3}
170
+
171
+ ---
172
+
173
+ ## Implementation Timeline
174
+
175
+ | Phase | Duration | Key Milestones | Cost |
176
+ |-------|----------|----------------|------|
177
+ | Phase 1: {Name} | {X weeks} | {Milestones} | ${amount} |
178
+ | Phase 2: {Name} | {X weeks} | {Milestones} | ${amount} |
179
+ | Phase 3: {Name} | {X weeks} | {Milestones} | ${amount} |
180
+
181
+ **Total Duration:** {X months}
182
+
183
+ ---
184
+
185
+ ## Stakeholder Impact
186
+
187
+ ### Internal Stakeholders
188
+
189
+ | Stakeholder | Impact | Change Required | Support Level |
190
+ |-------------|--------|-----------------|---------------|
191
+ | {Team/Dept} | {Description} | {Changes needed} | {High/Med/Low} |
192
+ | {Team/Dept} | {Description} | {Changes needed} | {High/Med/Low} |
193
+
194
+ ### External Stakeholders
195
+
196
+ | Stakeholder | Impact | Communication Plan |
197
+ |-------------|--------|--------------------|
198
+ | {Customers} | {Description} | {Plan} |
199
+ | {Partners} | {Description} | {Plan} |
200
+
201
+ ---
202
+
203
+ ## Approval
204
+
205
+ ### Recommendation
206
+
207
+ {Clear recommendation with supporting rationale}
208
+
209
+ ### Required Approvals
210
+
211
+ - [ ] {Business Owner}
212
+ - [ ] {Finance}
213
+ - [ ] {Technical Lead}
214
+ - [ ] {Executive Sponsor}
215
+
216
+ ### Approval Date
217
+
218
+ {Date when decision was approved}
219
+
220
+ ---
221
+
222
+ ## More Information
223
+
224
+ ### References
225
+
226
+ - {Link to market research}
227
+ - {Link to competitive analysis}
228
+ - {Link to technical feasibility study}
229
+
230
+ ### Appendices
231
+
232
+ - {Link to detailed financial model}
233
+ - {Link to risk analysis}
234
+ - {Link to stakeholder analysis}
235
+