oci_bom_gen.py from_spec now reads metadata.discount_pct as fallback
when individual line items don't specify a discount. This means
discount_pct: 0.45 in the spec metadata applies 45% to every SKU.
Previously, global discount was silently ignored — only per-item
discount fields were read (defaulting to 0.0).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- oci_pdf_gen.py: auto-detect new env catalogue schema (name/sizing/cost_pct)
- business-case-spec.yaml: rewritten to match oci_bizcase_gen.py expected
schema (tco.current_state/proposed_oci with annual_* fields, roi with
three_year_roi_pct/total_investment/annual_net_benefit, value_drivers
with category/driver/quantification, roadmap.phases, recommendation.summary)
- bom-spec.yaml: all SKUs verified against oci-sku-catalog.yaml (B110627
B110629 B110632 for ExaCS X11M, B95703 for ADB-S BYOL, B88326 for
FastConnect 10G, B91628 for Object Storage, B92092 for Vault)
- diagram-spec.yaml: full dual-region architecture (231 cells, 15 services)
- Now generates: PharmaCorp business case 11 slides, correct env catalogue
in PDF, 13 SKU lines in BOM with real prices
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- oci_pdf_gen.py: add_environment_catalogue now auto-detects new schema
(name/sizing/cost_pct) vs legacy (environment/tier/databases/ocpus),
same fix as oci_deck_gen.py. Also normalizes cost_notes string to list.
- business-case-spec.yaml: created PharmaCorp spec (was using MELI).
Fixed schema: risks as {migration_risks, do_nothing_risks}, roadmap
as {phases, total_duration}, recommendation as {summary, next_steps}.
- diagram-spec.yaml: rewrote to match generator format
(tenancy.regions[].vcns[].subnets[].services[] with explicit IDs).
Now generates 231 cells, 11 containers, 15 services, 10 connections.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The diagram-spec.yaml was using a flat regions/subnets format but
the generator expects tenancy.regions[].vcns[].subnets[].services[]
with explicit IDs. Rewrote with full pharma architecture:
- Queretaro (primary): Hub VCN with 4 subnets (DB, App, Public, Mgmt),
ExaCS X11M, EBS app tier, WAF, Vault, DRG, monitoring
- Sao Paulo (DR): DR VCN with ExaCS standby, FSDR, Object Storage
- 10 connections: dual FastConnect, Data Guard, FSDR, WAF chain, RMAN
Result: 231 cells, 11 containers, 15 services, 10 connections (was empty)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Skill repo: git.tech-lad.com.br/diegoecab/oci-deal-accelerator
- MCP repo: github.com/Diegoecab/arch-mcp-oracle
- Both links on Get Started slide and closing slide
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Slide 10: MCP Server — zero setup, 14 tools over HTTP, supported
clients (Claude, Codex, Cursor, Windsurf), 1-command connection.
"Zero Python. Zero repo cloning. SA opens IDE and starts working."
- Slide 12: Get Started — Option A (MCP, recommended), Option B
(clone repo), link to github.com/Diegoecab/arch-mcp-oracle.
Placeholder for final get-started link.
- Updated closing slide with MCP repo URL.
- Takeaways now include MCP as differentiator.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New slide 4: side-by-side table comparing Generic LLM vs OCI Deal
Accelerator across 8 dimensions (pricing, architecture, field gotchas,
competitive, WA validation, compliance, output format, improves over
time). Red header for generic LLM, green for skill.
Key message: "The LLM is the engine. The KB + tools are the fuel.
The SA is the driver."
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two new slides replace the generic "Under the Hood":
- Slide 8: The Knowledge Base Is the Moat — 40+ YAML files of field
knowledge, auto-refreshed pricing, 123 reference architectures,
honest competitive mapping. Without KB = chatbot, with KB = domain expert.
- Slide 9: Self-Updating KB + Collaborative Field Intelligence —
auto-refresh (SKU API, Arch Center crawler), collaborative model
(findings_cli add/confirm with attribution), governance (health
dashboard, staleness detection, domain owners).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New tools/oci_bom_gen.py: generates .xlsx BOM from YAML spec with
Oracle Redwood styling, Excel formulas, and Oracle disclaimer.
Supports standard BOM (--output) and AppCA import format (--appca)
- New tools/refresh_sku_catalog.py: refreshes SKU catalog prices from
Oracle's public pricing API (apexapps.oracle.com)
- New kb/pricing/oci-sku-catalog.yaml: ~160 OCI SKUs across 14
categories, validated against Oracle API
- New templates/bom-spec.yaml: input spec template for BOM generation
- Add SA TOOLS section to SKILL.md (options 13-14)
- Register BOM generator in oci_output.py
- New tools/oci_bom_gen.py: generates .xlsx BOM from YAML spec with
Oracle Redwood styling, Excel formulas, and Oracle disclaimer.
Supports standard BOM (--output) and AppCA import format (--appca)
- New tools/refresh_sku_catalog.py: refreshes SKU catalog prices from
Oracle's public pricing API (apexapps.oracle.com)
- New kb/pricing/oci-sku-catalog.yaml: ~160 OCI SKUs across 14
categories, validated against Oracle API
- New templates/bom-spec.yaml: input spec template for BOM generation
- Add SA TOOLS section to SKILL.md (options 13-14)
- Register BOM generator in oci_output.py