Encode intent/decision/plan workflow for Snowflake platform delivery so engagements share a durable recipe instead of one-off LLM chats. Co-authored-by: Cursor <cursoragent@cursor.com>
77 lines
2.3 KiB
YAML
77 lines
2.3 KiB
YAML
# Greenfield wizard — Snowflake vocabulary questions mapped to intent paths.
|
|
version: 1
|
|
mode: greenfield
|
|
questions:
|
|
- id: customer
|
|
prompt: "What is the customer slug? (lowercase, e.g. acme)"
|
|
intent_path: customer
|
|
type: string
|
|
required: true
|
|
|
|
- id: env_strategy
|
|
prompt: "How should environments be isolated?"
|
|
intent_path: env_strategy
|
|
type: choice
|
|
choices:
|
|
- value: database_per_env
|
|
label: "Databases per environment in one account (default)"
|
|
- value: account_per_env
|
|
label: "Separate Snowflake account per environment"
|
|
default: database_per_env
|
|
|
|
- id: environments
|
|
prompt: "Which environments do you need? (comma-separated: dev,test,prod)"
|
|
intent_path: environments
|
|
type: list
|
|
default: [dev, test, prod]
|
|
item_enum: [dev, test, prod, sandbox]
|
|
|
|
- id: domains
|
|
prompt: "List business domains / data products (comma-separated, e.g. sales,finance,ops)"
|
|
intent_path: domains
|
|
type: domain_list
|
|
required: true
|
|
default_access_profile: standard
|
|
|
|
- id: domain_access
|
|
prompt: "Any domain that needs restricted access? (comma-separated names, or none)"
|
|
type: restricted_domains
|
|
default: none
|
|
maps_to: domains[].access_profile
|
|
|
|
- id: warehouse_profile
|
|
prompt: "Warehouse profile?"
|
|
intent_path: warehouses.profile
|
|
type: choice
|
|
choices:
|
|
- value: standard_cost_saver
|
|
label: "Cost saver (X-SMALL, aggressive auto-suspend)"
|
|
- value: performance
|
|
label: "Performance (MEDIUM)"
|
|
default: standard_cost_saver
|
|
|
|
- id: identity_sso
|
|
prompt: "SSO status?"
|
|
intent_path: identity.sso
|
|
type: choice
|
|
choices:
|
|
- value: none
|
|
label: "No SSO (service users / local only)"
|
|
- value: planned
|
|
label: "SSO planned later"
|
|
- value: okta
|
|
label: "Okta now"
|
|
- value: azure_ad
|
|
label: "Azure AD now"
|
|
- value: other
|
|
label: "Other IdP now"
|
|
default: planned
|
|
|
|
- id: prod_curated_exceptions
|
|
prompt: "Any domain that needs prod curated read early (against restricted defaults)? (comma-separated or none)"
|
|
type: override_with_decision
|
|
override_path_template: "domains.{name}.prod_curated_read"
|
|
decision_required: true
|
|
decision_prompt: "Why is prod curated read allowed early for {name}? (stored as a decision)"
|
|
default: none
|