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.
- package/CHANGELOG.md +18 -0
- package/README.md +5 -3
- package/README.zh.md +5 -3
- package/bin/scene-capability-engine.js +2 -0
- package/docs/command-reference.md +72 -0
- package/docs/magicball-adaptation-task-checklist-v1.md +65 -10
- package/docs/magicball-cli-invocation-examples.md +53 -8
- package/docs/magicball-engineering-projection-contract.md +175 -0
- package/docs/magicball-frontend-state-and-command-mapping.md +42 -5
- package/docs/magicball-integration-doc-index.md +19 -5
- package/docs/magicball-integration-issue-tracker.md +15 -5
- package/docs/magicball-mode-home-and-ontology-empty-state-playbook.md +13 -5
- package/docs/magicball-project-portfolio-contract.md +216 -0
- package/docs/magicball-sce-adaptation-guide.md +18 -4
- package/docs/magicball-ui-surface-checklist.md +25 -0
- package/docs/magicball-write-auth-adaptation-guide.md +3 -1
- package/docs/release-checklist.md +8 -0
- package/docs/releases/README.md +2 -0
- package/docs/releases/v3.6.58.md +27 -0
- package/docs/releases/v3.6.59.md +18 -0
- package/docs/zh/release-checklist.md +8 -0
- package/docs/zh/releases/README.md +2 -0
- package/docs/zh/releases/v3.6.58.md +27 -0
- package/docs/zh/releases/v3.6.59.md +18 -0
- package/lib/app/engineering-scaffold-service.js +154 -0
- package/lib/commands/app.js +442 -13
- package/lib/commands/project.js +105 -0
- package/lib/commands/scene.js +16 -0
- package/lib/project/portfolio-projection-service.js +389 -0
- package/lib/project/supervision-projection-service.js +329 -0
- package/lib/project/target-resolution-service.js +180 -0
- package/lib/scene/delivery-projection-service.js +650 -0
- package/package.json +6 -2
- package/scripts/magicball-engineering-contract-audit.js +347 -0
- package/scripts/magicball-project-contract-audit.js +254 -0
- 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-
|
|
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
|
-
|
|
65
|
+
9. `docs/magicball-write-auth-adaptation-guide.md`
|
|
56
66
|
- write authorization and lease handling
|
|
57
67
|
|
|
58
|
-
|
|
68
|
+
10. `docs/magicball-task-feedback-timeline-guide.md`
|
|
59
69
|
- task feedback cards
|
|
60
70
|
- timeline view integration
|
|
61
71
|
|
|
62
|
-
|
|
72
|
+
11. `docs/magicball-cli-invocation-examples.md`
|
|
63
73
|
- copy-ready CLI examples
|
|
64
74
|
- wrapper and smoke verification patterns
|
|
65
75
|
|
|
66
|
-
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
-
->
|
|
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. `
|
|
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
|
|
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
|
package/docs/releases/README.md
CHANGED
|
@@ -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 准备状态
|