@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,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.
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Diagram Master Prompt
|
|
2
|
+
|
|
3
|
+
Use this prompt when generating, recreating, validating, or exporting diagrams.
|
|
4
|
+
It is source-free and applies to architecture, workflow, state, sequence,
|
|
5
|
+
infrastructure, timeline, roadmap, story map, swimlane, and integration
|
|
6
|
+
diagrams.
|
|
7
|
+
|
|
8
|
+
## Role
|
|
9
|
+
|
|
10
|
+
You are producing a diagram artifact that must be useful to humans and safe to
|
|
11
|
+
handoff. Prioritize semantic correctness, readable layout, editable sources,
|
|
12
|
+
visual clarity, and validation evidence.
|
|
13
|
+
|
|
14
|
+
## Classify The Work
|
|
15
|
+
|
|
16
|
+
Before drawing, classify the request:
|
|
17
|
+
|
|
18
|
+
- `semantic`: explain an idea or system. Mermaid is usually acceptable.
|
|
19
|
+
- `inspired-by-reference`: borrow structure or style, but exact fidelity is not
|
|
20
|
+
required.
|
|
21
|
+
- `recreation`: reproduce a source reference. Acceptance is pixel-perfect source
|
|
22
|
+
fidelity unless the user explicitly accepts an approximation.
|
|
23
|
+
|
|
24
|
+
For `recreation`, inventory every visible source element before drawing:
|
|
25
|
+
containers, labels, icons, connectors, arrowheads, line styles, colors, borders,
|
|
26
|
+
spacing, rotations, z-order, and page/canvas bounds.
|
|
27
|
+
|
|
28
|
+
For source-free diagrams, create a diagram contract before drawing:
|
|
29
|
+
|
|
30
|
+
- purpose and audience;
|
|
31
|
+
- required nodes, groups, containers, and annotations;
|
|
32
|
+
- relationships and connector intent;
|
|
33
|
+
- expected reading flow;
|
|
34
|
+
- target format and validation criteria;
|
|
35
|
+
- known constraints or non-goals.
|
|
36
|
+
|
|
37
|
+
## Choose The Target
|
|
38
|
+
|
|
39
|
+
Use Mermaid first when the goal is semantic documentation, markdown-native
|
|
40
|
+
review, fast validation, or offline evidence.
|
|
41
|
+
|
|
42
|
+
Use draw.io XML or equivalent editable geometry when the goal requires exact
|
|
43
|
+
layout, controlled connector anchors, bend points, line jumps, rotated labels,
|
|
44
|
+
manual label lanes, or SVG parity.
|
|
45
|
+
|
|
46
|
+
Use a collaborative visual tool when the goal is stakeholder editing, live
|
|
47
|
+
review, or a team-owned visual board.
|
|
48
|
+
|
|
49
|
+
Do not treat Mermaid as a pixel-perfect recreation target when exact geometry,
|
|
50
|
+
icons, connector paths, rotations, or reference styling are acceptance criteria.
|
|
51
|
+
|
|
52
|
+
## Drafting Rules
|
|
53
|
+
|
|
54
|
+
- Use domain language from the task, but keep labels short enough to remain
|
|
55
|
+
readable.
|
|
56
|
+
- Group related elements in containers only when the group adds meaning.
|
|
57
|
+
- Preserve clear reading flow from entry points to outcomes.
|
|
58
|
+
- Give repeated shapes consistent sizing, padding, typography, and spacing.
|
|
59
|
+
- Keep cards, groups, labels, and connector lanes visually balanced across the
|
|
60
|
+
canvas.
|
|
61
|
+
- Avoid decorative complexity unless it supports the diagram's purpose.
|
|
62
|
+
|
|
63
|
+
## Layout And Reflow
|
|
64
|
+
|
|
65
|
+
After placing real text, subcards, chips, icons, labels, badges, and internal
|
|
66
|
+
connectors, run a global layout reflow before accepting the render.
|
|
67
|
+
|
|
68
|
+
For every composite container, validate actual rendered child bounds against
|
|
69
|
+
parent bounds. Children include text labels, nested boxes, badges, icons,
|
|
70
|
+
internal connectors, annotation anchors, metadata chips, and arrowheads.
|
|
71
|
+
|
|
72
|
+
If any child touches a parent edge, clips, overflows, crowds another child, or
|
|
73
|
+
reduces padding below the intended minimum, grow the parent container or move
|
|
74
|
+
children before shrinking text.
|
|
75
|
+
|
|
76
|
+
When a parent container grows, recalculate neighboring element positions,
|
|
77
|
+
connector routes, connector labels, annotation labels, and page/canvas bounds.
|
|
78
|
+
A local fix is incomplete until the whole canvas passes again.
|
|
79
|
+
|
|
80
|
+
## Text And Bounded Labels
|
|
81
|
+
|
|
82
|
+
Long text must be layout-managed. Re-evaluate wrapping, line count, width, and
|
|
83
|
+
placement for every note, annotation, card title, legend item, badge, pill, and
|
|
84
|
+
connector label.
|
|
85
|
+
|
|
86
|
+
Text inside bounded elements must fit inside its own shape. If text grows beyond
|
|
87
|
+
the available width, wraps poorly, overlaps another element, or visually escapes
|
|
88
|
+
its shape, split it into multiple lines, grow the containing shape, or move the
|
|
89
|
+
element.
|
|
90
|
+
|
|
91
|
+
Treat text wrapping as a geometry change. After any bounded text wraps to more
|
|
92
|
+
lines, recalculate the rendered bounding box and revalidate connector lanes,
|
|
93
|
+
neighboring labels, parent boundaries, and page bounds. The expanded box must
|
|
94
|
+
not cover a connector, border, arrowhead, or nearby element it previously
|
|
95
|
+
cleared.
|
|
96
|
+
|
|
97
|
+
Do not use label backgrounds as a visual patch. A label background must not
|
|
98
|
+
hide, interrupt, or visually erase the connector it describes.
|
|
99
|
+
|
|
100
|
+
## Connectors
|
|
101
|
+
|
|
102
|
+
Every connector must have an explicit source, target, semantic intent, endpoint
|
|
103
|
+
type, and preferred anchor side before final routing.
|
|
104
|
+
|
|
105
|
+
Connector intent determines the endpoint:
|
|
106
|
+
|
|
107
|
+
- a connector targeting a group or boundary stops at that boundary edge;
|
|
108
|
+
- a connector targeting a child element visibly attaches to that child;
|
|
109
|
+
- a connector must not drift inside a container unless the interior target is
|
|
110
|
+
intentional and unambiguous.
|
|
111
|
+
|
|
112
|
+
Prefer the simplest readable connector route:
|
|
113
|
+
|
|
114
|
+
- straight when source and target have clear line-of-sight;
|
|
115
|
+
- one orthogonal bend when it improves readability;
|
|
116
|
+
- curves, multi-bend paths, diagonals, or jumps only when they avoid a real
|
|
117
|
+
obstacle, crossing, or ambiguous relationship.
|
|
118
|
+
|
|
119
|
+
Before accepting a curved or multi-bend connector, verify that a straight or
|
|
120
|
+
orthogonal route would collide with an element, label, boundary, or reserved
|
|
121
|
+
lane. If no collision exists, simplify the route.
|
|
122
|
+
|
|
123
|
+
Reserve connector-label lanes after final element positions are known. A
|
|
124
|
+
connector label must clear the whole connector stroke, arrowhead, crossing
|
|
125
|
+
point, border, and adjacent labels after final wrapping and padding.
|
|
126
|
+
|
|
127
|
+
If a connector label collides with a route, evaluate fixes in this order:
|
|
128
|
+
|
|
129
|
+
1. move the label to a clear lane;
|
|
130
|
+
2. reroute the connector;
|
|
131
|
+
3. move one of the connected elements;
|
|
132
|
+
4. grow or reflow the containing region.
|
|
133
|
+
|
|
134
|
+
## Z-Order And Visual Integrity
|
|
135
|
+
|
|
136
|
+
Connectors and arrowheads must remain visible and must not sit hidden behind the
|
|
137
|
+
elements they connect. Labels must not obscure the target they describe.
|
|
138
|
+
|
|
139
|
+
Avoid connector lines crossing over containers, labels, or important symbols
|
|
140
|
+
whenever practical. If crossings are unavoidable, use clear spacing or line
|
|
141
|
+
jumps where the target format supports them.
|
|
142
|
+
|
|
143
|
+
Validate annotation target clarity: annotation arrows must visibly land on the
|
|
144
|
+
element or line they describe, and annotation text must not obscure the target.
|
|
145
|
+
|
|
146
|
+
## Validation Loop
|
|
147
|
+
|
|
148
|
+
Before accepting any rendered diagram, run a whole-canvas acceptance matrix:
|
|
149
|
+
|
|
150
|
+
- semantic completeness;
|
|
151
|
+
- text fit;
|
|
152
|
+
- parent containment;
|
|
153
|
+
- connector endpoints;
|
|
154
|
+
- connector route simplicity;
|
|
155
|
+
- connector-label clearance;
|
|
156
|
+
- label-to-label clearance;
|
|
157
|
+
- z-order and arrowhead visibility;
|
|
158
|
+
- whitespace balance;
|
|
159
|
+
- page/canvas bounds;
|
|
160
|
+
- editable-source/render parity when an editable source exists.
|
|
161
|
+
|
|
162
|
+
After every correction, re-render and inspect the whole canvas again. A local
|
|
163
|
+
fix is incomplete until no new collisions, hidden endpoints, containment
|
|
164
|
+
failures, or whitespace problems appear elsewhere.
|
|
165
|
+
|
|
166
|
+
A regenerated version must materially change geometry when it claims to fix a
|
|
167
|
+
visual finding. If the same collision, overflow, endpoint gap, or unnecessary
|
|
168
|
+
route persists across versions, stop re-rendering and change the layout
|
|
169
|
+
strategy: move elements, grow containers, reserve a different lane, or reroute
|
|
170
|
+
the connector.
|
|
171
|
+
|
|
172
|
+
Do not deliver the first render of a source-free diagram unless the complete
|
|
173
|
+
acceptance matrix passes.
|
|
174
|
+
|
|
175
|
+
## Evidence To Record
|
|
176
|
+
|
|
177
|
+
Record the following before handoff:
|
|
178
|
+
|
|
179
|
+
- target classification: `semantic`, `inspired-by-reference`, or `recreation`;
|
|
180
|
+
- chosen output target and reason;
|
|
181
|
+
- final artifact paths;
|
|
182
|
+
- final render pass number;
|
|
183
|
+
- whether text wrapping changed geometry;
|
|
184
|
+
- whether parent containment passed after final reflow;
|
|
185
|
+
- whether connector endpoints match their semantic targets;
|
|
186
|
+
- whether curved or multi-bend connectors have concrete obstacle reasons;
|
|
187
|
+
- source-vs-output gaps for recreations;
|
|
188
|
+
- residual visual risks, if any.
|
|
189
|
+
|
|
190
|
+
## Final Artifact Hygiene
|
|
191
|
+
|
|
192
|
+
Before final delivery, keep only:
|
|
193
|
+
|
|
194
|
+
- accepted editable source;
|
|
195
|
+
- accepted rendered output;
|
|
196
|
+
- prompt master or final prompt when it adds traceability;
|
|
197
|
+
- minimum QA evidence needed for review;
|
|
198
|
+
- short handoff note with final paths and residual risks.
|
|
199
|
+
|
|
200
|
+
Archive or exclude intermediate previews, failed renders, temporary prompts,
|
|
201
|
+
superseded SVGs, one-off correction notes, and source-specific prompt fragments.
|
|
202
|
+
Keep audit-relevant iterations in workflow evidence, an explicit archive folder,
|
|
203
|
+
or an ignored output location.
|
|
204
|
+
|
|
205
|
+
Do not promote source-specific text, raw user prompts, secrets, or one-off
|
|
206
|
+
coordinates into reusable prompt guidance. Rewrite reusable learnings as
|
|
207
|
+
source-free rules before adding them to the prompt bank.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Enterprise Diagram Set
|
|
2
|
+
|
|
3
|
+
Task: DIAGRAM-ENTERPRISE-PROCESS-TIMELINE-SET
|
|
4
|
+
|
|
5
|
+
## Diagrams
|
|
6
|
+
|
|
7
|
+
1. `salesforce-enterprise-architecture.svg`
|
|
8
|
+
- Salesforce enterprise solution architecture with web, mobile,
|
|
9
|
+
integrations, SAP, Oracle, AWS, and on-prem systems.
|
|
10
|
+
2. `lead-to-account-swimlanes.svg`
|
|
11
|
+
- Swimlane process from lead prospecting through account conversion.
|
|
12
|
+
3. `product-implementation-timeline.svg`
|
|
13
|
+
- Multi-year product implementation timeline from discovery to release.
|
|
14
|
+
|
|
15
|
+
## Validation Focus
|
|
16
|
+
|
|
17
|
+
- Text fits inside cards, chips, labels, swimlane cells, and milestone blocks.
|
|
18
|
+
- Parent regions contain all child elements with padding.
|
|
19
|
+
- Connector labels sit in lanes and do not hide connector strokes.
|
|
20
|
+
- Long labels are wrapped instead of escaping their shapes.
|
|
21
|
+
- The diagrams are source-free candidates and should be reviewed against their
|
|
22
|
+
stated intent, not against a visual reference.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="920" viewBox="0 0 1500 920" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Lead prospecting to account conversion swimlanes</title>
|
|
3
|
+
<desc id="desc">Swimlane process from lead prospecting through qualification, account conversion, and customer onboarding.</desc>
|
|
4
|
+
<defs><marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M0 0 L10 5 L0 10 z" fill="#475569"/></marker>
|
|
5
|
+
<style>.font{font-family:Arial,Helvetica,sans-serif}.title{font-size:28px;font-weight:700;fill:#172033}.sub{font-size:13px;fill:#4b596c}.laneLabel{font-size:13px;font-weight:700;fill:#526174;text-transform:uppercase}.laneA{fill:#f3f8ff}.laneB{fill:#f7fbf5}.laneC{fill:#fff7ed}.laneD{fill:#f8f5ff}.laneE{fill:#fff8f8}.border{fill:none;stroke:#94a3b8;stroke-width:1.5}.step{fill:#fff;stroke:#64748b;stroke-width:1.5}.stepTitle{font-size:14px;font-weight:700;fill:#1f2a3d}.small{font-size:12px;fill:#445267}.edge{fill:none;stroke:#475569;stroke-width:2;marker-end:url(#arrow)}.edgeSoft{fill:none;stroke:#64748b;stroke-width:2;stroke-dasharray:7 5;marker-end:url(#arrow)}.pill{fill:#fff;stroke:#d8dee8;stroke-width:1}.pillText{font-size:12px;fill:#263445}</style></defs>
|
|
6
|
+
<rect width="1500" height="920" fill="#fff"/>
|
|
7
|
+
<g class="font">
|
|
8
|
+
<text class="title" x="48" y="56">Lead Prospecting To Account Conversion</text>
|
|
9
|
+
<text class="sub" x="48" y="80">Source-free swimlane process candidate for lead lifecycle validation.</text>
|
|
10
|
+
<rect class="border" x="48" y="126" width="1404" height="724" rx="16"/>
|
|
11
|
+
<rect class="laneA" x="48" y="126" width="1404" height="126" rx="16"/><text class="laneLabel" x="72" y="172">Marketing</text>
|
|
12
|
+
<rect class="laneB" x="48" y="252" width="1404" height="126"/><text class="laneLabel" x="72" y="298">Sales Development</text>
|
|
13
|
+
<rect class="laneC" x="48" y="378" width="1404" height="126"/><text class="laneLabel" x="72" y="424">Account Executive</text>
|
|
14
|
+
<rect class="laneD" x="48" y="504" width="1404" height="168"/><text class="laneLabel" x="72" y="550">Sales Operations</text>
|
|
15
|
+
<rect class="laneE" x="48" y="672" width="1404" height="178" rx="16"/><text class="laneLabel" x="72" y="718">Customer Success</text>
|
|
16
|
+
<path class="border" d="M48 252 H1452 M48 378 H1452 M48 504 H1452 M48 672 H1452"/>
|
|
17
|
+
|
|
18
|
+
<rect class="step" x="212" y="158" width="150" height="62" rx="10"/><text class="stepTitle" x="232" y="184">Capture Lead</text><text class="small" x="232" y="206">campaign form</text>
|
|
19
|
+
<rect class="step" x="420" y="158" width="160" height="62" rx="10"/><text class="stepTitle" x="440" y="184">Score + Enrich</text><text class="small" x="440" y="206">fit and intent</text>
|
|
20
|
+
<rect class="step" x="640" y="284" width="166" height="62" rx="10"/><text class="stepTitle" x="660" y="310">SDR Qualification</text><text class="small" x="660" y="332">BANT / ICP</text>
|
|
21
|
+
<rect class="step" x="866" y="284" width="164" height="62" rx="10"/><text class="stepTitle" x="886" y="310">Create Meeting</text><text class="small" x="886" y="332">accepted handoff</text>
|
|
22
|
+
<rect class="step" x="866" y="410" width="164" height="70" rx="10"/><text class="stepTitle" x="886" y="436">Discovery</text><text class="small" x="886" y="458">pain, value,</text><text class="small" x="886" y="474">decision process</text>
|
|
23
|
+
<rect class="step" x="1090" y="410" width="166" height="70" rx="10"/><text class="stepTitle" x="1110" y="436">Opportunity</text><text class="small" x="1110" y="458">qualified pipeline</text><text class="small" x="1110" y="474">next step set</text>
|
|
24
|
+
<rect class="step" x="1090" y="546" width="166" height="82" rx="10"/><text class="stepTitle" x="1110" y="572">Convert Lead</text><text class="small" x="1110" y="594">account, contact,</text><text class="small" x="1110" y="612">opportunity</text>
|
|
25
|
+
<rect class="step" x="1282" y="546" width="132" height="82" rx="10"/><text class="stepTitle" x="1300" y="572">Data QA</text><text class="small" x="1300" y="594">dedupe and</text><text class="small" x="1300" y="612">ownership</text>
|
|
26
|
+
<rect class="step" x="1282" y="724" width="132" height="78" rx="10"/><text class="stepTitle" x="1300" y="750">Onboard</text><text class="small" x="1300" y="772">welcome plan</text><text class="small" x="1300" y="790">success owner</text>
|
|
27
|
+
|
|
28
|
+
<path class="edge" d="M362 189 H420"/><rect class="pill" x="370" y="162" width="42" height="20" rx="4"/><text class="pillText" x="378" y="176">raw</text>
|
|
29
|
+
<path class="edge" d="M580 189 H610 Q640 189 640 315"/><rect class="pill" x="592" y="214" width="82" height="20" rx="4"/><text class="pillText" x="600" y="228">MQL route</text>
|
|
30
|
+
<path class="edge" d="M806 315 H866"/><rect class="pill" x="820" y="288" width="34" height="20" rx="4"/><text class="pillText" x="828" y="302">SQL</text>
|
|
31
|
+
<path class="edge" d="M948 346 V410"/><rect class="pill" x="966" y="368" width="76" height="20" rx="4"/><text class="pillText" x="974" y="382">meeting held</text>
|
|
32
|
+
<path class="edge" d="M1030 445 H1090"/><rect class="pill" x="1040" y="418" width="38" height="20" rx="4"/><text class="pillText" x="1048" y="432">SAO</text>
|
|
33
|
+
<path class="edge" d="M1173 480 V546"/><rect class="pill" x="1192" y="508" width="92" height="20" rx="4"/><text class="pillText" x="1200" y="522">conversion</text>
|
|
34
|
+
<path class="edge" d="M1256 587 H1282"/><rect class="pill" x="1256" y="518" width="76" height="20" rx="4"/><text class="pillText" x="1264" y="532">validate</text>
|
|
35
|
+
<path class="edge" d="M1348 628 V724"/><rect class="pill" x="1364" y="660" width="76" height="38" rx="4"/><text class="pillText" x="1372" y="676">handoff</text><text class="pillText" x="1372" y="692">package</text>
|
|
36
|
+
<path class="edgeSoft" d="M640 330 H560 Q532 330 532 220"/><rect class="pill" x="514" y="280" width="106" height="38" rx="4"/><text class="pillText" x="522" y="296">recycle if not</text><text class="pillText" x="522" y="312">sales-ready</text>
|
|
37
|
+
</g>
|
|
38
|
+
</svg>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="860" viewBox="0 0 1500 860" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Product implementation timeline</title>
|
|
3
|
+
<desc id="desc">Two to three year product implementation timeline from discovery through release and scale.</desc>
|
|
4
|
+
<defs><marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M0 0 L10 5 L0 10 z" fill="#475569"/></marker>
|
|
5
|
+
<style>.font{font-family:Arial,Helvetica,sans-serif}.title{font-size:28px;font-weight:700;fill:#172033}.sub{font-size:13px;fill:#4b596c}.axis{stroke:#475569;stroke-width:3;marker-end:url(#arrow)}.tick{stroke:#64748b;stroke-width:1.5}.year{font-size:13px;font-weight:700;fill:#526174}.phase{fill:#fff;stroke:#64748b;stroke-width:1.5}.p1{fill:#f3f8ff}.p2{fill:#f7fbf5}.p3{fill:#fff7ed}.p4{fill:#f8f5ff}.p5{fill:#fff8f8}.phaseTitle{font-size:15px;font-weight:700;fill:#1f2a3d}.small{font-size:12px;fill:#445267}.label{font-size:13px;font-weight:700;fill:#526174;text-transform:uppercase}.milestone{fill:#fff;stroke:#64748b;stroke-width:1.5}.diamond{fill:#fff;stroke:#475569;stroke-width:1.5}.lane{fill:#f8fafc;stroke:#cbd5e1;stroke-width:1}.pill{fill:#fff;stroke:#d8dee8;stroke-width:1}.pillText{font-size:12px;fill:#263445}</style></defs>
|
|
6
|
+
<rect width="1500" height="860" fill="#fff"/>
|
|
7
|
+
<g class="font">
|
|
8
|
+
<text class="title" x="48" y="56">Product Implementation Timeline To Release</text>
|
|
9
|
+
<text class="sub" x="48" y="80">Source-free 30-month implementation plan with staged releases, gates, and adoption waves.</text>
|
|
10
|
+
<line class="axis" x1="100" y1="426" x2="1396" y2="426"/>
|
|
11
|
+
<g>
|
|
12
|
+
<line class="tick" x1="132" y1="406" x2="132" y2="446"/><text class="year" x="106" y="388">Q1 Y1</text>
|
|
13
|
+
<line class="tick" x1="300" y1="406" x2="300" y2="446"/><text class="year" x="274" y="388">Q2 Y1</text>
|
|
14
|
+
<line class="tick" x1="468" y1="406" x2="468" y2="446"/><text class="year" x="442" y="388">Q3 Y1</text>
|
|
15
|
+
<line class="tick" x1="636" y1="406" x2="636" y2="446"/><text class="year" x="610" y="388">Q4 Y1</text>
|
|
16
|
+
<line class="tick" x1="804" y1="406" x2="804" y2="446"/><text class="year" x="778" y="388">Q1 Y2</text>
|
|
17
|
+
<line class="tick" x1="972" y1="406" x2="972" y2="446"/><text class="year" x="946" y="388">Q2 Y2</text>
|
|
18
|
+
<line class="tick" x1="1140" y1="406" x2="1140" y2="446"/><text class="year" x="1114" y="388">Q3 Y2</text>
|
|
19
|
+
<line class="tick" x1="1308" y1="406" x2="1308" y2="446"/><text class="year" x="1282" y="388">Q4 Y2</text>
|
|
20
|
+
</g>
|
|
21
|
+
|
|
22
|
+
<rect class="lane" x="84" y="120" width="1334" height="112" rx="14"/><text class="label" x="112" y="154">Strategy And Discovery</text>
|
|
23
|
+
<rect class="phase p1" x="150" y="164" width="244" height="52" rx="10"/><text class="phaseTitle" x="170" y="186">Vision + Business Case</text><text class="small" x="170" y="206">funding, KPIs, roadmap</text>
|
|
24
|
+
<rect class="phase p1" x="428" y="164" width="244" height="52" rx="10"/><text class="phaseTitle" x="448" y="186">Domain Discovery</text><text class="small" x="448" y="206">journeys, risks, data</text>
|
|
25
|
+
|
|
26
|
+
<rect class="lane" x="84" y="250" width="1334" height="112" rx="14"/><text class="label" x="112" y="284">Foundation And MVP</text>
|
|
27
|
+
<rect class="phase p2" x="318" y="294" width="300" height="52" rx="10"/><text class="phaseTitle" x="338" y="316">Platform Foundation</text><text class="small" x="338" y="336">architecture, CI/CD, security</text>
|
|
28
|
+
<rect class="phase p2" x="666" y="294" width="300" height="52" rx="10"/><text class="phaseTitle" x="686" y="316">MVP Build</text><text class="small" x="686" y="336">core journeys and integrations</text>
|
|
29
|
+
|
|
30
|
+
<rect class="lane" x="84" y="490" width="1334" height="112" rx="14"/><text class="label" x="112" y="524">Scale And Hardening</text>
|
|
31
|
+
<rect class="phase p3" x="646" y="534" width="284" height="52" rx="10"/><text class="phaseTitle" x="666" y="556">Pilot Release</text><text class="small" x="666" y="576">limited users, feedback loop</text>
|
|
32
|
+
<rect class="phase p3" x="982" y="534" width="284" height="52" rx="10"/><text class="phaseTitle" x="1002" y="556">Enterprise Hardening</text><text class="small" x="1002" y="576">performance, DR, compliance</text>
|
|
33
|
+
|
|
34
|
+
<rect class="lane" x="84" y="626" width="1334" height="126" rx="14"/><text class="label" x="112" y="660">Launch And Adoption</text>
|
|
35
|
+
<rect class="phase p4" x="1102" y="674" width="216" height="58" rx="10"/><text class="phaseTitle" x="1122" y="696">GA Release</text><text class="small" x="1122" y="716">go-live, support readiness</text>
|
|
36
|
+
<rect class="phase p5" x="1328" y="674" width="72" height="58" rx="10"/><text class="phaseTitle" x="1344" y="696">Scale</text><text class="small" x="1342" y="716">waves</text>
|
|
37
|
+
|
|
38
|
+
<polygon class="diamond" points="636,410 652,426 636,442 620,426"/><rect class="pill" x="574" y="448" width="124" height="38" rx="5"/><text class="pillText" x="582" y="464">Architecture</text><text class="pillText" x="582" y="480">gate</text>
|
|
39
|
+
<polygon class="diamond" points="972,410 988,426 972,442 956,426"/><rect class="pill" x="912" y="448" width="120" height="38" rx="5"/><text class="pillText" x="920" y="464">Pilot go/no-go</text><text class="pillText" x="920" y="480">decision</text>
|
|
40
|
+
<polygon class="diamond" points="1140,410 1156,426 1140,442 1124,426"/><rect class="pill" x="1078" y="448" width="124" height="38" rx="5"/><text class="pillText" x="1086" y="464">Release</text><text class="pillText" x="1086" y="480">readiness</text>
|
|
41
|
+
<polygon class="diamond" points="1308,410 1324,426 1308,442 1292,426"/><rect class="pill" x="1250" y="448" width="116" height="38" rx="5"/><text class="pillText" x="1258" y="464">GA sign-off</text><text class="pillText" x="1258" y="480">and launch</text>
|
|
42
|
+
|
|
43
|
+
<rect class="pill" x="520" y="774" width="458" height="42" rx="8"/><text class="pillText" x="536" y="792">Timeline assumes a 24 to 30 month product journey with phased delivery,</text><text class="pillText" x="536" y="808">progressive release gates, adoption waves, and post-launch scaling.</text>
|
|
44
|
+
</g>
|
|
45
|
+
</svg>
|