comp-scout-compose
Generate authentic, memorable competition entries (25 words or less) and auto-persist to GitHub issue. Creates multiple variations with different arcs and tones.
What this skill does
# Competition Entry Composer
Generate authentic, memorable "25 words or less" competition entries and **automatically save to GitHub issue**.
## Execution Modes
| Mode | Behavior |
|------|----------|
| **Interactive** (default) | Ask for user context, stories, tone preferences |
| **Unattended** | Use saved stories or generic approach, no prompts |
The `comp-scout-daily` workflow always invokes this skill in **unattended mode**.
### Interactive Mode
When run interactively, this skill asks:
- "What genuine experience do you have with this brand/product?"
- "Any specific memory or story that relates to the prompt?"
- "Tone preference: funny, sincere, or mix?"
### Unattended Mode
When invoked with `--unattended` or by `comp-scout-daily`:
- Checks saved stories from CLAUDE.md for keyword matches
- Uses best-matching story, or generic approach if none match
- Generates 3-5 entries with varied arcs
- Auto-persists with recommendation highlighted
- No user prompts - runs end-to-end automatically
## What This Skill Does
1. Gathers user context to find authentic angles (interactive) or uses saved stories (unattended)
2. Generates 3-5 entry variations with different arcs
3. Rates and recommends the strongest entries
4. **Auto-persists entries as comment on GitHub issue**
5. **Adds `entry-drafted` label to the issue**
**No manual "please save entries" step required.**
## Input
- Strategy from `comp-scout-analyze` (recommended)
- OR competition details (prompt, word_limit, brand)
- User context (personal connection, preferences) - interactive mode
- **issue_number** (for auto-persist)
Optional flags:
- `--unattended` - Skip all interactive prompts, use saved stories or generic approach
## Workflow
### Step 0: Check for Matching Saved Stories
Before asking for new context, check if saved stories from the data repo match this competition.
1. Fetch saved stories from the data repo's CLAUDE.md:
```bash
gh api repos/$TARGET_REPO/contents/CLAUDE.md -H "Accept: application/vnd.github.raw" 2>/dev/null
```
2. Parse the Saved Stories section for story entries
3. For each story, calculate relevance by matching story keywords against:
- Competition prompt
- Brand/sponsor name
- Prize description
- Strategy themes (if available from comp-scout-analyze)
4. If matching stories found, present them:
```
I found saved stories that might work for this competition:
1. **Opa's German Christmas** (3 keyword matches: christmas, chocolate, family)
Theme: Nostalgia, heritage, German traditions
2. **Teaching Daughter to Cook** (1 keyword match: kitchen)
Theme: Family moments, passing on traditions
Would you like to use one of these, or provide new context?
```
5. If user selects a story, use its details for entry composition (skip Step 1)
6. If user provides new context AND it's rich enough to reuse, offer to save:
```
That's great context! Would you like me to save this as a story for future competitions?
Suggested name: "Sunday BBQ Traditions"
Themes: barbecue, summer, Australian lifestyle
Keywords: bbq, summer, meat, outdoor, gathering
```
To save a new story, update the data repo's CLAUDE.md with the new story entry.
### Step 1: Gather User Context
Before drafting, ask clarifying questions:
**Essential:**
- What genuine experience or connection do you have with this brand/product?
- Any specific memory or story that relates to the prompt?
**Helpful:**
- Tone preference: funny, sincere, or mix?
- Anyone you'd nominate instead of yourself? (partner, family member)
- Any personal details that might be relevant? (job, hobby, family situation)
**If user has no connection:**
- What's generally true for you that could relate?
- What would you actually do with this prize?
- What's the honest version of your situation?
### Step 2: Find the Authentic Hook
Generic entries lose. The goal is specificity that makes judges smile in recognition.
**Transformation examples:**
| Generic | Specific |
|---------|----------|
| "I love cooking" | "Sunday arvo freezer audit before the weekly shop" |
| "I want to relax" | "Like my shoulders have dropped from my ears" |
| "I like Japan" | "Horseback archery champs, bonsai masters, noodle competitions" |
| "I need ice" | "The person who forgot to refill the ice tray mid-barbecue" |
| "I love coffee" | "The only five minutes that's mine before school run chaos" |
| "I want to travel" | "We've done Japan at full speed. Time to walk it slowly." |
**Questions to surface hooks:**
- What's actually true for you?
- What's the embarrassing/honest version?
- What specific detail would make a judge smile in recognition?
- What do you already do that relates to this prize/brand?
### Step 3: Select Entry Arc Structure
Choose the arc that best fits the tone and content:
---
**Sincere Arc** (wellness, luxury, emotional prizes)
Structure:
1. Honest admission of current state
2. Aspiration or need
3. Warm landing
Example (wellness retreat):
> "My partner nurtures everyone else first. Always. Her mind, body, and soul have been running on empty. She's earned this."
---
**Comedic Arc** (setup → pivot → callback)
Structure:
1. Setup (unexpected angle or joke)
2. Pivot to genuine substance
3. Callback that recontextualises the setup
Example (solar panels):
> "Befriend a neighbour with a pool. Run the laundry while the sun shines. I can watch my panels work, while I float!"
---
**Self-Deprecating Arc** (relatable failure → redemption)
Structure:
1. Confession (the annual shame)
2. Constraint (why it persists)
3. Resolution (this fixes it)
4. Optional undercut (but there's always something else)
Example (ice maker):
> "Every summer barbecue I realise I'm the person who forgot to refill the ice tray, and I can't do a servo run mid-barbecue. Finally, I become the host who is prepared for everything—except an empty gas bottle."
---
**List → Pivot Arc** (travel, experience prizes)
Structure:
1. Quick list establishing credentials ("Done X, Y, Z")
2. Identify the gap ("But we've never...")
3. Land on the aspiration
Example (Japan walking tour):
> "Horseback archery world champs. World's best bonsai. Noodle-making competitions. We've done Japan at full speed. Time to finally walk it slowly."
---
**Sensory Arc** (food, beverage, experiential)
Structure:
1. Scene-setting
2. Vivid sensory detail
3. Emotional resonance
Example (early holiday memory):
> "Ulladulla at four. Dad handed me my first oyster. Too slimy to chew. Swallowed it whole like a little pelican."
---
### Step 4: Draft Multiple Versions
Generate 3-5 entries with different approaches:
For each entry, provide:
- The entry text
- Word count (must be ≤ word_limit)
- Arc type used
- Approach description
- Landing strength (1-5)
- Notes on why it works
### Step 5: Refine Based on Feedback
After user selects a direction:
**Tighten word economy:**
- Remove redundant words
- Combine phrases
- Use stronger single words instead of phrases
**Strengthen the landing:**
- Last line should resonate
- Consider callbacks to earlier elements
- Avoid trailing off
**Check rhythm:**
- Short sentences for punch
- Longer sentences for warmth
- Vary sentence length for flow
**Verify compliance:**
- Word count within limit
- Addresses the actual prompt
- Authentic to user's voice
### Step 6: Final Quality Check
Before delivering final entry:
- [ ] Meets word limit exactly or under
- [ ] Contains specific detail (not generic)
- [ ] Has clear structure/arc
- [ ] Landing line is strong
- [ ] Authentic to user's voice
- [ ] Appropriate tone for sponsor/audience
- [ ] No repeated words doing the same job
- [ ] No clichés or overused phrases
- [ ] Would make a judge smile or nod
### Step 7: Auto-Persist to GitHub Issue
Add entries as comment and add label:
```bash
# Add entry drafts as comment
gh issue comment $ISSUE_NUMBER -R "$TARGET_REPO" --body "$(cat <<'EOF'
## Entry Drafts
### Option 1 ({word_count} words) ⭐⭐⭐⭐⭐
> {entry_text}
Arc: {arc_type}
Notes: {notRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.