its-magic 0.1.2-27 → 0.1.2-29

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/README.md CHANGED
@@ -225,6 +225,37 @@ Intake runtime safety behavior (US-0059):
225
225
  writers; true conflicting external writes fail safe with
226
226
  `INTAKE_CONCURRENT_WRITER_DETECTED`.
227
227
 
228
+ Runtime QA autopilot behavior (US-0065):
229
+ - Generated-project QA must include runtime proof chain:
230
+ `startup -> readiness/connectivity -> log scan -> bounded retry -> verdict`.
231
+ - Deterministic runtime fail codes:
232
+ `RUNTIME_STARTUP_FAILED`, `RUNTIME_ENDPOINT_UNREACHABLE`,
233
+ `RUNTIME_LOG_CRITICAL_DETECTED`, `RUNTIME_RETRY_BUDGET_EXHAUSTED`,
234
+ `RUNTIME_STACK_PROFILE_UNRESOLVED`.
235
+ - Runtime evidence must include startup command/profile, runtime mode
236
+ (`local|remote`), health result, retry ledger, and log severity summary.
237
+ - Stack-aware runtime profile resolution is required for Node/Python/Go/Java/.NET;
238
+ unresolved stacks fail closed (no generic silent PASS fallback).
239
+ - For webapp contexts, QA includes browser-surface verification with
240
+ console/network error signals.
241
+
242
+ Generated test scaffolding + auto-run behavior (US-0066):
243
+ - `/execute` resolves stack profile (`node|python|go|java|dotnet`) and generates
244
+ missing baseline unit/integration/acceptance tests only.
245
+ - Generation is non-destructive by default: preserve user-authored tests/config,
246
+ fill only missing baseline assets, keep reruns idempotent.
247
+ - `TEST_COMMAND` wiring is deterministic:
248
+ - preserve existing non-empty user command,
249
+ - set stack baseline only when command is missing/unset.
250
+ - `/qa` automatically runs the generated baseline tests and records deterministic
251
+ evidence (`command`, `result`, `output ref`, `generated paths ref`).
252
+ - Fail-closed scaffold diagnostics:
253
+ `TEST_SCAFFOLD_STACK_UNRESOLVED`,
254
+ `TEST_SCAFFOLD_UNSUPPORTED_STACK`,
255
+ `TEST_SCAFFOLD_GENERATION_FAILED`.
256
+ - Static baseline test pass does not bypass runtime autopilot; runtime verdict
257
+ remains mandatory for QA PASS.
258
+
228
259
  ## Workflow
229
260
 
230
261
  ### Core commands
@@ -277,6 +308,34 @@ broad/high-risk requests:
277
308
  (`docs/product/backlog.md`, `docs/product/acceptance.md`,
278
309
  `handoffs/po_to_tl.md`)
279
310
 
311
+ ### Mandatory intake question packs (US-0068)
312
+
313
+ `/intake` now enforces deterministic minimum questionnaire packs before
314
+ backlog/acceptance persistence:
315
+
316
+ - `first-intake-pack` for first/new/broad requests
317
+ - `small-intake-pack` for narrow follow-up requests
318
+
319
+ Fail-closed coverage behavior:
320
+
321
+ - required topic answers must be covered for the selected pack before write
322
+ - unknown/ambiguous stack cues fail closed to `first-intake-pack`
323
+ - persistence blocks with deterministic reason codes when required coverage is
324
+ incomplete and assumptions are not explicitly confirmed
325
+
326
+ Deterministic reason codes:
327
+
328
+ - `INTAKE_REQUIRED_TOPIC_MISSING`
329
+ - `INTAKE_REQUIRED_PACK_INCOMPLETE`
330
+ - `INTAKE_ASSUMPTION_CONFIRMATION_REQUIRED`
331
+ - `INTAKE_PERSISTENCE_BLOCKED`
332
+
333
+ Intake artifacts must persist coverage evidence fields:
334
+
335
+ - `asked_topics`
336
+ - `missing_topics`
337
+ - `assumptions_confirmed`
338
+
280
339
  ### Optional ID namespace bootstrap (US-0052)
281
340
 
282
341
  Fresh-project ID bootstrap behavior is explicit and default-off:
package/installer.ps1 CHANGED
@@ -111,7 +111,7 @@ function Choose-Mode {
111
111
  function Classify-File($RelPath) {
112
112
  $normalized = $RelPath -replace '\\','/'
113
113
 
114
- $mixedFiles = @('.cursor/scratchpad.md')
114
+ $mixedFiles = @('.cursor/scratchpad.md', 'README.md')
115
115
  if ($mixedFiles -contains $normalized) { return 'mixed' }
116
116
 
117
117
  $frameworkPrefixes = @(
@@ -174,6 +174,15 @@ function Write-InstalledVersion($TargetRoot, $Ver) {
174
174
  }
175
175
  }
176
176
 
177
+ function Sync-RootReadmeToItsMagic($TargetRoot) {
178
+ $rootReadme = Join-Path $TargetRoot "README.md"
179
+ if (-not (Test-Path $rootReadme -PathType Leaf)) { return $false }
180
+ $itsMagicReadme = Join-Path $TargetRoot "its_magic\README.md"
181
+ Ensure-Parent $itsMagicReadme
182
+ Copy-Item -Path $rootReadme -Destination $itsMagicReadme -Force
183
+ return $true
184
+ }
185
+
177
186
  function Read-RunbookKeyValue($RunbookPath, $Key) {
178
187
  if (-not (Test-Path $RunbookPath -PathType Leaf)) { return "" }
179
188
  $needle = "${Key}:"
@@ -617,6 +626,7 @@ if ($mode -eq "upgrade") {
617
626
  }
618
627
 
619
628
  Write-InstalledVersion $targetRoot $appVersion
629
+ Sync-RootReadmeToItsMagic $targetRoot | Out-Null
620
630
  $runbookBootstrap = Invoke-RunbookBootstrap -TargetRoot $targetRoot
621
631
  foreach ($note in $runbookBootstrap.notes) { Write-Host $note }
622
632
  if (-not $runbookBootstrap.ok) { exit 1 }
@@ -694,6 +704,7 @@ foreach ($rel in $files) {
694
704
  }
695
705
 
696
706
  Write-InstalledVersion $targetRoot $appVersion
707
+ Sync-RootReadmeToItsMagic $targetRoot | Out-Null
697
708
  $runbookBootstrap = Invoke-RunbookBootstrap -TargetRoot $targetRoot
698
709
  foreach ($note in $runbookBootstrap.notes) { Write-Host $note }
699
710
  if (-not $runbookBootstrap.ok) { exit 1 }
package/installer.py CHANGED
@@ -119,7 +119,7 @@ USER_DATA_PREFIXES = (
119
119
  "docs/product/", "docs/engineering/", "docs/user-guides/",
120
120
  "sprints/", "handoffs/", "decisions/",
121
121
  )
122
- MIXED_FILES = {".cursor/scratchpad.md"}
122
+ MIXED_FILES = {".cursor/scratchpad.md", "README.md"}
123
123
 
124
124
 
125
125
  def classify_file(rel_path):
@@ -159,6 +159,16 @@ def write_installed_version(target_root, ver):
159
159
  os.remove(legacy)
160
160
 
161
161
 
162
+ def sync_root_readme_to_its_magic(target_root):
163
+ root_readme = os.path.join(target_root, "README.md")
164
+ if not os.path.isfile(root_readme):
165
+ return False
166
+ its_magic_readme = os.path.join(target_root, "its_magic", "README.md")
167
+ ensure_parent(its_magic_readme)
168
+ shutil.copy2(root_readme, its_magic_readme)
169
+ return True
170
+
171
+
162
172
  def read_runbook_key(runbook_path, key):
163
173
  if not os.path.isfile(runbook_path):
164
174
  return ""
@@ -550,6 +560,7 @@ def main():
550
560
  continue
551
561
 
552
562
  write_installed_version(target_root, version)
563
+ sync_root_readme_to_its_magic(target_root)
553
564
  runbook_ok, runbook_notes = bootstrap_runbook_commands(target_root)
554
565
  for note in runbook_notes:
555
566
  print(note)
@@ -620,6 +631,7 @@ def main():
620
631
  shutil.copy2(src, dst)
621
632
 
622
633
  write_installed_version(target_root, version)
634
+ sync_root_readme_to_its_magic(target_root)
623
635
  runbook_ok, runbook_notes = bootstrap_runbook_commands(target_root)
624
636
  for note in runbook_notes:
625
637
  print(note)
package/installer.sh CHANGED
@@ -133,7 +133,7 @@ choose_mode() {
133
133
  classify_file() {
134
134
  rel="$1"
135
135
  case "$rel" in
136
- .cursor/scratchpad.md) echo "mixed" ;;
136
+ .cursor/scratchpad.md|README.md) echo "mixed" ;;
137
137
  .cursor/commands/*|.cursor/rules/*|.cursor/agents/*|.cursor/skills/*) echo "framework" ;;
138
138
  .cursor/hooks/*|.cursor/hooks.json|.cursor/scratchpad.local.example.md) echo "framework" ;;
139
139
  .github/workflows/*|scripts/validate-and-push*|docs/engineering/context/*|its_magic/*) echo "framework" ;;
@@ -166,6 +166,15 @@ write_installed_version() {
166
166
  [ -f "$legacy" ] && rm -f "$legacy"
167
167
  }
168
168
 
169
+ sync_root_readme_to_its_magic() {
170
+ target_root="$1"
171
+ [ -f "$target_root/README.md" ] || return 1
172
+ dst="$target_root/its_magic/README.md"
173
+ ensure_parent "$dst"
174
+ cp -p "$target_root/README.md" "$dst"
175
+ return 0
176
+ }
177
+
169
178
  read_runbook_key() {
170
179
  runbook_path="$1"
171
180
  key="$2"
@@ -505,6 +514,7 @@ if [ "$MODE" = "upgrade" ]; then
505
514
  done
506
515
 
507
516
  write_installed_version "$TARGET_ROOT" "$APP_VERSION"
517
+ sync_root_readme_to_its_magic "$TARGET_ROOT" || true
508
518
  bootstrap_runbook_commands "$TARGET_ROOT"
509
519
  [ -n "$BOOTSTRAP_NOTES" ] && printf "%s" "$BOOTSTRAP_NOTES"
510
520
  [ "$BOOTSTRAP_OK" = "true" ] || exit 1
@@ -572,6 +582,7 @@ for rel in $FILES; do
572
582
  done
573
583
 
574
584
  write_installed_version "$TARGET_ROOT" "$APP_VERSION"
585
+ sync_root_readme_to_its_magic "$TARGET_ROOT" || true
575
586
  bootstrap_runbook_commands "$TARGET_ROOT"
576
587
  [ -n "$BOOTSTRAP_NOTES" ] && printf "%s" "$BOOTSTRAP_NOTES"
577
588
  [ "$BOOTSTRAP_OK" = "true" ] || exit 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "its-magic",
3
- "version": "0.1.2-27",
3
+ "version": "0.1.2-29",
4
4
  "description": "its-magic - AI dev team workflow for Cursor.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -76,3 +76,35 @@ Low-touch mode (`INTAKE_GUIDED_MODE=0`):
76
76
  - Keep duplicate/overlap backlog check active as baseline safety.
77
77
  - Keep single-story default unless user explicitly requests decomposition.
78
78
 
79
+ Mandatory intake question packs (`US-0068` / `DEC-0050`):
80
+ - Before persisting backlog/acceptance artifacts, select exactly one deterministic
81
+ question pack:
82
+ - `first-intake-pack` (first/new/broad intake)
83
+ - `small-intake-pack` (small follow-up intake)
84
+ - Required-topic coverage is mandatory before persistence unless assumptions are
85
+ explicitly confirmed by the user:
86
+ - `first-intake-pack` required topic IDs:
87
+ `users_problem`, `runtime_target_environment`, `language_framework_runtime`,
88
+ `architecture_preference`, `ui_design_expectations`,
89
+ `security_compliance`, `non_functional_priorities`, `scope_timeline`
90
+ - `small-intake-pack` required topic IDs:
91
+ `outcome_success_criteria`, `impacted_components`,
92
+ `constraints_compatibility_risks`, `required_tests_acceptance_checks`,
93
+ `done_definition`
94
+ - Deterministic pack selection guard:
95
+ - unknown/ambiguous stack or project cues must fail closed to
96
+ `first-intake-pack`.
97
+ - Deterministic fail-closed reason codes:
98
+ - `INTAKE_REQUIRED_TOPIC_MISSING`
99
+ - `INTAKE_REQUIRED_PACK_INCOMPLETE`
100
+ - `INTAKE_ASSUMPTION_CONFIRMATION_REQUIRED`
101
+ - `INTAKE_PERSISTENCE_BLOCKED`
102
+ - Remediation output on block must include:
103
+ - `missing_topics`
104
+ - targeted follow-up questions for unresolved required topics
105
+ - explicit request for assumption confirmation when assumptions are used
106
+ - Persist auditable intake evidence in artifact outputs:
107
+ - `asked_topics`
108
+ - `missing_topics`
109
+ - `assumptions_confirmed`
110
+
@@ -131,4 +131,55 @@ Release gate semantics (US-0039): mandatory gates (check-in test, QA, UAT) and n
131
131
  fail fast with `REMOTE_CONNECTIVITY_CONFIG_INVALID`.
132
132
  - Never expose secrets in execution outputs; only sanitized endpoint data and
133
133
  env-reference names are allowed.
134
+ 18. Runtime QA autopilot execution contract (US-0065 / DEC-0047):
135
+ - Treat runtime verification as mandatory for generated-project scope; static
136
+ checks alone are not sufficient evidence for PASS readiness.
137
+ - Follow canonical stage order:
138
+ `startup -> readiness/connectivity -> log scan -> bounded retry -> verdict`.
139
+ - Record runtime execution evidence in execute outputs:
140
+ - startup command and selected stack profile,
141
+ - runtime mode (`local|remote`) and endpoint/health snapshot,
142
+ - retry ledger (`attempt`, `delay_ms`, `outcome`),
143
+ - log severity summary (`info|warn|error|fatal` counts),
144
+ - final runtime verdict with deterministic reason code.
145
+ - Supported stack profiles (minimum): `node`, `python`, `go`, `java`, `dotnet`.
146
+ - If stack profile cannot be resolved deterministically, fail closed with
147
+ `RUNTIME_STACK_PROFILE_UNRESOLVED` and remediation guidance.
148
+ - Bounded retry policy:
149
+ - retries are allowed only for transient startup/connectivity failures,
150
+ - retry attempts must not exceed configured max,
151
+ - critical log signals are non-transient and fail closed immediately.
152
+ - Runtime failure reason-code baseline:
153
+ - `RUNTIME_STARTUP_FAILED`
154
+ - `RUNTIME_ENDPOINT_UNREACHABLE`
155
+ - `RUNTIME_LOG_CRITICAL_DETECTED`
156
+ - `RUNTIME_RETRY_BUDGET_EXHAUSTED`
157
+ - `RUNTIME_STACK_PROFILE_UNRESOLVED`
158
+ - When HTTP/UI context is detected, include webapp runtime evidence path for
159
+ QA handoff (browser-surface checks plus console/network error signals).
160
+ 19. Generated baseline test scaffolding contract (US-0066 / DEC-0048):
161
+ - Resolve deterministic stack/project profile before scaffold generation:
162
+ `node|python|go|java|dotnet` (minimum supported set).
163
+ - Generate baseline tests only when missing; create minimal runnable assets for
164
+ unit, integration, and acceptance layers using stable paths.
165
+ - Record generated-test evidence in execute outputs:
166
+ - resolved stack profile,
167
+ - generated paths inventory (`unit|integration|acceptance`),
168
+ - scaffold command/actions and outcome.
169
+ - Deterministic runbook baseline wiring:
170
+ - if `TEST_COMMAND` is missing/unset, write stack baseline command,
171
+ - if `TEST_COMMAND` is user-authored and non-empty, preserve it.
172
+ - Fail-closed diagnostics for generation/profile failures:
173
+ - `TEST_SCAFFOLD_STACK_UNRESOLVED`
174
+ - `TEST_SCAFFOLD_UNSUPPORTED_STACK`
175
+ - `TEST_SCAFFOLD_GENERATION_FAILED`
176
+ - Non-destructive precedence is mandatory:
177
+ - preserve existing user-authored test files and config by default,
178
+ - fill only missing baseline scaffold assets.
179
+ - Rerun behavior must be idempotent:
180
+ - no duplicate scaffold files on repeated `/execute`,
181
+ - no oscillating `TEST_COMMAND` rewrites between runs.
182
+ - Runtime boundary:
183
+ - static generated-test PASS is necessary but not sufficient for QA PASS;
184
+ runtime startup/connectivity/log verdict remains governed by `US-0065`.
134
185
 
@@ -48,6 +48,41 @@ description: "its-magic intake: clarify idea and capture story + acceptance."
48
48
  - external conflicting mutation during active run must fail safe with
49
49
  `INTAKE_CONCURRENT_WRITER_DETECTED` and no partial overwrite.
50
50
 
51
+ ## Mandatory intake question packs and fail-closed persistence gate (US-0068 / DEC-0050)
52
+
53
+ - Intake must apply one deterministic questionnaire pack before any backlog or
54
+ acceptance persistence:
55
+ - `first-intake-pack` for first/new/broad requests,
56
+ - `small-intake-pack` for narrow follow-up requests.
57
+ - Pack selection must be deterministic and auditable:
58
+ - evaluate request breadth (`new capability` vs `bounded refinement`),
59
+ - use known stack/runtime cues when present,
60
+ - unresolved/unknown stack cues must fail closed to `first-intake-pack`
61
+ (never bypass to a smaller pack by default).
62
+ - Required topic coverage must be complete before persistence unless bounded
63
+ assumptions are explicitly confirmed:
64
+ - `first-intake-pack` required topics:
65
+ `users_problem`, `runtime_target_environment`, `language_framework_runtime`,
66
+ `architecture_preference`, `ui_design_expectations`,
67
+ `security_compliance`, `non_functional_priorities`, `scope_timeline`.
68
+ - `small-intake-pack` required topics:
69
+ `outcome_success_criteria`, `impacted_components`,
70
+ `constraints_compatibility_risks`, `required_tests_acceptance_checks`,
71
+ `done_definition`.
72
+ - Fail-closed deterministic reason codes:
73
+ - `INTAKE_REQUIRED_TOPIC_MISSING`
74
+ - `INTAKE_REQUIRED_PACK_INCOMPLETE`
75
+ - `INTAKE_ASSUMPTION_CONFIRMATION_REQUIRED`
76
+ - `INTAKE_PERSISTENCE_BLOCKED`
77
+ - Remediation guidance surface (mandatory on block):
78
+ - list `missing_topics`,
79
+ - request targeted answers for missing required topics,
80
+ - if assumptions are used, require explicit confirmation before write.
81
+ - Persistence evidence contract (must be written in intake outputs):
82
+ - `asked_topics`
83
+ - `missing_topics`
84
+ - `assumptions_confirmed`
85
+
51
86
  ## Steps
52
87
  1. Determine intake mode from `.cursor/scratchpad.md`:
53
88
  - guided mode: `INTAKE_GUIDED_MODE=1` (default)
@@ -94,7 +129,18 @@ description: "its-magic intake: clarify idea and capture story + acceptance."
94
129
  explicitly requests depth.
95
130
  - Keep single-story default (no forced decomposition), unless the user
96
131
  explicitly requests decomposition.
97
- 5. Optional fresh-project ID namespace bootstrap (US-0052 / DEC-0034):
132
+ 5. Enforce mandatory question-pack coverage before persistence (US-0068):
133
+ - deterministically select one pack (`first-intake-pack` or
134
+ `small-intake-pack`) and record `selected_pack`.
135
+ - ask required questions for the selected pack; adaptive follow-ups remain
136
+ allowed but bounded.
137
+ - before writing backlog/acceptance artifacts, compute required coverage:
138
+ - if complete, proceed to persistence;
139
+ - if incomplete and no explicit assumption confirmation, fail closed with
140
+ deterministic reason code and remediation guidance.
141
+ - persist intake evidence fields (`asked_topics`, `missing_topics`,
142
+ `assumptions_confirmed`) in relevant intake artifacts.
143
+ 6. Optional fresh-project ID namespace bootstrap (US-0052 / DEC-0034):
98
144
  - Read `ID_NAMESPACE_BOOTSTRAP` from `.cursor/scratchpad.md` (`0|1`,
99
145
  default `0`).
100
146
  - Freshness eligibility is deterministic and auditable:
@@ -109,31 +155,31 @@ description: "its-magic intake: clarify idea and capture story + acceptance."
109
155
  - Never rewrite or renumber historical IDs.
110
156
  - If bootstrap was requested but checks fail, emit deterministic diagnostic:
111
157
  `ID_BOOTSTRAP_NOT_FRESH` with brief remediation guidance.
112
- 6. Traceability persistence contract (US-0051):
158
+ 7. Traceability persistence contract (US-0051):
113
159
  - `docs/product/backlog.md`: include decomposition evidence (single-story vs
114
160
  split decision, rationale, and boundaries).
115
161
  - `docs/product/acceptance.md`: maintain acceptance traceability for resulting
116
162
  story set (or single-story decision) with clear scope boundaries.
117
163
  - `handoffs/po_to_tl.md`: include split decision summary and adaptive
118
164
  questioning evidence (risk/unknown triggers and key assumptions).
119
- 7. Persist the story and acceptance in product docs.
120
- 8. Write a PO -> TL handoff with scope and risks.
121
- 9. Optional cross-repo observability declaration (US-0034):
165
+ 8. Persist the story and acceptance in product docs.
166
+ 9. Write a PO -> TL handoff with scope and risks.
167
+ 10. Optional cross-repo observability declaration (US-0034):
122
168
  - If `CROSS_REPO_OBSERVABILITY=0`, add zero required overhead.
123
169
  - If `CROSS_REPO_OBSERVABILITY=1`, capture monitored source list from
124
170
  `COMPATIBILITY_SOURCES` (`repo/module/contract/docs`) and include
125
171
  compatibility observability intent in handoff context.
126
- 10. Optional component scope declaration (US-0035):
172
+ 11. Optional component scope declaration (US-0035):
127
173
  - If `COMPONENT_SCOPE_MODE=0`, add zero required scope overhead.
128
174
  - If `COMPONENT_SCOPE_MODE=1`, declare in-scope and out-of-scope components
129
175
  in `docs/engineering/component-scope.md` and include references in
130
176
  `handoffs/po_to_tl.md`.
131
- 11. Optional spec-pack (US-0031):
177
+ 12. Optional spec-pack (US-0031):
132
178
  - If `SPEC_PACK_MODE=0`, add no required spec-pack steps (zero overhead).
133
179
  - If `SPEC_PACK_MODE=1`, ensure CRS artifact for the new story is created or
134
180
  updated at canonical path per runbook spec-pack contract; link story ID in
135
181
  handoff.
136
- 12. Optional user-guide (US-0032):
182
+ 13. Optional user-guide (US-0032):
137
183
  - If `USER_GUIDE_MODE=0`, add no required user-guide steps or blocking checks (zero overhead).
138
184
  - If `USER_GUIDE_MODE=1`, ensure handoff references canonical user-guide path
139
185
  `docs/user-guides/US-xxxx.md` for the new story when applicable; see runbook.
@@ -108,4 +108,67 @@ verify no unresolved blockers.
108
108
  - If remote connectivity config is incomplete for required remote checks,
109
109
  mark blocking with deterministic reason code
110
110
  `REMOTE_CONNECTIVITY_CONFIG_INVALID`.
111
+ 13. Runtime QA autopilot contract (US-0065 / DEC-0047):
112
+ - Runtime truth path is mandatory for generated-project QA:
113
+ `startup -> readiness/connectivity -> log scan -> bounded retry -> verdict`.
114
+ - PASS requires runtime startup and endpoint/process reachability evidence.
115
+ - Deterministic failure outcomes:
116
+ - startup command/process fails: `RUNTIME_STARTUP_FAILED`
117
+ - endpoint/process unreachable after retries:
118
+ `RUNTIME_ENDPOINT_UNREACHABLE`
119
+ - critical runtime log signals detected:
120
+ `RUNTIME_LOG_CRITICAL_DETECTED`
121
+ - retry budget exhausted without recovery:
122
+ `RUNTIME_RETRY_BUDGET_EXHAUSTED`
123
+ - stack profile unresolved for runtime checks:
124
+ `RUNTIME_STACK_PROFILE_UNRESOLVED`
125
+ - Runtime profile resolution must be stack-aware for:
126
+ `node|python|go|java|dotnet` at minimum.
127
+ - Unknown/ambiguous stacks must fail closed with
128
+ `RUNTIME_STACK_PROFILE_UNRESOLVED` (no silent generic PASS fallback).
129
+ - Bounded retry loop requirements:
130
+ - retry only transient startup/connectivity failures,
131
+ - enforce configured attempt cap (`attempt <= max`),
132
+ - write per-attempt ledger evidence (`attempt`, `delay_ms`, `outcome`),
133
+ - stop retrying on non-transient critical log failures.
134
+ - Required QA runtime evidence schema fields in `sprints/Sxxxx/qa-findings.md`:
135
+ - `runtime_startup_command`
136
+ - `runtime_stack_profile`
137
+ - `runtime_mode` (`local|remote`)
138
+ - `runtime_health_target` (process/endpoint)
139
+ - `runtime_health_result`
140
+ - `runtime_log_summary` (severity counts + key signals)
141
+ - `runtime_retry_count`
142
+ - `runtime_retry_ledger`
143
+ - `runtime_final_verdict` (`pass|fail`)
144
+ - `runtime_reason_code`
145
+ - `runtime_evidence_refs`
146
+ - Webapp runtime verification path (when applicable):
147
+ - run browser-surface check for expected app load path,
148
+ - capture console error summary and failed network request summary,
149
+ - include results in runtime evidence fields.
150
+ - Optional debug escalation path:
151
+ - use only for reproducible runtime failures,
152
+ - keep instrumentation bounded and reversible,
153
+ - record debug actions/evidence and cleanup confirmation.
154
+ 14. Generated baseline test auto-run contract (US-0066 / DEC-0048):
155
+ - For generated-project QA scope, run baseline tests automatically using the
156
+ resolved `TEST_COMMAND`; do not treat baseline tests as optional.
157
+ - Deterministic generated-test evidence fields in `sprints/Sxxxx/qa-findings.md`:
158
+ - `generated_test_stack_profile`
159
+ - `generated_test_command`
160
+ - `generated_test_result` (`pass|fail`)
161
+ - `generated_test_output_ref`
162
+ - `generated_test_paths_ref`
163
+ - `generated_test_reason_code`
164
+ - Deterministic scaffold failure outcomes:
165
+ - unresolved profile: `TEST_SCAFFOLD_STACK_UNRESOLVED`
166
+ - unsupported profile: `TEST_SCAFFOLD_UNSUPPORTED_STACK`
167
+ - generation/run failure: `TEST_SCAFFOLD_GENERATION_FAILED`
168
+ - Non-destructive baseline guardrails:
169
+ - preserve user-authored tests/config/commands,
170
+ - validate generated scaffold behavior as fill-missing/idempotent only.
171
+ - Runtime integration boundary:
172
+ - generated-test PASS does not override runtime-autopilot failures from
173
+ `US-0065`; non-starting apps cannot PASS QA.
111
174
 
@@ -96,6 +96,11 @@ Optional runbook keys (`LINT_COMMAND`, `TYPECHECK_COMMAND`) are not mandatory re
96
96
 
97
97
  Default: no bypass. Override only via explicit decision gate with documented rationale and evidence (see Override evidence contract below).
98
98
 
99
+ ## No-bypass default (US-0039)
100
+
101
+ Release gates are mandatory by default. Bypass is not allowed unless an
102
+ explicit decision gate is approved and evidence is recorded.
103
+
99
104
  Check-in test evidence: canonical source `tests/report.md`; valid = present + fresh + passing. Fail reasons: `RELEASE_TEST_EVIDENCE_MISSING`, `RELEASE_TEST_STALE`, `RELEASE_TEST_FAILED`. QA gate: no unresolved blocking findings; `RELEASE_QA_BLOCKERS_OPEN`, `RELEASE_QA_EVIDENCE_MISSING`. UAT gate: no placeholder/incomplete/unresolved-fail; `RELEASE_UAT_INCOMPLETE`, `RELEASE_UAT_FAILED`. Override evidence: decision record, rationale, approver, risk acceptance; `RELEASE_GATE_OVERRIDE_APPROVED`.
100
105
 
101
106
  ## QA completion evidence gate (US-0039)
@@ -106,6 +111,23 @@ Release may not proceed until QA completion evidence shows no unresolved blockin
106
111
  - **Pass condition**: No unresolved blocking or critical findings; QA phase has been run and findings recorded.
107
112
  - **Fail condition**: Unresolved blocking findings exist, or QA evidence is missing for target sprint — block with `RELEASE_QA_BLOCKERS_OPEN` or `RELEASE_QA_EVIDENCE_MISSING`; remediation: resolve blockers, re-run `/qa`, then rerun `/release`.
108
113
 
114
+ ## Generated-test evidence prerequisite (US-0066 / DEC-0048)
115
+
116
+ For generated-project scope, release evidence must include deterministic
117
+ generated-test auto-run references:
118
+
119
+ - **Execution evidence source**: `sprints/Sxxxx/summary.md` generated baseline
120
+ test section (stack profile, generated paths, scaffold actions).
121
+ - **QA evidence source**: `sprints/Sxxxx/qa-findings.md` generated-test auto-run
122
+ fields (`generated_test_command`, `generated_test_result`,
123
+ `generated_test_output_ref`, `generated_test_paths_ref`,
124
+ `generated_test_reason_code`).
125
+ - **Pass condition**: generated-test evidence exists, is traceable, and does not
126
+ contradict QA/runtime verdicts.
127
+ - **Fail condition**: missing/ambiguous generated-test evidence or unresolved
128
+ scaffold failure reason code; block release with
129
+ `TEST_SCAFFOLD_GENERATION_FAILED` and rerun `/execute` and/or `/qa`.
130
+
109
131
  ## UAT completion gate (US-0039)
110
132
 
111
133
  Release may not proceed until UAT artifacts are in verified state (no placeholder, incomplete, or unresolved-fail).
@@ -335,6 +357,37 @@ Guardrails:
335
357
  and local vs remote execution context.
336
358
  - In release output/handoffs, include operator connection guidance
337
359
  (where hosted, how to connect) without exposing secrets.
360
+ 18. Release operator Run/Connect/Verify hints contract (US-0067 / DEC-0049):
361
+ - `handoffs/releases/Sxxxx-release-notes.md` must include a deterministic
362
+ operator section order and required fields:
363
+ 1) `## Run`:
364
+ - `start_command`
365
+ - `runtime_mode` (`local|remote`)
366
+ - `runtime_context_ref` (link to `docs/engineering/runtime-connectivity.md`
367
+ when available)
368
+ 2) `## Connect`:
369
+ - `service_url`
370
+ - `service_port`
371
+ - `health_endpoint`
372
+ 3) `## Verify`:
373
+ - `verification_steps` (deterministic numbered list)
374
+ - `expected_health_signal`
375
+ 4) `## Credentials`:
376
+ - env-reference-only credential source refs (for example `API_TOKEN_ENV`)
377
+ - expected value source location guidance (for example CI secret store,
378
+ operator shell profile) with no inline secret values
379
+ 5) `## Known Issues`:
380
+ - concise deterministic known issues list, or explicit `None`.
381
+ - `handoffs/release_notes.md` must include a concise latest release operator
382
+ summary (start command + endpoint + verify pointer) and link to canonical
383
+ sprint notes.
384
+ - Fail closed when required operator hints are missing/ambiguous or contain
385
+ inline secrets:
386
+ - `RELEASE_OPERATOR_HINTS_MISSING`
387
+ - `RELEASE_OPERATOR_HINTS_AMBIGUOUS`
388
+ - `RELEASE_OPERATOR_HINTS_SECRET_EXPOSURE`
389
+ - Remediation: populate required fields in canonical sprint notes with
390
+ sanitized env-ref-only credential guidance, then rerun `/release`.
338
391
 
339
392
  ## Fail-safe reason codes and remediation guidance
340
393
 
@@ -373,8 +426,14 @@ Required deterministic reason codes:
373
426
  - `PUBLISH_TARGET_EXECUTION_FAILED`
374
427
  - `REMOTE_CONNECTIVITY_CONFIG_INVALID`
375
428
  - `RUNTIME_CONNECTIVITY_DOC_WRITE_FAILED`
429
+ - `RELEASE_OPERATOR_HINTS_MISSING`
430
+ - `RELEASE_OPERATOR_HINTS_AMBIGUOUS`
431
+ - `RELEASE_OPERATOR_HINTS_SECRET_EXPOSURE`
376
432
  - `PHASE_OWNERSHIP_VIOLATION`
377
433
  - `PHASE_OVERRIDE_EVIDENCE_MISSING`
434
+ - `TEST_SCAFFOLD_STACK_UNRESOLVED`
435
+ - `TEST_SCAFFOLD_UNSUPPORTED_STACK`
436
+ - `TEST_SCAFFOLD_GENERATION_FAILED`
378
437
 
379
438
  When any reason code is emitted:
380
439
  - Preserve existing release note artifacts (non-destructive default).
@@ -82,6 +82,18 @@ Fail-closed behavior (no continuation):
82
82
  Remediation: rerun affected phase(s) in fresh subagent contexts and write new
83
83
  strict-proof tuples linked to checkpoint evidence.
84
84
 
85
+ ## Generated-test readiness evidence gate (US-0066 / DEC-0048)
86
+
87
+ Before handing off to `/release`, verify generated-test evidence is present and
88
+ traceable for generated-project scope:
89
+
90
+ - `sprints/Sxxxx/summary.md` must include generated baseline test scope/evidence refs.
91
+ - `sprints/Sxxxx/qa-findings.md` must include generated-test auto-run evidence
92
+ (`command`, `result`, `output ref`, `paths ref`, reason code when failing).
93
+ - If generated-test evidence is missing/ambiguous, fail closed with
94
+ `TEST_SCAFFOLD_GENERATION_FAILED` and require `/execute` or `/qa` rerun with
95
+ deterministic evidence capture.
96
+
85
97
  ## Steps
86
98
  1. Convert acceptance criteria into testable UAT steps. Derive steps directly from the story's acceptance criteria in `docs/product/acceptance.md`. Each AC should map to at least one UAT step.
87
99
  2. Populate UAT artifacts: write derived steps into `uat.json` (with description and result per step, accurate pass/fail counts) and `uat.md` (step list with results, summary section). Ensure UAT artifacts are in **populated** state per DEC-0009 — not placeholder.
@@ -80,6 +80,16 @@ globs: ["**/*"]
80
80
  - Default behavior is strict no-bypass for release gates.
81
81
  - Overrides require explicit decision evidence with rationale and risk
82
82
  acceptance.
83
+ - Release operator hints contract (US-0067 / DEC-0049):
84
+ - `/release` output must include deterministic sections:
85
+ `Run -> Connect -> Verify -> Credentials -> Known Issues`.
86
+ - Required fields include start command, runtime mode/context ref, endpoint +
87
+ port + health endpoint, verification steps, credentials source refs
88
+ (env-ref-only), and known issues.
89
+ - Missing/ambiguous fields or inline secrets fail closed with
90
+ `RELEASE_OPERATOR_HINTS_MISSING`,
91
+ `RELEASE_OPERATOR_HINTS_AMBIGUOUS`, or
92
+ `RELEASE_OPERATOR_HINTS_SECRET_EXPOSURE`.
83
93
  - Cross-phase artifact ownership guard (US-0061 / DEC-0043):
84
94
  - All delivery phases must enforce
85
95
  `docs/engineering/artifact-ownership-policy.md` before mutating artifacts.
@@ -32,4 +32,11 @@ globs: ["**/*"]
32
32
  `[REMOTE_CONFIG_ERROR] <path>: expected <rule>, got <actual>. Fix: <hint>.`
33
33
  Include all of: failing path, expected rule/range, actual value or type, and
34
34
  a concrete remediation hint.
35
+ - Runtime QA autopilot failures (US-0065) must use deterministic reason codes
36
+ and evidence:
37
+ `RUNTIME_STARTUP_FAILED`, `RUNTIME_ENDPOINT_UNREACHABLE`,
38
+ `RUNTIME_LOG_CRITICAL_DETECTED`, `RUNTIME_RETRY_BUDGET_EXHAUSTED`,
39
+ `RUNTIME_STACK_PROFILE_UNRESOLVED`.
40
+ Include startup command/profile, runtime mode, health result, retry ledger,
41
+ and log summary in QA artifacts.
35
42
 
@@ -225,6 +225,37 @@ Intake runtime safety behavior (US-0059):
225
225
  writers; true conflicting external writes fail safe with
226
226
  `INTAKE_CONCURRENT_WRITER_DETECTED`.
227
227
 
228
+ Runtime QA autopilot behavior (US-0065):
229
+ - Generated-project QA must include runtime proof chain:
230
+ `startup -> readiness/connectivity -> log scan -> bounded retry -> verdict`.
231
+ - Deterministic runtime fail codes:
232
+ `RUNTIME_STARTUP_FAILED`, `RUNTIME_ENDPOINT_UNREACHABLE`,
233
+ `RUNTIME_LOG_CRITICAL_DETECTED`, `RUNTIME_RETRY_BUDGET_EXHAUSTED`,
234
+ `RUNTIME_STACK_PROFILE_UNRESOLVED`.
235
+ - Runtime evidence must include startup command/profile, runtime mode
236
+ (`local|remote`), health result, retry ledger, and log severity summary.
237
+ - Stack-aware runtime profile resolution is required for Node/Python/Go/Java/.NET;
238
+ unresolved stacks fail closed (no generic silent PASS fallback).
239
+ - For webapp contexts, QA includes browser-surface verification with
240
+ console/network error signals.
241
+
242
+ Generated test scaffolding + auto-run behavior (US-0066):
243
+ - `/execute` resolves stack profile (`node|python|go|java|dotnet`) and generates
244
+ missing baseline unit/integration/acceptance tests only.
245
+ - Generation is non-destructive by default: preserve user-authored tests/config,
246
+ fill only missing baseline assets, keep reruns idempotent.
247
+ - `TEST_COMMAND` wiring is deterministic:
248
+ - preserve existing non-empty user command,
249
+ - set stack baseline only when command is missing/unset.
250
+ - `/qa` automatically runs the generated baseline tests and records deterministic
251
+ evidence (`command`, `result`, `output ref`, `generated paths ref`).
252
+ - Fail-closed scaffold diagnostics:
253
+ `TEST_SCAFFOLD_STACK_UNRESOLVED`,
254
+ `TEST_SCAFFOLD_UNSUPPORTED_STACK`,
255
+ `TEST_SCAFFOLD_GENERATION_FAILED`.
256
+ - Static baseline test pass does not bypass runtime autopilot; runtime verdict
257
+ remains mandatory for QA PASS.
258
+
228
259
  ## Workflow
229
260
 
230
261
  ### Core commands
@@ -277,6 +308,34 @@ broad/high-risk requests:
277
308
  (`docs/product/backlog.md`, `docs/product/acceptance.md`,
278
309
  `handoffs/po_to_tl.md`)
279
310
 
311
+ ### Mandatory intake question packs (US-0068)
312
+
313
+ `/intake` now enforces deterministic minimum questionnaire packs before
314
+ backlog/acceptance persistence:
315
+
316
+ - `first-intake-pack` for first/new/broad requests
317
+ - `small-intake-pack` for narrow follow-up requests
318
+
319
+ Fail-closed coverage behavior:
320
+
321
+ - required topic answers must be covered for the selected pack before write
322
+ - unknown/ambiguous stack cues fail closed to `first-intake-pack`
323
+ - persistence blocks with deterministic reason codes when required coverage is
324
+ incomplete and assumptions are not explicitly confirmed
325
+
326
+ Deterministic reason codes:
327
+
328
+ - `INTAKE_REQUIRED_TOPIC_MISSING`
329
+ - `INTAKE_REQUIRED_PACK_INCOMPLETE`
330
+ - `INTAKE_ASSUMPTION_CONFIRMATION_REQUIRED`
331
+ - `INTAKE_PERSISTENCE_BLOCKED`
332
+
333
+ Intake artifacts must persist coverage evidence fields:
334
+
335
+ - `asked_topics`
336
+ - `missing_topics`
337
+ - `assumptions_confirmed`
338
+
280
339
  ### Optional ID namespace bootstrap (US-0052)
281
340
 
282
341
  Fresh-project ID bootstrap behavior is explicit and default-off:
@@ -17,6 +17,7 @@ decisions
17
17
  scripts/validate-and-push.ps1
18
18
  scripts/validate-and-push.sh
19
19
  .github/workflows
20
+ README.md
20
21
  its_magic
21
22
 
22
23
  [clean_paths]
@@ -101,6 +101,60 @@ decomposition and adaptive questioning behavior:
101
101
  `docs/product/backlog.md`, `docs/product/acceptance.md`, and
102
102
  `handoffs/po_to_tl.md`.
103
103
 
104
+ ## Mandatory intake question packs and persistence coverage gate (US-0068 / DEC-0050)
105
+
106
+ Intake persistence is fail-closed unless required topic coverage is complete (or
107
+ bounded assumptions are explicitly confirmed).
108
+
109
+ Deterministic pack contract:
110
+
111
+ - `first-intake-pack` (first/new/broad intake)
112
+ - required topics:
113
+ - `users_problem`
114
+ - `runtime_target_environment`
115
+ - `language_framework_runtime`
116
+ - `architecture_preference`
117
+ - `ui_design_expectations`
118
+ - `security_compliance`
119
+ - `non_functional_priorities`
120
+ - `scope_timeline`
121
+ - `small-intake-pack` (small follow-up intake)
122
+ - required topics:
123
+ - `outcome_success_criteria`
124
+ - `impacted_components`
125
+ - `constraints_compatibility_risks`
126
+ - `required_tests_acceptance_checks`
127
+ - `done_definition`
128
+
129
+ Pack selection and coverage behavior:
130
+
131
+ - Select exactly one pack per intake write path.
132
+ - Unknown/ambiguous stack or project cues must fail closed to
133
+ `first-intake-pack`.
134
+ - Required coverage must be evaluated before writing
135
+ `docs/product/backlog.md` or `docs/product/acceptance.md`.
136
+ - Incomplete required coverage blocks persistence unless assumptions are
137
+ explicitly confirmed.
138
+
139
+ Deterministic fail-closed reason codes:
140
+
141
+ - `INTAKE_REQUIRED_TOPIC_MISSING`
142
+ - `INTAKE_REQUIRED_PACK_INCOMPLETE`
143
+ - `INTAKE_ASSUMPTION_CONFIRMATION_REQUIRED`
144
+ - `INTAKE_PERSISTENCE_BLOCKED`
145
+
146
+ Required remediation output on block:
147
+
148
+ - include `missing_topics`
149
+ - provide targeted follow-up prompts for missing required topics
150
+ - request explicit assumption confirmation when assumptions are used
151
+
152
+ Required persisted intake evidence fields:
153
+
154
+ - `asked_topics`
155
+ - `missing_topics`
156
+ - `assumptions_confirmed`
157
+
104
158
  ## Optional ID namespace bootstrap (US-0052)
105
159
 
106
160
  Fresh-project ID bootstrap is optional and default-off in
@@ -216,6 +270,34 @@ Safety contract:
216
270
  - Canonical operator endpoint summary is written to
217
271
  `docs/engineering/runtime-connectivity.md` with sanitized values only.
218
272
 
273
+ ## Release operator hints contract (US-0067 / DEC-0049)
274
+
275
+ Release outputs must include deterministic operator-ready hints with mandatory
276
+ section order:
277
+
278
+ `Run -> Connect -> Verify -> Credentials -> Known Issues`
279
+
280
+ Required fields for canonical sprint notes
281
+ (`handoffs/releases/Sxxxx-release-notes.md`):
282
+
283
+ - `Run`: `start_command`, `runtime_mode`, `runtime_context_ref`
284
+ - `Connect`: `service_url`, `service_port`, `health_endpoint`
285
+ - `Verify`: deterministic `verification_steps`, `expected_health_signal`
286
+ - `Credentials`: env-reference-only source refs and expected value-source
287
+ location guidance (never inline secrets)
288
+ - `Known Issues`: concise issue list or explicit `None`
289
+
290
+ Legacy pointer contract (`handoffs/release_notes.md`):
291
+
292
+ - keep concise latest run/connect/verify summary only
293
+ - always link to canonical sprint-scoped release notes for full details
294
+
295
+ Fail-closed reason codes:
296
+
297
+ - `RELEASE_OPERATOR_HINTS_MISSING`
298
+ - `RELEASE_OPERATOR_HINTS_AMBIGUOUS`
299
+ - `RELEASE_OPERATOR_HINTS_SECRET_EXPOSURE`
300
+
219
301
  ## Deterministic status reconciliation mode (US-0055 / DEC-0037)
220
302
 
221
303
  Use the dedicated reconciliation command to normalize status drift across
@@ -474,6 +556,107 @@ Operator troubleshooting:
474
556
  - Replace with env-var reference fields (`tokenEnv`, `passwordEnv`,
475
557
  `privateKeyPathEnv`, ...).
476
558
 
559
+ ## Runtime QA autopilot contract (US-0065 / DEC-0047)
560
+
561
+ Generated-project validation requires runtime proof, not static checks alone.
562
+
563
+ Mandatory runtime stage order:
564
+
565
+ `startup -> readiness/connectivity -> log scan -> bounded retry -> verdict`
566
+
567
+ Deterministic runtime failure reason codes:
568
+
569
+ - `RUNTIME_STARTUP_FAILED`
570
+ - `RUNTIME_ENDPOINT_UNREACHABLE`
571
+ - `RUNTIME_LOG_CRITICAL_DETECTED`
572
+ - `RUNTIME_RETRY_BUDGET_EXHAUSTED`
573
+ - `RUNTIME_STACK_PROFILE_UNRESOLVED`
574
+
575
+ Runtime evidence schema (record in QA findings):
576
+
577
+ - `runtime_startup_command`
578
+ - `runtime_stack_profile` (`node|python|go|java|dotnet`)
579
+ - `runtime_mode` (`local|remote`)
580
+ - `runtime_health_target`
581
+ - `runtime_health_result`
582
+ - `runtime_log_summary` (severity counts and key error signals)
583
+ - `runtime_retry_count`
584
+ - `runtime_retry_ledger` (`attempt`, `delay_ms`, `outcome`)
585
+ - `runtime_final_verdict`
586
+ - `runtime_reason_code`
587
+ - `runtime_evidence_refs`
588
+
589
+ Bounded retry policy:
590
+
591
+ - retry only transient startup/connectivity failures
592
+ - enforce configured max-attempt cap (`attempt <= max`)
593
+ - fail fast on non-transient critical runtime log signals
594
+
595
+ Stack/profile resolution:
596
+
597
+ - Minimum supported runtime profiles: Node, Python, Go, Java, .NET.
598
+ - Unknown or ambiguous profile must fail closed with
599
+ `RUNTIME_STACK_PROFILE_UNRESOLVED`.
600
+
601
+ Webapp verification path (when applicable):
602
+
603
+ - include browser-surface load validation
604
+ - capture console error summary and failed network request summary
605
+ - add these signals to `runtime_log_summary` and evidence refs
606
+
607
+ Optional debug escalation (bounded):
608
+
609
+ - use for reproducible runtime failures only
610
+ - keep instrumentation bounded and reversible
611
+ - record applied debug steps and explicit cleanup confirmation
612
+
613
+ ## Generated test scaffolding + auto-run contract (US-0066 / DEC-0048)
614
+
615
+ Generated app projects require deterministic baseline test scaffolding and
616
+ automatic QA test execution evidence.
617
+
618
+ Detection/profile contract:
619
+
620
+ - Resolve one deterministic stack profile from:
621
+ `node|python|go|java|dotnet` (minimum supported).
622
+ - If profile cannot be resolved, fail closed with
623
+ `TEST_SCAFFOLD_STACK_UNRESOLVED`.
624
+ - If detected stack is outside supported baseline set, fail closed with
625
+ `TEST_SCAFFOLD_UNSUPPORTED_STACK`.
626
+
627
+ Generation contract (`/execute`):
628
+
629
+ - Generate only missing baseline assets for:
630
+ - unit tests
631
+ - integration tests
632
+ - acceptance tests
633
+ - Use stable scaffold paths so reruns are idempotent (no duplicate file churn).
634
+ - Record generated paths and actions in execution evidence.
635
+ - If generation fails, fail closed with `TEST_SCAFFOLD_GENERATION_FAILED`.
636
+
637
+ Runbook command wiring:
638
+
639
+ - `TEST_COMMAND` baseline is stack-aware and deterministic.
640
+ - Non-destructive precedence is mandatory:
641
+ - preserve user-authored non-empty `TEST_COMMAND`,
642
+ - write baseline command only when `TEST_COMMAND` is missing/unset.
643
+
644
+ QA auto-run evidence contract (`/qa`):
645
+
646
+ - Execute generated baseline tests automatically.
647
+ - Record evidence fields:
648
+ - `generated_test_stack_profile`
649
+ - `generated_test_command`
650
+ - `generated_test_result`
651
+ - `generated_test_output_ref`
652
+ - `generated_test_paths_ref`
653
+ - `generated_test_reason_code`
654
+
655
+ Runtime boundary with US-0065:
656
+
657
+ - Generated static test PASS is required but never sufficient for QA PASS.
658
+ - Runtime-autopilot verdict remains mandatory; non-starting apps cannot PASS QA.
659
+
477
660
  ## Auto continuation resume contract
478
661
 
479
662
  `/auto` continuation uses deterministic phase resolution (DEC-0017):
@@ -23,6 +23,19 @@ Canonical queue state now lives under:
23
23
  Check `handoffs/release_queue.md` for all pending entries where `status=unreleased`
24
24
  or `status=blocked` before finalization.
25
25
 
26
+ ## Latest operator summary (Run/Connect/Verify)
27
+
28
+ - **Start command:** Refer to `## Run` in
29
+ `handoffs/releases/Sxxxx-release-notes.md`.
30
+ - **Endpoint + port:** Refer to `## Connect` in
31
+ `handoffs/releases/Sxxxx-release-notes.md`.
32
+ - **Verification steps + health signal:** Refer to `## Verify` in
33
+ `handoffs/releases/Sxxxx-release-notes.md`.
34
+ - **Credentials source refs (sanitized):** Refer to `## Credentials` in
35
+ `handoffs/releases/Sxxxx-release-notes.md` (env-ref only).
36
+ - **Known issues:** Refer to `## Known Issues` in
37
+ `handoffs/releases/Sxxxx-release-notes.md`.
38
+
26
39
  ## Historical references
27
40
 
28
41
  - `Sxxxx`: `handoffs/releases/Sxxxx-release-notes.md`
@@ -16,10 +16,45 @@
16
16
 
17
17
  ---
18
18
 
19
+ ## Run
20
+
21
+ - `start_command`: `<required>`
22
+ - `runtime_mode`: `local|remote` (required)
23
+ - `runtime_context_ref`: `docs/engineering/runtime-connectivity.md` (required
24
+ when present)
25
+
26
+ ## Connect
27
+
28
+ - `service_url`: `<required>`
29
+ - `service_port`: `<required>`
30
+ - `health_endpoint`: `<required>`
31
+
32
+ ## Verify
33
+
34
+ - `verification_steps`:
35
+ 1. `<required step 1>`
36
+ 2. `<required step 2>`
37
+ 3. `<required step 3>`
38
+ - `expected_health_signal`: `<required>`
39
+
40
+ ## Credentials
41
+
42
+ - `credential_source_refs` (env names only):
43
+ - `<ENV_VAR_NAME>`
44
+ - `expected_value_source`:
45
+ - `<CI secret store | operator shell profile | deployment platform variable set>`
46
+ - Never place inline secrets/tokens/passwords in this file.
47
+
48
+ ## Known Issues
49
+
50
+ - `None` or deterministic concise issue list.
51
+
19
52
  ## Notes
20
53
 
21
54
  - Sprint-scoped notes are canonical history artifacts.
22
55
  - Do not overwrite notes for non-target sprints.
56
+ - Required section order is deterministic:
57
+ `Run -> Connect -> Verify -> Credentials -> Known Issues`.
23
58
 
24
59
  ## Queue linkage
25
60