dxcomplete 0.2.1 → 0.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/.env.example +0 -7
- package/README.md +68 -103
- package/dist/cli.js +2 -24
- package/dist/validate.js +10 -26
- package/docs/cost-model.md +2 -2
- package/docs/decision-basis.md +5 -11
- package/docs/diagrams.md +3 -3
- package/docs/index.md +25 -39
- package/docs/model.md +15 -23
- package/docs/open-questions.md +1 -1
- package/docs/taxonomy.md +7 -8
- package/docs/workflows.md +3 -3
- package/package.json +24 -24
- package/templates/process/README.md +11 -11
- package/templates/process/controls.yml +19 -19
- package/templates/process/cost-model.yml +3 -3
- package/templates/process/decision-basis.yml +4 -4
- package/templates/process/diagrams/00-decision-basis.mmd +1 -1
- package/templates/process/diagrams/00-overview.mmd +1 -1
- package/templates/process/diagrams/01-intake-triage.mmd +4 -4
- package/templates/process/diagrams/02-product-definition.mmd +3 -3
- package/templates/process/diagrams/03-engineering-execution.mmd +1 -1
- package/templates/process/diagrams/04-qa-verification.mmd +1 -1
- package/templates/process/diagrams/05-product-validation.mmd +1 -1
- package/templates/process/diagrams/06-change-release-control.mmd +1 -1
- package/templates/process/diagrams/07-deployment-operations.mmd +1 -1
- package/templates/process/diagrams/08-support-incident-management.mmd +1 -1
- package/templates/process/diagrams/09-problem-improvement.mmd +1 -1
- package/templates/process/diagrams/10-risk-control-management.mmd +1 -1
- package/templates/process/diagrams/11-audit-evidence-capture.mmd +1 -1
- package/templates/process/roles.yml +6 -6
- package/templates/process/taxonomy.yml +46 -46
- package/templates/process/workflows.yml +29 -29
- package/website/account.html +57 -0
- package/website/app.js +177 -0
- package/website/flow.html +4 -0
- package/website/glossary.html +4 -0
- package/website/index.html +4 -0
- package/website/objects.html +4 -0
- package/website/operating-guide.html +4 -0
- package/website/outcomes.html +4 -0
- package/website/phase-build.html +4 -0
- package/website/phase-elicit.html +4 -0
- package/website/phase-go-live.html +4 -0
- package/website/phase-measure.html +4 -0
- package/website/phase-operate.html +4 -0
- package/website/phase-orient.html +4 -0
- package/website/phase-weigh.html +4 -0
- package/website/roles.html +4 -0
- package/website/styles.css +217 -1
- package/dist/http/service.d.ts +0 -7
- package/dist/http/service.js +0 -725
- package/dist/mcp/docs.d.ts +0 -114
- package/dist/mcp/docs.js +0 -626
- package/dist/mcp/server.d.ts +0 -20
- package/dist/mcp/server.js +0 -3059
- package/dist/runtime/auth.d.ts +0 -162
- package/dist/runtime/auth.js +0 -394
- package/dist/runtime/check.d.ts +0 -7
- package/dist/runtime/check.js +0 -16
- package/dist/runtime/config.d.ts +0 -17
- package/dist/runtime/config.js +0 -93
- package/dist/runtime/mongo.d.ts +0 -9
- package/dist/runtime/mongo.js +0 -56
- package/dist/runtime/records.d.ts +0 -427
- package/dist/runtime/records.js +0 -2092
- package/scripts/check-env-surface.mjs +0 -136
- package/scripts/check-public-copy.mjs +0 -263
- package/scripts/check-service-boundary.mjs +0 -63
- package/scripts/runtime-work-order.mjs +0 -506
- package/scripts/smoke-mcp-http.mjs +0 -4026
- package/src/cli.ts +0 -268
- package/src/http/server.ts +0 -314
- package/src/http/service.ts +0 -934
- package/src/init.ts +0 -262
- package/src/install-manifest.ts +0 -144
- package/src/mcp/docs.ts +0 -777
- package/src/mcp/server.ts +0 -4580
- package/src/package-root.ts +0 -31
- package/src/runtime/actor.ts +0 -61
- package/src/runtime/auth.ts +0 -673
- package/src/runtime/check.ts +0 -18
- package/src/runtime/config.ts +0 -128
- package/src/runtime/mongo.ts +0 -89
- package/src/runtime/records.ts +0 -3205
- package/src/runtime/workspace.ts +0 -155
- package/src/upgrade.ts +0 -356
- package/src/validate.ts +0 -141
- package/src/version.ts +0 -16
package/docs/model.md
CHANGED
|
@@ -1,44 +1,36 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DX Complete Model
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Current Model
|
|
4
4
|
|
|
5
5
|
The model is a full DX lifecycle, not merely a software development workflow.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
It includes cost and benefit reasoning before engineering begins, both build/change roles and run/service roles, and actual measurement after delivery where available.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
DX Complete = Decision Basis + Complete Engineering + Operations Measurement
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
It should include cost and benefit reasoning before engineering begins, both build/change roles and run/service roles, and actual measurement after delivery where available.
|
|
9
|
+
The current runtime scope decision is `Workspace`: the hosted-record container for one service scope. The default MCP deployment model is one endpoint per workspace. Each installed project repo carries its workspace identity in editable DX Complete config and exposes one MCP route for that workspace.
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Workspace MCP deployments are not database runtimes. They proxy auth and MCP requests to the central DX Complete service. The central service owns database access, Google OAuth exchange, workspace membership, readable-ID allocation, and MCP tool execution. Separate database deployment may be revisited later, but workspace servers should not hold database credentials in the current model.
|
|
11
|
+
Workspace MCP deployments are not database runtimes and do not install the hosted DX Complete service. They proxy auth and MCP requests to that service. The hosted service owns database access, OAuth exchange, workspace membership, readable-ID allocation, and MCP tool execution. Separate database deployment may be revisited later, but workspace servers should not hold database credentials in the current model.
|
|
18
12
|
|
|
19
13
|
Workspace carries the service identity through its name, summary, and mode when useful. A separate service charter record is not part of the current model; if a presentation summary is needed, it should be derived from the workspace and current expectations.
|
|
20
14
|
|
|
21
|
-
The current decision-basis
|
|
15
|
+
The current decision-basis model is that `Statement`, `Expectation`, `Requirement`, `Estimate`, `Benefits`, and `Decision` sit upstream of Build inside the Workspace. Statements, expectations, dependencies, constraints, unknowns, and requirements should be elicited before useful estimates are generated. Current-state cost context should be attempted where relevant, an itemized cost `Estimate` should be generated by default from the elicited requirement set where cost reasoning is needed, expected `Benefits` should be recorded where possible, and Weigh should bridge into Build through a Commitment or keep the path visible through a Deferral. A Decision can preserve ordered rationale entries and records that informed the Owner's judgment.
|
|
22
16
|
|
|
23
|
-
The current early lifecycle
|
|
17
|
+
The current early lifecycle is `Statement -> Expectation -> Requirement -> Commitment`, with `Deferral` as the alternate Weigh outcome that can resolve into a Commitment. `Statement` preserves the user's own words before interpretation as a runtime record. `Expectation` is tracked as a runtime record and restates the expected result and how success will be recognized in user-facing language. The MCP client should confirm captured wording before recording it on a user's behalf. Separate authority approval, usually by Owner, can be tracked when it reduces risk. `Requirement` is the team-owned commitment that translates expectations into something buildable and verifiable. Statements, expectations, and requirements should keep prior versions when their current wording changes. `Commitment` records the Owner moving requirements or expectations into Build. `Task` is a cross-cutting execution object that can be created whenever a phase needs concrete action. `Journal` is cross-cutting shared workspace context for relevant notes that do not have a dedicated record home.
|
|
24
18
|
|
|
25
19
|
A separate technical specification object is not part of the current model. Implementation and verification detail should live inside a Requirement as optional requirement detail until the need for an independent object is proven.
|
|
26
20
|
|
|
27
|
-
The current engineering lifecycle
|
|
28
|
-
|
|
29
|
-
The current review-note hypothesis is that Engineer input on Expectations or Requirements should be preserved as append-only free text. A review note can be marked important to draw attention, but it does not block progress, create a severity state, or require an Owner response.
|
|
21
|
+
The current engineering lifecycle uses `Requirement` as the main end-to-end engineering object. Requirements are shaped during elicitation, committed or deferred during Weigh, and refined into requirement detail and tasks during Build once covered by a Commitment. Task is a cross-cutting execution record with ordered entries and a current status derived from the latest status-change entry. The Engineer works primarily on Tasks and may use coding-capable tools such as Codex where appropriate. Incident and Problem are run-side records: Incident records a specific service-impacting occurrence, and Problem records an underlying or recurring cause evidenced by incidents. Feature Request, Feedback, Authoritative Request, Release, Deployment, and Control remain useful lifecycle concepts, but they are not separate runtime records in the current model.
|
|
30
22
|
|
|
31
|
-
|
|
23
|
+
Engineer input on Expectations or Requirements is preserved as append-only free text. A review note can be marked important to draw attention, but it does not block progress, create a severity state, or require an Owner response.
|
|
32
24
|
|
|
33
|
-
|
|
25
|
+
Approval and similar confirmation points are advisory risk checkpoints, not blockers. A checkpoint can be approved, formally accepted as risk by the Owner, or proceeded past with the open risk still visible. Proceeding past an open checkpoint does not close or accept the risk.
|
|
34
26
|
|
|
35
|
-
|
|
27
|
+
DX Complete preserves the matter being decided, ordered decision entries, loose argument and note entries, and the records that informed the choice. The current decision is derived from the latest decision entry while earlier decisions remain visible. DX Complete does not require numeric weights or attempt to prove that the decision was objectively correct. Authority can make a poor or unreasonable decision; the system's role is to keep the decision trail visible for accountability, review, audit, and learning.
|
|
36
28
|
|
|
37
29
|
## Model Layers
|
|
38
30
|
|
|
39
31
|
Direction sets authority, priority, boundaries, and escalation paths.
|
|
40
32
|
|
|
41
|
-
Workspace scope contains one service context and prevents records from different service scopes from mixing in the
|
|
33
|
+
Workspace scope contains one service context and prevents records from different service scopes from mixing in the hosted record store. In the hosted model, the endpoint gets workspace scope from repo config, then the hosted DX Complete service checks the authenticated actor identity and workspace authorization before executing tools.
|
|
42
34
|
|
|
43
35
|
Decision-basis work captures the initial statement and expected outcome, elicits expectations, requirements, and enough detail for useful estimates, attempts current-state cost visibility where relevant, estimates projected cost through `Estimate`, records expected value through `Benefits`, and supports Weigh. `Estimate` is the structured itemized cost record for Weigh. `Benefits` is the Owner-authored benefit record and may include quantified or qualitative benefit items. Decision records preserve rationale and linked inputs when a separate decision trail is useful.
|
|
44
36
|
|
|
@@ -70,7 +62,7 @@ Operations measurement captures actual cost and benefit observations where avail
|
|
|
70
62
|
|
|
71
63
|
Decision rationale captures ordered entries for the matter being decided, including decision entries, argument entries, and notes without forcing those arguments into weighted or directional scoring. Decision inputs link the Decision to the records that informed it, so the trail can be followed from the choice back to its basis.
|
|
72
64
|
|
|
73
|
-
##
|
|
65
|
+
## Relationship Shape
|
|
74
66
|
|
|
75
67
|
```mermaid
|
|
76
68
|
flowchart LR
|
|
@@ -105,6 +97,6 @@ flowchart LR
|
|
|
105
97
|
Decision -. informed_by .-> Change
|
|
106
98
|
```
|
|
107
99
|
|
|
108
|
-
##
|
|
100
|
+
## Adaptation Principle
|
|
109
101
|
|
|
110
|
-
Keep the
|
|
102
|
+
Keep the workspace process files editable. If a team makes a local policy decision that changes how it uses `Change`, `Requirement`, or another record, update the Markdown, YAML, and Mermaid files together so the workspace guidance stays consistent.
|
package/docs/open-questions.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Open Questions
|
|
2
2
|
|
|
3
|
-
Use this file to keep
|
|
3
|
+
Use this file to keep genuine unresolved policy questions visible. When a question is answered, update the related Markdown, YAML, and Mermaid files together.
|
|
4
4
|
|
|
5
5
|
## Model
|
|
6
6
|
|
package/docs/taxonomy.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DX Complete Records
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The record set describes the current DX Complete runtime model for one workspace.
|
|
4
4
|
|
|
5
|
-
## Current Runtime
|
|
5
|
+
## Current Runtime Records
|
|
6
6
|
|
|
7
7
|
- Workspace
|
|
8
8
|
- DX Complete Ticket
|
|
@@ -39,9 +39,9 @@ These concepts remain useful, but they are not separate runtime records in the c
|
|
|
39
39
|
- Evidence
|
|
40
40
|
- Estimate Refinement
|
|
41
41
|
|
|
42
|
-
## Current Lifecycle
|
|
42
|
+
## Current Lifecycle Model
|
|
43
43
|
|
|
44
|
-
`Workspace` is the runtime scope object. It contains one service scope and is the boundary for
|
|
44
|
+
`Workspace` is the runtime scope object. It contains one service scope and is the boundary for hosted DX Complete records. The default MCP deployment model is one endpoint per installed workspace, with workspace identity coming from DX Complete config and access constrained by authenticated actor plus workspace authorization.
|
|
45
45
|
|
|
46
46
|
Workspace-scoped lifecycle records use UUIDs as primary keys and links, while also carrying a human-readable reference such as `REQ-0001`. The readable reference is for people; it does not replace the UUID.
|
|
47
47
|
|
|
@@ -67,7 +67,7 @@ Workspace-scoped lifecycle records use UUIDs as primary keys and links, while al
|
|
|
67
67
|
|
|
68
68
|
`ReviewNote` is not a separate collection. Expectations and Requirements can carry append-only review notes. A note can be marked important, but it does not create a severity state, block progress, or require an Owner response.
|
|
69
69
|
|
|
70
|
-
The main engineering object
|
|
70
|
+
The main engineering object is `Requirement`. Requirements translate expectations into team-owned commitments that are shaped during elicitation, weighed by the Owner, and refined during Build once covered by a Commitment. When a requirement changes, prior versions should be kept so the current commitment remains reconstructable.
|
|
71
71
|
|
|
72
72
|
`Commitment` is the Owner's point-in-time authority record that moves named requirements or expectations into Build. It can include reservations: concerns the Owner is moving forward despite.
|
|
73
73
|
|
|
@@ -89,9 +89,8 @@ Decision inputs use the `informed_by` relationship from a Decision to the record
|
|
|
89
89
|
|
|
90
90
|
The installed scaffold includes `dxcomplete/process/taxonomy.yml`. Treat that file as the editable taxonomy source for a project.
|
|
91
91
|
|
|
92
|
-
## Taxonomy Questions
|
|
92
|
+
## Open Taxonomy Questions
|
|
93
93
|
|
|
94
|
-
- Is `Requirement` the main lifecycle object, or should the center be `Change`, `Feature Request`, or another object?
|
|
95
94
|
- Is `Workspace` sufficient as the service-scope boundary, or will related workspaces need a stronger grouping model?
|
|
96
95
|
- Should future work need a grouping model above Workspace, or is Workspace sufficient as the service scope?
|
|
97
96
|
- Should decision arguments remain embedded text, or should they become first-class records after repeated use?
|
package/docs/workflows.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Workflows
|
|
2
2
|
|
|
3
|
-
These workflows
|
|
3
|
+
These workflows describe the current DX Complete lifecycle paths. Adapt the workspace-owned process files when a local policy decision changes how the team works.
|
|
4
4
|
|
|
5
5
|
## Current Workflow Areas
|
|
6
6
|
|
|
@@ -26,7 +26,7 @@ These workflows are editable drafts. They describe likely lifecycle paths withou
|
|
|
26
26
|
- Actual cost / benefit observations
|
|
27
27
|
- Estimate refinement
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## End-To-End Flow
|
|
30
30
|
|
|
31
31
|
1. A signal enters through feedback, authoritative request, support ticket, service-impact event, recurring issue, or strategic direction.
|
|
32
32
|
2. Statement capture preserves the user's own words and links the work to the Workspace context.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dxcomplete",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Install
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Install the DX Complete workspace-side docs, process files, and MCP route for the hosted record service.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"dxcomplete",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"type": "git",
|
|
18
18
|
"url": "git+https://github.com/DirectedDomains/dxcomplete.git"
|
|
19
19
|
},
|
|
20
|
-
"homepage": "https://
|
|
20
|
+
"homepage": "https://dxcomplete.directeddomains.com",
|
|
21
21
|
"bugs": {
|
|
22
22
|
"url": "https://github.com/DirectedDomains/dxcomplete/issues"
|
|
23
23
|
},
|
|
@@ -28,18 +28,31 @@
|
|
|
28
28
|
"./http": {
|
|
29
29
|
"types": "./dist/http/server.d.ts",
|
|
30
30
|
"default": "./dist/http/server.js"
|
|
31
|
-
},
|
|
32
|
-
"./service": {
|
|
33
|
-
"types": "./dist/http/service.d.ts",
|
|
34
|
-
"default": "./dist/http/service.js"
|
|
35
31
|
}
|
|
36
32
|
},
|
|
37
33
|
"files": [
|
|
38
34
|
".env.example",
|
|
39
|
-
"dist",
|
|
35
|
+
"dist/cli.d.ts",
|
|
36
|
+
"dist/cli.js",
|
|
37
|
+
"dist/http/server.d.ts",
|
|
38
|
+
"dist/http/server.js",
|
|
39
|
+
"dist/init.d.ts",
|
|
40
|
+
"dist/init.js",
|
|
41
|
+
"dist/install-manifest.d.ts",
|
|
42
|
+
"dist/install-manifest.js",
|
|
43
|
+
"dist/package-root.d.ts",
|
|
44
|
+
"dist/package-root.js",
|
|
45
|
+
"dist/runtime/actor.d.ts",
|
|
46
|
+
"dist/runtime/actor.js",
|
|
47
|
+
"dist/runtime/workspace.d.ts",
|
|
48
|
+
"dist/runtime/workspace.js",
|
|
49
|
+
"dist/upgrade.d.ts",
|
|
50
|
+
"dist/upgrade.js",
|
|
51
|
+
"dist/validate.d.ts",
|
|
52
|
+
"dist/validate.js",
|
|
53
|
+
"dist/version.d.ts",
|
|
54
|
+
"dist/version.js",
|
|
40
55
|
"docs",
|
|
41
|
-
"scripts",
|
|
42
|
-
"src",
|
|
43
56
|
"templates",
|
|
44
57
|
"website",
|
|
45
58
|
"README.md"
|
|
@@ -50,20 +63,7 @@
|
|
|
50
63
|
"check:public-copy": "node scripts/check-public-copy.mjs",
|
|
51
64
|
"check:env-surface": "node scripts/check-env-surface.mjs",
|
|
52
65
|
"check:service-boundary": "node scripts/check-service-boundary.mjs",
|
|
53
|
-
"
|
|
54
|
-
"smoke:mcp:http:light": "node scripts/smoke-mcp-http.mjs --depth=light",
|
|
55
|
-
"smoke:mcp:http:deep": "node scripts/smoke-mcp-http.mjs --depth=deep",
|
|
56
|
-
"smoke:mcp:http:full": "node scripts/smoke-mcp-http.mjs --depth=deep",
|
|
57
|
-
"smoke:mcp:http:surface": "node scripts/smoke-mcp-http.mjs --area=surface",
|
|
58
|
-
"smoke:mcp:http:docs": "node scripts/smoke-mcp-http.mjs --area=docs",
|
|
59
|
-
"smoke:mcp:http:records": "node scripts/smoke-mcp-http.mjs --area=records",
|
|
60
|
-
"smoke:mcp:http:weigh": "node scripts/smoke-mcp-http.mjs --area=weigh",
|
|
61
|
-
"smoke:mcp:http:change": "node scripts/smoke-mcp-http.mjs --area=change",
|
|
62
|
-
"smoke:mcp:http:tickets": "node scripts/smoke-mcp-http.mjs --area=tickets",
|
|
63
|
-
"smoke:mcp:http:journal": "node scripts/smoke-mcp-http.mjs --area=journal",
|
|
64
|
-
"runtime:work-order": "node scripts/runtime-work-order.mjs",
|
|
65
|
-
"validate:package": "node dist/cli.js validate --target . --package-layout",
|
|
66
|
-
"runtime:check": "node dist/cli.js check-runtime"
|
|
66
|
+
"validate:package": "node dist/cli.js validate --target . --package-layout"
|
|
67
67
|
},
|
|
68
68
|
"engines": {
|
|
69
69
|
"node": "22.x"
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
# DX Complete Process Scaffold
|
|
2
2
|
|
|
3
|
-
This directory
|
|
3
|
+
This directory contains editable process files for this DX Complete workspace.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Update these files when the workspace makes local decisions about decision-basis, engineering, service operation, roles, workflows, records, and controls.
|
|
6
6
|
|
|
7
|
-
The current scope commitment is that a Workspace contains one service scope. Statements, journal entries, decisions, requirements, work, cost, benefit, support, operations, and measurement records should be understood inside that workspace unless a project explicitly decides otherwise. The default runtime shape is one
|
|
7
|
+
The current scope commitment is that a Workspace contains one service scope. Statements, journal entries, decisions, requirements, work, cost, benefit, support, operations, and measurement records should be understood inside that workspace unless a project explicitly decides otherwise. The default runtime shape is one MCP endpoint for that installed workspace, with workspace identity coming from DX Complete config and access constrained by authenticated actor identity plus workspace authorization.
|
|
8
8
|
|
|
9
9
|
## Files
|
|
10
10
|
|
|
11
|
-
- `decision-basis.yml` stores
|
|
12
|
-
- `cost-model.yml` stores
|
|
13
|
-
- `roles.yml` stores
|
|
14
|
-
- `taxonomy.yml` stores
|
|
15
|
-
- `workflows.yml` stores
|
|
16
|
-
- `controls.yml` stores
|
|
11
|
+
- `decision-basis.yml` stores decision-basis templates and Commitment-or-Deferral framing.
|
|
12
|
+
- `cost-model.yml` stores current-state cost context, estimate, and actuals concepts.
|
|
13
|
+
- `roles.yml` stores role responsibilities.
|
|
14
|
+
- `taxonomy.yml` stores lifecycle records and relationships.
|
|
15
|
+
- `workflows.yml` stores workflow templates.
|
|
16
|
+
- `controls.yml` stores controls and evidence expectations.
|
|
17
17
|
- `diagrams/` stores editable Mermaid diagrams.
|
|
18
18
|
- `evidence/` stores captured evidence or pointers to evidence.
|
|
19
19
|
- `decisions/` stores decision records.
|
|
@@ -21,7 +21,7 @@ The current scope commitment is that a Workspace contains one service scope. Sta
|
|
|
21
21
|
|
|
22
22
|
## Editing Guidance
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
When a decision changes the workspace process, capture the decision record and update the relevant YAML, Markdown, and Mermaid files together.
|
|
25
25
|
|
|
26
26
|
## Suggested First Pass
|
|
27
27
|
|
|
@@ -35,4 +35,4 @@ Prefer explicit draft language until a decision is made. When a decision is made
|
|
|
35
35
|
8. Keep `Requirement` as the main engineering lifecycle object unless the model proves otherwise.
|
|
36
36
|
9. Remove objects that are too heavy for the current context.
|
|
37
37
|
10. Add evidence expectations only where they are useful.
|
|
38
|
-
11. Review open questions before turning
|
|
38
|
+
11. Review open questions before turning local process changes into policy.
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
schema: dxcomplete.controls.v0
|
|
2
|
-
status:
|
|
2
|
+
status: current
|
|
3
3
|
notes:
|
|
4
|
-
- Controls are
|
|
5
|
-
- Do not treat these as compliance requirements without a
|
|
4
|
+
- Controls are editable workspace process expectations.
|
|
5
|
+
- Do not treat these as compliance requirements without a workspace-specific decision.
|
|
6
6
|
|
|
7
7
|
controls:
|
|
8
8
|
- id: cost_visibility
|
|
9
9
|
name: Cost visibility
|
|
10
|
-
|
|
10
|
+
purpose: Ensure the workspace elicits enough detail, attempts current-state cost visibility, generates a cost Estimate where cost reasoning is needed, and records Benefits where benefit reasoning is needed.
|
|
11
11
|
applies_to:
|
|
12
12
|
- Workspace
|
|
13
13
|
- Estimate
|
|
14
14
|
- Benefits
|
|
15
|
-
|
|
15
|
+
evidence:
|
|
16
16
|
- Elicited needs, dependencies, constraints, and unknowns.
|
|
17
17
|
- Current-state cost context, including unavailable or undisclosed data notes where applicable.
|
|
18
18
|
- Estimate with assumptions and cost roll-up.
|
|
@@ -23,10 +23,10 @@ controls:
|
|
|
23
23
|
|
|
24
24
|
- id: requirement_acceptance_criteria
|
|
25
25
|
name: Requirement acceptance criteria
|
|
26
|
-
|
|
26
|
+
purpose: Ensure each requirement has enough clarity for engineering work, QA verification, and product validation.
|
|
27
27
|
applies_to:
|
|
28
28
|
- Requirement
|
|
29
|
-
|
|
29
|
+
evidence:
|
|
30
30
|
- Requirement record with acceptance criteria.
|
|
31
31
|
- Owner or delegated approval.
|
|
32
32
|
- Review notes where Engineer input should remain visible.
|
|
@@ -35,11 +35,11 @@ controls:
|
|
|
35
35
|
|
|
36
36
|
- id: implementation_review
|
|
37
37
|
name: Implementation review
|
|
38
|
-
|
|
38
|
+
purpose: Ensure engineering output is reviewed before QA verification.
|
|
39
39
|
applies_to:
|
|
40
40
|
- Task
|
|
41
41
|
- Change
|
|
42
|
-
|
|
42
|
+
evidence:
|
|
43
43
|
- Pull request, commit, or task review notes.
|
|
44
44
|
- Engineer approval or review outcome.
|
|
45
45
|
open_questions:
|
|
@@ -47,12 +47,12 @@ controls:
|
|
|
47
47
|
|
|
48
48
|
- id: qa_verification_evidence
|
|
49
49
|
name: QA verification evidence
|
|
50
|
-
|
|
50
|
+
purpose: Preserve verification results against requirements and acceptance criteria.
|
|
51
51
|
applies_to:
|
|
52
52
|
- Requirement
|
|
53
53
|
- Task
|
|
54
54
|
- Change
|
|
55
|
-
|
|
55
|
+
evidence:
|
|
56
56
|
- Test plan or verification notes.
|
|
57
57
|
- Pass, fail, or retest outcome.
|
|
58
58
|
- Defects or follow-up tasks where needed.
|
|
@@ -61,11 +61,11 @@ controls:
|
|
|
61
61
|
|
|
62
62
|
- id: product_validation
|
|
63
63
|
name: Product validation
|
|
64
|
-
|
|
64
|
+
purpose: Confirm the verified output is the right product outcome.
|
|
65
65
|
applies_to:
|
|
66
66
|
- Requirement
|
|
67
67
|
- Release
|
|
68
|
-
|
|
68
|
+
evidence:
|
|
69
69
|
- Product validation note.
|
|
70
70
|
- Owner approval or user input where required.
|
|
71
71
|
open_questions:
|
|
@@ -73,11 +73,11 @@ controls:
|
|
|
73
73
|
|
|
74
74
|
- id: release_readiness
|
|
75
75
|
name: Release readiness
|
|
76
|
-
|
|
76
|
+
purpose: Confirm change type, scope, risk, rollback, notice, veto, and required evidence before release.
|
|
77
77
|
applies_to:
|
|
78
78
|
- Change
|
|
79
79
|
- Release
|
|
80
|
-
|
|
80
|
+
evidence:
|
|
81
81
|
- Change record with baseline plan sections.
|
|
82
82
|
- Append-only Change events for notice, veto, emergency, decision, result, recovery, notes, or revisions where applicable.
|
|
83
83
|
- Release checklist.
|
|
@@ -88,10 +88,10 @@ controls:
|
|
|
88
88
|
|
|
89
89
|
- id: deployment_record
|
|
90
90
|
name: Deployment record
|
|
91
|
-
|
|
91
|
+
purpose: Preserve when, where, and how a release was deployed.
|
|
92
92
|
applies_to:
|
|
93
93
|
- Deployment
|
|
94
|
-
|
|
94
|
+
evidence:
|
|
95
95
|
- Deployment identifier or URL.
|
|
96
96
|
- Environment.
|
|
97
97
|
- Timestamp.
|
|
@@ -101,14 +101,14 @@ controls:
|
|
|
101
101
|
|
|
102
102
|
- id: service_impact_response_evidence
|
|
103
103
|
name: Service-impact response evidence
|
|
104
|
-
|
|
104
|
+
purpose: Preserve response details for service-impacting events through Incident entries.
|
|
105
105
|
applies_to:
|
|
106
106
|
- DX Complete Ticket
|
|
107
107
|
- Risk
|
|
108
108
|
- Task
|
|
109
109
|
- Change
|
|
110
110
|
- Decision
|
|
111
|
-
|
|
111
|
+
evidence:
|
|
112
112
|
- Timeline.
|
|
113
113
|
- Impact.
|
|
114
114
|
- Actions taken.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
schema: dxcomplete.cost_model.v0
|
|
2
|
-
status:
|
|
2
|
+
status: current
|
|
3
3
|
notes:
|
|
4
4
|
- Use broad cost language at the top level.
|
|
5
5
|
- OPEX/CAPEX-like categories can exist inside the cost model, but should not be the top-level frame.
|
|
@@ -25,7 +25,7 @@ cost_objects:
|
|
|
25
25
|
estimate:
|
|
26
26
|
purpose: Itemized cost information for the scope being weighed.
|
|
27
27
|
generated_by_default: true
|
|
28
|
-
|
|
28
|
+
fields:
|
|
29
29
|
- line_items
|
|
30
30
|
- covered_requirements
|
|
31
31
|
- covered_expectations
|
|
@@ -41,7 +41,7 @@ cost_objects:
|
|
|
41
41
|
|
|
42
42
|
benefits:
|
|
43
43
|
purpose: Expected benefit information for the scope being weighed.
|
|
44
|
-
|
|
44
|
+
fields:
|
|
45
45
|
- benefit_items
|
|
46
46
|
- covered_requirements
|
|
47
47
|
- covered_expectations
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
schema: dxcomplete.decision_basis.v0
|
|
2
|
-
status:
|
|
2
|
+
status: current
|
|
3
3
|
notes:
|
|
4
4
|
- Decision basis is first-class, but it is assembled from deliberate records rather than a standalone extra record.
|
|
5
5
|
- Use Estimate for cost, Benefits for expected value, and Decision entries for rationale where a separate decision trail is useful.
|
|
@@ -16,10 +16,10 @@ decision_basis_rules:
|
|
|
16
16
|
- greenfield
|
|
17
17
|
- limited-disclosure
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
decision_basis:
|
|
20
20
|
id: null
|
|
21
21
|
workspace_id: null
|
|
22
|
-
status:
|
|
22
|
+
status: current
|
|
23
23
|
problem_to_be_solved: null
|
|
24
24
|
goal: null
|
|
25
25
|
workspace_mode: null
|
|
@@ -41,7 +41,7 @@ draft_decision_basis:
|
|
|
41
41
|
unavailable_data: []
|
|
42
42
|
limited_disclosure_notes: []
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
statuses:
|
|
45
45
|
- draft
|
|
46
46
|
- awaiting_current_state_context
|
|
47
47
|
- awaiting_estimate
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
%% DX Complete
|
|
1
|
+
%% DX Complete diagram. Decision basis is upstream of Complete Engineering.
|
|
2
2
|
flowchart LR
|
|
3
3
|
Workspace[Workspace] --> Statement[Capture User Statement]
|
|
4
4
|
Statement --> Expectation[Restate Expected Result]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
%%
|
|
1
|
+
%% DX Complete intake and triage workflow.
|
|
2
2
|
flowchart TD
|
|
3
3
|
Signal[Incoming signal] --> Source{Likely source?}
|
|
4
|
-
Source -->|Client or user| SupportSignal[Support Request
|
|
5
|
-
Source -->|Product idea| Feedback[Feedback
|
|
6
|
-
Source -->|Authority or commitment| AuthoritySignal[Authoritative Request
|
|
4
|
+
Source -->|Client or user| SupportSignal[Support Request candidate]
|
|
5
|
+
Source -->|Product idea| Feedback[Feedback candidate]
|
|
6
|
+
Source -->|Authority or commitment| AuthoritySignal[Authoritative Request candidate]
|
|
7
7
|
Source -->|Service health| ServiceImpact[Service-impact signal]
|
|
8
8
|
SupportSignal --> Triage[Triage]
|
|
9
9
|
Feedback --> Triage
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
%%
|
|
1
|
+
%% DX Complete product definition workflow.
|
|
2
2
|
flowchart TD
|
|
3
3
|
SourceObject[Feedback / Feature Request / Authoritative Request / Recurring issue] --> Clarify[Clarify desired outcome]
|
|
4
4
|
Clarify --> Statement[Capture User Statement]
|
|
5
5
|
Statement --> Expectation[Restate Expected Result]
|
|
6
|
-
Expectation --> Requirement[
|
|
7
|
-
Requirement --> Acceptance[
|
|
6
|
+
Expectation --> Requirement[Requirement]
|
|
7
|
+
Requirement --> Acceptance[Acceptance criteria]
|
|
8
8
|
Acceptance --> Constraints[Identify constraints and risks]
|
|
9
9
|
Constraints --> Review{Ready for engineering review?}
|
|
10
10
|
Review -->|No| OpenQuestions[Record open questions]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
%%
|
|
1
|
+
%% DX Complete audit and evidence capture workflow.
|
|
2
2
|
flowchart TD
|
|
3
3
|
LifecycleObject[Requirement / Task / Change / Incident / Problem / Decision / Risk / Control] --> EvidenceNeed{Evidence needed?}
|
|
4
4
|
EvidenceNeed -->|No| Note[Record no evidence required decision if useful]
|
|
@@ -9,7 +9,7 @@ notes:
|
|
|
9
9
|
roles:
|
|
10
10
|
- id: owner
|
|
11
11
|
name: Owner
|
|
12
|
-
|
|
12
|
+
responsibility: Sets authority, priority, outcome direction, requirements, product validation direction, budget commitment, escalation direction, and formal risk acceptance.
|
|
13
13
|
likely_owns:
|
|
14
14
|
- authority
|
|
15
15
|
- priority
|
|
@@ -30,7 +30,7 @@ roles:
|
|
|
30
30
|
|
|
31
31
|
- id: engineer
|
|
32
32
|
name: Engineer
|
|
33
|
-
|
|
33
|
+
responsibility: Turns committed requirements into tasks and working changes, either directly or by driving coding-capable tools.
|
|
34
34
|
likely_owns:
|
|
35
35
|
- solution approach
|
|
36
36
|
- task decomposition
|
|
@@ -46,7 +46,7 @@ roles:
|
|
|
46
46
|
|
|
47
47
|
- id: tester
|
|
48
48
|
name: Tester
|
|
49
|
-
|
|
49
|
+
responsibility: Checks completed work against requirements and success criteria.
|
|
50
50
|
likely_owns:
|
|
51
51
|
- verification plans
|
|
52
52
|
- test evidence
|
|
@@ -57,7 +57,7 @@ roles:
|
|
|
57
57
|
|
|
58
58
|
- id: operator
|
|
59
59
|
name: Operator
|
|
60
|
-
|
|
60
|
+
responsibility: Releases, deploys, monitors, and runs the service, including provisioning, administration, users, permissions, settings, and run-side security.
|
|
61
61
|
likely_owns:
|
|
62
62
|
- release execution
|
|
63
63
|
- deployment
|
|
@@ -75,7 +75,7 @@ roles:
|
|
|
75
75
|
|
|
76
76
|
- id: support_agent
|
|
77
77
|
name: Support Agent
|
|
78
|
-
|
|
78
|
+
responsibility: Helps users, captures signals, and routes questions, feedback, and issues to the right follow-up.
|
|
79
79
|
likely_owns:
|
|
80
80
|
- user issue communication
|
|
81
81
|
- support tickets
|
|
@@ -86,7 +86,7 @@ roles:
|
|
|
86
86
|
|
|
87
87
|
- id: end_user
|
|
88
88
|
name: End User
|
|
89
|
-
|
|
89
|
+
responsibility: Uses the service and provides requests, feedback, corrections, and issue reports.
|
|
90
90
|
likely_owns:
|
|
91
91
|
- service use
|
|
92
92
|
- feedback
|