rudder-profiles-project
Installation
SKILL.md
RudderStack Profiles Project Creation
Create a new Profiles project by discovering real warehouse resources first, then generating the three core YAML files with explicit user confirmation at each decision point.
Workflow
- Verify setup — Check that Profiles MCP tools are available. If not, send the user to
/rudder-profiles-setup. - Discover connections — Call
get_existing_connections().- If connections exist, present the list and let the user pick one.
- If no connections exist, instruct the user to run
pb init connectionin their terminal, wait for confirmation that it completed, then re-check withget_existing_connections().
- Discover tables — Call
input_table_suggestions()for candidate tables. Calldescribe_table()on each candidate to confirm columns, types, and timestamps. - Confirm with user — Present discovered resources and get explicit approval (see confirmation gates below).
- Generate YAML — Write
pb_project.yaml,models/inputs.yaml, andmodels/profiles.yamlusing only discovered names and the exact shapes inreferences/basic-yaml-templates.md. Deriveschema_versionfrom the installed binary (scaffold withpb init pb-projector MCPsetup_new_profiles_project(); verify withpb version) — do not hardcode a remembered number. For each event-stream input setcontract: { is_event_stream: true, is_append_only: true }plusapp_defaults.occurred_at_col(the contract unlocks later incremental migration without a checkpoint-invalidating schema change, andis_append_onlyis rejected withoutoccurred_at_col). Start with the default ID stitcher (no explicitid_stitchermodel) unless the user needs custom edge sources. Addfilters:on id_types to exclude junk values ("unknown","NaN","", internal test IDs) — the cheapest over-stitching prevention available. - Pre-compile review — Run through the validation checklist in
references/validation-checklist.md. - Validate access — Run
pb validate accessto confirm the warehouse role can read the inputs and write to the output schema. Fix permission gaps here, before compiling. - Compile — Run
pb compile. If it fails, fix one issue at a time and re-compile. - Pilot run — Offer
pb run --begin_time <ISO-8601>only after compile succeeds and the user confirms.