Diagram generation: ref-arch-driven procedure + spec validator + KB enrichment

The diagram path now follows a documented standard procedure (lookup
the closest Oracle Architecture Center reference → confirm components
→ author absolute_layout → spec validator → render → visually verify)
and ships persistent guardrails so layout regressions can't recur.

Persistent procedure changes (apply to all users, all sessions):
- tools/diagram_spec_validator.py — geometry checks (CONTAINER_TOO_THIN,
  CONTAINER_PADDING_VIOLATION, LABEL_OVERFLOW_PARENT) run BEFORE either
  renderer (drawio + PPTX). Catches the subnet-collapse / label-overflow
  bugs that the post-render drawio validator missed.
- tools/oci_diagram_gen.py + tools/oci_pptx_diagram_gen.py — call the
  spec validator before emitting any output. Adds mysql / mysql_heatwave
  type aliases.
- tools/archcenter_pattern_lookup.py — scores against cached page
  descriptions (not just the 1-line summary), supports --queries for
  multi-fragment composition, and applies synonym expansion via
  kb/architecture-center/synonyms.yaml so "LB HA cross AD" matches
  "load balancer high availability availability domain".
- kb/architecture-center/synonyms.yaml — canonical synonym table
  (load balancer, autonomous database, data guard, …) used by the
  lookup scorer.

KB enrichment:
- tools/archcenter_description_fetcher.py + 121 cached _description.md
  under kb/diagram/assets/archcenter-refs/<slug>/. Removes the runtime
  dependency on docs.oracle.com when authoring specs and feeds the
  pattern-lookup scorer.
- 110+ cached .drawio / .svg / .png references for offline reuse,
  plus the OCI Toolkit v24.2 import (kb/diagram/assets/oci-toolkit-drawio).

Documentation:
- docs/skill/output-formats.md — new "Standard diagram-generation
  procedure (MANDATORY)" + geometry rules + the new validator entry.
- SKILL.md option 2 — references the mandatory procedure.
- README.md — describes the spec validator, archcenter_pattern_lookup
  and description fetcher, and updates the KB-health table.

Tooling that backs the procedure (cumulative across recent sessions):
tools/archcenter_case_runner.py, archcenter_batch_driver.py,
archcenter_zip_downloader.py, drawio_visual_validator.py,
drawio_fidelity_eval.py, harvest_drawio_icon.py, import_oci_library.py,
oci_pptx_diagram_gen.py, oci_pptx_render.py, refresh_pptx_icon_index.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-25 21:15:21 -03:00
parent 2491c38d4b
commit b30a4f0d32
635 changed files with 365317 additions and 1014 deletions

View File

@@ -0,0 +1,117 @@
asset:
bundled_path: kb/diagram/assets/OCI_Icons.pptx
manifest_path: kb/diagram/oci-pptx-icons-manifest.yaml
index_path: kb/diagram/oci-pptx-icons-index.json
env_var: OCI_ICONS_PPTX_PATH
search_globs:
- /mnt/c/Users/*/Downloads/OCI_Icons*.pptx
- ~/Downloads/OCI_Icons*.pptx
- kb/diagram/assets/OCI_Icons*.pptx
refresh:
sync_discovered_asset_into_bundle: true
choose_newest_discovered_match: true
instruction_index:
noise_contains:
- "copyright"
- "oracle and/or its affiliates"
noise_exact:
- "tip"
semantic_markers:
connectors_logical:
title_contains: "Connectors"
all_text:
- "Open Arrowhead style"
- "Bark color"
- "relationships between icons and grouping boxes"
connector_labels:
all_text:
- "connector labels"
- "Place connector labels on the horizontal portions"
grouping:
title_contains: "Grouping"
all_text:
- "OCI Region"
- "Availability Domain"
- "Compartment"
landscape_blank_template:
all_text:
- "Landscape Blank Template"
- "Location Canvas"
- "OCI Region"
portrait_blank_template:
all_text:
- "Portrait Blank Template"
- "OCI Region"
landscape_sample_db_dr:
all_text:
- "Landscape Sample"
- "Primary"
- "Standby"
- "Database"
- "VCN"
database_icons:
title_contains: "Database"
any_text:
- "ADB-D"
- "ATP-D"
- "ADW-D"
- "Data Guard"
migration_icons:
title_contains: "Migration"
any_text:
- "Database Migration"
- "Oracle Cloud Migration Advisor"
extracted_shapes:
grouping_labels:
- "OCI Region"
- "Availability Domain"
- "Fault Domain"
- "Tier"
- "Tenancy"
- "Compartment"
- "VCN"
- "Subnet"
database_icon_labels:
- "Database"
- "Oracle Autonomous Database"
- "ADW-D"
- "ATP-D"
- "ADB-D"
- "Oracle Exadata Database Service"
- "Data Safe"
- "NoSQL Database"
- "Database Management"
- "Data Guard"
- "Data Guard Recovery"
design_tokens:
palette:
bark: "312D2A"
bark_soft: "66615C"
gray_divider: "9E9892"
gray_tick: "C8C5C1"
bg_warm: "FBF6F0"
white: "FFFFFF"
oracle_red: "C74634"
oracle_red_soft: "AE562C"
oracle_blue: "3F7CC4"
oracle_green: "00875A"
oracle_amber: "E8A92F"
tl_green: "EAF2DE"
tl_yellow: "FBF1C7"
tl_amber: "F8D9A8"
tl_red: "F6CAC4"
typography:
primary_font: "Oracle Sans"
connector_style:
line_width_emu: 12700
line_width_soft_emu: 9525
color: "312D2A"
arrowhead:
type: "triangle"
width: "sm"
length: "sm"