@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.
- package/AGENTS.md +7 -2
- package/CLAUDE.md +2 -2
- package/README.md +3 -0
- package/dist/args.js +12 -2
- package/dist/args.js.map +1 -1
- package/dist/assets/web-console.js +44 -0
- package/dist/autonomous-phase-lifecycle.js +23 -3
- package/dist/autonomous-phase-lifecycle.js.map +1 -1
- package/dist/autonomous-run-state.js +2 -0
- package/dist/autonomous-run-state.js.map +1 -1
- package/dist/benchmark.js +6 -0
- package/dist/benchmark.js.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.js +4 -3
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-utils.js +4 -5
- 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/memory.js +18 -8
- package/dist/memory.js.map +1 -1
- package/dist/metrics-commands.js +8 -0
- package/dist/metrics-commands.js.map +1 -1
- package/dist/model-commands.js +6 -2
- package/dist/model-commands.js.map +1 -1
- package/dist/phase-executor.js +3 -0
- package/dist/phase-executor.js.map +1 -1
- package/dist/prompt-registry-update.js +20 -0
- package/dist/prompt-registry-update.js.map +1 -1
- package/dist/qa-coverage.js +15 -6
- package/dist/qa-coverage.js.map +1 -1
- package/dist/release-commands.js +42 -5
- package/dist/release-commands.js.map +1 -1
- package/dist/release-readiness.d.ts +3 -1
- package/dist/release-readiness.js +33 -6
- package/dist/release-readiness.js.map +1 -1
- package/dist/roles/core-roles.js +10 -5
- package/dist/roles/core-roles.js.map +1 -1
- package/dist/skills-catalog.js +130 -0
- package/dist/skills-catalog.js.map +1 -1
- package/dist/skills-commands.d.ts +1 -0
- package/dist/skills-commands.js +37 -1
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-planning.d.ts +2 -1
- package/dist/skills-planning.js +79 -11
- package/dist/skills-planning.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/task-graph-commands.js +36 -8
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/types/metrics.d.ts +2 -0
- package/dist/types/model-config.d.ts +4 -0
- package/dist/types/skills.d.ts +9 -0
- package/dist/types/tasks.d.ts +8 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js.map +1 -1
- package/dist/web-api.js +80 -7
- package/dist/web-api.js.map +1 -1
- package/dist/web-console/assets/{index-C9lx-V42.css → index-jxCY5eEc.css} +1 -1
- package/dist/web-console/index.html +2 -2
- package/dist/workflow-approval-service.js +13 -0
- package/dist/workflow-approval-service.js.map +1 -1
- package/dist/workflow-evidence-service.js +37 -2
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.d.ts +1 -0
- package/dist/workflow-gates.js +220 -1
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-phase-planner.js +51 -9
- package/dist/workflow-phase-planner.js.map +1 -1
- package/dist/workflow-run-commands.d.ts +1 -0
- package/dist/workflow-run-commands.js +11 -6
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.js +26 -0
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.js +27 -2
- package/dist/workflow-task-service.js.map +1 -1
- package/docs/adoption-guide.md +22 -1
- package/docs/advisory-supervisor-architecture.md +206 -0
- package/docs/architecture.md +47 -41
- package/docs/autonomous-workflow.md +2 -2
- package/docs/backlog/ac-evidence-bugfix-stories-20260517.md +76 -0
- package/docs/backlog/dev-best-practices-hardening-story.md +69 -0
- package/docs/backlog/docs-public-internal-package-hygiene-story.md +62 -0
- package/docs/backlog/prompt-bank-registry-epic.md +159 -0
- package/docs/backlog/site-docs-manifest-story.md +56 -0
- package/docs/dev-team-specialist-role-profiles.md +1 -1
- package/docs/diagrams/diagram-master-prompt.md +207 -0
- package/docs/diagrams/enterprise-set/README.md +22 -0
- package/docs/diagrams/enterprise-set/lead-to-account-swimlanes.svg +38 -0
- package/docs/diagrams/enterprise-set/product-implementation-timeline.svg +45 -0
- package/docs/diagrams/enterprise-set/salesforce-enterprise-architecture.svg +54 -0
- package/docs/diagrams/experiments/pixel-v2-review.md +124 -0
- package/docs/diagrams/experiments/roadmap/diagram.mmd +14 -0
- package/docs/diagrams/experiments/roadmap/diagram.svg +48 -0
- package/docs/diagrams/experiments/roadmap/experiment.md +44 -0
- package/docs/diagrams/experiments/sfdc-implementation/diagram.mmd +54 -0
- package/docs/diagrams/experiments/sfdc-implementation/diagram.svg +72 -0
- package/docs/diagrams/experiments/sfdc-implementation/experiment.md +41 -0
- package/docs/diagrams/experiments/swimlane/diagram.mmd +40 -0
- package/docs/diagrams/experiments/swimlane/diagram.svg +70 -0
- package/docs/diagrams/experiments/swimlane/experiment.md +50 -0
- package/docs/diagrams/experiments/timeline/diagram.mmd +9 -0
- package/docs/diagrams/experiments/timeline/diagram.svg +29 -0
- package/docs/diagrams/experiments/timeline/experiment.md +34 -0
- package/docs/diagrams/final-artifact-hygiene.md +40 -0
- package/docs/diagrams/mermaid-target-strategy.md +106 -0
- package/docs/diagrams/payment-gateway/architecture.md +57 -0
- package/docs/diagrams/payment-gateway/architecture.mmd +39 -0
- package/docs/diagrams/payment-gateway/architecture.svg +171 -0
- package/docs/diagrams/prompt-bank.md +48 -0
- package/docs/diagrams/salesforce-integration/architecture.md +56 -0
- package/docs/diagrams/salesforce-integration/architecture.mmd +26 -0
- package/docs/diagrams/salesforce-integration/architecture.svg +123 -0
- package/docs/diagrams/source-fidelity-review.md +116 -0
- package/docs/diagrams/state-uml-recreated.drawio +336 -0
- package/docs/diagrams/state-uml-recreated.prompt.md +114 -0
- package/docs/diagrams/state-uml-recreated.prompt.v10.md +52 -0
- package/docs/diagrams/state-uml-recreated.prompt.v11.md +52 -0
- package/docs/diagrams/state-uml-recreated.prompt.v12.md +50 -0
- package/docs/diagrams/state-uml-recreated.prompt.v14.md +91 -0
- package/docs/diagrams/state-uml-recreated.prompt.v2.md +31 -0
- package/docs/diagrams/state-uml-recreated.prompt.v3.md +36 -0
- package/docs/diagrams/state-uml-recreated.prompt.v4.md +35 -0
- package/docs/diagrams/state-uml-recreated.prompt.v5.md +35 -0
- package/docs/diagrams/state-uml-recreated.prompt.v6.md +39 -0
- package/docs/diagrams/state-uml-recreated.prompt.v7.md +37 -0
- package/docs/diagrams/state-uml-recreated.prompt.v8.md +41 -0
- package/docs/diagrams/state-uml-recreated.prompt.v9.md +32 -0
- package/docs/diagrams/state-uml-recreated.svg +159 -0
- package/docs/diagrams/v14-stress-test/README.md +33 -0
- package/docs/diagrams/v14-stress-test/stress-test.svg +114 -0
- package/docs/external-artifact-import-bridge.md +56 -0
- package/docs/{setup-agents-applicability-review.md → external-baseline-applicability-review.md} +37 -40
- package/docs/{setup-agents-dogfooding-findings.md → external-baseline-dogfooding-findings.md} +10 -9
- package/docs/multi-agent-orchestrator-backlog.md +1 -1
- package/docs/orchestra-mvp.md +19 -0
- package/docs/persona-workflows.md +42 -0
- package/docs/release-test-matrix.md +21 -9
- package/docs/reports/ac-evidence-backfill-20260517.md +256 -0
- package/docs/reports/ac-evolution-reconciliation-20260517.md +366 -0
- package/docs/reports/ac-failure-evidence-20260517.md +115 -0
- package/docs/reports/ac-history-dry-run-20260517.md +434 -0
- package/docs/runtime-llm-flow.md +8 -0
- package/docs/site-content-workflow.md +96 -0
- package/docs/site-manifest.json +143 -0
- package/docs/skill-loading-strategy.md +19 -7
- package/docs/story-mapping-adoption-review.md +99 -0
- package/docs/traceability-flow.md +11 -0
- package/docs/workspace-repo-strategy.md +63 -0
- package/package.json +3 -1
- package/rules/agent-collaboration.mdc +2 -0
- package/rules/code-review-engineering.mdc +2 -0
- package/rules/delivery-quality-gates.mdc +12 -0
- package/rules/development-engineering.mdc +5 -0
- package/rules/devops-tooling.mdc +1 -0
- package/rules/diagram-quality.mdc +35 -0
- package/rules/dry-clean-code.mdc +1 -0
- package/rules/module-boundaries.mdc +71 -0
- package/rules/performance-reliability.mdc +1 -0
- package/rules/testing-discipline.mdc +17 -1
- package/skills/collection-standards/SKILL.md +65 -0
- package/skills/collection-standards/manifest.json +69 -0
- package/skills/diagram-export/SKILL.md +30 -0
- package/skills/qa-evidence-pack/SKILL.md +110 -0
- package/skills/qa-evidence-pack/manifest.json +60 -0
- package/docs/setup-agents-bridge.md +0 -61
- /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.
|
package/docs/{setup-agents-applicability-review.md → external-baseline-applicability-review.md}
RENAMED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
#
|
|
1
|
+
# External Baseline Applicability Review
|
|
2
2
|
|
|
3
3
|
Date: 2026-05-14
|
|
4
4
|
|
|
5
5
|
## Scope
|
|
6
6
|
|
|
7
|
-
Review
|
|
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
|
-
-
|
|
14
|
-
#203, #202, #201, #200, #199, #198
|
|
15
|
-
- Local
|
|
16
|
-
- Open Orchestra
|
|
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:
|
|
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
|
-
###
|
|
37
|
+
### External Import Role Mapping
|
|
38
38
|
|
|
39
|
-
Open Orchestra currently
|
|
40
|
-
|
|
41
|
-
|
|
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:
|
|
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
|
|
52
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
81
|
+
versus human-approved. This is product documentation.
|
|
83
82
|
|
|
84
83
|
### Rules Health / Generated Guidance Freshness
|
|
85
84
|
|
|
86
|
-
Source:
|
|
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
|
-
###
|
|
93
|
+
### Specialized Metadata CI/CD
|
|
95
94
|
|
|
96
|
-
Source:
|
|
95
|
+
Source: external baseline #209.
|
|
97
96
|
|
|
98
|
-
|
|
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
|
|
106
|
+
playbook checks, not as product-specific deployment logic.
|
|
108
107
|
|
|
109
108
|
### Auto-Run Local Rule Generation After Init
|
|
110
109
|
|
|
111
|
-
Source:
|
|
110
|
+
Source: external baseline #208.
|
|
112
111
|
|
|
113
|
-
The
|
|
114
|
-
|
|
115
|
-
|
|
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
|
|
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
|
|
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
|
-
-
|
|
156
|
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
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
|
|
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
|
|
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
|
+
|
package/docs/{setup-agents-dogfooding-findings.md → external-baseline-dogfooding-findings.md}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# External Baseline Dogfooding Findings
|
|
2
2
|
|
|
3
|
-
This file tracks issues found while using Open Orchestra to coordinate
|
|
4
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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.
|
package/docs/orchestra-mvp.md
CHANGED
|
@@ -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
|
|
29
|
-
|
|
|
30
|
-
| Source quality gate
|
|
31
|
-
| Browser E2E
|
|
32
|
-
| Installed package init | `npm run test:e2e:init`
|
|
33
|
-
| Public site build
|
|
34
|
-
| Release readiness
|
|
35
|
-
| Package contents
|
|
36
|
-
| Performance budgets
|
|
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
|
|