@jterrats/open-orchestra 1.0.2 → 1.0.4
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/metrics-commands.js +8 -0
- package/dist/metrics-commands.js.map +1 -1
- package/dist/phase-playbooks.js +27 -1
- package/dist/phase-playbooks.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 +136 -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/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/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.js +56 -1
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-phase-planner.js +86 -13
- 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 +24 -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/chaos-testing-stack-strategy.md +146 -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/project-persona-registry-epic.md +350 -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 +18 -7
- package/docs/story-mapping-adoption-review.md +99 -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 +3 -0
- package/rules/diagram-quality.mdc +35 -0
- package/rules/module-boundaries.mdc +71 -0
- package/rules/testing-discipline.mdc +13 -0
- package/skills/chaos-resilience-testing/SKILL.md +127 -0
- package/skills/chaos-resilience-testing/manifest.json +61 -0
- package/skills/collection-standards/SKILL.md +2 -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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Story: Classify docs and tighten package documentation contents
|
|
2
|
+
|
|
3
|
+
Backlog Item ID: DOCS-PUBLIC-INTERNAL-PACKAGE-HYGIENE
|
|
4
|
+
|
|
5
|
+
## User Story
|
|
6
|
+
|
|
7
|
+
As a release manager, I want documentation classified as public, internal,
|
|
8
|
+
backlog, experiment, or package-required so that the public site and npm package
|
|
9
|
+
ship only the documentation intended for users while internal planning artifacts
|
|
10
|
+
remain available in the repository.
|
|
11
|
+
|
|
12
|
+
## Background
|
|
13
|
+
|
|
14
|
+
The public site does not currently render all files under `docs/`; it links to a
|
|
15
|
+
small subset and serves its own `site/public/architecture.mmd`. The npm package,
|
|
16
|
+
however, includes the full `docs/` tree through `package.json.files`. As
|
|
17
|
+
backlog, prompt-bank experiments, diagram experiments, and internal dogfooding
|
|
18
|
+
notes grow, package contents can become noisy.
|
|
19
|
+
|
|
20
|
+
Before final release, Open Orchestra should define which docs are:
|
|
21
|
+
|
|
22
|
+
- public user documentation;
|
|
23
|
+
- public package documentation;
|
|
24
|
+
- internal product/backlog material;
|
|
25
|
+
- experiment/provenance artifacts;
|
|
26
|
+
- site-only assets.
|
|
27
|
+
|
|
28
|
+
## Acceptance Criteria
|
|
29
|
+
|
|
30
|
+
- Inventory all files under `docs/` and classify each as public, internal,
|
|
31
|
+
backlog, experiment, diagram artifact, or package-required.
|
|
32
|
+
- Identify which docs are linked from README.
|
|
33
|
+
- Identify which docs are linked from the public site.
|
|
34
|
+
- Identify which docs are required by runtime/package behavior.
|
|
35
|
+
- Decide whether `package.json.files` should include all docs or a narrower
|
|
36
|
+
allowlist.
|
|
37
|
+
- If narrowing package contents, update `package.json.files` and validate with
|
|
38
|
+
`npm pack --dry-run`.
|
|
39
|
+
- Preserve repository traceability for internal/backlog/experiment docs even if
|
|
40
|
+
they are excluded from npm.
|
|
41
|
+
- Document the classification policy so future docs land in the right location.
|
|
42
|
+
|
|
43
|
+
## Non-Goals
|
|
44
|
+
|
|
45
|
+
- Redesigning the public site.
|
|
46
|
+
- Deleting historical evidence or backlog without an explicit archive decision.
|
|
47
|
+
- Moving docs into a SaaS registry.
|
|
48
|
+
|
|
49
|
+
## Suggested Implementation
|
|
50
|
+
|
|
51
|
+
- Add a docs classification manifest or policy document.
|
|
52
|
+
- Optionally reorganize directories only when links can be updated safely.
|
|
53
|
+
- Update `package.json.files` if package hygiene requires it.
|
|
54
|
+
- Run `npm pack --dry-run` and verify expected docs are included/excluded.
|
|
55
|
+
|
|
56
|
+
## T-Shirt Size
|
|
57
|
+
|
|
58
|
+
S
|
|
59
|
+
|
|
60
|
+
## Suggested Owners
|
|
61
|
+
|
|
62
|
+
Technical Writer, Release Manager, Product Owner.
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# Epic: Project persona registry and generated domain personas
|
|
2
|
+
|
|
3
|
+
Backlog Item ID: PERSONA-REGISTRY-EPIC-20260517
|
|
4
|
+
|
|
5
|
+
## Epic Story
|
|
6
|
+
|
|
7
|
+
As a project owner, I want Open Orchestra to register, govern, and activate
|
|
8
|
+
project-specific personas through APIs and UI instead of manual markdown edits,
|
|
9
|
+
so that each project can orchestrate the right domain experts, reviewers, and
|
|
10
|
+
delivery roles for its own context.
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
|
|
14
|
+
Open Orchestra ships with software delivery roles, but real projects may need
|
|
15
|
+
domain personas that do not fit a fixed role catalog. A music production project
|
|
16
|
+
may need producers, mastering QA, and rights reviewers. A neural network project
|
|
17
|
+
may need ML researchers, MLOps, data stewards, and AI safety reviewers. A medical
|
|
18
|
+
project may need clinical SMEs, medical reviewers, privacy, compliance, and
|
|
19
|
+
regulatory reviewers.
|
|
20
|
+
|
|
21
|
+
Those personas should not require users to open or edit markdown files manually.
|
|
22
|
+
They also should not be blindly activated because a generated profile sounds
|
|
23
|
+
plausible. Projects need a registry, generation workflow, governance model, and
|
|
24
|
+
runtime activation rules.
|
|
25
|
+
|
|
26
|
+
## MVP Outcome
|
|
27
|
+
|
|
28
|
+
- Local persona registry stored in project workflow state and exportable to
|
|
29
|
+
version-controlled artifacts.
|
|
30
|
+
- CLI/API operations to list, show, create, update, generate, approve,
|
|
31
|
+
deactivate, export, and import personas.
|
|
32
|
+
- Generated personas start as drafts and require human approval before runtime
|
|
33
|
+
activation.
|
|
34
|
+
- Runtime activation uses task signals, phase, required roles, risk level, and
|
|
35
|
+
persona triggers.
|
|
36
|
+
- Regulated or high-risk personas can advise and review, but cannot approve
|
|
37
|
+
regulated outcomes unless a human approver is configured.
|
|
38
|
+
- Web console can manage project personas without editing markdown files.
|
|
39
|
+
- Offline-first operation works from packaged baselines and local project
|
|
40
|
+
context; internet or SaaS enrichment is optional.
|
|
41
|
+
|
|
42
|
+
## To-Be Outcome
|
|
43
|
+
|
|
44
|
+
- SaaS-backed persona registry with tenant isolation, versioning, approval
|
|
45
|
+
workflows, audit trails, quality scores, and reusable persona packs.
|
|
46
|
+
- Domain packs for software, music/audio, ML/AI, healthcare, data, security,
|
|
47
|
+
operations, education, legal/compliance, and other project types.
|
|
48
|
+
- Optional state-of-the-art refresh pipeline that proposes persona updates from
|
|
49
|
+
curated references, prompt bank entries, lessons learned, and approved domain
|
|
50
|
+
packs.
|
|
51
|
+
- Guarded supervisor can detect missing personas from project activity and
|
|
52
|
+
propose draft personas or capability changes.
|
|
53
|
+
- Runtime scheduler and budget policies constrain generation, enrichment, and
|
|
54
|
+
multi-agent activation.
|
|
55
|
+
- Chaos and resilience validation proves persona workflows degrade safely when
|
|
56
|
+
providers, registries, approvals, budgets, or context sources fail.
|
|
57
|
+
|
|
58
|
+
## Persona Model
|
|
59
|
+
|
|
60
|
+
Minimum fields:
|
|
61
|
+
|
|
62
|
+
- `id`
|
|
63
|
+
- `displayName`
|
|
64
|
+
- `roleFamily`
|
|
65
|
+
- `domain`
|
|
66
|
+
- `purpose`
|
|
67
|
+
- `responsibilities`
|
|
68
|
+
- `activationTriggers`
|
|
69
|
+
- `workflowPhases`
|
|
70
|
+
- `requiredCapabilities`
|
|
71
|
+
- `optionalCapabilities`
|
|
72
|
+
- `requiredSkills`
|
|
73
|
+
- `authorityLevel`: advisory, reviewer, approver, executor
|
|
74
|
+
- `approvalConstraints`
|
|
75
|
+
- `evidenceExpectations`
|
|
76
|
+
- `securityConstraints`
|
|
77
|
+
- `regulatoryScope`
|
|
78
|
+
- `riskLevel`
|
|
79
|
+
- `sourcePolicy`: packaged, project, generated, imported, external
|
|
80
|
+
- `version`
|
|
81
|
+
- `status`: draft, active, deprecated, rejected
|
|
82
|
+
- `createdBy`
|
|
83
|
+
- `approvedBy`
|
|
84
|
+
- `provenance`
|
|
85
|
+
|
|
86
|
+
## Proposed Child Stories
|
|
87
|
+
|
|
88
|
+
### Story 1: Local Persona Registry API
|
|
89
|
+
|
|
90
|
+
As a project owner, I want a typed local persona registry API so that personas
|
|
91
|
+
can be managed without editing markdown files manually.
|
|
92
|
+
|
|
93
|
+
Acceptance criteria:
|
|
94
|
+
|
|
95
|
+
- Provides CLI/API operations: list, show, create, update, deactivate, approve,
|
|
96
|
+
reject, export, and import.
|
|
97
|
+
- Persists project personas in workflow state with schema validation and
|
|
98
|
+
deterministic IDs.
|
|
99
|
+
- Supports versioning and immutable approval provenance.
|
|
100
|
+
- Prevents duplicate active personas with the same project ID and role family.
|
|
101
|
+
- Exports approved personas to a portable version-controlled artifact.
|
|
102
|
+
- Rejects malformed, oversized, conflicting, or partially imported persona data
|
|
103
|
+
without corrupting the registry.
|
|
104
|
+
- Includes unit tests for create, update, approval, deactivation, import/export,
|
|
105
|
+
invalid schema, and duplicate prevention.
|
|
106
|
+
|
|
107
|
+
Suggested size: M.
|
|
108
|
+
|
|
109
|
+
Suggested owners: Architect, Developer, QA.
|
|
110
|
+
|
|
111
|
+
### Story 2: Persona Generation Assistant
|
|
112
|
+
|
|
113
|
+
As a project owner, I want Open Orchestra to generate draft personas from project
|
|
114
|
+
needs and context so that I can define domain roles quickly without starting from
|
|
115
|
+
a blank file.
|
|
116
|
+
|
|
117
|
+
Acceptance criteria:
|
|
118
|
+
|
|
119
|
+
- Generates draft personas from a requested role, domain, task context,
|
|
120
|
+
workflow phase, existing roles, local standards, lessons learned, and approved
|
|
121
|
+
prompt bank entries.
|
|
122
|
+
- Uses offline packaged baselines first and optional external enrichment only
|
|
123
|
+
when enabled.
|
|
124
|
+
- Marks generated personas as draft and inactive by default.
|
|
125
|
+
- Records provenance: prompt id, context sources, model/provider when available,
|
|
126
|
+
generated timestamp, and reviewer requirements.
|
|
127
|
+
- Applies prompt-injection and secret redaction checks to context before
|
|
128
|
+
generation.
|
|
129
|
+
- Includes chaos/resilience tests for provider timeout, provider unavailable,
|
|
130
|
+
unsafe context, prompt registry unavailable, and budget exhaustion.
|
|
131
|
+
- Includes tests for draft status, provenance, source filtering, offline mode,
|
|
132
|
+
and blocked unsafe context.
|
|
133
|
+
|
|
134
|
+
Suggested size: L.
|
|
135
|
+
|
|
136
|
+
Suggested owners: Product Owner, Architect, Security, Developer, QA.
|
|
137
|
+
|
|
138
|
+
### Story 3: Domain Persona Packs
|
|
139
|
+
|
|
140
|
+
As a project owner, I want reusable domain persona packs so that non-software
|
|
141
|
+
projects can bootstrap relevant expert profiles.
|
|
142
|
+
|
|
143
|
+
Acceptance criteria:
|
|
144
|
+
|
|
145
|
+
- Defines packaged baseline packs for software delivery, music/audio, ML/AI,
|
|
146
|
+
healthcare, data/analytics, security, operations, and compliance.
|
|
147
|
+
- Packs are compact metadata, not long prompt bodies.
|
|
148
|
+
- Each pack declares default personas, capabilities, activation triggers,
|
|
149
|
+
evidence expectations, and risk constraints.
|
|
150
|
+
- Healthcare and other regulated packs mark expert personas as human-approval
|
|
151
|
+
required for regulated decisions.
|
|
152
|
+
- Includes tests for pack loading, filtering by domain, and high-risk activation
|
|
153
|
+
constraints.
|
|
154
|
+
|
|
155
|
+
Suggested size: M.
|
|
156
|
+
|
|
157
|
+
Suggested owners: Product Manager, Architect, Compliance/Privacy, QA.
|
|
158
|
+
|
|
159
|
+
### Story 4: Runtime Persona Activation
|
|
160
|
+
|
|
161
|
+
As a workflow runtime, I want to activate personas only when a task, phase, risk,
|
|
162
|
+
or required role needs them so that context stays bounded and relevant.
|
|
163
|
+
|
|
164
|
+
Acceptance criteria:
|
|
165
|
+
|
|
166
|
+
- Resolves active personas from task signals, required roles, optional roles,
|
|
167
|
+
phase, paths, domain, risk level, and explicit user request.
|
|
168
|
+
- Does not load every persona for every task.
|
|
169
|
+
- Returns activation rationale and skipped-persona rationale.
|
|
170
|
+
- Integrates with capability and skill resolution without duplicating
|
|
171
|
+
hardcoded role maps.
|
|
172
|
+
- Blocks unapproved, rejected, deprecated, or policy-ineligible personas.
|
|
173
|
+
- Includes chaos/resilience tests for corrupted registry state, missing
|
|
174
|
+
approvals, disabled persona packs, and provider-independent offline
|
|
175
|
+
activation.
|
|
176
|
+
- Includes tests for phase-scoped activation, domain triggers, no-match cases,
|
|
177
|
+
high-risk human approval, and capability resolution.
|
|
178
|
+
|
|
179
|
+
Suggested size: M.
|
|
180
|
+
|
|
181
|
+
Suggested owners: Architect, Developer, QA.
|
|
182
|
+
|
|
183
|
+
### Story 5: Persona Governance and Safety Gates
|
|
184
|
+
|
|
185
|
+
As a security and compliance reviewer, I want persona creation and activation to
|
|
186
|
+
respect authority boundaries so that generated personas cannot approve unsafe or
|
|
187
|
+
regulated outcomes.
|
|
188
|
+
|
|
189
|
+
Acceptance criteria:
|
|
190
|
+
|
|
191
|
+
- Requires human approval before any generated persona becomes active.
|
|
192
|
+
- Requires explicit human approver mapping for regulated authority levels.
|
|
193
|
+
- Prevents generated medical, legal, financial, privacy, or regulatory personas
|
|
194
|
+
from issuing final approval unless policy allows a configured human approver.
|
|
195
|
+
- Records audit events for generation, approval, rejection, activation, and
|
|
196
|
+
deactivation.
|
|
197
|
+
- Adds security review when personas touch secrets, PII, PHI, financial data,
|
|
198
|
+
regulated decisions, network calls, or external references.
|
|
199
|
+
- Includes chaos/resilience tests for approval race conditions, missing approver
|
|
200
|
+
mappings, policy engine failure, audit write failure, and denied regulated
|
|
201
|
+
authority escalation.
|
|
202
|
+
- Includes tests for approval policy, audit events, blocked activation, and
|
|
203
|
+
unsafe authority escalation.
|
|
204
|
+
|
|
205
|
+
Suggested size: M.
|
|
206
|
+
|
|
207
|
+
Suggested owners: Security, Compliance/Privacy, Architect, QA.
|
|
208
|
+
|
|
209
|
+
### Story 6: Web Console Persona Management
|
|
210
|
+
|
|
211
|
+
As a human user, I want to manage project personas in the web console so that I
|
|
212
|
+
can review and approve personas without editing local files.
|
|
213
|
+
|
|
214
|
+
Acceptance criteria:
|
|
215
|
+
|
|
216
|
+
- Adds a Personas management page or section with list, detail, create,
|
|
217
|
+
generate, edit draft, approve, reject, deactivate, export, and import flows.
|
|
218
|
+
- Shows persona status, authority level, domain, risk, triggers, capabilities,
|
|
219
|
+
evidence expectations, and approval state.
|
|
220
|
+
- Provides empty, loading, error, success, and recovery states.
|
|
221
|
+
- Uses tooltips for authority level, regulated scope, activation triggers, and
|
|
222
|
+
evidence expectations.
|
|
223
|
+
- Includes resilience coverage for API timeout, failed generation, rejected
|
|
224
|
+
approval, import validation failure, and stale registry data.
|
|
225
|
+
- Includes Playwright coverage for list, create draft, approve, reject, and
|
|
226
|
+
high-risk warning flows.
|
|
227
|
+
|
|
228
|
+
Suggested size: L.
|
|
229
|
+
|
|
230
|
+
Suggested owners: UX/UI Designer, Developer, QA, Technical Writer.
|
|
231
|
+
|
|
232
|
+
### Story 7: Persona Documentation and User Guide
|
|
233
|
+
|
|
234
|
+
As a user, I want clear persona registry documentation so that I understand how
|
|
235
|
+
to define domain experts, generated personas, and approval constraints.
|
|
236
|
+
|
|
237
|
+
Acceptance criteria:
|
|
238
|
+
|
|
239
|
+
- Documents CLI and API usage for persona registry operations.
|
|
240
|
+
- Explains packaged personas, generated drafts, approval, activation, and
|
|
241
|
+
regulated-domain limits.
|
|
242
|
+
- Includes examples for software, music/audio, ML/AI, and healthcare projects.
|
|
243
|
+
- Documents offline-first behavior and optional SaaS/external enrichment.
|
|
244
|
+
- Updates the public site docs if persona management becomes user-facing.
|
|
245
|
+
|
|
246
|
+
Suggested size: S.
|
|
247
|
+
|
|
248
|
+
Suggested owners: Technical Writer, Product Owner, QA.
|
|
249
|
+
|
|
250
|
+
## Epic Acceptance Criteria
|
|
251
|
+
|
|
252
|
+
- Persona registry avoids manual markdown editing for normal persona management.
|
|
253
|
+
- Persona generation produces draft, reviewable personas, not automatically
|
|
254
|
+
active authorities.
|
|
255
|
+
- Runtime activation is bounded by task need, phase, role, risk, and project
|
|
256
|
+
domain.
|
|
257
|
+
- Regulated domains require explicit human approval policies.
|
|
258
|
+
- Offline-first mode works without internet access.
|
|
259
|
+
- SaaS/external enrichment is optional and tenant-scoped when enabled.
|
|
260
|
+
- Child stories are independently estimable and testable.
|
|
261
|
+
- Chaos testing validates safe degradation for persona registry, runtime
|
|
262
|
+
activation, generation, governance, and web console flows.
|
|
263
|
+
|
|
264
|
+
## Non-Goals
|
|
265
|
+
|
|
266
|
+
- Replacing built-in delivery roles in the first release.
|
|
267
|
+
- Building a full SaaS registry in the MVP.
|
|
268
|
+
- Allowing generated personas to approve regulated clinical, legal, financial,
|
|
269
|
+
or compliance outcomes without a configured human approver.
|
|
270
|
+
- Making internet access mandatory for persona generation.
|
|
271
|
+
- Storing raw prompts or sensitive project context by default.
|
|
272
|
+
|
|
273
|
+
## Risks
|
|
274
|
+
|
|
275
|
+
- Generated personas may sound authoritative without enough domain validation.
|
|
276
|
+
- Prompt injection from lessons learned, issues, docs, or external references.
|
|
277
|
+
- Secret or sensitive data leakage during persona generation.
|
|
278
|
+
- Context bloat if runtime activation loads too many personas.
|
|
279
|
+
- Tenant and regulatory boundary violations in SaaS mode.
|
|
280
|
+
- Duplicate or conflicting personas if registry ownership is unclear.
|
|
281
|
+
- Workflow degradation if multiple agents generate or activate personas while
|
|
282
|
+
providers, approval stores, or prompt/context registries are unavailable.
|
|
283
|
+
|
|
284
|
+
## Chaos And Resilience Testing
|
|
285
|
+
|
|
286
|
+
Persona features should load the `chaos-resilience-testing` skill for controlled
|
|
287
|
+
failure scenarios where they affect runtime behavior or authority. The goal is
|
|
288
|
+
not random fault injection in the first MVP; it is deterministic chaos-style
|
|
289
|
+
validation that proves the product fails closed, preserves auditability, and
|
|
290
|
+
keeps offline operation usable.
|
|
291
|
+
|
|
292
|
+
Minimum scenarios:
|
|
293
|
+
|
|
294
|
+
- provider timeout or unavailable model during persona generation;
|
|
295
|
+
- prompt bank, lessons, or external enrichment source unavailable;
|
|
296
|
+
- malformed, oversized, or partially imported persona registry data;
|
|
297
|
+
- concurrent approval/update attempts for the same persona;
|
|
298
|
+
- missing human approver mapping for regulated authority;
|
|
299
|
+
- budget envelope exhausted before or during generation;
|
|
300
|
+
- policy engine denies activation or fails closed;
|
|
301
|
+
- audit/event write failure during approval or activation;
|
|
302
|
+
- web console API timeout or stale registry response;
|
|
303
|
+
- offline mode with no external network access.
|
|
304
|
+
|
|
305
|
+
Expected behavior:
|
|
306
|
+
|
|
307
|
+
- generated personas remain `draft` unless approval succeeds;
|
|
308
|
+
- regulated personas cannot approve final outcomes without configured human
|
|
309
|
+
authority;
|
|
310
|
+
- runtime activation skips unsafe personas and records the rationale;
|
|
311
|
+
- unavailable optional sources degrade with explicit evidence instead of
|
|
312
|
+
blocking local workflows;
|
|
313
|
+
- failures produce QA evidence that maps back to the story acceptance criteria.
|
|
314
|
+
|
|
315
|
+
## Suggested Epic Size
|
|
316
|
+
|
|
317
|
+
XL for full epic.
|
|
318
|
+
|
|
319
|
+
MVP slice: L.
|
|
320
|
+
|
|
321
|
+
Recommended first implementation order:
|
|
322
|
+
|
|
323
|
+
1. Dynamic UX phase routing for user-facing work
|
|
324
|
+
(`UX-DYNAMIC-PHASE-ROUTING-20260517`) before the persona web console story.
|
|
325
|
+
2. Local Persona Registry API.
|
|
326
|
+
3. Runtime Persona Activation.
|
|
327
|
+
4. Persona Governance and Safety Gates.
|
|
328
|
+
5. Persona Generation Assistant.
|
|
329
|
+
6. Web Console Persona Management.
|
|
330
|
+
7. Domain Persona Packs.
|
|
331
|
+
8. Documentation and user guide.
|
|
332
|
+
|
|
333
|
+
## Related Workflow Story
|
|
334
|
+
|
|
335
|
+
`UX-DYNAMIC-PHASE-ROUTING-20260517` should add dynamic UX routing for
|
|
336
|
+
user-facing tasks before persona management UI is implemented. The current
|
|
337
|
+
workflow can recommend `ux_review` after implementation, but it does not yet
|
|
338
|
+
support a pre-architecture `ux_design` phase or BA/PO validation of UX artifacts
|
|
339
|
+
before architecture.
|
|
340
|
+
|
|
341
|
+
Expected target sequence for user-facing work:
|
|
342
|
+
|
|
343
|
+
```txt
|
|
344
|
+
po/ba -> ux_design -> po_validation -> architect -> developer -> qa -> ux_review -> release
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
The first implementation may keep this advisory when a task or global
|
|
348
|
+
`workflow.phaseSequence` is manually configured, but the phase planner should
|
|
349
|
+
make the recommendation explicit and explain why UX must provide design inputs
|
|
350
|
+
before architecture for UI-heavy work.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Epic: Offline-first prompt bank registry and reference API
|
|
2
|
+
|
|
3
|
+
Backlog Item ID: PROMPT-BANK-REGISTRY-EPIC
|
|
4
|
+
|
|
5
|
+
## Epic Story
|
|
6
|
+
|
|
7
|
+
As a platform owner, I want Open Orchestra to maintain a versioned prompt bank
|
|
8
|
+
that works offline from the repository and can optionally sync categorized
|
|
9
|
+
references from an external bucket/API, so that agents can retrieve high-quality
|
|
10
|
+
prompt guidance on demand without bloating skills or requiring internet access
|
|
11
|
+
for core operation.
|
|
12
|
+
|
|
13
|
+
## Relationship
|
|
14
|
+
|
|
15
|
+
Parent/related epic: #333 Advisory supervisor for local findings and guarded
|
|
16
|
+
GitHub worker.
|
|
17
|
+
|
|
18
|
+
This epic complements the advisory/SaaS direction. The advisory supervisor can
|
|
19
|
+
produce findings that improve prompt bank entries, while the prompt bank
|
|
20
|
+
registry provides curated guidance that agents can retrieve safely during local
|
|
21
|
+
or SaaS-backed execution.
|
|
22
|
+
|
|
23
|
+
## Problem
|
|
24
|
+
|
|
25
|
+
Skills should stay compact and role-scoped. If every diagram, QA, security,
|
|
26
|
+
architecture, or workflow reference is embedded directly into skills, agent
|
|
27
|
+
context becomes expensive and hard to govern. If references live only in a SaaS
|
|
28
|
+
or bucket, local/offline operation breaks.
|
|
29
|
+
|
|
30
|
+
Open Orchestra needs a hybrid model:
|
|
31
|
+
|
|
32
|
+
- a small canonical prompt bank in the repo for offline execution;
|
|
33
|
+
- external categorized references for richer examples and reusable patterns;
|
|
34
|
+
- an API/retrieval layer that returns only the minimum relevant guidance;
|
|
35
|
+
- guardrails that prevent raw prompt injection, secrets, or source-specific
|
|
36
|
+
content from becoming reusable rules.
|
|
37
|
+
|
|
38
|
+
## MVP Outcome
|
|
39
|
+
|
|
40
|
+
- Local prompt bank manifest stored in the repo and packaged with the CLI.
|
|
41
|
+
- Prompt bank entries categorized by role, phase, skill, artifact type, runtime,
|
|
42
|
+
safety level, and offline eligibility.
|
|
43
|
+
- Retrieval command/API that resolves prompt entries by task intent, role, phase,
|
|
44
|
+
and runtime signals.
|
|
45
|
+
- Skills load compact baseline rules first and request prompt bank references
|
|
46
|
+
only when task context needs them.
|
|
47
|
+
- External bucket/API contract documented but optional.
|
|
48
|
+
- Offline mode uses local prompt bank only and degrades clearly when an external
|
|
49
|
+
reference is unavailable.
|
|
50
|
+
|
|
51
|
+
## To-Be Outcome
|
|
52
|
+
|
|
53
|
+
- SaaS-backed prompt registry with tenant/project categorization, quality
|
|
54
|
+
scoring, usage telemetry, approval workflows, and API-based retrieval.
|
|
55
|
+
- Bucket-backed prompt artifacts with signed manifests, checksums, versioning,
|
|
56
|
+
retention policy, and safe caching.
|
|
57
|
+
- Advisory supervisor can propose prompt bank improvements as classified
|
|
58
|
+
findings, but human approval is required before promotion.
|
|
59
|
+
- Registry supports cross-runtime references for Codex, Claude, Cursor, Copilot,
|
|
60
|
+
generic agents, and local model runners.
|
|
61
|
+
|
|
62
|
+
## Proposed Child Stories
|
|
63
|
+
|
|
64
|
+
### Story 1: Local Prompt Bank Manifest
|
|
65
|
+
|
|
66
|
+
As an agent runtime, I want a local manifest of prompt bank entries so that I can
|
|
67
|
+
retrieve approved guidance without internet access.
|
|
68
|
+
|
|
69
|
+
Acceptance criteria:
|
|
70
|
+
|
|
71
|
+
- Defines entry schema with id, title, category, role, phase, skill, runtime,
|
|
72
|
+
artifact type, tags, version, source-free flag, safety level, checksum, and
|
|
73
|
+
path.
|
|
74
|
+
- Includes initial categories for diagrams, QA evidence, advisory findings,
|
|
75
|
+
security review, story mapping, and runtime coordination.
|
|
76
|
+
- Excludes source-specific PDF text, business labels, secrets, and raw user
|
|
77
|
+
prompts from reusable entries.
|
|
78
|
+
- Includes tests for schema validation and manifest loading.
|
|
79
|
+
|
|
80
|
+
### Story 2: Prompt Bank Retrieval API
|
|
81
|
+
|
|
82
|
+
As a skill loader, I want to retrieve prompt bank entries by runtime need so that
|
|
83
|
+
skills stay small and context is loaded on demand.
|
|
84
|
+
|
|
85
|
+
Acceptance criteria:
|
|
86
|
+
|
|
87
|
+
- Provides CLI/API retrieval by role, phase, task intent, skill id, runtime, and
|
|
88
|
+
tags.
|
|
89
|
+
- Returns summaries first and full content only when requested.
|
|
90
|
+
- Enforces max entry count and max token/character budget.
|
|
91
|
+
- Supports offline-only mode.
|
|
92
|
+
- Emits evidence showing which entries were consulted.
|
|
93
|
+
|
|
94
|
+
### Story 3: External Bucket/API Contract
|
|
95
|
+
|
|
96
|
+
As a platform operator, I want an external prompt registry contract so that rich
|
|
97
|
+
references can be stored outside the package without making the package depend
|
|
98
|
+
on SaaS.
|
|
99
|
+
|
|
100
|
+
Acceptance criteria:
|
|
101
|
+
|
|
102
|
+
- Documents bucket layout, manifest format, checksums, signed URLs or equivalent
|
|
103
|
+
access strategy, cache policy, and fallback behavior.
|
|
104
|
+
- Defines API endpoints for search, resolve, fetch, health, and version checks.
|
|
105
|
+
- Requires tenant/project scoping for SaaS mode.
|
|
106
|
+
- Requires redaction and prompt-injection checks before storing or serving
|
|
107
|
+
entries.
|
|
108
|
+
|
|
109
|
+
### Story 4: Prompt Promotion Workflow
|
|
110
|
+
|
|
111
|
+
As a maintainer, I want prompt bank changes to go through review so that weak or
|
|
112
|
+
unsafe prompt guidance is not promoted automatically.
|
|
113
|
+
|
|
114
|
+
Acceptance criteria:
|
|
115
|
+
|
|
116
|
+
- Advisory findings can propose prompt entries but cannot promote them directly.
|
|
117
|
+
- Promotion requires classification, safety review, owner approval, and
|
|
118
|
+
validation evidence.
|
|
119
|
+
- Records provenance: source task, finding id, reviewer, reason, version, and
|
|
120
|
+
superseded entries.
|
|
121
|
+
- Supports deprecation and rollback of prompt entries.
|
|
122
|
+
|
|
123
|
+
## Acceptance Criteria
|
|
124
|
+
|
|
125
|
+
- Epic documents offline-first and SaaS-ready architecture for prompt bank
|
|
126
|
+
retrieval.
|
|
127
|
+
- Local prompt bank remains the source of truth for core operation.
|
|
128
|
+
- External bucket/API is optional and never required for baseline skills.
|
|
129
|
+
- Prompt entries are categorized and retrievable by role, phase, skill, runtime,
|
|
130
|
+
artifact type, tags, and safety level.
|
|
131
|
+
- Retrieval is bounded to avoid context bloat.
|
|
132
|
+
- Source-specific text, secrets, raw user prompts, and prompt-injection content
|
|
133
|
+
are excluded or blocked from reusable prompt entries.
|
|
134
|
+
- Advisory supervisor integration is defined without allowing automatic
|
|
135
|
+
promotion.
|
|
136
|
+
- Child stories are independently executable.
|
|
137
|
+
|
|
138
|
+
## Non-Goals
|
|
139
|
+
|
|
140
|
+
- Full SaaS implementation in the first story.
|
|
141
|
+
- Storing raw prompts/responses by default.
|
|
142
|
+
- Replacing existing skills with a remote-only prompt system.
|
|
143
|
+
- Making internet access mandatory for local workflows.
|
|
144
|
+
|
|
145
|
+
## Risks
|
|
146
|
+
|
|
147
|
+
- Context bloat if retrieval is not aggressively bounded.
|
|
148
|
+
- Prompt injection through external registry entries.
|
|
149
|
+
- Secret leakage from raw prompts, lessons learned, or generated artifacts.
|
|
150
|
+
- Drift between local prompt bank and external registry.
|
|
151
|
+
- SaaS dependency creeping into offline workflows.
|
|
152
|
+
|
|
153
|
+
## T-Shirt Size
|
|
154
|
+
|
|
155
|
+
L
|
|
156
|
+
|
|
157
|
+
## Suggested Owners
|
|
158
|
+
|
|
159
|
+
Product Owner, Architect, Security, Developer, QA.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Story: Public site consumes documentation manifest instead of hardcoded copy
|
|
2
|
+
|
|
3
|
+
Backlog Item ID: SITE-DOCS-MANIFEST
|
|
4
|
+
|
|
5
|
+
Parent: #340
|
|
6
|
+
|
|
7
|
+
## User Story
|
|
8
|
+
|
|
9
|
+
As a documentation maintainer, I want the public site to render content from
|
|
10
|
+
versioned documentation or a docs manifest instead of duplicating copy in React
|
|
11
|
+
components, so that the site, README, and docs stay aligned with less manual
|
|
12
|
+
maintenance.
|
|
13
|
+
|
|
14
|
+
## Background
|
|
15
|
+
|
|
16
|
+
The public site currently keeps much of its product copy and section metadata in
|
|
17
|
+
`site/src/App.jsx`. That creates duplicate maintenance when docs change. The
|
|
18
|
+
site should use documentation as the source of truth where possible, while React
|
|
19
|
+
components own layout, interaction, and visual presentation.
|
|
20
|
+
|
|
21
|
+
## Acceptance Criteria
|
|
22
|
+
|
|
23
|
+
- Defines a public docs manifest or equivalent content source for site sections.
|
|
24
|
+
- Site content for quickstart, command surface, runtime adapters, release
|
|
25
|
+
readiness, architecture, and docs links is derived from versioned docs or
|
|
26
|
+
manifest entries instead of duplicated hardcoded copy.
|
|
27
|
+
- `site/src/App.jsx` keeps layout/component logic and no longer owns long-form
|
|
28
|
+
documentation copy.
|
|
29
|
+
- Site build fails or reports a clear validation error when the manifest points
|
|
30
|
+
to a missing doc.
|
|
31
|
+
- README/docs/site links stay consistent after the migration.
|
|
32
|
+
- Public site still builds with `npm run site:build`.
|
|
33
|
+
- The implementation avoids runtime network calls; content should be bundled at
|
|
34
|
+
build time or served from local static assets.
|
|
35
|
+
|
|
36
|
+
## Non-Goals
|
|
37
|
+
|
|
38
|
+
- Building a full CMS.
|
|
39
|
+
- Rendering every internal or backlog doc on the public site.
|
|
40
|
+
- Redesigning the whole landing page.
|
|
41
|
+
|
|
42
|
+
## Suggested Implementation
|
|
43
|
+
|
|
44
|
+
- Create a manifest such as `docs/site-manifest.json` or
|
|
45
|
+
`site/src/site-content.js` generated from docs.
|
|
46
|
+
- Prefer Markdown/frontmatter or a small typed JSON schema for section metadata.
|
|
47
|
+
- Add a validation script for manifest paths.
|
|
48
|
+
- Keep public/internal classification aligned with #340.
|
|
49
|
+
|
|
50
|
+
## T-Shirt Size
|
|
51
|
+
|
|
52
|
+
S
|
|
53
|
+
|
|
54
|
+
## Suggested Owners
|
|
55
|
+
|
|
56
|
+
Technical Writer, UX/UI Designer, Developer.
|
|
@@ -159,7 +159,7 @@ Expected evidence:
|
|
|
159
159
|
|
|
160
160
|
## Prompt Registry Integration
|
|
161
161
|
|
|
162
|
-
The
|
|
162
|
+
The prompt registry pattern is now part of Open Orchestra as a stack-agnostic `.generated-prompts/` scaffold. Specialist roles should use it as follows:
|
|
163
163
|
|
|
164
164
|
- Tech Lead reads `code.md`, `services.md`, and `docs.md` before coordinating implementation plans.
|
|
165
165
|
- SDET reads `tests.md` before adding Playwright or regression coverage.
|