Claude
Skills
Sign in
Back

pitch-htt

Included with Lifetime
$97 forever

Create a positioning campaign -- guided interview builds campaign.json, strategy brief, and deliverables tailored to your audience, medium, and stakes. Use when user says 'pitch', 'I need to convince', 'position this', 'make them care'.

Ads & Marketing

What this skill does


<purpose>
Main workflow for heres-the-thing. Guided interview that builds a campaign: gathers subject, audience, goals, context, and precedent, then generates a strategy brief and deliverables based on the decision framework.

If `--resume` or an existing campaign-id is passed, loads the existing campaign and skips to prep level assessment (delegates to `/heres-the-thing:prep-htt` logic).
</purpose>

<steps>

  <step id="load-config" number="1">
    <description>Load Configuration</description>

    <load-config>
    Resolve the user's home directory (run `echo $HOME` via Bash). Use this absolute path for all file operations below -- never pass `~` to the Read tool.

    1. Read `<home>/.things/config.json`
       <if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.</if>

    2. Check that `<home>/.things/heres-the-thing/` exists
       <if condition="htt-missing">Tell the user: "Run `/heres-the-thing:setup-htt` first." Then stop.</if>

    3. Read `<home>/.things/heres-the-thing/deliverable-types/index.json`

    4. Read `<home>/.things/shared/professional-profile.json` (for self-assessment defaults)

    5. <if condition="resume-flag-or-campaign-id">
       Read the existing campaign.json and skip to Step 8 (Generate).
       </if>
    </load-config>
  </step>

  <step id="gather-subject" number="2">
    <description>Step 1: What Are You Positioning?</description>

    Use AskUserQuestion:

    What are you positioning? This can be anything -- a tool you built, someone else's idea, a proposal, a promotion, a policy change, a request for resources, or something that doesn't exist yet.

    <phase name="subject-source" number="1">
    How do you want to describe it?
    <options>
    - Describe it now (free text)
    - Pull from an i-did-a-thing log
    - Reference a URL, file, or existing campaign
    - Describe something that doesn't exist yet (idea, aspiration)
    </options>

    <if condition="pull-from-idat">
    Search `<home>/.things/i-did-a-thing/index.json` for recent entries. Present top 10 by date. Let user select one.
    Extract title, description, tags, and store as `source_refs` entry with type `idat_log`.
    </if>

    <if condition="reference-url">
    Ask for the URL or file path. Store as `source_refs` entry with type `url`.
    </if>
    </phase>

    <phase name="subject-type" number="2">
    What kind of thing is this?

    Use AskUserQuestion (free text accepted):
    <options>
    - project -- Something you built or are building
    - idea -- A concept or proposal
    - request -- Asking for resources, approval, or support
    - tool -- A specific tool, library, or system
    </options>

    <rule>Accept any string -- these are suggestions, not an enum.</rule>
    </phase>

    <phase name="subject-familiarity" number="3">
    How well do you understand what you'll be communicating about?

    Use AskUserQuestion:
    <options>
    - expert -- I know this deeply, could answer any question
    - i_built_it -- I created it and know it well
    - familiar -- I understand the basics but may have gaps
    - new_to_me -- I'm still learning about this
    </options>

    <if condition="new_to_me-or-familiar">
    Flag: Subject research tasks will be included in the strategy brief. Confidence flags will mark assumptions that need verification.
    </if>
    </phase>
  </step>

  <step id="gather-goals" number="3">
    <description>Step 2: Who / Why / Where / When (Per Goal)</description>

    <constraint>A campaign can have multiple goals. Start with the first one, then ask if they want to add more.</constraint>

    For each goal, use AskUserQuestion to gather:

    <phase name="goal-basics" number="1">
    1. **Goal description**: What outcome are you trying to achieve?
    2. **Goal type**:
       <options>
       - short_term -- A specific near-term outcome
       - long_term -- A broader objective that may require multiple steps
       </options>
    3. **Target date**: When does this need to happen? (date or relative like "next Friday", "end of Q2")
    4. **Stakes**:
       <options>
       - low -- Nice to have, won't hurt if it doesn't land
       - medium -- Important but recoverable
       - high -- Critical outcome, significant consequences
       </options>
    </phase>

    <phase name="goal-audience" number="2">
    **Audience**: Who are you trying to reach?

    Use AskUserQuestion:
    <options>
    - A specific person (I'll name them)
    - An audience segment I've already defined
    - A new audience I'll describe now
    </options>

    <if condition="specific-person">
    Ask for their name. Check `<home>/.things/shared/people/` for an existing profile.
    <if condition="person-exists">Load their profile.</if>
    <if condition="person-not-found">
    Ask the user: "No profile found for <name>. I'll create one. What's their role/title?"
    Create a minimal profile in `<home>/.things/shared/people/<slug>/profile.md` and `index.json`.
    </if>

    Then ask:
    - **Receptiveness**: How receptive is this person to what you're proposing?
      <options>
      - champion -- They're already on your side
      - enthusiastic -- Open and supportive
      - neutral -- Will evaluate on merits
      - skeptical -- Needs convincing
      - hostile -- Actively against it
      </options>
    - **Familiarity**: How well do you know this person?
      <options>
      - well_known -- Worked together extensively
      - moderate -- Some interaction
      - low -- Barely know them
      - unknown -- Never met
      </options>
    - **Familiarity notes** (free text, optional): Anything else about your relationship or their preferences?
    </if>

    <if condition="existing-segment">
    List available segments from `<home>/.things/heres-the-thing/audiences/`. Let user select.
    Ask for receptiveness override (or use baseline).
    </if>

    <if condition="new-audience">
    Gather basic audience info inline (name, key concerns, decision criteria). Store in campaign only (not as a reusable segment).
    </if>

    <rule>A goal can have multiple audience entries (e.g., presenting to a group).</rule>
    Ask: "Is there anyone else in this audience for this goal?"
    </phase>

    <phase name="goal-medium" number="3">
    **Medium**: How will you deliver this?

    Use AskUserQuestion (free text accepted):
    <options>
    - meeting_1on1 -- One-on-one meeting
    - meeting_group -- Group meeting or presentation
    - email -- Written email
    - proposal -- Formal written proposal
    - talk -- Presentation or talk
    - cold_outreach -- Cold email or message
    - slack -- Slack message or thread
    </options>

    <rule>Accept any string -- these are suggestions, not an enum.</rule>

    **Delivery length** (if applicable): How long do you have? (e.g., "30 min", "1 page", "5 min lightning talk")
    </phase>

    <phase name="goal-deliverables" number="4">
    Based on the decision framework (see Step 7), the system will auto-select deliverables. But ask:

    Are there specific deliverables you want for this goal beyond the auto-selected ones?

    Show available types from the deliverable type registry.
    </phase>

    <phase name="more-goals" number="5">
    Use AskUserQuestion:
    Do you want to add another goal for this campaign?
    <options>
    - Yes -- add another goal
    - No -- that's all
    </options>

    <if condition="add-another">Loop back to the start of this step.</if>

    <rule>If a user defines both short-term and long-term goals, prompt them to link them: "Does <short-term-goal> roll up to <long-term-goal>?" Set `parent_goal` accordingly.</rule>
    </phase>
  </step>

  <step id="gather-context" number="4">
    <description>Step 3: Context</description>

    Use AskUserQuestion:

    1. **Situational context**: What's the landscape? What's happening that makes this timely? (free text)

    2. **Precedent**: Is there anything relevant from your past tha

Related in Ads & Marketing