scene-capability-engine 3.6.19 → 3.6.20

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 CHANGED
@@ -7,10 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.6.20] - 2026-03-06
11
+
12
+ ### Added
13
+ - Capability catalog entries now expose pre-publish readiness UI fields for badge rendering and sorting.
14
+ - Magicball capability library guide now documents list-level publish readiness fields.
15
+
10
16
  ## [3.6.19] - 2026-03-06
11
17
 
12
18
  ### Added
13
19
  - Capability map/register payloads now expose `release_readiness` with structured blocking reasons for publish UI.
20
+ - Capability catalog payloads now expose `release_readiness_ui` for pre-publish status badges and sorting.
14
21
  - Magicball capability docs now define release blocker rendering for capability publish pages.
15
22
 
16
23
  ## [3.6.18] - 2026-03-06
package/README.md CHANGED
@@ -218,5 +218,5 @@ MIT. See [LICENSE](LICENSE).
218
218
 
219
219
  ---
220
220
 
221
- **Version**: 3.6.19
221
+ **Version**: 3.6.20
222
222
  **Last Updated**: 2026-03-05
package/README.zh.md CHANGED
@@ -218,5 +218,5 @@ MIT,见 [LICENSE](LICENSE)。
218
218
 
219
219
  ---
220
220
 
221
- **版本**:3.6.19
221
+ **版本**:3.6.20
222
222
  **最后更新**:2026-03-05
@@ -1898,6 +1898,7 @@ Schema references:
1898
1898
 
1899
1899
  `catalog/list/search/show/match/use` responses now include `ontology_core` and `ontology_core_ui` so UI can render triad readiness directly.
1900
1900
  `capability map/register` responses now include `release_readiness` so UI can render blocking reasons before publish.
1901
+ Catalog payloads also expose `release_readiness_ui` for pre-publish sorting and status badges.
1901
1902
 
1902
1903
  ```bash
1903
1904
  # List capability templates
@@ -146,6 +146,17 @@ sce capability use --template <template-id> --spec <spec-id> --apply --json
146
146
 
147
147
  若需要“自动落地写入 spec 任务”的强制执行模式,可以在后续版本加 `--apply` 开关。
148
148
 
149
+ ### release_readiness_ui(列表状态)
150
+ ```json
151
+ {
152
+ "publish_ready": false,
153
+ "blocking_count": 1,
154
+ "blocking_ids": ["ontology-core-triads"],
155
+ "blocking_reasons": ["missing required ontology triads"],
156
+ "blocking_missing": ["decision_strategy"]
157
+ }
158
+ ```
159
+
149
160
  ### release_readiness(发布阻断原因)
150
161
  ```json
151
162
  {
@@ -432,10 +432,27 @@ function enrichCapabilityTemplateForUi(template) {
432
432
  const ontologyCore = template && template.ontology_core
433
433
  ? template.ontology_core
434
434
  : buildCoreOntologySummary(template && template.ontology_scope ? template.ontology_scope : createEmptyOntologyScope());
435
+ const releaseReadiness = template && template.release_readiness
436
+ ? template.release_readiness
437
+ : {
438
+ ready: ontologyCore.ready === true,
439
+ blockers: ontologyCore.ready === true
440
+ ? []
441
+ : [{
442
+ id: 'ontology-core-triads',
443
+ severity: 'blocking',
444
+ reason: 'missing required ontology triads',
445
+ missing: Array.isArray(ontologyCore.missing) ? ontologyCore.missing : []
446
+ }],
447
+ ontology_core: ontologyCore,
448
+ ontology_core_ui: buildOntologyCoreUiState(ontologyCore)
449
+ };
435
450
  return {
436
451
  ...template,
437
452
  ontology_core: ontologyCore,
438
- ontology_core_ui: buildOntologyCoreUiState(ontologyCore)
453
+ ontology_core_ui: buildOntologyCoreUiState(ontologyCore),
454
+ release_readiness: releaseReadiness,
455
+ release_readiness_ui: buildCapabilityReleaseReadinessUi(releaseReadiness)
439
456
  };
440
457
  }
441
458
 
@@ -464,6 +481,20 @@ function buildCapabilityReleaseReadiness(templateCandidate) {
464
481
  };
465
482
  }
466
483
 
484
+ function buildCapabilityReleaseReadinessUi(readiness) {
485
+ const details = readiness && typeof readiness === 'object'
486
+ ? readiness
487
+ : { ready: true, blockers: [] };
488
+ const blockers = Array.isArray(details.blockers) ? details.blockers : [];
489
+ return {
490
+ publish_ready: details.ready === true,
491
+ blocking_count: blockers.length,
492
+ blocking_ids: blockers.map((item) => item && item.id).filter(Boolean),
493
+ blocking_reasons: blockers.map((item) => item && item.reason).filter(Boolean),
494
+ blocking_missing: blockers.flatMap((item) => Array.isArray(item && item.missing) ? item.missing : [])
495
+ };
496
+ }
497
+
467
498
  async function loadSceneIndexFromFile(projectPath, fileSystem) {
468
499
  const indexPath = path.join(projectPath, '.sce', 'spec-governance', 'scene-index.json');
469
500
  if (!await fileSystem.pathExists(indexPath)) {
@@ -1462,5 +1493,12 @@ module.exports = {
1462
1493
  runCapabilityExtractCommand,
1463
1494
  runCapabilityScoreCommand,
1464
1495
  runCapabilityMapCommand,
1465
- runCapabilityRegisterCommand
1496
+ runCapabilityRegisterCommand,
1497
+ listCapabilityCatalog,
1498
+ searchCapabilityCatalog,
1499
+ showCapabilityTemplate,
1500
+ matchCapabilityTemplates,
1501
+ useCapabilityTemplate,
1502
+ enrichCapabilityTemplateForUi,
1503
+ buildCapabilityReleaseReadinessUi
1466
1504
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scene-capability-engine",
3
- "version": "3.6.19",
3
+ "version": "3.6.20",
4
4
  "description": "SCE (Scene Capability Engine) - A CLI tool and npm package for spec-driven development with AI coding assistants.",
5
5
  "main": "index.js",
6
6
  "bin": {