- oci_deck_gen / oci_bizcase_gen: stop appending the Thank You + Oracle
logo-only closing slides at the end of every generated deck.
- oci_bizcase_gen: Business Drivers now reads primary_driver at the
drivers-level and at the top level, and renders natural-language values
verbatim (only snake_case enum tokens are Title-cased). A spec-provided
drivers.items / additional / secondary list replaces the hardcoded
"Financial Impact of Inaction" + "Operational Impact" fallback cards.
- oci-sku-catalog.yaml: add data_services category with the four real
Big Data Service SKUs (B91128/B91129/B91130/B93555) plus EST-DS-NOTEBOOK,
EST-DS-MODEL, EST-DF-SPARK as estimate placeholders (OCI Data Science /
Data Flow have no dedicated SKUs in the public pricing API — they are
billed via the underlying compute shape).
- oci_bom_gen: resolver now prints a stderr warning and tags estimate/
unknown line items with an explicit note; the xlsx writer renders
"other" category items under an "Uncategorized — confirm SKUs" section
at the end instead of silently dropping them.
Co-Authored-By: Claude Opus 4.7 (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