feat: add persona-consultation-builder skill (marketing) - #118
Open
Pralish wants to merge 1 commit into
Open
Conversation
Hackathon-authored skill for a personalization brand (Prose). Turns a
persona a rep already understands about their audience — "curly, dry
scalp"; "postpartum shed"; "color-treated blonde" — into a 2-question
mini-consultation, down from the site-wide 19-question flow, with its
own rep-attributed share URL.
Ships two artifacts per invocation:
- a Liquid theme section that renders the persona-scoped quiz on any
storefront Page (server-rendered, SEO-visible, first-party cookies)
- a Portal share screen with QuickShareWidget so every rep gets a
unique attributed link and the consultation credits them on
conversion via cart.enrollment_sponsor_member_id
The "more for less" lever: same catalog, same resolver, same subscribe
economics, but persona-scoped funnels can be spun up in a chat turn
each instead of an agency-scale multi-week landing-page project.
Skill body carries the persona registry table (routing map for future
triage pages / Mist personas tables) and 15+ hard-won gotchas verified
during the hackathon — create_page's error-while-succeeding behavior,
QuickShareWidget shareableType enum, Portal component_tree POST/PUT
shape, FairShare add-to-cart binding, and the fluid theme pull
duplicate-section-tail corruption on large section files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hackathon-authored skill (Mist Hackathon, 2026-07-31 build night). Turns any persona a rep already understands about their audience — "curly, dry scalp"; "postpartum shed"; "color-treated blonde" — into a 2-question mini-consultation, down from the target brand's site-wide 19-question flow. Each invocation ships:
/:credit/work with no iframe)QuickShareWidgetpointing at the storefront Page, so every rep gets an attributed share URL and the resulting cart carriesenrollment_sponsor_member_idon conversionThe lever, in one line: the persona moves context acquisition from the CUSTOMER to the LINK. Same catalog, same resolver, same subscribe economics — a fraction of the drop-off.
Why "More for Less"
The old way for spinning up persona landing funnels is agency-scale: designer, dev, merchandiser, QA, a few weeks per page. Six pages a year on a good year. This skill compresses it to a chat turn — "50 persona funnels a quarter" becomes a real number, each with its own rep-attributed share link, all feeding the same subscribe economics.
Company-specific bits worth flagging for reviewers
The skill was authored for Prose during the hackathon, so the body carries examples from that brand:
Prose Onboarding Theme (#56810)sections/prose_hair_quiz/custom-curl-cream,custom-hair-mask,custom-scalp-serum, etc.Every other skill in the community catalog is company-agnostic (uses
{{company.name}}tokens with no hardcoded brand/theme IDs). Happy to generalize this one before merge — options:{{consultation_section_name}}) so any personalization brand can adoptpersonal-care/category since the derivation tables (texture, scalp, concern → signature product) assume that verticalGuidance welcome on the target shape.
What's verified vs. not
Verified during the hackathon:
Country.id=214is the only US row in Prose's environment (the internalfluid_product_importtool assumes233and 422s on every product create — filed separately as Mist feedback)QuickShareWidgetacceptsshareableType: "Page"— verified in the widget sourceform_typeis a string enum (pre_purchase | post_purchase | general) andform_componentsat create-time is what triggerscreate_form_elementscreate_pageerrors while succeeding — every call returnedObject has been destroyedbut persisted the Page; the skill documents the "GET pages, check by title, never retry" recovery so a naive retry doesn't produce 4 duplicate Pagescustom_slug;canonical_urlfrom the response is the only URL to trustpage.slugandpage.handleare BLANK in Liquid — onlypage.titlepopulatesfluid theme pullcan duplicate a large section file's tail past{% endschema %}(renders as visible JS on the storefront while lint stays green); prevented by keeping CSS/JS inassets/and preferringpush --forceoverpullwhen local is known-goodNot yet verified:
GET /api/checkout/v2026-04/reps→total_count: 0), soQuickShareWidget→ cart'senrollment_sponsor_member_idis wired but untestable until a real rep exists. The skill body says so plainly.Test plan
marketing/persona-consultation-builder/SKILL.mdinto~/Fluid/<company>/skills/(or wait for the manifest sync)crawlthe resulting Page URL and confirmdata-quiz-variantpositions match predictions from the token tablesRelated
fluid_product_importbugs (stale country ISO map + silent field re-derivation on write) filed as separate Mist feedback