scene-capability-engine 3.6.55 → 3.6.57

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 (32) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +7 -2
  3. package/README.zh.md +7 -2
  4. package/bin/scene-capability-engine.js +10 -0
  5. package/docs/app-intent-apply-contract.md +263 -0
  6. package/docs/autonomous-control-guide.md +12 -0
  7. package/docs/command-reference.md +15 -0
  8. package/docs/examples/app-intent-phase1/.sce/app/collections/planning-workbench.json +34 -0
  9. package/docs/examples/app-intent-phase1/.sce/app/collections/sales-workbench.json +40 -0
  10. package/docs/examples/app-intent-phase1/.sce/app/collections/warehouse-kiosk.json +35 -0
  11. package/docs/examples/app-intent-phase1/.sce/app/scene-profiles/planning-desktop.json +23 -0
  12. package/docs/examples/app-intent-phase1/.sce/app/scene-profiles/sales-desktop.json +24 -0
  13. package/docs/examples/app-intent-phase1/.sce/app/scene-profiles/warehouse-tablet.json +23 -0
  14. package/docs/examples/app-intent-phase1/README.md +29 -0
  15. package/docs/magicball-app-collection-phase-1.md +37 -0
  16. package/docs/magicball-cli-invocation-examples.md +1 -0
  17. package/docs/magicball-integration-doc-index.md +13 -6
  18. package/docs/magicball-sce-adaptation-guide.md +2 -0
  19. package/docs/releases/README.md +2 -0
  20. package/docs/releases/v3.6.56.md +19 -0
  21. package/docs/releases/v3.6.57.md +19 -0
  22. package/docs/spec-workflow.md +42 -0
  23. package/docs/zh/releases/README.md +2 -0
  24. package/docs/zh/releases/v3.6.56.md +19 -0
  25. package/docs/zh/releases/v3.6.57.md +19 -0
  26. package/lib/commands/spec-gate.js +57 -6
  27. package/lib/commands/spec-pipeline.js +13 -4
  28. package/lib/commands/spec-strategy.js +73 -0
  29. package/lib/problem/project-problem-projection.js +43 -0
  30. package/lib/spec/complexity-strategy.js +636 -0
  31. package/package.json +1 -1
  32. package/template/.sce/README.md +2 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.6.57] - 2026-03-17
11
+
12
+ ### Added
13
+ - Added a read-only `strategy_assessment` advisory to `sce spec gate run --spec <id>` and `sce spec pipeline run --spec <id>` single-Spec output so workflow consumers can see when the current Spec should escalate to `multi-spec-program` or `research-program`.
14
+
15
+ ### Changed
16
+ - Human-readable `spec gate` and `spec pipeline` output now print an explicit strategy advisory for broad or clarification-heavy Specs, without auto-rerouting execution or changing the underlying execution decision itself.
17
+ - Shared project problem projection sync is now idempotent when content does not change, so collaboration governance checks no longer dirty the worktree just by refreshing `generated_at`.
18
+
19
+ ## [3.6.56] - 2026-03-17
20
+
21
+ ### Added
22
+ - Added Spec `129-00-complex-problem-program-escalation` to formalize how SCE should decide between `single-spec`, `multi-spec-program`, and `research-program` for highly entangled problems.
23
+ - Added read-only `sce spec strategy assess` so SCE can explicitly recommend `single-spec`, `multi-spec-program`, or `research-program` from either a broad goal or an existing Spec.
24
+ - Added copy-ready phase-1 app intent examples under `docs/examples/app-intent-phase1/.sce/app/collections` and `docs/examples/app-intent-phase1/.sce/app/scene-profiles`, covering sales desktop, planning desktop, and warehouse tablet scenarios.
25
+ - Added `docs/app-intent-apply-contract.md` to document the stable JSON contract for `sce app collection apply --json` and `sce scene workspace apply --json`.
26
+
27
+ ### Changed
28
+ - MagicBall-facing docs and command reference now point directly to copy-ready sample assets, explicit apply JSON contract guidance, and the phase-2 direction of lightweight user-intent sync rather than device-state sync.
29
+ - Spec workflow and autonomous-control guidance now explicitly describe when a problem should escalate from one Spec to a coordinated program-level path.
30
+
10
31
  ## [3.6.55] - 2026-03-16
11
32
 
12
33
  ### Added
package/README.md CHANGED
@@ -140,6 +140,7 @@ SCE is opinionated by default.
140
140
 
141
141
  - `studio plan` runs intake and scene/spec governance unless policy explicitly allows bypass.
142
142
  - When business scene/module/page/entity context is missing, SCE must route to clarification first; unknown business scope must not be turned into blanket disable.
143
+ - `spec pipeline` and `spec gate` now carry a read-only strategy advisory for single-Spec runs, so broad or clarification-heavy work is surfaced as `multi-spec-program` / `research-program` instead of being blindly forced deeper into one Spec.
143
144
  - `verify` and `release` enforce problem-closure and related gates when a spec is bound.
144
145
  - Autonomous program execution applies gate evaluation, fallback-chain logic, governance replay, and auto-remediation.
145
146
  - Co-work baseline is enabled by default: initialized/adopted SCE projects provision `.sce/config/multi-agent.json` with `enabled=true`, while the central coordinator stays opt-in.
@@ -183,6 +184,10 @@ Demo remote registries:
183
184
  - `magicball-app-service-catalog`
184
185
  - demo app key: `customer-order-demo`
185
186
 
187
+ Scene-oriented install-management references:
188
+ - examples: `docs/examples/app-intent-phase1/.sce/app/...`
189
+ - apply JSON contract: `docs/app-intent-apply-contract.md`
190
+
186
191
  ---
187
192
 
188
193
  ## Documentation
@@ -223,5 +228,5 @@ MIT. See [LICENSE](LICENSE).
223
228
 
224
229
  ---
225
230
 
226
- **Version**: 3.6.55
227
- **Last Updated**: 2026-03-16
231
+ **Version**: 3.6.57
232
+ **Last Updated**: 2026-03-17
package/README.zh.md CHANGED
@@ -145,6 +145,7 @@ SCE 默认是强治理的。
145
145
 
146
146
  - `studio plan` 默认执行 intake 与 scene/spec 治理,除非策略显式允许绕过
147
147
  - 缺少业务场景/模块/页面/实体上下文时,SCE 必须先进入澄清,而不是把未知业务范围直接变成一刀切禁用
148
+ - 单 spec 的 `spec pipeline` 和 `spec gate` 现在都会附带只读策略建议;当问题已经更适合 `multi-spec-program` / `research-program` 时,SCE 会显式提示,而不是继续把复杂问题盲目压进同一个 spec
148
149
  - 当 spec 绑定时,`verify` 和 `release` 默认执行 problem-closure 等相关门禁
149
150
  - `close-loop-program` 默认带 gate 评估、fallback-chain、governance replay、auto-remediation
150
151
  - co-work 基线默认开启:初始化或接管后的 SCE 项目会落地 `.sce/config/multi-agent.json` 且 `enabled=true`,但中央 coordinator 仍保持按需开启
@@ -188,6 +189,10 @@ SCE 默认是强治理的。
188
189
  - `magicball-app-service-catalog`
189
190
  - 示例 app key:`customer-order-demo`
190
191
 
192
+ 面向场景的安装管理参考:
193
+ - 示例:`docs/examples/app-intent-phase1/.sce/app/...`
194
+ - apply JSON 契约:`docs/app-intent-apply-contract.md`
195
+
191
196
  ---
192
197
 
193
198
  ## 文档入口
@@ -228,5 +233,5 @@ MIT,见 [LICENSE](LICENSE)。
228
233
 
229
234
  ---
230
235
 
231
- **版本**:3.6.55
232
- **最后更新**:2026-03-16
236
+ **版本**:3.6.57
237
+ **最后更新**:2026-03-17
@@ -21,6 +21,7 @@ const { registerSpecPipelineCommand } = require('../lib/commands/spec-pipeline')
21
21
  const { registerSpecGateCommand } = require('../lib/commands/spec-gate');
22
22
  const { registerSpecDomainCommand } = require('../lib/commands/spec-domain');
23
23
  const { registerSpecRelatedCommand } = require('../lib/commands/spec-related');
24
+ const { registerSpecStrategyCommand } = require('../lib/commands/spec-strategy');
24
25
  const { registerTimelineCommands } = require('../lib/commands/timeline');
25
26
  const { registerValueCommands } = require('../lib/commands/value');
26
27
  const { registerTaskCommands } = require('../lib/commands/task');
@@ -67,6 +68,7 @@ const program = new Command();
67
68
  * - `sce spec gate ...` -> `sce spec-gate ...`
68
69
  * - `sce spec domain ...` -> `sce spec-domain ...`
69
70
  * - `sce spec related ...` -> `sce spec-related ...`
71
+ * - `sce spec strategy ...` -> `sce spec-strategy ...`
70
72
  * - `sce spec create <name> ...` -> `sce create-spec <name> ...`
71
73
  * - `sce spec <name> ...` -> `sce create-spec <name> ...` (legacy)
72
74
  *
@@ -111,6 +113,11 @@ function normalizeSpecCommandArgs(argv) {
111
113
  return normalized;
112
114
  }
113
115
 
116
+ if (commandToken === 'strategy') {
117
+ normalized.splice(commandIndex, 2, 'spec-strategy');
118
+ return normalized;
119
+ }
120
+
114
121
  if (commandToken === 'create') {
115
122
  normalized.splice(commandIndex, 2, 'create-spec');
116
123
  return normalized;
@@ -414,6 +421,9 @@ registerSpecDomainCommand(program);
414
421
  // Spec related lookup command
415
422
  registerSpecRelatedCommand(program);
416
423
 
424
+ // Spec strategy assessment command
425
+ registerSpecStrategyCommand(program);
426
+
417
427
  // 系统诊断命令
418
428
  program
419
429
  .command('doctor')
@@ -0,0 +1,263 @@
1
+ # App Intent Apply Contract
2
+
3
+ ## Scope
4
+
5
+ This document defines the JSON response contract for:
6
+
7
+ - `sce app collection apply --collection <id> --json`
8
+ - `sce scene workspace apply --workspace <id> --json`
9
+
10
+ Both commands share the same payload shape. The only stable differences are:
11
+
12
+ - `mode`
13
+ - `summary.source_type`
14
+ - `summary.source_id`
15
+ - `plan.source`
16
+
17
+ ## Top-Level Payload
18
+
19
+ ```json
20
+ {
21
+ "mode": "app-collection-apply",
22
+ "generated_at": "2026-03-16T12:00:00.000Z",
23
+ "execute_supported": true,
24
+ "executed": false,
25
+ "execution_blocked_reason": null,
26
+ "execution": {
27
+ "results": [],
28
+ "preflight_failures": []
29
+ },
30
+ "current_device": {},
31
+ "device_override": {},
32
+ "summary": {},
33
+ "plan": {}
34
+ }
35
+ ```
36
+
37
+ ### Field meanings
38
+
39
+ | Field | Type | Meaning |
40
+ | --- | --- | --- |
41
+ | `mode` | string | `app-collection-apply` or `scene-workspace-apply` |
42
+ | `generated_at` | string | ISO timestamp |
43
+ | `execute_supported` | boolean | Current implementation supports explicit execution |
44
+ | `executed` | boolean | `true` only when `--execute` was requested and the plan really ran |
45
+ | `execution_blocked_reason` | string or null | Blocking reason when execution did not run |
46
+ | `execution.results` | array | Per-action execution result list |
47
+ | `execution.preflight_failures` | array | Preflight failures when execution is blocked by runtime readiness |
48
+ | `current_device` | object | Current device identity and capability projection |
49
+ | `device_override` | object | Normalized local device override from `.sce/state/device/device-override.json` |
50
+ | `summary` | object | Top-level counts for UI summary |
51
+ | `plan` | object | Full desired-set and action diff contract |
52
+
53
+ ## Summary Contract
54
+
55
+ ```json
56
+ {
57
+ "source_type": "app-collection",
58
+ "source_id": "sales-workbench",
59
+ "desired_app_count": 4,
60
+ "install_count": 2,
61
+ "activate_count": 1,
62
+ "uninstall_count": 1,
63
+ "keep_count": 0,
64
+ "skip_count": 1
65
+ }
66
+ ```
67
+
68
+ ## Plan Contract
69
+
70
+ ```json
71
+ {
72
+ "source": {
73
+ "type": "app-collection",
74
+ "id": "sales-workbench",
75
+ "name": "Sales Workbench"
76
+ },
77
+ "current_device": {
78
+ "device_id": "desktop-01",
79
+ "capability_tags": ["desktop", "win32", "x64"]
80
+ },
81
+ "device_override": {
82
+ "removed_apps": ["crm"],
83
+ "added_apps": [
84
+ {
85
+ "app_key": "notes",
86
+ "required": false
87
+ }
88
+ ]
89
+ },
90
+ "desired_apps": [],
91
+ "unresolved_collections": [],
92
+ "unresolved_apps": [],
93
+ "actions": [],
94
+ "counts": {
95
+ "install": 0,
96
+ "activate": 0,
97
+ "uninstall": 0,
98
+ "keep": 0,
99
+ "skip": 0
100
+ }
101
+ }
102
+ ```
103
+
104
+ ### `desired_apps[]`
105
+
106
+ Each item is the resolved desired app set after collection/workspace expansion and local device override merge.
107
+
108
+ | Field | Type | Meaning |
109
+ | --- | --- | --- |
110
+ | `app_id` | string or null | Preferred explicit app identity when supplied |
111
+ | `app_key` | string or null | Preferred route and registry key |
112
+ | `required` | boolean | App is intended as required in the resolved desired set |
113
+ | `allow_local_remove` | boolean | Whether local removal is allowed in intent metadata |
114
+ | `priority` | number or null | Lower number means higher priority |
115
+ | `default_entry` | string or null | Preferred initial route |
116
+ | `capability_tags` | array | Capability filter merged from contributing items |
117
+ | `metadata` | object | Free-form metadata |
118
+ | `sources` | array | Provenance list such as `collection:<id>` or `workspace:<id>` |
119
+
120
+ ### `actions[]`
121
+
122
+ Each item is the device-oriented diff result that the UI should render before execution.
123
+
124
+ | Field | Type | Meaning |
125
+ | --- | --- | --- |
126
+ | `app_id` | string or null | Resolved app id |
127
+ | `app_key` | string or null | Resolved app key |
128
+ | `app_name` | string or null | Human-readable bundle name when known |
129
+ | `decision` | string | `install`, `activate`, `uninstall`, `keep`, or `skip` |
130
+ | `reason` | string | Why this decision was generated |
131
+ | `install_status` | string | Current install status from bundle projection |
132
+ | `installed_release_id` | string or null | Currently installed release on this device |
133
+ | `active_release_id` | string or null | Currently active release |
134
+ | `required` | boolean | Whether the resolved desired set marks this as required |
135
+ | `sources` | array | Provenance list for desired entries; removals may be empty |
136
+
137
+ ### Stable `decision` values
138
+
139
+ | Decision | Meaning |
140
+ | --- | --- |
141
+ | `install` | Desired app is not installed on this device |
142
+ | `activate` | Installed release exists but is not the active release |
143
+ | `uninstall` | App is installed but no longer desired on this device |
144
+ | `keep` | App already matches desired state |
145
+ | `skip` | Plan cannot safely execute this item automatically |
146
+
147
+ ### Stable `reason` values currently emitted
148
+
149
+ | Reason | Meaning |
150
+ | --- | --- |
151
+ | `desired-app-not-installed` | Install candidate |
152
+ | `installed-release-not-active` | Activate candidate |
153
+ | `desired-app-already-installed` | Keep candidate |
154
+ | `not-desired-on-current-device` | Uninstall candidate |
155
+ | `device-capability-mismatch` | Desired app filtered out by capability tags |
156
+ | `app-bundle-not-found` | Desired app does not resolve to a known bundle |
157
+ | `active-release-protected` | Installed app is active and cannot be auto-uninstalled |
158
+
159
+ ## Execution Contract
160
+
161
+ ### `execution_blocked_reason`
162
+
163
+ Current stable values:
164
+
165
+ - `null`
166
+ - `unresolved-collections`
167
+ - `unresolved-app-bundles`
168
+ - `active-release-protected`
169
+ - comma-joined combinations such as `unresolved-collections,active-release-protected`
170
+ - `install-preflight-failed`
171
+ - `invalid-plan-action`
172
+
173
+ ### `execution.results[]`
174
+
175
+ Returned only when execution actually runs.
176
+
177
+ ```json
178
+ [
179
+ {
180
+ "app_ref": "crm",
181
+ "decision": "install",
182
+ "success": true,
183
+ "summary": {
184
+ "app_id": "app.crm",
185
+ "install_status": "installed",
186
+ "installed_release_id": "rel.crm.1",
187
+ "active_release_id": "rel.crm.1"
188
+ }
189
+ }
190
+ ]
191
+ ```
192
+
193
+ ### `execution.preflight_failures[]`
194
+
195
+ Returned when execution is blocked because install/activate candidates are not runtime-ready.
196
+
197
+ ```json
198
+ [
199
+ {
200
+ "app_ref": "crm",
201
+ "reason": "no-installable-runtime-release"
202
+ }
203
+ ]
204
+ ```
205
+
206
+ Current stable preflight reasons:
207
+
208
+ - `no-installable-runtime-release`
209
+ - `no-activatable-installed-release`
210
+
211
+ ## Example: Plan Only
212
+
213
+ ```json
214
+ {
215
+ "mode": "scene-workspace-apply",
216
+ "execute_supported": true,
217
+ "executed": false,
218
+ "execution_blocked_reason": null,
219
+ "summary": {
220
+ "source_type": "scene-workspace",
221
+ "source_id": "sales-desktop",
222
+ "desired_app_count": 4,
223
+ "install_count": 2,
224
+ "activate_count": 1,
225
+ "uninstall_count": 0,
226
+ "keep_count": 1,
227
+ "skip_count": 0
228
+ }
229
+ }
230
+ ```
231
+
232
+ ## Example: Executed
233
+
234
+ ```json
235
+ {
236
+ "mode": "app-collection-apply",
237
+ "execute_supported": true,
238
+ "executed": true,
239
+ "execution_blocked_reason": null,
240
+ "execution": {
241
+ "results": [
242
+ {
243
+ "app_ref": "crm",
244
+ "decision": "install",
245
+ "success": true
246
+ },
247
+ {
248
+ "app_ref": "todo",
249
+ "decision": "uninstall",
250
+ "success": true
251
+ }
252
+ ],
253
+ "preflight_failures": []
254
+ }
255
+ }
256
+ ```
257
+
258
+ ## Frontend Guidance
259
+
260
+ - Treat `plan.actions` as the primary render contract for the diff table.
261
+ - Treat `summary` as the primary count badge contract.
262
+ - Treat `execution.results` as post-run feedback only; do not infer the plan from it.
263
+ - Use `execution_blocked_reason` and per-action `reason` together. One tells you why the full plan could not run; the other tells you why each row exists.
@@ -87,6 +87,18 @@ sce auto close-loop-program \
87
87
  --program-audit-out .sce/reports/close-loop-program-audit.json \
88
88
  --json
89
89
 
90
+ Use this path when the problem is broader than one Spec and already clearly points to multiple coordinated implementation tracks.
91
+
92
+ If the problem is still too unclear for direct implementation splitting, treat it as a research-first program and clarify domains/contracts/rules before expecting stable executable tasks from child Specs.
93
+
94
+ Suggested preflight:
95
+
96
+ ```bash
97
+ sce spec strategy assess --goal "broad complex goal" --json
98
+ ```
99
+
100
+ If you are already inside a single Spec flow, `sce spec gate run --spec <spec-id>` and `sce spec pipeline run --spec <spec-id>` now echo the same strategy concern as a non-blocking advisory when one Spec is no longer the right execution container.
101
+
90
102
  # Controller command: drain queue goals with autonomous close-loop-program runtime
91
103
  sce auto close-loop-controller .sce/auto/program-queue.lines \
92
104
  --dequeue-limit 2 \
@@ -80,11 +80,18 @@ sce spec domain refresh --spec 01-00-feature-name --scene scene.customer-order-i
80
80
  sce spec related --query "customer order inventory reconciliation drift" --scene scene.customer-order-inventory --json
81
81
  sce spec related --spec 01-00-feature-name --limit 8 --json
82
82
 
83
+ # Assess whether one Spec is enough before decomposition
84
+ sce spec strategy assess --goal "broad complex goal" --json
85
+ sce spec strategy assess --spec 01-00-feature-name --json
86
+
83
87
  # Multi-Spec mode defaults to orchestrate routing
84
88
  sce spec bootstrap --specs "spec-a,spec-b" --max-parallel 3
85
89
  sce spec pipeline run --specs "spec-a,spec-b" --max-parallel 3
86
90
  sce spec gate run --specs "spec-a,spec-b" --max-parallel 3
87
91
 
92
+ # Very broad / entangled goals can use program mode first
93
+ sce auto close-loop-program "broad complex goal" --program-goals 4 --json
94
+
88
95
  # Show Spec progress
89
96
  sce status --verbose
90
97
  ```
@@ -93,6 +100,11 @@ Spec session governance:
93
100
  - `spec bootstrap|pipeline run|gate run` must bind to an active scene primary session (`--scene <scene-id>` or implicit binding from latest/unique active scene).
94
101
  - When multiple active scenes exist, you must pass `--scene` explicitly.
95
102
  - Multi-Spec orchestrate fallback (`--specs ...`) follows the same scene binding and writes per-spec child-session archive records.
103
+ - `sce spec strategy assess` is read-only and should be used when you are not sure whether the current problem still fits one Spec.
104
+ - `sce spec pipeline run --spec <id> --json` now includes the same read-only `strategy_assessment` block for single-Spec runs.
105
+ - `sce spec gate run --spec <id> --json` now includes a read-only `strategy_assessment` block for single-Spec runs.
106
+ - Human-readable `spec gate` output now prints a strategy advisory when the assessed decision is `multi-spec-program` or `research-program`, but it does not auto-reroute execution.
107
+ - Human-readable `spec pipeline` output now prints the same advisory after stage results for single-Spec runs.
96
108
  - `spec bootstrap` always generates problem-domain, scene-spec, and `problem-contract` artifacts to force domain-first exploration.
97
109
  - `spec gate` now hard-fails when either of the following is missing or structurally incomplete:
98
110
  - `.sce/specs/<spec>/custom/problem-domain-map.md`
@@ -104,6 +116,7 @@ Spec session governance:
104
116
  - `scene-spec.md` must include `Closed-Loop Research Contract`
105
117
  - `problem-domain-chain.json` must include `research_coverage` contract
106
118
  - `sce spec domain coverage` reports coverage dimensions (scene boundary, entity/relation/rules/policy/flow, failure signals, debug evidence plan, verification gate).
119
+ - When one Spec cannot produce stable executable tasks, prefer escalating to a coordinated multi-Spec or program path instead of forcing more blind decomposition into the same Spec.
107
120
 
108
121
  ### Timeline Snapshots
109
122
 
@@ -429,6 +442,8 @@ sce mode engineering home --app customer-order-demo --json
429
442
  Device override notes:
430
443
  - `sce device override show` returns the normalized local per-device overlay from `.sce/state/device/device-override.json`.
431
444
  - `sce device override upsert --input <json>` merges only explicitly provided fields; omitted fields remain unchanged so local override policy is not blindly replaced.
445
+ - Copy-ready collection/workspace examples live under `docs/examples/app-intent-phase1/.sce/app/...`.
446
+ - Stable JSON contract for both apply commands is documented in `docs/app-intent-apply-contract.md`.
432
447
 
433
448
  ### PM Delivery Data Plane
434
449
 
@@ -0,0 +1,34 @@
1
+ {
2
+ "collection_id": "planning-workbench",
3
+ "name": "Planning Workbench",
4
+ "description": "MRP, scheduling, and inventory analysis bundle for planning teams.",
5
+ "status": "active",
6
+ "tags": ["planning", "mrp", "inventory"],
7
+ "items": [
8
+ {
9
+ "app_key": "mrp",
10
+ "required": true,
11
+ "allow_local_remove": false,
12
+ "priority": 10,
13
+ "default_entry": "mrp/workbench"
14
+ },
15
+ {
16
+ "app_key": "scheduling",
17
+ "required": true,
18
+ "allow_local_remove": false,
19
+ "priority": 20,
20
+ "default_entry": "schedule/board"
21
+ },
22
+ {
23
+ "app_key": "inventory-insight",
24
+ "required": false,
25
+ "allow_local_remove": true,
26
+ "priority": 30,
27
+ "default_entry": "inventory/analysis"
28
+ }
29
+ ],
30
+ "metadata": {
31
+ "owner_role": "planner",
32
+ "recommended_device_profile": "desktop-planning"
33
+ }
34
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "collection_id": "sales-workbench",
3
+ "name": "Sales Workbench",
4
+ "description": "Daily sales follow-up, quotation, and customer visit bundle for desktop users.",
5
+ "status": "active",
6
+ "tags": ["sales", "crm", "quotation"],
7
+ "items": [
8
+ {
9
+ "app_key": "crm",
10
+ "required": true,
11
+ "allow_local_remove": false,
12
+ "priority": 10,
13
+ "default_entry": "crm/home"
14
+ },
15
+ {
16
+ "app_key": "quotation",
17
+ "required": true,
18
+ "allow_local_remove": false,
19
+ "priority": 20,
20
+ "default_entry": "quotation/dashboard"
21
+ },
22
+ {
23
+ "app_key": "customer-visit",
24
+ "required": false,
25
+ "allow_local_remove": true,
26
+ "priority": 30,
27
+ "default_entry": "visit/agenda"
28
+ },
29
+ {
30
+ "app_key": "notes",
31
+ "required": false,
32
+ "allow_local_remove": true,
33
+ "priority": 40
34
+ }
35
+ ],
36
+ "metadata": {
37
+ "owner_role": "sales",
38
+ "recommended_device_profile": "desktop-sales"
39
+ }
40
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "collection_id": "warehouse-kiosk",
3
+ "name": "Warehouse Kiosk",
4
+ "description": "Lightweight warehouse execution bundle for tablet or kiosk devices.",
5
+ "status": "active",
6
+ "tags": ["warehouse", "tablet", "barcode"],
7
+ "items": [
8
+ {
9
+ "app_key": "barcode-scan",
10
+ "required": true,
11
+ "allow_local_remove": false,
12
+ "priority": 10,
13
+ "capability_tags": ["tablet"],
14
+ "default_entry": "scan/inbound"
15
+ },
16
+ {
17
+ "app_key": "inbound-receipt",
18
+ "required": true,
19
+ "allow_local_remove": false,
20
+ "priority": 20,
21
+ "capability_tags": ["tablet"]
22
+ },
23
+ {
24
+ "app_key": "label-print",
25
+ "required": false,
26
+ "allow_local_remove": true,
27
+ "priority": 30,
28
+ "capability_tags": ["tablet"]
29
+ }
30
+ ],
31
+ "metadata": {
32
+ "owner_role": "warehouse",
33
+ "recommended_device_profile": "tablet-kiosk"
34
+ }
35
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "workspace_id": "planning-desktop",
3
+ "name": "Planning Desktop Workspace",
4
+ "description": "Desktop planning workspace that combines MRP, scheduling, and supply review.",
5
+ "status": "active",
6
+ "tags": ["planning", "desktop"],
7
+ "collection_refs": ["planning-workbench"],
8
+ "default_entry": "mrp/workbench",
9
+ "layout_hint": "wide-dashboard",
10
+ "items": [
11
+ {
12
+ "app_key": "supply-risk",
13
+ "required": false,
14
+ "allow_local_remove": true,
15
+ "priority": 40,
16
+ "capability_tags": ["desktop"]
17
+ }
18
+ ],
19
+ "metadata": {
20
+ "persona": "production-planner",
21
+ "device_type": "desktop"
22
+ }
23
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "workspace_id": "sales-desktop",
3
+ "name": "Sales Desktop Workspace",
4
+ "description": "Desktop-first workspace for sales follow-up, quotation, and optional analytics.",
5
+ "status": "active",
6
+ "tags": ["sales", "desktop"],
7
+ "collection_refs": ["sales-workbench"],
8
+ "default_entry": "crm/home",
9
+ "layout_hint": "two-column",
10
+ "items": [
11
+ {
12
+ "app_key": "analytics",
13
+ "required": false,
14
+ "allow_local_remove": true,
15
+ "priority": 50,
16
+ "capability_tags": ["desktop"],
17
+ "default_entry": "analytics/sales-pipeline"
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "persona": "sales-representative",
22
+ "device_type": "desktop"
23
+ }
24
+ }
@@ -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.