All checks were successful
Deploy Skill to OCI / deploy (push) Successful in 21s
- refresh_sku_catalog.py: add --discover to report API SKUs missing from catalog, filtered to already-curated serviceCategory values. Auto-runs at end of --validate and --refresh so gaps surface on every maintenance pass. First run found 162 missing SKUs (Blackwell GPUs, X12 Ax compute, VMware reserved tiers, WebLogic-on-OKE, Analytics/OIC BYOL). - oci_bom_gen.py: fix Cost % column being blank. Back-fill was gated on formula detection but data rows write raw numbers, so the predicate never matched. Now tracks data_item_rows explicitly. - .gitea/workflows/sku-catalog-refresh.yaml: monthly automation (1st at 09:00 UTC). Auto-refresh prices → push branch + open PR; detect new SKUs → open issue with labels. Gated on secrets.GITEA_TOKEN. - kb/pricing/oci-sku-catalog.yaml: add B95714 / B95715 (Autonomous ATP Dedicated ECPU, LI + BYOL) — canonical SKUs for ADB-D pricing. - kb/services/compute.yaml: add X12 family (VM.Standard4.Ax.Flex, BM.Standard4.Ax.120), E6.Ax and A4.Ax variants. Verified against docs.oracle.com computeshapes.htm. Bump last_verified + changelog. - templates/bom-spec.yaml: document 730 hrs/month convention as default (= real annual billing / 12; 744 overstates by 1.92% on 12-month TCO). - Makefile: new 'make sku-discover' target. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
52 lines
3.1 KiB
YAML
52 lines
3.1 KiB
YAML
# ──────────────────────────────────────────────────────────────────
|
|
# OCI Bill of Materials (BOM) — Spec Template
|
|
# ──────────────────────────────────────────────────────────────────
|
|
# The AI generates this YAML based on the customer's request,
|
|
# selecting only the relevant SKUs from kb/pricing/oci-sku-catalog.yaml.
|
|
# The BOM generator tool (tools/oci_bom_gen.py) renders it to .xlsx.
|
|
#
|
|
# Usage:
|
|
# python tools/oci_bom_gen.py --spec this-file.yaml --output bom.xlsx
|
|
|
|
bom:
|
|
# ── Header ──────────────────────────────────────────────────────
|
|
customer_name: ""
|
|
project_name: ""
|
|
prepared_by: ""
|
|
date: "" # ISO format: 2026-03-27
|
|
reference_label: "" # e.g., "ACME-BOM-001"
|
|
currency: USD # Primary currency
|
|
# realm: "OC1 - Commercial" # Optional: OC1 / OC2 / OC3 / OC9
|
|
# service_type: "Pay as You Go" # Optional: PAYG / UCM / Annual Flex
|
|
|
|
# ── Optional currency conversion ────────────────────────────────
|
|
# Enable to add converted columns (e.g., USD → BRL with tax)
|
|
conversion:
|
|
enabled: false
|
|
target_currency: BRL
|
|
exchange_rate: 5.75 # 1 USD = X target currency
|
|
tax_rate: 0.0 # e.g., 0.1385 for 13.85% ISS+PIS+COFINS
|
|
|
|
# ── Line items (only requested services) ────────────────────────
|
|
# Each item must reference a SKU from oci-sku-catalog.yaml.
|
|
# Only include services the customer actually needs.
|
|
line_items:
|
|
- sku: "B97384" # Must match oci-sku-catalog.yaml
|
|
qty: 4 # Number of instances/units
|
|
# hours_units: 730 # Override catalog default if needed
|
|
months: 12 # Contract duration
|
|
discount: 0.0 # 0.0 to 1.0 (e.g., 0.30 = 30%)
|
|
# custom_label: "" # Optional label
|
|
# custom_note: "" # Optional note
|
|
|
|
- sku: "B97385"
|
|
qty: 64 # 64 GB memory
|
|
months: 12
|
|
discount: 0.0
|
|
|
|
# ── Notes (optional) ────────────────────────────────────────────
|
|
notes:
|
|
- "Pricing based on Ashburn region (OC1)"
|
|
- "Discounts subject to Oracle approval"
|
|
- "Hours convention — 730 vs 744: this BOM uses 730 hrs/month (= 8,760 annual hrs / 12), which equals the actual yearly OCI billing for hourly SKUs. OCI Cost Estimator defaults to 744 hrs/month (worst-case 31-day month); extrapolated to 12 months, 744 overstates the real annual cost by 1.92%. For 12-month TCO/proposals, 730 is the accurate figure; 744 is only appropriate when quoting a single peak month as an upper bound."
|