kiro-spec-engine 1.47.26 → 1.47.28

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.
@@ -522,7 +522,7 @@ kse auto handoff plan --manifest ../331-poc/docs/handoffs/handoff-manifest.json
522
522
  kse auto handoff queue --manifest ../331-poc/docs/handoffs/handoff-manifest.json --out .kiro/auto/handoff-goals.lines --json
523
523
  kse auto handoff template-diff --manifest ../331-poc/docs/handoffs/handoff-manifest.json --json
524
524
  kse auto handoff run --manifest ../331-poc/docs/handoffs/handoff-manifest.json --json
525
- kse auto handoff run --manifest ../331-poc/docs/handoffs/handoff-manifest.json --require-ontology-validation --min-spec-success-rate 95 --max-risk-level medium --json
525
+ kse auto handoff run --manifest ../331-poc/docs/handoffs/handoff-manifest.json --min-spec-success-rate 95 --max-risk-level medium --json
526
526
  kse auto handoff run --manifest ../331-poc/docs/handoffs/handoff-manifest.json --continue-from latest --continue-strategy auto --json
527
527
  kse auto handoff regression --session-id latest --json
528
528
  kse auto handoff regression --session-id latest --window 5 --json
@@ -765,15 +765,15 @@ Dual-track handoff integration:
765
765
  - `kse auto handoff plan --manifest <path> [--out <path>] [--strict] [--strict-warnings] [--json]`: parse handoff manifest (source project, specs, templates, known gaps) and generate an executable KSE integration phase plan.
766
766
  - `kse auto handoff queue --manifest <path> [--out <path>] [--append] [--no-include-known-gaps] [--dry-run] [--json]`: generate close-loop batch goal queue from handoff manifest and optionally persist line-based queue file (default `.kiro/auto/handoff-goals.lines`).
767
767
  - `kse auto handoff template-diff --manifest <path> [--json]`: compare manifest templates against local template exports/registry and report `missing_in_local` and `extra_in_local`.
768
- - `kse auto handoff run --manifest <path> [--out <path>] [--queue-out <path>] [--append] [--no-include-known-gaps] [--continue-from <session|latest|file>] [--continue-strategy <auto|pending|failed-only>] [--dry-run] [--strict] [--strict-warnings] [--no-dependency-batching] [--min-spec-success-rate <n>] [--max-risk-level <level>] [--require-ontology-validation] [--release-evidence-window <n>] [--json]`: execute handoff end-to-end (`plan -> queue -> close-loop-batch -> observability`) with automatic report archive to `.kiro/reports/handoff-runs/<session>.json`.
768
+ - `kse auto handoff run --manifest <path> [--out <path>] [--queue-out <path>] [--append] [--no-include-known-gaps] [--continue-from <session|latest|file>] [--continue-strategy <auto|pending|failed-only>] [--dry-run] [--strict] [--strict-warnings] [--no-dependency-batching] [--min-spec-success-rate <n>] [--max-risk-level <level>] [--no-require-ontology-validation] [--release-evidence-window <n>] [--json]`: execute handoff end-to-end (`plan -> queue -> close-loop-batch -> observability`) with automatic report archive to `.kiro/reports/handoff-runs/<session>.json`.
769
769
  - Default mode is dependency-aware: spec integration goals are grouped into dependency batches and executed in topological order.
770
770
  - `--continue-from` resumes pending goals from an existing handoff run report (`latest`, session id, or JSON file path). For safety, KSE enforces manifest-path consistency between the previous report and current run.
771
771
  - `--continue-strategy auto|pending|failed-only` controls resumed scope. `auto` (default) derives the best strategy from prior run state (`pending` when unprocessed/planned goals exist, otherwise `failed-only` for pure failure replay).
772
772
  - Non-dry runs auto-merge release evidence into `.kiro/reports/release-evidence/handoff-runs.json` with session-level gate/ontology/regression snapshots. Merge failures are recorded as warnings without aborting the run.
773
773
  - `--release-evidence-window` controls trend snapshot window size (2-50, default `5`) used in merged release evidence (`latest_trend_window` and per-session `trend_window`).
774
774
  - Run result includes `recommendations` with executable follow-up commands (for example, auto-generated `--continue-from <session>` on failed/incomplete batches).
775
- - Gate defaults: `--min-spec-success-rate` defaults to `100`, `--max-risk-level` defaults to `high`.
776
- - When `--require-ontology-validation` is enabled, run fails fast at precheck if manifest ontology evidence is missing or not passed.
775
+ - Gate defaults: `--min-spec-success-rate` defaults to `100`, `--max-risk-level` defaults to `high`, and ontology validation requirement is enabled by default.
776
+ - Use `--no-require-ontology-validation` only for emergency bypass; default behavior fails fast at precheck if manifest ontology evidence is missing or not passed.
777
777
  - `kse auto handoff regression [--session-id <id|latest>] [--window <n>] [--format <json|markdown>] [--out <path>] [--json]`: compare one handoff run report with its previous run and output trend deltas (success-rate/risk/failed-goals/elapsed time).
778
778
  - `--window` (2-50, default `2`) returns multi-run `series`, `window_trend`, and `aggregates` for broader regression visibility.
779
779
  - Regression JSON now includes `risk_layers` (low/medium/high/unknown buckets with per-layer session list and quality aggregates).
@@ -836,10 +836,10 @@ kse scene template-render --package scene-erp --values '{"entity_name":"Order"}'
836
836
  ### Scene Package Batch Publish
837
837
 
838
838
  ```bash
839
- # Publish scene package templates from a handoff manifest (default: completed specs only)
839
+ # Publish scene package templates from a handoff manifest (default: completed specs only + ontology validation required)
840
840
  kse scene package-publish-batch --manifest docs/handoffs/handoff-manifest.json --json
841
841
 
842
- # Use 331-poc preset defaults (manifest/docs paths + completed filter)
842
+ # Use 331-poc preset defaults (manifest/docs paths + completed filter + ontology batch gate: avg>=70, valid-rate>=100%)
843
843
  kse scene package-publish-batch --from-331 --json
844
844
 
845
845
  # Preview batch publish plan without writing template files
@@ -854,7 +854,7 @@ kse scene package-publish-batch --manifest docs/handoffs/handoff-manifest.json -
854
854
  # Read specs from non-standard manifest path
855
855
  kse scene package-publish-batch --manifest docs/handoffs/handoff-manifest.json --manifest-spec-path handoff.spec_items --json
856
856
 
857
- # Enforce ontology validation + semantic quality threshold before publish
857
+ # Tighten per-spec ontology semantic quality threshold before publish
858
858
  kse scene package-publish-batch --from-331 --require-ontology-validation --ontology-min-score 70 --json
859
859
 
860
860
  # Persist ontology/publish batch report for governance tracking
@@ -863,6 +863,9 @@ kse scene package-publish-batch --from-331 --dry-run --ontology-report-out .kiro
863
863
  # Enforce batch-level ontology portfolio gate (average score + valid-rate)
864
864
  kse scene package-publish-batch --from-331 --dry-run --ontology-min-average-score 60 --ontology-min-valid-rate 90 --json
865
865
 
866
+ # Emergency bypass (not recommended): disable ontology validation requirement
867
+ kse scene package-publish-batch --manifest docs/handoffs/handoff-manifest.json --no-require-ontology-validation --json
868
+
866
869
  # Export ontology remediation task draft markdown
867
870
  kse scene package-publish-batch --from-331 --dry-run --ontology-task-out .kiro/reports/scene-package-ontology-task-draft.md --json
868
871
 
@@ -1746,7 +1746,8 @@ function registerAutoCommands(program) {
1746
1746
  .option('--min-ontology-score <n>', 'Gate: minimum ontology quality score (0-100, default: 0)', parseFloat)
1747
1747
  .option('--max-unmapped-rules <n>', 'Gate: maximum allowed unmapped business rules (optional)', parseInt)
1748
1748
  .option('--max-undecided-decisions <n>', 'Gate: maximum allowed undecided decisions (optional)', parseInt)
1749
- .option('--require-ontology-validation', 'Gate: require manifest ontology_validation to be present and passed')
1749
+ .option('--require-ontology-validation', 'Gate: require manifest ontology_validation to be present and passed (default: enabled)')
1750
+ .option('--no-require-ontology-validation', 'Gate: disable manifest ontology_validation requirement (not recommended)')
1750
1751
  .option('--release-evidence-window <n>', 'Release evidence trend window size (2-50, default: 5)', parseInt)
1751
1752
  .option('--json', 'Output machine-readable JSON')
1752
1753
  .action(async (options) => {
@@ -9403,7 +9404,7 @@ function buildAutoHandoffRunPolicy(options = {}) {
9403
9404
  options.maxUndecidedDecisions,
9404
9405
  '--max-undecided-decisions'
9405
9406
  ),
9406
- require_ontology_validation: Boolean(options.requireOntologyValidation),
9407
+ require_ontology_validation: options.requireOntologyValidation !== false,
9407
9408
  dependency_batching: options.dependencyBatching !== false,
9408
9409
  release_evidence_window: normalizeHandoffReleaseEvidenceWindow(options.releaseEvidenceWindow)
9409
9410
  };
@@ -9781,7 +9782,7 @@ function evaluateAutoHandoffRunGates(context = {}) {
9781
9782
  min_ontology_score: 0,
9782
9783
  max_unmapped_rules: null,
9783
9784
  max_undecided_decisions: null,
9784
- require_ontology_validation: false
9785
+ require_ontology_validation: true
9785
9786
  };
9786
9787
  const dryRun = Boolean(context.dryRun);
9787
9788
  const specStatus = context.specStatus || {
@@ -9896,7 +9897,7 @@ function buildAutoHandoffRunRecommendations(projectPath, result) {
9896
9897
  ) {
9897
9898
  push(
9898
9899
  `Ensure manifest ontology_validation is present and passed, then rerun: ` +
9899
- `kse auto handoff run --manifest ${manifestCli} --require-ontology-validation --json`
9900
+ `kse auto handoff run --manifest ${manifestCli} --json`
9900
9901
  );
9901
9902
  if (result.error.toLowerCase().includes('ontology_quality_score')) {
9902
9903
  push(`kse auto handoff run --manifest ${manifestCli} --min-ontology-score 80 --json`);
@@ -60,6 +60,8 @@ const SCENE_PACKAGE_KINDS = new Set([
60
60
  const SCENE_PACKAGE_RISK_LEVELS = new Set(['low', 'medium', 'high', 'critical']);
61
61
  const SCENE_PACKAGE_TEMPLATE_API_VERSION = 'kse.scene.template/v0.1';
62
62
  const SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR = '.kiro/templates/scene-packages';
63
+ const SCENE_PACKAGE_BATCH_DEFAULT_ONTOLOGY_MIN_AVERAGE_SCORE = 70;
64
+ const SCENE_PACKAGE_BATCH_DEFAULT_ONTOLOGY_MIN_VALID_RATE = 100;
63
65
  const SCENE_PACKAGE_GATE_API_VERSION = 'kse.scene.package-gate/v0.1';
64
66
  const SCENE_PACKAGE_GATE_TEMPLATE_PROFILES = new Set(['baseline', 'three-layer']);
65
67
  const SCENE_PACKAGE_KIND_LAYER_MAP = Object.freeze({
@@ -399,7 +401,8 @@ function registerSceneCommands(program) {
399
401
  .option('--scene-manifest <relative-path>', 'Scene manifest path inside source spec', 'custom/scene.yaml')
400
402
  .option('--out-dir <path>', 'Template library output root', SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR)
401
403
  .option('--template-id <template-id>', 'Explicit template id (folder name)')
402
- .option('--require-ontology-validation', 'Require ontology graph validation before publish')
404
+ .option('--require-ontology-validation', 'Require ontology graph validation before publish (default: enabled)')
405
+ .option('--no-require-ontology-validation', 'Allow publish when ontology graph validation fails (not recommended)')
403
406
  .option('--ontology-min-score <number>', 'Minimum ontology semantic quality score (0-100)')
404
407
  .option('--dry-run', 'Preview publish without writing files')
405
408
  .option('--force', 'Overwrite existing template directory if it already exists')
@@ -418,10 +421,11 @@ function registerSceneCommands(program) {
418
421
  .option('--include <specs>', 'Comma-separated spec IDs to include')
419
422
  .option('--fallback-spec-package <relative-path>', 'Fallback package path inside spec')
420
423
  .option('--fallback-scene-manifest <relative-path>', 'Fallback scene manifest path inside spec')
421
- .option('--require-ontology-validation', 'Require ontology graph validation before publish')
424
+ .option('--require-ontology-validation', 'Require ontology graph validation before publish (default: enabled)')
425
+ .option('--no-require-ontology-validation', 'Allow publish when ontology graph validation fails (not recommended)')
422
426
  .option('--ontology-min-score <number>', 'Minimum ontology semantic quality score (0-100)')
423
- .option('--ontology-min-average-score <number>', 'Minimum ontology average score for selected batch (0-100)')
424
- .option('--ontology-min-valid-rate <number>', 'Minimum ontology graph-valid rate for selected batch (0-100)')
427
+ .option('--ontology-min-average-score <number>', `Minimum ontology average score for selected batch (0-100, default with --from-331: ${SCENE_PACKAGE_BATCH_DEFAULT_ONTOLOGY_MIN_AVERAGE_SCORE})`)
428
+ .option('--ontology-min-valid-rate <number>', `Minimum ontology graph-valid rate for selected batch (0-100, default with --from-331: ${SCENE_PACKAGE_BATCH_DEFAULT_ONTOLOGY_MIN_VALID_RATE})`)
425
429
  .option('--ontology-report-out <path>', 'Write ontology/publish batch report JSON to file')
426
430
  .option('--ontology-task-out <path>', 'Write ontology remediation task draft markdown to file')
427
431
  .option('--ontology-task-queue-out <path>', 'Write ontology remediation queue lines for close-loop-batch')
@@ -1190,7 +1194,7 @@ function normalizeScenePackagePublishOptions(options = {}) {
1190
1194
  sceneManifest: normalizeRelativePath(options.sceneManifest || 'custom/scene.yaml') || 'custom/scene.yaml',
1191
1195
  outDir: options.outDir ? String(options.outDir).trim() : SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR,
1192
1196
  templateId: options.templateId ? String(options.templateId).trim() : undefined,
1193
- requireOntologyValidation: options.requireOntologyValidation === true,
1197
+ requireOntologyValidation: options.requireOntologyValidation !== false,
1194
1198
  ontologyMinScore: options.ontologyMinScore === undefined || options.ontologyMinScore === null || options.ontologyMinScore === ''
1195
1199
  ? null
1196
1200
  : Number(options.ontologyMinScore),
@@ -1218,15 +1222,15 @@ function normalizeScenePackagePublishBatchOptions(options = {}) {
1218
1222
  .filter((item) => item.length > 0),
1219
1223
  fallbackSpecPackage: normalizeRelativePath(options.fallbackSpecPackage || fallbackSpecPackageDefault) || fallbackSpecPackageDefault,
1220
1224
  fallbackSceneManifest: normalizeRelativePath(options.fallbackSceneManifest || fallbackSceneManifestDefault) || fallbackSceneManifestDefault,
1221
- requireOntologyValidation: options.requireOntologyValidation === true,
1225
+ requireOntologyValidation: options.requireOntologyValidation !== false,
1222
1226
  ontologyMinScore: options.ontologyMinScore === undefined || options.ontologyMinScore === null || options.ontologyMinScore === ''
1223
1227
  ? null
1224
1228
  : Number(options.ontologyMinScore),
1225
1229
  ontologyMinAverageScore: options.ontologyMinAverageScore === undefined || options.ontologyMinAverageScore === null || options.ontologyMinAverageScore === ''
1226
- ? null
1230
+ ? (from331 ? SCENE_PACKAGE_BATCH_DEFAULT_ONTOLOGY_MIN_AVERAGE_SCORE : null)
1227
1231
  : Number(options.ontologyMinAverageScore),
1228
1232
  ontologyMinValidRate: options.ontologyMinValidRate === undefined || options.ontologyMinValidRate === null || options.ontologyMinValidRate === ''
1229
- ? null
1233
+ ? (from331 ? SCENE_PACKAGE_BATCH_DEFAULT_ONTOLOGY_MIN_VALID_RATE : null)
1230
1234
  : Number(options.ontologyMinValidRate),
1231
1235
  ontologyReportOut: options.ontologyReportOut ? String(options.ontologyReportOut).trim() : undefined,
1232
1236
  ontologyTaskOut: options.ontologyTaskOut ? String(options.ontologyTaskOut).trim() : undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiro-spec-engine",
3
- "version": "1.47.26",
3
+ "version": "1.47.28",
4
4
  "description": "kiro-spec-engine (kse) - A CLI tool and npm package for spec-driven development with AI coding assistants. NOT the Kiro IDE desktop application.",
5
5
  "main": "index.js",
6
6
  "bin": {