scene-capability-engine 3.6.57 → 3.6.59

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 (36) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +5 -3
  3. package/README.zh.md +5 -3
  4. package/bin/scene-capability-engine.js +2 -0
  5. package/docs/command-reference.md +72 -0
  6. package/docs/magicball-adaptation-task-checklist-v1.md +65 -10
  7. package/docs/magicball-cli-invocation-examples.md +53 -8
  8. package/docs/magicball-engineering-projection-contract.md +175 -0
  9. package/docs/magicball-frontend-state-and-command-mapping.md +42 -5
  10. package/docs/magicball-integration-doc-index.md +19 -5
  11. package/docs/magicball-integration-issue-tracker.md +15 -5
  12. package/docs/magicball-mode-home-and-ontology-empty-state-playbook.md +13 -5
  13. package/docs/magicball-project-portfolio-contract.md +216 -0
  14. package/docs/magicball-sce-adaptation-guide.md +18 -4
  15. package/docs/magicball-ui-surface-checklist.md +25 -0
  16. package/docs/magicball-write-auth-adaptation-guide.md +3 -1
  17. package/docs/release-checklist.md +8 -0
  18. package/docs/releases/README.md +2 -0
  19. package/docs/releases/v3.6.58.md +27 -0
  20. package/docs/releases/v3.6.59.md +18 -0
  21. package/docs/zh/release-checklist.md +8 -0
  22. package/docs/zh/releases/README.md +2 -0
  23. package/docs/zh/releases/v3.6.58.md +27 -0
  24. package/docs/zh/releases/v3.6.59.md +18 -0
  25. package/lib/app/engineering-scaffold-service.js +154 -0
  26. package/lib/commands/app.js +442 -13
  27. package/lib/commands/project.js +105 -0
  28. package/lib/commands/scene.js +16 -0
  29. package/lib/project/portfolio-projection-service.js +389 -0
  30. package/lib/project/supervision-projection-service.js +329 -0
  31. package/lib/project/target-resolution-service.js +180 -0
  32. package/lib/scene/delivery-projection-service.js +650 -0
  33. package/package.json +6 -2
  34. package/scripts/magicball-engineering-contract-audit.js +347 -0
  35. package/scripts/magicball-project-contract-audit.js +254 -0
  36. package/template/.sce/README.md +2 -2
@@ -17,6 +17,8 @@ These are the current first-line integration documents:
17
17
  - `docs/magicball-app-collection-phase-1.md`
18
18
  - `docs/app-intent-apply-contract.md`
19
19
  - `docs/magicball-ui-surface-checklist.md`
20
+ - `docs/magicball-engineering-projection-contract.md`
21
+ - `docs/magicball-project-portfolio-contract.md`
20
22
  - `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
21
23
  - `docs/magicball-frontend-state-and-command-mapping.md`
22
24
  - `docs/magicball-cli-invocation-examples.md`
@@ -47,23 +49,31 @@ These are the current first-line integration documents:
47
49
  - serialized mode-home loading
48
50
  - ontology empty-state and starter-seed behavior
49
51
 
50
- 6. `docs/magicball-frontend-state-and-command-mapping.md`
52
+ 6. `docs/magicball-engineering-projection-contract.md`
53
+ - stable engineering-facing payloads
54
+ - delivery / preview / ownership / open-import / scaffold contracts
55
+
56
+ 7. `docs/magicball-project-portfolio-contract.md`
57
+ - multi-project roster / target-resolution / supervision contracts
58
+ - phase-1 project switcher and cross-project preflight boundary
59
+
60
+ 8. `docs/magicball-frontend-state-and-command-mapping.md`
51
61
  - page state ownership
52
62
  - command-to-action mapping
53
63
  - error and retry boundaries
54
64
 
55
- 7. `docs/magicball-write-auth-adaptation-guide.md`
65
+ 9. `docs/magicball-write-auth-adaptation-guide.md`
56
66
  - write authorization and lease handling
57
67
 
58
- 8. `docs/magicball-task-feedback-timeline-guide.md`
68
+ 10. `docs/magicball-task-feedback-timeline-guide.md`
59
69
  - task feedback cards
60
70
  - timeline view integration
61
71
 
62
- 9. `docs/magicball-cli-invocation-examples.md`
72
+ 11. `docs/magicball-cli-invocation-examples.md`
63
73
  - copy-ready CLI examples
64
74
  - wrapper and smoke verification patterns
65
75
 
66
- 10. `docs/magicball-integration-issue-tracker.md`
76
+ 12. `docs/magicball-integration-issue-tracker.md`
67
77
  - current cross-project truth
68
78
  - only open issues, active decisions, and verified resolutions
69
79
 
@@ -75,6 +85,8 @@ Use:
75
85
  - `docs/magicball-app-collection-phase-1.md`
76
86
  - `docs/app-intent-apply-contract.md`
77
87
  - `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
88
+ - `docs/magicball-engineering-projection-contract.md`
89
+ - `docs/magicball-project-portfolio-contract.md`
78
90
  - `docs/magicball-frontend-state-and-command-mapping.md`
79
91
 
80
92
  ### I need to implement ontology empty-state and starter seed
@@ -111,6 +123,8 @@ Use:
111
123
  | `app-intent-apply-contract.md` | apply JSON contract | medium |
112
124
  | `magicball-adaptation-task-checklist-v1.md` | execution checklist | medium |
113
125
  | `magicball-mode-home-and-ontology-empty-state-playbook.md` | frontend behavior policy | medium |
126
+ | `magicball-engineering-projection-contract.md` | engineering payload contract | medium |
127
+ | `magicball-project-portfolio-contract.md` | multi-project payload contract | medium |
114
128
  | `magicball-frontend-state-and-command-mapping.md` | frontend implementation mapping | medium |
115
129
  | `magicball-write-auth-adaptation-guide.md` | auth/write behavior | low |
116
130
  | `magicball-task-feedback-timeline-guide.md` | task/timeline integration | low |
@@ -25,9 +25,11 @@ SCE changes completed and now available for MagicBall:
25
25
  - `mode application home --app ... --json`
26
26
  - `mode ontology home --app ... --json`
27
27
  - `mode engineering home --app ... --json`
28
+ - `scene delivery show`
28
29
  - `app registry status/configure/sync*`
29
30
  - `app runtime show/releases/install/activate/uninstall`
30
- - `app engineering show/attach/hydrate/activate`
31
+ - `app engineering preview/ownership/open/import/show/attach/hydrate/scaffold/activate`
32
+ - `project portfolio show/target resolve/supervision show`
31
33
  - `pm requirement/tracking/planning/change/issue` data plane
32
34
  - `ontology er/br/dl` + `ontology triad summary`
33
35
  - `ontology seed list/show/apply`
@@ -38,14 +40,17 @@ SCE changes completed and now available for MagicBall:
38
40
  1. consume `mode * home` as the top-level source for the three modes
39
41
  2. consume `device current`, `app collection list/show/apply`, `scene workspace list/show/apply`, and `app install-state list` as the local device/install baseline
40
42
  3. consume `pm`, `ontology`, and `assurance` table payloads
41
- 4. wire runtime install/activate/uninstall and engineering attach/hydrate/activate actions
42
- 5. use demo app: `customer-order-demo`
43
+ 4. wire runtime install/activate/uninstall and engineering attach/hydrate/scaffold/activate actions
44
+ 5. treat `project portfolio / target resolve / supervision` as the default multi-project shell truth
45
+ 6. use demo app: `customer-order-demo`
43
46
 
44
47
  ### Related SCE docs
45
48
  - `docs/magicball-sce-adaptation-guide.md`
46
49
  - `docs/magicball-write-auth-adaptation-guide.md`
47
50
  - `docs/magicball-adaptation-task-checklist-v1.md`
48
51
  - `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
52
+ - `docs/magicball-engineering-projection-contract.md`
53
+ - `docs/magicball-project-portfolio-contract.md`
49
54
  - `docs/magicball-frontend-state-and-command-mapping.md`
50
55
  - `docs/magicball-ui-surface-checklist.md`
51
56
  - `docs/magicball-integration-doc-index.md`
@@ -54,6 +59,7 @@ SCE changes completed and now available for MagicBall:
54
59
  - current entry docs vs secondary references vs historical drafts are now separated in `docs/magicball-integration-doc-index.md`
55
60
  - serialized `mode * home` loading as the safe default during `Issue 001` verification
56
61
  - `fallback + optional seed apply` as the recommended default for fresh-project ontology UX under `Issue 003`
62
+ - multi-project roster / routing / supervision contract is now captured in `docs/magicball-project-portfolio-contract.md`
57
63
 
58
64
  ### Next Needed From MagicBall
59
65
  1. treat the current doc set as stable and move into feedback-driven integration using the current entry docs
@@ -95,7 +101,9 @@ Related commands that were being loaded together:
95
101
  - `sce mode application home --app customer-order-demo --json`
96
102
  - `sce mode ontology home --app customer-order-demo --json`
97
103
  - `sce mode engineering home --app customer-order-demo --json`
98
- - `sce app engineering show --app customer-order-demo --json`
104
+ - `sce scene delivery show --scene scene.customer-order-demo --json`
105
+ - `sce app engineering preview --app customer-order-demo --json`
106
+ - `sce app engineering ownership --app customer-order-demo --json`
99
107
 
100
108
  MagicBall action taken:
101
109
  - Changed mode-home loading from parallel to sequential in local store.
@@ -103,7 +111,9 @@ MagicBall action taken:
103
111
  1. application home
104
112
  2. ontology home
105
113
  3. engineering home
106
- 4. engineering show
114
+ 4. scene delivery show
115
+ 5. engineering preview
116
+ 6. engineering ownership
107
117
 
108
118
  SCE action taken:
109
119
  - Added short read retry handling for retryable sqlite lock errors on app/mode/pm/ontology/assurance read paths.
@@ -44,7 +44,9 @@ When opening an app page, MagicBall should call these commands in order:
44
44
  1. `sce mode application home --app <app-key> --json`
45
45
  2. `sce mode ontology home --app <app-key> --json`
46
46
  3. `sce mode engineering home --app <app-key> --json`
47
- 4. `sce app engineering show --app <app-key> --json`
47
+ 4. `sce scene delivery show --scene <scene-id> --json`
48
+ 5. `sce app engineering preview --app <app-key> --json`
49
+ 6. `sce app engineering ownership --app <app-key> --json`
48
50
 
49
51
  ### Frontend State Rule
50
52
 
@@ -52,6 +54,8 @@ Treat each call as one step in a small boot pipeline.
52
54
  Do not issue step 2 before step 1 resolves.
53
55
  Do not issue step 3 before step 2 resolves.
54
56
  Do not issue step 4 before step 3 resolves.
57
+ Do not issue step 5 before step 4 resolves.
58
+ Do not issue step 6 before step 5 resolves.
55
59
 
56
60
  Recommended local state shape:
57
61
 
@@ -59,7 +63,7 @@ Recommended local state shape:
59
63
  interface ModeBootState {
60
64
  appKey: string
61
65
  bootStatus: 'idle' | 'loading' | 'partial' | 'ready' | 'failed'
62
- activeStep: 'application-home' | 'ontology-home' | 'engineering-home' | 'engineering-show' | null
66
+ activeStep: 'application-home' | 'ontology-home' | 'engineering-home' | 'scene-delivery' | 'engineering-preview' | 'engineering-ownership' | null
63
67
  completedSteps: string[]
64
68
  lastError: string | null
65
69
  }
@@ -77,7 +81,9 @@ Recommended status copy:
77
81
  - step 1 loading: `Loading application view...`
78
82
  - step 2 loading: `Loading ontology view...`
79
83
  - step 3 loading: `Loading engineering view...`
80
- - step 4 loading: `Loading engineering workspace details...`
84
+ - step 4 loading: `Loading delivery evidence...`
85
+ - step 5 loading: `Loading engineering readiness...`
86
+ - step 6 loading: `Loading ownership relation...`
81
87
 
82
88
  ### Failure Handling
83
89
 
@@ -85,7 +91,7 @@ If a step fails:
85
91
  - preserve all previously loaded payloads
86
92
  - store the exact failing command and stderr text
87
93
  - show a retry action for the failed step only
88
- - do not automatically restart the full four-step sequence unless the app context changed
94
+ - do not automatically restart the full six-step sequence unless the app context changed
89
95
 
90
96
  Recommended retry behavior:
91
97
  - retry the failed step once on explicit user action
@@ -213,7 +219,9 @@ App Selected
213
219
  -> application home
214
220
  -> ontology home
215
221
  -> engineering home
216
- -> engineering show
222
+ -> scene delivery
223
+ -> engineering preview
224
+ -> engineering ownership
217
225
 
218
226
  Ontology Tab Opened
219
227
  -> ontology home
@@ -0,0 +1,216 @@
1
+ # MagicBall Project Portfolio Contract
2
+
3
+ ## Goal
4
+
5
+ Define the stable phase-1 SCE contract for MagicBall multi-project surfaces.
6
+
7
+ This document covers:
8
+ - project roster projection
9
+ - target-project preflight resolution
10
+ - project-scoped supervision snapshot
11
+
12
+ This document does not define UI layout.
13
+ It defines the backend payloads MagicBall should consume directly.
14
+
15
+ Use together with:
16
+ - `docs/magicball-sce-adaptation-guide.md`
17
+ - `docs/magicball-frontend-state-and-command-mapping.md`
18
+ - `docs/magicball-cli-invocation-examples.md`
19
+ - `docs/magicball-integration-issue-tracker.md`
20
+
21
+ ## Phase-1 Position
22
+
23
+ Phase-1 is read-first and engine-owned:
24
+ - project visibility comes from registered workspaces plus the current unregistered `.sce` project when applicable
25
+ - project identity is deterministic and stable for registered workspaces
26
+ - target resolution is preflight-only and does not mutate active workspace selection
27
+ - supervision is a project-scoped snapshot, not a raw cross-project event stream
28
+
29
+ Phase-1 does not introduce:
30
+ - a second persistent portfolio registry
31
+ - frontend-owned project identity synthesis
32
+ - implicit workspace switching during routing
33
+ - fake streaming semantics for supervision refresh
34
+
35
+ ## Command Set
36
+
37
+ ```bash
38
+ sce project portfolio show --json
39
+ sce project target resolve --json
40
+ sce project supervision show --project <project-id> --json
41
+ ```
42
+
43
+ Optional caller-context inputs:
44
+
45
+ ```bash
46
+ sce project portfolio show --workspace <workspace-name> --json
47
+ sce project target resolve --request "<text>" --current-project <project-id> --workspace <workspace-name> --device <device-id> --tool-instance-id <tool-id> --json
48
+ ```
49
+
50
+ ## 1. Project Portfolio Projection
51
+
52
+ ### Command
53
+
54
+ ```bash
55
+ sce project portfolio show --json
56
+ ```
57
+
58
+ ### Contract shape
59
+
60
+ ```ts
61
+ interface ProjectPortfolioProjection {
62
+ generatedAt: string
63
+ callerContext?: {
64
+ workspaceId?: string
65
+ projectId?: string
66
+ deviceId?: string
67
+ }
68
+ activeProjectId?: string
69
+ projects: ProjectPortfolioRecord[]
70
+ }
71
+
72
+ interface ProjectPortfolioRecord {
73
+ projectId: string
74
+ workspaceId?: string
75
+ projectRoot: string
76
+ projectName?: string
77
+ provenance?: 'registered' | 'discovered'
78
+ readiness: 'ready' | 'partial' | 'pending' | 'blocked' | 'unknown'
79
+ status: 'active' | 'background' | 'idle' | 'inaccessible' | 'unknown'
80
+ availability: 'accessible' | 'inaccessible' | 'degraded'
81
+ activeSessionCount: number
82
+ lastActivityAt?: string
83
+ summary?: {
84
+ sceneCount?: number
85
+ specCount?: number
86
+ }
87
+ partial?: boolean
88
+ partialReasons?: string[]
89
+ }
90
+ ```
91
+
92
+ ### MagicBall rules
93
+
94
+ - Use `projectId` as the stable project route token for multi-project UI state.
95
+ - Treat `workspaceId` as an optional display/debug field, not the only identity field.
96
+ - Use `activeProjectId` as the current project marker.
97
+ - Render `partial` and `availability` explicitly; do not silently drop degraded or inaccessible records.
98
+ - Do not rebuild roster truth from local UI cache when this payload is available.
99
+
100
+ ### Important phase-1 semantics
101
+
102
+ - Registered workspaces use stable `projectId` values derived from workspace identity, for example `workspace:<workspace-name>`.
103
+ - An unregistered current `.sce` project may appear as one local `discovered` partial record.
104
+ - `status=active` means the project matches caller context, not merely that it has background scene activity.
105
+
106
+ ## 2. Target Resolution
107
+
108
+ ### Command
109
+
110
+ ```bash
111
+ sce project target resolve --request "<text>" --current-project <project-id> --json
112
+ ```
113
+
114
+ ### Contract shape
115
+
116
+ ```ts
117
+ interface ProjectTargetResolution {
118
+ resolvedAt: string
119
+ callerContext: {
120
+ currentProjectId?: string
121
+ workspaceId?: string
122
+ deviceId?: string
123
+ toolInstanceId?: string
124
+ }
125
+ status: 'current-project' | 'resolved-other-project' | 'ambiguous' | 'unresolved'
126
+ currentProjectId?: string
127
+ resolvedProjectId?: string
128
+ confidence?: number
129
+ reasonCode?: string
130
+ candidates?: Array<{
131
+ projectId: string
132
+ workspaceId?: string
133
+ projectName?: string
134
+ appKey?: string
135
+ confidence?: number
136
+ reasonCode?: string
137
+ }>
138
+ }
139
+ ```
140
+
141
+ ### MagicBall rules
142
+
143
+ - Call `target resolve` before cross-project assistant or orchestration flows when the user request can target another project.
144
+ - Keep caller-submitted `currentProjectId` and engine-resolved `resolvedProjectId` separately.
145
+ - If `status=ambiguous`, show candidate selection UI instead of auto-picking.
146
+ - If `status=unresolved`, preserve the exact request text and returned reason for user clarification.
147
+ - Never treat `--workspace` as permission to switch the globally active workspace in frontend state.
148
+
149
+ ## 3. Project Supervision Snapshot
150
+
151
+ ### Command
152
+
153
+ ```bash
154
+ sce project supervision show --project <project-id> --json
155
+ ```
156
+
157
+ ### Contract shape
158
+
159
+ ```ts
160
+ interface ProjectSupervisionProjection {
161
+ generatedAt: string
162
+ projectId: string
163
+ cursor?: string
164
+ summary: {
165
+ blockedCount: number
166
+ handoffCount: number
167
+ riskCount: number
168
+ activeSceneCount?: number
169
+ activeSpecCount?: number
170
+ activeTaskCount?: number
171
+ latestEventAt?: string
172
+ }
173
+ items: ProjectSupervisionItem[]
174
+ partial?: boolean
175
+ partialReasons?: string[]
176
+ }
177
+
178
+ interface ProjectSupervisionItem {
179
+ id: string
180
+ kind: 'blocked' | 'handoff' | 'risk' | 'active'
181
+ state: string
182
+ reasonCode?: string
183
+ sceneId?: string
184
+ specId?: string
185
+ taskRef?: string
186
+ requestId?: string
187
+ eventId?: string
188
+ updatedAt: string
189
+ summary: string
190
+ }
191
+ ```
192
+
193
+ ### MagicBall rules
194
+
195
+ - Render summary counters directly from `summary`.
196
+ - Use `items[]` for drillback cards or project health detail panels.
197
+ - Preserve `sceneId/specId/requestId/eventId` for navigation and audit views.
198
+ - Treat `cursor` as an opaque polling checkpoint only.
199
+ - Do not present `cursor` as a replayable event stream offset.
200
+
201
+ ## 4. Recommended Multi-Project Frontend Flow
202
+
203
+ 1. Load `sce project portfolio show --json` when entering the multi-project shell.
204
+ 2. Store `activeProjectId` and render a project switcher from `projects[]`.
205
+ 3. When the user enters a cross-project free-text request, preflight with `sce project target resolve --json`.
206
+ 4. After project selection or successful resolution, load `sce project supervision show --project <project-id> --json`.
207
+ 5. Keep per-project tabs and page layout frontend-owned, but keep project truth engine-owned.
208
+
209
+ ## 5. Minimal Acceptance Criteria For MagicBall
210
+
211
+ MagicBall can treat multi-project phase-1 as integrated when:
212
+ - project switcher uses `project portfolio show`
213
+ - cross-project preflight uses `project target resolve`
214
+ - project health/drillback uses `project supervision show`
215
+ - degraded and inaccessible projects are rendered explicitly
216
+ - target resolution never mutates global active workspace state implicitly
@@ -15,6 +15,8 @@ Use these documents together:
15
15
  - `docs/magicball-app-collection-phase-1.md`
16
16
  - `docs/app-intent-apply-contract.md`
17
17
  - `docs/magicball-ui-surface-checklist.md`
18
+ - `docs/magicball-engineering-projection-contract.md`
19
+ - `docs/magicball-project-portfolio-contract.md`
18
20
  - `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
19
21
  - `docs/magicball-frontend-state-and-command-mapping.md`
20
22
  - `docs/magicball-cli-invocation-examples.md`
@@ -33,12 +35,13 @@ SCE currently provides MagicBall-facing support for:
33
35
  6. `app install-state` local device projection
34
36
  7. `application / ontology / engineering home projections`
35
37
  8. `app runtime install / activate / uninstall`
36
- 9. `app engineering attach / hydrate / activate`
38
+ 9. `app engineering attach / hydrate / scaffold / activate`
37
39
  10. `pm` delivery data plane
38
40
  11. `ontology` triad data plane
39
41
  12. `assurance` data plane
40
42
  13. `write authorization`
41
43
  14. `task feedback + timeline`
44
+ 15. `project portfolio / target resolve / supervision`
42
45
 
43
46
  ## Planned Next Scope
44
47
 
@@ -89,7 +92,9 @@ Current default during `Issue 001` verification:
89
92
  1. `mode application home`
90
93
  2. `mode ontology home`
91
94
  3. `mode engineering home`
92
- 4. `app engineering show`
95
+ 4. `scene delivery show`
96
+ 5. `app engineering preview`
97
+ 6. `app engineering ownership`
93
98
 
94
99
  ### 3. Fresh ontology behavior
95
100
 
@@ -125,14 +130,21 @@ Use `docs/magicball-cli-invocation-examples.md` for copy-ready commands.
125
130
  - `sce mode application home`
126
131
  - `sce mode ontology home`
127
132
  - `sce mode engineering home`
128
- - `sce app engineering show`
133
+ - `sce scene delivery show`
134
+ - `sce app engineering preview`
135
+ - `sce app engineering ownership`
129
136
 
130
137
  ### Runtime and engineering control
131
138
  - `sce device override show/upsert`
132
139
  - `sce app runtime show/releases/install/activate/uninstall`
133
- - `sce app engineering show/attach/hydrate/activate`
140
+ - `sce app engineering preview/ownership/open/import/show/attach/hydrate/scaffold/activate`
134
141
  - `sce app registry status/configure/sync*`
135
142
 
143
+ ### Multi-project control
144
+ - `sce project portfolio show`
145
+ - `sce project target resolve`
146
+ - `sce project supervision show`
147
+
136
148
  ### Engineering data plane
137
149
  - `sce pm requirement list/show/upsert`
138
150
  - `sce pm tracking board/show/upsert`
@@ -214,6 +226,7 @@ MagicBall should use `view_model.columns` as the preferred visible-column contra
214
226
 
215
227
  ### Specialized docs own
216
228
  - page-level done criteria: `docs/magicball-ui-surface-checklist.md`
229
+ - multi-project contracts: `docs/magicball-project-portfolio-contract.md`
217
230
  - frontend state + command mapping: `docs/magicball-frontend-state-and-command-mapping.md`
218
231
  - mode-home + ontology empty-state behavior: `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
219
232
  - copy-ready commands: `docs/magicball-cli-invocation-examples.md`
@@ -230,3 +243,4 @@ MagicBall should now integrate SCE in this order:
230
243
  4. keep ontology empty-state explicit and seed apply optional
231
244
  5. keep write flows lease-aware
232
245
  6. use task/timeline view contracts instead of raw event-first rendering
246
+ 7. use `project portfolio / target resolve / supervision` for multi-project shells instead of frontend-rebuilt workspace truth
@@ -10,6 +10,8 @@ Do not use it as the source of truth for state ownership, command mapping, or de
10
10
 
11
11
  Use together with:
12
12
  - `docs/magicball-frontend-state-and-command-mapping.md`
13
+ - `docs/magicball-engineering-projection-contract.md`
14
+ - `docs/magicball-project-portfolio-contract.md`
13
15
  - `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
14
16
  - `docs/magicball-cli-invocation-examples.md`
15
17
  - `docs/magicball-write-auth-adaptation-guide.md`
@@ -75,12 +77,16 @@ Use together with:
75
77
 
76
78
  ### Must render
77
79
  - delivery summary
80
+ - delivery column from `scene delivery show`
81
+ - engineering readiness state from `app engineering preview`
82
+ - engineering ownership state from `app engineering ownership`
78
83
  - requirement / tracking / planning / change / issue tabs
79
84
  - assurance tabs
80
85
  - engineering workspace detail
81
86
 
82
87
  ### Done when
83
88
  - engineering tables use SCE table payloads directly
89
+ - delivery / preview / ownership panels render backend contracts directly
84
90
  - empty engineering tables render as empty states, not legacy markdown fallbacks by default
85
91
 
86
92
  ## 6. Write Authorization
@@ -121,6 +127,25 @@ Detailed state ownership and error boundary rules live in:
121
127
 
122
128
  MagicBall can treat the current SCE integration as baseline-ready when:
123
129
  - workspace shell is serialized and stable
130
+ - multi-project shell uses engine-owned project roster and supervision truth
124
131
  - ontology empty-state is explicit and usable
125
132
  - write authorization is shared capability, not page-by-page improvisation
126
133
  - task/timeline surfaces use SCE view contracts instead of raw event-first rendering
134
+
135
+ ## 10. Multi-project Shell
136
+
137
+ ### Must render
138
+ - project switcher from `project portfolio show`
139
+ - current project marker
140
+ - project health summary from `project supervision show`
141
+ - explicit degraded / inaccessible project states
142
+
143
+ ### Must behave correctly
144
+ - cross-project free-text routing preflights through `project target resolve`
145
+ - ambiguous resolution does not auto-select silently
146
+ - target resolution does not implicitly switch active workspace selection
147
+
148
+ ### Done when
149
+ - frontend no longer rebuilds project roster from local workspace cache alone
150
+ - supervision panel uses backend snapshot items directly
151
+ - unresolved or ambiguous routing is visible and auditable
@@ -64,6 +64,7 @@ Current implemented write flows in SCE imply these practical action families:
64
64
  - `app:registry:configure`
65
65
  - `app:engineering:attach`
66
66
  - `app:engineering:hydrate`
67
+ - `app:engineering:scaffold`
67
68
  - `app:engineering:activate`
68
69
  - `app:runtime:install`
69
70
  - `app:runtime:activate`
@@ -174,6 +175,7 @@ Recommended UI steps:
174
175
  | Update registry config | `sce app registry configure` | `app:registry:configure` |
175
176
  | Attach engineering project | `sce app engineering attach` | `app:engineering:attach` |
176
177
  | Hydrate engineering workspace | `sce app engineering hydrate` | `app:engineering:hydrate` |
178
+ | Scaffold engineering workspace baseline | `sce app engineering scaffold` | `app:engineering:scaffold` |
177
179
  | Activate engineering workspace | `sce app engineering activate` | `app:engineering:activate` |
178
180
  | Install runtime release | `sce app runtime install` | `app:runtime:install` |
179
181
  | Activate runtime release | `sce app runtime activate` | `app:runtime:activate` |
@@ -205,7 +207,7 @@ sce auth grant --scope app:runtime:uninstall --reason "remove non-active install
205
207
 
206
208
  ### Multiple scopes if one workflow batches mutations
207
209
  ```bash
208
- sce auth grant --scope app:engineering:attach,app:engineering:hydrate,app:engineering:activate --reason "initialize engineering workspace" --json
210
+ sce auth grant --scope app:engineering:attach,app:engineering:hydrate,app:engineering:scaffold,app:engineering:activate --reason "initialize engineering workspace" --json
209
211
  ```
210
212
 
211
213
  ## How MagicBall Should Pass Lease To SCE
@@ -82,12 +82,20 @@ Check that key docs are aligned with current version and capabilities:
82
82
  Optional sanity scan:
83
83
 
84
84
  ```bash
85
+ npm run audit:magicball-engineering-contract
86
+ npm run audit:magicball-project-contract
87
+
85
88
  rg -n "yourusername|support@example.com" README.md README.zh.md docs docs/zh -S
86
89
 
87
90
  # Canonical repository link check (should return no matches)
88
91
  rg -n "github.com/scene-capability-engine/sce" README.md README.zh.md docs START_HERE.txt INSTALL_OFFLINE.txt -S -g "!docs/release-checklist.md" -g "!docs/zh/release-checklist.md"
89
92
  ```
90
93
 
94
+ Additional expectation:
95
+
96
+ - `audit:magicball-engineering-contract` passes so active MagicBall entry docs stay aligned with `scene delivery`, `engineering preview/ownership`, and `open/import/scaffold` contracts.
97
+ - `audit:magicball-project-contract` passes so active MagicBall entry docs stay aligned with `project portfolio`, `project target resolve`, and `project supervision show` contracts.
98
+
91
99
  ---
92
100
 
93
101
  ## 6. Git Readiness
@@ -9,6 +9,8 @@ This directory stores release-facing documents:
9
9
  ## Archived Versions
10
10
 
11
11
  - [Release checklist](../release-checklist.md)
12
+ - [v3.6.59 release notes](./v3.6.59.md)
13
+ - [v3.6.58 release notes](./v3.6.58.md)
12
14
  - [v3.6.57 release notes](./v3.6.57.md)
13
15
  - [v3.6.56 release notes](./v3.6.56.md)
14
16
  - [v3.6.55 release notes](./v3.6.55.md)
@@ -0,0 +1,27 @@
1
+ # v3.6.58 Release Notes
2
+
3
+ Release date: 2026-03-19
4
+
5
+ ## Highlights
6
+
7
+ - Added canonical delivery and engineering projection contracts for MagicBall, including `sce scene delivery show` and the `app engineering preview|ownership|open|import|scaffold` line.
8
+ - Added phase-1 multi-project read contracts: `sce project portfolio show`, `sce project target resolve`, and `sce project supervision show`.
9
+ - Synced MagicBall integration docs, CLI examples, frontend mapping, checklist, tracker, README, and release checklist so the new project/engineering surfaces are documented as stable integration inputs.
10
+ - Added release-time MagicBall project-contract auditing so publish flow now checks both engineering and multi-project contract drift.
11
+
12
+ ## Validation
13
+
14
+ - `npx jest tests/unit/commands/app-mode.test.js --runInBand`
15
+ - `npx jest tests/unit/commands/scene-delivery.test.js --runInBand`
16
+ - `npx jest tests/unit/commands/project.test.js --runInBand`
17
+ - `npx jest tests/integration/project-cli.integration.test.js --runInBand`
18
+ - `npx jest tests/unit/scripts/magicball-engineering-contract-audit.test.js --runInBand`
19
+ - `npx jest tests/unit/scripts/magicball-project-contract-audit.test.js --runInBand`
20
+ - `npm run audit:magicball-project-contract`
21
+ - `npm run audit:magicball-engineering-contract`
22
+ - `npm run test:release`
23
+ - `node scripts/release-doc-version-audit.js --fail-on-error`
24
+
25
+ ## Release Notes
26
+
27
+ - This patch turns the recent MagicBall/IDE projection work into a stable release line instead of a local patch stack. On the engineering side, SCE now exposes delivery projection plus conservative engineering readiness, ownership, open/import, and scaffold envelopes through one documented contract set. On the multi-project side, SCE now exposes an engine-owned project roster, target-project preflight resolution, and project-scoped supervision snapshot so adapters no longer need to synthesize portfolio truth from local workspace state. The accompanying MagicBall docs and publish audits were updated together, so future npm installs or local upgrades keep the same integration behavior instead of silently dropping these contracts.
@@ -0,0 +1,18 @@
1
+ # v3.6.59 Release Notes
2
+
3
+ Release date: 2026-03-19
4
+
5
+ ## Highlights
6
+
7
+ - Published an alignment-only follow-up patch so the npm package, repository tag, and release branch all reference the same final repository state.
8
+ - Kept the MagicBall delivery, engineering, and multi-project contracts exactly the same as `v3.6.58`.
9
+
10
+ ## Validation
11
+
12
+ - `npm run audit:release-docs`
13
+ - `node scripts/git-managed-gate.js --fail-on-violation --json`
14
+ - `npm publish --access public` via `prepublishOnly`
15
+
16
+ ## Release Notes
17
+
18
+ - This patch does not introduce new runtime or adapter-facing behavior. It exists to remove release-state ambiguity after the post-release shared project problem projection snapshot was committed to the repository. Use `v3.6.59` as the canonical follow-up version when strict npm/tag/repository alignment matters.
@@ -67,12 +67,20 @@ npm pack --dry-run
67
67
  可选扫描:
68
68
 
69
69
  ```bash
70
+ npm run audit:magicball-engineering-contract
71
+ npm run audit:magicball-project-contract
72
+
70
73
  rg -n "yourusername|support@example.com" README.md README.zh.md docs docs/zh -S
71
74
 
72
75
  # canonical 仓库链接扫描(应返回空)
73
76
  rg -n "github.com/scene-capability-engine/sce" README.md README.zh.md docs START_HERE.txt INSTALL_OFFLINE.txt -S -g "!docs/release-checklist.md" -g "!docs/zh/release-checklist.md"
74
77
  ```
75
78
 
79
+ 额外预期:
80
+
81
+ - `audit:magicball-engineering-contract` 通过,确保活跃的 MagicBall 入口文档与 `scene delivery`、`engineering preview/ownership`、`open/import/scaffold` 契约保持一致。
82
+ - `audit:magicball-project-contract` 通过,确保活跃的 MagicBall 入口文档与 `project portfolio`、`project target resolve`、`project supervision show` 契约保持一致。
83
+
76
84
  ---
77
85
 
78
86
  ## 5. Git 准备状态
@@ -9,6 +9,8 @@
9
9
  ## 历史版本归档
10
10
 
11
11
  - [发布检查清单](../release-checklist.md)
12
+ - [v3.6.59 发布说明](./v3.6.59.md)
13
+ - [v3.6.58 发布说明](./v3.6.58.md)
12
14
  - [v3.6.57 发布说明](./v3.6.57.md)
13
15
  - [v3.6.56 发布说明](./v3.6.56.md)
14
16
  - [v3.6.55 发布说明](./v3.6.55.md)