- Create Economist SubmissionTracking package correctly: * mainArticle = full blog post content * coverLetter = 216-word SIR— letter * Links to blog post via blogPostId - Archive 'Letter to The Economist' from blog posts (it's the cover letter) - Fix date display on article cards (use published_at) - Target publication already displaying via blue badge Database changes: - Make blogPostId optional in SubmissionTracking model - Economist package ID: 68fa85ae49d4900e7f2ecd83 - Le Monde package ID: 68fa2abd2e6acd5691932150 Next: Enhanced modal with tabs, validation, export 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1029 lines
38 KiB
Markdown
1029 lines
38 KiB
Markdown
# External Communications Manager - Technical Specification
|
|
|
|
**Version**: 1.0
|
|
**Date**: 2025-10-23
|
|
**Status**: Design Phase
|
|
**Implementation Target**: Next Session
|
|
|
|
---
|
|
|
|
## Executive Summary
|
|
|
|
Transform the "Blog Curation" page into a strategic "External Communications Manager" that generates culturally-aware content for 22 ranked global publication targets, from website blogs to letters to editors in major international outlets.
|
|
|
|
**Strategic Value**:
|
|
- Unified communications hub for all external content
|
|
- Culturally-sensitive content for global audiences
|
|
- Consistent Tractatus messaging across channels
|
|
- Governance-compliant (all content requires human approval)
|
|
|
|
---
|
|
|
|
## 1. Publication Target Research
|
|
|
|
### Ranking Methodology
|
|
|
|
Publications are ranked by composite score (max 50 points) across 5 criteria:
|
|
1. **Influence for Plural Values Mission** (0-10): Impact on AI policy discourse
|
|
2. **Acceptance Likelihood** (0-10): Openness to external submissions
|
|
3. **Decision Maker Readership** (0-10): Policy/tech leadership audience
|
|
4. **Objectivity** (0-10): Editorial independence and fact-checking standards
|
|
5. **Transparency** (0-10): Clear submission guidelines and accountability
|
|
|
|
### Ranked Publication List (22 Total)
|
|
|
|
#### Rank 1-3: Premier Tier (42-43 points)
|
|
|
|
#### 1. **The Economist** (43 points: 10+6+10+9+8)
|
|
- **Type**: Letters to Editor, Op-Ed (rare)
|
|
- **Word Count**: Letters: 200-250 words | Op-Ed: 800-1000 words
|
|
- **Submission**: letters@economist.com
|
|
- **Requirements**:
|
|
- Must reference recent article (within 2 weeks)
|
|
- Concise, data-driven, policy-focused
|
|
- Include author credentials
|
|
- Exclusive submission
|
|
- **Response Time**: 2-7 days for letters
|
|
- **Audience Alignment**: Leader, Research
|
|
- **Cultural Context**: European, North American
|
|
- **Scoring**: Influence 10, Acceptance 6, Decision Makers 10, Objectivity 9, Transparency 8
|
|
- **Verification Status**: ✓ Verified (public submission guidelines)
|
|
|
|
#### 2. **Financial Times** (42 points: 9+6+10+9+8)
|
|
- **Type**: Letters to Editor, Op-Ed
|
|
- **Word Count**: Letters: 250 words | Op-Ed: 750 words
|
|
- **Submission**: letters.editor@ft.com
|
|
- **Requirements**:
|
|
- Business/tech/policy focus
|
|
- Data-driven arguments
|
|
- Professional credentials emphasized
|
|
- **Response Time**: 2-5 days
|
|
- **Audience Alignment**: Leader, Implementer
|
|
- **Cultural Context**: European, Global
|
|
- **Scoring**: Influence 9, Acceptance 6, Decision Makers 10, Objectivity 9, Transparency 8
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 3. **MIT Technology Review** (42 points: 9+7+9+9+8)
|
|
- **Type**: Opinion, Guest Essays
|
|
- **Word Count**: 800-1500 words
|
|
- **Submission**: editors@technologyreview.com (pitch first)
|
|
- **Requirements**:
|
|
- Technical depth + accessibility
|
|
- Must pitch with credentials
|
|
- Research-backed arguments
|
|
- **Response Time**: 3-6 weeks
|
|
- **Audience Alignment**: Research, Implementer
|
|
- **Cultural Context**: Universal
|
|
- **Scoring**: Influence 9, Acceptance 7, Decision Makers 9, Objectivity 9, Transparency 8
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### Rank 4-7: Top Tier (38-39 points)
|
|
|
|
#### 4. **The Guardian** (39 points: 8+7+8+8+8)
|
|
- **Type**: Letters to Editor, Comment is Free (op-ed)
|
|
- **Word Count**: Letters: 200 words | Comment: 800-1000 words
|
|
- **Submission**: letters@theguardian.com | commentisfree@theguardian.com
|
|
- **Requirements**:
|
|
- Letters: Name, address, phone
|
|
- Comment: Pitch first via online form
|
|
- Progressive, social justice angle welcomed
|
|
- **Response Time**: 24-48 hours for letters
|
|
- **Audience Alignment**: Research, General
|
|
- **Cultural Context**: European
|
|
- **Scoring**: Influence 8, Acceptance 7, Decision Makers 8, Objectivity 8, Transparency 8
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 5. **IEEE Spectrum** (38 points: 7+7+7+9+8)
|
|
- **Type**: Opinion
|
|
- **Word Count**: 800-1200 words
|
|
- **Submission**: Via online form
|
|
- **Requirements**:
|
|
- Technical/engineering focus
|
|
- IEEE membership helpful but not required
|
|
- Citations expected
|
|
- **Response Time**: 4-8 weeks
|
|
- **Audience Alignment**: Research, Implementer
|
|
- **Cultural Context**: Universal
|
|
- **Scoring**: Influence 7, Acceptance 7, Decision Makers 7, Objectivity 9, Transparency 8
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 6. **New York Times** (38 points: 9+5+9+8+7)
|
|
- **Type**: Letters to Editor, Op-Ed
|
|
- **Word Count**: Letters: 150-175 words | Op-Ed: 750 words
|
|
- **Submission**: letters@nytimes.com | oped@nytimes.com
|
|
- **Requirements**:
|
|
- Letters: Reference specific article
|
|
- Op-Ed: Exclusive, narrative hook, timely
|
|
- Include full contact information
|
|
- Must not have been published elsewhere
|
|
- **Response Time**: Letters: 1-3 days | Op-Ed: 2-4 weeks
|
|
- **Audience Alignment**: All audiences
|
|
- **Cultural Context**: North American
|
|
- **Scoring**: Influence 9, Acceptance 5, Decision Makers 9, Objectivity 8, Transparency 7
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 7. **Washington Post** (38 points: 8+6+9+8+7)
|
|
- **Type**: Letters to Editor, Op-Ed
|
|
- **Word Count**: Letters: 200 words max | Op-Ed: 750-800 words
|
|
- **Submission**: letters@washpost.com | oped@washpost.com
|
|
- **Requirements**:
|
|
- Include name, address, daytime phone
|
|
- Exclusive submission
|
|
- Clear connection to current events
|
|
- **Response Time**: 3-7 days
|
|
- **Audience Alignment**: Leader, General
|
|
- **Cultural Context**: North American
|
|
- **Scoring**: Influence 8, Acceptance 6, Decision Makers 9, Objectivity 8, Transparency 7
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### Rank 8-12: High Value Tier (37 points)
|
|
|
|
#### 8. **Caixin Global** (China) (37 points: 8+6+8+9+6)
|
|
- **Type**: Opinion, Commentary
|
|
- **Word Count**: 800-1200 words
|
|
- **Submission**: Contact editorial team (english@caixin.com)
|
|
- **Requirements**:
|
|
- China/Asia policy focus
|
|
- Economic/tech angle
|
|
- English language
|
|
- Pitch first recommended
|
|
- **Response Time**: 1-2 weeks
|
|
- **Audience Alignment**: Leader, Research
|
|
- **Cultural Context**: Asia-Pacific, Global
|
|
- **Scoring**: Influence 8, Acceptance 6, Decision Makers 8, Objectivity 9, Transparency 6
|
|
- **Verification Status**: ✓ Verified (independent investigative journalism, English edition)
|
|
|
|
#### 9. **The Hindu** (India) (37 points: 7+7+8+8+7)
|
|
- **Type**: Open Page (guest articles), Letters to Editor
|
|
- **Word Count**: Open Page: 800 words max | Letters: shorter
|
|
- **Submission**: openpage@thehindu.co.in | letters@thehindu.co.in
|
|
- **Requirements**:
|
|
- Electronic submissions only
|
|
- Complete mailing address required
|
|
- Indian policy/tech context appreciated
|
|
- **Response Time**: 1-2 weeks
|
|
- **Audience Alignment**: Leader, Research, General
|
|
- **Cultural Context**: Asia-Pacific, Global South
|
|
- **Scoring**: Influence 7, Acceptance 7, Decision Makers 8, Objectivity 8, Transparency 7
|
|
- **Verification Status**: ✓ Verified (public submission guidelines)
|
|
|
|
#### 10. **Le Monde** (France) (37 points: 7+6+8+9+7)
|
|
- **Type**: Lettres, Tribune (op-ed)
|
|
- **Word Count**: Lettres: 200 mots | Tribune: 700-900 mots
|
|
- **Submission**: courrier-des-lecteurs@lemonde.fr | tribunes@lemonde.fr
|
|
- **Requirements**:
|
|
- French language
|
|
- European policy context
|
|
- Intellectual depth expected
|
|
- **Response Time**: 3-7 jours
|
|
- **Audience Alignment**: Research, Leader
|
|
- **Cultural Context**: European
|
|
- **Language**: French
|
|
- **Scoring**: Influence 7, Acceptance 6, Decision Makers 8, Objectivity 9, Transparency 7
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 11. **Wall Street Journal** (37 points: 8+5+9+8+7)
|
|
- **Type**: Letters to Editor, Op-Ed
|
|
- **Word Count**: Letters: 200 words | Op-Ed: 800-1000 words
|
|
- **Submission**: wsj.ltrs@wsj.com | opedsubmissions@wsj.com
|
|
- **Requirements**:
|
|
- Business angle preferred
|
|
- Conservative editorial stance consideration
|
|
- Exclusive submission
|
|
- **Response Time**: 5-10 days
|
|
- **Audience Alignment**: Leader
|
|
- **Cultural Context**: North American
|
|
- **Scoring**: Influence 8, Acceptance 5, Decision Makers 9, Objectivity 8, Transparency 7
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 12. **Wired** (37 points: 8+6+8+8+7)
|
|
- **Type**: Opinion, Analysis
|
|
- **Word Count**: 800-1200 words
|
|
- **Submission**: Via pitch form on website
|
|
- **Requirements**:
|
|
- Tech/innovation focus essential
|
|
- Must pitch first (no unsolicited submissions)
|
|
- Cutting-edge angle
|
|
- **Response Time**: 2-4 weeks
|
|
- **Audience Alignment**: Implementer, Research
|
|
- **Cultural Context**: North American
|
|
- **Scoring**: Influence 8, Acceptance 6, Decision Makers 8, Objectivity 8, Transparency 7
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### Rank 13-15: Strong Regional Tier (35-36 points)
|
|
|
|
#### 13. **Mail & Guardian** (South Africa) (36 points: 6+8+7+8+7)
|
|
- **Type**: Opinion, Guest articles
|
|
- **Word Count**: 600-1000 words
|
|
- **Submission**: Contact via website (mg.co.za)
|
|
- **Requirements**:
|
|
- African context/perspective valued
|
|
- Progressive political stance
|
|
- Investigative/analytical depth
|
|
- **Response Time**: 1-2 weeks
|
|
- **Audience Alignment**: Leader, Research, General
|
|
- **Cultural Context**: Africa, Global South
|
|
- **Scoring**: Influence 6, Acceptance 8, Decision Makers 7, Objectivity 8, Transparency 7
|
|
- **Verification Status**: ✓ Verified (pan-African reach, investigative tradition)
|
|
|
|
#### 14. **LinkedIn Articles** (35 points: 7+10+8+N/A+10)
|
|
- **Type**: Professional long-form posts
|
|
- **Word Count**: 1000-2000 words
|
|
- **Submission**: N/A (self-published)
|
|
- **Requirements**:
|
|
- Professional tone
|
|
- Business/leadership angle
|
|
- Visual headers recommended
|
|
- Hashtag strategy
|
|
- **Response Time**: Immediate
|
|
- **Audience Alignment**: Leader, Implementer
|
|
- **Cultural Context**: All
|
|
- **Scoring**: Influence 7, Acceptance 10, Decision Makers 8, Objectivity N/A, Transparency 10
|
|
- **Verification Status**: ✓ Platform
|
|
|
|
#### 15. **The Daily Blog** (New Zealand) (35 points: 6+8+6+7+8)
|
|
- **Type**: Guest posts
|
|
- **Word Count**: 500-1000 words
|
|
- **Submission**: thedailyblog@gmail.com or via contact form
|
|
- **Requirements**:
|
|
- Progressive political stance
|
|
- NZ/Pacific focus appreciated
|
|
- Conversational tone acceptable
|
|
- Contact: Martyn Bradbury (editor)
|
|
- **Response Time**: 1-3 days (fast-moving blog)
|
|
- **Audience Alignment**: General, Leader
|
|
- **Cultural Context**: Asia-Pacific, Indigenous
|
|
- **Scoring**: Influence 6, Acceptance 8, Decision Makers 6, Objectivity 7, Transparency 8
|
|
- **Verification Status**: ✓ Verified (user's preferred NZ blog, active)
|
|
|
|
#### 16. **Der Spiegel** (Germany) (34 points: 7+5+7+9+6)
|
|
- **Type**: Leserbriefe (letters), Opinion pieces
|
|
- **Word Count**: Leserbriefe: 200-300 Wörter | Opinion: 800-1200 Wörter
|
|
- **Submission**: leserbriefe@spiegel.de
|
|
- **Requirements**:
|
|
- German language
|
|
- Investigative/analytical depth
|
|
- European perspective
|
|
- **Response Time**: 5-10 Tage
|
|
- **Audience Alignment**: Research, Leader
|
|
- **Cultural Context**: European
|
|
- **Language**: German
|
|
- **Scoring**: Influence 7, Acceptance 5, Decision Makers 7, Objectivity 9, Transparency 6
|
|
- **Verification Status**: ⚠️ Partial (general guidelines available)
|
|
|
|
#### 16. **Folha de S.Paulo** (Brazil) (34 points: 6+7+7+8+6)
|
|
- **Type**: Opinion, Commentary
|
|
- **Word Count**: 600-900 words
|
|
- **Submission**: Contact via website, has English edition (Folha International)
|
|
- **Requirements**:
|
|
- Latin American/Brazilian context valued
|
|
- Portuguese or English (English via Folha International)
|
|
- Economic/policy/tech focus
|
|
- **Response Time**: 1-2 weeks
|
|
- **Audience Alignment**: Leader, Research, General
|
|
- **Cultural Context**: South America, Global South
|
|
- **Language**: Portuguese/English
|
|
- **Scoring**: Influence 6, Acceptance 7, Decision Makers 7, Objectivity 8, Transparency 6
|
|
- **Verification Status**: ✓ Verified (largest Brazilian circulation, has English edition)
|
|
|
|
#### 17. **LA Times** (34 points: 6+7+7+7+7)
|
|
- **Type**: Letters to Editor, Op-Ed
|
|
- **Word Count**: Letters: 150 words | Op-Ed: 500-700 words
|
|
- **Submission**: letters@latimes.com | opinion-la@latimes.com
|
|
- **Requirements**:
|
|
- Name, city, phone required
|
|
- California/West Coast angle helpful
|
|
- Exclusive submission
|
|
- **Response Time**: 2-5 days
|
|
- **Audience Alignment**: General, Leader
|
|
- **Cultural Context**: North American
|
|
- **Scoring**: Influence 6, Acceptance 7, Decision Makers 7, Objectivity 7, Transparency 7
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### Rank 16-22: Accessible Platforms & Specialized (31-34 points)
|
|
|
|
#### 18. **Substack** (34 points: 7+10+7+N/A+10)
|
|
- **Type**: Newsletter essays
|
|
- **Word Count**: 1500-2500 words
|
|
- **Submission**: N/A (self-published)
|
|
- **Requirements**:
|
|
- Personal voice encouraged
|
|
- Email-optimized formatting
|
|
- Visual elements recommended
|
|
- Consistent publishing schedule
|
|
- **Response Time**: Immediate
|
|
- **Audience Alignment**: All
|
|
- **Cultural Context**: All
|
|
- **Scoring**: Influence 7, Acceptance 10, Decision Makers 7, Objectivity N/A, Transparency 10
|
|
- **Verification Status**: ✓ Platform
|
|
|
|
#### 19. **VentureBeat** (34 points: 6+7+6+7+8)
|
|
- **Type**: Guest posts, Opinion
|
|
- **Word Count**: 800-1500 words
|
|
- **Submission**: Via online contribution form
|
|
- **Requirements**:
|
|
- Tech business/startup angle
|
|
- Executive perspective valued
|
|
- Must disclose affiliations
|
|
- **Response Time**: 1-2 weeks
|
|
- **Audience Alignment**: Leader, Implementer
|
|
- **Cultural Context**: North American
|
|
- **Scoring**: Influence 6, Acceptance 7, Decision Makers 6, Objectivity 7, Transparency 8
|
|
- **Verification Status**: ✓ Verified
|
|
|
|
#### 20. **Medium** (32 points: 6+10+6+N/A+10)
|
|
- **Type**: Essays, thought leadership
|
|
- **Word Count**: 1200-2500 words
|
|
- **Submission**: N/A (self-published) or pitch to publications on Medium
|
|
- **Requirements**:
|
|
- Narrative storytelling
|
|
- High-quality visuals
|
|
- Can pitch to Medium publications (e.g., Towards Data Science)
|
|
- **Response Time**: Immediate (self) or 1-2 weeks (publications)
|
|
- **Audience Alignment**: All
|
|
- **Cultural Context**: Universal
|
|
- **Scoring**: Influence 6, Acceptance 10, Decision Makers 6, Objectivity N/A, Transparency 10
|
|
- **Verification Status**: ✓ Platform
|
|
|
|
#### 21. **Die Presse** (Austria) (31 points: 5+6+6+8+6)
|
|
- **Type**: Leserbriefe, Gastkommentare
|
|
- **Word Count**: Leserbriefe: 150-200 Wörter | Gastkommentare: 600-800 Wörter
|
|
- **Submission**: leserbriefe@diepresse.com
|
|
- **Requirements**:
|
|
- German language
|
|
- Austrian/Central European context
|
|
- Name, address required
|
|
- **Response Time**: 3-7 Tage
|
|
- **Audience Alignment**: Leader, General
|
|
- **Cultural Context**: European
|
|
- **Language**: German
|
|
- **Scoring**: Influence 5, Acceptance 6, Decision Makers 6, Objectivity 8, Transparency 6
|
|
- **Verification Status**: ⚠️ Partial
|
|
|
|
---
|
|
|
|
## 2. Content Type Taxonomy
|
|
|
|
### Primary Content Types
|
|
|
|
```
|
|
1. Website Blog Post
|
|
└─ agenticgovernance.digital only
|
|
|
|
2. Letter to Editor
|
|
├─ Premium Tier (The Economist, NYT, etc.)
|
|
├─ Tech Publications (Wired, MIT Tech Review)
|
|
└─ Regional (The Daily Blog, etc.)
|
|
|
|
3. Op-Ed / Opinion Article
|
|
├─ Premium Tier (800-1000 words)
|
|
├─ Tech Publications (800-1200 words)
|
|
└─ Academic (The Conversation)
|
|
|
|
4. Social Media Post
|
|
├─ Long-form (Substack, LinkedIn, Medium)
|
|
├─ Thread (Twitter/X)
|
|
├─ Professional (LinkedIn post)
|
|
└─ Community (Facebook)
|
|
|
|
5. Press Release
|
|
└─ Standard PR format (400-600 words)
|
|
|
|
6. Newsletter Segment
|
|
└─ Email-optimized (300-800 words)
|
|
```
|
|
|
|
### Content-Specific Requirements
|
|
|
|
#### Letter to Editor
|
|
- **Always requires**: Reference to specific article (title, date, author)
|
|
- **Word limits**: Strict (150-300 words typical)
|
|
- **Tone**: Concise, direct, one main point
|
|
- **Submission**: Exclusive (cannot submit to multiple simultaneously)
|
|
|
|
#### Op-Ed / Opinion
|
|
- **Word limits**: Flexible (750-1200 words)
|
|
- **Tone**: Authoritative but accessible
|
|
- **Structure**: Hook → Argument → Evidence → Conclusion
|
|
- **Submission**: Usually exclusive, sometimes pitch-first
|
|
|
|
#### Social Media Long-Form
|
|
- **Self-published**: Immediate publication control
|
|
- **Formatting**: Platform-specific (Substack email, Medium visual)
|
|
- **No exclusivity**: Can cross-post
|
|
|
|
---
|
|
|
|
## 3. UI Architecture
|
|
|
|
### Proposed Workflow
|
|
|
|
```
|
|
Step 1: Content Type Selection
|
|
┌─────────────────────────────────────┐
|
|
│ What type of content? │
|
|
│ ○ Website Blog Post │
|
|
│ ○ Letter to Editor │
|
|
│ ○ Opinion Article / Op-Ed │
|
|
│ ○ Social Media (Long-form) │
|
|
│ ○ Press Release │
|
|
│ ○ Newsletter Segment │
|
|
└─────────────────────────────────────┘
|
|
↓
|
|
Step 2: Publication Target (conditional)
|
|
┌─────────────────────────────────────┐
|
|
│ Choose publication: │
|
|
│ [Filtered list based on Step 1] │
|
|
│ │
|
|
│ If Letter: Premium + Tech outlets │
|
|
│ If Op-Ed: All outlets │
|
|
│ If Social: Platforms only │
|
|
│ If Blog: agenticgovernance.digital │
|
|
└─────────────────────────────────────┘
|
|
↓
|
|
Step 3: Audience & Context (existing)
|
|
┌─────────────────────────────────────┐
|
|
│ Primary Audience: │
|
|
│ [Research/Implementer/Leader/Gen] │
|
|
│ │
|
|
│ Tone & Approach: │
|
|
│ [Standard/Academic/Practical/etc] │
|
|
│ │
|
|
│ Cultural Context: │
|
|
│ [Universal/Indigenous/etc] │
|
|
│ │
|
|
│ Language: │
|
|
│ [Auto-set based on publication OR │
|
|
│ user override] │
|
|
└─────────────────────────────────────┘
|
|
↓
|
|
Step 4: Content Details
|
|
┌─────────────────────────────────────┐
|
|
│ [If Letter]: Article Reference │
|
|
│ ├─ Article Title: [input] │
|
|
│ ├─ Article Date: [date picker] │
|
|
│ └─ Main Point: [textarea] │
|
|
│ │
|
|
│ [If Op-Ed/Blog]: Theme/Topic │
|
|
│ └─ Topic: [textarea] │
|
|
│ │
|
|
│ [If Social]: Platform Details │
|
|
│ └─ Platform: [Substack/LinkedIn/etc]│
|
|
└─────────────────────────────────────┘
|
|
↓
|
|
Step 5: Generate
|
|
┌─────────────────────────────────────┐
|
|
│ [Generate Draft] button │
|
|
│ │
|
|
│ Displays: │
|
|
│ - Target: [publication] │
|
|
│ - Word count: [auto from rules] │
|
|
│ - Submission: [email/form] │
|
|
│ - Requirements: [checklist] │
|
|
└─────────────────────────────────────┘
|
|
```
|
|
|
|
### UI Components
|
|
|
|
#### 1. Content Type Selector
|
|
```html
|
|
<div class="content-type-selector">
|
|
<label>Content Type</label>
|
|
<div class="radio-grid">
|
|
<label class="radio-card">
|
|
<input type="radio" name="contentType" value="blog">
|
|
<div class="card-content">
|
|
<h4>Website Blog Post</h4>
|
|
<p>Long-form content for agenticgovernance.digital</p>
|
|
</div>
|
|
</label>
|
|
<!-- ... more cards -->
|
|
</div>
|
|
</div>
|
|
```
|
|
|
|
#### 2. Publication Target Selector (Dynamic)
|
|
```javascript
|
|
const publicationsByType = {
|
|
'letter': [
|
|
{ id: 'economist', name: 'The Economist', tier: 'premium', words: '200-250' },
|
|
{ id: 'nyt', name: 'New York Times', tier: 'premium', words: '150-175' },
|
|
// ...
|
|
],
|
|
'oped': [
|
|
{ id: 'economist', name: 'The Economist', tier: 'premium', words: '800-1000' },
|
|
// ...
|
|
],
|
|
'social': [
|
|
{ id: 'substack', name: 'Substack', tier: 'platform', words: '1500-2500' },
|
|
// ...
|
|
]
|
|
};
|
|
```
|
|
|
|
#### 3. Publication Metadata Display
|
|
```html
|
|
<div class="publication-info" data-publication="economist">
|
|
<h4>The Economist - Letter to Editor</h4>
|
|
<dl>
|
|
<dt>Word Count:</dt>
|
|
<dd>200-250 words</dd>
|
|
|
|
<dt>Submission:</dt>
|
|
<dd>letters@economist.com</dd>
|
|
|
|
<dt>Requirements:</dt>
|
|
<dd>
|
|
<ul>
|
|
<li>Reference recent article (within 2 weeks)</li>
|
|
<li>Concise, data-driven</li>
|
|
<li>Exclusive submission</li>
|
|
</ul>
|
|
</dd>
|
|
|
|
<dt>Response Time:</dt>
|
|
<dd>2-7 days</dd>
|
|
</dl>
|
|
</div>
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Data Model
|
|
|
|
### Publication Target Schema
|
|
|
|
```javascript
|
|
{
|
|
id: 'economist-letter',
|
|
name: 'The Economist',
|
|
type: 'letter',
|
|
tier: 'premium',
|
|
|
|
requirements: {
|
|
wordCount: { min: 200, max: 250, strict: true },
|
|
language: 'en',
|
|
exclusivity: true,
|
|
articleReference: true,
|
|
credentials: true
|
|
},
|
|
|
|
submission: {
|
|
method: 'email',
|
|
email: 'letters@economist.com',
|
|
form: null,
|
|
responseTime: { min: 2, max: 7, unit: 'days' }
|
|
},
|
|
|
|
editorial: {
|
|
tone: ['professional', 'concise', 'data-driven'],
|
|
focus: ['policy', 'economics', 'global-affairs'],
|
|
avoid: ['partisan', 'emotional', 'anecdotal']
|
|
},
|
|
|
|
audience: ['leader', 'research'],
|
|
culture: ['european', 'north-american', 'universal'],
|
|
|
|
guidelines: [
|
|
'Must reference specific article published within 2 weeks',
|
|
'One main point only',
|
|
'Include author credentials',
|
|
'Do not submit to multiple publications'
|
|
],
|
|
|
|
verificationStatus: 'verified',
|
|
lastUpdated: '2025-10-23'
|
|
}
|
|
```
|
|
|
|
### Generated Content Schema
|
|
|
|
```javascript
|
|
{
|
|
contentType: 'letter',
|
|
publicationTarget: 'economist-letter',
|
|
|
|
context: {
|
|
audience: 'leader',
|
|
tone: 'strategic',
|
|
culture: 'european',
|
|
language: 'en'
|
|
},
|
|
|
|
metadata: {
|
|
articleReference: {
|
|
title: 'AI Regulation in Brussels',
|
|
date: '2025-10-15',
|
|
author: 'John Smith'
|
|
},
|
|
mainPoint: 'EU AI Act needs enforcement teeth',
|
|
wordCount: 237,
|
|
generatedAt: '2025-10-23T10:30:00Z'
|
|
},
|
|
|
|
content: {
|
|
draft: '[Generated text]',
|
|
submissionReady: false,
|
|
humanReviewed: false
|
|
},
|
|
|
|
governance: {
|
|
boundaryCheck: { /* ... */ },
|
|
requiresApproval: true,
|
|
approvedBy: null
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Backend Implementation
|
|
|
|
### New ClaudeAPI Methods
|
|
|
|
```javascript
|
|
/**
|
|
* Generate letter to editor
|
|
*/
|
|
async generateLetterToEditor(context, publication, articleReference) {
|
|
const prompt = `Write a letter to the editor for ${publication.name}
|
|
responding to the article "${articleReference.title}"
|
|
(${articleReference.date}).
|
|
|
|
Main point: ${context.mainPoint}
|
|
Audience: ${context.audience}
|
|
Tone: ${context.tone}
|
|
Word limit: ${publication.requirements.wordCount.max} words (STRICT)
|
|
|
|
Requirements:
|
|
${publication.guidelines.map(g => `- ${g}`).join('\n')}
|
|
|
|
${this.getCulturalGuidance(context.culture)}
|
|
|
|
The letter must:
|
|
1. Reference the article specifically
|
|
2. Make ONE clear point
|
|
3. Support with evidence
|
|
4. Match ${publication.name} editorial style
|
|
5. Include a call to action or conclusion
|
|
|
|
Return JSON: { text, wordCount, submissionChecklist }`;
|
|
|
|
// ... implementation
|
|
}
|
|
|
|
/**
|
|
* Generate op-ed / opinion article
|
|
*/
|
|
async generateOpEd(context, publication) {
|
|
// ... similar structure with longer word count, narrative arc
|
|
}
|
|
|
|
/**
|
|
* Generate social media content
|
|
*/
|
|
async generateSocialContent(context, platform) {
|
|
// Platform-specific: Substack (email format), LinkedIn (professional), etc.
|
|
}
|
|
```
|
|
|
|
### Controller Updates
|
|
|
|
```javascript
|
|
/**
|
|
* POST /api/content/generate
|
|
* Unified endpoint for all content types
|
|
*/
|
|
async function generateContent(req, res) {
|
|
const {
|
|
contentType, // 'letter', 'oped', 'social', 'blog'
|
|
publicationId, // 'economist-letter', 'nyt-oped', etc.
|
|
context, // { audience, tone, culture, language }
|
|
details // Content-specific (articleReference, theme, etc.)
|
|
} = req.body;
|
|
|
|
// 1. Validate content type and publication
|
|
const publication = getPublicationById(publicationId);
|
|
|
|
// 2. Boundary enforcement
|
|
const boundaryCheck = BoundaryEnforcer.enforce({
|
|
description: `Generate ${contentType} for ${publication.name}`,
|
|
classification: { quadrant: 'OPERATIONAL' },
|
|
type: 'external_communication'
|
|
});
|
|
|
|
// 3. Generate content via Claude API
|
|
let generated;
|
|
switch(contentType) {
|
|
case 'letter':
|
|
generated = await claudeAPI.generateLetterToEditor(
|
|
context, publication, details.articleReference
|
|
);
|
|
break;
|
|
case 'oped':
|
|
generated = await claudeAPI.generateOpEd(context, publication);
|
|
break;
|
|
// ... other types
|
|
}
|
|
|
|
// 4. Create moderation queue entry
|
|
const queueEntry = await ModerationQueue.create({
|
|
type: 'EXTERNAL_CONTENT',
|
|
reference_collection: 'content_drafts',
|
|
data: {
|
|
contentType,
|
|
publication: publicationId,
|
|
context,
|
|
generated,
|
|
submissionReady: false
|
|
},
|
|
status: 'PENDING_APPROVAL',
|
|
requires_human_approval: true,
|
|
metadata: { boundaryCheck, publication: publication.name }
|
|
});
|
|
|
|
// 5. Return draft for human review
|
|
res.json({
|
|
success: true,
|
|
queueId: queueEntry._id,
|
|
draft: generated,
|
|
publication: {
|
|
name: publication.name,
|
|
submission: publication.submission,
|
|
requirements: publication.requirements,
|
|
guidelines: publication.guidelines
|
|
},
|
|
governance: {
|
|
requiresApproval: true,
|
|
note: 'Human must review, edit, and approve before submission'
|
|
}
|
|
});
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Implementation Phases
|
|
|
|
### Phase 1: Core Infrastructure (Session 1)
|
|
- [ ] Create publication target database (JSON config)
|
|
- [ ] Update UI with content type selector
|
|
- [ ] Add conditional publication target dropdown
|
|
- [ ] Basic letter-to-editor generation
|
|
- [ ] Test with The Economist and NYT
|
|
|
|
### Phase 2: Full Publication Set (Session 2)
|
|
- [ ] Implement all 20 publication targets
|
|
- [ ] Add language-specific handling (Le Monde, Der Spiegel)
|
|
- [ ] Article reference UI for letters
|
|
- [ ] Publication metadata display
|
|
|
|
### Phase 3: Social Media & Platforms (Session 3)
|
|
- [ ] Substack, LinkedIn, Medium integration
|
|
- [ ] Platform-specific formatting
|
|
- [ ] Visual/image suggestions
|
|
- [ ] Cross-posting strategy
|
|
|
|
### Phase 4: Advanced Features (Session 4)
|
|
- [ ] Publication submission tracking
|
|
- [ ] Response tracking (accepted/rejected)
|
|
- [ ] A/B testing for different angles
|
|
- [ ] Analytics dashboard (acceptance rates by publication)
|
|
|
|
---
|
|
|
|
## 7. Technical Considerations
|
|
|
|
### Language Handling
|
|
```javascript
|
|
const languageMap = {
|
|
'le-monde': 'fr',
|
|
'der-spiegel': 'de',
|
|
'die-presse': 'de',
|
|
'economist': 'en',
|
|
'nyt': 'en',
|
|
'daily-blog': 'en'
|
|
};
|
|
|
|
// Auto-set language based on publication
|
|
function getPublicationLanguage(publicationId) {
|
|
return languageMap[publicationId] || 'en';
|
|
}
|
|
```
|
|
|
|
### Word Count Enforcement
|
|
```javascript
|
|
// Strict vs. flexible word counts
|
|
const strictPublications = ['economist', 'nyt', 'wsj'];
|
|
|
|
function validateWordCount(text, publication) {
|
|
const count = text.split(/\s+/).length;
|
|
const { min, max, strict } = publication.requirements.wordCount;
|
|
|
|
if (strict && (count < min || count > max)) {
|
|
throw new Error(`Word count must be ${min}-${max} for ${publication.name}`);
|
|
}
|
|
|
|
return { valid: count >= min && count <= max, count };
|
|
}
|
|
```
|
|
|
|
### Submission Method Abstraction
|
|
```javascript
|
|
class SubmissionMethod {
|
|
static create(publication) {
|
|
switch(publication.submission.method) {
|
|
case 'email':
|
|
return new EmailSubmission(publication.submission.email);
|
|
case 'form':
|
|
return new FormSubmission(publication.submission.form);
|
|
case 'self-publish':
|
|
return new SelfPublishSubmission(publication);
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 8. UI Mockup (ASCII)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ External Communications Manager [User] [Logout]│
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ 📝 Generate External Content │
|
|
│ │
|
|
│ Step 1: Content Type │
|
|
│ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │
|
|
│ │Website│ │Letter │ │Op-Ed │ │Social │ │ Press │ │
|
|
│ │ Blog │ │to Ed. │ │Article│ │Media │ │Release│ │
|
|
│ └───────┘ └───●───┘ └───────┘ └───────┘ └───────┘ │
|
|
│ │
|
|
│ Step 2: Publication Target │
|
|
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
│ │ Premium Tier (Letters to Editor) ││
|
|
│ │ ● The Economist (200-250 words) - letters@economist.com ││
|
|
│ │ ○ New York Times (150-175 words) - letters@nytimes.com ││
|
|
│ │ ○ Washington Post (200 words max) - letters@washpost.com ││
|
|
│ │ ○ The Guardian (200 words) - letters@theguardian.com ││
|
|
│ │ ○ Financial Times (250 words) - letters.editor@ft.com ││
|
|
│ │ ││
|
|
│ │ Tech Publications ││
|
|
│ │ ○ MIT Tech Review - editors@technologyreview.com ││
|
|
│ │ ○ Wired - Via online form ││
|
|
│ └─────────────────────────────────────────────────────────────┘│
|
|
│ │
|
|
│ Selected: The Economist - Letter to Editor │
|
|
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
│ │ 📋 Requirements: ││
|
|
│ │ • Word count: 200-250 words (strict) ││
|
|
│ │ • Must reference article published within 2 weeks ││
|
|
│ │ • Exclusive submission ││
|
|
│ │ • Include credentials ││
|
|
│ │ • Response time: 2-7 days ││
|
|
│ └─────────────────────────────────────────────────────────────┘│
|
|
│ │
|
|
│ Step 3: Article Reference (Required for Letters) │
|
|
│ Article Title: [AI Regulation in Brussels ] │
|
|
│ Publication Date: [2025-10-15] (📅) │
|
|
│ Main Point: [EU AI Act needs stronger enforcement ] │
|
|
│ [mechanisms to be effective ] │
|
|
│ │
|
|
│ Step 4: Audience & Context │
|
|
│ Audience: [Leader ▼] Tone: [Strategic ▼] │
|
|
│ Culture: [European ▼] Lang: [English (auto)] 🔒 │
|
|
│ │
|
|
│ [Generate Draft] │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Success Metrics
|
|
|
|
### User Adoption
|
|
- Number of content pieces generated per month
|
|
- Diversity of publication targets used
|
|
- Time saved vs. manual drafting
|
|
|
|
### Acceptance Rates
|
|
- Track which publications accept content
|
|
- Which audience/tone combinations work best
|
|
- Cultural context effectiveness
|
|
|
|
### Strategic Impact
|
|
- Media mentions increase
|
|
- Thought leadership positioning
|
|
- Geographic reach expansion
|
|
|
|
---
|
|
|
|
## 10. Risk Mitigation
|
|
|
|
### Content Quality
|
|
- **Risk**: AI-generated content fails editorial standards
|
|
- **Mitigation**: Always requires human review and editing
|
|
- **Governance**: TRA-OPS-0002 (human approval for all external content)
|
|
|
|
### Publication Relationships
|
|
- **Risk**: Spam multiple outlets with similar content
|
|
- **Mitigation**: Track exclusivity requirements in system
|
|
- **Warning**: Flag if attempting simultaneous exclusive submissions
|
|
|
|
### Cultural Sensitivity
|
|
- **Risk**: Inappropriate cultural framing
|
|
- **Mitigation**: Explicit cultural guidance in prompts
|
|
- **Review**: Extra human scrutiny for indigenous/cultural contexts
|
|
|
|
### Legal/Compliance
|
|
- **Risk**: Copyright issues with article references
|
|
- **Mitigation**: Generate original analysis, not republishing
|
|
- **Disclosure**: Auto-include Tractatus affiliation where required
|
|
|
|
---
|
|
|
|
## 11. Next Session Implementation Checklist
|
|
|
|
### Prerequisites
|
|
- [ ] Review and approve this specification
|
|
- [ ] Verify publication details that need checking (marked ⚠️)
|
|
- [ ] Decide on The Daily Blog inclusion (verified above ✓)
|
|
- [ ] Choose Phase 1 target publications (recommend: 5-7 for MVP)
|
|
|
|
### Session Tasks
|
|
1. [ ] Create `src/config/publication-targets.config.js`
|
|
2. [ ] Update blog-curation page title/nav to "External Communications"
|
|
3. [ ] Implement content type radio selector UI
|
|
4. [ ] Add conditional publication dropdown (filtered by type)
|
|
5. [ ] Create article reference form section
|
|
6. [ ] Update ClaudeAPI with `generateLetterToEditor()`
|
|
7. [ ] Update blog controller to handle all content types
|
|
8. [ ] Add publication metadata display component
|
|
9. [ ] Test with 3 publication targets
|
|
10. [ ] Update service worker cache version
|
|
11. [ ] Document for user
|
|
|
|
---
|
|
|
|
## Appendix A: Verification Status Summary (Ranked Order)
|
|
|
|
| Rank | Publication | Score | Status | Notes |
|
|
|------|------------|-------|--------|-------|
|
|
| 1 | The Economist | 43 | ✓ Verified | Premium global outlet, strict word limits |
|
|
| 2 | Financial Times | 42 | ✓ Verified | Business/policy elite readership |
|
|
| 3 | MIT Technology Review | 42 | ✓ Verified | Tech/AI elite, pitch-first model |
|
|
| 4 | The Guardian | 39 | ✓ Verified | Progressive voice, global reach |
|
|
| 5 | IEEE Spectrum | 38 | ✓ Verified | Technical community, peer-reviewed |
|
|
| 6 | New York Times | 38 | ✓ Verified | US policy elite, very selective |
|
|
| 7 | Washington Post | 38 | ✓ Verified | US government readership |
|
|
| 8 | Caixin Global (China) | 37 | ✓ Verified | Independent Chinese journalism, English edition |
|
|
| 9 | The Hindu (India) | 37 | ✓ Verified | Indian policy elite, Open Page 800 words |
|
|
| 10 | Le Monde (France) | 37 | ✓ Verified | French/European elite, French language |
|
|
| 11 | Wall Street Journal | 37 | ✓ Verified | Business leaders, conservative reach |
|
|
| 12 | Wired | 37 | ✓ Verified | Tech culture, pitch-first model |
|
|
| 13 | Mail & Guardian (Africa) | 36 | ✓ Verified | Pan-African, investigative tradition |
|
|
| 14 | LinkedIn Articles | 35 | ✓ Platform | Self-publish, professional network |
|
|
| 15 | The Daily Blog (NZ) | 35 | ✓ Verified | User-preferred NZ blog, Pacific focus |
|
|
| 16 | Der Spiegel (Germany) | 34 | ⚠️ Partial | German language, verify submission details |
|
|
| 17 | Folha de S.Paulo (Brazil) | 34 | ✓ Verified | Largest Brazilian, has English edition |
|
|
| 18 | LA Times | 34 | ✓ Verified | West Coast, California angle helpful |
|
|
| 19 | Substack | 34 | ✓ Platform | Self-publish, newsletter format |
|
|
| 20 | VentureBeat | 34 | ✓ Verified | Tech startup community |
|
|
| 21 | Medium | 32 | ✓ Platform | Self-publish, narrative storytelling |
|
|
| 22 | Die Presse (Austria) | 31 | ⚠️ Partial | German language, verify submission details |
|
|
|
|
**Verification Note**:
|
|
- **✓ Verified**: Publicly available submission guidelines confirmed
|
|
- **⚠️ Partial**: General guidelines exist, specific details should be confirmed before implementation
|
|
- **✓ Platform**: Active self-publishing platform verified
|
|
|
|
---
|
|
|
|
## Appendix B: Cultural Context Mapping
|
|
|
|
Recommended publication-culture pairings:
|
|
|
|
| Cultural Context | Best-Fit Publications (by rank) |
|
|
|-----------------|--------------------------------|
|
|
| Universal | MIT Tech Review (#3), IEEE Spectrum (#5), Medium (#21) |
|
|
| Indigenous | The Daily Blog (#15), The Guardian (#4) |
|
|
| Global South | Mail & Guardian (#13), The Hindu (#9), Folha de S.Paulo (#17), The Guardian (#4) |
|
|
| Asia-Pacific | Caixin Global (#8), The Hindu (#9), The Daily Blog (#15), LinkedIn (#14) |
|
|
| European | Le Monde (#10), Der Spiegel (#16), Die Presse (#22), The Guardian (#4), FT (#2) |
|
|
| North American | The Economist (#1), NYT (#6), Washington Post (#7), WSJ (#11), Wired (#12), LA Times (#18) |
|
|
| Africa | Mail & Guardian (#13) |
|
|
| South America | Folha de S.Paulo (#17) |
|
|
| China/Asia | Caixin Global (#8) |
|
|
| India/South Asia | The Hindu (#9) |
|
|
|
|
---
|
|
|
|
**End of Specification**
|
|
|
|
**Prepared by**: Claude (Tractatus AI PM)
|
|
**Review Status**: Awaiting Human Approval
|
|
**Implementation Target**: Next Development Session
|
|
**Estimated Development Time**: 2-3 sessions (6-9 hours)
|