scene-capability-engine 3.6.54 → 3.6.56
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 +26 -0
- package/README.md +11 -2
- package/README.zh.md +11 -2
- package/bin/scene-capability-engine.js +12 -0
- package/docs/app-intent-apply-contract.md +263 -0
- package/docs/autonomous-control-guide.md +10 -0
- package/docs/command-reference.md +34 -0
- package/docs/examples/app-intent-phase1/.sce/app/collections/planning-workbench.json +34 -0
- package/docs/examples/app-intent-phase1/.sce/app/collections/sales-workbench.json +40 -0
- package/docs/examples/app-intent-phase1/.sce/app/collections/warehouse-kiosk.json +35 -0
- package/docs/examples/app-intent-phase1/.sce/app/scene-profiles/planning-desktop.json +23 -0
- package/docs/examples/app-intent-phase1/.sce/app/scene-profiles/sales-desktop.json +24 -0
- package/docs/examples/app-intent-phase1/.sce/app/scene-profiles/warehouse-tablet.json +23 -0
- package/docs/examples/app-intent-phase1/README.md +29 -0
- package/docs/magicball-app-collection-phase-1.md +170 -0
- package/docs/magicball-cli-invocation-examples.md +41 -0
- package/docs/magicball-integration-doc-index.md +21 -6
- package/docs/magicball-integration-issue-tracker.md +42 -3
- package/docs/magicball-sce-adaptation-guide.md +38 -9
- package/docs/releases/README.md +3 -0
- package/docs/releases/v3.6.55.md +18 -0
- package/docs/releases/v3.6.56.md +19 -0
- package/docs/spec-workflow.md +40 -0
- package/docs/zh/releases/README.md +3 -0
- package/docs/zh/releases/v3.6.55.md +18 -0
- package/docs/zh/releases/v3.6.56.md +19 -0
- package/lib/app/collection-store.js +127 -0
- package/lib/app/install-apply-runner.js +192 -0
- package/lib/app/install-plan-service.js +410 -0
- package/lib/app/scene-workspace-store.js +132 -0
- package/lib/commands/app.js +281 -0
- package/lib/commands/device.js +194 -0
- package/lib/commands/scene.js +228 -0
- package/lib/commands/spec-strategy.js +73 -0
- package/lib/device/current-device.js +158 -0
- package/lib/device/device-override-store.js +157 -0
- package/lib/spec/complexity-strategy.js +636 -0
- package/package.json +1 -1
- package/template/.sce/README.md +2 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"workspace_id": "warehouse-tablet",
|
|
3
|
+
"name": "Warehouse Tablet Workspace",
|
|
4
|
+
"description": "Tablet-first warehouse workspace with scanning and receiving actions.",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"tags": ["warehouse", "tablet"],
|
|
7
|
+
"collection_refs": ["warehouse-kiosk"],
|
|
8
|
+
"default_entry": "scan/inbound",
|
|
9
|
+
"layout_hint": "single-focus",
|
|
10
|
+
"items": [
|
|
11
|
+
{
|
|
12
|
+
"app_key": "notes",
|
|
13
|
+
"required": false,
|
|
14
|
+
"allow_local_remove": true,
|
|
15
|
+
"priority": 40,
|
|
16
|
+
"capability_tags": ["tablet"]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"metadata": {
|
|
20
|
+
"persona": "warehouse-operator",
|
|
21
|
+
"device_type": "tablet"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# App Intent Phase-1 Examples
|
|
2
|
+
|
|
3
|
+
This folder provides copy-ready sample assets for the shipped phase-1 app intent model.
|
|
4
|
+
|
|
5
|
+
It mirrors the canonical workspace layout:
|
|
6
|
+
|
|
7
|
+
- `.sce/app/collections/*.json`
|
|
8
|
+
- `.sce/app/scene-profiles/*.json`
|
|
9
|
+
|
|
10
|
+
## Suggested usage
|
|
11
|
+
|
|
12
|
+
Copy the example files you actually need into your project workspace:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
mkdir -p .sce/app/collections .sce/app/scene-profiles
|
|
16
|
+
cp docs/examples/app-intent-phase1/.sce/app/collections/*.json .sce/app/collections/
|
|
17
|
+
cp docs/examples/app-intent-phase1/.sce/app/scene-profiles/*.json .sce/app/scene-profiles/
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then adapt:
|
|
21
|
+
|
|
22
|
+
- `app_key`
|
|
23
|
+
- `required`
|
|
24
|
+
- `allow_local_remove`
|
|
25
|
+
- `priority`
|
|
26
|
+
- `capability_tags`
|
|
27
|
+
- `default_entry`
|
|
28
|
+
|
|
29
|
+
These are examples, not mandatory defaults. Do not copy them blindly without aligning them to the target business scene.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# MagicBall App Collection Phase 1
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Shipped phase-1 baseline in SCE.
|
|
6
|
+
|
|
7
|
+
Current shipped read-model baseline:
|
|
8
|
+
|
|
9
|
+
- `sce device current`
|
|
10
|
+
- `sce device override show`
|
|
11
|
+
- `sce device override upsert`
|
|
12
|
+
- `sce app collection list`
|
|
13
|
+
- `sce app collection show`
|
|
14
|
+
- `sce app collection apply` with plan-first diff and explicit execute for non-blocked install/uninstall actions
|
|
15
|
+
- `sce app install-state list`
|
|
16
|
+
- `sce scene workspace list`
|
|
17
|
+
- `sce scene workspace show`
|
|
18
|
+
- `sce scene workspace apply` with plan-first diff and explicit execute for non-blocked install/uninstall actions
|
|
19
|
+
|
|
20
|
+
Current shipped runtime controls remain:
|
|
21
|
+
|
|
22
|
+
- `sce app runtime show`
|
|
23
|
+
- `sce app runtime releases`
|
|
24
|
+
- `sce app runtime install`
|
|
25
|
+
- `sce app runtime activate`
|
|
26
|
+
- `sce app runtime uninstall`
|
|
27
|
+
|
|
28
|
+
## Goal
|
|
29
|
+
|
|
30
|
+
Add a scene-oriented installation model above the current single-app runtime controls so MagicBall can manage "what this workbench wants" separately from "what this device actually has installed".
|
|
31
|
+
|
|
32
|
+
## Core decision
|
|
33
|
+
|
|
34
|
+
SCE should split the model into two layers plus one local overlay:
|
|
35
|
+
|
|
36
|
+
- intent layer: `app_collection` and `scene_profile`
|
|
37
|
+
- device fact layer: `device_installation`
|
|
38
|
+
- local override layer: `device_override`
|
|
39
|
+
|
|
40
|
+
This means:
|
|
41
|
+
|
|
42
|
+
- users or workspaces sync the desired app set
|
|
43
|
+
- devices decide their own actual install set
|
|
44
|
+
- one user on multiple devices does not get forced into identical installs
|
|
45
|
+
|
|
46
|
+
## Why SCE should support this
|
|
47
|
+
|
|
48
|
+
The current runtime commands are enough for single-app control, but they are not enough to express:
|
|
49
|
+
|
|
50
|
+
- sales workbench vs planning workbench vs development workbench
|
|
51
|
+
- device-specific install differences
|
|
52
|
+
- reasoned batch install and uninstall planning
|
|
53
|
+
|
|
54
|
+
Without this layer, frontend code has to invent business grouping and install logic outside SCE, which would fragment the contract.
|
|
55
|
+
|
|
56
|
+
## Phase 1 scope
|
|
57
|
+
|
|
58
|
+
Phase-1 should stay local-device-first.
|
|
59
|
+
|
|
60
|
+
It should add:
|
|
61
|
+
|
|
62
|
+
- current device identity and capability view
|
|
63
|
+
- file-backed app collections
|
|
64
|
+
- file-backed scene profiles
|
|
65
|
+
- local install-state listing
|
|
66
|
+
- collection or scene apply diff planning
|
|
67
|
+
- explicit execute step for apply
|
|
68
|
+
|
|
69
|
+
It should not require:
|
|
70
|
+
|
|
71
|
+
- user account system
|
|
72
|
+
- cross-device installation-state sync
|
|
73
|
+
- organization policy rollout
|
|
74
|
+
|
|
75
|
+
## Storage position
|
|
76
|
+
|
|
77
|
+
SCE already has a selective SQLite policy. This capability should follow it.
|
|
78
|
+
|
|
79
|
+
Recommended split:
|
|
80
|
+
|
|
81
|
+
- shared intent stays file-backed or registry-backed
|
|
82
|
+
- device facts and rebuildable resolution projections may use SQLite
|
|
83
|
+
- local device override stays file-backed at `.sce/state/device/device-override.json`
|
|
84
|
+
|
|
85
|
+
This boundary matters because SQLite is suitable for local query-heavy facts, but it should not become the only source of truth for portable shared intent.
|
|
86
|
+
|
|
87
|
+
## Copy-ready examples
|
|
88
|
+
|
|
89
|
+
Sample assets are available here:
|
|
90
|
+
|
|
91
|
+
- `docs/examples/app-intent-phase1/.sce/app/collections/*.json`
|
|
92
|
+
- `docs/examples/app-intent-phase1/.sce/app/scene-profiles/*.json`
|
|
93
|
+
- `docs/examples/app-intent-phase1/README.md`
|
|
94
|
+
|
|
95
|
+
These examples are intentionally realistic but still generic:
|
|
96
|
+
|
|
97
|
+
- sales desktop workspace
|
|
98
|
+
- planning desktop workspace
|
|
99
|
+
- warehouse tablet workspace
|
|
100
|
+
|
|
101
|
+
Use them as a starting point, then replace app keys and business metadata with project-specific values.
|
|
102
|
+
|
|
103
|
+
## Recommended phase-1 command shape
|
|
104
|
+
|
|
105
|
+
Phase-1 overall command surface:
|
|
106
|
+
|
|
107
|
+
- `sce device current`
|
|
108
|
+
- `sce device override show`
|
|
109
|
+
- `sce device override upsert`
|
|
110
|
+
- `sce app collection list`
|
|
111
|
+
- `sce app collection show`
|
|
112
|
+
- `sce app collection apply`
|
|
113
|
+
- `sce app install-state list`
|
|
114
|
+
- `sce scene workspace list`
|
|
115
|
+
- `sce scene workspace show`
|
|
116
|
+
- `sce scene workspace apply`
|
|
117
|
+
|
|
118
|
+
Execution rule:
|
|
119
|
+
|
|
120
|
+
- `apply` should return a plan or diff by default
|
|
121
|
+
- actual mutation requires explicit execute confirmation
|
|
122
|
+
- execute stays blocked when the plan still contains unresolved collections, missing app bundles, or active-release protection skips
|
|
123
|
+
- resolution now also considers local `device_override` add/remove overlays and item-level `capability_tags`
|
|
124
|
+
- local override updates now also have an explicit CLI governance surface instead of requiring manual file edits
|
|
125
|
+
- execution should reuse the existing app runtime path
|
|
126
|
+
|
|
127
|
+
JSON response contract:
|
|
128
|
+
|
|
129
|
+
- `docs/app-intent-apply-contract.md`
|
|
130
|
+
|
|
131
|
+
## Frontend implication for MagicBall
|
|
132
|
+
|
|
133
|
+
MagicBall should keep using current per-app runtime controls until this phase ships.
|
|
134
|
+
|
|
135
|
+
Today, MagicBall can already use:
|
|
136
|
+
|
|
137
|
+
1. `sce device current` for current device identity and capability tags
|
|
138
|
+
2. `sce device override show/upsert` for local per-device add/remove overlays
|
|
139
|
+
3. `sce app collection list/show/apply` for file-backed shared collection intent and plan-first diff
|
|
140
|
+
4. `sce scene workspace list/show/apply` for file-backed scene-profile intent and plan-first diff
|
|
141
|
+
5. `sce app install-state list` for current cross-app installation projection
|
|
142
|
+
6. existing per-app runtime controls for concrete runtime actions
|
|
143
|
+
|
|
144
|
+
Once phase-1 lands, the preferred top-level interaction should become:
|
|
145
|
+
|
|
146
|
+
1. pick a scene workspace or app collection
|
|
147
|
+
2. inspect the proposed device diff
|
|
148
|
+
3. explicitly apply the plan
|
|
149
|
+
4. continue using per-app runtime controls for detail views
|
|
150
|
+
|
|
151
|
+
## Phase 2 direction
|
|
152
|
+
|
|
153
|
+
Phase-2 should be planned as lightweight user-intent sync, not as device-state sync.
|
|
154
|
+
|
|
155
|
+
Recommended boundary:
|
|
156
|
+
|
|
157
|
+
- sync shared `app_collection` / `scene_profile` selections or bindings
|
|
158
|
+
- do not sync `device_installation` facts as the cross-device source of truth
|
|
159
|
+
- keep `device_override` local unless a project explicitly introduces a higher-level policy mechanism
|
|
160
|
+
|
|
161
|
+
Recommended deliverables for phase-2 planning:
|
|
162
|
+
|
|
163
|
+
1. user binding model for scene/profile selection
|
|
164
|
+
2. device-aware resolution order for `user intent + local override + capability tags`
|
|
165
|
+
3. pull/push sync semantics with conflict visibility rather than silent overwrite
|
|
166
|
+
4. explicit non-goal: do not force all devices into the same installed app set
|
|
167
|
+
|
|
168
|
+
## Practical conclusion
|
|
169
|
+
|
|
170
|
+
SCE should support this direction, but it should do so by extending the current app/runtime model rather than replacing it.
|
|
@@ -21,6 +21,47 @@ Assume:
|
|
|
21
21
|
|
|
22
22
|
## 1. Workspace Bootstrap
|
|
23
23
|
|
|
24
|
+
### 1.0 Read current device baseline
|
|
25
|
+
```bash
|
|
26
|
+
sce device current --json
|
|
27
|
+
sce device override show --json
|
|
28
|
+
sce app collection list --json
|
|
29
|
+
sce app collection show --collection sales-workbench --json
|
|
30
|
+
sce app collection apply --collection sales-workbench --json
|
|
31
|
+
sce scene workspace list --json
|
|
32
|
+
sce scene workspace show --workspace sales --json
|
|
33
|
+
sce scene workspace apply --workspace sales --json
|
|
34
|
+
sce app install-state list --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Expected use:
|
|
38
|
+
- cache current device id / tags
|
|
39
|
+
- load file-backed shared app collection intent
|
|
40
|
+
- load file-backed shared scene workspace intent
|
|
41
|
+
- render cross-app local install baseline before scene-oriented collection flows arrive
|
|
42
|
+
|
|
43
|
+
Optional local override input:
|
|
44
|
+
- `.sce/state/device/device-override.json`
|
|
45
|
+
- use this for per-device add/remove exceptions instead of mutating shared collection/workspace definitions
|
|
46
|
+
- update it explicitly via `sce device override upsert --input <json> --json`
|
|
47
|
+
- copy-ready collection/workspace examples live under `docs/examples/app-intent-phase1/.sce/app/...`
|
|
48
|
+
|
|
49
|
+
Example local override patch:
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"removed_apps": ["crm"],
|
|
53
|
+
"added_apps": [
|
|
54
|
+
{
|
|
55
|
+
"app_key": "notes",
|
|
56
|
+
"required": false
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"metadata": {
|
|
60
|
+
"reason": "tablet kiosk profile"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
24
65
|
### 1.1 App bundle identity
|
|
25
66
|
```bash
|
|
26
67
|
sce app bundle show --app customer-order-demo --json
|
|
@@ -14,6 +14,8 @@ It is a navigation layer, not a new source of truth.
|
|
|
14
14
|
|
|
15
15
|
These are the current first-line integration documents:
|
|
16
16
|
- `docs/magicball-sce-adaptation-guide.md`
|
|
17
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
18
|
+
- `docs/app-intent-apply-contract.md`
|
|
17
19
|
- `docs/magicball-ui-surface-checklist.md`
|
|
18
20
|
- `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
19
21
|
- `docs/magicball-frontend-state-and-command-mapping.md`
|
|
@@ -32,28 +34,36 @@ These are the current first-line integration documents:
|
|
|
32
34
|
- implementation checklist
|
|
33
35
|
- milestone-oriented execution order
|
|
34
36
|
|
|
35
|
-
3. `docs/magicball-
|
|
37
|
+
3. `docs/magicball-app-collection-phase-1.md`
|
|
38
|
+
- current device / collection / workspace / override baseline
|
|
39
|
+
- shipped phase-1 install orchestration contract
|
|
40
|
+
|
|
41
|
+
4. `docs/app-intent-apply-contract.md`
|
|
42
|
+
- stable JSON response contract for `collection apply` and `scene workspace apply`
|
|
43
|
+
- execution/blocking/preflight semantics
|
|
44
|
+
|
|
45
|
+
5. `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
36
46
|
- two active frontend-sensitive defaults
|
|
37
47
|
- serialized mode-home loading
|
|
38
48
|
- ontology empty-state and starter-seed behavior
|
|
39
49
|
|
|
40
|
-
|
|
50
|
+
6. `docs/magicball-frontend-state-and-command-mapping.md`
|
|
41
51
|
- page state ownership
|
|
42
52
|
- command-to-action mapping
|
|
43
53
|
- error and retry boundaries
|
|
44
54
|
|
|
45
|
-
|
|
55
|
+
7. `docs/magicball-write-auth-adaptation-guide.md`
|
|
46
56
|
- write authorization and lease handling
|
|
47
57
|
|
|
48
|
-
|
|
58
|
+
8. `docs/magicball-task-feedback-timeline-guide.md`
|
|
49
59
|
- task feedback cards
|
|
50
60
|
- timeline view integration
|
|
51
61
|
|
|
52
|
-
|
|
62
|
+
9. `docs/magicball-cli-invocation-examples.md`
|
|
53
63
|
- copy-ready CLI examples
|
|
54
64
|
- wrapper and smoke verification patterns
|
|
55
65
|
|
|
56
|
-
|
|
66
|
+
10. `docs/magicball-integration-issue-tracker.md`
|
|
57
67
|
- current cross-project truth
|
|
58
68
|
- only open issues, active decisions, and verified resolutions
|
|
59
69
|
|
|
@@ -62,6 +72,8 @@ These are the current first-line integration documents:
|
|
|
62
72
|
### I need to bootstrap the three-mode app shell
|
|
63
73
|
Use:
|
|
64
74
|
- `docs/magicball-sce-adaptation-guide.md`
|
|
75
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
76
|
+
- `docs/app-intent-apply-contract.md`
|
|
65
77
|
- `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
66
78
|
- `docs/magicball-frontend-state-and-command-mapping.md`
|
|
67
79
|
|
|
@@ -95,6 +107,8 @@ Use:
|
|
|
95
107
|
| Document | Role | Should change often? |
|
|
96
108
|
| --- | --- | --- |
|
|
97
109
|
| `magicball-sce-adaptation-guide.md` | main overview | low |
|
|
110
|
+
| `magicball-app-collection-phase-1.md` | next-phase install model | medium |
|
|
111
|
+
| `app-intent-apply-contract.md` | apply JSON contract | medium |
|
|
98
112
|
| `magicball-adaptation-task-checklist-v1.md` | execution checklist | medium |
|
|
99
113
|
| `magicball-mode-home-and-ontology-empty-state-playbook.md` | frontend behavior policy | medium |
|
|
100
114
|
| `magicball-frontend-state-and-command-mapping.md` | frontend implementation mapping | medium |
|
|
@@ -127,6 +141,7 @@ As of the current tracker state:
|
|
|
127
141
|
- fresh ontology pages use `fallback + optional seed apply`
|
|
128
142
|
- seed apply stays explicit and user-triggered
|
|
129
143
|
- command failures should be preserved in copyable form for AI-assisted diagnosis
|
|
144
|
+
- app installation orchestration should use `scene_profile` and `app_collection` intent, not a global identical install set
|
|
130
145
|
|
|
131
146
|
## Maintenance Rule
|
|
132
147
|
|
|
@@ -17,7 +17,11 @@
|
|
|
17
17
|
### Current SCE capabilities ready for MagicBall integration
|
|
18
18
|
|
|
19
19
|
SCE changes completed and now available for MagicBall:
|
|
20
|
+
- `device current`
|
|
20
21
|
- `app bundle` registry local state and CLI
|
|
22
|
+
- `app collection list/show/apply`
|
|
23
|
+
- `scene workspace list/show/apply`
|
|
24
|
+
- `app install-state list`
|
|
21
25
|
- `mode application home --app ... --json`
|
|
22
26
|
- `mode ontology home --app ... --json`
|
|
23
27
|
- `mode engineering home --app ... --json`
|
|
@@ -32,9 +36,10 @@ SCE changes completed and now available for MagicBall:
|
|
|
32
36
|
|
|
33
37
|
### Current recommended MagicBall consumption order
|
|
34
38
|
1. consume `mode * home` as the top-level source for the three modes
|
|
35
|
-
2. consume `
|
|
36
|
-
3.
|
|
37
|
-
4.
|
|
39
|
+
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
|
+
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`
|
|
38
43
|
|
|
39
44
|
### Related SCE docs
|
|
40
45
|
- `docs/magicball-sce-adaptation-guide.md`
|
|
@@ -65,6 +70,11 @@ SCE changes completed and now available for MagicBall:
|
|
|
65
70
|
- expected payload
|
|
66
71
|
- UI impact
|
|
67
72
|
|
|
73
|
+
### Cross-project decision recorded
|
|
74
|
+
- The next install-management phase should not use a single global install set.
|
|
75
|
+
- SCE will separate shared app intent from local device installation facts.
|
|
76
|
+
- Planned phase-1 capability is documented in `docs/magicball-app-collection-phase-1.md`.
|
|
77
|
+
|
|
68
78
|
## Open Items
|
|
69
79
|
|
|
70
80
|
### Issue 001: SQLite lock when frontend triggers multiple SCE projection commands concurrently
|
|
@@ -153,6 +163,35 @@ Status:
|
|
|
153
163
|
- local verification covered: `triad summary` empty -> `seed list/show` preview -> `seed apply` -> `triad summary` ready
|
|
154
164
|
- keep open until broader field verification confirms the UX is stable
|
|
155
165
|
|
|
166
|
+
### Issue 006: scene-profile and app-collection install orchestration is not yet command-ready
|
|
167
|
+
|
|
168
|
+
Context:
|
|
169
|
+
- MagicBall now needs a scene-oriented install-management model above current per-app runtime controls.
|
|
170
|
+
- Current SCE already supports per-app runtime install, activate, uninstall, but not shared app intent vs device fact resolution.
|
|
171
|
+
|
|
172
|
+
Cross-project decision:
|
|
173
|
+
- Do not model this as one global install set shared blindly across devices.
|
|
174
|
+
- Separate:
|
|
175
|
+
- shared intent: `app_collection`, `scene_profile`
|
|
176
|
+
- local fact: `device_installation`
|
|
177
|
+
- local override: `device_override`
|
|
178
|
+
- Keep shared intent file-backed or registry-backed.
|
|
179
|
+
- Use SQLite only for local facts and rebuildable projections.
|
|
180
|
+
- `apply` must be plan-first and require explicit execution confirmation.
|
|
181
|
+
|
|
182
|
+
Reference:
|
|
183
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
184
|
+
- `.sce/specs/128-00-app-collection-scene-profile-device-installation/`
|
|
185
|
+
|
|
186
|
+
Status:
|
|
187
|
+
- architecture decision aligned
|
|
188
|
+
- spec added in SCE
|
|
189
|
+
- read-model and plan-first diff commands implemented
|
|
190
|
+
- explicit execute path now implemented for non-blocked install/uninstall actions
|
|
191
|
+
- execute remains blocked when unresolved collections, missing app bundles, or active-release protection skips are present
|
|
192
|
+
- local `device_override` file is now respected during resolution, so per-device add/remove exceptions no longer require mutating shared intent definitions
|
|
193
|
+
- local `device_override` now also has explicit `show/upsert` command support, so frontend or operator flows no longer need to hand-edit the override file
|
|
194
|
+
|
|
156
195
|
## Resolved
|
|
157
196
|
|
|
158
197
|
### Issue 002: pm requirement upsert succeeds but requirement list still returns empty
|
|
@@ -12,6 +12,8 @@ Implementation detail should live in the specialized documents listed below.
|
|
|
12
12
|
|
|
13
13
|
Use these documents together:
|
|
14
14
|
- `docs/magicball-integration-doc-index.md`
|
|
15
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
16
|
+
- `docs/app-intent-apply-contract.md`
|
|
15
17
|
- `docs/magicball-ui-surface-checklist.md`
|
|
16
18
|
- `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
17
19
|
- `docs/magicball-frontend-state-and-command-mapping.md`
|
|
@@ -23,15 +25,41 @@ Use these documents together:
|
|
|
23
25
|
## Current Scope
|
|
24
26
|
|
|
25
27
|
SCE currently provides MagicBall-facing support for:
|
|
26
|
-
1. `
|
|
27
|
-
2. `
|
|
28
|
-
3. `app
|
|
29
|
-
4. `app
|
|
30
|
-
5. `
|
|
31
|
-
6. `
|
|
32
|
-
7. `
|
|
33
|
-
8. `
|
|
34
|
-
9. `
|
|
28
|
+
1. `device current` identity read model
|
|
29
|
+
2. `device override show/upsert` local overlay governance
|
|
30
|
+
3. `app bundle registry`
|
|
31
|
+
4. `app collection list/show/apply` with plan-first diff and guarded explicit execution
|
|
32
|
+
5. `scene workspace list/show/apply` with plan-first diff and guarded explicit execution
|
|
33
|
+
6. `app install-state` local device projection
|
|
34
|
+
7. `application / ontology / engineering home projections`
|
|
35
|
+
8. `app runtime install / activate / uninstall`
|
|
36
|
+
9. `app engineering attach / hydrate / activate`
|
|
37
|
+
10. `pm` delivery data plane
|
|
38
|
+
11. `ontology` triad data plane
|
|
39
|
+
12. `assurance` data plane
|
|
40
|
+
13. `write authorization`
|
|
41
|
+
14. `task feedback + timeline`
|
|
42
|
+
|
|
43
|
+
## Planned Next Scope
|
|
44
|
+
|
|
45
|
+
The next planned SCE capability line for MagicBall is lightweight cross-device sync and richer collection resolution above the current shipped local-device-first baseline.
|
|
46
|
+
|
|
47
|
+
Planned model split:
|
|
48
|
+
- `app_collection` and `scene_profile` as shared intent
|
|
49
|
+
- `device_installation` as local device fact
|
|
50
|
+
- `device_override` as local device overlay
|
|
51
|
+
|
|
52
|
+
Planned phase-1 position:
|
|
53
|
+
- local device-first
|
|
54
|
+
- file-backed shared intent
|
|
55
|
+
- SQLite only for local facts and rebuildable projections
|
|
56
|
+
- `apply` must be plan-first, not blind mutation
|
|
57
|
+
- local device override is file-backed and applied during collection/workspace resolution
|
|
58
|
+
- local device override mutation now uses explicit CLI upsert rather than manual-only file editing
|
|
59
|
+
|
|
60
|
+
Reference:
|
|
61
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
62
|
+
- `docs/app-intent-apply-contract.md`
|
|
35
63
|
|
|
36
64
|
## Core Integration Positioning
|
|
37
65
|
|
|
@@ -100,6 +128,7 @@ Use `docs/magicball-cli-invocation-examples.md` for copy-ready commands.
|
|
|
100
128
|
- `sce app engineering show`
|
|
101
129
|
|
|
102
130
|
### Runtime and engineering control
|
|
131
|
+
- `sce device override show/upsert`
|
|
103
132
|
- `sce app runtime show/releases/install/activate/uninstall`
|
|
104
133
|
- `sce app engineering show/attach/hydrate/activate`
|
|
105
134
|
- `sce app registry status/configure/sync*`
|
package/docs/releases/README.md
CHANGED
|
@@ -9,6 +9,9 @@ This directory stores release-facing documents:
|
|
|
9
9
|
## Archived Versions
|
|
10
10
|
|
|
11
11
|
- [Release checklist](../release-checklist.md)
|
|
12
|
+
- [v3.6.56 release notes](./v3.6.56.md)
|
|
13
|
+
- [v3.6.55 release notes](./v3.6.55.md)
|
|
14
|
+
- [v3.6.54 release notes](./v3.6.54.md)
|
|
12
15
|
- [v3.6.48 release notes](./v3.6.48.md)
|
|
13
16
|
- [v3.6.47 release notes](./v3.6.47.md)
|
|
14
17
|
- [v3.6.46 release notes](./v3.6.46.md)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# v3.6.55 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-16
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Added explicit local device override governance commands: `sce device override show` and `sce device override upsert --input <json>`.
|
|
8
|
+
- Scene-oriented install planning now keeps `device_override` mutation on one conservative path instead of requiring manual file edits or introducing a parallel state mechanism.
|
|
9
|
+
- `device_override` updates now merge only explicitly provided fields, which aligns with the SCE core rule against blind replacement and preserves unrelated local device policy state.
|
|
10
|
+
|
|
11
|
+
## Validation
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/device-and-install-state.test.js tests/unit/commands/scene-workspace.test.js tests/unit/commands/app-mode.test.js --runInBand`
|
|
14
|
+
- `node scripts/release-doc-version-audit.js --fail-on-error`
|
|
15
|
+
|
|
16
|
+
## Release Notes
|
|
17
|
+
|
|
18
|
+
- This patch closes the last obvious usability gap in the phase-1 MagicBall install-management baseline. Shared intent, local device facts, and local override policy were already modeled, but local override updates still depended on hand-editing JSON. `3.6.55` makes that layer governable through the CLI while keeping the same single source of truth and conservative merge semantics.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# v3.6.56 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-17
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Added read-only `sce spec strategy assess` to decide whether a problem should stay `single-spec` or escalate to `multi-spec-program` / `research-program`.
|
|
8
|
+
- Added a formal strategy Spec for complex-problem program escalation so SCE can stop forcing highly entangled work through one oversized Spec.
|
|
9
|
+
- Added copy-ready phase-1 app intent examples plus a stable `apply` JSON contract document so scene-oriented install management can be adopted directly instead of inferred from source code.
|
|
10
|
+
|
|
11
|
+
## Validation
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/spec-strategy.test.js --runInBand`
|
|
14
|
+
- `node bin/sce.js --skip-steering-check --no-version-check spec strategy assess --goal "fix login button alignment in application home page" --json`
|
|
15
|
+
- `node scripts/release-doc-version-audit.js --fail-on-error`
|
|
16
|
+
|
|
17
|
+
## Release Notes
|
|
18
|
+
|
|
19
|
+
- This patch turns SCE's existing multi-Spec and close-loop-program runtime into a better governed path for complex work. The key addition is not another executor, but an explicit strategy assessment layer that can say when one Spec is still enough and when the problem should first be treated as a coordinated program or a research-first clarification portfolio.
|
package/docs/spec-workflow.md
CHANGED
|
@@ -115,6 +115,46 @@ sce spec domain validate --spec <spec-id> --fail-on-gap --json
|
|
|
115
115
|
|
|
116
116
|
This is the default way to avoid wrong-direction implementation and to force evidence-based correction loops.
|
|
117
117
|
|
|
118
|
+
## When One Spec Is Not Enough
|
|
119
|
+
|
|
120
|
+
Not every problem should be forced into a single Spec.
|
|
121
|
+
|
|
122
|
+
Use this rule of thumb:
|
|
123
|
+
|
|
124
|
+
- simple problem: stay with one Spec
|
|
125
|
+
- medium complexity: split into a few implementation Specs and use orchestrate mode
|
|
126
|
+
- very complex problem: first treat it as a program, not as a single implementation Spec
|
|
127
|
+
|
|
128
|
+
Typical escalation signals:
|
|
129
|
+
|
|
130
|
+
- one Spec keeps expanding but still cannot produce stable executable tasks
|
|
131
|
+
- the problem spans multiple scenes, roles, or bounded contexts
|
|
132
|
+
- API/data contracts are still unclear enough that task breakdown would be guesswork
|
|
133
|
+
- business rules and policy boundaries are not yet settled
|
|
134
|
+
- a single problem-domain chain already shows multiple semi-independent clusters
|
|
135
|
+
|
|
136
|
+
Current SCE execution paths you can already use:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# read-only strategy assessment
|
|
140
|
+
sce spec strategy assess --goal "broad complex goal" --json
|
|
141
|
+
|
|
142
|
+
# multi-spec implementation program
|
|
143
|
+
sce spec bootstrap --specs "spec-a,spec-b" --max-parallel 3
|
|
144
|
+
|
|
145
|
+
# broad goal -> autonomous master/sub program decomposition
|
|
146
|
+
sce auto close-loop-program "broad complex goal" --program-goals 4 --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
The strategic gap currently being formalized is:
|
|
150
|
+
|
|
151
|
+
- how SCE should assess this threshold explicitly
|
|
152
|
+
- when it should recommend `single-spec` vs `multi-spec-program` vs `research-program`
|
|
153
|
+
|
|
154
|
+
Reference Spec:
|
|
155
|
+
|
|
156
|
+
- `.sce/specs/129-00-complex-problem-program-escalation/`
|
|
157
|
+
|
|
118
158
|
---
|
|
119
159
|
|
|
120
160
|
## Stage 1: Requirements
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# v3.6.55 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-16
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 新增显式的本地设备覆盖治理命令:`sce device override show` 和 `sce device override upsert --input <json>`。
|
|
8
|
+
- 面向场景的安装规划现在把 `device_override` 的修改也收敛到统一治理路径,不再依赖手工改 JSON,也没有再引入并行状态机制。
|
|
9
|
+
- `device_override` 更新采用“只合并明确给出的字段”的保守语义,符合 SCE 的“禁止盲改/禁止盲替换”核心原则,并保留未触及的本地设备策略状态。
|
|
10
|
+
|
|
11
|
+
## 验证
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/device-and-install-state.test.js tests/unit/commands/scene-workspace.test.js tests/unit/commands/app-mode.test.js --runInBand`
|
|
14
|
+
- `node scripts/release-doc-version-audit.js --fail-on-error`
|
|
15
|
+
|
|
16
|
+
## 发布说明
|
|
17
|
+
|
|
18
|
+
- 这个补丁版把 MagicBall phase-1 安装管理基线里最后一个明显缺口补上了。共享意图、本地设备事实和本地覆盖策略此前都已经建模完成,但本地覆盖更新仍依赖手工改 JSON。`3.6.55` 把这层能力补成了可治理的 CLI 命令,同时继续保持单一事实来源和保守合并语义。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# v3.6.56 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-17
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 新增只读命令 `sce spec strategy assess`,用于判断问题应继续使用 `single-spec`,还是升级为 `multi-spec-program` / `research-program`。
|
|
8
|
+
- 新增复杂问题升级策略 Spec,使 SCE 不再默认把高度纠缠的问题硬塞进一个超大 Spec。
|
|
9
|
+
- 补充 phase-1 应用意图样例与稳定的 `apply` JSON 契约文档,让面向场景的安装管理能力可以直接落地,而不是只能靠读源码理解。
|
|
10
|
+
|
|
11
|
+
## 验证
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/spec-strategy.test.js --runInBand`
|
|
14
|
+
- `node bin/sce.js --skip-steering-check --no-version-check spec strategy assess --goal "fix login button alignment in application home page" --json`
|
|
15
|
+
- `node scripts/release-doc-version-audit.js --fail-on-error`
|
|
16
|
+
|
|
17
|
+
## 发布说明
|
|
18
|
+
|
|
19
|
+
- 这个补丁版的重点不是再造一个执行器,而是给 SCE 已有的多 Spec / close-loop-program 执行能力补上策略层。现在 SCE 可以更明确地判断:一个问题是否还适合留在单 Spec,还是应该先升级为协调型 program,或者先进入 research-first 的澄清拆分路径。
|