Files
gh-rpiplewar-shipfaster-con…/commands/content-select-best.md
2025-11-30 08:52:57 +08:00

6.8 KiB

description
description
Select the best content piece from scored variations and format for content-ready.md

Select Best Content for Posting

Mission

Rank all PASS content (20+/30 scores), apply tie-breaker rules, and select EXACTLY ONE best piece for human review in content-ready.md.

Process

Follow the Selector agent instructions (agents/selector.md) to systematically:

  1. Filter for PASS content (20+/30 scores with PASS verdict)
  2. Rank by total score (descending order)
  3. Apply tie-breaker rules if multiple pieces tied for first
  4. Validate selection against quality gates
  5. Format for content-ready.md with posting instructions
  6. Document runner-ups (top 3 alternatives)

Execution Steps

Step 1: Read Scored Content

Input Source: content-drafts.md with completed scores and critic verdicts

Required Data:

  • Total scores (Gap + Biases + Decision = XX/30)
  • Critic verdict ( PASS or FAIL)
  • Subscore breakdowns (Gap subscore, Hook subscore, Bias count)
  • Content text and theme information

Step 2: Filter and Rank

Filter Criteria:

  • Total score ≥ 20/30
  • Critic verdict: PASS
  • Factually accurate (verified by Critic)

Ranking:

  • Primary: Sort by total score (descending)
  • Expected: 12-20 PASS pieces from 25 total variations

Quality Alert:

  • If < 5 PASS pieces: Alert user that quality is below threshold
  • Consider regenerating content with stronger constraints

Step 3: Apply Tie-Breaker Rules

If multiple pieces have same total score, apply tie-breakers in order:

  1. Gap Selling Subscore: Higher Gap score wins (problem clarity most important)
  2. Hook Strength: Higher Hook subscore wins (first line = 80% of engagement)
  3. Lollapalooza Effect: Content with 5+ biases wins (exponential persuasive power)
  4. Bias Diversity: More unique biases wins (broader psychological appeal)
  5. Theme Novelty: Less-used theme wins (prevents theme fatigue)
  6. Human Judgment: If still tied, flag for manual decision

Step 4: Validate Selection

Before finalizing, verify:

Quality Gates:

  • Selected piece scores 20+/30 (ideally 25+/30)
  • All three frameworks adequately addressed (no subscore < 5)
  • Factually accurate (verified by Critic)
  • High engagement potential (hook + emotional resonance)

Platform Appropriateness:

  • Twitter/X character limits respected (280 single or thread)
  • Tone matches platform (conversational, punchy)
  • Format clean (line breaks, readability)

Strategic Fit:

  • Theme aligns with user's positioning
  • Message supports broader narrative
  • Timing appropriate (seasonally relevant)

Step 5: Write to content-ready.md

Location: /home/rpiplewar/fast_dot_ai/poasting/content-ready.md

Action: OVERWRITE file (only ONE piece should exist)

Format:

# Content Ready to Post

**Date Generated:** {ISO Timestamp}
**Theme:** {Theme Name}
**Source:** {Linear Task ID}
**Total Score:** {XX/30}

---

## Content

{Content exactly as it should be posted}

---

## Scoring Breakdown

**Gap Selling:** X/10 (Problem: X/3, Impact: X/3, Solution: X/4)
**Cognitive Biases:** Y (List: Bias1, Bias2, Bias3...)
**Decision Framework:** Z/10 (Hook: X/3, Value: X/4, CTA: X/3)
**TOTAL: XX/30**

---

## Why This Piece?

**Ranking Position:** #1 of {total_pass_count} PASS pieces

**Key Strengths:**
- {Strength from Critic notes}
- {Strength from Critic notes}
- {Strength from Critic notes}

**Winning Elements:**
- {Why this beat other contenders}
- {Specific tie-breaker if applicable}
- {Strategic fit reasoning}

---

## Posting Instructions

**Optimal Timing:**
- **Best Times (IST)**: 8:30 AM or 5:30 PM (high engagement windows)
- **Avoid**: Late night (11 PM - 6 AM) or midday lull (12 PM - 2 PM)

**Format Check:**
- [ ] Character count: {count} (within 280 for single, or thread format)
- [ ] Line breaks clean
- [ ] No typos or formatting issues

**Pre-Post Checklist:**
- [ ] Read aloud for flow
- [ ] Verify factual accuracy one final time
- [ ] Check for unintended meanings or misinterpretations
- [ ] Confirm tone matches brand voice

**After Posting:**
1. Copy final posted version to content-posted.md
2. Add posting timestamp
3. Set reminder to capture metrics after 48 hours
4. Monitor engagement in first 2 hours for immediate feedback

---

## Alternatives (Top 3 Runner-Ups)

### Runner-Up #2: {Score}
**Theme:** {Theme Name}
**Content Preview:** {First 50 characters}...
**Why Not Selected:** {Reasoning}

### Runner-Up #3: {Score}
**Theme:** {Theme Name}
**Content Preview:** {First 50 characters}...
**Why Not Selected:** {Reasoning}

### Runner-Up #4: {Score}
**Theme:** {Theme Name}
**Content Preview:** {First 50 characters}...
**Why Not Selected:** {Reasoning}

---

**Generated by:** content-gen plugin v1.0
**Selection Criteria:** Highest total score + tie-breaker rules
**Human Approval Required:** YES (review before posting)

Validation Checklist

Before marking selection complete:

  • ONE piece selected (not zero, not multiple)
  • Selected piece scores 20+/30 (ideally 25+/30)
  • All tie-breakers applied correctly if needed
  • content-ready.md overwritten with formatted output
  • Posting instructions included
  • Top 3 runner-ups documented
  • Selection reasoning documented

Example Output

✅ Best Content Selected

Selected: Theme A, Variation 1
Score: 28/30 (EXCELLENT)
Ranking: #1 of 18 PASS pieces

Key Strengths:
- Exceptional problem clarity (Gap: 9/10)
- Strong emotional hook activating 6 biases
- Clear, actionable CTA

Output: content-ready.md
Status: Ready for human review and approval

Runner-Ups:
#2: Theme C, Var 5 (27/30)
#3: Theme B, Var 2 (26/30)
#4: Theme A, Var 3 (25/30)

Next Step: Review content-ready.md and post when ready

Error Handling

If no PASS content:

❌ Selection Failed: No content scored 20+/30

Action Required:
1. Review scorer settings (may be too harsh)
2. Regenerate content with stronger constraints
3. Review theme quality (may lack content generation potential)

Pipeline STOPPED at selection phase.

If tie-breakers don't resolve:

⚠️ Human Decision Required

Two pieces tied after all 6 automated tie-breakers.
Both pieces displayed in content-ready.md.
User must manually select.

If content-ready.md already has content:

⚠️ Warning: content-ready.md already contains content

Options:
1. Archive existing content to content-posted.md first
2. Overwrite with new selection (confirm Y/N)
3. Cancel selection

Current content in content-ready.md should be posted or archived before generating new content.

Next Steps

After successful selection:

  1. Review content-ready.md
  2. Perform final quality check
  3. Post to Twitter/X at optimal time
  4. Capture metrics after 48 hours
  5. Move to content-posted.md with metrics

Or run full pipeline: /content-full-pipeline to execute all stages end-to-end