Enrich MCP flat-spec adapter to emit full ECAL deck content
All checks were successful
Deploy Skill to OCI / deploy (push) Successful in 17s
All checks were successful
Deploy Skill to OCI / deploy (push) Successful in 17s
Regression after the closing-slide removal surfaced a separate bug: _adapt_flat_spec() only emitted metadata + summary + cost, so decks generated from the MCP flat payload collapsed to 3-5 slides of title + summary. The deck generator's ECAL sections (service_tiering, architecture_principles, environment_catalogue, operational_raci, etc.) all check top-level spec keys the adapter never produced. Adapter now also emits, from the flat payload + kb/patterns defaults: - service_tiering from services[] (preserves any tier/uptime/rto/rpo) - architecture / architecture_principles (ECAL "always" picks) - ha_dr tiers derived from the distinct service tiers present - security baseline (IAM/network/database/monitoring controls) - environment_catalogue (Prod/Pre-Prod/Dev-Test, +DR if enabled) - operational_raci co_managed default from the KB - next_steps skeleton Flat MCP payload now renders 11 content slides instead of 3-5, and the proposal-spec.yaml path (non-flat) is unchanged — still 16 slides for examples/proposal-spec.yaml. Also documents the new data_services SKUs in docs/bom-cookbook.md as Recipe 4 (BDS/DS/DF) so MCP payloads can use the catalog codes directly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -137,6 +137,51 @@ Swap `B88326` → `B88325` (1 Gbps) or `B93126` (100 Gbps) as needed.
|
||||
|
||||
---
|
||||
|
||||
## Recipe 4 — Big Data Service + Data Science + Data Flow (analytics stack)
|
||||
|
||||
**When it matches:** "HDFS-managed cluster for ETL", "notebooks + model deployment",
|
||||
"managed Spark pipelines" — typical OCI analytics/AI workload mix.
|
||||
|
||||
**SKUs:**
|
||||
|
||||
| SKU | Component | Metric |
|
||||
|-----|-----------|--------|
|
||||
| `B91128` | Big Data Service — Compute Standard (real) | OCPU/hour |
|
||||
| `B91129` | Big Data Service — Compute Dense I/O (real) | OCPU/hour |
|
||||
| `B91130` | Big Data Service — Compute HPC (real) | OCPU/hour |
|
||||
| `B93555` | Big Data Service — Core (real) | OCPU/hour |
|
||||
| `EST-DS-NOTEBOOK` | **[Estimate]** Data Science notebook session — priced as underlying VM.Standard OCPU | OCPU/hour |
|
||||
| `EST-DS-MODEL` | **[Estimate]** Data Science model-deployment endpoint — priced as underlying VM.Standard OCPU | OCPU/hour |
|
||||
| `EST-DF-SPARK` | **[Estimate]** Data Flow managed Spark runtime — priced as underlying VM.Standard OCPU | OCPU/hour |
|
||||
|
||||
OCI Data Science and OCI Data Flow have no dedicated SKUs in the Oracle public
|
||||
pricing API — both are billed via the underlying Compute shape + Block/Object
|
||||
Storage consumed. The `EST-*` entries are placeholder estimates (VM.Standard3.Flex
|
||||
OCPU rate) so BOMs can include them as line items with an explicit "estimate"
|
||||
flag; confirm the actual shape and hours with the customer before quoting.
|
||||
|
||||
**Payload (16 BDS Standard + 8 BDS Dense I/O + 4 notebook + 2 model + 8 Spark):**
|
||||
|
||||
```json
|
||||
{
|
||||
"customer_id": "acme-analytics",
|
||||
"discount_pct": 0.30,
|
||||
"currency": "USD",
|
||||
"services": [
|
||||
{ "sku": "B91128", "quantity": 16 },
|
||||
{ "sku": "B91129", "quantity": 8 },
|
||||
{ "sku": "EST-DS-NOTEBOOK", "quantity": 4 },
|
||||
{ "sku": "EST-DS-MODEL", "quantity": 2 },
|
||||
{ "sku": "EST-DF-SPARK", "quantity": 8 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Add `B91961` (Block Volume) and `B91628` (Object Storage Standard) when the
|
||||
customer needs dedicated storage beyond the compute default.
|
||||
|
||||
---
|
||||
|
||||
## When a recipe doesn't fit
|
||||
|
||||
1. Grep the catalog: `grep -n "<product keyword>" kb/pricing/oci-sku-catalog.yaml`
|
||||
|
||||
Reference in New Issue
Block a user