@jterrats/open-orchestra 1.0.2 → 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/metrics-commands.js +8 -0
- package/dist/metrics-commands.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 +67 -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 +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 +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/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 +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/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
package/docs/architecture.md
CHANGED
|
@@ -10,68 +10,72 @@ the project site.
|
|
|
10
10
|
flowchart LR
|
|
11
11
|
subgraph entry["Entry surfaces"]
|
|
12
12
|
human["Human operator"]
|
|
13
|
-
|
|
14
|
-
ide["
|
|
13
|
+
runtime["Agent runtimes"]
|
|
14
|
+
ide["IDE control center"]
|
|
15
15
|
web["Local web console"]
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
subgraph
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
subgraph contract["Runtime and CLI contract"]
|
|
19
|
+
bootstrap["Runtime bootstrap"]
|
|
20
|
+
commands["orchestra CLI"]
|
|
21
|
+
manifest["Command manifest"]
|
|
22
|
+
api["JSON contracts"]
|
|
22
23
|
end
|
|
23
24
|
|
|
24
|
-
subgraph
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
gates["review gates"]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
release["release readiness"]
|
|
25
|
+
subgraph workflow["Workflow core"]
|
|
26
|
+
intake["Task registry"]
|
|
27
|
+
phases["PM to release phases"]
|
|
28
|
+
gates["Human review gates"]
|
|
29
|
+
skills["Skills and memory"]
|
|
30
|
+
readiness["Release readiness"]
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
subgraph state["
|
|
34
|
-
files[".agent-workflow
|
|
35
|
-
providers["
|
|
36
|
-
trackers["
|
|
37
|
-
evidence["
|
|
33
|
+
subgraph state["Local state and adapters"]
|
|
34
|
+
files[".agent-workflow state"]
|
|
35
|
+
providers["Model providers"]
|
|
36
|
+
trackers["Tracker adapters"]
|
|
37
|
+
evidence["Evidence packs"]
|
|
38
|
+
content["Docs manifest"]
|
|
38
39
|
end
|
|
39
40
|
|
|
40
|
-
subgraph
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
subgraph delivery["Delivery outputs"]
|
|
42
|
+
site["Public site"]
|
|
43
|
+
package["npm package"]
|
|
44
|
+
reports["Handoffs and reports"]
|
|
45
|
+
release["CI release tags"]
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
human --> commands
|
|
48
|
-
|
|
49
|
-
ide -->
|
|
50
|
-
web -->
|
|
49
|
+
runtime --> bootstrap
|
|
50
|
+
ide --> api
|
|
51
|
+
web --> api
|
|
52
|
+
bootstrap --> commands
|
|
51
53
|
commands --> manifest
|
|
52
|
-
|
|
53
|
-
manifest -->
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
workflow --> release
|
|
60
|
-
tasks --> files
|
|
54
|
+
api --> manifest
|
|
55
|
+
manifest --> phases
|
|
56
|
+
phases --> intake
|
|
57
|
+
phases --> gates
|
|
58
|
+
phases --> skills
|
|
59
|
+
phases --> readiness
|
|
60
|
+
intake --> files
|
|
61
61
|
gates --> evidence
|
|
62
|
-
memory --> files
|
|
63
62
|
skills --> files
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
phases --> providers
|
|
64
|
+
phases --> trackers
|
|
65
|
+
readiness --> evidence
|
|
66
|
+
content --> site
|
|
67
|
+
readiness --> site
|
|
68
|
+
readiness --> package
|
|
69
|
+
readiness --> release
|
|
69
70
|
evidence --> reports
|
|
70
71
|
```
|
|
71
72
|
|
|
72
73
|
The site renders the same source from
|
|
73
74
|
[`site/public/architecture.mmd`](../site/public/architecture.mmd) through the
|
|
74
75
|
React + Vite public site with pan, zoom, reset, and fullscreen controls.
|
|
76
|
+
The documentation and served Mermaid source must be updated together. See
|
|
77
|
+
[Public Site Content Workflow](site-content-workflow.md) for the generated
|
|
78
|
+
content contract and diagram QA expectations.
|
|
75
79
|
|
|
76
80
|
## How To Read It
|
|
77
81
|
|
|
@@ -97,6 +101,8 @@ React + Vite public site with pan, zoom, reset, and fullscreen controls.
|
|
|
97
101
|
## Related Docs
|
|
98
102
|
|
|
99
103
|
- [MVP guide](orchestra-mvp.md)
|
|
104
|
+
- [Advisory supervisor architecture](advisory-supervisor-architecture.md)
|
|
100
105
|
- [Persona workflows](persona-workflows.md)
|
|
101
106
|
- [Runtime adapters](runtime-adapters.md)
|
|
107
|
+
- [Public site content workflow](site-content-workflow.md)
|
|
102
108
|
- [Traceability flow](traceability-flow.md)
|
|
@@ -34,7 +34,7 @@ PM → PO [gate] → Architect [sizing gate] → Developer → QA [gate] → Rel
|
|
|
34
34
|
| Phase | Role | Output | Human checkpoint |
|
|
35
35
|
| ----------- | --------------- | -------------------------------------------------------------------- | --------------------------------------------------------- |
|
|
36
36
|
| `pm` | product_manager | Product framing, trade-offs, sequencing, and success metrics | None by default |
|
|
37
|
-
| `po` | product_owner |
|
|
37
|
+
| `po` | product_owner | User-validated scope, definitions, acceptance criteria, assumptions, non-goals, priority, and release value | `po→architect` when `--gates phase` or `--gates all` |
|
|
38
38
|
| `architect` | architect | Technical approach, affected boundaries, sizing decision, and risks | Architect sizing gate is always required |
|
|
39
39
|
| `developer` | developer | Code/docs changes, implementation notes, and Developer to QA handoff | Optional clarification to PO or Architect |
|
|
40
40
|
| `qa` | qa | Test plan, validation evidence, gaps, and QA recommendation | `qa→release` when `--gates phase` or `--gates all` |
|
|
@@ -64,7 +64,7 @@ the active role from continuing safely.
|
|
|
64
64
|
|
|
65
65
|
| Situation | Use | Why |
|
|
66
66
|
| ------------------------------------------------------------------- | ------------- | --------------------------------------------------------------------- |
|
|
67
|
-
| PO acceptance criteria need
|
|
67
|
+
| PO/BA stories, definitions, acceptance criteria, or assumptions need user confirmation before design starts | Gate | This is a planned phase boundary |
|
|
68
68
|
| QA evidence is complete but release risk needs sign-off | Gate | This determines whether Release may proceed |
|
|
69
69
|
| Developer needs to know whether empty input is valid | Clarification | The active phase is blocked by a product or architecture question |
|
|
70
70
|
| QA finds ambiguous expected behavior while writing tests | Clarification | The answer should unblock QA without inventing a new phase boundary |
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# AC Evidence Bugfix Stories
|
|
2
|
+
|
|
3
|
+
Date: 2026-05-17
|
|
4
|
+
Source task: AC-EVIDENCE-BACKFILL-20260517
|
|
5
|
+
|
|
6
|
+
These bugfix stories come from the reconciled acceptance-criteria evidence batch.
|
|
7
|
+
They are current failures, not historical superseded criteria.
|
|
8
|
+
|
|
9
|
+
## BUG-DOCS-GENERATED-SITE-AC-20260517
|
|
10
|
+
|
|
11
|
+
Title: Fix docs adoption test after generated site content migration
|
|
12
|
+
|
|
13
|
+
As a product user evaluating first-run onboarding, I want the public site,
|
|
14
|
+
README, and adoption docs to consistently prove the first visible value path so
|
|
15
|
+
that documentation tests validate the real source of rendered content.
|
|
16
|
+
|
|
17
|
+
Acceptance criteria:
|
|
18
|
+
|
|
19
|
+
- `node --test test/docs-adoption.test.js` passes.
|
|
20
|
+
- The test validates `First visible value` in the generated site content source
|
|
21
|
+
or rendered site output instead of requiring literal copy in `site/src/App.jsx`.
|
|
22
|
+
- README, adoption guide, core command surface, and site content still point to
|
|
23
|
+
`orchestra workflow run --task DEMO-001 --gates none`.
|
|
24
|
+
- The governed production path remains documented.
|
|
25
|
+
|
|
26
|
+
## BUG-SITE-ARCH-DIAGRAM-RENDER-20260517
|
|
27
|
+
|
|
28
|
+
Title: Fix project site architecture diagram render
|
|
29
|
+
|
|
30
|
+
As a site visitor, I want the architecture viewer to render its SVG on desktop
|
|
31
|
+
and mobile so that the product architecture can be inspected visually.
|
|
32
|
+
|
|
33
|
+
Acceptance criteria:
|
|
34
|
+
|
|
35
|
+
- `npm run site:build` passes.
|
|
36
|
+
- `npm run test:e2e -- e2e/project-site.spec.js` passes.
|
|
37
|
+
- `[data-architecture-diagram] svg` becomes visible on desktop and mobile.
|
|
38
|
+
- Architecture controls remain interactive: zoom, pan, reset, node drag, and
|
|
39
|
+
group drag.
|
|
40
|
+
- No console or page errors are emitted during diagram render.
|
|
41
|
+
|
|
42
|
+
## BUG-WEB-OPS-READINESS-COPY-20260517
|
|
43
|
+
|
|
44
|
+
Title: Restore release readiness state in task detail
|
|
45
|
+
|
|
46
|
+
As an operator using the web console, I want task detail to show release
|
|
47
|
+
readiness state consistently so that I can understand whether a task is ready or
|
|
48
|
+
what remains unresolved.
|
|
49
|
+
|
|
50
|
+
Acceptance criteria:
|
|
51
|
+
|
|
52
|
+
- `npm run test:e2e -- e2e/web-console.spec.js` passes the WEB-OPS scenario.
|
|
53
|
+
- Task detail for `OPS-E2E` shows an explicit positive release readiness state
|
|
54
|
+
or the E2E is updated to assert the current accepted copy.
|
|
55
|
+
- Task detail still shows acceptance criteria, Definition of Ready, Definition
|
|
56
|
+
of Done, handoffs, reviews, and evidence.
|
|
57
|
+
- Negative readiness state for `COST-E2E` still surfaces missing backlog item
|
|
58
|
+
and release-readiness remediation.
|
|
59
|
+
|
|
60
|
+
## BUG-WEB-LIFECYCLE-BLOCK-GATE-20260517
|
|
61
|
+
|
|
62
|
+
Title: Restore web lifecycle block gate control after request changes
|
|
63
|
+
|
|
64
|
+
As a release reviewer using the web console, I want to approve, request changes,
|
|
65
|
+
or block a workflow gate from the same lifecycle surface so that gate decisions
|
|
66
|
+
remain auditable and actionable.
|
|
67
|
+
|
|
68
|
+
Acceptance criteria:
|
|
69
|
+
|
|
70
|
+
- `npm run test:e2e -- e2e/web-console.spec.js` passes the WEB-LIFECYCLE scenario.
|
|
71
|
+
- After a `Request Changes` decision, the gate decision surface still exposes a
|
|
72
|
+
valid block path or the workflow state transition intentionally removes block
|
|
73
|
+
and the test documents the accepted behavior.
|
|
74
|
+
- Gate history records `changes`, `block`, and `approve` decisions when those
|
|
75
|
+
actions are available.
|
|
76
|
+
- Resume continues from the approved gate and completes the lifecycle.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Story: Harden developer best practices for module boundaries and god-file prevention
|
|
2
|
+
|
|
3
|
+
Backlog Item ID: DEV-BEST-PRACTICES-HARDENING
|
|
4
|
+
|
|
5
|
+
## User Story
|
|
6
|
+
|
|
7
|
+
As a technical lead, I want Open Orchestra developer guidance to enforce
|
|
8
|
+
pre-write god-file checks and clean module boundaries, so that new code follows
|
|
9
|
+
domain/model/service/adapters separation and command files stay nearly
|
|
10
|
+
logicless.
|
|
11
|
+
|
|
12
|
+
## Background
|
|
13
|
+
|
|
14
|
+
As the project grows, large command and service files can accumulate parsing,
|
|
15
|
+
business rules, storage access, formatting, and integration orchestration in the
|
|
16
|
+
same place. This increases regression risk and makes agent-generated changes
|
|
17
|
+
harder to review.
|
|
18
|
+
|
|
19
|
+
Developer standards should force agents to check file size and responsibility
|
|
20
|
+
before writing code. If a change would grow a god file or add business logic to
|
|
21
|
+
an adapter, the agent should create or reuse the correct domain/model/service
|
|
22
|
+
module instead.
|
|
23
|
+
|
|
24
|
+
## Acceptance Criteria
|
|
25
|
+
|
|
26
|
+
- Developer rules require a pre-write file-size and responsibility check before
|
|
27
|
+
adding code to an existing file.
|
|
28
|
+
- Rules define god-file risk thresholds and require extraction when a change
|
|
29
|
+
would materially increase a large or multi-responsibility file.
|
|
30
|
+
- Rules define expected boundaries:
|
|
31
|
+
- `model/types`: data contracts and narrow public types;
|
|
32
|
+
- `domain`: pure invariants, policy, and business decisions;
|
|
33
|
+
- `service/use-case`: orchestration of workflows and dependencies;
|
|
34
|
+
- `commands`: CLI adapter for parsing input, calling services, formatting
|
|
35
|
+
output, and converting errors;
|
|
36
|
+
- `web/api`: HTTP/UI adapter behavior;
|
|
37
|
+
- `storage/repository`: persistence and file I/O.
|
|
38
|
+
- Command modules are documented as logicless adapters and must not contain deep
|
|
39
|
+
business rules, multi-step workflow policy, direct persistence logic, or
|
|
40
|
+
duplicated hardcoded collections when a domain/service source of truth exists.
|
|
41
|
+
- Review guidance requires reviewers to flag command/service files that are
|
|
42
|
+
growing without a boundary decision.
|
|
43
|
+
- QA or static validation includes a lightweight check or documented checklist
|
|
44
|
+
for large files, new exports, and adapter logic creep.
|
|
45
|
+
- Existing collection standards are referenced so repeated hardcoded values are
|
|
46
|
+
extracted into typed/configurable sources of truth.
|
|
47
|
+
|
|
48
|
+
## Non-Goals
|
|
49
|
+
|
|
50
|
+
- Refactoring every existing large file in one change.
|
|
51
|
+
- Blocking emergency hotfixes when a follow-up debt task is explicitly created.
|
|
52
|
+
- Introducing a heavy architecture framework.
|
|
53
|
+
|
|
54
|
+
## Suggested Implementation
|
|
55
|
+
|
|
56
|
+
- Add or update a focused rule file for module boundaries and god-file
|
|
57
|
+
prevention.
|
|
58
|
+
- Reference the rule from developer-facing standards and relevant skills.
|
|
59
|
+
- Add a checklist to code review/QA standards.
|
|
60
|
+
- Add a small validation command or test only if it can be low-noise and
|
|
61
|
+
maintainable.
|
|
62
|
+
|
|
63
|
+
## T-Shirt Size
|
|
64
|
+
|
|
65
|
+
S
|
|
66
|
+
|
|
67
|
+
## Suggested Owners
|
|
68
|
+
|
|
69
|
+
Architect, Developer, QA.
|
|
@@ -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,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.
|