@jterrats/open-orchestra 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +7 -2
- package/CLAUDE.md +2 -2
- package/README.md +3 -0
- package/dist/args.js +12 -2
- package/dist/args.js.map +1 -1
- package/dist/assets/web-console.js +44 -0
- package/dist/autonomous-phase-lifecycle.js +23 -3
- package/dist/autonomous-phase-lifecycle.js.map +1 -1
- package/dist/autonomous-run-state.js +2 -0
- package/dist/autonomous-run-state.js.map +1 -1
- package/dist/benchmark.js +6 -0
- package/dist/benchmark.js.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.js +4 -3
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-utils.js +4 -5
- package/dist/command-utils.js.map +1 -1
- package/dist/commands.d.ts +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/metrics-commands.js +8 -0
- package/dist/metrics-commands.js.map +1 -1
- package/dist/roles/core-roles.js +10 -5
- package/dist/roles/core-roles.js.map +1 -1
- package/dist/skills-catalog.js +67 -0
- package/dist/skills-catalog.js.map +1 -1
- package/dist/skills-commands.d.ts +1 -0
- package/dist/skills-commands.js +37 -1
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-planning.d.ts +2 -1
- package/dist/skills-planning.js +79 -11
- package/dist/skills-planning.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/task-graph-commands.js +36 -8
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/types/metrics.d.ts +2 -0
- package/dist/types/skills.d.ts +9 -0
- package/dist/types/tasks.d.ts +8 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js.map +1 -1
- package/dist/web-api.js +80 -7
- package/dist/web-api.js.map +1 -1
- package/dist/workflow-approval-service.js +13 -0
- package/dist/workflow-approval-service.js.map +1 -1
- package/dist/workflow-evidence-service.js +37 -2
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.js +56 -1
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-phase-planner.js +51 -9
- package/dist/workflow-phase-planner.js.map +1 -1
- package/dist/workflow-run-commands.d.ts +1 -0
- package/dist/workflow-run-commands.js +11 -6
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.js +24 -0
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.js +27 -2
- package/dist/workflow-task-service.js.map +1 -1
- package/docs/adoption-guide.md +22 -1
- package/docs/advisory-supervisor-architecture.md +206 -0
- package/docs/architecture.md +47 -41
- package/docs/autonomous-workflow.md +2 -2
- package/docs/backlog/ac-evidence-bugfix-stories-20260517.md +76 -0
- package/docs/backlog/dev-best-practices-hardening-story.md +69 -0
- package/docs/backlog/docs-public-internal-package-hygiene-story.md +62 -0
- package/docs/backlog/prompt-bank-registry-epic.md +159 -0
- package/docs/backlog/site-docs-manifest-story.md +56 -0
- package/docs/dev-team-specialist-role-profiles.md +1 -1
- package/docs/diagrams/diagram-master-prompt.md +207 -0
- package/docs/diagrams/enterprise-set/README.md +22 -0
- package/docs/diagrams/enterprise-set/lead-to-account-swimlanes.svg +38 -0
- package/docs/diagrams/enterprise-set/product-implementation-timeline.svg +45 -0
- package/docs/diagrams/enterprise-set/salesforce-enterprise-architecture.svg +54 -0
- package/docs/diagrams/experiments/pixel-v2-review.md +124 -0
- package/docs/diagrams/experiments/roadmap/diagram.mmd +14 -0
- package/docs/diagrams/experiments/roadmap/diagram.svg +48 -0
- package/docs/diagrams/experiments/roadmap/experiment.md +44 -0
- package/docs/diagrams/experiments/sfdc-implementation/diagram.mmd +54 -0
- package/docs/diagrams/experiments/sfdc-implementation/diagram.svg +72 -0
- package/docs/diagrams/experiments/sfdc-implementation/experiment.md +41 -0
- package/docs/diagrams/experiments/swimlane/diagram.mmd +40 -0
- package/docs/diagrams/experiments/swimlane/diagram.svg +70 -0
- package/docs/diagrams/experiments/swimlane/experiment.md +50 -0
- package/docs/diagrams/experiments/timeline/diagram.mmd +9 -0
- package/docs/diagrams/experiments/timeline/diagram.svg +29 -0
- package/docs/diagrams/experiments/timeline/experiment.md +34 -0
- package/docs/diagrams/final-artifact-hygiene.md +40 -0
- package/docs/diagrams/mermaid-target-strategy.md +106 -0
- package/docs/diagrams/payment-gateway/architecture.md +57 -0
- package/docs/diagrams/payment-gateway/architecture.mmd +39 -0
- package/docs/diagrams/payment-gateway/architecture.svg +171 -0
- package/docs/diagrams/prompt-bank.md +48 -0
- package/docs/diagrams/salesforce-integration/architecture.md +56 -0
- package/docs/diagrams/salesforce-integration/architecture.mmd +26 -0
- package/docs/diagrams/salesforce-integration/architecture.svg +123 -0
- package/docs/diagrams/source-fidelity-review.md +116 -0
- package/docs/diagrams/state-uml-recreated.drawio +336 -0
- package/docs/diagrams/state-uml-recreated.prompt.md +114 -0
- package/docs/diagrams/state-uml-recreated.prompt.v10.md +52 -0
- package/docs/diagrams/state-uml-recreated.prompt.v11.md +52 -0
- package/docs/diagrams/state-uml-recreated.prompt.v12.md +50 -0
- package/docs/diagrams/state-uml-recreated.prompt.v14.md +91 -0
- package/docs/diagrams/state-uml-recreated.prompt.v2.md +31 -0
- package/docs/diagrams/state-uml-recreated.prompt.v3.md +36 -0
- package/docs/diagrams/state-uml-recreated.prompt.v4.md +35 -0
- package/docs/diagrams/state-uml-recreated.prompt.v5.md +35 -0
- package/docs/diagrams/state-uml-recreated.prompt.v6.md +39 -0
- package/docs/diagrams/state-uml-recreated.prompt.v7.md +37 -0
- package/docs/diagrams/state-uml-recreated.prompt.v8.md +41 -0
- package/docs/diagrams/state-uml-recreated.prompt.v9.md +32 -0
- package/docs/diagrams/state-uml-recreated.svg +159 -0
- package/docs/diagrams/v14-stress-test/README.md +33 -0
- package/docs/diagrams/v14-stress-test/stress-test.svg +114 -0
- package/docs/external-artifact-import-bridge.md +56 -0
- package/docs/{setup-agents-applicability-review.md → external-baseline-applicability-review.md} +37 -40
- package/docs/{setup-agents-dogfooding-findings.md → external-baseline-dogfooding-findings.md} +10 -9
- package/docs/multi-agent-orchestrator-backlog.md +1 -1
- package/docs/orchestra-mvp.md +19 -0
- package/docs/persona-workflows.md +42 -0
- package/docs/release-test-matrix.md +21 -9
- package/docs/reports/ac-evidence-backfill-20260517.md +256 -0
- package/docs/reports/ac-evolution-reconciliation-20260517.md +366 -0
- package/docs/reports/ac-failure-evidence-20260517.md +115 -0
- package/docs/reports/ac-history-dry-run-20260517.md +434 -0
- package/docs/runtime-llm-flow.md +8 -0
- package/docs/site-content-workflow.md +96 -0
- package/docs/site-manifest.json +143 -0
- package/docs/skill-loading-strategy.md +18 -7
- package/docs/story-mapping-adoption-review.md +99 -0
- package/docs/workspace-repo-strategy.md +63 -0
- package/package.json +3 -1
- package/rules/agent-collaboration.mdc +2 -0
- package/rules/code-review-engineering.mdc +2 -0
- package/rules/delivery-quality-gates.mdc +12 -0
- package/rules/development-engineering.mdc +3 -0
- package/rules/diagram-quality.mdc +35 -0
- package/rules/module-boundaries.mdc +71 -0
- package/rules/testing-discipline.mdc +13 -0
- package/skills/collection-standards/SKILL.md +2 -0
- package/skills/diagram-export/SKILL.md +30 -0
- package/skills/qa-evidence-pack/SKILL.md +110 -0
- package/skills/qa-evidence-pack/manifest.json +60 -0
- package/docs/setup-agents-bridge.md +0 -61
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Public Site Content Workflow
|
|
2
|
+
|
|
3
|
+
The public site is a generated documentation surface. The source of truth stays
|
|
4
|
+
in versioned documentation, while React renders a compact generated content
|
|
5
|
+
module.
|
|
6
|
+
|
|
7
|
+
## Source Of Truth
|
|
8
|
+
|
|
9
|
+
- `docs/site-manifest.json` defines the public-site navigation, source
|
|
10
|
+
documents, section headings, launch links, and role labels used by the site.
|
|
11
|
+
- `README.md` and focused documents under `docs/` provide the public copy that
|
|
12
|
+
appears on the site.
|
|
13
|
+
- `scripts/generate-site-content.js` reads the manifest and referenced
|
|
14
|
+
markdown, validates headings, extracts concise public copy, and writes
|
|
15
|
+
`site/src/generated-site-content.js`.
|
|
16
|
+
- `site/src/App.jsx` consumes `siteContent` from the generated module. It should
|
|
17
|
+
not own long-form public copy, command lists, launch links, persona labels, or
|
|
18
|
+
documentation summaries directly.
|
|
19
|
+
|
|
20
|
+
This keeps docs and site copy aligned. To change public site wording, update the
|
|
21
|
+
authoritative markdown or the manifest structure, then regenerate the site
|
|
22
|
+
content.
|
|
23
|
+
|
|
24
|
+
## Diagram Contract
|
|
25
|
+
|
|
26
|
+
The architecture diagram has two public sources that must stay aligned:
|
|
27
|
+
|
|
28
|
+
- `site/public/architecture.mmd` is the Mermaid file served by the React + Vite
|
|
29
|
+
site.
|
|
30
|
+
- `docs/architecture.md` embeds the same Mermaid diagram for markdown readers
|
|
31
|
+
and links back to the served source.
|
|
32
|
+
|
|
33
|
+
When the site diagram changes, update both files in the same task and validate
|
|
34
|
+
the rendered site. Diagram changes should follow the reusable quality rules in
|
|
35
|
+
`docs/diagrams/diagram-master-prompt.md`: readable labels, visible connector
|
|
36
|
+
endpoints, contained text, balanced spacing, and a whole-canvas recheck after
|
|
37
|
+
each correction.
|
|
38
|
+
|
|
39
|
+
## Local Commands
|
|
40
|
+
|
|
41
|
+
Regenerate generated site content:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm run site:content
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Build the public site:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm run site:build
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Run the local public site:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm run site:dev
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The `site` workspace also regenerates content before `npm run dev` and
|
|
60
|
+
`npm run build`, so local preview and production builds use the same generated
|
|
61
|
+
content path.
|
|
62
|
+
|
|
63
|
+
## Required Review
|
|
64
|
+
|
|
65
|
+
Use Technical Writer review for work that touches user-facing documentation or
|
|
66
|
+
site copy. The existing `technical_writer` role owns user docs, technical docs,
|
|
67
|
+
runbooks, release notes, help content, support-facing copy, and documentation
|
|
68
|
+
blocking authority.
|
|
69
|
+
|
|
70
|
+
Technical Writer review is required when a task changes:
|
|
71
|
+
|
|
72
|
+
- `README.md`;
|
|
73
|
+
- public docs under `docs/`;
|
|
74
|
+
- changelog or release notes;
|
|
75
|
+
- public site copy, launch links, command examples, or persona labels;
|
|
76
|
+
- help content, runbooks, migration guidance, or support-facing docs.
|
|
77
|
+
|
|
78
|
+
The workflow phase planner recommends `docs_review` for docs, README,
|
|
79
|
+
changelog, public site, site copy, and help-content changes. The review should
|
|
80
|
+
confirm audience fit, source-of-truth ownership, link correctness, command
|
|
81
|
+
accuracy, generated-content alignment, and whether release notes are needed.
|
|
82
|
+
|
|
83
|
+
## QA Evidence
|
|
84
|
+
|
|
85
|
+
For public site or docs-driven content changes, attach evidence for:
|
|
86
|
+
|
|
87
|
+
- `npm run site:build`;
|
|
88
|
+
- `npm run lint` when code, generated files, or docs formatting are touched;
|
|
89
|
+
- `npm run build` when package-level build contracts may be affected;
|
|
90
|
+
- Playwright screenshots for desktop and mobile when layout, diagrams, or
|
|
91
|
+
visible site content changes;
|
|
92
|
+
- manual visual review of responsive spacing, text wrapping, diagram rendering,
|
|
93
|
+
and horizontal overflow.
|
|
94
|
+
|
|
95
|
+
If a visual issue is found, fix it, regenerate content if needed, re-render, and
|
|
96
|
+
capture fresh screenshots before handoff.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repositoryUrl": "https://github.com/jterrats/open-orchestra",
|
|
3
|
+
"packageUrl": "https://www.npmjs.com/package/@jterrats/open-orchestra",
|
|
4
|
+
"nav": [
|
|
5
|
+
{ "href": "https://jterrats.dev", "label": "Main site" }
|
|
6
|
+
],
|
|
7
|
+
"pages": [
|
|
8
|
+
{
|
|
9
|
+
"path": "/",
|
|
10
|
+
"label": "Home",
|
|
11
|
+
"title": "Start with governed local delivery",
|
|
12
|
+
"sections": ["hero", "quickstart", "capabilities"]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"path": "/docs",
|
|
16
|
+
"label": "Docs",
|
|
17
|
+
"title": "Documentation map",
|
|
18
|
+
"sections": ["docsCatalog"]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"path": "/console",
|
|
22
|
+
"label": "Web Console",
|
|
23
|
+
"title": "Local web console",
|
|
24
|
+
"sections": ["consoleGuide"]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "/personas",
|
|
28
|
+
"label": "Personas",
|
|
29
|
+
"title": "Work by role",
|
|
30
|
+
"sections": ["personas", "workflow"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "/architecture",
|
|
34
|
+
"label": "Architecture",
|
|
35
|
+
"title": "Architecture and system boundaries",
|
|
36
|
+
"sections": ["architecture"]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"path": "/release",
|
|
40
|
+
"label": "Release",
|
|
41
|
+
"title": "Release readiness",
|
|
42
|
+
"sections": ["releaseGuide"]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"path": "/reference",
|
|
46
|
+
"label": "Reference",
|
|
47
|
+
"title": "Command and integration reference",
|
|
48
|
+
"sections": ["referenceGuide"]
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"hero": {
|
|
52
|
+
"source": "README.md",
|
|
53
|
+
"heading": "Open Orchestra"
|
|
54
|
+
},
|
|
55
|
+
"quickstart": {
|
|
56
|
+
"source": "README.md",
|
|
57
|
+
"heading": "First Visible Value"
|
|
58
|
+
},
|
|
59
|
+
"capabilities": {
|
|
60
|
+
"source": "README.md",
|
|
61
|
+
"heading": "Core Product Surface"
|
|
62
|
+
},
|
|
63
|
+
"architecture": {
|
|
64
|
+
"source": "docs/architecture.md",
|
|
65
|
+
"heading": "Architecture"
|
|
66
|
+
},
|
|
67
|
+
"personas": {
|
|
68
|
+
"source": "docs/persona-workflows.md",
|
|
69
|
+
"headings": [
|
|
70
|
+
{ "heading": "Product Owner Refinement", "label": "PO" },
|
|
71
|
+
{ "heading": "Developer Execution", "label": "Dev" },
|
|
72
|
+
{ "heading": "QA Validation", "label": "QA" },
|
|
73
|
+
{ "heading": "Tech Lead Oversight", "label": "TL" },
|
|
74
|
+
{ "heading": "Release Management", "label": "RM" },
|
|
75
|
+
{ "heading": "Technical Writer Review", "label": "TW" }
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"workflow": {
|
|
79
|
+
"source": "docs/orchestra-mvp.md"
|
|
80
|
+
},
|
|
81
|
+
"launch": {
|
|
82
|
+
"links": [
|
|
83
|
+
{
|
|
84
|
+
"title": "Install",
|
|
85
|
+
"label": "npm",
|
|
86
|
+
"href": "https://www.npmjs.com/package/@jterrats/open-orchestra",
|
|
87
|
+
"source": "README.md",
|
|
88
|
+
"heading": "Quick Start"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"title": "Quickstart",
|
|
92
|
+
"label": "README",
|
|
93
|
+
"href": "https://github.com/jterrats/open-orchestra#quick-start",
|
|
94
|
+
"source": "README.md",
|
|
95
|
+
"heading": "First Visible Value"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"title": "Release matrix",
|
|
99
|
+
"label": "docs/release-test-matrix.md",
|
|
100
|
+
"source": "docs/release-test-matrix.md",
|
|
101
|
+
"heading": "1.0.0 Release Test Matrix"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"title": "Runtime adapters",
|
|
105
|
+
"label": "docs/runtime-adapters.md",
|
|
106
|
+
"source": "docs/runtime-adapters.md",
|
|
107
|
+
"heading": "Runtime Adapters"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
"docs": {
|
|
112
|
+
"links": [
|
|
113
|
+
{ "title": "Adoption guide", "source": "docs/adoption-guide.md", "heading": "Open Orchestra 1.0.0 Adoption Guide" },
|
|
114
|
+
{ "title": "Core command surface", "source": "docs/core-command-surface.md", "heading": "Core Command Surface" },
|
|
115
|
+
{ "title": "Runtime adapters", "source": "docs/runtime-adapters.md", "heading": "Runtime Adapters" },
|
|
116
|
+
{ "title": "Site content workflow", "source": "docs/site-content-workflow.md", "heading": "Public Site Content Workflow" }
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"releaseDocs": {
|
|
120
|
+
"links": [
|
|
121
|
+
{ "title": "Release test matrix", "source": "docs/release-test-matrix.md", "heading": "1.0.0 Release Test Matrix" },
|
|
122
|
+
{ "title": "QA evidence", "source": "docs/site-content-workflow.md", "heading": "QA Evidence" },
|
|
123
|
+
{ "title": "Package naming", "source": "docs/package-naming.md", "heading": "Package Naming Decision" },
|
|
124
|
+
{ "title": "Upgrade dogfooding", "source": "README.md", "heading": "Quick Start" }
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
"console": {
|
|
128
|
+
"links": [
|
|
129
|
+
{ "title": "Web console QA", "source": "docs/web-console-qa.md", "heading": "Web Console QA Notes" },
|
|
130
|
+
{ "title": "Local web console", "source": "docs/orchestra-mvp.md", "heading": "Commands" },
|
|
131
|
+
{ "title": "Workflow progress API", "source": "README.md", "heading": "1.0.0 Workflow Tooling" },
|
|
132
|
+
{ "title": "Delivery dashboard", "source": "docs/adoption-guide.md", "heading": "Release Operations" }
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
"reference": {
|
|
136
|
+
"links": [
|
|
137
|
+
{ "title": "Command contracts", "source": "docs/command-contracts.md", "heading": "Command Contracts" },
|
|
138
|
+
{ "title": "Runtime LLM flow", "source": "docs/runtime-llm-flow.md", "heading": "Runtime LLM Flow" },
|
|
139
|
+
{ "title": "Tracker adapter contract", "source": "docs/tracker-adapter-contract.md", "heading": "Tracker Adapter Contract" },
|
|
140
|
+
{ "title": "Source of truth and learning", "source": "docs/source-of-truth-and-agent-learning.md", "heading": "Source of Truth and Agent Learning" }
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
}
|
|
@@ -46,12 +46,22 @@ Skill manifests should be able to declare `sourceGroups` so the orchestrator can
|
|
|
46
46
|
|
|
47
47
|
1. Parse the task brief into goal, touched paths, impacted systems, requested outputs, risk areas, and likely roles.
|
|
48
48
|
2. Activate roles from the role catalog.
|
|
49
|
-
3. Match task signals against skill manifests by triggers, paths,
|
|
50
|
-
4.
|
|
51
|
-
5. Load
|
|
52
|
-
6. Load
|
|
53
|
-
7. Load
|
|
54
|
-
8.
|
|
49
|
+
3. Match task signals against skill manifests by triggers, paths, runtime phase, requested evidence, and risk areas.
|
|
50
|
+
4. Use roles and capabilities as eligibility and ranking signals, not as automatic activation. A role may be allowed to use a skill without loading it for every task owned by that role.
|
|
51
|
+
5. Load only the selected skill summaries first.
|
|
52
|
+
6. Load the full `SKILL.md` only when the skill is needed for execution or review.
|
|
53
|
+
7. Load matching source-of-truth entries and recent relevant lessons for the selected skills.
|
|
54
|
+
8. Load skill assets, templates, scripts, or examples only at the point of use.
|
|
55
|
+
9. Record selected skills and source groups in task context, handoffs, evidence, and final summary.
|
|
56
|
+
|
|
57
|
+
## Runtime Activation
|
|
58
|
+
|
|
59
|
+
Skill planning separates availability from activation:
|
|
60
|
+
|
|
61
|
+
- **Available:** the role and capability catalog says a profile is allowed to use a skill.
|
|
62
|
+
- **Activated:** the current task, phase, risks, acceptance criteria, evidence needs, touched paths, or explicit user request require that skill now.
|
|
63
|
+
|
|
64
|
+
For example, Architect can use `qa-evidence-pack` to validate ADRs, diagrams, contracts, and architecture decisions, but it should only load that skill when the task asks for QA evidence, acceptance coverage, integration verification, visual evidence, or release evidence. The same rule applies to every profile: QA, Developer, DevOps, SRE, PO, BA, Release, and specialist roles should receive only the skills needed for the active runtime context.
|
|
55
65
|
|
|
56
66
|
## Built-in Skill Candidates
|
|
57
67
|
|
|
@@ -92,7 +102,8 @@ Primary MD files should stay bounded:
|
|
|
92
102
|
## Implemented CLI Surface
|
|
93
103
|
|
|
94
104
|
- `orchestra skills list` lists the canonical built-in skill catalog.
|
|
95
|
-
- `orchestra skills plan --task <id>` selects skills from task
|
|
105
|
+
- `orchestra skills plan --task <id>` selects skills from runtime task signals, paths, risks, acceptance/evidence needs, and role/capability eligibility.
|
|
106
|
+
- `orchestra skills advise --prompt <text> [--role <role>] [--phase <phase>] [--risks <csv>] [--evidence <csv>] [--json]` selects skills from advisory or prompt-only runtime signals without requiring a registered task first.
|
|
96
107
|
- `orchestra skills render --target generic|claude|cursor|codex|vscode --task <id>` renders selected skills for a runtime or IDE.
|
|
97
108
|
- `orchestra skills render --target <target> --skills <csv>` renders explicit skills when no task exists.
|
|
98
109
|
- `orchestra skills validate` validates canonical skills against portable `manifest.json` and `SKILL.md` files.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Story Mapping Adoption Review
|
|
2
|
+
|
|
3
|
+
Task: STORY-MAPPING-SKILL-ADOPTION
|
|
4
|
+
Date: 2026-05-16
|
|
5
|
+
|
|
6
|
+
## Current Assessment
|
|
7
|
+
|
|
8
|
+
Open Orchestra has partial story map support in `src/lucid-story-map.ts`:
|
|
9
|
+
|
|
10
|
+
- deterministic Lucidspark payload creation.
|
|
11
|
+
- stable IDs for capabilities, features, business stories, and technical stories.
|
|
12
|
+
- update/reflow diff support.
|
|
13
|
+
- grouping banner reflow tests in `test/lucid-story-map.test.js`.
|
|
14
|
+
|
|
15
|
+
The reviewed external baseline has a broader reusable Story Mapping skill:
|
|
16
|
+
|
|
17
|
+
- Jeff Patton-style markdown template.
|
|
18
|
+
- personas, epics, user stories, priorities, and Gherkin acceptance criteria.
|
|
19
|
+
- Mermaid story map generation rules.
|
|
20
|
+
- Mermaid PDF rendering script and truncation-safe CSS.
|
|
21
|
+
- Lucidspark board constants, color map, layout zones, cache contract, update mode,
|
|
22
|
+
reflow mode, conflict handling, grouping banner resizing, and UTF-8 title safety.
|
|
23
|
+
|
|
24
|
+
Conclusion: Open Orchestra has the engine-level Lucidspark payload foundation, but
|
|
25
|
+
does not yet expose Story Mapping as a first-class skill/workflow capability.
|
|
26
|
+
|
|
27
|
+
## Reusable Patterns
|
|
28
|
+
|
|
29
|
+
Bring these patterns into Open Orchestra:
|
|
30
|
+
|
|
31
|
+
- `story-mapping` skill metadata and trigger routing for `story map`, `story mapping`,
|
|
32
|
+
`epic breakdown`, `backlog visualization`, and `release planning map`.
|
|
33
|
+
- Markdown story map template with personas, priority legend, epics, user stories, and
|
|
34
|
+
acceptance criteria.
|
|
35
|
+
- Mermaid story map output path for lightweight offline rendering and evidence.
|
|
36
|
+
- PDF/SVG render validation that checks for parser failures and suspiciously small output.
|
|
37
|
+
- Lucidspark cache contract for create/update/reflow operations.
|
|
38
|
+
- Conflict rules: preserve untracked board items, require confirmation before deletes,
|
|
39
|
+
and preserve manual positions during update mode.
|
|
40
|
+
- UTF-8 title safety for Lucid MCP document titles.
|
|
41
|
+
|
|
42
|
+
## Existing Open Orchestra Strengths
|
|
43
|
+
|
|
44
|
+
Do not replace these existing Open Orchestra rules:
|
|
45
|
+
|
|
46
|
+
- `src/lucid-story-map.ts` already has a narrow typed payload model and tests.
|
|
47
|
+
- `skills/diagram-export/SKILL.md` already includes the newer high-fidelity diagram
|
|
48
|
+
rules added during UML recreation: diagram contracts, post-render visual QA,
|
|
49
|
+
connector endpoint checks, line crossing review, editable/rendered equivalence, and
|
|
50
|
+
source-free validation.
|
|
51
|
+
- `rules/diagram-quality.mdc` already captures stricter draw.io/SVG fidelity rules
|
|
52
|
+
than the external baseline.
|
|
53
|
+
|
|
54
|
+
## Suggested Adoption Scope
|
|
55
|
+
|
|
56
|
+
1. Add `skills/story-mapping/SKILL.md` and `manifest.json`.
|
|
57
|
+
2. Register `story-mapping` in `src/skills-catalog.ts` for product owner, product
|
|
58
|
+
manager, analyst/business analyst, architect, and UX/UI designer roles.
|
|
59
|
+
3. Add markdown-to-story-map parsing or a documented source JSON contract that feeds
|
|
60
|
+
`createLucidsparkStoryMap`.
|
|
61
|
+
4. Add local Mermaid `.mmd` generation for story maps so offline agents can produce
|
|
62
|
+
evidence without Lucid.
|
|
63
|
+
5. Add render evidence helpers using the existing `orchestra diagrams lint` path where
|
|
64
|
+
Mermaid is used.
|
|
65
|
+
6. Extend tests to cover markdown template generation, Mermaid source generation,
|
|
66
|
+
Lucidspark cache behavior, update mode, delete confirmation, and reflow.
|
|
67
|
+
|
|
68
|
+
## Diagram Rules Comparison
|
|
69
|
+
|
|
70
|
+
External baseline diagram rules to consider:
|
|
71
|
+
|
|
72
|
+
- Salesforce Architect diagram type decision matrix.
|
|
73
|
+
- schema-first Lucid MCP payload workflow.
|
|
74
|
+
- one-call-per-diagram Lucid creation.
|
|
75
|
+
- post-write Lucid validation for duplicates, icon-text gaps, bounds, phantom text,
|
|
76
|
+
and orphan items.
|
|
77
|
+
- multi-page diagram payload guidance.
|
|
78
|
+
- token-efficient visual editing guidance: push to visual tools and avoid chat-only
|
|
79
|
+
pixel nudging where a visual tool is available.
|
|
80
|
+
|
|
81
|
+
Open Orchestra already has:
|
|
82
|
+
|
|
83
|
+
- diagram lint command and evidence recording.
|
|
84
|
+
- prompt registry coverage for `diagrams.md`.
|
|
85
|
+
- high-fidelity draw.io/SVG quality rules from the UML recreation iterations.
|
|
86
|
+
- source-free diagram contract requirement.
|
|
87
|
+
|
|
88
|
+
Recommendation: merge external baseline Lucid-specific operational checks and story-map
|
|
89
|
+
skill model into Open Orchestra, but keep Open Orchestra's stricter high-fidelity
|
|
90
|
+
diagram QA rules as the master visual quality layer.
|
|
91
|
+
|
|
92
|
+
## Open Questions
|
|
93
|
+
|
|
94
|
+
- Should Story Mapping be a CLI command (`orchestra story-map ...`) or remain a skill
|
|
95
|
+
invoked by workflow roles?
|
|
96
|
+
- Should markdown be the source of truth, or should Open Orchestra use a typed JSON
|
|
97
|
+
source file and generate markdown/Mermaid/Lucidspark from it?
|
|
98
|
+
- Should Lucid/Lucidspark cache files live in `docs/story-map/.cache/` or under
|
|
99
|
+
`.agent-workflow/artifacts/story-map/`?
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Workspace And Repository Strategy
|
|
2
|
+
|
|
3
|
+
## Current Position
|
|
4
|
+
|
|
5
|
+
Open Orchestra uses npm workspaces while the package, web console, public site,
|
|
6
|
+
and VS Code extension are still evolving together.
|
|
7
|
+
|
|
8
|
+
This keeps local development coherent:
|
|
9
|
+
|
|
10
|
+
- one root install;
|
|
11
|
+
- one lockfile;
|
|
12
|
+
- one build/test surface for release validation;
|
|
13
|
+
- shared issue, workflow, and evidence history;
|
|
14
|
+
- simpler refactors while contracts are still changing.
|
|
15
|
+
|
|
16
|
+
## Future Direction
|
|
17
|
+
|
|
18
|
+
Move workspace packages to independent repositories when their release cadence,
|
|
19
|
+
ownership, or distribution channels become meaningfully independent.
|
|
20
|
+
|
|
21
|
+
Likely split candidates:
|
|
22
|
+
|
|
23
|
+
- `site`: public/docs site, deployable independently.
|
|
24
|
+
- `web-console`: React/Vite console if it becomes a standalone app or SaaS
|
|
25
|
+
frontend.
|
|
26
|
+
- `extensions/vscode-open-orchestra`: VS Code marketplace extension with its own
|
|
27
|
+
packaging, versioning, and release checks.
|
|
28
|
+
- SaaS services or prompt registry components when they need separate runtime,
|
|
29
|
+
scaling, security, or deployment ownership.
|
|
30
|
+
|
|
31
|
+
## Split Criteria
|
|
32
|
+
|
|
33
|
+
Consider extracting a workspace when at least one is true:
|
|
34
|
+
|
|
35
|
+
- it has a different release cadence from the CLI package;
|
|
36
|
+
- it has a different deployment target or CI/CD pipeline;
|
|
37
|
+
- it needs separate access control, secrets, or infrastructure ownership;
|
|
38
|
+
- it has a distinct package registry or marketplace release process;
|
|
39
|
+
- changes frequently require isolated review or rollback;
|
|
40
|
+
- its dependency graph materially conflicts with the root package;
|
|
41
|
+
- external contributors should work on it without touching CLI internals.
|
|
42
|
+
|
|
43
|
+
## Non-Goals For Now
|
|
44
|
+
|
|
45
|
+
- Do not split repositories before package boundaries and contracts stabilize.
|
|
46
|
+
- Do not duplicate shared workflow rules across repos manually.
|
|
47
|
+
- Do not move code only to reduce directory count.
|
|
48
|
+
|
|
49
|
+
## Migration Guardrails
|
|
50
|
+
|
|
51
|
+
Before extracting a workspace:
|
|
52
|
+
|
|
53
|
+
- define the public contract between the CLI and the extracted package;
|
|
54
|
+
- move shared types or protocol definitions into a versioned package or schema;
|
|
55
|
+
- preserve issue/task traceability across repos;
|
|
56
|
+
- keep release notes and compatibility expectations explicit;
|
|
57
|
+
- ensure local/offline development remains possible;
|
|
58
|
+
- keep Open Orchestra managed instruction blocks project-local and non-invasive.
|
|
59
|
+
|
|
60
|
+
## Decision
|
|
61
|
+
|
|
62
|
+
Use npm workspaces now. Plan for independent repositories later, once package
|
|
63
|
+
boundaries, release cadence, ownership, and deployment needs justify the split.
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jterrats/open-orchestra",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"workspaces": [
|
|
6
|
+
"extensions/vscode-open-orchestra",
|
|
6
7
|
"site",
|
|
7
8
|
"web-console"
|
|
8
9
|
],
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
"build:web": "npm run build:web:legacy && npm run build:web:react",
|
|
29
30
|
"build:web:legacy": "esbuild src/web-console-client.js --bundle --format=esm --platform=browser --target=es2022 --outfile=dist/assets/web-console.js",
|
|
30
31
|
"build:web:react": "npm --workspace @jterrats/open-orchestra-web-console run build",
|
|
32
|
+
"site:content": "node scripts/generate-site-content.js",
|
|
31
33
|
"site:build": "npm --workspace @jterrats/open-orchestra-site run build",
|
|
32
34
|
"site:dev": "npm --workspace @jterrats/open-orchestra-site run dev -- --host 127.0.0.1"
|
|
33
35
|
},
|
|
@@ -22,6 +22,8 @@ Agents must collaborate through explicit artifacts and review checkpoints. Paral
|
|
|
22
22
|
|
|
23
23
|
## Collaboration Flow
|
|
24
24
|
- Product Owner and Analyst define acceptance criteria before Developer or QA treat the task as ready.
|
|
25
|
+
- Product Owner and Business Analyst must validate user stories, definitions, assumptions, acceptance criteria, non-goals, and priority with the user before approving the `po→architect` handoff.
|
|
26
|
+
- If user validation is missing or scope is still ambiguous, keep the task in refinement, record the open question, and do not route it to Architect as ready-for-design.
|
|
25
27
|
- Architect and Security review designs before implementation when work touches boundaries, data, auth, infra, or external integrations.
|
|
26
28
|
- UX/UI Designer reviews user-facing flows before implementation when the task changes screens, copy, navigation, onboarding, or accessibility.
|
|
27
29
|
- SRE, DBA, Compliance/Privacy, and Release Manager review before release when reliability, database, regulatory, or rollout risk is material.
|
|
@@ -14,6 +14,7 @@ Code review protects behavior, users, operations, and maintainability. Review ri
|
|
|
14
14
|
- Confirm evidence: commands run, screenshots, logs, traces, benchmarks, or QA results when relevant.
|
|
15
15
|
|
|
16
16
|
## Required Checks
|
|
17
|
+
- Module boundaries: file size, responsibility, layer placement, command/controller thinness, and god-file risk.
|
|
17
18
|
- API changes: contract, compatibility, auth, validation, rate limits, and error shape.
|
|
18
19
|
- Data changes: migrations, indexes, constraints, backfills, rollback, and sensitive data handling.
|
|
19
20
|
- UI changes: responsive layout, accessibility, copy, states, and screenshots.
|
|
@@ -29,6 +30,7 @@ Code review protects behavior, users, operations, and maintainability. Review ri
|
|
|
29
30
|
|
|
30
31
|
## Self-Review
|
|
31
32
|
- Authors must review their own diff before requesting review.
|
|
33
|
+
- Authors must confirm large-file additions, command-module logic, and repeated hardcoded collections were either avoided, extracted, or recorded as explicit debt.
|
|
32
34
|
- Remove debug code, dead code, unrelated formatting, and accidental files.
|
|
33
35
|
- Summarize architectural decisions, trade-offs, test evidence, and known gaps in the PR.
|
|
34
36
|
- Confirm static analysis and required hooks passed before requesting review.
|
|
@@ -8,6 +8,7 @@ alwaysApply: true
|
|
|
8
8
|
Development work is not complete when code compiles. Every implementation must move through developer verification, QA review, automation planning, and evidence capture.
|
|
9
9
|
|
|
10
10
|
## Developer Gate
|
|
11
|
+
|
|
11
12
|
- Developer delivers code with unit tests for new or changed business logic.
|
|
12
13
|
- Unit tests must cover success paths, failure paths, and relevant boundary cases.
|
|
13
14
|
- Developer must run the focused unit test suite and report the exact command and result.
|
|
@@ -15,25 +16,36 @@ Development work is not complete when code compiles. Every implementation must m
|
|
|
15
16
|
- Developer must address API, data, frontend, performance, concurrency, config, and AI-assisted development rules when the change touches those areas.
|
|
16
17
|
|
|
17
18
|
## QA Gate
|
|
19
|
+
|
|
18
20
|
- QA receives the Developer handoff before release approval.
|
|
19
21
|
- QA must produce a test plan covering acceptance criteria, regression areas, edge cases, data setup, and environment assumptions.
|
|
20
22
|
- QA must execute or explicitly defer each test case with a reason.
|
|
21
23
|
- QA findings must include severity, reproduction steps, expected result, actual result, and evidence.
|
|
24
|
+
- QA execution must be reviewable through a sprint-review-style evidence demo before release approval. Analyst/BA compares the executed evidence against the GitHub issue, user story, acceptance criteria, and Orchestra task; Architect reviews whether the tests cover architecture contracts, boundaries, integrations, data flow, and risk areas.
|
|
25
|
+
- Analyst/BA must record comments on the GitHub issue/user story and the Orchestra task when evidence does not prove the requested behavior, acceptance criteria, or business workflow. Those findings block release until fixed or explicitly accepted as risk by the Product Owner.
|
|
26
|
+
- QA approval is incomplete when only QA signs off on execution. Record Analyst/BA and Architect review outcomes, or document why a role is not applicable with Product Owner acceptance.
|
|
22
27
|
|
|
23
28
|
## Automation Gate
|
|
29
|
+
|
|
24
30
|
- QA and Developer must identify which manual checks should become automated tests.
|
|
25
31
|
- Prefer Playwright for browser-based E2E, smoke, and regression flows.
|
|
26
32
|
- Use Page Object pattern for Playwright suites. Selectors belong in page objects or stable test helpers, not scattered through test bodies.
|
|
27
33
|
- Automated tests must be deterministic and avoid real network, clock, or randomness unless controlled by fixtures, mocks, or seeded data.
|
|
28
34
|
|
|
29
35
|
## Evidence Gate
|
|
36
|
+
|
|
30
37
|
- Every completed delivery must include test evidence: commands run, pass/fail result, logs or screenshots when relevant, and unresolved risks.
|
|
38
|
+
- Evidence must be packaged for human review, not only recorded as command status. Use compact reports that map acceptance criteria to tests, results, and artifact paths.
|
|
31
39
|
- Playwright evidence should include trace, screenshot, or video for failed E2E cases when the framework supports it.
|
|
32
40
|
- User-facing delivery should include screenshots or recordings for key responsive breakpoints when practical.
|
|
33
41
|
- Manual QA evidence should include tested build/version, environment, browser/device when relevant, and timestamp.
|
|
42
|
+
- CLI evidence must include command, exit code, expected stdout/stderr or final state, actual result, and relevant files/events.
|
|
43
|
+
- API and integration evidence must include contract results and receiver-side verification such as sandbox records, webhook/event/log output, database/query result, or a documented deferral with owner and Product Owner acceptance.
|
|
44
|
+
- Visual/UI/diagram bug evidence must include actual screenshot/render, source or expected image when available, diff when practical, and annotated image overlays for ambiguous layout, spacing, alignment, clipping, connector, or text-fit issues.
|
|
34
45
|
- Release approval requires visible evidence from Developer and QA, not just a verbal status.
|
|
35
46
|
|
|
36
47
|
## Release Decision
|
|
48
|
+
|
|
37
49
|
- Product Owner gives go/no-go using QA results, automation status, unresolved defects, and risk acceptance.
|
|
38
50
|
- Security, DevOps, or QA blockers cannot be bypassed without explicit Product Owner risk acceptance.
|
|
39
51
|
- A delivery with deferred tests must include the follow-up backlog item and owner before release.
|
|
@@ -12,6 +12,8 @@ Developer work must start from the existing project shape, preserve the local ar
|
|
|
12
12
|
- Infer naming, layering, dependency direction, error style, logging style, and test conventions from nearby code.
|
|
13
13
|
- Do not introduce a new framework pattern, repository style, package layout, or dependency injection approach without a recorded architecture decision.
|
|
14
14
|
- Keep framework-specific adapters at the boundary. Domain and service code should remain portable where the product permits it.
|
|
15
|
+
- Before writing to an existing file, run a module-boundary check: current file size, responsibility, exported surface, and whether the new behavior belongs in domain, model, service, repository, or adapter code.
|
|
16
|
+
- Do not increase god-file risk. If a file is already large, multi-purpose, or adapter-shaped, prefer adding a focused module and wiring it from the existing entry point instead of adding more logic.
|
|
15
17
|
|
|
16
18
|
## Entry Points And Layers
|
|
17
19
|
- Controllers, routes, commands, triggers, handlers, jobs, and webhooks must stay thin.
|
|
@@ -19,6 +21,7 @@ Developer work must start from the existing project shape, preserve the local ar
|
|
|
19
21
|
- Keep request parsing, authorization, validation, orchestration, and persistence responsibilities separate enough that each can be tested directly.
|
|
20
22
|
- Public APIs and CLI commands must define request, response, errors, pagination, compatibility, and idempotency before implementation.
|
|
21
23
|
- Developer-owned code, scripts, generated options, and automation helpers that repeat collection values or process collections at scale must load the `collection-standards` skill.
|
|
24
|
+
- CLI command modules should be nearly logicless: parse input, call one service or use-case, format output, and convert expected errors to user-safe messages. Business rules, workflow policy, persistence, retries, batching, and duplicated registries belong outside command modules.
|
|
22
25
|
|
|
23
26
|
## Bulk And Batch Safety
|
|
24
27
|
- Implement for 1..N records, requests, files, events, or messages. Do not special-case only the happy-path singleton.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Diagram Quality
|
|
2
|
+
|
|
3
|
+
- Classify diagram work before drawing: `semantic`, `inspired-by-reference`, or `recreation`.
|
|
4
|
+
- A `recreation` must be reviewed as pixel-perfect against its source reference. Do not treat structural similarity as acceptance.
|
|
5
|
+
- For `recreation`, first inventory every visible source element: containers, labels, icons, connectors, arrowheads, line styles, colors, borders, spacing, rotations, z-order, and page/canvas bounds.
|
|
6
|
+
- For `recreation`, compare the rendered output against the source after every iteration and record source-vs-output gaps by element ID or visual region.
|
|
7
|
+
- If a `recreation` cannot be made pixel-perfect with the chosen target, reclassify it as an approximation, state the reason, and list residual fidelity gaps before handoff.
|
|
8
|
+
- High-fidelity diagram work must include a post-render visual QA pass before handoff.
|
|
9
|
+
- Re-evaluate container width, height, text fit, spacing, and visual balance after real labels are placed.
|
|
10
|
+
- Run global layout reflow after the diagram is populated with real content. Recalculate whether parent containers, swimlanes, grouped boxes, and cards must grow to contain child nodes, subcards, chips, icons, labels, and internal connectors with minimum padding.
|
|
11
|
+
- When a parent container grows, re-evaluate neighboring element positions, connector routes, label lanes, and page/canvas bounds. Do not accept a local fix that creates a new collision elsewhere.
|
|
12
|
+
- Treat text wrapping as a geometry change. After a label, pill, badge, note, callout, or card text wraps, recalculate its rendered bounding box and revalidate connector lanes, parent containment, neighboring labels, and page bounds.
|
|
13
|
+
- Text wrapping or smaller text is not the default fix for overflow. Prefer growing the containing element or repositioning children unless the source reference explicitly uses tighter text.
|
|
14
|
+
- Avoid connector lines crossing over containers, labels, or important symbols whenever practical.
|
|
15
|
+
- Use bend points and explicit connector routing when straight lines make the diagram harder to read.
|
|
16
|
+
- Prefer the simplest readable connector route: straight if line-of-sight is clear, one orthogonal bend when needed, and curves or multi-bend paths only when avoiding a real obstacle or crossing.
|
|
17
|
+
- Validate every connector endpoint visually: the line must start at the source element edge and terminate at the intended target element edge, not float near it or end deep inside the shape.
|
|
18
|
+
- Validate label clearance after rendering; labels must not sit on container borders, connector lines, or arrowheads unless the source explicitly requires that overlap.
|
|
19
|
+
- Validate connector-label lanes after rendering; labels must sit in intentional whitespace or have an explicit readable background. Move nodes, reroute connectors, or move labels when a label touches or visually collides with a connector.
|
|
20
|
+
- Validate element order after rendering; connectors and arrowheads must not be hidden behind the states or containers they connect.
|
|
21
|
+
- Validate connector anchor aesthetics after rendering; choose source and target boundary points that minimize bends, avoid unnecessary travel, and keep arrowheads on clean edge points.
|
|
22
|
+
- Avoid diagonal connectors when an orthogonal route can preserve the same relationship, and use visible line jumps or bridges when crossings are unavoidable.
|
|
23
|
+
- Before accepting connector bends, evaluate whether a small repositioning of the connected elements can reduce bends without harming nearby layout.
|
|
24
|
+
- Keep editable diagram source and rendered output geometrically equivalent; do not make SVG-only corrections that cannot be reproduced from the draw.io XML.
|
|
25
|
+
- Validate annotation target clarity; annotation arrows must visibly land on the element or line they describe, and annotation text must not obscure the target.
|
|
26
|
+
- For diagrams without a source reference, create a diagram contract before drawing and validate the render against that contract before handoff.
|
|
27
|
+
- Source-free diagrams still require a pixel-perfect pass against their own contract before delivery: no text overflow, no clipped containers, no floating or buried connector endpoints, no unintended overlaps, no hidden arrowheads, and no incoherent whitespace.
|
|
28
|
+
- For source-free diagrams, iterate after the first render until container sizes, line routing, connector anchors, label positions, and visual balance are correct. Do not deliver an unreviewed first render.
|
|
29
|
+
- For every post-render correction, re-run the full diagram review rather than checking only the edited area. A diagram passes only when the whole canvas still satisfies container containment, label clearance, connector routing, z-order, and whitespace rules.
|
|
30
|
+
- A regenerated diagram must materially change geometry for the finding it claims to fix. If two versions preserve the same collision, overflow, endpoint gap, or unnecessary route bend, change the layout strategy instead of only re-rendering.
|
|
31
|
+
- Preserve source text orientation when labels are vertical or diagonal; use explicit draw.io rotation values instead of approximating rotated labels with spacing or line breaks.
|
|
32
|
+
- Validate exported artifacts, then inspect the rendered output against the source PDF, screenshot, or design reference at the fidelity level declared for the task.
|
|
33
|
+
- Record residual fidelity gaps explicitly when a diagram is an approximation rather than pixel-perfect.
|
|
34
|
+
- Before final delivery, clean diagram artifacts. Keep only the accepted editable source, accepted render, prompt master or final prompt, and minimum QA evidence needed for traceability. Archive or exclude intermediate previews, failed renders, temporary prompts, and one-off correction notes from the final deliverable.
|
|
35
|
+
- Do not delete iteration evidence that is needed for audit. Move it to workflow evidence, an explicit archive folder, or an ignored output location, then point the final handoff to the accepted artifact paths.
|