@jterrats/open-orchestra 1.0.1 → 1.0.3

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 (172) hide show
  1. package/AGENTS.md +7 -2
  2. package/CLAUDE.md +2 -2
  3. package/README.md +3 -0
  4. package/dist/args.js +12 -2
  5. package/dist/args.js.map +1 -1
  6. package/dist/assets/web-console.js +44 -0
  7. package/dist/autonomous-phase-lifecycle.js +23 -3
  8. package/dist/autonomous-phase-lifecycle.js.map +1 -1
  9. package/dist/autonomous-run-state.js +2 -0
  10. package/dist/autonomous-run-state.js.map +1 -1
  11. package/dist/benchmark.js +6 -0
  12. package/dist/benchmark.js.map +1 -1
  13. package/dist/cli.js +4 -1
  14. package/dist/cli.js.map +1 -1
  15. package/dist/command-manifest.js +4 -3
  16. package/dist/command-manifest.js.map +1 -1
  17. package/dist/command-utils.js +4 -5
  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/memory.js +18 -8
  25. package/dist/memory.js.map +1 -1
  26. package/dist/metrics-commands.js +8 -0
  27. package/dist/metrics-commands.js.map +1 -1
  28. package/dist/model-commands.js +6 -2
  29. package/dist/model-commands.js.map +1 -1
  30. package/dist/phase-executor.js +3 -0
  31. package/dist/phase-executor.js.map +1 -1
  32. package/dist/prompt-registry-update.js +20 -0
  33. package/dist/prompt-registry-update.js.map +1 -1
  34. package/dist/qa-coverage.js +15 -6
  35. package/dist/qa-coverage.js.map +1 -1
  36. package/dist/release-commands.js +42 -5
  37. package/dist/release-commands.js.map +1 -1
  38. package/dist/release-readiness.d.ts +3 -1
  39. package/dist/release-readiness.js +33 -6
  40. package/dist/release-readiness.js.map +1 -1
  41. package/dist/roles/core-roles.js +10 -5
  42. package/dist/roles/core-roles.js.map +1 -1
  43. package/dist/skills-catalog.js +130 -0
  44. package/dist/skills-catalog.js.map +1 -1
  45. package/dist/skills-commands.d.ts +1 -0
  46. package/dist/skills-commands.js +37 -1
  47. package/dist/skills-commands.js.map +1 -1
  48. package/dist/skills-planning.d.ts +2 -1
  49. package/dist/skills-planning.js +79 -11
  50. package/dist/skills-planning.js.map +1 -1
  51. package/dist/skills.d.ts +1 -1
  52. package/dist/skills.js +1 -1
  53. package/dist/skills.js.map +1 -1
  54. package/dist/task-graph-commands.js +36 -8
  55. package/dist/task-graph-commands.js.map +1 -1
  56. package/dist/types/metrics.d.ts +2 -0
  57. package/dist/types/model-config.d.ts +4 -0
  58. package/dist/types/skills.d.ts +9 -0
  59. package/dist/types/tasks.d.ts +8 -1
  60. package/dist/types.d.ts +2 -2
  61. package/dist/types.js.map +1 -1
  62. package/dist/web-api.js +80 -7
  63. package/dist/web-api.js.map +1 -1
  64. package/dist/web-console/assets/{index-C9lx-V42.css → index-jxCY5eEc.css} +1 -1
  65. package/dist/web-console/index.html +2 -2
  66. package/dist/workflow-approval-service.js +13 -0
  67. package/dist/workflow-approval-service.js.map +1 -1
  68. package/dist/workflow-evidence-service.js +37 -2
  69. package/dist/workflow-evidence-service.js.map +1 -1
  70. package/dist/workflow-gates.d.ts +1 -0
  71. package/dist/workflow-gates.js +220 -1
  72. package/dist/workflow-gates.js.map +1 -1
  73. package/dist/workflow-phase-planner.js +51 -9
  74. package/dist/workflow-phase-planner.js.map +1 -1
  75. package/dist/workflow-run-commands.d.ts +1 -0
  76. package/dist/workflow-run-commands.js +11 -6
  77. package/dist/workflow-run-commands.js.map +1 -1
  78. package/dist/workflow-services.js +26 -0
  79. package/dist/workflow-services.js.map +1 -1
  80. package/dist/workflow-task-service.js +27 -2
  81. package/dist/workflow-task-service.js.map +1 -1
  82. package/docs/adoption-guide.md +22 -1
  83. package/docs/advisory-supervisor-architecture.md +206 -0
  84. package/docs/architecture.md +47 -41
  85. package/docs/autonomous-workflow.md +2 -2
  86. package/docs/backlog/ac-evidence-bugfix-stories-20260517.md +76 -0
  87. package/docs/backlog/dev-best-practices-hardening-story.md +69 -0
  88. package/docs/backlog/docs-public-internal-package-hygiene-story.md +62 -0
  89. package/docs/backlog/prompt-bank-registry-epic.md +159 -0
  90. package/docs/backlog/site-docs-manifest-story.md +56 -0
  91. package/docs/dev-team-specialist-role-profiles.md +1 -1
  92. package/docs/diagrams/diagram-master-prompt.md +207 -0
  93. package/docs/diagrams/enterprise-set/README.md +22 -0
  94. package/docs/diagrams/enterprise-set/lead-to-account-swimlanes.svg +38 -0
  95. package/docs/diagrams/enterprise-set/product-implementation-timeline.svg +45 -0
  96. package/docs/diagrams/enterprise-set/salesforce-enterprise-architecture.svg +54 -0
  97. package/docs/diagrams/experiments/pixel-v2-review.md +124 -0
  98. package/docs/diagrams/experiments/roadmap/diagram.mmd +14 -0
  99. package/docs/diagrams/experiments/roadmap/diagram.svg +48 -0
  100. package/docs/diagrams/experiments/roadmap/experiment.md +44 -0
  101. package/docs/diagrams/experiments/sfdc-implementation/diagram.mmd +54 -0
  102. package/docs/diagrams/experiments/sfdc-implementation/diagram.svg +72 -0
  103. package/docs/diagrams/experiments/sfdc-implementation/experiment.md +41 -0
  104. package/docs/diagrams/experiments/swimlane/diagram.mmd +40 -0
  105. package/docs/diagrams/experiments/swimlane/diagram.svg +70 -0
  106. package/docs/diagrams/experiments/swimlane/experiment.md +50 -0
  107. package/docs/diagrams/experiments/timeline/diagram.mmd +9 -0
  108. package/docs/diagrams/experiments/timeline/diagram.svg +29 -0
  109. package/docs/diagrams/experiments/timeline/experiment.md +34 -0
  110. package/docs/diagrams/final-artifact-hygiene.md +40 -0
  111. package/docs/diagrams/mermaid-target-strategy.md +106 -0
  112. package/docs/diagrams/payment-gateway/architecture.md +57 -0
  113. package/docs/diagrams/payment-gateway/architecture.mmd +39 -0
  114. package/docs/diagrams/payment-gateway/architecture.svg +171 -0
  115. package/docs/diagrams/prompt-bank.md +48 -0
  116. package/docs/diagrams/salesforce-integration/architecture.md +56 -0
  117. package/docs/diagrams/salesforce-integration/architecture.mmd +26 -0
  118. package/docs/diagrams/salesforce-integration/architecture.svg +123 -0
  119. package/docs/diagrams/source-fidelity-review.md +116 -0
  120. package/docs/diagrams/state-uml-recreated.drawio +336 -0
  121. package/docs/diagrams/state-uml-recreated.prompt.md +114 -0
  122. package/docs/diagrams/state-uml-recreated.prompt.v10.md +52 -0
  123. package/docs/diagrams/state-uml-recreated.prompt.v11.md +52 -0
  124. package/docs/diagrams/state-uml-recreated.prompt.v12.md +50 -0
  125. package/docs/diagrams/state-uml-recreated.prompt.v14.md +91 -0
  126. package/docs/diagrams/state-uml-recreated.prompt.v2.md +31 -0
  127. package/docs/diagrams/state-uml-recreated.prompt.v3.md +36 -0
  128. package/docs/diagrams/state-uml-recreated.prompt.v4.md +35 -0
  129. package/docs/diagrams/state-uml-recreated.prompt.v5.md +35 -0
  130. package/docs/diagrams/state-uml-recreated.prompt.v6.md +39 -0
  131. package/docs/diagrams/state-uml-recreated.prompt.v7.md +37 -0
  132. package/docs/diagrams/state-uml-recreated.prompt.v8.md +41 -0
  133. package/docs/diagrams/state-uml-recreated.prompt.v9.md +32 -0
  134. package/docs/diagrams/state-uml-recreated.svg +159 -0
  135. package/docs/diagrams/v14-stress-test/README.md +33 -0
  136. package/docs/diagrams/v14-stress-test/stress-test.svg +114 -0
  137. package/docs/external-artifact-import-bridge.md +56 -0
  138. package/docs/{setup-agents-applicability-review.md → external-baseline-applicability-review.md} +37 -40
  139. package/docs/{setup-agents-dogfooding-findings.md → external-baseline-dogfooding-findings.md} +10 -9
  140. package/docs/multi-agent-orchestrator-backlog.md +1 -1
  141. package/docs/orchestra-mvp.md +19 -0
  142. package/docs/persona-workflows.md +42 -0
  143. package/docs/release-test-matrix.md +21 -9
  144. package/docs/reports/ac-evidence-backfill-20260517.md +256 -0
  145. package/docs/reports/ac-evolution-reconciliation-20260517.md +366 -0
  146. package/docs/reports/ac-failure-evidence-20260517.md +115 -0
  147. package/docs/reports/ac-history-dry-run-20260517.md +434 -0
  148. package/docs/runtime-llm-flow.md +8 -0
  149. package/docs/site-content-workflow.md +96 -0
  150. package/docs/site-manifest.json +143 -0
  151. package/docs/skill-loading-strategy.md +19 -7
  152. package/docs/story-mapping-adoption-review.md +99 -0
  153. package/docs/traceability-flow.md +11 -0
  154. package/docs/workspace-repo-strategy.md +63 -0
  155. package/package.json +3 -1
  156. package/rules/agent-collaboration.mdc +2 -0
  157. package/rules/code-review-engineering.mdc +2 -0
  158. package/rules/delivery-quality-gates.mdc +12 -0
  159. package/rules/development-engineering.mdc +5 -0
  160. package/rules/devops-tooling.mdc +1 -0
  161. package/rules/diagram-quality.mdc +35 -0
  162. package/rules/dry-clean-code.mdc +1 -0
  163. package/rules/module-boundaries.mdc +71 -0
  164. package/rules/performance-reliability.mdc +1 -0
  165. package/rules/testing-discipline.mdc +17 -1
  166. package/skills/collection-standards/SKILL.md +65 -0
  167. package/skills/collection-standards/manifest.json +69 -0
  168. package/skills/diagram-export/SKILL.md +30 -0
  169. package/skills/qa-evidence-pack/SKILL.md +110 -0
  170. package/skills/qa-evidence-pack/manifest.json +60 -0
  171. package/docs/setup-agents-bridge.md +0 -61
  172. /package/dist/web-console/assets/{index-M3S0g1GK.js → index-BNESIVvk.js} +0 -0
@@ -0,0 +1,114 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1280" height="760" viewBox="0 0 1280 760" role="img" aria-labelledby="title desc">
2
+ <title id="title">V14 diagram acceptance stress test</title>
3
+ <desc id="desc">Stress diagram for generic layout validation of bounded text, connector label lanes, parent containment, and boundary endpoints.</desc>
4
+ <defs>
5
+ <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto">
6
+ <path d="M0 0 L10 5 L0 10 z" fill="#475569"/>
7
+ </marker>
8
+ <style>
9
+ .font{font-family:Arial,Helvetica,sans-serif}
10
+ .title{font-size:26px;font-weight:700;fill:#172033}
11
+ .subtitle{font-size:13px;fill:#4b596c}
12
+ .containerA{fill:#f5f9ff;stroke:#91add7;stroke-width:1.5}
13
+ .containerB{fill:#f7fbf5;stroke:#91bd9b;stroke-width:1.5}
14
+ .containerC{fill:#fff8f1;stroke:#dfad72;stroke-width:1.5}
15
+ .card{fill:#fff;stroke:#64748b;stroke-width:1.5}
16
+ .label{font-size:13px;font-weight:700;fill:#526174;text-transform:uppercase}
17
+ .cardTitle{font-size:17px;font-weight:700;fill:#1f2a3d}
18
+ .small{font-size:12px;fill:#445267}
19
+ .badgeText{font-size:11px;font-weight:700;fill:#fff}
20
+ .pill{fill:#fff;stroke:#d8dee8;stroke-width:1}
21
+ .pillText{font-size:12px;fill:#263445}
22
+ .edge{fill:none;stroke:#475569;stroke-width:2;marker-end:url(#arrow)}
23
+ .edgeSoft{fill:none;stroke:#64748b;stroke-width:2;stroke-dasharray:7 5;marker-end:url(#arrow)}
24
+ .note{font-size:12px;fill:#506074}
25
+ </style>
26
+ </defs>
27
+ <rect width="1280" height="760" fill="#fff"/>
28
+ <g class="font">
29
+ <text class="title" x="48" y="54">V14 Diagram Acceptance Stress Test</text>
30
+ <text class="subtitle" x="48" y="78">Source-free visual check for generic diagram layout rules.</text>
31
+
32
+ <rect class="containerA" x="62" y="130" width="314" height="438" rx="18"/>
33
+ <text class="label" x="92" y="164">Input Boundary</text>
34
+
35
+ <rect class="card" x="104" y="218" width="228" height="122" rx="12"/>
36
+ <circle cx="136" cy="252" r="17" fill="#2563eb"/>
37
+ <text class="badgeText" x="136" y="256" text-anchor="middle">IN</text>
38
+ <text class="cardTitle" x="168" y="248">Inbound Request</text>
39
+ <rect class="pill" x="126" y="274" width="178" height="38" rx="6"/>
40
+ <text class="pillText" x="136" y="290">long bounded chip</text>
41
+ <text class="pillText" x="136" y="306">wrapped safely</text>
42
+ <text class="small" x="126" y="330">boundary connector target</text>
43
+
44
+ <rect class="card" x="104" y="408" width="228" height="116" rx="12"/>
45
+ <circle cx="136" cy="442" r="17" fill="#4f46e5"/>
46
+ <text class="badgeText" x="136" y="446" text-anchor="middle">ID</text>
47
+ <text class="cardTitle" x="168" y="438">Identity Context</text>
48
+ <text class="small" x="126" y="472">claims, policy hints</text>
49
+ <text class="small" x="126" y="492">and trace metadata</text>
50
+
51
+ <rect class="containerB" x="470" y="116" width="356" height="520" rx="18"/>
52
+ <text class="label" x="500" y="150">Processing Region</text>
53
+
54
+ <rect class="card" x="520" y="212" width="244" height="124" rx="12"/>
55
+ <circle cx="552" cy="246" r="17" fill="#059669"/>
56
+ <text class="badgeText" x="552" y="250" text-anchor="middle">OR</text>
57
+ <text class="cardTitle" x="584" y="242">Orchestrator</text>
58
+ <text class="small" x="548" y="276">normalizes requests</text>
59
+ <text class="small" x="548" y="296">routes by policy</text>
60
+
61
+ <rect class="card" x="520" y="430" width="244" height="130" rx="12"/>
62
+ <circle cx="552" cy="464" r="17" fill="#0ea5e9"/>
63
+ <text class="badgeText" x="552" y="468" text-anchor="middle">WRK</text>
64
+ <text class="cardTitle" x="584" y="460">Worker Service</text>
65
+ <rect class="pill" x="548" y="484" width="186" height="54" rx="6"/>
66
+ <text class="pillText" x="558" y="501">bounded internal label</text>
67
+ <text class="pillText" x="558" y="517">wraps before it can</text>
68
+ <text class="pillText" x="558" y="533">touch nearby routes</text>
69
+
70
+ <rect class="containerC" x="918" y="130" width="292" height="438" rx="18"/>
71
+ <text class="label" x="948" y="164">External Region</text>
72
+
73
+ <rect class="card" x="958" y="230" width="210" height="116" rx="12"/>
74
+ <circle cx="990" cy="264" r="17" fill="#dc2626"/>
75
+ <text class="badgeText" x="990" y="268" text-anchor="middle">EXT</text>
76
+ <text class="cardTitle" x="1022" y="260">External System</text>
77
+ <text class="small" x="980" y="294">contract endpoint</text>
78
+ <text class="small" x="980" y="314">bounded response</text>
79
+
80
+ <rect class="card" x="958" y="418" width="210" height="106" rx="12"/>
81
+ <circle cx="990" cy="452" r="17" fill="#d97706"/>
82
+ <text class="badgeText" x="990" y="456" text-anchor="middle">LOG</text>
83
+ <text class="cardTitle" x="1022" y="448">Telemetry Sink</text>
84
+ <text class="small" x="980" y="482">events, logs</text>
85
+ <text class="small" x="980" y="502">metrics</text>
86
+
87
+ <path class="edge" d="M376 278 H470"/>
88
+ <rect class="pill" x="394" y="248" width="126" height="20" rx="4"/>
89
+ <text class="pillText" x="402" y="262">boundary handoff</text>
90
+
91
+ <path class="edge" d="M332 466 H520"/>
92
+ <rect class="pill" x="360" y="438" width="106" height="20" rx="4"/>
93
+ <text class="pillText" x="368" y="452">context merge</text>
94
+
95
+ <path class="edge" d="M642 336 V430"/>
96
+ <rect class="pill" x="662" y="374" width="120" height="38" rx="4"/>
97
+ <text class="pillText" x="670" y="390">multi-line</text>
98
+ <text class="pillText" x="670" y="406">route label</text>
99
+
100
+ <path class="edge" d="M764 274 H918"/>
101
+ <rect class="pill" x="792" y="218" width="132" height="38" rx="4"/>
102
+ <text class="pillText" x="800" y="234">clear label lane</text>
103
+ <text class="pillText" x="800" y="250">above connector</text>
104
+
105
+ <path class="edgeSoft" d="M764 496 H958"/>
106
+ <rect class="pill" x="792" y="512" width="142" height="38" rx="4"/>
107
+ <text class="pillText" x="800" y="528">async evidence</text>
108
+ <text class="pillText" x="800" y="544">label below lane</text>
109
+
110
+ <rect class="pill" x="520" y="654" width="292" height="54" rx="8"/>
111
+ <text class="note" x="536" y="675">Long note wraps inside its own bounded shape</text>
112
+ <text class="note" x="536" y="693">and stays clear of connectors and containers.</text>
113
+ </g>
114
+ </svg>
@@ -0,0 +1,56 @@
1
+ # External Artifact Import Bridge
2
+
3
+ Open Orchestra can import optional external workflow artifacts without making the
4
+ runtime depend on product-specific setup flows.
5
+
6
+ ## Command Surface
7
+
8
+ This bridge should be exposed through a neutral import command before it becomes
9
+ part of public user documentation.
10
+
11
+ The expected machine-readable report includes imported, skipped, and conflicted
12
+ profiles, tasks, evidence references, and handoff references.
13
+
14
+ ## Supported Inputs
15
+
16
+ The importer reads compatible profile, task, evidence, and handoff records from
17
+ the configured source directory. Task records may use either sparse legacy fields
18
+ or enriched delivery fields.
19
+
20
+ Supported task fields include:
21
+
22
+ - `id`, `title`, `summary`
23
+ - `owner`, `ownerRole`, `role`, `profile`, `profileId`
24
+ - `backlogItem`, `backlog`
25
+ - `userStory`, `goal`, `scope`
26
+ - `acceptanceCriteria`
27
+ - `definitionOfReady`, `definitionOfDone`
28
+ - `dependencies`, `dependsOn`
29
+ - `risks`, `assumptions`, `paths`, `files`
30
+ - `testStrategy`
31
+ - `contractVersion`
32
+ - `acceptanceStatus`, `acceptedBy`
33
+ - `evidenceIds`, `evidence`
34
+ - `handoffIds`, `handoffs`
35
+
36
+ ## Mapping Rules
37
+
38
+ Profile role mappings are read from the external profile metadata when present.
39
+ External role IDs are normalized to Orchestra role IDs such as `qa`,
40
+ `developer`, `product_owner`, and `product_manager`. Unknown owner roles are
41
+ treated as conflicts during profile import and fall back to `developer` for
42
+ sparse task records.
43
+
44
+ Imported tasks preserve external metadata under an implementation-specific
45
+ external reference object. Evidence and handoff IDs are stored as references
46
+ there; the importer does not copy or mutate the original external artifacts.
47
+
48
+ ## Idempotency And Conflicts
49
+
50
+ Re-running the import does not duplicate tasks. If an existing task has the
51
+ same ID, title, and owner role, the task is reported as skipped. If the ID
52
+ matches but title or owner differs, the importer reports a conflict and leaves
53
+ the existing Orchestra task unchanged.
54
+
55
+ Each import records an import event with summary counts so the
56
+ story-to-evidence trail remains auditable.
@@ -1,25 +1,25 @@
1
- # setup-agents Applicability Review
1
+ # External Baseline Applicability Review
2
2
 
3
3
  Date: 2026-05-14
4
4
 
5
5
  ## Scope
6
6
 
7
- Review new `setup-agents` issues and local setup-agents standards to decide what
8
- should be adopted by Open Orchestra.
7
+ Review recent external baseline issues and local engineering standards to decide
8
+ what should be adopted by Open Orchestra.
9
9
 
10
10
  Sources reviewed:
11
11
 
12
12
  - Open Orchestra issue #317
13
- - setup-agents issues #198-#211, with emphasis on #211, #209, #208, #205, #204,
14
- #203, #202, #201, #200, #199, #198
15
- - Local setup-agents developer profile and generated Developer standards
16
- - Open Orchestra `setup-agents import` bridge and standards rules
13
+ - External baseline issues #198-#211, with emphasis on #211, #209, #208, #205,
14
+ #204, #203, #202, #201, #200, #199, #198
15
+ - Local developer profile and generated Developer standards from the external baseline
16
+ - Open Orchestra external artifact import bridge and standards rules
17
17
 
18
18
  ## Applies Directly
19
19
 
20
20
  ### Visual Post-Write Validation
21
21
 
22
- Source: setup-agents #211 and Open Orchestra #317.
22
+ Source: external baseline #211 and Open Orchestra #317.
23
23
 
24
24
  This applies directly. Open Orchestra is the orchestrator and should own the
25
25
  generic gate contract:
@@ -34,22 +34,21 @@ generic gate contract:
34
34
  The Lucid-specific assertions belong in adapters or skills, but the gate type,
35
35
  evidence attachment, and workflow blocking behavior belong in Open Orchestra.
36
36
 
37
- ### setup-agents Import Role Mapping
37
+ ### External Import Role Mapping
38
38
 
39
- Open Orchestra currently maps setup-agents `po` and `pm` aliases to `po` and
40
- `pm` in `src/setup-agents-import.ts`. Core Open Orchestra roles are
41
- `product_owner` and `product_manager`. Imported setup-agents tasks should map
42
- aliases to canonical role IDs.
39
+ Open Orchestra currently imports role aliases from external artifact payloads.
40
+ Core Open Orchestra roles are `product_owner` and `product_manager`. Imported
41
+ tasks should map aliases to canonical role IDs.
43
42
 
44
43
  This is a bug-sized Open Orchestra fix.
45
44
 
46
45
  ### Workflow Benchmark Feedback Into Estimates
47
46
 
48
- Source: setup-agents #205.
47
+ Source: external baseline #205.
49
48
 
50
49
  Open Orchestra already has estimates and benchmark concepts. Historical
51
- calibration belongs in Open Orchestra so every stack benefits, not only
52
- Salesforce. The useful contract is:
50
+ calibration belongs in Open Orchestra so every stack benefits. The useful
51
+ contract is:
53
52
 
54
53
  - estimates read completed run benchmark data when available
55
54
  - output includes historical median and variance
@@ -59,7 +58,7 @@ Salesforce. The useful contract is:
59
58
 
60
59
  ### Playbook Scaffolding And Playbook Authoring Docs
61
60
 
62
- Sources: setup-agents #204 and #201.
61
+ Sources: external baseline #204 and #201.
63
62
 
64
63
  Open Orchestra has phase playbooks and task-scoped workflow rendering. A
65
64
  scaffold command would reduce friction for teams adapting phases by stack
@@ -67,7 +66,7 @@ without reading source. This applies cross-stack.
67
66
 
68
67
  ### Gate vs Clarify Documentation
69
68
 
70
- Source: setup-agents #202.
69
+ Source: external baseline #202.
71
70
 
72
71
  Open Orchestra exposes gates, reviews, decisions, and clarification patterns.
73
72
  The distinction should be documented in Open Orchestra user docs and runtime
@@ -75,15 +74,15 @@ bootstrap copy because agents otherwise use phase gates for mid-phase questions.
75
74
 
76
75
  ### Workflow Phase Matrix / End-to-End Workflow Narrative
77
76
 
78
- Sources: setup-agents #200 and #199.
77
+ Sources: external baseline #200 and #199.
79
78
 
80
79
  Open Orchestra should document its PM -> PO -> Architect -> Developer -> QA ->
81
80
  Release sequence, gates, evidence, review checkpoints, and what is autonomous
82
- versus human-approved. This is product documentation, not setup-agents-specific.
81
+ versus human-approved. This is product documentation.
83
82
 
84
83
  ### Rules Health / Generated Guidance Freshness
85
84
 
86
- Source: setup-agents #203.
85
+ Source: external baseline #203.
87
86
 
88
87
  Open Orchestra already generates bootstrap and managed instruction blocks. A
89
88
  health surface that reports stale generated guidance, missing playbooks, and
@@ -91,11 +90,11 @@ workflow readiness would apply directly.
91
90
 
92
91
  ## Applies As A Pattern, Not Literally
93
92
 
94
- ### API 66 Salesforce Agent Metadata CI/CD
93
+ ### Specialized Metadata CI/CD
95
94
 
96
- Source: setup-agents #209.
95
+ Source: external baseline #209.
97
96
 
98
- The Salesforce metadata details do not belong in Open Orchestra core, but the
97
+ Product-specific metadata details do not belong in Open Orchestra core, but the
99
98
  pattern does:
100
99
 
101
100
  - deployment lanes are not always one generic deploy command
@@ -104,20 +103,19 @@ pattern does:
104
103
  - dependency prechecks should run before deploy
105
104
 
106
105
  Open Orchestra should represent this as stack-specific release lanes or release
107
- playbook checks, not as Salesforce API 66 logic.
106
+ playbook checks, not as product-specific deployment logic.
108
107
 
109
108
  ### Auto-Run Local Rule Generation After Init
110
109
 
111
- Source: setup-agents #208.
110
+ Source: external baseline #208.
112
111
 
113
- The exact `sf setup-agents init -> local` behavior is setup-agents-specific.
114
- For Open Orchestra, the applicable concept is first-run completeness: after
115
- `orchestra init`, users should exit with usable runtime instructions, workflow
116
- files, and a clear next command without a hidden second step.
112
+ The applicable concept is first-run completeness: after `orchestra init`, users
113
+ should exit with usable runtime instructions, workflow files, and a clear next
114
+ command without a hidden second step.
117
115
 
118
116
  ## Developer Standards To Generalize
119
117
 
120
- Several setup-agents Developer standards are Apex-specific, but the underlying
118
+ Several reviewed Developer standards are product-specific, but the underlying
121
119
  rules are stack-agnostic and should remain or be strengthened in Open Orchestra:
122
120
 
123
121
  - Read project metadata/config before generating code.
@@ -145,29 +143,28 @@ rules are stack-agnostic and should remain or be strengthened in Open Orchestra:
145
143
 
146
144
  These already overlap with current Open Orchestra rules. The main gap is making
147
145
  some of them more explicit for Java, .NET, TypeScript, and Python examples
148
- without carrying Apex names into stack-agnostic docs.
146
+ without carrying product-specific terminology into stack-agnostic docs.
149
147
 
150
148
  Adopted in Open Orchestra via `rules/development-engineering.mdc`, with examples
151
149
  for Java/Spring, .NET, TypeScript/Node, and Python.
152
150
 
153
151
  ## Does Not Apply To Core
154
152
 
155
- - Salesforce-specific API 66 commands such as `sf agent publish
156
- authoring-bundle`.
157
- - Salesforce-only metadata folders such as `genAiPlannerBundles/`.
158
- - LWC/SLDS/LDS-specific UI implementation rules.
159
- - Apex trigger handler naming, `with sharing`, SOQL/DML, PSG test setup, and
160
- Custom Labels as literal rules.
153
+ - Product-specific publish or activation commands.
154
+ - Product-specific generated metadata folders.
155
+ - Product-specific UI implementation rules.
156
+ - Product-specific server-side naming and permission idioms as literal rules.
161
157
 
162
- These belong in Salesforce/setup-agents profiles, not Open Orchestra core.
158
+ These belong in product-specific profiles, not Open Orchestra core.
163
159
 
164
160
  ## Recommended Open Orchestra Backlog
165
161
 
166
162
  1. Implement visual validation gate contract and evidence attachment.
167
- 2. Fix setup-agents import role aliases to canonical Open Orchestra roles.
163
+ 2. Fix external import role aliases to canonical Open Orchestra roles.
168
164
  3. Add benchmark-calibrated estimates.
169
165
  4. Add playbook scaffold command and authoring docs.
170
166
  5. Add Gate vs Clarify docs and workflow phase matrix.
171
167
  6. Add rules/playbook health to `orchestra health` or a dedicated status view.
172
168
  7. Add stack-agnostic Developer standards examples for Java, .NET, TypeScript,
173
169
  and Python.
170
+
@@ -1,7 +1,7 @@
1
- # Setup Agents Dogfooding Findings
1
+ # External Baseline Dogfooding Findings
2
2
 
3
- This file tracks issues found while using Open Orchestra to coordinate the
4
- `setup-agents` improvement backlog.
3
+ This file tracks issues found while using Open Orchestra to coordinate an
4
+ external improvement backlog.
5
5
 
6
6
  ## Finding 1: Concurrent `task add` commands can corrupt `tasks.json`
7
7
 
@@ -9,7 +9,7 @@ This file tracks issues found while using Open Orchestra to coordinate the
9
9
  - **Status:** fixed in Open Orchestra
10
10
 
11
11
  - **Date found:** 2026-05-06
12
- - **Source repo:** `/Users/polux/dev/setup-agents`
12
+ - **Source context:** external local repository
13
13
  - **Command pattern:** multiple `node_modules/.bin/orchestra task add ...` commands executed concurrently
14
14
  - **Observed behavior:** `.agent-workflow/tasks.json` ended up with trailing partial JSON and subsequent Orchestra commands failed with `Unexpected non-whitespace character after JSON`.
15
15
  - **Impact:** users or automation that parallelize CLI calls can corrupt workflow state.
@@ -24,7 +24,7 @@ This file tracks issues found while using Open Orchestra to coordinate the
24
24
  - **Status:** fixed in Open Orchestra
25
25
 
26
26
  - **Date found:** 2026-05-06
27
- - **Source repo:** `/Users/polux/dev/setup-agents`
27
+ - **Source context:** external local repository
28
28
  - **Command pattern:** `orchestra evidence add --type validation ...`
29
29
  - **Observed behavior:** the command failed with `type must be one of: command, file, screenshot, trace, video, log, report`.
30
30
  - **Impact:** users must know the closed evidence type list before calling the command.
@@ -39,7 +39,7 @@ This file tracks issues found while using Open Orchestra to coordinate the
39
39
  - **Status:** fixed in Open Orchestra
40
40
 
41
41
  - **Date found:** 2026-05-06
42
- - **Source repo:** `/Users/polux/dev/setup-agents`
42
+ - **Source context:** external local repository
43
43
  - **Command pattern:** `orchestra review --task SA-90 --role reviewer --result approve ...`
44
44
  - **Observed behavior:** the command failed with `unknown reviewer role: reviewer`.
45
45
  - **Impact:** the role catalog and README describe a Reviewer / Critic capability, but the review command does not accept the intuitive `reviewer` role id.
@@ -54,7 +54,7 @@ This file tracks issues found while using Open Orchestra to coordinate the
54
54
  - **Status:** fixed in Open Orchestra
55
55
 
56
56
  - **Date found:** 2026-05-06
57
- - **Source repo:** `/Users/polux/dev/setup-agents`
57
+ - **Source context:** external local repository
58
58
  - **Command pattern:** multiple `node_modules/.bin/orchestra lock claim ...` commands executed concurrently
59
59
  - **Observed behavior:** two distinct locks were created with the same id, `lock-1778052846730`, for different paths.
60
60
  - **Impact:** `lock release --id <id>` becomes ambiguous and can release the wrong lock or require manual state repair.
@@ -69,7 +69,7 @@ This file tracks issues found while using Open Orchestra to coordinate the
69
69
  - **Status:** fixed in Open Orchestra
70
70
 
71
71
  - **Date found:** 2026-05-06
72
- - **Source repo:** `/Users/polux/dev/setup-agents`
72
+ - **Source context:** external local repository
73
73
  - **Command pattern:** `node_modules/.bin/orchestra init --force`
74
74
  - **Observed behavior:** generated `AGENTS.md` and `ORCHESTRA.md` bootstrap blocks recommend commands such as `node bin/orchestra.js health --json` and `node bin/orchestra.js task list --json`.
75
75
  - **Impact:** those examples only work inside the Open Orchestra repository layout. When Open Orchestra is installed into another repository as a package or local file install, the consumer repo does not have `bin/orchestra.js`, so agents following the generated bootstrap will run the wrong command.
@@ -84,7 +84,7 @@ This file tracks issues found while using Open Orchestra to coordinate the
84
84
  - **Status:** fixed in Open Orchestra
85
85
 
86
86
  - **Date found:** 2026-05-06
87
- - **Source repo:** `/Users/polux/dev/open-orchestra`
87
+ - **Source context:** Open Orchestra repository
88
88
  - **Command pattern:** multiple `orchestra evidence add ...` commands executed concurrently
89
89
  - **Observed behavior:** two distinct `EVIDENCE_ADDED` events pointed to the same artifact file when they were created in the same millisecond.
90
90
  - **Impact:** the later evidence write overwrote the earlier evidence content, leaving one event pointing to mismatched artifact content.
@@ -99,3 +99,4 @@ This file tracks issues found while using Open Orchestra to coordinate the
99
99
  - JSON state files are written through temporary files and atomic rename to avoid partial JSON on interruption.
100
100
  - The lock mechanism is intended for local filesystems. Network filesystems or stale lock directories after a killed process may require manual cleanup if a command times out waiting for a lock.
101
101
  - State-mutating Orchestra commands should still prefer explicit task/path locks when multiple agents edit code, because file serialization protects workflow metadata, not source-code merge conflicts.
102
+
@@ -695,7 +695,7 @@ Acceptance criteria:
695
695
  - UI supports adding a lesson with required fields.
696
696
  - UI supports promoting lessons to a reviewable artifact.
697
697
 
698
- ## Epic 18: Setup Agents Feature Harvest
698
+ ## Epic 18: External Baseline Feature Harvest
699
699
 
700
700
  ### Story UPD-001: Detect Stale Generated Instruction Files
701
701
  As a maintainer, I want Open Orchestra to detect stale generated instruction files without touching user-authored files so that runtime adapters can be safely refreshed.
@@ -34,6 +34,14 @@ Generated register files:
34
34
 
35
35
  Existing register files are preserved unless `orchestra init --force` is used.
36
36
 
37
+ Generated runtime guidance uses managed instruction blocks instead of taking
38
+ ownership of complete files. If a project already has `AGENTS.md`, `CLAUDE.md`,
39
+ Cursor rules, or `ORCHESTRA.md`, Open Orchestra appends its marked block and
40
+ preserves user-authored content outside the block. Later refreshes update only
41
+ the matching Open Orchestra block. Manual edits inside a managed block are
42
+ reported as drift and are not overwritten unless `--force` is used; forced
43
+ updates still replace only that block.
44
+
37
45
  ## Skills and Context Loading
38
46
 
39
47
  Open Orchestra should treat skills as demand-loaded capabilities. Main files such as `AGENTS.md`, `CLAUDE.md`, Cursor rules, and `ORCHESTRA.md` should contain a compact index and activation rules, while detailed procedures live in skill files. See [skill-loading-strategy.md](skill-loading-strategy.md).
@@ -238,6 +246,17 @@ coverage remains available.
238
246
 
239
247
  Release go/no-go:
240
248
 
249
+ - Release tags are CI-owned for normal releases. Humans and local agents should
250
+ bump `package.json` and `package-lock.json`, commit, and push the release
251
+ candidate; they should not create or push the release tag locally unless a
252
+ documented break-glass release decision approves it.
253
+ - The `Create release tag` workflow resolves the tag from `package.json`, checks
254
+ that it matches `v<package version>`, runs the configured precommit gate, then
255
+ creates the annotated tag, creates the GitHub Release, and triggers npm
256
+ publish.
257
+ - If the intended tag already exists remotely, do not move or overwrite it.
258
+ Bump to the next patch/prerelease version or record an explicit rollback or
259
+ break-glass decision.
241
260
  - Run `npm run precommit` locally before pushing release changes.
242
261
  - Confirm `npm run security:audit` passes or attach an accepted security risk.
243
262
  - Confirm `orchestra release check --json` passes the package provenance gate,
@@ -228,6 +228,48 @@ Recovery:
228
228
  Related docs: [upgrade dogfooding](orchestra-mvp.md),
229
229
  [package naming](package-naming.md), and [release readiness](orchestra-mvp.md).
230
230
 
231
+ ## Technical Writer Review
232
+
233
+ Goal: keep public documentation, site copy, command examples, release notes, and
234
+ help content accurate for the intended audience.
235
+
236
+ Commands:
237
+
238
+ ```bash
239
+ orchestra workflow phase-plan --task STORY-001 --json
240
+ orchestra doc-sync audit --task STORY-001 --json
241
+ orchestra review --task STORY-001 --role technical_writer --result approve \
242
+ --findings "Docs, links, commands, and generated site content reviewed" \
243
+ --recommendation "Documentation ready for release"
244
+ ```
245
+
246
+ Expected artifacts:
247
+
248
+ - Technical Writer review in `.agent-workflow/reviews/`.
249
+ - Documentation diff or link evidence for updated docs, README, changelog,
250
+ release notes, runbooks, help content, or public site copy.
251
+ - Site QA evidence when generated site content, diagrams, visible copy, or
252
+ responsive layout changes.
253
+
254
+ Common blockers:
255
+
256
+ - Public site copy is hardcoded in React instead of generated from
257
+ `docs/site-manifest.json`.
258
+ - Command examples were not validated against the CLI, command manifest, or
259
+ build output.
260
+ - `docs/architecture.md` and `site/public/architecture.mmd` describe different
261
+ diagrams.
262
+
263
+ Recovery:
264
+
265
+ - Update the source markdown or manifest, then run `npm run site:content`.
266
+ - Run `npm run site:build` and capture screenshots for visible site changes.
267
+ - Use `orchestra doc-sync audit --task <id> --json` to find missing
268
+ documentation coverage.
269
+
270
+ Related docs: [public site content workflow](site-content-workflow.md),
271
+ [adoption guide](adoption-guide.md), and [release matrix](release-test-matrix.md).
272
+
231
273
  ## Docs Review Checklist
232
274
 
233
275
  Before release, verify:
@@ -17,6 +17,18 @@ execution summary as release test matrix evidence before running:
17
17
  orchestra release check --json
18
18
  ```
19
19
 
20
+ ## Tag And Publish Ownership
21
+
22
+ For normal releases, the release commit contains the version bump and CI owns
23
+ tag creation. Do not create or push release tags locally. Push the committed
24
+ version bump to `main`; the `Create release tag` workflow validates that the tag
25
+ equals `v<package.json version>`, creates the annotated tag, creates the GitHub
26
+ Release, and triggers `publish-npm.yml`.
27
+
28
+ If the remote tag already exists, do not move it. Use the next patch or
29
+ prerelease version unless an explicit break-glass release decision documents why
30
+ manual intervention is required.
31
+
20
32
  ## Required Environments
21
33
 
22
34
  - `ubuntu-latest` with Node `>=22` and npm.
@@ -25,15 +37,15 @@ orchestra release check --json
25
37
 
26
38
  ## Required Flows
27
39
 
28
- | Flow | Command | Evidence |
29
- | --- | --- | --- |
30
- | Source quality gate | `npm run precommit` | lint, typecheck, secret scan, security audit, build, unit tests, workflow validation |
31
- | Browser E2E | `npm run test:e2e` | Playwright regression coverage for browser workflows |
32
- | Installed package init | `npm run test:e2e:init` | npm package init, health, task, workflow, evidence, readiness smoke |
33
- | Public site build | `npm run site:build` | production site build |
34
- | Release readiness | `orchestra release check --json` | `releaseReadiness` and `gaReadiness` report |
35
- | Package contents | `npm pack --dry-run --json` | package file list and provenance check |
36
- | Performance budgets | `npm run performance:bench -- --json` | CLI and web API timings on a synthetic large workspace |
40
+ | Flow | Command | Evidence |
41
+ | ---------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42
+ | Source quality gate | `npm run precommit` | lint, typecheck, secret scan, security audit, build, unit tests, workflow validation |
43
+ | Browser E2E | `npm run test:e2e` | Playwright checks map scenario acceptance criteria to visible UI state, API persistence, artifact attachment, responsive layout, and recovery behavior |
44
+ | Installed package init | `npm run test:e2e:init` | Installed CLI checks map scenario acceptance criteria to stdout, stderr, exit code, filesystem state, JSON contracts, evidence records, and release-readiness outcomes |
45
+ | Public site build | `npm run site:build` | production site build |
46
+ | Release readiness | `orchestra release check --json` | `releaseReadiness` and `gaReadiness` report |
47
+ | Package contents | `npm pack --dry-run --json` | package file list and provenance check |
48
+ | Performance budgets | `npm run performance:bench -- --json` | CLI and web API timings on a synthetic large workspace |
37
49
 
38
50
  ## Network Policy
39
51