Context Engineering: Before and After. Follow-along kit.
=========================================================

Synthetic Salesforce-shaped data plus the exact YAML from the mini workshop,
so you can reproduce every flip in your own Omni instance. The data is fake
(Dune-themed company names); nothing here is from a real company.

What is in here
---------------
data/           6 CSVs: accounts, opportunities, activities, product_users,
                product_events, subscriptions. 320 opportunities.
schema/         CREATE TABLE DDL for Snowflake (adapt types for other warehouses).
omni-starter/   The raw "before" model: bare views, no context. Load these
                so your starting point matches the demo's.
layers/         The five context-engineering layers, one directory each.
                Each file is the ENTIRE difference for that layer.

Setup (once, about 20 minutes)
------------------------------
1. Create a schema (the demo uses OMNI_DB.CX_TRAINING) and run
   schema/ddl_snowflake.sql.
2. Load each CSV into its table (any loader works; empty string = NULL).
3. Point an Omni connection at the schema and create a model on it.
4. Paste the omni-starter files over the generated views so your "before"
   matches the demo's. Ask the Agent "how many channel wins do we have?"
   You should get 0. That zero is the point.

Then, one layer at a time
-------------------------
Create a branch per layer (the demo names them
mini-context-engineering-workshop/layer-1-joins and so on), paste in that
layer's file(s), refresh and validate, and re-ask the layer's questions from
the workshop page. Watch the answer flip. The workshop page has the questions,
the expected numbers, and the Omni doc link for every parameter:
https://spicydata.ai/mini-workshops/context-engineering-before-after

The traps are designed
----------------------
- competitor_c holds the win channel on WON deals, the competitor on LOST
  deals, NULL on open ones.
- is_closed is TRUE for both Closed Won AND Closed Lost.
- The fiscal year starts in July.
Your CRM has fields exactly like these. That is the point of the exercise.
