@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.
- package/augment-extensions/visual-design/CHANGELOG.md +132 -0
- package/augment-extensions/visual-design/README.md +255 -0
- package/augment-extensions/visual-design/__tests__/README.md +119 -0
- package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -0
- package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -0
- package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -0
- package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -0
- package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -0
- package/augment-extensions/visual-design/domains/other/os-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -0
- package/augment-extensions/visual-design/domains/other/web-app.ts +157 -0
- package/augment-extensions/visual-design/domains/other/website.ts +161 -0
- package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -0
- package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -0
- package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -0
- package/augment-extensions/visual-design/examples/README.md +97 -0
- package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -0
- package/augment-extensions/visual-design/examples/basic-usage.md +216 -0
- package/augment-extensions/visual-design/examples/domain-workflows.md +257 -0
- package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -0
- package/augment-extensions/visual-design/module.json +78 -0
- package/augment-extensions/visual-design/style-selector.ts +177 -0
- package/augment-extensions/visual-design/types.ts +302 -0
- package/augment-extensions/visual-design/visual-design-core.ts +469 -0
- package/augment-extensions/workflows/adr-support/README.md +227 -0
- package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -0
- package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -0
- package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -0
- package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -0
- package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -0
- package/augment-extensions/workflows/adr-support/module.json +112 -0
- package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -0
- package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -0
- package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -0
- package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -0
- package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -0
- package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -0
- package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -0
- package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -0
- package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -0
- package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -0
- package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -0
- package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -0
- package/cli/dist/utils/__tests__/adr-validator.example.d.ts +6 -0
- package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +1 -0
- package/cli/dist/utils/__tests__/adr-validator.example.js +148 -0
- package/cli/dist/utils/__tests__/adr-validator.example.js.map +1 -0
- package/cli/dist/utils/adr-validator.d.ts +65 -0
- package/cli/dist/utils/adr-validator.d.ts.map +1 -0
- package/cli/dist/utils/adr-validator.js +203 -0
- package/cli/dist/utils/adr-validator.js.map +1 -0
- 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
|
+
|