@jterrats/open-orchestra 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/AGENTS.md +7 -2
  2. package/CLAUDE.md +2 -2
  3. package/README.md +3 -0
  4. package/dist/args.js +12 -2
  5. package/dist/args.js.map +1 -1
  6. package/dist/assets/web-console.js +44 -0
  7. package/dist/autonomous-phase-lifecycle.js +23 -3
  8. package/dist/autonomous-phase-lifecycle.js.map +1 -1
  9. package/dist/autonomous-run-state.js +2 -0
  10. package/dist/autonomous-run-state.js.map +1 -1
  11. package/dist/benchmark.js +6 -0
  12. package/dist/benchmark.js.map +1 -1
  13. package/dist/cli.js +4 -1
  14. package/dist/cli.js.map +1 -1
  15. package/dist/command-manifest.js +4 -3
  16. package/dist/command-manifest.js.map +1 -1
  17. package/dist/command-utils.js +4 -5
  18. package/dist/command-utils.js.map +1 -1
  19. package/dist/commands.d.ts +1 -1
  20. package/dist/commands.js +1 -1
  21. package/dist/commands.js.map +1 -1
  22. package/dist/constants.js +1 -0
  23. package/dist/constants.js.map +1 -1
  24. package/dist/memory.js +18 -8
  25. package/dist/memory.js.map +1 -1
  26. package/dist/metrics-commands.js +8 -0
  27. package/dist/metrics-commands.js.map +1 -1
  28. package/dist/model-commands.js +6 -2
  29. package/dist/model-commands.js.map +1 -1
  30. package/dist/phase-executor.js +3 -0
  31. package/dist/phase-executor.js.map +1 -1
  32. package/dist/prompt-registry-update.js +20 -0
  33. package/dist/prompt-registry-update.js.map +1 -1
  34. package/dist/qa-coverage.js +15 -6
  35. package/dist/qa-coverage.js.map +1 -1
  36. package/dist/release-commands.js +42 -5
  37. package/dist/release-commands.js.map +1 -1
  38. package/dist/release-readiness.d.ts +3 -1
  39. package/dist/release-readiness.js +33 -6
  40. package/dist/release-readiness.js.map +1 -1
  41. package/dist/roles/core-roles.js +10 -5
  42. package/dist/roles/core-roles.js.map +1 -1
  43. package/dist/skills-catalog.js +130 -0
  44. package/dist/skills-catalog.js.map +1 -1
  45. package/dist/skills-commands.d.ts +1 -0
  46. package/dist/skills-commands.js +37 -1
  47. package/dist/skills-commands.js.map +1 -1
  48. package/dist/skills-planning.d.ts +2 -1
  49. package/dist/skills-planning.js +79 -11
  50. package/dist/skills-planning.js.map +1 -1
  51. package/dist/skills.d.ts +1 -1
  52. package/dist/skills.js +1 -1
  53. package/dist/skills.js.map +1 -1
  54. package/dist/task-graph-commands.js +36 -8
  55. package/dist/task-graph-commands.js.map +1 -1
  56. package/dist/types/metrics.d.ts +2 -0
  57. package/dist/types/model-config.d.ts +4 -0
  58. package/dist/types/skills.d.ts +9 -0
  59. package/dist/types/tasks.d.ts +8 -1
  60. package/dist/types.d.ts +2 -2
  61. package/dist/types.js.map +1 -1
  62. package/dist/web-api.js +80 -7
  63. package/dist/web-api.js.map +1 -1
  64. package/dist/web-console/assets/{index-C9lx-V42.css → index-jxCY5eEc.css} +1 -1
  65. package/dist/web-console/index.html +2 -2
  66. package/dist/workflow-approval-service.js +13 -0
  67. package/dist/workflow-approval-service.js.map +1 -1
  68. package/dist/workflow-evidence-service.js +37 -2
  69. package/dist/workflow-evidence-service.js.map +1 -1
  70. package/dist/workflow-gates.d.ts +1 -0
  71. package/dist/workflow-gates.js +220 -1
  72. package/dist/workflow-gates.js.map +1 -1
  73. package/dist/workflow-phase-planner.js +51 -9
  74. package/dist/workflow-phase-planner.js.map +1 -1
  75. package/dist/workflow-run-commands.d.ts +1 -0
  76. package/dist/workflow-run-commands.js +11 -6
  77. package/dist/workflow-run-commands.js.map +1 -1
  78. package/dist/workflow-services.js +26 -0
  79. package/dist/workflow-services.js.map +1 -1
  80. package/dist/workflow-task-service.js +27 -2
  81. package/dist/workflow-task-service.js.map +1 -1
  82. package/docs/adoption-guide.md +22 -1
  83. package/docs/advisory-supervisor-architecture.md +206 -0
  84. package/docs/architecture.md +47 -41
  85. package/docs/autonomous-workflow.md +2 -2
  86. package/docs/backlog/ac-evidence-bugfix-stories-20260517.md +76 -0
  87. package/docs/backlog/dev-best-practices-hardening-story.md +69 -0
  88. package/docs/backlog/docs-public-internal-package-hygiene-story.md +62 -0
  89. package/docs/backlog/prompt-bank-registry-epic.md +159 -0
  90. package/docs/backlog/site-docs-manifest-story.md +56 -0
  91. package/docs/dev-team-specialist-role-profiles.md +1 -1
  92. package/docs/diagrams/diagram-master-prompt.md +207 -0
  93. package/docs/diagrams/enterprise-set/README.md +22 -0
  94. package/docs/diagrams/enterprise-set/lead-to-account-swimlanes.svg +38 -0
  95. package/docs/diagrams/enterprise-set/product-implementation-timeline.svg +45 -0
  96. package/docs/diagrams/enterprise-set/salesforce-enterprise-architecture.svg +54 -0
  97. package/docs/diagrams/experiments/pixel-v2-review.md +124 -0
  98. package/docs/diagrams/experiments/roadmap/diagram.mmd +14 -0
  99. package/docs/diagrams/experiments/roadmap/diagram.svg +48 -0
  100. package/docs/diagrams/experiments/roadmap/experiment.md +44 -0
  101. package/docs/diagrams/experiments/sfdc-implementation/diagram.mmd +54 -0
  102. package/docs/diagrams/experiments/sfdc-implementation/diagram.svg +72 -0
  103. package/docs/diagrams/experiments/sfdc-implementation/experiment.md +41 -0
  104. package/docs/diagrams/experiments/swimlane/diagram.mmd +40 -0
  105. package/docs/diagrams/experiments/swimlane/diagram.svg +70 -0
  106. package/docs/diagrams/experiments/swimlane/experiment.md +50 -0
  107. package/docs/diagrams/experiments/timeline/diagram.mmd +9 -0
  108. package/docs/diagrams/experiments/timeline/diagram.svg +29 -0
  109. package/docs/diagrams/experiments/timeline/experiment.md +34 -0
  110. package/docs/diagrams/final-artifact-hygiene.md +40 -0
  111. package/docs/diagrams/mermaid-target-strategy.md +106 -0
  112. package/docs/diagrams/payment-gateway/architecture.md +57 -0
  113. package/docs/diagrams/payment-gateway/architecture.mmd +39 -0
  114. package/docs/diagrams/payment-gateway/architecture.svg +171 -0
  115. package/docs/diagrams/prompt-bank.md +48 -0
  116. package/docs/diagrams/salesforce-integration/architecture.md +56 -0
  117. package/docs/diagrams/salesforce-integration/architecture.mmd +26 -0
  118. package/docs/diagrams/salesforce-integration/architecture.svg +123 -0
  119. package/docs/diagrams/source-fidelity-review.md +116 -0
  120. package/docs/diagrams/state-uml-recreated.drawio +336 -0
  121. package/docs/diagrams/state-uml-recreated.prompt.md +114 -0
  122. package/docs/diagrams/state-uml-recreated.prompt.v10.md +52 -0
  123. package/docs/diagrams/state-uml-recreated.prompt.v11.md +52 -0
  124. package/docs/diagrams/state-uml-recreated.prompt.v12.md +50 -0
  125. package/docs/diagrams/state-uml-recreated.prompt.v14.md +91 -0
  126. package/docs/diagrams/state-uml-recreated.prompt.v2.md +31 -0
  127. package/docs/diagrams/state-uml-recreated.prompt.v3.md +36 -0
  128. package/docs/diagrams/state-uml-recreated.prompt.v4.md +35 -0
  129. package/docs/diagrams/state-uml-recreated.prompt.v5.md +35 -0
  130. package/docs/diagrams/state-uml-recreated.prompt.v6.md +39 -0
  131. package/docs/diagrams/state-uml-recreated.prompt.v7.md +37 -0
  132. package/docs/diagrams/state-uml-recreated.prompt.v8.md +41 -0
  133. package/docs/diagrams/state-uml-recreated.prompt.v9.md +32 -0
  134. package/docs/diagrams/state-uml-recreated.svg +159 -0
  135. package/docs/diagrams/v14-stress-test/README.md +33 -0
  136. package/docs/diagrams/v14-stress-test/stress-test.svg +114 -0
  137. package/docs/external-artifact-import-bridge.md +56 -0
  138. package/docs/{setup-agents-applicability-review.md → external-baseline-applicability-review.md} +37 -40
  139. package/docs/{setup-agents-dogfooding-findings.md → external-baseline-dogfooding-findings.md} +10 -9
  140. package/docs/multi-agent-orchestrator-backlog.md +1 -1
  141. package/docs/orchestra-mvp.md +19 -0
  142. package/docs/persona-workflows.md +42 -0
  143. package/docs/release-test-matrix.md +21 -9
  144. package/docs/reports/ac-evidence-backfill-20260517.md +256 -0
  145. package/docs/reports/ac-evolution-reconciliation-20260517.md +366 -0
  146. package/docs/reports/ac-failure-evidence-20260517.md +115 -0
  147. package/docs/reports/ac-history-dry-run-20260517.md +434 -0
  148. package/docs/runtime-llm-flow.md +8 -0
  149. package/docs/site-content-workflow.md +96 -0
  150. package/docs/site-manifest.json +143 -0
  151. package/docs/skill-loading-strategy.md +19 -7
  152. package/docs/story-mapping-adoption-review.md +99 -0
  153. package/docs/traceability-flow.md +11 -0
  154. package/docs/workspace-repo-strategy.md +63 -0
  155. package/package.json +3 -1
  156. package/rules/agent-collaboration.mdc +2 -0
  157. package/rules/code-review-engineering.mdc +2 -0
  158. package/rules/delivery-quality-gates.mdc +12 -0
  159. package/rules/development-engineering.mdc +5 -0
  160. package/rules/devops-tooling.mdc +1 -0
  161. package/rules/diagram-quality.mdc +35 -0
  162. package/rules/dry-clean-code.mdc +1 -0
  163. package/rules/module-boundaries.mdc +71 -0
  164. package/rules/performance-reliability.mdc +1 -0
  165. package/rules/testing-discipline.mdc +17 -1
  166. package/skills/collection-standards/SKILL.md +65 -0
  167. package/skills/collection-standards/manifest.json +69 -0
  168. package/skills/diagram-export/SKILL.md +30 -0
  169. package/skills/qa-evidence-pack/SKILL.md +110 -0
  170. package/skills/qa-evidence-pack/manifest.json +60 -0
  171. package/docs/setup-agents-bridge.md +0 -61
  172. /package/dist/web-console/assets/{index-M3S0g1GK.js → index-BNESIVvk.js} +0 -0
@@ -0,0 +1,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 setup-agents prompt registry pattern is now part of Open Orchestra as a stack-agnostic `.generated-prompts/` scaffold. Specialist roles should use it as follows:
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>