@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.
- package/AGENTS.md +4 -1
- package/CLAUDE.md +4 -1
- package/dist/automation-evidence.d.ts +1 -1
- package/dist/automation-evidence.js +133 -11
- package/dist/automation-evidence.js.map +1 -1
- package/dist/autonomous-run-store.js +2 -2
- package/dist/autonomous-run-store.js.map +1 -1
- package/dist/benchmark.js +2 -1
- package/dist/benchmark.js.map +1 -1
- package/dist/clarification.js +2 -1
- package/dist/clarification.js.map +1 -1
- package/dist/collaboration-flows.d.ts +1 -2
- package/dist/command-manifest.js +18 -7
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-routes-integrations.js +2 -1
- package/dist/command-routes-integrations.js.map +1 -1
- package/dist/command-utils.d.ts +1 -2
- package/dist/command-utils.js.map +1 -1
- package/dist/commands.d.ts +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/cursor-canvas.js +21 -1
- package/dist/cursor-canvas.js.map +1 -1
- package/dist/cursor-mdc.d.ts +10 -0
- package/dist/cursor-mdc.js +37 -0
- package/dist/cursor-mdc.js.map +1 -0
- package/dist/fs-utils.js +2 -1
- package/dist/fs-utils.js.map +1 -1
- package/dist/generated-guidance-health.d.ts +33 -0
- package/dist/generated-guidance-health.js +125 -0
- package/dist/generated-guidance-health.js.map +1 -0
- package/dist/health-checks.js +2 -51
- package/dist/health-checks.js.map +1 -1
- package/dist/id-utils.d.ts +3 -0
- package/dist/id-utils.js +11 -0
- package/dist/id-utils.js.map +1 -0
- package/dist/instruction-blocks.js +20 -5
- package/dist/instruction-blocks.js.map +1 -1
- package/dist/mcp-oauth-proxy.js +5 -5
- package/dist/mcp-oauth-proxy.js.map +1 -1
- package/dist/memory-status.js +31 -5
- package/dist/memory-status.js.map +1 -1
- package/dist/memory.js +31 -7
- package/dist/memory.js.map +1 -1
- package/dist/notifications.js +12 -2
- package/dist/notifications.js.map +1 -1
- package/dist/phase-deterministic-output.d.ts +4 -0
- package/dist/phase-deterministic-output.js +62 -0
- package/dist/phase-deterministic-output.js.map +1 -0
- package/dist/phase-executor.js +4 -3
- package/dist/phase-executor.js.map +1 -1
- package/dist/phase-playbooks.js +2 -0
- package/dist/phase-playbooks.js.map +1 -1
- package/dist/provider-utils.js +11 -1
- package/dist/provider-utils.js.map +1 -1
- package/dist/qa-coverage-evidence.d.ts +3 -0
- package/dist/qa-coverage-evidence.js +92 -0
- package/dist/qa-coverage-evidence.js.map +1 -0
- package/dist/qa-coverage-guidance.d.ts +6 -0
- package/dist/qa-coverage-guidance.js +141 -0
- package/dist/qa-coverage-guidance.js.map +1 -0
- package/dist/qa-coverage-rules.d.ts +7 -0
- package/dist/qa-coverage-rules.js +127 -0
- package/dist/qa-coverage-rules.js.map +1 -0
- package/dist/qa-coverage-types.d.ts +47 -0
- package/dist/qa-coverage-types.js +2 -0
- package/dist/qa-coverage-types.js.map +1 -0
- package/dist/qa-coverage.d.ts +2 -20
- package/dist/qa-coverage.js +42 -132
- package/dist/qa-coverage.js.map +1 -1
- package/dist/recoverable-failure-lessons.d.ts +2 -0
- package/dist/recoverable-failure-lessons.js +55 -0
- package/dist/recoverable-failure-lessons.js.map +1 -0
- package/dist/release-readiness.js +3 -1
- package/dist/release-readiness.js.map +1 -1
- package/dist/roles/qa-ux-roles.js +5 -0
- package/dist/roles/qa-ux-roles.js.map +1 -1
- package/dist/runtime-adapters.js +1 -1
- package/dist/runtime-adapters.js.map +1 -1
- package/dist/runtime-bootstrap.js +23 -2
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/runtime-commands.js +4 -0
- package/dist/runtime-commands.js.map +1 -1
- package/dist/runtime-completion-validation.d.ts +16 -0
- package/dist/runtime-completion-validation.js +206 -0
- package/dist/runtime-completion-validation.js.map +1 -0
- package/dist/runtime-execution.js +32 -3
- package/dist/runtime-execution.js.map +1 -1
- package/dist/runtime-lifecycle-watch-adapters.d.ts +4 -0
- package/dist/runtime-lifecycle-watch-adapters.js +87 -0
- package/dist/runtime-lifecycle-watch-adapters.js.map +1 -0
- package/dist/runtime-lifecycle-watch.d.ts +3 -11
- package/dist/runtime-lifecycle-watch.js +47 -120
- package/dist/runtime-lifecycle-watch.js.map +1 -1
- package/dist/runtime-parent-action-dispatch.d.ts +31 -0
- package/dist/runtime-parent-action-dispatch.js +196 -0
- package/dist/runtime-parent-action-dispatch.js.map +1 -0
- package/dist/runtime-parent-action-eligibility.d.ts +12 -0
- package/dist/runtime-parent-action-eligibility.js +131 -0
- package/dist/runtime-parent-action-eligibility.js.map +1 -0
- package/dist/runtime-parent-actions.js +22 -9
- package/dist/runtime-parent-actions.js.map +1 -1
- package/dist/runtime-spawn-bridge.js +6 -0
- package/dist/runtime-spawn-bridge.js.map +1 -1
- package/dist/skills-catalog.js +2 -0
- package/dist/skills-catalog.js.map +1 -1
- package/dist/skills-validation.js +1 -2
- package/dist/skills-validation.js.map +1 -1
- package/dist/sonar-commands.d.ts +1 -0
- package/dist/sonar-commands.js +36 -0
- package/dist/sonar-commands.js.map +1 -1
- package/dist/sonar-insights.d.ts +12 -0
- package/dist/sonar-insights.js +30 -55
- package/dist/sonar-insights.js.map +1 -1
- package/dist/sonar-payload-normalizers.d.ts +16 -0
- package/dist/sonar-payload-normalizers.js +67 -0
- package/dist/sonar-payload-normalizers.js.map +1 -0
- package/dist/sonar-preflight.d.ts +26 -0
- package/dist/sonar-preflight.js +111 -0
- package/dist/sonar-preflight.js.map +1 -0
- package/dist/sonar-redaction.d.ts +1 -0
- package/dist/sonar-redaction.js +13 -0
- package/dist/sonar-redaction.js.map +1 -0
- package/dist/subagent-protocol.js.map +1 -1
- package/dist/task-graph-commands.js +11 -1
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/telemetry-redaction.js +31 -2
- package/dist/telemetry-redaction.js.map +1 -1
- package/dist/types/runtime.d.ts +55 -0
- package/dist/types/tasks.d.ts +3 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.js.map +1 -1
- package/dist/web-artifacts.js +8 -3
- package/dist/web-artifacts.js.map +1 -1
- package/dist/web-console/assets/index-DA8Fs4r7.js +11 -0
- package/dist/web-console/index.html +1 -1
- package/dist/workflow-background-subagents.js +8 -4
- package/dist/workflow-background-subagents.js.map +1 -1
- package/dist/workflow-evidence-service.js +2 -0
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.js +6 -0
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-handoff-contract.js +1 -1
- package/dist/workflow-handoff-contract.js.map +1 -1
- package/dist/workflow-phase-transition.js +2 -2
- package/dist/workflow-phase-transition.js.map +1 -1
- package/dist/workflow-run-commands.js +119 -9
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.js +5 -1
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.js +3 -0
- package/dist/workflow-task-service.js.map +1 -1
- package/dist/workspace.js +2 -1
- package/dist/workspace.js.map +1 -1
- package/docs/adoption-guide.md +12 -0
- package/docs/autonomous-workflow.md +10 -2
- package/docs/claude-adapter-qa-matrix.md +68 -0
- package/docs/e2e-test-batteries.md +3 -3
- package/docs/orchestra-mvp.md +13 -0
- package/docs/release-test-matrix.md +22 -0
- package/docs/runtime-adapters.md +106 -16
- package/docs/sonar-quality-gates.md +107 -0
- package/docs/traceability-flow.md +14 -4
- package/package.json +3 -2
- package/rules/delivery-quality-gates.mdc +2 -0
- package/dist/web-console/assets/index-DXbrxR_d.js +0 -11
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,KAAK,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,kCAAkC,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,SAAS,EACT,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAY/D,MAAM,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,KAAK,GAAG,KAAK,EACb,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,KAAK,EAChB,mBAAmB,EACnB,cAAc,MAQZ,EAAE;IACJ,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC;QACtD,IAAI;QACJ,QAAQ;QACR,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,OAAO;QACL,IAAI;QACJ,YAAY,EAAE,YAAY;QAC1B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACvC,KAAK;QACL,UAAU;QACV,cAAc,EAAE,MAAM,MAAM,CAAC,YAAY,CAAC;QAC1C,iBAAiB,EAAE,MAAM,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC;QACxE,kBAAkB;QAClB,uBAAuB,EAAE,cAAc;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,KAAK,GAAG,KAAK,EACb,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK,EACtB,mBAAmB,EACnB,cAAc,MASZ,EAAE;IACJ,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,oLAAoL,CACpM,CAAC;IACJ,CAAC;IACD,MAAM,oBAAoB,GAAG,CAAC,cAAc,IAAI,UAAU,CAAC;IAC3D,MAAM,YAAY,GAChB,cAAc,IAAI,UAAU;QAC1B,CAAC,CAAC,MAAM,2BAA2B,CAAC;YAChC,IAAI;YACJ,SAAS,EAAE,oBAAoB;SAChC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B;QACE,GAAG,aAAa;QAChB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACvC,uBAAuB,EAAE,cAAc;KACxC,EACD,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAC5B,YAAY,EACZ,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAC5B,EAAE,EACF,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAC5B,EAAE,EACF,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,EAAE,EACF,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EACpC,2BAA2B,EAAE,EAC7B,oBAAoB,CACrB,CAAC;IACF,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,EACnC,EAAE,EACF,oBAAoB,CACrB,CAAC;IACF,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;QACrC,CAAC,CAAC,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,QAAQ;QAC/B,CAAC,CAAC,MAAM,iCAAiC,CAAC;YACtC,IAAI;YACJ,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;QACJ,CAAC,CAAC,MAAM,yBAAyB,CAC7B,IAAI,EACJ,MAAM,kCAAkC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAClE,EAAE,KAAK,EAAE,CACV,CAAC;IACN,MAAM,iBAAiB,GAAG,QAAQ;QAChC,CAAC,CAAC,MAAM,sBAAsB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,WAAW,CAAC,IAAI,EAAE;QACtB,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,QAAQ;YACf,CAAC,CAAC,+CAA+C;YACjD,CAAC,CAAC,sCAAsC;QAC1C,SAAS,EAAE;YACT,YAAY;YACZ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAC1C,GAAG,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC;YACnC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YACrC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;YACpC,GAAG,cAAc;SAClB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACvC,cAAc;YACd,cAAc;YACd,gBAAgB;YAChB,iBAAiB,EAAE;gBACjB,UAAU;gBACV,SAAS,EAAE,cAAc,IAAI,CAAC,UAAU;gBACxC,OAAO,EAAE,YAAY;aACtB;YACD,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,uBAAuB,EAAE,cAAc;SACxC;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,KAAc,EACd,eAAwB;IAExB,IAAI,eAAe,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,KAAa,EACb,eAAwB;IAExB,IAAI,eAAe,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,cAAuC,EACvC,cAAuB;IAEvB,IAAI,cAAc,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,iBAAiB,EAAE,CAC1G,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,WAAW,KAAK,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,6CAA6C,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,iBAAiB,EAAE,CACtH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,4CAA4C,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,qBAAqB,CACjC,MAAM,QAAQ,CAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CACzD,CAAC;IACF,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,GAAG,IAAI;QACP,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM;KAChE,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,KAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,GAAG,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/docs/adoption-guide.md
CHANGED
|
@@ -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 --
|
|
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 --
|
|
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,
|
|
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.
|
|
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.
|
package/docs/orchestra-mvp.md
CHANGED
|
@@ -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.
|
package/docs/runtime-adapters.md
CHANGED
|
@@ -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
|
|
32
|
-
|
|
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
|
|
196
|
-
|
|
197
|
-
handoff artifacts appear, resumes
|
|
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,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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
|
|
214
|
-
parent Claude session with the native Agent/Subagent tool.
|
|
215
|
-
|
|
216
|
-
legacy alias
|
|
217
|
-
`
|
|
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,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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.
|
|
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.
|