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

147 lines
3.7 KiB
Markdown

---
description: "Extract stories from Linear tasks and identify themes for content generation"
---
# Extract Stories from Linear
## Mission
Connect to Linear, extract stories from as specified by user, identify recurring themes, and output structured theme data to `themes-memory.md`.
## Process
Follow the Story Extractor agent instructions (`agents/story-extractor.md`) to systematically:
1. **Connect to Linear MCP** and fetch task details
2. **Analyze story content** for problems, insights, and emotional hooks
3. **Identify recurring themes** (minimum 5)
4. **Structure theme extraction** with all required sections
5. **Write to themes-memory.md** in poasting repository
6. **Update Linear tasks** with extraction confirmation
## Execution Steps
### Step 1: Verify Prerequisites
Check that required tools are available:
- [ ] Linear MCP installed and configured
- [ ] LINEAR_API_KEY set in .env file
- [ ] themes-memory.md path accessible: `./poasting/themes-memory.md`
### Step 2: Fetch Stories from Linear
Use Linear MCP commands to retrieve tasks POA-5 through POA-14:
```javascript
// List all target issues
mcp__linear__list_issues({
"team": "YOUR_TEAM_ID",
"filter": {
"id": {
"in": ["POA-{X}", "POA-{Y}"]
}
}
})
// For each task, get full details including comments
mcp__linear__get_issue({
"id": "POA-X",
"include_comments": true
})
```
**Rate Limit**: 100 requests/minute. Batch requests when possible.
### Step 3: Extract and Structure Themes
For each identified theme, create structured output with:
- Theme name
- Source task IDs
- Problem statement
- Emotional hook
- Key insight
- 5 content angles (Bold, Story, Problem-Solution, Data, Emotional)
- Source story excerpt
**Minimum Output**: 5 distinct themes
### Step 4: Write to themes-memory.md
**Location**: `./poasting/themes-memory.md`
**Action**:
- If file doesn't exist, create with header
- If file exists, APPEND new themes (preserve existing)
- Add extraction metadata timestamp
### Step 5: Update Linear Tasks
Add confirmation comment to each processed task:
```
✅ Theme extracted: {Theme Name}
Extracted to themes-memory.md on {YYYY-MM-DD}
```
## Validation Checklist
Before marking extraction complete:
- [ ] Minimum 5 themes extracted
- [ ] Each theme has all required sections
- [ ] Themes are distinct (>70% different)
- [ ] Source stories quoted accurately
- [ ] themes-memory.md written successfully
- [ ] Linear tasks updated with confirmations
- [ ] No hallucinated information
- [ ] Emotional authenticity preserved
## Example Output
```
✅ Story Extraction Complete
Themes Extracted: n
Source Tasks: POA-X to POA-Y
Output File: themes-memory.md
Themes Identified:
1. First Money From Code (POA-5, POA-8)
2. Personal Pain → Product (POA-6, POA-9, POA-12)
3. Learning Intensity vs Environment (POA-7, POA-10)
4. Affordable Loss Decision Making (POA-5, POA-11)
5. The Quit Day (POA-5, POA-13)
6. Family-Influenced Products (POA-6, POA-14)
7. Creative Reactivation After Engineering (POA-8, POA-10)
Linear tasks updated with extraction confirmations.
Ready for content generation: /content-generate-drafts {theme}
```
## Error Handling
**If Linear MCP fails**:
- Check .env for LINEAR_API_KEY
- Verify Linear MCP installation
- Confirm team ID is correct
**If rate limit hit**:
- Batch remaining requests
- Wait 60 seconds before retry
**If stories are sparse**:
- Extract what's available
- Flag for user follow-up in Linear comment
## Next Steps
After successful extraction:
1. Review themes in themes-memory.md
2. Select theme for content generation
3. Run `/content-generate-drafts {theme-name}` to create variations
**Or run full pipeline**: `/content-full-pipeline` to execute all stages end-to-end