dxcomplete 0.1.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/.env.example +11 -0
- package/README.md +215 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +212 -0
- package/dist/http/server.d.ts +7 -0
- package/dist/http/server.js +236 -0
- package/dist/http/service.d.ts +7 -0
- package/dist/http/service.js +725 -0
- package/dist/init.d.ts +13 -0
- package/dist/init.js +128 -0
- package/dist/install-manifest.d.ts +25 -0
- package/dist/install-manifest.js +96 -0
- package/dist/mcp/docs.d.ts +98 -0
- package/dist/mcp/docs.js +438 -0
- package/dist/mcp/server.d.ts +20 -0
- package/dist/mcp/server.js +2345 -0
- package/dist/package-root.d.ts +2 -0
- package/dist/package-root.js +28 -0
- package/dist/runtime/actor.d.ts +14 -0
- package/dist/runtime/actor.js +42 -0
- package/dist/runtime/auth.d.ts +162 -0
- package/dist/runtime/auth.js +394 -0
- package/dist/runtime/check.d.ts +7 -0
- package/dist/runtime/check.js +16 -0
- package/dist/runtime/config.d.ts +17 -0
- package/dist/runtime/config.js +93 -0
- package/dist/runtime/mongo.d.ts +9 -0
- package/dist/runtime/mongo.js +56 -0
- package/dist/runtime/records.d.ts +336 -0
- package/dist/runtime/records.js +1463 -0
- package/dist/runtime/workspace.d.ts +19 -0
- package/dist/runtime/workspace.js +102 -0
- package/dist/upgrade.d.ts +20 -0
- package/dist/upgrade.js +246 -0
- package/dist/validate.d.ts +10 -0
- package/dist/validate.js +119 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.js +12 -0
- package/docs/codex-integration.md +29 -0
- package/docs/cost-model.md +61 -0
- package/docs/decision-basis.md +57 -0
- package/docs/diagrams.md +31 -0
- package/docs/glossary.md +147 -0
- package/docs/index.md +60 -0
- package/docs/model.md +110 -0
- package/docs/open-questions.md +61 -0
- package/docs/roles.md +42 -0
- package/docs/taxonomy.md +96 -0
- package/docs/workflows.md +60 -0
- package/package.json +62 -0
- package/scripts/check-env-surface.mjs +136 -0
- package/scripts/check-public-copy.mjs +263 -0
- package/scripts/check-service-boundary.mjs +63 -0
- package/scripts/dogfood-work-order.mjs +506 -0
- package/scripts/smoke-mcp-http.mjs +3572 -0
- package/src/cli.ts +268 -0
- package/src/http/server.ts +314 -0
- package/src/http/service.ts +934 -0
- package/src/init.ts +227 -0
- package/src/install-manifest.ts +144 -0
- package/src/mcp/docs.ts +557 -0
- package/src/mcp/server.ts +3525 -0
- package/src/package-root.ts +31 -0
- package/src/runtime/actor.ts +61 -0
- package/src/runtime/auth.ts +673 -0
- package/src/runtime/check.ts +18 -0
- package/src/runtime/config.ts +128 -0
- package/src/runtime/mongo.ts +89 -0
- package/src/runtime/records.ts +2303 -0
- package/src/runtime/workspace.ts +155 -0
- package/src/upgrade.ts +356 -0
- package/src/validate.ts +139 -0
- package/src/version.ts +16 -0
- package/templates/github/workflows/dxcomplete.yml +16 -0
- package/templates/next/pages/api/auth/callback/google.js +12 -0
- package/templates/next/pages/api/dxcomplete/[...path].js +12 -0
- package/templates/next/pages/api/dxcomplete.js +12 -0
- package/templates/next/pages/api/mcp.js +12 -0
- package/templates/next/vercel.json +18 -0
- package/templates/process/README.md +38 -0
- package/templates/process/controls.yml +113 -0
- package/templates/process/cost-model.yml +71 -0
- package/templates/process/decision-basis.yml +53 -0
- package/templates/process/decisions/.gitkeep +1 -0
- package/templates/process/diagrams/00-decision-basis.mmd +24 -0
- package/templates/process/diagrams/00-overview.mmd +20 -0
- package/templates/process/diagrams/01-intake-triage.mmd +20 -0
- package/templates/process/diagrams/02-product-definition.mmd +14 -0
- package/templates/process/diagrams/03-engineering-execution.mmd +15 -0
- package/templates/process/diagrams/04-qa-verification.mmd +12 -0
- package/templates/process/diagrams/05-product-validation.mmd +12 -0
- package/templates/process/diagrams/06-change-release-control.mmd +16 -0
- package/templates/process/diagrams/07-deployment-operations.mmd +16 -0
- package/templates/process/diagrams/08-support-incident-management.mmd +16 -0
- package/templates/process/diagrams/09-problem-improvement.mmd +14 -0
- package/templates/process/diagrams/10-risk-control-management.mmd +14 -0
- package/templates/process/diagrams/11-audit-evidence-capture.mmd +13 -0
- package/templates/process/evidence/.gitkeep +1 -0
- package/templates/process/risks/.gitkeep +1 -0
- package/templates/process/roles.yml +96 -0
- package/templates/process/taxonomy.yml +514 -0
- package/templates/process/workflows.yml +210 -0
- package/website/.well-known/oauth-authorization-server +22 -0
- package/website/.well-known/oauth-protected-resource/api/dxcomplete/mcp +10 -0
- package/website/.well-known/oauth-protected-resource/api/mcp +10 -0
- package/website/README.md +12 -0
- package/website/app.js +36 -0
- package/website/flow.html +85 -0
- package/website/glossary.html +280 -0
- package/website/index.html +90 -0
- package/website/objects.html +287 -0
- package/website/outcomes.html +117 -0
- package/website/phase-build.html +101 -0
- package/website/phase-elicit.html +102 -0
- package/website/phase-go-live.html +103 -0
- package/website/phase-measure.html +93 -0
- package/website/phase-operate.html +102 -0
- package/website/phase-orient.html +92 -0
- package/website/phase-weigh.html +98 -0
- package/website/roles.html +52 -0
- package/website/styles.css +1169 -0
package/src/mcp/docs.ts
ADDED
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
export const DOC_SOURCE_BASE_URL = "https://dxcomplete.directeddomains.com";
|
|
2
|
+
|
|
3
|
+
export const DOC_PAGE_IDS = ["start_here", "outcomes", "flow", "records", "roles", "glossary"] as const;
|
|
4
|
+
|
|
5
|
+
export type DocPageId = (typeof DOC_PAGE_IDS)[number];
|
|
6
|
+
|
|
7
|
+
type BaseDocPage = {
|
|
8
|
+
page: DocPageId;
|
|
9
|
+
title: string;
|
|
10
|
+
sourceUrl: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type StartHereDoc = BaseDocPage & {
|
|
15
|
+
page: "start_here";
|
|
16
|
+
phases: Array<{
|
|
17
|
+
number: string;
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type OutcomesDoc = BaseDocPage & {
|
|
24
|
+
page: "outcomes";
|
|
25
|
+
outcomes: Array<{
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
}>;
|
|
29
|
+
transformationValue: Array<{
|
|
30
|
+
state: string;
|
|
31
|
+
focus: string;
|
|
32
|
+
description: string;
|
|
33
|
+
}>;
|
|
34
|
+
goodLooksLike: Array<{
|
|
35
|
+
statement: string;
|
|
36
|
+
description: string;
|
|
37
|
+
}>;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
type FlowDoc = BaseDocPage & {
|
|
41
|
+
page: "flow";
|
|
42
|
+
phases: Array<{
|
|
43
|
+
number: string;
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
sourceUrl: string;
|
|
47
|
+
}>;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
type RecordsDoc = BaseDocPage & {
|
|
51
|
+
page: "records";
|
|
52
|
+
routingGuidance: {
|
|
53
|
+
principle: string;
|
|
54
|
+
sharpTest: string;
|
|
55
|
+
axes: Array<{
|
|
56
|
+
name: string;
|
|
57
|
+
test: string;
|
|
58
|
+
}>;
|
|
59
|
+
routingOrder: Array<{
|
|
60
|
+
signal: string;
|
|
61
|
+
record: string;
|
|
62
|
+
}>;
|
|
63
|
+
edgeCases: string[];
|
|
64
|
+
promotion: string;
|
|
65
|
+
futureContainers: Array<{
|
|
66
|
+
name: string;
|
|
67
|
+
status: string;
|
|
68
|
+
use: string;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
groups: Array<{
|
|
72
|
+
group: string;
|
|
73
|
+
purpose: string;
|
|
74
|
+
records: Array<{
|
|
75
|
+
name: string;
|
|
76
|
+
summary: string;
|
|
77
|
+
}>;
|
|
78
|
+
}>;
|
|
79
|
+
concepts: Array<{
|
|
80
|
+
name: string;
|
|
81
|
+
summary: string;
|
|
82
|
+
}>;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
type RolesDoc = BaseDocPage & {
|
|
86
|
+
page: "roles";
|
|
87
|
+
roles: Array<{
|
|
88
|
+
name: string;
|
|
89
|
+
responsibility: string;
|
|
90
|
+
}>;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export type GlossaryTerm = {
|
|
94
|
+
term: string;
|
|
95
|
+
category: string;
|
|
96
|
+
definition: string;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
type GlossaryDoc = BaseDocPage & {
|
|
100
|
+
page: "glossary";
|
|
101
|
+
terms: GlossaryTerm[];
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export type DocPage = StartHereDoc | OutcomesDoc | FlowDoc | RecordsDoc | RolesDoc | GlossaryDoc;
|
|
105
|
+
|
|
106
|
+
export const DOC_REFERENCE: Record<DocPageId, DocPage> = {
|
|
107
|
+
start_here: {
|
|
108
|
+
page: "start_here",
|
|
109
|
+
title: "DX Complete",
|
|
110
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/index.html`,
|
|
111
|
+
summary:
|
|
112
|
+
"A practical way to decide what is worth doing, deliver it with control, run it safely, and learn from the results.",
|
|
113
|
+
phases: [
|
|
114
|
+
{
|
|
115
|
+
number: "01",
|
|
116
|
+
name: "Orient",
|
|
117
|
+
description: "Capture the desired outcome, restate expectations, and confirm how success will be recognized."
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
number: "02",
|
|
121
|
+
name: "Elicit",
|
|
122
|
+
description: "Turn expectations into requirements, dependencies, unknowns, and risk."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
number: "03",
|
|
126
|
+
name: "Weigh",
|
|
127
|
+
description: "Compare expected cost, expected value, risks, and confidence before recording a Commitment or Deferral."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
number: "04",
|
|
131
|
+
name: "Build",
|
|
132
|
+
description: "Turn committed requirements into working changes."
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
number: "05",
|
|
136
|
+
name: "Go Live",
|
|
137
|
+
description: "Prepare the change, confirm readiness, and put it into use."
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
number: "06",
|
|
141
|
+
name: "Operate",
|
|
142
|
+
description: "Run the service, help users, and respond when something goes wrong."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
number: "07",
|
|
146
|
+
name: "Measure",
|
|
147
|
+
description: "Compare expected and actual cost or benefit when data is available."
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
outcomes: {
|
|
152
|
+
page: "outcomes",
|
|
153
|
+
title: "Why DX Complete exists",
|
|
154
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/outcomes.html`,
|
|
155
|
+
summary:
|
|
156
|
+
"DX Complete gives teams a shared way to decide what is worth doing, control how it changes, run it safely, and learn from the result.",
|
|
157
|
+
outcomes: [
|
|
158
|
+
{
|
|
159
|
+
name: "Consistent operation",
|
|
160
|
+
description: "Teams use the same phases, records, roles, and handoffs to manage work and service signals."
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "Clearer decisions",
|
|
164
|
+
description: "Goals, requirements, estimates, risks, and decisions stay connected."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "Budget clarity",
|
|
168
|
+
description: "Current cost is attempted, future cost is estimated, and actual cost is captured when available."
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "Controlled change",
|
|
172
|
+
description: "Expectations, requirements, tasks, checks, changes, releases, and deployments can be followed."
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
name: "Review and compliance support",
|
|
176
|
+
description: "Important decisions, checks, approvals, releases, and measurements have a place to be recorded."
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: "Measured improvement",
|
|
180
|
+
description: "Measured results can improve future assumptions about cost, value, risk, and effort."
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
transformationValue: [
|
|
184
|
+
{
|
|
185
|
+
state: "Before",
|
|
186
|
+
focus: "Current cost and friction",
|
|
187
|
+
description: "What the existing process, service, support load, risk, delay, or manual effort costs today."
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
state: "Planned",
|
|
191
|
+
focus: "Expected cost and value",
|
|
192
|
+
description: "What the proposed change is expected to cost and what improvement it is expected to create."
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
state: "After",
|
|
196
|
+
focus: "Measured improvement",
|
|
197
|
+
description: "What changed after launch, including actual cost and benefit when those signals are available."
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
goodLooksLike: [
|
|
201
|
+
{
|
|
202
|
+
statement: "People know why work is happening.",
|
|
203
|
+
description: "The goal, problem, and requirement set are clear enough to discuss and decide."
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
statement: "Cost is visible enough to make a responsible choice.",
|
|
207
|
+
description: "Incomplete data is allowed, but unknowns and assumptions are visible."
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
statement: "Change is traceable from idea to operation.",
|
|
211
|
+
description:
|
|
212
|
+
"Records show how a request became requirements, tasks, checks, change history, release, deployment, and support history."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
statement: "Service learning feeds future work.",
|
|
216
|
+
description: "User support signals, incidents, actual cost, and measured value can improve the next decision."
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
flow: {
|
|
221
|
+
page: "flow",
|
|
222
|
+
title: "Flow",
|
|
223
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/flow.html`,
|
|
224
|
+
summary:
|
|
225
|
+
"Flow explains each phase in detail: the main steps, the roles involved, the important choices, the records used, and the handoff to the next phase.",
|
|
226
|
+
phases: [
|
|
227
|
+
{
|
|
228
|
+
number: "01",
|
|
229
|
+
name: "Orient",
|
|
230
|
+
description: "Capture the desired outcome, restate expectations, and confirm how success will be recognized.",
|
|
231
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-orient.html`
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
number: "02",
|
|
235
|
+
name: "Elicit",
|
|
236
|
+
description: "Turn expectations into requirements, dependencies, unknowns, and risk.",
|
|
237
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-elicit.html`
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
number: "03",
|
|
241
|
+
name: "Weigh",
|
|
242
|
+
description: "Compare expected cost, expected value, risks, and confidence before recording a Commitment or Deferral.",
|
|
243
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-weigh.html`
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
number: "04",
|
|
247
|
+
name: "Build",
|
|
248
|
+
description: "Turn committed requirements into working changes.",
|
|
249
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-build.html`
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
number: "05",
|
|
253
|
+
name: "Go Live",
|
|
254
|
+
description: "Prepare the change, confirm readiness, and put it into use.",
|
|
255
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-go-live.html`
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
number: "06",
|
|
259
|
+
name: "Operate",
|
|
260
|
+
description: "Run the service, help users, and respond when something goes wrong.",
|
|
261
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-operate.html`
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
number: "07",
|
|
265
|
+
name: "Measure",
|
|
266
|
+
description: "Compare expected and actual cost or benefit when data is available.",
|
|
267
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/phase-measure.html`
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
records: {
|
|
272
|
+
page: "records",
|
|
273
|
+
title: "Records",
|
|
274
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/objects.html`,
|
|
275
|
+
summary:
|
|
276
|
+
"Records are information DX Complete keeps so decisions, work, service issues, and measurements can be followed over time.",
|
|
277
|
+
routingGuidance: {
|
|
278
|
+
principle:
|
|
279
|
+
"Use the dedicated record first. Journal is the fallback for relevant context only when no dedicated record fits.",
|
|
280
|
+
sharpTest:
|
|
281
|
+
"Will anything reference or depend on this? If yes, prefer a dedicated record that can carry the relationship.",
|
|
282
|
+
axes: [
|
|
283
|
+
{
|
|
284
|
+
name: "Kind of information",
|
|
285
|
+
test: "Claims, goals, and success criteria go to Statement, Expectation, or Requirement; choices go to Decision; actions go to Task; events or controlled history go to matching records such as Change or Risk; otherwise relevant context may go to Journal."
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
name: "Process-bound or process-free",
|
|
289
|
+
test: "Statement, Expectation, Requirement, Decision, Task, Change, and Risk can advance work or carry dependencies. Journal is parallel context and does not advance the process by itself."
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
name: "Attachment",
|
|
293
|
+
test: "If another record will satisfy it, derive from it, be informed by it, or depend on it, use a dedicated record. If it is only useful background, Journal may fit."
|
|
294
|
+
}
|
|
295
|
+
],
|
|
296
|
+
routingOrder: [
|
|
297
|
+
{ signal: "Desired truth, success criteria, or buildable commitment", record: "Statement, Expectation, or Requirement" },
|
|
298
|
+
{ signal: "Choice between alternatives", record: "Decision" },
|
|
299
|
+
{ signal: "Action someone needs to do", record: "Task" },
|
|
300
|
+
{ signal: "Event or controlled service/process history", record: "Change, Risk, or the matching event/history record" },
|
|
301
|
+
{ signal: "Operational infrastructure state", record: "Operational Registry through Environment and Component records" },
|
|
302
|
+
{ signal: "Relevant context with no better home", record: "Journal" }
|
|
303
|
+
],
|
|
304
|
+
edgeCases: [
|
|
305
|
+
"A passing mention of a choice can stay in Journal; the choice itself, with rationale, should be a Decision.",
|
|
306
|
+
"A reminder may look like context, but if someone needs to act on it, it should be a Task.",
|
|
307
|
+
"A note that repeatedly informs decisions or work should be promoted from Journal to the appropriate dedicated record."
|
|
308
|
+
],
|
|
309
|
+
promotion:
|
|
310
|
+
"Journal content that becomes load-bearing should be promoted to Statement, Expectation, Requirement, Decision, Task, Change, Risk, or another dedicated record, then linked back where useful.",
|
|
311
|
+
futureContainers: [
|
|
312
|
+
{
|
|
313
|
+
name: "Operational Registry",
|
|
314
|
+
status: "current",
|
|
315
|
+
use: "Environment and Component records keep operational inventory out of Journal."
|
|
316
|
+
}
|
|
317
|
+
]
|
|
318
|
+
},
|
|
319
|
+
groups: [
|
|
320
|
+
{
|
|
321
|
+
group: "Scope",
|
|
322
|
+
purpose: "Set the need",
|
|
323
|
+
records: [
|
|
324
|
+
{ name: "Workspace", summary: "The container for one service and the work connected to it." },
|
|
325
|
+
{ name: "Statement", summary: "A person's own words before they are interpreted or translated, kept as a traceable record." },
|
|
326
|
+
{
|
|
327
|
+
name: "Journal",
|
|
328
|
+
summary: "Shared workspace notes for relevant background, preferences, observations, and context that has no dedicated record home."
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
name: "Environment",
|
|
332
|
+
summary: "A named operating context such as local, staging, or production."
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
name: "Component",
|
|
336
|
+
summary: "One environment-specific operational item, with kind, location details, identifiers, secret pointers, notes, and version history."
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: "Expectation",
|
|
340
|
+
summary: "The result a person or group expects, including how success will be recognized. Prior versions and review notes can be kept without blocking progress."
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
name: "Requirement",
|
|
344
|
+
summary: "A commitment to make something true in a buildable and checkable way. Prior versions and review notes can be kept without blocking progress."
|
|
345
|
+
}
|
|
346
|
+
]
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
group: "Weigh",
|
|
350
|
+
purpose: "Decide whether to commit now or defer",
|
|
351
|
+
records: [
|
|
352
|
+
{
|
|
353
|
+
name: "Estimate",
|
|
354
|
+
summary: "An Engineer cost estimate for the scope being weighed, with itemized costs and roll-ups for one-time and recurring amounts."
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
name: "Benefits",
|
|
358
|
+
summary: "An Owner-authored view of expected benefits. Benefits may be quantified or qualitative."
|
|
359
|
+
},
|
|
360
|
+
{ name: "Commitment", summary: "An Owner record that commits requirements or expectations into Build, with any reservations visible." },
|
|
361
|
+
{ name: "Deferral", summary: "An Owner record for not committing yet, with conditions that make a future Commitment possible." },
|
|
362
|
+
{ name: "Risk", summary: "Something uncertain that could affect value, delivery, service, or compliance." }
|
|
363
|
+
]
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
group: "Work",
|
|
367
|
+
purpose: "Act on the work",
|
|
368
|
+
records: [
|
|
369
|
+
{
|
|
370
|
+
name: "Task",
|
|
371
|
+
summary: "Concrete work with an entry history; current status comes from the latest status-change entry."
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
name: "Change",
|
|
375
|
+
summary: "A record for a specific alteration to the running service, with plan sections and append-only event history."
|
|
376
|
+
}
|
|
377
|
+
]
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
group: "Throughout",
|
|
381
|
+
purpose: "Decide and follow up",
|
|
382
|
+
records: [
|
|
383
|
+
{
|
|
384
|
+
name: "Decision",
|
|
385
|
+
summary: "A revisitable choice record with ordered entries and links to the records that informed it."
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
name: "DX Complete Ticket",
|
|
389
|
+
summary: "A private place to raise a question, report, request, correction, or follow-up with DX Complete."
|
|
390
|
+
}
|
|
391
|
+
]
|
|
392
|
+
}
|
|
393
|
+
],
|
|
394
|
+
concepts: [
|
|
395
|
+
{
|
|
396
|
+
name: "Constraints, dependencies, and unknowns",
|
|
397
|
+
summary: "Normally captured in requirements, risks, decisions, review notes, or task details."
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: "Verification and validation",
|
|
401
|
+
summary: "Checks and outcomes can be captured in task details, change history, decisions, or linked notes."
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
name: "Release, deployment, controls, and evidence",
|
|
405
|
+
summary: "Currently represented through Change events, risks, decisions, and supporting notes."
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
name: "Support, incidents, problems, and feedback",
|
|
409
|
+
summary: "Operational signals can be handled through tickets, risks, tasks, changes, decisions, or new requirements."
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
name: "Measurement and estimate refinement",
|
|
413
|
+
summary: "Actual cost or benefit observations can update estimates, benefits, risks, decisions, or future work."
|
|
414
|
+
}
|
|
415
|
+
]
|
|
416
|
+
},
|
|
417
|
+
roles: {
|
|
418
|
+
page: "roles",
|
|
419
|
+
title: "Roles",
|
|
420
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/roles.html`,
|
|
421
|
+
summary:
|
|
422
|
+
"Roles separate responsibility so decisions, building, quality checks, support, and service operation are not confused.",
|
|
423
|
+
roles: [
|
|
424
|
+
{ name: "Owner", responsibility: "Sets priorities, defines outcomes and requirements, commits budget and scope, validates outcomes, and accepts risk when needed." },
|
|
425
|
+
{ name: "Engineer", responsibility: "Turns committed requirements into tasks and working changes, either directly or by driving coding-capable tools." },
|
|
426
|
+
{ name: "Tester", responsibility: "Checks completed work against requirements and success criteria." },
|
|
427
|
+
{ name: "Operator", responsibility: "Releases, deploys, monitors, runs the service, and manages users, permissions, settings, provisioning, and run-side security." },
|
|
428
|
+
{ name: "Support Agent", responsibility: "Helps users, captures signals, and routes questions, feedback, and issues to the right follow-up." },
|
|
429
|
+
{
|
|
430
|
+
name: "End User",
|
|
431
|
+
responsibility: "Uses the service and provides requests, feedback, corrections, and issue reports."
|
|
432
|
+
}
|
|
433
|
+
]
|
|
434
|
+
},
|
|
435
|
+
glossary: {
|
|
436
|
+
page: "glossary",
|
|
437
|
+
title: "Glossary",
|
|
438
|
+
sourceUrl: `${DOC_SOURCE_BASE_URL}/glossary.html`,
|
|
439
|
+
summary: "Common DX Complete terms, written in plain language.",
|
|
440
|
+
terms: [
|
|
441
|
+
{ term: "Approval", category: "Risk and decisions", definition: "A separate authority confirming an expectation or decision, tracked when it reduces risk." },
|
|
442
|
+
{ term: "Benefit Item", category: "Cost and benefit", definition: "One item inside Benefits. It may have an amount or range, or it may be qualitative with no amount." },
|
|
443
|
+
{ term: "Benefits", category: "Cost and benefit", definition: "An Owner-authored benefit record used during Weigh, linked to the requirements or expectations it covers. Benefits may be quantified or qualitative." },
|
|
444
|
+
{ term: "Build", category: "Delivery", definition: "Turning committed requirements into tasks, working changes, and verification." },
|
|
445
|
+
{ term: "Change", category: "Delivery", definition: "A service change record for a discrete alteration to the running service. It records the plan, execution, rollback, notice, veto, emergency posture, decision, result, and recovery history without enforcing the operation." },
|
|
446
|
+
{ term: "Change Plan", category: "Delivery", definition: "The part of a Change record that explains what is changing, why, scope, timing, and notice." },
|
|
447
|
+
{ term: "Checkpoint", category: "Risk and decisions", definition: "A confirmation point that reduces risk. It can be approved, formally accepted as risk by the Owner, or proceeded past with open risk visible." },
|
|
448
|
+
{ term: "Codex", category: "Delivery", definition: "A coding-capable model that may assist the Engineer. Codex is not a role." },
|
|
449
|
+
{ term: "Commitment", category: "Business context", definition: "An Owner record that says preparation is sufficient to commit requirements or expectations into Build, with any reservations kept visible." },
|
|
450
|
+
{ term: "Complete Engineering", category: "Delivery", definition: "The delivery part of DX Complete: build, check, validate, and put the change into use." },
|
|
451
|
+
{ term: "Component", category: "Run and support", definition: "One operational item in one Environment, such as an app, database, queue, storage location, or external service. It records where it lives and which non-secret identifiers or secret locations matter." },
|
|
452
|
+
{ term: "Condition", category: "Business context", definition: "Something that must be addressed before a Deferral can resolve into a Commitment." },
|
|
453
|
+
{ term: "Constraints", category: "Business context", definition: "Limits that affect the work, such as time, access, policy, budget, or risk." },
|
|
454
|
+
{ term: "Control", category: "Risk and decisions", definition: "A rule, check, or approval used to reduce risk." },
|
|
455
|
+
{ term: "Decision", category: "Risk and decisions", definition: "A revisitable choice record. The current decision comes from the latest decision entry, while earlier arguments, notes, and decisions remain visible." },
|
|
456
|
+
{ term: "Decision Entry", category: "Risk and decisions", definition: "One ordered entry in a Decision, such as an argument, note, or decision. Later decision entries can supersede earlier ones without deleting them." },
|
|
457
|
+
{ term: "Decision Input", category: "Risk and decisions", definition: "A record that informed a decision. Outgoing links from a decision show what informed it; incoming links to a record show which decisions used it." },
|
|
458
|
+
{ term: "Deferral", category: "Business context", definition: "An Owner record for not committing yet, with explicit conditions that make the path to a future Commitment clear." },
|
|
459
|
+
{ term: "Dependencies", category: "Business context", definition: "People, systems, data, or decisions the work depends on." },
|
|
460
|
+
{ term: "Deployment", category: "Delivery", definition: "Putting a release or change into use." },
|
|
461
|
+
{ term: "DX Complete Ticket", category: "Business context", definition: "A private item used to raise a question, report, request, correction, or follow-up with DX Complete." },
|
|
462
|
+
{ term: "Elicit", category: "Business context", definition: "Turning expectations into requirements, dependencies, unknowns, and risk before estimating the work." },
|
|
463
|
+
{ term: "Emergency Change", category: "Delivery", definition: "A change where normal notice is shortened or skipped because both importance and immediacy are recorded." },
|
|
464
|
+
{ term: "End User", category: "Role", definition: "The person the service is for; uses the service and provides requests, feedback, corrections, and issue reports." },
|
|
465
|
+
{ term: "Engineer", category: "Role", definition: "The role that turns committed requirements into tasks and working changes, either directly or by driving coding-capable tools." },
|
|
466
|
+
{ term: "Environment", category: "Run and support", definition: "A named operating context such as local, staging, or production. Components belong to one Environment so each operating context can be understood separately." },
|
|
467
|
+
{ term: "Estimate", category: "Cost and benefit", definition: "An Engineer cost estimate used during Weigh, with itemized cost line items linked to the requirements or expectations it covers." },
|
|
468
|
+
{ term: "Estimate Line Item", category: "Cost and benefit", definition: "One cost item inside an Estimate, with a label, amount or range, one-time or recurring timing, and currency." },
|
|
469
|
+
{ term: "Estimate Refinement", category: "Cost and benefit", definition: "Using real results to improve future cost and benefit estimates." },
|
|
470
|
+
{ term: "Evidence", category: "Risk and decisions", definition: "Information that supports a decision, check, release, or measurement." },
|
|
471
|
+
{ term: "Execution Plan", category: "Delivery", definition: "The ordered practical steps inside a Change record for carrying out the change." },
|
|
472
|
+
{ term: "Expectation", category: "Business context", definition: "The result a person or group expects, including how success will be recognized, with approval tracked where needed." },
|
|
473
|
+
{ term: "Feedback", category: "Run and support", definition: "A signal from a user, support interaction, service issue, or observed result." },
|
|
474
|
+
{ term: "Go Live", category: "Delivery", definition: "Putting a change into use after readiness is confirmed." },
|
|
475
|
+
{ term: "Greenfield", category: "Business context", definition: "Work that starts from a new idea rather than an existing service." },
|
|
476
|
+
{ term: "Handoff", category: "Delivery", definition: "The point where a phase has enough clarity to move into the next phase." },
|
|
477
|
+
{ term: "Incident", category: "Run and support", definition: "An event that affects, or may affect, the service and needs a response." },
|
|
478
|
+
{ term: "Informed By", category: "Risk and decisions", definition: "The relationship from a decision to the record that helped inform it." },
|
|
479
|
+
{ term: "Journal", category: "Business context", definition: "A shared workspace record for relevant notes that do not have a better dedicated home. Journal entries are append-only and visible to workspace members." },
|
|
480
|
+
{ term: "Journal Note", category: "Business context", definition: "A raw Journal entry with body text, author, and timestamp. It can be summarized later without being deleted." },
|
|
481
|
+
{ term: "Journal Summary", category: "Business context", definition: "A compact Journal entry that summarizes covered notes and points back to them so older detail remains retrievable." },
|
|
482
|
+
{ term: "Limited Disclosure", category: "Business context", definition: "A situation where some information is unavailable or cannot be shared." },
|
|
483
|
+
{ term: "Locator", category: "Run and support", definition: "Structured location information for a Component, such as a URL, project, region, host, or route." },
|
|
484
|
+
{ term: "Measure", category: "Cost and benefit", definition: "Compare expected and actual cost or benefit when data is available." },
|
|
485
|
+
{ term: "Measurement", category: "Cost and benefit", definition: "Comparing expected and actual cost or benefit when data is available." },
|
|
486
|
+
{ term: "Operate", category: "Run and support", definition: "Run the service, support users, and respond to issues." },
|
|
487
|
+
{ term: "Operational Registry", category: "Run and support", definition: "The inventory of Environments and Components that shows what exists, where it lives, and which secret locations are relevant. It is not monitoring, diagnostics, a secret vault, an event log, or a runbook." },
|
|
488
|
+
{ term: "Operator", category: "Role", definition: "The role that releases, deploys, monitors, runs the service, and manages users, permissions, settings, provisioning, and run-side security." },
|
|
489
|
+
{ term: "Outcome", category: "Business context", definition: "The result the work is meant to create or improve." },
|
|
490
|
+
{ term: "Owner", category: "Role", definition: "The role that sets authority, priority, outcome direction, requirements, product validation direction, budget commitment, escalation direction, and formal risk acceptance." },
|
|
491
|
+
{ term: "Problem", category: "Run and support", definition: "An underlying or repeated issue that may need deeper improvement work." },
|
|
492
|
+
{ term: "Proceeding Past an Open Checkpoint", category: "Risk and decisions", definition: "Moving forward while an approval, readiness concern, or other checkpoint is still open. The risk remains visible and is not formally accepted." },
|
|
493
|
+
{ term: "Product Validation", category: "Delivery", definition: "Confirming that the completed work achieves the intended outcome." },
|
|
494
|
+
{ term: "QA Verification", category: "Delivery", definition: "Checking that completed work meets the requirements and success criteria." },
|
|
495
|
+
{ term: "Readiness Checks", category: "Delivery", definition: "The checks used before Go Live to confirm that a change is prepared, supportable, and safe enough to put into use." },
|
|
496
|
+
{ term: "Record", category: "Business context", definition: "Information kept so decisions, work, service issues, and measurements can be followed over time." },
|
|
497
|
+
{ term: "Record Link", category: "Business context", definition: "A relationship from one record to another. Links can be added or removed when the relationship changes or was recorded incorrectly." },
|
|
498
|
+
{ term: "Readable ID", category: "Business context", definition: "A short record reference such as REQ-0001. It helps people refer to records while the UUID remains the primary key." },
|
|
499
|
+
{ term: "Release", category: "Delivery", definition: "A set of changes prepared to be put into use." },
|
|
500
|
+
{ term: "Requirement", category: "Delivery", definition: "A commitment to make something true in a buildable and checkable way." },
|
|
501
|
+
{ term: "Requirement Detail", category: "Delivery", definition: "Optional behavior, edge cases, or check notes kept with a requirement." },
|
|
502
|
+
{ term: "Requirement Set", category: "Business context", definition: "The group of requirements being estimated, committed, built, or stopped together." },
|
|
503
|
+
{ term: "Reservation", category: "Business context", definition: "A concern recorded inside a Commitment when the Owner moves forward despite it." },
|
|
504
|
+
{ term: "Review Note", category: "Delivery", definition: "A free-text note on an expectation or requirement. It may be marked important, but it does not block progress or require an Owner response." },
|
|
505
|
+
{ term: "Risk", category: "Risk and decisions", definition: "Something uncertain that could affect value, delivery, service, or compliance." },
|
|
506
|
+
{ term: "Risk Acceptance", category: "Risk and decisions", definition: "An Owner decision to own an open risk on the project's behalf. It is different from simply proceeding past an open checkpoint." },
|
|
507
|
+
{ term: "Rollback Plan", category: "Delivery", definition: "The part of a Change record that explains how to reverse or recover if the change fails or should not remain in use." },
|
|
508
|
+
{ term: "Roll-up", category: "Cost and benefit", definition: "Grouped totals from quantified cost or benefit items, keeping one-time amounts, recurring amounts, periods, and currencies distinct." },
|
|
509
|
+
{ term: "Secret Pointer", category: "Run and support", definition: "A reference to where a secret is stored and what it is called. It should not contain the secret value." },
|
|
510
|
+
{ term: "Statement", category: "Business context", definition: "A person's own words before they are interpreted or translated, kept as the traceable root for expectations and downstream work." },
|
|
511
|
+
{ term: "Success Criteria", category: "Delivery", definition: "The conditions used to decide whether completed work satisfies the need." },
|
|
512
|
+
{ term: "Support Agent", category: "Role", definition: "The role that helps users, captures signals, and routes questions, feedback, and issues to the right follow-up." },
|
|
513
|
+
{ term: "Support Ticket", category: "Run and support", definition: "A user request, question, or issue report." },
|
|
514
|
+
{ term: "Task", category: "Delivery", definition: "A piece of work with an entry history. The current status comes from the latest status-change entry." },
|
|
515
|
+
{ term: "Task Entry", category: "Delivery", definition: "One ordered entry in a Task, such as a comment, note, or status change." },
|
|
516
|
+
{ term: "Tester", category: "Role", definition: "The role that checks completed work against requirements and success criteria." },
|
|
517
|
+
{ term: "Transformation", category: "Business context", definition: "Improving an existing service or way of working." },
|
|
518
|
+
{ term: "Unknowns", category: "Business context", definition: "Important questions that are not answered yet." },
|
|
519
|
+
{ term: "Veto", category: "Risk and decisions", definition: "A serious recorded objection to a Change by the Owner or Engineer. It does not mechanically stop the Operator, but proceeding over it creates a strong accountability record." },
|
|
520
|
+
{ term: "Version History", category: "Risk and decisions", definition: "Prior versions kept when an expectation or requirement changes, so the current wording can be understood without losing what came before." },
|
|
521
|
+
{ term: "Weigh", category: "Business context", definition: "The phase where cost, value, risk, and confidence are compared before recording a Commitment or Deferral." },
|
|
522
|
+
{ term: "Workspace", category: "Business context", definition: "The container for one service and the work connected to it." }
|
|
523
|
+
]
|
|
524
|
+
}
|
|
525
|
+
};
|
|
526
|
+
|
|
527
|
+
export function getDocReference(page: DocPageId, term?: string): DocPage | (BaseDocPage & { term: GlossaryTerm }) {
|
|
528
|
+
const doc = DOC_REFERENCE[page];
|
|
529
|
+
|
|
530
|
+
if (term && page !== "glossary") {
|
|
531
|
+
throw new Error("The term parameter is only valid when page is glossary.");
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
if (page !== "glossary" || !term) {
|
|
535
|
+
return doc;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
const normalizedTerm = normalizeTerm(term);
|
|
539
|
+
const glossaryDoc = doc as GlossaryDoc;
|
|
540
|
+
const glossaryTerm = glossaryDoc.terms.find((entry) => normalizeTerm(entry.term) === normalizedTerm);
|
|
541
|
+
|
|
542
|
+
if (!glossaryTerm) {
|
|
543
|
+
throw new Error(`Glossary term not found: ${term}`);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
return {
|
|
547
|
+
page: glossaryDoc.page,
|
|
548
|
+
title: glossaryDoc.title,
|
|
549
|
+
sourceUrl: glossaryDoc.sourceUrl,
|
|
550
|
+
summary: glossaryDoc.summary,
|
|
551
|
+
term: glossaryTerm
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
function normalizeTerm(value: string): string {
|
|
556
|
+
return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, " ");
|
|
557
|
+
}
|