@jterrats/open-orchestra 1.0.9 → 1.0.11

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 (168) hide show
  1. package/AGENTS.md +4 -1
  2. package/CLAUDE.md +4 -1
  3. package/dist/automation-evidence.d.ts +1 -1
  4. package/dist/automation-evidence.js +133 -11
  5. package/dist/automation-evidence.js.map +1 -1
  6. package/dist/autonomous-run-store.js +2 -2
  7. package/dist/autonomous-run-store.js.map +1 -1
  8. package/dist/benchmark.js +2 -1
  9. package/dist/benchmark.js.map +1 -1
  10. package/dist/clarification.js +2 -1
  11. package/dist/clarification.js.map +1 -1
  12. package/dist/collaboration-flows.d.ts +1 -2
  13. package/dist/command-manifest.js +18 -7
  14. package/dist/command-manifest.js.map +1 -1
  15. package/dist/command-routes-integrations.js +2 -1
  16. package/dist/command-routes-integrations.js.map +1 -1
  17. package/dist/command-utils.d.ts +1 -2
  18. package/dist/command-utils.js.map +1 -1
  19. package/dist/commands.d.ts +1 -1
  20. package/dist/commands.js +1 -1
  21. package/dist/commands.js.map +1 -1
  22. package/dist/constants.js +1 -0
  23. package/dist/constants.js.map +1 -1
  24. package/dist/cursor-canvas.js +21 -1
  25. package/dist/cursor-canvas.js.map +1 -1
  26. package/dist/cursor-mdc.d.ts +10 -0
  27. package/dist/cursor-mdc.js +37 -0
  28. package/dist/cursor-mdc.js.map +1 -0
  29. package/dist/fs-utils.js +2 -1
  30. package/dist/fs-utils.js.map +1 -1
  31. package/dist/generated-guidance-health.d.ts +33 -0
  32. package/dist/generated-guidance-health.js +125 -0
  33. package/dist/generated-guidance-health.js.map +1 -0
  34. package/dist/health-checks.js +2 -51
  35. package/dist/health-checks.js.map +1 -1
  36. package/dist/id-utils.d.ts +3 -0
  37. package/dist/id-utils.js +11 -0
  38. package/dist/id-utils.js.map +1 -0
  39. package/dist/instruction-blocks.js +20 -5
  40. package/dist/instruction-blocks.js.map +1 -1
  41. package/dist/mcp-oauth-proxy.js +5 -5
  42. package/dist/mcp-oauth-proxy.js.map +1 -1
  43. package/dist/memory-status.js +31 -5
  44. package/dist/memory-status.js.map +1 -1
  45. package/dist/memory.js +31 -7
  46. package/dist/memory.js.map +1 -1
  47. package/dist/notifications.js +12 -2
  48. package/dist/notifications.js.map +1 -1
  49. package/dist/phase-deterministic-output.d.ts +4 -0
  50. package/dist/phase-deterministic-output.js +62 -0
  51. package/dist/phase-deterministic-output.js.map +1 -0
  52. package/dist/phase-executor.js +4 -3
  53. package/dist/phase-executor.js.map +1 -1
  54. package/dist/phase-playbooks.js +2 -0
  55. package/dist/phase-playbooks.js.map +1 -1
  56. package/dist/provider-utils.js +11 -1
  57. package/dist/provider-utils.js.map +1 -1
  58. package/dist/qa-coverage-evidence.d.ts +3 -0
  59. package/dist/qa-coverage-evidence.js +92 -0
  60. package/dist/qa-coverage-evidence.js.map +1 -0
  61. package/dist/qa-coverage-guidance.d.ts +6 -0
  62. package/dist/qa-coverage-guidance.js +141 -0
  63. package/dist/qa-coverage-guidance.js.map +1 -0
  64. package/dist/qa-coverage-rules.d.ts +7 -0
  65. package/dist/qa-coverage-rules.js +127 -0
  66. package/dist/qa-coverage-rules.js.map +1 -0
  67. package/dist/qa-coverage-types.d.ts +47 -0
  68. package/dist/qa-coverage-types.js +2 -0
  69. package/dist/qa-coverage-types.js.map +1 -0
  70. package/dist/qa-coverage.d.ts +2 -20
  71. package/dist/qa-coverage.js +42 -132
  72. package/dist/qa-coverage.js.map +1 -1
  73. package/dist/recoverable-failure-lessons.d.ts +2 -0
  74. package/dist/recoverable-failure-lessons.js +55 -0
  75. package/dist/recoverable-failure-lessons.js.map +1 -0
  76. package/dist/release-readiness.js +3 -1
  77. package/dist/release-readiness.js.map +1 -1
  78. package/dist/roles/qa-ux-roles.js +5 -0
  79. package/dist/roles/qa-ux-roles.js.map +1 -1
  80. package/dist/runtime-adapters.js +1 -1
  81. package/dist/runtime-adapters.js.map +1 -1
  82. package/dist/runtime-bootstrap.js +23 -2
  83. package/dist/runtime-bootstrap.js.map +1 -1
  84. package/dist/runtime-commands.js +4 -0
  85. package/dist/runtime-commands.js.map +1 -1
  86. package/dist/runtime-completion-validation.d.ts +16 -0
  87. package/dist/runtime-completion-validation.js +206 -0
  88. package/dist/runtime-completion-validation.js.map +1 -0
  89. package/dist/runtime-execution.js +32 -3
  90. package/dist/runtime-execution.js.map +1 -1
  91. package/dist/runtime-lifecycle-watch-adapters.d.ts +4 -0
  92. package/dist/runtime-lifecycle-watch-adapters.js +87 -0
  93. package/dist/runtime-lifecycle-watch-adapters.js.map +1 -0
  94. package/dist/runtime-lifecycle-watch.d.ts +3 -11
  95. package/dist/runtime-lifecycle-watch.js +47 -120
  96. package/dist/runtime-lifecycle-watch.js.map +1 -1
  97. package/dist/runtime-parent-action-dispatch.d.ts +31 -0
  98. package/dist/runtime-parent-action-dispatch.js +196 -0
  99. package/dist/runtime-parent-action-dispatch.js.map +1 -0
  100. package/dist/runtime-parent-action-eligibility.d.ts +12 -0
  101. package/dist/runtime-parent-action-eligibility.js +131 -0
  102. package/dist/runtime-parent-action-eligibility.js.map +1 -0
  103. package/dist/runtime-parent-actions.js +22 -9
  104. package/dist/runtime-parent-actions.js.map +1 -1
  105. package/dist/runtime-spawn-bridge.js +6 -0
  106. package/dist/runtime-spawn-bridge.js.map +1 -1
  107. package/dist/skills-catalog.js +2 -0
  108. package/dist/skills-catalog.js.map +1 -1
  109. package/dist/skills-validation.js +1 -2
  110. package/dist/skills-validation.js.map +1 -1
  111. package/dist/sonar-commands.d.ts +1 -0
  112. package/dist/sonar-commands.js +36 -0
  113. package/dist/sonar-commands.js.map +1 -1
  114. package/dist/sonar-insights.d.ts +12 -0
  115. package/dist/sonar-insights.js +30 -55
  116. package/dist/sonar-insights.js.map +1 -1
  117. package/dist/sonar-payload-normalizers.d.ts +16 -0
  118. package/dist/sonar-payload-normalizers.js +67 -0
  119. package/dist/sonar-payload-normalizers.js.map +1 -0
  120. package/dist/sonar-preflight.d.ts +26 -0
  121. package/dist/sonar-preflight.js +111 -0
  122. package/dist/sonar-preflight.js.map +1 -0
  123. package/dist/sonar-redaction.d.ts +1 -0
  124. package/dist/sonar-redaction.js +13 -0
  125. package/dist/sonar-redaction.js.map +1 -0
  126. package/dist/subagent-protocol.js.map +1 -1
  127. package/dist/task-graph-commands.js +11 -1
  128. package/dist/task-graph-commands.js.map +1 -1
  129. package/dist/telemetry-redaction.js +31 -2
  130. package/dist/telemetry-redaction.js.map +1 -1
  131. package/dist/types/runtime.d.ts +55 -0
  132. package/dist/types/tasks.d.ts +3 -0
  133. package/dist/types.d.ts +1 -1
  134. package/dist/types.js.map +1 -1
  135. package/dist/web-artifacts.js +8 -3
  136. package/dist/web-artifacts.js.map +1 -1
  137. package/dist/web-console/assets/index-DA8Fs4r7.js +11 -0
  138. package/dist/web-console/index.html +1 -1
  139. package/dist/workflow-background-subagents.js +8 -4
  140. package/dist/workflow-background-subagents.js.map +1 -1
  141. package/dist/workflow-evidence-service.js +2 -0
  142. package/dist/workflow-evidence-service.js.map +1 -1
  143. package/dist/workflow-gates.js +6 -0
  144. package/dist/workflow-gates.js.map +1 -1
  145. package/dist/workflow-handoff-contract.js +1 -1
  146. package/dist/workflow-handoff-contract.js.map +1 -1
  147. package/dist/workflow-phase-transition.js +2 -2
  148. package/dist/workflow-phase-transition.js.map +1 -1
  149. package/dist/workflow-run-commands.js +119 -9
  150. package/dist/workflow-run-commands.js.map +1 -1
  151. package/dist/workflow-services.js +5 -1
  152. package/dist/workflow-services.js.map +1 -1
  153. package/dist/workflow-task-service.js +3 -0
  154. package/dist/workflow-task-service.js.map +1 -1
  155. package/dist/workspace.js +2 -1
  156. package/dist/workspace.js.map +1 -1
  157. package/docs/adoption-guide.md +12 -0
  158. package/docs/autonomous-workflow.md +10 -2
  159. package/docs/claude-adapter-qa-matrix.md +68 -0
  160. package/docs/e2e-test-batteries.md +3 -3
  161. package/docs/orchestra-mvp.md +13 -0
  162. package/docs/release-test-matrix.md +22 -0
  163. package/docs/runtime-adapters.md +106 -16
  164. package/docs/sonar-quality-gates.md +107 -0
  165. package/docs/traceability-flow.md +14 -4
  166. package/package.json +3 -2
  167. package/rules/delivery-quality-gates.mdc +2 -0
  168. package/dist/web-console/assets/index-DXbrxR_d.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,15 @@ orchestra review --task STORY-001 --role qa --result approve --findings "Accepta
51
51
  orchestra release check --json
52
52
  ```
53
53
 
54
+ Do not approve workflow gates just because the CLI reached a pause. The
55
+ `po->architect` gate requires user-validated scope, assumptions, non-goals,
56
+ priority, acceptance criteria, and sizing context. The `qa->release` gate
57
+ requires real implementation evidence, exact validation commands, QA findings,
58
+ and BA/PO plus Architect review when business behavior or technical contracts
59
+ changed. If a generated handoff says `Acceptance Criteria: none`, use the
60
+ linked issue or task as the source of truth, record the gap, and block release
61
+ until the missing criteria/evidence are fixed or explicitly risk-accepted.
62
+
54
63
  ## Concepts
55
64
 
56
65
  Open Orchestra is a local control plane. The parent runtime remains the active
@@ -79,6 +88,9 @@ orchestra workflow gate-approve --run <run-id> --gate "po->architect" --approver
79
88
  orchestra workflow run --task TEAM-001 --resume <run-id>
80
89
  ```
81
90
 
91
+ Quote gate ids in shells so `po->architect` and `qa->release` are passed as
92
+ literal values rather than interpreted as output redirection.
93
+
82
94
  Local-only provider:
83
95
 
84
96
  ```bash
@@ -372,8 +372,9 @@ Started autonomous workflow wfrun-... for task FEAT-001 [gates=phase]
372
372
  → po (product_owner) task=FEAT-001-po
373
373
  ✓ handoff → architect (...)
374
374
  ⏸ gate po→architect — review: .agent-workflow/approvals/FEAT-001-gate-po-to-architect-....md
375
- Approve: orchestra workflow run --task FEAT-001 --resume wfrun-...
375
+ Approve: orchestra workflow gate-approve --run wfrun-... --gate "po->architect" --approver <name> --rationale "<text>"
376
376
 
377
+ $ orchestra workflow gate-approve --run wfrun-... --gate "po->architect" --approver "product-owner" --rationale "User validated scope, assumptions, non-goals, priority, acceptance criteria, and sizing context"
377
378
  $ orchestra workflow run --task FEAT-001 --resume wfrun-...
378
379
  Resuming run wfrun-... from phase architect
379
380
  → architect (architect) task=FEAT-001-architect
@@ -384,10 +385,17 @@ Resuming run wfrun-... from phase architect
384
385
  → qa (qa) task=FEAT-001-qa
385
386
  ✓ handoff → release_manager (...)
386
387
  ⏸ gate qa→release — review: .agent-workflow/approvals/FEAT-001-gate-qa-to-release-....md
387
- Approve: orchestra workflow run --task FEAT-001 --resume wfrun-...
388
+ Approve: orchestra workflow gate-approve --run wfrun-... --gate "qa->release" --approver <name> --rationale "<text>"
388
389
 
390
+ $ orchestra workflow gate-approve --run wfrun-... --gate "qa->release" --approver "release-manager" --rationale "Implementation evidence, QA findings, BA/PO acceptance, and Architect review are recorded"
389
391
  $ orchestra workflow run --task FEAT-001 --resume wfrun-...
390
392
  Resuming run wfrun-... from phase release
391
393
  → release (release_manager) task=FEAT-001-release
392
394
  Workflow complete [run=wfrun-...]
393
395
  ```
396
+
397
+ Gate ids should be quoted in shells. If a generated handoff says
398
+ `Acceptance Criteria: none`, do not approve release from that handoff alone.
399
+ Use the linked issue or task as the acceptance source, record the missing
400
+ handoff detail as a review finding, and continue only after the gap is fixed or
401
+ the Product Owner explicitly accepts the risk.
@@ -0,0 +1,68 @@
1
+ # Claude Adapter QA Matrix
2
+
3
+ This matrix covers the GH-422 child stories for Claude runtime adapter support.
4
+ It records only local contract evidence and documentation evidence. It does not
5
+ claim real Claude Code native execution or Anthropic/provider API execution.
6
+
7
+ ## Evidence Summary
8
+
9
+ | Story | Scope | Evidence | Status |
10
+ | --- | --- | --- | --- |
11
+ | #432 / `GH-432-CLAUDE-ADAPTER-CONTRACT` | Claude action eligibility, skip reasons, alias policy, non-regression docs | QA handoff, release handoff, `npm run build`, `node --test test/runtime-adapters.test.js` with 51 passing tests, `git diff --check` | Pass |
12
+ | #433 / `GH-433-CLAUDE-DISPATCH-BRIDGE` | Dispatch bridge boundary, spawned/active lifecycle recording, idempotency, fallback guidance | QA handoff, release handoff, `npm run build`, `node --test test/runtime-adapters.test.js` with 54 passing tests, `git diff --check` | Pass |
13
+ | #434 / `GH-434-CLAUDE-COMPLETION-RECONCILIATION` | Strict completion validation by task, phase, role, runtime, session, and expected artifact | `runtime watch` validation tests in `test/runtime-adapters.test.js`; `npm run build`; `node --test test/runtime-adapters.test.js` with 58 passing tests | Pass |
14
+ | #435 / `GH-435-CLAUDE-GATE-PRESERVATION` | Safe workflow resume and human gate preservation regression coverage | `npm run build`; `node --test test/autonomous-workflow-cli.test.js`; `node --test test/runtime-adapters.test.js` with 59 passing tests | Pass |
15
+ | #436 / `GH-436-CLAUDE-DOCS-QA-EVIDENCE` | Documentation, QA matrix, release evidence, support-level framing | This document, `docs/runtime-adapters.md`, GH-436 QA/release handoffs, and follow-up #434/#435 evidence updates | Pass |
16
+ | #439 / `GH-439-CLAUDE-NATIVE-CALLBACK-BRIDGE` | Native callback bridge contract, fallback truthfulness, lifecycle validation | Local contract tests in `test/runtime-adapters.test.js`; `docs/runtime-adapters.md`; this matrix | In progress |
17
+
18
+ ## Acceptance Criteria Matrix
19
+
20
+ | Story | Acceptance Criterion | Evidence Type | Evidence | Result | Status |
21
+ | --- | --- | --- | --- | --- | --- |
22
+ | #432 | Claude runtime action eligibility is defined for runtime, action kind, tool name, session status, safety state, and runtime filter. | Unit/contract | `.agent-workflow/handoffs/GH-432-CLAUDE-ADAPTER-CONTRACT-wfrun-1779347910261-ecc68e-qa-qa-runtime-handoff.md`; `node --test test/runtime-adapters.test.js` | QA reports dispatchable primary Claude action and checked eligibility fields. | Pass |
23
+ | #432 | Skip reasons are machine-readable and human-readable for queued, suspended, terminal, stale or unsafe, runtime mismatch, tool mismatch, unsupported runtime, unavailable native tool, and manual request. | Unit/CLI contract | GH-432 QA handoff; GH-432 developer evidence | QA reports stable reason codes and readable messages for required skipped conditions. | Pass |
24
+ | #432 | Tool alias policy documents primary `claude-code-agent` and whether `Task` is supported or deferred. | Documentation/unit | `docs/runtime-adapters.md`; GH-432 QA handoff | `claude-code-agent` is primary; `Task` is deferred/manual and skipped as `tool-mismatch`. | Pass |
25
+ | #432 | Tests cover dispatchable and non-dispatchable Claude actions without changing Codex or Cursor behavior. | Regression/unit | GH-432 QA handoff; `node --test test/runtime-adapters.test.js` with 51 passing tests | Focused runtime adapter tests passed; Codex/Cursor behavior reviewed in the same suite. | Pass |
26
+ | #432 | `docs/runtime-adapters.md` reflects only the tested support level. | Documentation review | GH-432 QA handoff; current runtime adapter docs | Docs avoid native Claude/provider API claims for GH-432. | Pass |
27
+ | #433 | Eligible `claude-agent-request` actions can be dispatched through a focused Claude bridge service or equivalent adapter boundary. | Code review/CLI unit | `.agent-workflow/handoffs/GH-433-CLAUDE-DISPATCH-BRIDGE-wfrun-1779349624692-f04dbc-qa-qa-runtime-handoff.md`; `node --test test/runtime-adapters.test.js` | QA reports dispatch result is `dispatched` through the adapter boundary. | Pass |
28
+ | #433 | Dispatch records spawned and active lifecycle states with a stable child identifier or deterministic fallback label. | CLI unit/event review | GH-433 QA handoff | QA reports one spawned event, one active heartbeat, and `claude-code-agent:<session>` fallback label coverage. | Pass |
29
+ | #433 | Repeated dispatch is idempotent and never creates duplicate lifecycle events for the same session. | CLI unit | GH-433 QA handoff | QA reports repeated dispatch keeps one spawned and one active event. | Pass |
30
+ | #433 | Unavailable or unsupported native tool paths return explicit fallback guidance and manual lifecycle commands. | CLI unit/code review | GH-433 QA handoff | QA reports skipped result includes prompt artifact, expected result artifact, and manual spawned command. | Pass |
31
+ | #433 | Tests cover successful dispatch, unavailable tool fallback, repeated dispatch idempotency, runtime mismatch, and guardrail rejection. | Automated tests | GH-433 QA handoff; `node --test test/runtime-adapters.test.js` with 54 passing tests | Required scenarios mapped to deterministic tests. | Pass |
32
+ | #434 | Completion validation checks task id, phase, role, runtime, session id, and expected result artifact path. | Watch/contract tests | `test/runtime-adapters.test.js`; `src/runtime-completion-validation.ts` | `runtime watch` validates completion against structured spawn/session metadata before recording completed. | Pass |
33
+ | #434 | Wrong-task, wrong-role, wrong-runtime, wrong-session, missing, duplicate, and unsafe-path artifacts are rejected or skipped with explicit reasons. | Watch/negative tests | `runtime watch rejects Claude completion metadata mismatches`; existing unsafe/missing/duplicate watch coverage | Mismatches are skipped with explicit reasons; unsafe paths do not create completed lifecycle events. | Pass |
34
+ | #434 | `runtime watch` records completed exactly once for a valid spawned or active Claude session. | Watch test | `runtime watch completes a valid Claude session once` | Two watch passes produce one completed lifecycle event for the Claude session. | Pass |
35
+ | #434 | Native immediate completion results follow the same validation rules when supported. | Watch/contract test | `runtime watch validates Claude native immediate completion results`; `src/runtime-completion-validation.ts` | Immediate `completionResult` payloads resolve through the same expected-artifact and artifact-metadata validator. | Pass |
36
+ | #434 | Tests cover artifact validation, duplicate completion prevention, timeout/stale behavior, and safe path handling. | Automated tests | `node --test test/runtime-adapters.test.js` with 58 passing tests | Focused runtime adapter suite covers artifact metadata validation, duplicate ignored reasons, immediate completion payloads, and existing timeout/stale/unsafe-path behavior. | Pass |
37
+ | #435 | Verified completion resumes the paused run to the next safe phase when no human gate is pending. | Runtime lifecycle tests | `runtime watch completes spawned sessions once and auto-resumes workflow`; `runtime lifecycle completion can opt out of auto-resume` | Runtime completion resumes safe non-gated work and keeps opt-out behavior. | Pass |
38
+ | #435 | `po-to-architect`, `qa-to-release`, and configured human gates remain paused until explicit approval. | Workflow CLI tests | `workflow resume holds human gates until explicit approval` | Resume now holds unapproved gates and advances only after `workflow gate-approve`. | Pass |
39
+ | #435 | Auto-dispatch never records gate approval or skips a gate. | Runtime lifecycle tests | `runtime lifecycle auto-resume does not approve human gates` | Runtime lifecycle auto-resume leaves paused work unapproved and emits no `AUTONOMOUS_GATE_APPROVED` event. | Pass |
40
+ | #435 | Tests cover `gates=none`, `gates=phase`, `gates=all`, multi-phase dispatch until idle, manual fallback recovery, and GH-421 spawn-state messaging. | CLI/runtime regression tests | `test/autonomous-workflow-cli.test.js`; `test/runtime-adapters.test.js` | Existing runtime suite covers multi-pass dispatch, queued/pending messaging, manual recovery guidance, and gate modes; #435 adds stricter unapproved-gate hold coverage. | Pass |
41
+ | #435 | Existing Codex, Cursor, generic, VS Code, Windsurf, and OpenCode behavior is unchanged or covered by regression tests. | Runtime regression tests | `test/runtime-adapters.test.js` | Runtime adapter catalog and cross-runtime parent action tests still pass. | Pass |
42
+ | #436 | Runtime adapter docs document Claude dispatch support, alias policy, fallback behavior, manual recovery commands, guardrails, and gate preservation. | Documentation review | `docs/runtime-adapters.md` | Updated in this slice. | Pass |
43
+ | #436 | QA matrix maps each GH-422 child story acceptance criterion to unit, workflow, CLI, or manual evidence. | Documentation | This file | Matrix records Pass/Pending/Deferred by criterion and evidence type. | Pass |
44
+ | #436 | Release evidence includes exact commands, pass/fail results, unsupported CI/manual verification notes, and unresolved risks. | QA handoff/evidence | GH-436 handoff under `.agent-workflow/handoffs/`; #434/#435 QA evidence and release-readiness checks | Handoffs and evidence record exact commands, pass/fail results, known unsupported Claude callback/provider claims, and residual real-transport risk. | Pass |
45
+ | #436 | Documentation does not claim native Claude execution beyond tested behavior. | Documentation review | `docs/runtime-adapters.md`; this file | Docs frame support as parent-runtime contract plus manual/runtime-owned launch. | Pass |
46
+ | #436 | Product/release review records go/no-go based on evidence and known limitations. | Review artifact | `.agent-workflow/reviews/GH-436-CLAUDE-DOCS-QA-EVIDENCE-release_manager-review.md`; #435 release-readiness gate | Release review records go with known limitations; #435 follow-up gate preservation now passes. | Pass |
47
+ | #439 | Claude parent-runtime adapter can hand off only when a supported Claude parent runtime and native callback capability are explicitly verified. | Unit/contract | `runtime parent-actions dispatches eligible Claude requests with stable lifecycle`; `runtime parent-actions returns truthful Claude native fallback outside Claude parent runtime` | Local tests simulate the verified callback contract and verify unsupported parent runtimes skip without lifecycle writes. | In progress |
48
+ | #439 | Adapter captures a native child identifier or verified callback result and records spawned and active without manual lifecycle commands. | Unit/contract | `test/runtime-adapters.test.js` Claude native dispatch test | Simulated verified bridge records one spawned event and one active heartbeat with the supplied native child id. | In progress |
49
+ | #439 | Completion reconciliation validates task id, phase, role, runtime, session id, and expected artifact before completion. | Watch/contract tests | Existing #434 watch tests in `test/runtime-adapters.test.js` | Completion still flows through the expected handoff metadata and safe path validators. | Pass |
50
+ | #439 | Unsupported environments return fallback guidance without claiming native execution. | Unit/contract/docs | `runtime parent-actions returns truthful Claude native fallback outside Claude parent runtime`; `docs/runtime-adapters.md` | Codex/non-Claude context returns skipped fallback guidance and records no spawned lifecycle event. | In progress |
51
+ | #439 | Documentation separates tested local contract, real Claude runtime proof, and unsupported CI/non-Claude contexts. | Documentation | `docs/runtime-adapters.md`; this matrix | Docs label local simulation and unsupported contexts; real Claude runtime proof remains manual QA. | In progress |
52
+
53
+ ## Unsupported Or Deferred Claims
54
+
55
+ - No evidence in this slice proves that Orchestra can call Claude Code native
56
+ Agent/Subagent tools from CI or from a non-Claude parent runtime.
57
+ - No evidence proves direct Anthropic or provider API execution for runtime
58
+ delegation; runtime-native artifacts keep `directProviderApiAllowed=false`.
59
+ - Native immediate Claude completion is covered when represented as a
60
+ `completionResult` payload; real callback transport remains future adapter
61
+ work.
62
+ - #435 workflow resume and human gate preservation regression coverage now
63
+ passes locally; real Claude Code callback transport remains outside this
64
+ local contract matrix.
65
+ - #439 adds a truthful native callback bridge contract: non-Claude and
66
+ callback-unavailable environments skip without lifecycle writes. Real Claude
67
+ Code Agent/Subagent proof still requires manual QA from a Claude parent
68
+ runtime that exposes the native callback capability.
@@ -29,7 +29,7 @@ entry points a user or CI runner actually executes.
29
29
  | Browser console | Web console task, cost, provider, delegation, recovery, evidence, workflow, accessibility, artifacts | `npm run test:e2e` | visible state, API persistence, evidence attachment, lifecycle transitions, responsive/keyboard behavior | Playwright report, screenshots/traces on failure |
30
30
  | Public site | Documentation/site navigation, docs catalog, architecture viewer, mobile fit | `npm run test:e2e` | navigation order, local docs catalog search, no raw GitHub redirect for docs, mobile content fit | Playwright report |
31
31
  | Runtime manual queue | Manual runtime delegation in a `/tmp` workspace | `npm run test:e2e:runtime` | two active sessions, third manual `spawn-request` materializes `queued`, artifact includes lifecycle commands, `runtime sessions` lists queued session | stdout/stderr, JSON output, artifact content |
32
- | Init refresh environments | Simulated Codex, Claude, Cursor, generic workspaces | `node --test e2e/init-refresh-environments.test.js` | missing runtime guidance files regenerate on `init --force`, user content is preserved, managed blocks are updated only inside managed ranges | filesystem diff assertions |
32
+ | Init refresh environments | Simulated generic, Codex, Claude, Cursor, VS Code/GitHub Copilot, and Windsurf workspaces | `npm run test:e2e:init` | missing runtime guidance files regenerate on `init --force`, user content is preserved, managed blocks/frontmatter are updated only inside managed ranges, target-specific metadata excludes wrong-target content, generated-artifact evidence maps back to acceptance criteria | filesystem diff assertions, QA coverage JSON |
33
33
  | Workflow lifecycle CLI | CLI workflow run, gate, resume, QA failback, release readiness | `node --test e2e/workflow-lifecycle-cli.test.js` | task phases create handoffs, blocked QA routes back, routine gate resumes immediately, release readiness maps acceptance to evidence | JSON output, events, handoffs |
34
34
 
35
35
  ## P1 High-Risk Regression Batteries
@@ -76,8 +76,8 @@ the packaging/install path is wrong.
76
76
 
77
77
  1. Keep `e2e/runtime-manual-queue.test.js` release-blocking as runtime
78
78
  delegation evolves.
79
- 2. Add `e2e/init-refresh-environments.test.js` for Codex, Claude, Cursor, and
80
- generic project simulations.
79
+ 2. Keep `e2e/init-onboarding.test.js` covering Codex, Claude, Cursor, VS Code,
80
+ GitHub Copilot, Windsurf, and generic project simulations.
81
81
  3. Add `e2e/workflow-lifecycle-cli.test.js` for workflow run, gate, failback,
82
82
  resume, and release readiness.
83
83
  4. Add `e2e/runtime-multi-squad.test.js` for async background squad behavior.
@@ -275,6 +275,19 @@ Release go/no-go:
275
275
  `macos-latest`, and `windows-latest`.
276
276
  - Confirm `Create release tag`, site publish, and npm publish workflows are
277
277
  successful for the intended release commit.
278
+ - Confirm the npm publish workflow authenticates with either a maintainer
279
+ `NPM_TOKEN` that has read-write access plus CI 2FA bypass for
280
+ `@jterrats/open-orchestra`, or npm Trusted Publishing/OIDC configured with
281
+ organization/user `jterratsdev`, repository `open-orchestra`, workflow
282
+ filename `publish-npm.yml`, and no environment. If npm returns `404 Not Found`
283
+ during publish for an existing scoped package, treat it as a token or scope
284
+ permission failure until proven otherwise; do not print token values in logs
285
+ or evidence. If `npm whoami` returns `E401 Unauthorized`, regenerate the
286
+ GitHub Actions `NPM_TOKEN` secret from the npm maintainer account before
287
+ rerunning publish. If `npm publish` returns `EOTP`, the token is valid but
288
+ cannot bypass 2FA; switch to a granular token with bypass 2FA enabled or run
289
+ `publish-npm.yml` with `auth_mode=trusted` after configuring npm Trusted
290
+ Publishing for the package.
278
291
 
279
292
  Support diagnostics:
280
293
 
@@ -35,6 +35,28 @@ If the remote tag already exists, do not move it. Use the next patch or
35
35
  prerelease version unless an explicit break-glass release decision documents why
36
36
  manual intervention is required.
37
37
 
38
+ The npm publish workflow supports two authentication modes:
39
+
40
+ - `auth_mode=token`: requires `NPM_TOKEN` from an npm account with read-write
41
+ access to `@jterrats/open-orchestra` and CI publish permission that can bypass
42
+ 2FA.
43
+ - `auth_mode=trusted`: uses npm Trusted Publishing/OIDC. Configure the package
44
+ in npm with organization/user `jterratsdev`, repository `open-orchestra`,
45
+ workflow filename `publish-npm.yml`, and no environment before running this
46
+ mode.
47
+
48
+ A `404 Not Found` response on `PUT
49
+ https://registry.npmjs.org/@jterrats%2fopen-orchestra` for an existing scoped
50
+ package usually means the token is missing, was generated by a user that is not
51
+ a package maintainer, or lacks publish permission for the scope. `EOTP` means
52
+ the token is accepted but cannot bypass 2FA for CI publishing; use a granular
53
+ token with bypass 2FA enabled or switch to Trusted Publishing. The workflow
54
+ validates `npm whoami` and scoped package access before token-based publishing
55
+ so permission failures are visible without exposing the token.
56
+ If the preflight fails at `npm whoami` with `E401 Unauthorized`, regenerate
57
+ `NPM_TOKEN` from the npm maintainer account and store the raw token value as a
58
+ GitHub Actions secret.
59
+
38
60
  ## Required Environments
39
61
 
40
62
  - `ubuntu-latest` with Node `>=22` and npm.
@@ -28,8 +28,9 @@ packet:
28
28
  approvals stay inside Codex; Orchestra renders briefs and packets only.
29
29
  - `claude-cli`: use the current Claude Code session. Orchestra renders the
30
30
  packet and the Claude parent launches it with the native Agent/Subagent tool
31
- when available; `Task` is treated as a legacy alias if that is what the
32
- runtime exposes.
31
+ when available. The tested auto-dispatch eligibility contract recognizes
32
+ `claude-code-agent` as the primary tool; `Task` is documented as a deferred
33
+ legacy/manual alias and is skipped as `tool-mismatch` by auto-dispatch.
33
34
  - `cursor-cli`: use the current Cursor runtime. Orchestra renders the packet
34
35
  and the Cursor parent launches it as a Background Agent so the current chat
35
36
  remains usable while the child works.
@@ -164,6 +165,7 @@ orchestra runtime spawn-request --task STORY-001 --role developer --runtime code
164
165
  orchestra runtime parent-actions --task STORY-001 --json
165
166
  orchestra runtime parent-actions --task STORY-001 --dispatch --until-idle --runtime codex-cli --timeout 5m --idle-timeout 10s --json
166
167
  orchestra runtime spawn-lifecycle --session STORY-001:manual:developer:codex-cli --status spawned --agent-id <runtime-agent-id> --json
168
+ orchestra runtime watch --task STORY-001 --once --json
167
169
  ```
168
170
 
169
171
  The matching local APIs are `GET /api/runtime/sessions`,
@@ -183,6 +185,15 @@ points to the prompt artifact, expected result artifact, ownership paths,
183
185
  allowed commands, and lifecycle commands. It does not include secrets or direct
184
186
  provider credentials.
185
187
 
188
+ Pending parent actions also include structured `eligibility` metadata. The
189
+ metadata records the checked runtime, action kind, tool name, session status,
190
+ runtime filter when supplied, and safety state. Dispatchable actions report
191
+ `status=dispatchable`; skipped actions include machine-readable reason codes
192
+ and operator-readable messages. Current skip codes are `already-dispatched`,
193
+ `queued`, `suspended`, `terminal`, `stale-or-unsafe`, `runtime-mismatch`,
194
+ `tool-mismatch`, `unsupported-runtime`, `unavailable-native-tool`, and
195
+ `manual-request`.
196
+
186
197
  When `workflow run` pauses with a pending parent runtime action, parent agents
187
198
  have two supported paths:
188
199
 
@@ -192,29 +203,108 @@ have two supported paths:
192
203
  - Auto-dispatch: run
193
204
  `runtime parent-actions --task <id> --dispatch --until-idle --runtime <runtime-id>`.
194
205
  The dispatcher repeatedly inspects pending parent actions, dispatches only
195
- safe actions for the active runtime, records spawned lifecycle events with
196
- dispatcher session ids, applies `runtime watch` completions when expected
197
- handoff artifacts appear, resumes paused workflow runs, and continues across
198
- later phases until idle or timeout.
206
+ safe actions for the active runtime, records spawned and active lifecycle
207
+ events with stable runtime child ids or verified callback correlation ids, applies
208
+ `runtime watch` completions when expected handoff artifacts appear, resumes
209
+ paused workflow runs, and continues across later phases until idle or timeout.
199
210
 
200
211
  The auto-dispatch loop is bounded by `--timeout`, `--idle-timeout`, and
201
212
  `--interval`, so it never polls forever. It skips queued actions, suspended
202
- sessions, runtime mismatches, unavailable runtimes, manual/unsupported action
203
- kinds, and tool mismatches. This keeps the boundary explicit: Orchestra emits
204
- auditable actions and lifecycle commands; the active parent runtime executes
205
- native tools such as Codex `spawn_agent`, and the dispatcher only consumes
206
- actions that are safe for the runtime declared on the command line.
213
+ sessions, terminal sessions, stale or unsafe actions, runtime mismatches,
214
+ already-dispatched sessions, unsupported runtimes, unavailable native tools,
215
+ manual requests, and tool mismatches. Skipped actions include fallback guidance
216
+ with the prompt artifact, expected result artifact, and manual lifecycle
217
+ commands so a human parent runtime can safely continue without provider API
218
+ access. This keeps the boundary explicit: Orchestra emits auditable actions and
219
+ lifecycle commands; the active parent runtime executes native tools such as
220
+ Codex `spawn_agent`, and the dispatcher only consumes actions that are safe for
221
+ the runtime declared on the command line. For Claude, the tested dispatch
222
+ contract accepts `claude-agent-request` with `tool=claude-code-agent`, but it
223
+ records `spawned` and `active` only when the active parent runtime is Claude and
224
+ the native callback capability is explicitly verified. Unsupported Codex, CI,
225
+ non-Claude, or callback-unavailable contexts return fallback guidance and do not
226
+ claim native execution. Orchestra does not call Claude Code, Anthropic APIs, or
227
+ another provider API.
228
+
229
+ Runtime lifecycle watching is adapter-driven. Each inspected session reports a
230
+ `watcher` object with adapter id, detection mode, support level, fallback
231
+ behavior, and the reason a native callback is unavailable. `codex-cli`,
232
+ `claude-cli`, and `cursor-cli` currently reconcile completion through explicit
233
+ parent lifecycle events and then fall back to bounded artifact inspection.
234
+ `generic-runtime`, unknown runtime ids, and runtimes without declared callbacks
235
+ use the same artifact fallback directly. Event-driven callbacks should only be
236
+ used when the selected watcher adapter declares native support; otherwise
237
+ `runtime watch` performs bounded inspection of the expected handoff artifact.
238
+
239
+ ## Claude Adapter Support Level
240
+
241
+ Claude support is currently a parent-runtime dispatch and lifecycle contract,
242
+ not proof that Orchestra can invoke Claude Code or Anthropic APIs by itself.
243
+ The tested local behavior covers:
244
+
245
+ - Dispatch support: eligible `claude-agent-request` actions for `claude-cli`
246
+ with `tool=claude-code-agent` can be inspected by
247
+ `runtime parent-actions --dispatch --runtime claude-cli`. The dispatch path
248
+ records `spawned` and `active` lifecycle state only when the bridge verifies a
249
+ Claude parent runtime and callback capability. In local contract tests this is
250
+ simulated with explicit environment markers; in unsupported environments the
251
+ action is skipped with manual fallback guidance.
252
+ - Alias policy: `claude-code-agent` is the only auto-dispatchable Claude tool
253
+ name in the tested contract. `Task` is a legacy/manual alias and is skipped
254
+ as `tool-mismatch`; accepting it in auto-dispatch requires new tests and
255
+ documentation.
256
+ - Fallback behavior: skipped, unsupported, unsafe, stale, queued, suspended,
257
+ terminal, mismatched, or unavailable actions return structured eligibility
258
+ metadata, fallback guidance, prompt artifact, expected result artifact, and
259
+ manual lifecycle commands. Fallback never runs the phase in the parent agent
260
+ silently, never records native Claude lifecycle events, and never switches to
261
+ direct provider APIs.
262
+ - Guardrails: dispatch is bounded by runtime guardrails, runtime filters,
263
+ session status, safety state, action kind, tool name, and stale-session
264
+ checks. It preserves `directProviderApiAllowed=false` for runtime-native
265
+ delegation artifacts.
266
+ - Completion reconciliation: `runtime watch` validates the expected completion
267
+ metadata before marking a Claude session complete. The validation checks task
268
+ id, phase, role, runtime, session id, and the safe expected handoff path, and
269
+ it also requires the final handoff artifact to repeat those metadata fields.
270
+ It skips mismatches, missing artifact metadata, unsafe paths, and duplicate
271
+ completions with explicit reasons instead of treating any handoff file as
272
+ completion proof. Native immediate `completionResult` payloads use the same
273
+ validation path when present.
274
+ - Gate preservation: auto-dispatch must not approve or skip human gates.
275
+ `workflow run --resume` now holds unapproved gates until
276
+ `workflow gate-approve` records explicit approval, and runtime lifecycle
277
+ auto-resume records no gate approval events. The regression suite covers safe
278
+ non-gated resume, unapproved gate hold behavior, opt-out, queued/pending
279
+ messaging, and multi-pass parent action dispatch.
280
+
281
+ Manual recovery for a skipped or unavailable Claude action:
282
+
283
+ ```bash
284
+ orchestra runtime parent-actions --task <id> --json
285
+ orchestra runtime spawn-request --task <id> --role <role> --runtime claude-cli --json
286
+ orchestra runtime spawn-lifecycle --session <session-id> --status spawned --agent-id <claude-child-id-or-label> --json
287
+ orchestra runtime spawn-lifecycle --session <session-id> --status active --agent-id <claude-child-id-or-label> --json
288
+ orchestra runtime watch --task <id> --once --json
289
+ orchestra workflow run --task <id> --resume <run-id>
290
+ ```
291
+
292
+ Only run the lifecycle commands after the parent Claude Code session has
293
+ actually launched or taken ownership of the rendered prompt artifact. If no
294
+ child id is returned by the runtime, use a stable operator label and keep the
295
+ expected handoff artifact path from the spawn request.
207
296
 
208
297
  ## Native Background Agent Notes
209
298
 
210
299
  Claude Code and Cursor do not need Orchestra to call vendor APIs directly.
211
300
  They need a precise packet and lifecycle hooks:
212
301
 
213
- - Claude Code: render `runtime spawn-request`, then launch the packet from the
214
- parent Claude session with the native Agent/Subagent tool. If the local
215
- Claude runtime exposes `Task` as the tool name, treat it as the compatible
216
- legacy alias. Record the returned child id or role label through
217
- `runtime spawn-lifecycle`.
302
+ - Claude Code: render `runtime spawn-request`, then manually launch the packet
303
+ from the parent Claude session with the native Agent/Subagent tool. The
304
+ primary tested tool name is `claude-code-agent`. `Task` is deferred as a
305
+ legacy/manual alias and is not auto-dispatchable in GH-432; auto-dispatch
306
+ reports it as `tool-mismatch`. Record the returned child id or role label
307
+ through `runtime spawn-lifecycle`.
218
308
  - Codex: render `runtime spawn-request`, read `parentRuntimeAction`, and call
219
309
  the parent `spawn_agent` tool with the prompt artifact as the role-scoped
220
310
  assignment. In workflow auto-consumer mode, use
@@ -62,6 +62,35 @@ gate status. If the scanner can upload analysis but the wait step fails with
62
62
  `Project not found`, update the `SONAR_TOKEN` permissions or keep
63
63
  `SONAR_QUALITY_GATE_WAIT` unset until the token can read the project.
64
64
 
65
+ Before scanner execution, CI runs:
66
+
67
+ ```bash
68
+ node bin/orchestra.js sonar preflight \
69
+ --provider "$SONAR_PROVIDER_RESOLVED" \
70
+ --project-key jterrats_open-orchestra \
71
+ --organization jterrats \
72
+ --host-url "$SONAR_HOST_URL_RESOLVED" \
73
+ --branch "$BRANCH_NAME"
74
+ ```
75
+
76
+ The preflight validates token authentication, project visibility, quality gate
77
+ API access, issue API access, and security hotspot API access. It redacts the
78
+ token, host URL, and Cloudflare Access service token values from diagnostic
79
+ output. `hotspots` is a warning when unavailable because some Sonar tokens can
80
+ analyze and read issues while hotspot review permissions are managed separately.
81
+
82
+ Common remediation:
83
+
84
+ - `auth-invalid`: regenerate `SONAR_TOKEN`; do not paste header names or
85
+ prefixes into the secret value.
86
+ - `project-not-found`: verify the project key and organization, then grant the
87
+ token user Browse access on the project.
88
+ - `permission-denied`: grant Execute Analysis for scanner upload and Browse/API
89
+ access for evidence import. Use a user token when hotspot APIs must be read.
90
+ - `cloudflare-challenge`: use the Cloudflare Access service token proxy, a
91
+ self-hosted runner with local `SONAR_LOCAL_HOST_URL`, or an Access policy that
92
+ explicitly allows the CI service token without an interactive challenge.
93
+
65
94
  ## Local SonarQube
66
95
 
67
96
  Open Orchestra does not own the long-lived local SonarQube containers. The
@@ -179,6 +208,35 @@ For the current laptop setup, use the macOS ARM64 runner package and configure
179
208
  the runner with `--labels sonar,local-sonar`. GitHub automatically adds the
180
209
  platform labels such as `self-hosted`, `macOS`, and `ARM64`.
181
210
 
211
+ Current macOS ARM64 bootstrap:
212
+
213
+ ```bash
214
+ mkdir -p ~/dev/actions-runner-open-orchestra-sonar
215
+ cd ~/dev/actions-runner-open-orchestra-sonar
216
+ curl -L -o actions-runner-osx-arm64.tar.gz <github-runner-osx-arm64-download-url>
217
+ tar xzf actions-runner-osx-arm64.tar.gz
218
+ ./config.sh --url https://github.com/jterratsdev/open-orchestra --labels sonar,local-sonar --name open-orchestra-sonar-macos-arm64
219
+ ./run.sh
220
+ ```
221
+
222
+ Future Linux runner bootstrap should use the Linux package that matches the host
223
+ architecture, the same `sonar,local-sonar` labels, and a dedicated service
224
+ account. Do not reuse a broad organization runner for Sonar unless the runner
225
+ already has least-privilege filesystem, Docker, and network access.
226
+
227
+ Service lifecycle:
228
+
229
+ ```bash
230
+ cd ~/dev/actions-runner-open-orchestra-sonar
231
+ ./svc.sh install
232
+ ./svc.sh start
233
+ ./svc.sh status
234
+ ./svc.sh stop
235
+ ```
236
+
237
+ Use `./run.sh` for interactive local troubleshooting. Use `svc.sh` only after
238
+ the runner can start, claim a Sonar workflow job, and reach SonarQube locally.
239
+
182
240
  Keep the shared SonarQube stack running locally:
183
241
 
184
242
  ```bash
@@ -201,6 +259,44 @@ container. In that case either run the runner process on the host, attach the
201
259
  runner container to the SonarQube Docker network, or set `SONAR_LOCAL_HOST_URL`
202
260
  to the host/network address that reaches SonarQube without Cloudflare.
203
261
 
262
+ ### Self-Hosted Runner Health Check
263
+
264
+ Before relying on CI, validate the local runner and SonarQube path from the same
265
+ machine that runs the GitHub Actions runner:
266
+
267
+ ```bash
268
+ gh variable list --repo jterratsdev/open-orchestra
269
+ gh api repos/jterratsdev/open-orchestra/actions/runners --jq '.runners[] | {name, status, busy, labels: [.labels[].name]}'
270
+ npm run sonar:preflight:local
271
+ ```
272
+
273
+ Expected result:
274
+
275
+ - `SONAR_RUNNER` is `self-hosted`.
276
+ - A runner is `online` with `self-hosted`, `sonar`, and `local-sonar` labels.
277
+ - Sonar authentication returns `{"valid":true}`.
278
+ - `npm run sonar:preflight:local` passes `auth`, `project`, `qualityGate`, and
279
+ `issues`; `hotspots` may warn when the token lacks hotspot read access.
280
+
281
+ If the runner is online but jobs stay queued, verify the workflow labels match
282
+ the runner labels exactly. If Sonar preflight fails, fix the token/project
283
+ permissions before rerunning the workflow.
284
+
285
+ ### Current Workflow Warning Triage
286
+
287
+ - Node 20 action warning: non-blocking today. Track upstream action upgrades and
288
+ update actions when GitHub publishes Node 24-compatible major versions.
289
+ - GPG keyserver warning from the Sonar scanner action: non-blocking when scanner
290
+ setup and analysis complete. Prefer self-hosted runner network allowlisting or
291
+ a pinned scanner cache before treating it as release-blocking.
292
+ - Cache or tar warnings: non-blocking unless scanner dependencies fail to
293
+ restore and analysis cannot start. Rebuild the runner cache or rerun the job
294
+ before changing project code.
295
+
296
+ These warnings should be captured as CI annotations, but they do not override a
297
+ passing Sonar workflow unless the scanner, import, or final quality gate step
298
+ fails.
299
+
204
300
  Sonar reads TypeScript through `tsconfig.sonar.json`, a standalone analyzer
205
301
  config that mirrors the build compiler options but lowers only the analyzer
206
302
  target to `ES2022`. Keep the main build target unchanged unless runtime support
@@ -239,6 +335,17 @@ Recommended minimum quality gate for new code:
239
335
  - Coverage reported from `coverage/lcov.info` for source files on every Sonar
240
336
  run.
241
337
 
338
+ The Orchestra Sonar import stores unresolved issues and Sonar security hotspots
339
+ in the uploaded `sonar-insights` artifact. When the gate fails only on
340
+ `new_security_hotspots_reviewed`, review the hotspot list in SonarQube, mark
341
+ each hotspot as safe, fixed, or accepted with rationale, then rerun the Sonar
342
+ workflow. Do not bypass this gate from code unless the Product Owner explicitly
343
+ accepts the security risk.
344
+ If the artifact includes `securityHotspotsUnavailableReason`, the configured
345
+ `SONAR_TOKEN` can read the quality gate and issues but cannot read the hotspots
346
+ API. Grant the token Browse plus security hotspot review/read permissions in
347
+ SonarQube before using the artifact as release evidence.
348
+
242
349
  ## Coverage Publishing
243
350
 
244
351
  The Sonar workflow runs `npm run test:coverage` before analysis. That command
@@ -54,10 +54,20 @@ orchestra review --task STORY-1 --role qa --result approve --findings "..." --re
54
54
  ```
55
55
 
56
56
  Developer-to-QA handoff should include touched files, commands, known gaps, and
57
- recommended Playwright, CLI, shell, or API coverage. `qa coverage` maps each
58
- acceptance criterion to `covered`, `planned`, `skipped`, or `gap` using task
59
- paths, project scripts, and existing evidence; release readiness surfaces
60
- unresolved QA automation gaps before promotion.
57
+ recommended Playwright, CLI, shell, API, integration, workflow, mobile, desktop,
58
+ data, or generated-artifact coverage. `qa coverage` maps each acceptance
59
+ criterion to `covered`, `weak`, `missing`, `deferred`, or `blocked`
60
+ using task paths, project scripts, and existing evidence; release readiness and
61
+ the `qa-release` gate surface unresolved QA automation gaps before promotion.
62
+
63
+ Generated artifacts are a first-class QA surface. When rules, skills, runtime
64
+ guidance, Markdown files, MDC files, or managed bootstrap blocks change,
65
+ evidence must assert generated paths, managed metadata, target-specific content,
66
+ refresh/drift behavior, user-content preservation, and absence of wrong-target
67
+ content. CLI evidence must assert exit code, stdout, stderr, generated
68
+ files/events, and final state. Integration evidence must include receiver-side
69
+ sandbox/mock/contract/webhook/event/log validation or an explicit deferred owner
70
+ and rationale.
61
71
 
62
72
  Evidence summaries should name the acceptance criterion they cover or say
63
73
  "covers all acceptance criteria" when a single artifact proves the full story.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jterrats/open-orchestra",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  "extensions/vscode-open-orchestra",
@@ -16,7 +16,7 @@
16
16
  "test": "npm run build && node --test test/**/*.js extensions/**/*.test.cjs",
17
17
  "test:coverage": "npm run build && c8 --reporter=lcov --reports-dir coverage --exclude \"test/**\" --exclude \"e2e/**\" --exclude \"extensions/**/test/**\" --exclude \"dist/assets/**\" --exclude \"dist/web-console/**\" node --test test/**/*.js extensions/**/*.test.cjs",
18
18
  "test:e2e": "npm run build && npm run site:build && playwright test",
19
- "test:e2e:init": "node --test e2e/init-onboarding.test.js",
19
+ "test:e2e:init": "node --test e2e/init-onboarding.test.js e2e/runtime-instruction-flow.test.js",
20
20
  "test:e2e:runtime": "node --test e2e/runtime-manual-queue.test.js",
21
21
  "test:e2e:runtime:ollama": "npm run build && node --test e2e/runtime-ollama-provider.test.js",
22
22
  "lint": "eslint . && prettier --check \"{bin,e2e,scripts,test,src}/**/*.js\" \"{site,web-console}/src/**/*.{css,js,jsx}\" \"{site,web-console}/*.{html,js,json}\" \"extensions/**/*.{cjs,json,md}\" \"src/**/*.ts\" \"*.{js,json}\"",
@@ -30,6 +30,7 @@
30
30
  "performance:bench": "npm run build && node scripts/performance-benchmark.js",
31
31
  "precommit": "npm run lint && npm run typecheck && npm run secret-scan && npm run security:audit && npm test && npm run validate:workflow",
32
32
  "prepack": "npm run build",
33
+ "sonar:preflight:local": "node bin/orchestra.js sonar preflight --provider sonarqube-local --project-key jterrats_open-orchestra --host-url ${SONAR_HOST_URL:-http://localhost:9001}",
33
34
  "sonar:scan:local": "sonar-scanner -Dsonar.host.url=${SONAR_HOST_URL:-http://localhost:9001}",
34
35
  "hooks:install": "git config core.hooksPath .githooks",
35
36
  "build:web": "npm run build:web:legacy && npm run build:web:react",
@@ -18,6 +18,8 @@ Development work is not complete when code compiles. Every implementation must m
18
18
  ## QA Gate
19
19
 
20
20
  - QA receives the Developer handoff before release approval.
21
+ - Workflow gate approval is not a status shortcut. `po→architect` can be approved only when the issue/task has user-validated scope, non-goals, assumptions, priority, acceptance criteria, and sizing context. `qa→release` can be approved only after real implementation evidence, QA findings, BA/PO acceptance, and Architect review when technical contracts changed.
22
+ - Generated handoffs with `Acceptance Criteria: none` are incomplete for release purposes. Pull the criteria from the linked GitHub issue or Orchestra task, record a review finding, and block release until the criteria/evidence gap is fixed or explicitly risk-accepted by the Product Owner.
21
23
  - QA must produce a test plan covering acceptance criteria, regression areas, edge cases, data setup, and environment assumptions.
22
24
  - QA must block test planning when acceptance criteria are fragmented, non-verifiable, or only role/phase headings. Return those findings to PO/BA before release evidence is generated.
23
25
  - QA plans must include an AC-to-evidence matrix with expected observable result, actual result, artifact/command, and pass/fail/deferred status for each acceptance criterion.