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.
Files changed (121) hide show
  1. package/.env.example +11 -0
  2. package/README.md +215 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +212 -0
  5. package/dist/http/server.d.ts +7 -0
  6. package/dist/http/server.js +236 -0
  7. package/dist/http/service.d.ts +7 -0
  8. package/dist/http/service.js +725 -0
  9. package/dist/init.d.ts +13 -0
  10. package/dist/init.js +128 -0
  11. package/dist/install-manifest.d.ts +25 -0
  12. package/dist/install-manifest.js +96 -0
  13. package/dist/mcp/docs.d.ts +98 -0
  14. package/dist/mcp/docs.js +438 -0
  15. package/dist/mcp/server.d.ts +20 -0
  16. package/dist/mcp/server.js +2345 -0
  17. package/dist/package-root.d.ts +2 -0
  18. package/dist/package-root.js +28 -0
  19. package/dist/runtime/actor.d.ts +14 -0
  20. package/dist/runtime/actor.js +42 -0
  21. package/dist/runtime/auth.d.ts +162 -0
  22. package/dist/runtime/auth.js +394 -0
  23. package/dist/runtime/check.d.ts +7 -0
  24. package/dist/runtime/check.js +16 -0
  25. package/dist/runtime/config.d.ts +17 -0
  26. package/dist/runtime/config.js +93 -0
  27. package/dist/runtime/mongo.d.ts +9 -0
  28. package/dist/runtime/mongo.js +56 -0
  29. package/dist/runtime/records.d.ts +336 -0
  30. package/dist/runtime/records.js +1463 -0
  31. package/dist/runtime/workspace.d.ts +19 -0
  32. package/dist/runtime/workspace.js +102 -0
  33. package/dist/upgrade.d.ts +20 -0
  34. package/dist/upgrade.js +246 -0
  35. package/dist/validate.d.ts +10 -0
  36. package/dist/validate.js +119 -0
  37. package/dist/version.d.ts +3 -0
  38. package/dist/version.js +12 -0
  39. package/docs/codex-integration.md +29 -0
  40. package/docs/cost-model.md +61 -0
  41. package/docs/decision-basis.md +57 -0
  42. package/docs/diagrams.md +31 -0
  43. package/docs/glossary.md +147 -0
  44. package/docs/index.md +60 -0
  45. package/docs/model.md +110 -0
  46. package/docs/open-questions.md +61 -0
  47. package/docs/roles.md +42 -0
  48. package/docs/taxonomy.md +96 -0
  49. package/docs/workflows.md +60 -0
  50. package/package.json +62 -0
  51. package/scripts/check-env-surface.mjs +136 -0
  52. package/scripts/check-public-copy.mjs +263 -0
  53. package/scripts/check-service-boundary.mjs +63 -0
  54. package/scripts/dogfood-work-order.mjs +506 -0
  55. package/scripts/smoke-mcp-http.mjs +3572 -0
  56. package/src/cli.ts +268 -0
  57. package/src/http/server.ts +314 -0
  58. package/src/http/service.ts +934 -0
  59. package/src/init.ts +227 -0
  60. package/src/install-manifest.ts +144 -0
  61. package/src/mcp/docs.ts +557 -0
  62. package/src/mcp/server.ts +3525 -0
  63. package/src/package-root.ts +31 -0
  64. package/src/runtime/actor.ts +61 -0
  65. package/src/runtime/auth.ts +673 -0
  66. package/src/runtime/check.ts +18 -0
  67. package/src/runtime/config.ts +128 -0
  68. package/src/runtime/mongo.ts +89 -0
  69. package/src/runtime/records.ts +2303 -0
  70. package/src/runtime/workspace.ts +155 -0
  71. package/src/upgrade.ts +356 -0
  72. package/src/validate.ts +139 -0
  73. package/src/version.ts +16 -0
  74. package/templates/github/workflows/dxcomplete.yml +16 -0
  75. package/templates/next/pages/api/auth/callback/google.js +12 -0
  76. package/templates/next/pages/api/dxcomplete/[...path].js +12 -0
  77. package/templates/next/pages/api/dxcomplete.js +12 -0
  78. package/templates/next/pages/api/mcp.js +12 -0
  79. package/templates/next/vercel.json +18 -0
  80. package/templates/process/README.md +38 -0
  81. package/templates/process/controls.yml +113 -0
  82. package/templates/process/cost-model.yml +71 -0
  83. package/templates/process/decision-basis.yml +53 -0
  84. package/templates/process/decisions/.gitkeep +1 -0
  85. package/templates/process/diagrams/00-decision-basis.mmd +24 -0
  86. package/templates/process/diagrams/00-overview.mmd +20 -0
  87. package/templates/process/diagrams/01-intake-triage.mmd +20 -0
  88. package/templates/process/diagrams/02-product-definition.mmd +14 -0
  89. package/templates/process/diagrams/03-engineering-execution.mmd +15 -0
  90. package/templates/process/diagrams/04-qa-verification.mmd +12 -0
  91. package/templates/process/diagrams/05-product-validation.mmd +12 -0
  92. package/templates/process/diagrams/06-change-release-control.mmd +16 -0
  93. package/templates/process/diagrams/07-deployment-operations.mmd +16 -0
  94. package/templates/process/diagrams/08-support-incident-management.mmd +16 -0
  95. package/templates/process/diagrams/09-problem-improvement.mmd +14 -0
  96. package/templates/process/diagrams/10-risk-control-management.mmd +14 -0
  97. package/templates/process/diagrams/11-audit-evidence-capture.mmd +13 -0
  98. package/templates/process/evidence/.gitkeep +1 -0
  99. package/templates/process/risks/.gitkeep +1 -0
  100. package/templates/process/roles.yml +96 -0
  101. package/templates/process/taxonomy.yml +514 -0
  102. package/templates/process/workflows.yml +210 -0
  103. package/website/.well-known/oauth-authorization-server +22 -0
  104. package/website/.well-known/oauth-protected-resource/api/dxcomplete/mcp +10 -0
  105. package/website/.well-known/oauth-protected-resource/api/mcp +10 -0
  106. package/website/README.md +12 -0
  107. package/website/app.js +36 -0
  108. package/website/flow.html +85 -0
  109. package/website/glossary.html +280 -0
  110. package/website/index.html +90 -0
  111. package/website/objects.html +287 -0
  112. package/website/outcomes.html +117 -0
  113. package/website/phase-build.html +101 -0
  114. package/website/phase-elicit.html +102 -0
  115. package/website/phase-go-live.html +103 -0
  116. package/website/phase-measure.html +93 -0
  117. package/website/phase-operate.html +102 -0
  118. package/website/phase-orient.html +92 -0
  119. package/website/phase-weigh.html +98 -0
  120. package/website/roles.html +52 -0
  121. package/website/styles.css +1169 -0
@@ -0,0 +1,514 @@
1
+ schema: dxcomplete.taxonomy.v0
2
+ status: draft
3
+ notes:
4
+ - This taxonomy is a working hypothesis.
5
+ - Object names, boundaries, and relationships should be edited as the model is discovered.
6
+
7
+ current_lifecycle_hypothesis:
8
+ runtime_scope_object: Workspace
9
+ private_ticket_object: DX Complete Ticket
10
+ current_runtime_record_objects:
11
+ - Workspace
12
+ - DX Complete Ticket
13
+ - Statement
14
+ - Journal
15
+ - Environment
16
+ - Component
17
+ - Expectation
18
+ - Requirement
19
+ - Estimate
20
+ - Benefits
21
+ - Commitment
22
+ - Deferral
23
+ - Task
24
+ - Change
25
+ - Decision
26
+ - Risk
27
+ upstream_decision_basis_objects:
28
+ - Statement
29
+ - Expectation
30
+ - Requirement
31
+ - Estimate
32
+ - Benefits
33
+ - Decision
34
+ lifecycle_concepts_not_runtime_records:
35
+ - Feedback
36
+ - Authoritative Request
37
+ - Feature Request
38
+ - Incident
39
+ - Problem
40
+ - Support Ticket
41
+ - Release
42
+ - Deployment
43
+ - Control
44
+ - Evidence
45
+ - Estimate Refinement
46
+ possible_primary_object: Requirement
47
+ requirement_detail_location: Requirement fields
48
+ cross_cutting_execution_object: Task
49
+ coder_primary_work_object: Task
50
+ codex_assistance_primary_work_object: Task
51
+ downstream_measurement_objects: []
52
+ caution: Do not treat this lifecycle shape as final.
53
+
54
+ objects:
55
+ - id: workspace
56
+ name: Workspace
57
+ draft_definition: The shared-runtime container for one service scope.
58
+ draft_fields:
59
+ - name
60
+ - summary
61
+ - mode
62
+ rules:
63
+ - Workspace is the boundary for statements, decisions, requirements, tasks, risks, cost, benefit, and operations records.
64
+ - A required company-to-project parent hierarchy is not part of the first model.
65
+ - Company, client, or related-service grouping can be represented later through tags or relationships.
66
+ - Shared database storage is the default runtime design target.
67
+ - Workspace mode may be transformation, greenfield, or limited-disclosure when that distinction is useful.
68
+ possible_links:
69
+ - Decision
70
+
71
+ - id: dxcomplete_ticket
72
+ name: DX Complete Ticket
73
+ draft_definition: An actor-scoped, appendable item used to raise a question, report, request, correction, or follow-up with DX Complete.
74
+ draft_fields:
75
+ - title
76
+ - body
77
+ - entries
78
+ - archived_at
79
+ rules:
80
+ - DX Complete Tickets are scoped to the person or client actor that created them from the sender-side view.
81
+ - DX Complete Tickets are server-side records that may later be reviewed, linked, or promoted by an authorized DX Complete operator.
82
+ - The durable content is the title plus entries.
83
+ - Summary is optional and is not generated automatically.
84
+ - DX Complete replies can be tracked as unread or read by the submitting actor.
85
+ - DX Complete Tickets do not ingest files or assets.
86
+ - DX Complete Tickets do not automatically become requirements, tasks, incidents, decisions, or risks.
87
+ - Follow-up should be appended so earlier entries are preserved.
88
+ - Archive hides a ticket from the active list without making a process decision.
89
+ possible_links:
90
+ - Requirement
91
+ - Task
92
+ - Decision
93
+ - Risk
94
+ - Support Ticket
95
+
96
+ - id: journal
97
+ name: Journal
98
+ draft_definition: Shared workspace notes for relevant context that does not have a better dedicated record home.
99
+ draft_fields:
100
+ - body
101
+ - kind
102
+ - tag
103
+ - author
104
+ - created_at
105
+ - covers
106
+ - archived_at
107
+ rules:
108
+ - Journal is shared across workspace members, not private to the person who entered it.
109
+ - Journal entries are append-only; corrections and updates should be added as new entries.
110
+ - Dedicated containers come first. Use Statement, Expectation, Requirement, Decision, Risk, Change, Task, Environment, or Component when the information belongs there.
111
+ - Journal is the fallback for relevant background, preferences, observations, and context that has no dedicated home.
112
+ - If another record will reference or depend on the information, prefer a dedicated record instead of Journal.
113
+ - Operational infrastructure state belongs in the Operational Registry through Environment and Component records.
114
+ - Journal content that becomes load-bearing should be promoted to the appropriate dedicated record.
115
+ - Summary entries can compact older notes while pointing back to the covered entry IDs.
116
+ - Covered notes can be archived out of the default read without being deleted.
117
+ - Journal entries can be linked when they inform another record.
118
+ possible_links:
119
+ - Decision
120
+ - Risk
121
+ - Requirement
122
+ - Task
123
+
124
+ - id: environment
125
+ name: Environment
126
+ draft_definition: A named operating context such as local, staging, or production.
127
+ draft_fields:
128
+ - name
129
+ - summary
130
+ - description
131
+ - version_history
132
+ rules:
133
+ - Environment records separate one operating context from another.
134
+ - Environment edits should preserve prior versions.
135
+ - Environment is inventory context, not monitoring or diagnostics.
136
+ possible_links:
137
+ - Component
138
+ - Change
139
+ - Decision
140
+
141
+ - id: component
142
+ name: Component
143
+ draft_definition: One operational item that belongs to exactly one Environment.
144
+ draft_fields:
145
+ - name
146
+ - environment
147
+ - kind
148
+ - locator
149
+ - identifiers
150
+ - secret_pointers
151
+ - notes
152
+ - version_history
153
+ rules:
154
+ - Component kind is a free-text label.
155
+ - Locator holds endpoint or location details.
156
+ - Identifiers hold non-secret names such as database name, account, project, region, or username.
157
+ - Secret pointers name where a secret is stored and what it is called; they must not contain secret values.
158
+ - Components do not embed service events or process history.
159
+ - Component edits should preserve prior versions.
160
+ possible_links:
161
+ - Environment
162
+ - Change
163
+ - Decision
164
+ - Risk
165
+
166
+ - id: estimate
167
+ name: Estimate
168
+ draft_definition: An itemized cost record used during Weigh, linked to the requirements or expectations it covers.
169
+ rules:
170
+ - Estimate line items are cost items.
171
+ - Amounts may be single values or min/expected/max ranges.
172
+ - One-time and recurring totals should remain separate.
173
+ - Recurring totals should remain separated by period.
174
+ - Estimate edits should preserve prior versions.
175
+ possible_links:
176
+ - Requirement
177
+ - Expectation
178
+ - Commitment
179
+ - Decision
180
+
181
+ - id: benefits
182
+ name: Benefits
183
+ draft_definition: An Owner-authored benefit record used during Weigh, linked to the requirements or expectations it covers.
184
+ rules:
185
+ - Benefit items may be quantified or qualitative.
186
+ - Qualitative benefit items are complete without amount, timing, period, or currency.
187
+ - Quantified amounts may be single values or min/expected/max ranges.
188
+ - Quantified one-time and recurring totals should remain separate.
189
+ - Quantified recurring totals should remain separated by period.
190
+ - Benefits edits should preserve prior versions.
191
+ possible_links:
192
+ - Requirement
193
+ - Expectation
194
+ - Commitment
195
+ - Decision
196
+
197
+ - id: feedback
198
+ name: Feedback
199
+ status: lifecycle_concept
200
+ draft_definition: A signal from a client, user, interested party, or service observation.
201
+ likely_sources:
202
+ - End User
203
+ - Support Agent
204
+ - Owner
205
+ - Operator
206
+ possible_links:
207
+ - Feature Request
208
+ - Requirement
209
+ - Problem
210
+
211
+ - id: authoritative_request
212
+ name: Authoritative Request
213
+ status: lifecycle_concept
214
+ draft_definition: A request or directive with authority behind it, such as Owner commitment, leadership decision, legal need, or contractual obligation.
215
+ likely_sources:
216
+ - Owner
217
+ possible_links:
218
+ - Requirement
219
+ - Decision
220
+ - Risk
221
+
222
+ - id: feature_request
223
+ name: Feature Request
224
+ status: lifecycle_concept
225
+ draft_definition: A desired capability or product change that may become one or more requirements.
226
+ likely_sources:
227
+ - Feedback
228
+ - Owner
229
+ - Support Agent
230
+ possible_links:
231
+ - Requirement
232
+ - Decision
233
+
234
+ - id: statement
235
+ name: Statement
236
+ draft_definition: The user's own words before DX Complete interprets or translates them.
237
+ status: runtime_record
238
+ runtime_collection: statements
239
+ notes:
240
+ - Statement is the traceable root for an expectation when the source wording should be preserved.
241
+ - Preserve the original expression before restating it as an expectation.
242
+ - Version history should preserve prior wording when the statement changes.
243
+ possible_links:
244
+ - DX Complete Ticket
245
+ - Expectation
246
+ - Decision
247
+
248
+ - id: expectation
249
+ name: Expectation
250
+ draft_definition: User-facing condition of satisfaction, including the result expected and how success will be recognized.
251
+ status: runtime_record
252
+ runtime_collection: expectations
253
+ notes:
254
+ - Expectation should be tracked as a workspace-scoped record and linked to the requirements meant to satisfy it.
255
+ - The MCP client should confirm wording before recording Statement or Expectation on a user's behalf.
256
+ - Missing approval should not block progress by itself.
257
+ - Moving forward without approval should leave the open risk visible.
258
+ - Review notes can preserve Engineer input without creating a block or approval duty.
259
+ - Version history should preserve prior wording when the expectation changes.
260
+ possible_links:
261
+ - Statement
262
+ - Requirement
263
+ - Risk
264
+ - Decision
265
+
266
+ - id: requirement
267
+ name: Requirement
268
+ draft_definition: A team-owned commitment that translates expectations into something buildable and verifiable. In the current model, requirements are shaped during elicitation, weighed by the Owner, and refined during Build once covered by a Commitment.
269
+ likely_sources:
270
+ - Owner
271
+ - Expectation
272
+ - Authoritative Request
273
+ - Feature Request
274
+ - Problem
275
+ draft_fields:
276
+ - statement
277
+ - acceptance_criteria
278
+ - requirement_detail
279
+ - review_notes
280
+ - version_history
281
+ possible_links:
282
+ - Expectation
283
+ - Task
284
+ - Risk
285
+ - Control
286
+ - Decision
287
+ notes:
288
+ - A separate technical detail object is not part of the current model.
289
+ - Implementation and verification detail should live in requirement_detail until an independent object is proven necessary.
290
+ - Review notes can preserve Engineer input without creating a block or approval duty.
291
+ - Version history should preserve prior wording when the requirement changes.
292
+
293
+ - id: commitment
294
+ name: Commitment
295
+ draft_definition: An Owner point-in-time authority record that commits requirements or expectations into Build.
296
+ likely_sources:
297
+ - Owner
298
+ - Requirement
299
+ - Expectation
300
+ draft_fields:
301
+ - commitment_statement
302
+ - reservations
303
+ possible_links:
304
+ - Requirement
305
+ - Expectation
306
+ - Deferral
307
+ - Estimate
308
+ - Benefits
309
+ - Decision
310
+ notes:
311
+ - Reservations record concerns the Owner is moving forward despite.
312
+ - Commitment is a point-in-time act, not a process.
313
+
314
+ - id: deferral
315
+ name: Deferral
316
+ draft_definition: An Owner record for not committing yet, with explicit conditions that make a future Commitment possible.
317
+ likely_sources:
318
+ - Owner
319
+ - Requirement
320
+ - Expectation
321
+ draft_fields:
322
+ - reason
323
+ - status
324
+ - conditions
325
+ - condition_events
326
+ possible_links:
327
+ - Requirement
328
+ - Expectation
329
+ - Commitment
330
+ - Estimate
331
+ - Benefits
332
+ - Decision
333
+ notes:
334
+ - Deferral is a process or loop, not a point-in-time act.
335
+ - Conditions should have directly readable state plus append-only history.
336
+ - A resolved Deferral should link to the Commitment it produced.
337
+
338
+ - id: task
339
+ name: Task
340
+ draft_definition: An execution unit with append-only entries, used to make part of a requirement true.
341
+ draft_fields:
342
+ - description
343
+ - assignee
344
+ - assignor
345
+ - entries
346
+ - current_status
347
+ rules:
348
+ - Current status should derive from the latest status-change entry.
349
+ - Prior task comments, notes, and status changes should remain visible.
350
+ likely_sources:
351
+ - Engineer
352
+ - Requirement
353
+ possible_links:
354
+ - Requirement
355
+ - Change
356
+ - Decision
357
+
358
+ - id: change
359
+ name: Change
360
+ draft_definition: A discrete alteration to the running service, recorded for service-management control and accountability.
361
+ likely_sources:
362
+ - Task
363
+ - Engineer
364
+ - Operator
365
+ - Incident
366
+ draft_fields:
367
+ - change_plan
368
+ - execution_steps
369
+ - rollback_plan
370
+ - risk_impact
371
+ - planned_for
372
+ - events
373
+ rules:
374
+ - Change is not a standing Operations Plan.
375
+ - DX Complete records the change; it does not perform or enforce the operation.
376
+ - The original plan sections should remain as the baseline.
377
+ - Notice, veto, emergency posture, decision, result, recovery, notes, and plan revisions should be appended as immutable events.
378
+ - Emergency changes should record both importance and immediacy.
379
+ - Owner or Engineer may record a veto, but the veto does not mechanically stop the Operator.
380
+ possible_links:
381
+ - Requirement
382
+ - Release
383
+ - Deployment
384
+ - Risk
385
+ - Control
386
+
387
+ - id: incident
388
+ name: Incident
389
+ status: lifecycle_concept
390
+ draft_definition: A service-impacting or potentially service-impacting event requiring response.
391
+ likely_sources:
392
+ - Operator
393
+ - Support Agent
394
+ - Monitoring
395
+ - End User
396
+ possible_links:
397
+ - Support Ticket
398
+ - Problem
399
+ - Change
400
+ - Risk
401
+
402
+ - id: problem
403
+ name: Problem
404
+ status: lifecycle_concept
405
+ draft_definition: An underlying cause or recurring issue that may require investigation and improvement work.
406
+ likely_sources:
407
+ - Incident
408
+ - Support Ticket
409
+ - Operator
410
+ - Tester
411
+ possible_links:
412
+ - Requirement
413
+ - Risk
414
+ - Decision
415
+
416
+ - id: support_ticket
417
+ name: Support Ticket
418
+ status: lifecycle_concept
419
+ draft_definition: A user-facing support interaction, request, or issue report.
420
+ likely_sources:
421
+ - End User
422
+ - Support Agent
423
+ possible_links:
424
+ - Feedback
425
+ - Incident
426
+ - Problem
427
+ - Requirement
428
+
429
+ - id: release
430
+ name: Release
431
+ status: lifecycle_concept
432
+ draft_definition: A grouped set of changes prepared for delivery.
433
+ likely_sources:
434
+ - Change
435
+ - Operator
436
+ - Owner
437
+ possible_links:
438
+ - Deployment
439
+ - Decision
440
+ - Control
441
+
442
+ - id: deployment
443
+ name: Deployment
444
+ status: lifecycle_concept
445
+ draft_definition: The act and evidence of putting a release or change into an environment.
446
+ likely_sources:
447
+ - Release
448
+ - Operator
449
+ possible_links:
450
+ - Release
451
+ - Incident
452
+ - Evidence
453
+
454
+ - id: decision
455
+ name: Decision
456
+ draft_definition: A revisitable choice record with ordered entries and links to the records that informed it.
457
+ draft_fields:
458
+ - matter
459
+ - entries
460
+ - current_decision
461
+ rules:
462
+ - Current decision should derive from the latest decision entry.
463
+ - Later decision entries can supersede earlier ones without deleting them.
464
+ - Arguments, notes, and decision entries should remain ordered and attributed.
465
+ - Arguments considered should stay loose text unless the project needs a stronger evidence model.
466
+ - Do not assign numeric weights by default.
467
+ - DX Complete records the decision trail; it does not determine whether the decision is reasonable.
468
+ - Decision input links should use informed_by from the Decision to the records that informed it.
469
+ likely_sources:
470
+ - Owner
471
+ - Engineer
472
+ - Operator
473
+ - Tester
474
+ possible_links:
475
+ - Estimate
476
+ - Benefits
477
+ - Expectation
478
+ - Requirement
479
+ - Change
480
+ - Risk
481
+ - Decision
482
+
483
+ - id: risk
484
+ name: Risk
485
+ draft_definition: An uncertainty or exposure that could affect product, service, delivery, compliance, or operations.
486
+ rules:
487
+ - Open checkpoints should be represented as visible risk rather than blockers.
488
+ - Open risk should remain visible when work proceeds without approval.
489
+ - Formal risk acceptance should be recorded separately as an Owner decision.
490
+ likely_sources:
491
+ - Owner
492
+ - Engineer
493
+ - Tester
494
+ - Operator
495
+ - Support Agent
496
+ possible_links:
497
+ - Requirement
498
+ - Change
499
+ - Control
500
+ - Decision
501
+
502
+ - id: control
503
+ name: Control
504
+ status: lifecycle_concept
505
+ draft_definition: A policy, check, approval, or evidence requirement used to manage risk or governance.
506
+ likely_sources:
507
+ - Owner
508
+ - Operator
509
+ - Tester
510
+ possible_links:
511
+ - Risk
512
+ - Release
513
+ - Deployment
514
+ - Evidence