prep-htt
Generate or refine deliverables for an existing campaign goal, run Q&A prep sessions, and advance prep level. Use when user says 'prep for', 'practice my pitch', 'refine my strategy', 'run me through it'.
What this skill does
<purpose>
Generate or refine deliverables for a specific goal in an existing campaign. Computes prep level from current state, diffs against what should exist, and recommends next actions. Includes interactive Q&A prep sessions where the system plays devil's advocate.
</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. Read `<home>/.things/heres-the-thing/deliverable-types/index.json`
</load-config>
</step>
<step id="select-campaign" number="2">
<description>Select Campaign and Goal</description>
<if condition="campaign-id-in-arguments">
Read `<home>/.things/heres-the-thing/campaigns/<campaign-id>/campaign.json`.
</if>
<if condition="no-campaign-id">
Scan `<home>/.things/heres-the-thing/campaigns/*/campaign.json`. List active campaigns.
Use AskUserQuestion to select one.
</if>
<if condition="goal-id-in-arguments">
Select the matching goal from campaign.goals.
</if>
<if condition="no-goal-id-and-multiple-goals">
Use AskUserQuestion to select a goal.
</if>
<if condition="single-goal">
Auto-select the only goal.
</if>
</step>
<step id="compute-prep-level" number="3">
<description>Compute Prep Level</description>
Scan the campaign directory to determine current state:
<phase name="check-strategy" number="1">
Check `campaigns/<id>/strategy/` for strategy briefs matching `<goal-id>-*.md`.
</phase>
<phase name="check-artifacts" number="2">
Check `campaigns/<id>/artifacts/` for deliverables matching `<goal-id>-*.md`.
</phase>
<phase name="check-qa" number="3">
Check `campaigns/<id>/artifacts/` for Q&A session results matching `<goal-id>-qa-session-*.md`.
</phase>
<phase name="determine-level" number="4">
Compute prep level:
| State | Prep Level |
|---|---|
| No strategy brief exists | `zero` |
| Strategy brief exists | `strategized` |
| Some deliverables generated | `drafted` |
| Q&A prep session completed | `rehearsed` |
</phase>
</step>
<step id="diff-state" number="4">
<description>Diff Against Expected State</description>
<phase name="expected-deliverables" number="1">
Walk the decision tree from `/pitch-htt` to determine what deliverables SHOULD exist for this goal based on current campaign state (stakes, medium, audience, time).
</phase>
<phase name="compare" number="2">
Compare expected vs. actual:
- Which deliverables are missing?
- Has the strategy brief's inputs changed? (new outcomes logged, audience data updated from other plugins, precedent added)
- Has target_date shifted? (recalculate time available)
</phase>
<phase name="check-updates" number="3">
Check for external updates:
- Read `<home>/.things/shared/people/` profiles referenced in audience -- any updates since last strategy brief?
- Check for new outcomes in this campaign since last brief
- Check professional-profile.json for updated strengths/weaknesses
</phase>
</step>
<step id="recommend-actions" number="5">
<description>Recommend Actions</description>
Present the current state and recommendations:
```
Campaign: <id>
Goal: <goal-id> -- <description>
Target: <date> (<time remaining>)
Prep level: <level>
Current state:
Strategy brief: <exists/missing> (last version: <date>)
Deliverables: <n> of <expected> generated
Q&A sessions: <n> completed
Recommendations:
<list of recommended actions based on diff>
```
<if condition="missing-deliverables">
- Generate missing deliverables: <list>
</if>
<if condition="stale-brief">
- Regenerate strategy brief (inputs have changed: <what changed>)
</if>
<if condition="all-current">
- Run Q&A prep session to advance to `rehearsed`
- Refine existing materials
</if>
Use AskUserQuestion:
<options>
- Generate missing deliverables
- Regenerate strategy brief with updated inputs
- Run Q&A prep session
- Refine a specific deliverable
- View current materials
</options>
</step>
<step id="generate-missing" number="6">
<description>Generate Missing Deliverables</description>
<if condition="user-chose-generate">
For each missing deliverable, follow the same generation logic as `/pitch-htt` Step 8.
Read the most recent strategy brief as input. Generate and write to the artifacts directory.
</if>
<if condition="user-chose-regenerate-brief">
Generate a new timestamped strategy brief incorporating updated inputs.
Include a `## Changes from previous` section at the top listing what changed.
</if>
</step>
<step id="qa-session" number="7">
<description>Q&A Prep Session</description>
<if condition="user-chose-qa-or-qa-flag">
<phase name="setup-session" number="1">
Read the most recent strategy brief and all deliverables for this goal.
Read audience data (person profiles, segment profiles).
Check if a think-like profile exists for anyone in the audience.
Determine session depth from time available:
| Time | Format |
|---|---|
| ≤5 min | 3 rapid-fire objections, brief feedback, results summary |
| ~15 min | 5-7 questions with follow-ups, detailed feedback per response |
| Full session | Comprehensive simulation including opening, Q&A, and closing |
| Extended | Multiple rounds with different audience perspectives |
</phase>
<phase name="run-session" number="2">
**Play devil's advocate from the audience's perspective.**
<if condition="think-like-profile-exists">
Read the think-like profile to model audience perspective more deeply.
</if>
For each round:
1. Present a pointed question or objection based on:
- Audience's typical concerns and decision criteria
- Known objections from audience profile
- Weak points identified in the strategy brief
- Gaps in the user's self-assessment (known weaknesses)
2. Wait for user's response.
3. Provide feedback:
- Did the response address the concern?
- Was the framing effective for this audience?
- Suggested improvements or alternative phrasings
- Rate: strong / adequate / needs work
4. Continue to next question.
<constraint>Ask questions one at a time. Wait for the user's response before providing feedback and moving to the next question. This is interactive, not batch.</constraint>
</phase>
<phase name="session-results" number="3">
After all rounds, produce a results overview:
<output-path>`<home>/.things/heres-the-thing/campaigns/<campaign-id>/artifacts/<goal-id>-qa-session-<timestamp>.md`</output-path>
```markdown
# Q&A Prep Session Results
## Goal: <goal-id>
## Date: <timestamp>
## Depth: <session depth>
## Summary
- Questions asked: <n>
- Strong responses: <n>
- Adequate responses: <n>
- Needs work: <n>
## Points That Are Solid
- <point>: <why it's strong>
## Points That Need Work
- <point>: <what was weak, suggested improvement>
## Objections Handled Well
- <objection>: <user's effective response>
## Objections Fumbled
- <objection>: <what happened, better approach>
## Recommended Updates
- [Strategy brief]: <suggested changes>
- [Meeting prep doc]: <suggested additions>
- [Objection map]: <new entries to add>
```
<rule>Offer to apply recommended updates to existing deliverables.</rule>
</phase>
</if>
</step>
<step id="confRelated in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".