spolvero 0.3.0__tar.gz → 0.4.0__tar.gz
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.
- {spolvero-0.3.0 → spolvero-0.4.0}/.gitattributes +1 -0
- spolvero-0.4.0/.github/CODEOWNERS +33 -0
- spolvero-0.4.0/.github/ISSUE_TEMPLATE/bug_report.md +60 -0
- spolvero-0.4.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- spolvero-0.4.0/.github/ISSUE_TEMPLATE/feature_engine_work.md +62 -0
- spolvero-0.4.0/.github/ISSUE_TEMPLATE/qa_hygiene_work.md +52 -0
- spolvero-0.4.0/.github/ISSUE_TEMPLATE/release_work.md +54 -0
- spolvero-0.4.0/.github/ISSUE_TEMPLATE/vsdx_template_work.md +53 -0
- spolvero-0.4.0/.github/dependabot.yml +25 -0
- spolvero-0.4.0/.github/pull_request_template.md +50 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/.github/workflows/ci.yml +16 -0
- spolvero-0.4.0/.github/workflows/codeql.yml +32 -0
- spolvero-0.4.0/.github/workflows/dependency-review.yml +20 -0
- spolvero-0.4.0/HANDOFF.md +75 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/PKG-INFO +10 -5
- {spolvero-0.3.0 → spolvero-0.4.0}/README.md +7 -4
- spolvero-0.4.0/SECURITY.md +77 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/agents/glossary.md +1 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/agents/recipes.md +7 -4
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/current-state.md +28 -13
- spolvero-0.4.0/docs/declaratus-migration.md +104 -0
- spolvero-0.4.0/docs/plans/01-round-trip-drift-engine.md +2758 -0
- spolvero-0.4.0/docs/qa-corpus-and-sanitization.md +56 -0
- spolvero-0.4.0/docs/round-trip-workflow.md +75 -0
- spolvero-0.4.0/docs/security-posture-audit.md +96 -0
- spolvero-0.4.0/docs/specs/01-round-trip-drift-engine.md +255 -0
- {spolvero-0.3.0/skills/codex/spolvero/references → spolvero-0.4.0/docs}/support-matrix.md +24 -5
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/topology-ir.md +1 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/using-the-package.md +11 -3
- spolvero-0.4.0/docs/vsdx-template-contract.md +108 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/pyproject.toml +3 -3
- {spolvero-0.3.0 → spolvero-0.4.0}/skills/codex/spolvero/SKILL.md +3 -1
- {spolvero-0.3.0/docs → spolvero-0.4.0/skills/codex/spolvero/references}/support-matrix.md +20 -5
- {spolvero-0.3.0 → spolvero-0.4.0}/skills/codex/spolvero/scripts/spolvero_packager.py +0 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/__init__.py +0 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/builder.py +81 -12
- spolvero-0.4.0/src/spolvero/cli.py +355 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/constants.py +11 -1
- spolvero-0.4.0/src/spolvero/drift_detection.py +227 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/engines/__init__.py +3 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/engines/data_visualizer.py +3 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/engines/package_only.py +3 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/engines/visio_com.py +1 -2
- spolvero-0.4.0/src/spolvero/engines/vsdx_template.py +639 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/hygiene.py +94 -13
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/inspection.py +193 -22
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/ir.py +39 -13
- spolvero-0.4.0/src/spolvero/layout_extraction.py +92 -0
- spolvero-0.4.0/src/spolvero/layout_patch.py +114 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/models.py +0 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/render.py +157 -29
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/reports.py +11 -4
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/schema.py +31 -7
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/schemas/__init__.py +0 -1
- spolvero-0.4.0/src/spolvero/schemas/layout-patch.schema.json +28 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/schemas/manifest.schema.json +2 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/source.py +19 -9
- spolvero-0.4.0/src/spolvero/stamping.py +281 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/topology/model.py +39 -13
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/utils.py +3 -2
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/workbook.py +15 -5
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/__init__.py +0 -1
- spolvero-0.4.0/tests/_review_toolkit.py +103 -0
- spolvero-0.4.0/tests/fixtures/reviewed-simple.vsdx +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_cli.py +29 -0
- spolvero-0.4.0/tests/test_cli_detect_drift.py +120 -0
- spolvero-0.4.0/tests/test_cli_extract_layout.py +38 -0
- spolvero-0.4.0/tests/test_drift_detection.py +266 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_engine_registry.py +0 -2
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_extraction.py +5 -2
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_hygiene.py +40 -3
- spolvero-0.4.0/tests/test_layout_extraction.py +72 -0
- spolvero-0.4.0/tests/test_layout_patch.py +130 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_mermaid_ir.py +9 -4
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_optional_tools.py +10 -3
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_package_build.py +30 -7
- spolvero-0.4.0/tests/test_render_with_overrides.py +49 -0
- spolvero-0.4.0/tests/test_review_toolkit.py +78 -0
- spolvero-0.4.0/tests/test_stamping.py +147 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_topology_ir.py +27 -7
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_visio_com.py +6 -2
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_vsdx_inspection.py +79 -9
- spolvero-0.4.0/tests/test_vsdx_template.py +354 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/test_workbook.py +16 -4
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/validation/test_skill_adapters.py +0 -1
- {spolvero-0.3.0 → spolvero-0.4.0}/uv.lock +20 -1
- spolvero-0.3.0/HANDOFF.md +0 -29
- spolvero-0.3.0/docs/declaratus-migration.md +0 -88
- spolvero-0.3.0/src/spolvero/cli.py +0 -118
- spolvero-0.3.0/src/spolvero/engines/vsdx_template.py +0 -251
- spolvero-0.3.0/tests/test_vsdx_template.py +0 -143
- {spolvero-0.3.0 → spolvero-0.4.0}/.github/copilot-instructions.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/.github/instructions/spolvero.instructions.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/.github/workflows/release.yml +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/.gitignore +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/AGENTS.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/CLAUDE.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/claude/.claude/skills/spolvero/SKILL.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/claude/CLAUDE.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/claude/INSTALL.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/copilot/.github/copilot-instructions.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/copilot/.github/instructions/spolvero.instructions.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/copilot/INSTALL.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/adapters/generic/AGENTS.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/agent-usage.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/agents/architecture.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/agents/extending.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/feature-expansion/template-testing-lessons.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/docs/qa-findings-plan.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/skills/codex/spolvero/agents/openai.yaml +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/schemas/ir.schema.json +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/schemas/topology.schema.json +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/templates/LICENSE.txt +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/templates/minimal_flowchart.vsdx +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/src/spolvero/topology/__init__.py +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/_paths.py +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample-network.topology.yaml +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample-sequence.mmd +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample-trd.topology.json +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample.dot +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample.md +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample.png +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample.puml +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/sample.svg +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/simple.mmd +0 -0
- {spolvero-0.3.0 → spolvero-0.4.0}/tests/fixtures/synthetic-rich.mmd +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Current governance owner for release and sensitive paths.
|
|
2
|
+
# Extend these entries with a Declaratus maintainer team once one exists.
|
|
3
|
+
|
|
4
|
+
# CI, release automation, and repository-level agent instructions.
|
|
5
|
+
/.github/CODEOWNERS @Barry-Johnston
|
|
6
|
+
/.github/workflows/ @Barry-Johnston
|
|
7
|
+
/.github/copilot-instructions.md @Barry-Johnston
|
|
8
|
+
/.github/instructions/ @Barry-Johnston
|
|
9
|
+
|
|
10
|
+
# Package metadata, dependency lock state, and release-facing docs.
|
|
11
|
+
/pyproject.toml @Barry-Johnston
|
|
12
|
+
/uv.lock @Barry-Johnston
|
|
13
|
+
/README.md @Barry-Johnston
|
|
14
|
+
|
|
15
|
+
# Governance and operating posture.
|
|
16
|
+
/HANDOFF.md @Barry-Johnston
|
|
17
|
+
/AGENTS.md @Barry-Johnston
|
|
18
|
+
/CLAUDE.md @Barry-Johnston
|
|
19
|
+
/docs/current-state.md @Barry-Johnston
|
|
20
|
+
/docs/declaratus-migration.md @Barry-Johnston
|
|
21
|
+
/docs/qa-findings-plan.md @Barry-Johnston
|
|
22
|
+
/docs/agent-usage.md @Barry-Johnston
|
|
23
|
+
/docs/agents/ @Barry-Johnston
|
|
24
|
+
|
|
25
|
+
# Core package behavior, validation, schemas, and bundled Visio assets.
|
|
26
|
+
/src/spolvero/ @Barry-Johnston
|
|
27
|
+
/tests/ @Barry-Johnston
|
|
28
|
+
/src/spolvero/schemas/ @Barry-Johnston
|
|
29
|
+
/src/spolvero/templates/ @Barry-Johnston
|
|
30
|
+
|
|
31
|
+
# Distributed agent adapters and Codex skill surface.
|
|
32
|
+
/adapters/ @Barry-Johnston
|
|
33
|
+
/skills/ @Barry-Johnston
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Something in Spolvero is not working as expected
|
|
4
|
+
labels: ["bug"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Describe the bug
|
|
8
|
+
|
|
9
|
+
<!-- What went wrong? Be specific about the command, input type, target engine, or generated artifact. -->
|
|
10
|
+
|
|
11
|
+
## Steps to reproduce
|
|
12
|
+
|
|
13
|
+
1.
|
|
14
|
+
2.
|
|
15
|
+
3.
|
|
16
|
+
|
|
17
|
+
## Expected behavior
|
|
18
|
+
|
|
19
|
+
<!-- What did you expect to happen? -->
|
|
20
|
+
|
|
21
|
+
## Actual behavior
|
|
22
|
+
|
|
23
|
+
<!-- What happened instead? Include sanitized error output, manifest warnings, or QA excerpts when useful. -->
|
|
24
|
+
|
|
25
|
+
## Affected area
|
|
26
|
+
|
|
27
|
+
<!-- Check all that apply. -->
|
|
28
|
+
|
|
29
|
+
- [ ] CLI or package API
|
|
30
|
+
- [ ] Source extraction
|
|
31
|
+
- [ ] Mermaid parsing or rendering
|
|
32
|
+
- [ ] Topology / TRD parsing
|
|
33
|
+
- [ ] Data Visualizer workbook
|
|
34
|
+
- [ ] VSDX template engine
|
|
35
|
+
- [ ] Visio COM fallback behavior
|
|
36
|
+
- [ ] QA report or manifest fidelity
|
|
37
|
+
- [ ] GitHub Actions or release workflow
|
|
38
|
+
- [ ] Other:
|
|
39
|
+
|
|
40
|
+
## Environment
|
|
41
|
+
|
|
42
|
+
- OS:
|
|
43
|
+
- Python version:
|
|
44
|
+
- Spolvero version or commit:
|
|
45
|
+
- Command or workflow:
|
|
46
|
+
- Optional extras installed:
|
|
47
|
+
|
|
48
|
+
## Minimal sanitized input
|
|
49
|
+
|
|
50
|
+
<!-- Paste the smallest synthetic or sanitized input that reproduces the issue.
|
|
51
|
+
Do not include real infrastructure names, credentials, client names, hostnames, or proprietary diagrams. -->
|
|
52
|
+
|
|
53
|
+
```mermaid
|
|
54
|
+
flowchart TD
|
|
55
|
+
A[Start] --> B[End]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Related context
|
|
59
|
+
|
|
60
|
+
<!-- Links, related issues, or notes for maintainers. -->
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Declaratus governance source of truth
|
|
4
|
+
url: https://github.com/Declaratus/governance
|
|
5
|
+
about: Use this for org-level GitHub policy, repository properties, rulesets, and inherited controls.
|
|
6
|
+
- name: Security policy
|
|
7
|
+
url: https://github.com/Declaratus/spolvero/security/policy
|
|
8
|
+
about: Report vulnerabilities privately through the repository security policy.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature or engine work
|
|
3
|
+
about: Propose package behavior, parser, renderer, engine, or CLI changes
|
|
4
|
+
labels: ["enhancement", "area: engines"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
<!-- One or two sentences describing the desired change. -->
|
|
10
|
+
|
|
11
|
+
## Motivation
|
|
12
|
+
|
|
13
|
+
<!-- What problem does this solve? What is hard or missing today? -->
|
|
14
|
+
|
|
15
|
+
## Proposed behavior
|
|
16
|
+
|
|
17
|
+
<!-- Describe the target behavior concretely. Include input, target, manifest, QA, or artifact examples if helpful. -->
|
|
18
|
+
|
|
19
|
+
## Affected area
|
|
20
|
+
|
|
21
|
+
<!-- Check all that apply. -->
|
|
22
|
+
|
|
23
|
+
- [ ] CLI or package API
|
|
24
|
+
- [ ] Source extraction
|
|
25
|
+
- [ ] Mermaid IR
|
|
26
|
+
- [ ] Topology / TRD IR
|
|
27
|
+
- [ ] Renderer fallback behavior
|
|
28
|
+
- [ ] Data Visualizer workbook
|
|
29
|
+
- [ ] VSDX template engine
|
|
30
|
+
- [ ] Visio COM engine
|
|
31
|
+
- [ ] Schemas
|
|
32
|
+
- [ ] Agent adapters or Codex skill
|
|
33
|
+
- [ ] Other:
|
|
34
|
+
|
|
35
|
+
## Editability claim
|
|
36
|
+
|
|
37
|
+
<!-- If this changes output editability, state the expected declaration:
|
|
38
|
+
native, semi_native, vector_reference, or raster_reference. Explain why that claim is honest. -->
|
|
39
|
+
|
|
40
|
+
## Fixture posture
|
|
41
|
+
|
|
42
|
+
<!-- New fixtures should be synthetic and organization-agnostic. If a real sample inspired the work,
|
|
43
|
+
describe how it was reduced or sanitized before adding anything to the repo. -->
|
|
44
|
+
|
|
45
|
+
## Governance fit
|
|
46
|
+
|
|
47
|
+
<!-- If this changes inherited GitHub policy, repository properties, rulesets, security posture,
|
|
48
|
+
or publishing posture, open or link the source-of-truth work in Declaratus/governance.
|
|
49
|
+
Keep repo-local changes here focused on Spolvero behavior and documentation. -->
|
|
50
|
+
|
|
51
|
+
## Validation plan
|
|
52
|
+
|
|
53
|
+
<!-- List the commands or manual checks that should prove the work is ready. -->
|
|
54
|
+
|
|
55
|
+
- [ ] `uv run python -m compileall src tests`
|
|
56
|
+
- [ ] `uv run pytest -rs`
|
|
57
|
+
- [ ] `uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data-visualizer`
|
|
58
|
+
- [ ] Other:
|
|
59
|
+
|
|
60
|
+
## Related context
|
|
61
|
+
|
|
62
|
+
<!-- Links, related issues, docs, or prior decisions. -->
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: QA or hygiene work
|
|
3
|
+
about: Track validation, repository hygiene, sanitization, or inspection improvements
|
|
4
|
+
labels: ["type: qa", "type: hygiene"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
<!-- What QA, hygiene, inspection, or sanitization concern should be addressed? -->
|
|
10
|
+
|
|
11
|
+
## Affected area
|
|
12
|
+
|
|
13
|
+
<!-- Check all that apply. -->
|
|
14
|
+
|
|
15
|
+
- [ ] `spolvero hygiene`
|
|
16
|
+
- [ ] `spolvero inspect-vsdx`
|
|
17
|
+
- [ ] QA report content
|
|
18
|
+
- [ ] Manifest warnings or schema validation
|
|
19
|
+
- [ ] Test fixtures
|
|
20
|
+
- [ ] CI validation
|
|
21
|
+
- [ ] External corpus or local-only review material
|
|
22
|
+
- [ ] Other:
|
|
23
|
+
|
|
24
|
+
## Risk being controlled
|
|
25
|
+
|
|
26
|
+
<!-- Examples: generated artifacts accidentally tracked, sensitive template metadata, stale QA warnings,
|
|
27
|
+
incomplete schema validation, or overclaimed editability. -->
|
|
28
|
+
|
|
29
|
+
## Fixture and sample handling
|
|
30
|
+
|
|
31
|
+
<!-- Keep fixtures synthetic and organization-agnostic. Do not attach raw customer, infrastructure,
|
|
32
|
+
proprietary, secret, or environment-specific material. Keep external review samples outside git unless
|
|
33
|
+
they are explicitly approved. -->
|
|
34
|
+
|
|
35
|
+
## Proposed checks
|
|
36
|
+
|
|
37
|
+
<!-- List the commands, assertions, or manual review steps that should prove the work is ready. -->
|
|
38
|
+
|
|
39
|
+
- [ ] `uv run spolvero hygiene --report .tmp/hygiene.md`
|
|
40
|
+
- [ ] Optional local sample scan: `uv run spolvero hygiene --include-untracked --report .tmp/local-hygiene.md`
|
|
41
|
+
- [ ] `uv run spolvero inspect-vsdx PATH --report .tmp/vsdx-inspection.md`
|
|
42
|
+
- [ ] `uv run pytest -rs`
|
|
43
|
+
- [ ] Other:
|
|
44
|
+
|
|
45
|
+
## Governance fit
|
|
46
|
+
|
|
47
|
+
<!-- If this changes inherited GitHub policy, repository properties, rulesets, or org-level security posture,
|
|
48
|
+
open or link the source-of-truth work in Declaratus/governance instead of duplicating policy here. -->
|
|
49
|
+
|
|
50
|
+
## Related context
|
|
51
|
+
|
|
52
|
+
<!-- Links, related issues, docs, or prior decisions. -->
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Release work
|
|
3
|
+
about: Plan or track Spolvero packaging, tag, PyPI, or release-note changes
|
|
4
|
+
labels: ["area: packaging", "type: release"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Release summary
|
|
8
|
+
|
|
9
|
+
<!-- What release, packaging, publishing, or release-note work is being proposed? -->
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
<!-- Check all that apply. -->
|
|
14
|
+
|
|
15
|
+
- [ ] Package metadata
|
|
16
|
+
- [ ] Dependency or lock state
|
|
17
|
+
- [ ] Build backend or wheel contents
|
|
18
|
+
- [ ] GitHub release workflow
|
|
19
|
+
- [ ] PyPI trusted publishing
|
|
20
|
+
- [ ] Release notes
|
|
21
|
+
- [ ] Post-release docs or handoff
|
|
22
|
+
- [ ] Other:
|
|
23
|
+
|
|
24
|
+
## Version and compatibility
|
|
25
|
+
|
|
26
|
+
- Target version:
|
|
27
|
+
- Supported Python versions:
|
|
28
|
+
- Expected extras affected:
|
|
29
|
+
|
|
30
|
+
## Validation plan
|
|
31
|
+
|
|
32
|
+
<!-- Reference the commands that prove the release path is ready. -->
|
|
33
|
+
|
|
34
|
+
- [ ] `uv run python -m compileall src tests`
|
|
35
|
+
- [ ] `uv run pytest -rs`
|
|
36
|
+
- [ ] `uv run spolvero hygiene --report .tmp/release-hygiene.md`
|
|
37
|
+
- [ ] `uv run spolvero inspect-vsdx src/spolvero/templates/minimal_flowchart.vsdx --report .tmp/minimal-flowchart-vsdx.md`
|
|
38
|
+
- [ ] `uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data-visualizer --title "CI Smoke"`
|
|
39
|
+
- [ ] Build sdist/wheel and inspect contents
|
|
40
|
+
|
|
41
|
+
## Fixture and artifact posture
|
|
42
|
+
|
|
43
|
+
<!-- Keep generated packages, built distributions, and local smoke output out of git unless explicitly approved.
|
|
44
|
+
Use synthetic and organization-agnostic fixtures. -->
|
|
45
|
+
|
|
46
|
+
## Governance fit
|
|
47
|
+
|
|
48
|
+
<!-- If this changes inherited org release policy, tag controls, repository properties, or publishing controls,
|
|
49
|
+
open or link the source-of-truth work in Declaratus/governance. Keep repo-local changes here focused on
|
|
50
|
+
Spolvero package behavior and release documentation. -->
|
|
51
|
+
|
|
52
|
+
## Related context
|
|
53
|
+
|
|
54
|
+
<!-- Links, related issues, docs, release runs, or prior decisions. -->
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: VSDX or template work
|
|
3
|
+
about: Propose changes to Visio package handling, bundled templates, or Office artifacts
|
|
4
|
+
labels: ["area: visio"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
<!-- What VSDX/template behavior should change? -->
|
|
10
|
+
|
|
11
|
+
## Artifact scope
|
|
12
|
+
|
|
13
|
+
<!-- Check all that apply. -->
|
|
14
|
+
|
|
15
|
+
- [ ] Bundled `minimal_flowchart.vsdx`
|
|
16
|
+
- [ ] New or replacement tracked template
|
|
17
|
+
- [ ] `vsdx-template` engine behavior
|
|
18
|
+
- [ ] `inspect-vsdx` report behavior
|
|
19
|
+
- [ ] Data Visualizer workbook interoperability
|
|
20
|
+
- [ ] Visio Plan 2 manual validation
|
|
21
|
+
- [ ] Other:
|
|
22
|
+
|
|
23
|
+
## Provenance and license
|
|
24
|
+
|
|
25
|
+
<!-- If this proposes a tracked Office artifact, describe its source and license.
|
|
26
|
+
Do not attach proprietary, client, environment-specific, or unsanitized binary material. -->
|
|
27
|
+
|
|
28
|
+
- Source:
|
|
29
|
+
- License:
|
|
30
|
+
- Sanitization / reduction approach:
|
|
31
|
+
|
|
32
|
+
## Security and metadata review
|
|
33
|
+
|
|
34
|
+
<!-- Note expected review of document properties, relationships, media, comments, thumbnails,
|
|
35
|
+
custom properties, and sensitive-pattern findings. -->
|
|
36
|
+
|
|
37
|
+
- [ ] `uv run spolvero inspect-vsdx PATH --report .tmp/template-inspection.md`
|
|
38
|
+
- [ ] `uv run spolvero hygiene --report .tmp/template-hygiene.md`
|
|
39
|
+
- [ ] Optional local sample scan: `uv run spolvero hygiene --include-untracked --report .tmp/template-local-hygiene.md`
|
|
40
|
+
- [ ] Manual review of package provenance and metadata
|
|
41
|
+
|
|
42
|
+
## Expected behavior
|
|
43
|
+
|
|
44
|
+
<!-- Describe the expected generated files, editability declaration, fallback warnings, or Visio import result. -->
|
|
45
|
+
|
|
46
|
+
## Fixture posture
|
|
47
|
+
|
|
48
|
+
<!-- Use synthetic diagrams and organization-agnostic sample names. Keep generated packages under `.tmp/`
|
|
49
|
+
unless a reviewer approves a minimal fixture. -->
|
|
50
|
+
|
|
51
|
+
## Related context
|
|
52
|
+
|
|
53
|
+
<!-- Links, related issues, docs, or prior decisions. -->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: "uv"
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: "weekly"
|
|
7
|
+
day: "monday"
|
|
8
|
+
time: "09:00"
|
|
9
|
+
timezone: "America/Phoenix"
|
|
10
|
+
open-pull-requests-limit: 5
|
|
11
|
+
labels:
|
|
12
|
+
- "area: packaging"
|
|
13
|
+
- "area: security"
|
|
14
|
+
|
|
15
|
+
- package-ecosystem: "github-actions"
|
|
16
|
+
directory: "/"
|
|
17
|
+
schedule:
|
|
18
|
+
interval: "weekly"
|
|
19
|
+
day: "monday"
|
|
20
|
+
time: "09:30"
|
|
21
|
+
timezone: "America/Phoenix"
|
|
22
|
+
open-pull-requests-limit: 5
|
|
23
|
+
labels:
|
|
24
|
+
- "area: packaging"
|
|
25
|
+
- "area: security"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What changed, and why? Link the issue when available. -->
|
|
4
|
+
|
|
5
|
+
## Scope
|
|
6
|
+
|
|
7
|
+
<!-- Check all that apply. -->
|
|
8
|
+
|
|
9
|
+
- [ ] Package code
|
|
10
|
+
- [ ] Engine, parser, renderer, or IR behavior
|
|
11
|
+
- [ ] Schemas or validation
|
|
12
|
+
- [ ] VSDX/template assets
|
|
13
|
+
- [ ] Agent adapters or Codex skill
|
|
14
|
+
- [ ] Documentation
|
|
15
|
+
- [ ] GitHub workflows, release, or packaging
|
|
16
|
+
- [ ] QA, hygiene, or inspection
|
|
17
|
+
- [ ] Other:
|
|
18
|
+
|
|
19
|
+
## Fixture and artifact posture
|
|
20
|
+
|
|
21
|
+
<!-- Confirm new samples are synthetic and organization-agnostic.
|
|
22
|
+
Keep generated handoff packages, workbooks, local smoke output, and external review material under ignored
|
|
23
|
+
local paths such as `.tmp/` unless explicitly approved as fixtures. -->
|
|
24
|
+
|
|
25
|
+
- [ ] New or changed fixtures are synthetic / sanitized.
|
|
26
|
+
- [ ] No generated package output or local smoke artifact is being tracked unexpectedly.
|
|
27
|
+
- [ ] Any tracked Office artifact has provenance, license, metadata, and inspection notes.
|
|
28
|
+
|
|
29
|
+
## Governance notes
|
|
30
|
+
|
|
31
|
+
<!-- If this PR changes inherited GitHub policy, repository properties, rulesets, or org-level controls,
|
|
32
|
+
link the corresponding Declaratus/governance work. Keep repo-local policy focused on Spolvero behavior. -->
|
|
33
|
+
|
|
34
|
+
- Declaratus/governance link, if needed:
|
|
35
|
+
|
|
36
|
+
## Validation
|
|
37
|
+
|
|
38
|
+
<!-- Check the commands you ran. Mark intentionally skipped items with a short reason. -->
|
|
39
|
+
|
|
40
|
+
- [ ] `uv run python -m compileall src tests`
|
|
41
|
+
- [ ] `uv run pytest -rs`
|
|
42
|
+
- [ ] `uv run spolvero hygiene --report .tmp/pr-hygiene.md`
|
|
43
|
+
- [ ] `uv run spolvero inspect-vsdx src/spolvero/templates/minimal_flowchart.vsdx --report .tmp/minimal-flowchart-vsdx.md`
|
|
44
|
+
- [ ] `uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data-visualizer --title "CI Smoke"`
|
|
45
|
+
- [ ] `git diff --check`
|
|
46
|
+
|
|
47
|
+
## Release impact
|
|
48
|
+
|
|
49
|
+
<!-- Note whether this affects package metadata, dependency extras, bundled assets, PyPI publishing,
|
|
50
|
+
or release notes. -->
|
|
@@ -4,6 +4,9 @@ on:
|
|
|
4
4
|
push:
|
|
5
5
|
pull_request:
|
|
6
6
|
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
7
10
|
jobs:
|
|
8
11
|
test:
|
|
9
12
|
name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
|
|
@@ -31,3 +34,16 @@ jobs:
|
|
|
31
34
|
- name: Assert generated artifacts
|
|
32
35
|
run: uv run python -c "import json, pathlib, zipfile; root=pathlib.Path('.tmp/ci-smoke'); manifest=json.loads((root/'manifest.json').read_text()); assert manifest['schema_version']=='1.0.0'; assert len(manifest['diagrams'])==3; assert (root/'preview/diagram-001.png').read_bytes().startswith(b'\x89PNG\r\n\x1a\n'); assert zipfile.is_zipfile(root/'visio/diagram-001-data-visualizer.xlsx')"
|
|
33
36
|
|
|
37
|
+
ci-summary:
|
|
38
|
+
name: ci-summary
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
needs: [test]
|
|
41
|
+
if: always()
|
|
42
|
+
steps:
|
|
43
|
+
- name: Check test matrix result
|
|
44
|
+
run: |
|
|
45
|
+
if [ "${{ needs.test.result }}" != "success" ]; then
|
|
46
|
+
echo "test result: ${{ needs.test.result }}"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
echo "test result: ${{ needs.test.result }}"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: CodeQL
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main"]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ["main"]
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: "36 11 * * 1"
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
actions: read
|
|
14
|
+
contents: read
|
|
15
|
+
security-events: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
analyze:
|
|
19
|
+
name: CodeQL Python
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
timeout-minutes: 15
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v6
|
|
24
|
+
|
|
25
|
+
- uses: github/codeql-action/init@v4
|
|
26
|
+
with:
|
|
27
|
+
languages: python
|
|
28
|
+
queries: security-and-quality
|
|
29
|
+
|
|
30
|
+
- uses: github/codeql-action/analyze@v4
|
|
31
|
+
with:
|
|
32
|
+
category: "/language:python"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Dependency Review
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
dependency-review:
|
|
11
|
+
name: Dependency Review
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
timeout-minutes: 10
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v6
|
|
16
|
+
|
|
17
|
+
- uses: actions/dependency-review-action@v4
|
|
18
|
+
with:
|
|
19
|
+
fail-on-severity: high
|
|
20
|
+
fail-on-scopes: runtime, development, unknown
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Handoff
|
|
2
|
+
|
|
3
|
+
Latest durable queue for `spolvero`.
|
|
4
|
+
|
|
5
|
+
## Current State
|
|
6
|
+
|
|
7
|
+
- Core goal is unchanged: package docs-as-code diagrams into Visio-friendly handoff artifacts with honest editability declarations.
|
|
8
|
+
- The repository now lives at `Declaratus/spolvero`; `main` should remain ready for post-release governance and operations work.
|
|
9
|
+
- CI exposes a single `ci-summary` aggregate check for org ruleset readiness.
|
|
10
|
+
- Latest default-branch checks are green, including `ci-summary`, CodeQL, and Dependency Review.
|
|
11
|
+
- Spolvero is promoted to `tier=internal`; repo-local branch protection is disabled, and default-branch policy is enforced through Declaratus org rulesets.
|
|
12
|
+
- Spolvero is recorded in `Declaratus/governance` property assignments; issue #18 is closed.
|
|
13
|
+
- CODEOWNERS covers release and governance-sensitive paths with the current owner handle until a Declaratus maintainer team exists.
|
|
14
|
+
- SECURITY.md, issue/PR templates, Dependabot updates, and the security posture audit are in place.
|
|
15
|
+
- Code Security is enabled for the private repo; CodeQL and dependency-review workflows cover Python scanning and dependency-change gates.
|
|
16
|
+
- The `pypi` environment is restricted to release tags matching `v*`. Required reviewers were evaluated but are not available for this private repository under the current GitHub plan.
|
|
17
|
+
- Generated package output, local smoke packages, and external review material belong under ignored `.tmp/` or another local-only path.
|
|
18
|
+
- The bundled `src/spolvero/templates/minimal_flowchart.vsdx` is the only approved tracked `.vsdx` template. It is derived from the BSD-licensed `vsdx` Python package fixture and documented in `src/spolvero/templates/LICENSE.txt`.
|
|
19
|
+
|
|
20
|
+
## Operating Validation Commands
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
uv run spolvero hygiene --report .tmp/operating-hygiene.md
|
|
24
|
+
uv run spolvero inspect-vsdx src/spolvero/templates/minimal_flowchart.vsdx --report .tmp/minimal-flowchart-vsdx.md
|
|
25
|
+
uv run spolvero sanitize-vsdx src/spolvero/templates/minimal_flowchart.vsdx --out .tmp/minimal-flowchart-sanitized.vsdx --report .tmp/minimal-flowchart-sanitized.md
|
|
26
|
+
uv run pytest -rs
|
|
27
|
+
uv run python -m compileall src tests
|
|
28
|
+
uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data-visualizer
|
|
29
|
+
uv run spolvero build tests/fixtures/sample-trd.topology.json --out .tmp/topology-json-smoke --target data-visualizer --title "Topology JSON Smoke"
|
|
30
|
+
git diff --check
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## v0.4 Engine Handoff
|
|
34
|
+
|
|
35
|
+
Governance cleanup is complete. The v0.4 template mutation pass now covers:
|
|
36
|
+
|
|
37
|
+
1. #10 Synthetic VSDX stamp/master contract documented in `docs/vsdx-template-contract.md`.
|
|
38
|
+
2. #11 Flowchart shape routing through preferred stamps with explicit degradation warnings.
|
|
39
|
+
3. #12 Topology-aware `vsdx-template` generation with topology/container stamp routing and fallback warnings.
|
|
40
|
+
4. #13 Docs, support matrix, current-state, agent recipes, and skill references refreshed.
|
|
41
|
+
5. #15 QA corpus/sanitization policy plus opt-in `sanitize-vsdx --out` tooling for XML redaction.
|
|
42
|
+
|
|
43
|
+
Keep #14 true COM-native Visio generation separate. The remaining product follow-up is higher-fidelity synthetic templates beyond the bundled minimal fixture; the COM-native body should wait until that path is better specified and tested.
|
|
44
|
+
|
|
45
|
+
Residual governance notes:
|
|
46
|
+
|
|
47
|
+
1. Revisit a `pypi` required-reviewer gate if Declaratus plan/team support becomes available for private repositories.
|
|
48
|
+
2. Revisit `pip-audit` when Spolvero gains default runtime dependencies or release-critical optional extras.
|
|
49
|
+
|
|
50
|
+
## Round-trip & drift engine (spec 01)
|
|
51
|
+
|
|
52
|
+
The round-trip/drift engine is merged to `main` and released in v0.4.0
|
|
53
|
+
(Tasks 1–14 pure-logic foundation in PR #43, Tasks 15–25 VSDX integration in PR #44).
|
|
54
|
+
See `docs/specs/01-round-trip-drift-engine.md` for the spec and
|
|
55
|
+
`docs/round-trip-workflow.md` for the end-to-end flow.
|
|
56
|
+
|
|
57
|
+
New capabilities:
|
|
58
|
+
|
|
59
|
+
1. Source-metadata stamping (per-shape Visio Shape Data plus doc-level
|
|
60
|
+
`docProps/custom.xml`) on every `vsdx-template` build; see
|
|
61
|
+
`docs/vsdx-template-contract.md` for the stamp keys.
|
|
62
|
+
2. `spolvero extract-layout` lifts reviewer node positions into a YAML layout
|
|
63
|
+
patch keyed by `spolvero.source_id`.
|
|
64
|
+
3. `spolvero detect-drift` runs the D1–D4 detectors against the source IR (and,
|
|
65
|
+
with `--source`, the doc-level source hash).
|
|
66
|
+
4. `spolvero build --layout-patch` regenerates while honouring reviewer layout.
|
|
67
|
+
|
|
68
|
+
Follow-ups:
|
|
69
|
+
|
|
70
|
+
1. The Visio Diagram Handoff Assistant skill (DEC-104) is the next piece.
|
|
71
|
+
2. Connector-endpoint drift detection plus edge-route geometry is the next
|
|
72
|
+
engine follow-up.
|
|
73
|
+
3. Container/topology shape stamping and multi-diagram patch-to-diagram matching
|
|
74
|
+
remain unimplemented (see the MVP limitations in
|
|
75
|
+
`docs/round-trip-workflow.md`).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spolvero
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Package docs-as-code diagrams into Visio-friendly handoff artifacts.
|
|
5
5
|
Author: Spolvero maintainers
|
|
6
6
|
License: MIT
|
|
@@ -11,6 +11,8 @@ Requires-Dist: pywin32>=306; (platform_system == 'Windows') and extra == 'com'
|
|
|
11
11
|
Provides-Extra: topology
|
|
12
12
|
Requires-Dist: pyyaml>=6.0; extra == 'topology'
|
|
13
13
|
Provides-Extra: vsdx
|
|
14
|
+
Requires-Dist: defusedxml>=0.7; extra == 'vsdx'
|
|
15
|
+
Requires-Dist: pyyaml>=6.0; extra == 'vsdx'
|
|
14
16
|
Requires-Dist: vsdx>=0.5; extra == 'vsdx'
|
|
15
17
|
Description-Content-Type: text/markdown
|
|
16
18
|
|
|
@@ -62,14 +64,15 @@ uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data
|
|
|
62
64
|
|
|
63
65
|
Generated packages are intentionally ignored by git.
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
Operating hygiene checks are also available:
|
|
66
68
|
|
|
67
69
|
```bash
|
|
68
|
-
uv run spolvero hygiene --report .tmp/
|
|
70
|
+
uv run spolvero hygiene --report .tmp/operating-hygiene.md
|
|
69
71
|
uv run spolvero inspect-vsdx src/spolvero/templates/minimal_flowchart.vsdx --report .tmp/minimal-flowchart-vsdx.md
|
|
72
|
+
uv run spolvero sanitize-vsdx src/spolvero/templates/minimal_flowchart.vsdx --out .tmp/minimal-flowchart-sanitized.vsdx --report .tmp/minimal-flowchart-sanitized.md
|
|
70
73
|
```
|
|
71
74
|
|
|
72
|
-
See [docs/declaratus-migration.md](docs/declaratus-migration.md) for
|
|
75
|
+
See [docs/declaratus-migration.md](docs/declaratus-migration.md) for post-import operating guidance.
|
|
73
76
|
|
|
74
77
|
## Optional Extras
|
|
75
78
|
|
|
@@ -90,11 +93,13 @@ A Mermaid CLI (`mmdc`) on `PATH` is auto-detected for higher-fidelity Mermaid pr
|
|
|
90
93
|
|---|---|---|---|
|
|
91
94
|
| `package-only` | `internal_preview` | `vector_reference` | Skips workbook generation. Even Mermaid flowcharts and topology IRs are downgraded to a vector reference because no Visio handoff artifact is produced. |
|
|
92
95
|
| `data-visualizer` | `data_visualizer_xlsx` | `semi_native` | Default semi-native path. Generates a Visio Data Visualizer workbook for supported Mermaid flowcharts and topology IRs with recognized nodes. Empty/failed topology parses are downgraded to reference previews with no empty workbook. |
|
|
93
|
-
| `vsdx-template` | `vsdx_template_mutation` | `semi_native` (real `.vsdx`) | Mutates a template via the [`vsdx`] extra to produce a real `.vsdx` for supported
|
|
96
|
+
| `vsdx-template` | `vsdx_template_mutation` | `semi_native` (real `.vsdx`) | Mutates a template via the [`vsdx`] extra to produce a real `.vsdx` for supported flowchart and topology IRs. Use `--template PATH` to override the bundled template. Unsupported inputs and missing extras/templates cascade with clear warnings. |
|
|
94
97
|
| `visio-com` | `visio_com_automation` | delegated output editability | Probes Visio Plan 2 / Professional via COM (Windows + [`com`] extra), then currently delegates through `vsdx-template` and `data-visualizer`. A future true COM-native path will be the only source of `native` output. |
|
|
95
98
|
|
|
96
99
|
The manifest always records both `requested_engine` and `actual_engine` so engine fallbacks are visible without parsing warning strings.
|
|
97
100
|
|
|
101
|
+
The VSDX template stamp contract is documented in [docs/vsdx-template-contract.md](docs/vsdx-template-contract.md). The bundled template is intentionally minimal; richer templates can provide preferred flowchart, topology, and container stamp names while remaining synthetic and organization-agnostic.
|
|
102
|
+
|
|
98
103
|
## Inputs
|
|
99
104
|
|
|
100
105
|
- Mermaid flowchart (`.mmd`, fenced ` ```mermaid ` in Markdown) — primary input; full IR + workbook.
|
|
@@ -46,14 +46,15 @@ uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data
|
|
|
46
46
|
|
|
47
47
|
Generated packages are intentionally ignored by git.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Operating hygiene checks are also available:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
uv run spolvero hygiene --report .tmp/
|
|
52
|
+
uv run spolvero hygiene --report .tmp/operating-hygiene.md
|
|
53
53
|
uv run spolvero inspect-vsdx src/spolvero/templates/minimal_flowchart.vsdx --report .tmp/minimal-flowchart-vsdx.md
|
|
54
|
+
uv run spolvero sanitize-vsdx src/spolvero/templates/minimal_flowchart.vsdx --out .tmp/minimal-flowchart-sanitized.vsdx --report .tmp/minimal-flowchart-sanitized.md
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
See [docs/declaratus-migration.md](docs/declaratus-migration.md) for
|
|
57
|
+
See [docs/declaratus-migration.md](docs/declaratus-migration.md) for post-import operating guidance.
|
|
57
58
|
|
|
58
59
|
## Optional Extras
|
|
59
60
|
|
|
@@ -74,11 +75,13 @@ A Mermaid CLI (`mmdc`) on `PATH` is auto-detected for higher-fidelity Mermaid pr
|
|
|
74
75
|
|---|---|---|---|
|
|
75
76
|
| `package-only` | `internal_preview` | `vector_reference` | Skips workbook generation. Even Mermaid flowcharts and topology IRs are downgraded to a vector reference because no Visio handoff artifact is produced. |
|
|
76
77
|
| `data-visualizer` | `data_visualizer_xlsx` | `semi_native` | Default semi-native path. Generates a Visio Data Visualizer workbook for supported Mermaid flowcharts and topology IRs with recognized nodes. Empty/failed topology parses are downgraded to reference previews with no empty workbook. |
|
|
77
|
-
| `vsdx-template` | `vsdx_template_mutation` | `semi_native` (real `.vsdx`) | Mutates a template via the [`vsdx`] extra to produce a real `.vsdx` for supported
|
|
78
|
+
| `vsdx-template` | `vsdx_template_mutation` | `semi_native` (real `.vsdx`) | Mutates a template via the [`vsdx`] extra to produce a real `.vsdx` for supported flowchart and topology IRs. Use `--template PATH` to override the bundled template. Unsupported inputs and missing extras/templates cascade with clear warnings. |
|
|
78
79
|
| `visio-com` | `visio_com_automation` | delegated output editability | Probes Visio Plan 2 / Professional via COM (Windows + [`com`] extra), then currently delegates through `vsdx-template` and `data-visualizer`. A future true COM-native path will be the only source of `native` output. |
|
|
79
80
|
|
|
80
81
|
The manifest always records both `requested_engine` and `actual_engine` so engine fallbacks are visible without parsing warning strings.
|
|
81
82
|
|
|
83
|
+
The VSDX template stamp contract is documented in [docs/vsdx-template-contract.md](docs/vsdx-template-contract.md). The bundled template is intentionally minimal; richer templates can provide preferred flowchart, topology, and container stamp names while remaining synthetic and organization-agnostic.
|
|
84
|
+
|
|
82
85
|
## Inputs
|
|
83
86
|
|
|
84
87
|
- Mermaid flowchart (`.mmd`, fenced ` ```mermaid ` in Markdown) — primary input; full IR + workbook.
|