Use this skill for computational communication research tasks including: sentiment analysis, topic modeling, frame analysis, network analysis, coordinated behavior detection, content analysis, and LLM annotation. Activate when user mentions: social media research, text analysis, network analysis, framing, coordination detection, or platform data collection.
An agent skill for rigorous computational communication research.
Help researchers conduct methodologically sound computational communication research by:
❌ WRONG: User says "analyze sentiment" → You run VADER with defaults ✅ RIGHT: User says "analyze sentiment" → You ask probing questions first
For EVERY method, ask the relevant probing questions from references/methods/.
Escalation protocol:
Tell users the truth about platform APIs:
| ✅ Works | ⚠️ Application Required | 💰 Expensive |
|---|---|---|
| Existing datasets | Meta Content Library | Twitter/X ($5K+/mo) |
| Bluesky (open) | TikTok Research API | Reddit (negotiated) |
| Telegram (public) | ||
| YouTube (API key) |
Always suggest existing datasets first (Harvard Dataverse, ICPSR, Zenodo).
references/methods/{method}.mdreferences/data-sources/Look for signs of expertise:
If expert, fast-track: "✅ Parameters complete. Proceeding."
| Method | Reference | Key Requirement |
|---|---|---|
| Sentiment Analysis | references/methods/sentiment-analysis.md | Sarcasm strategy |
| Topic Modeling | references/methods/topic-modeling.md | K justification |
| Frame Analysis | references/methods/frame-analysis.md | Frame typology |
| Network Analysis | references/methods/network-analysis.md | Node/edge definition |
| Coordinated Behavior | references/methods/coordinated-behavior.md | Baseline comparison |
| Content Analysis | references/methods/content-analysis.md | Codebook + reliability |
| LLM Annotation | references/methods/llm-annotation.md | Human validation |
| TextNets | references/methods/textnets.md | Bipartite network setup |
| Regression Modeling | references/methods/regression-modeling.md | Distribution diagnostics |
Decision tree:
15% zeros → Zero-inflated or Hurdle model
Never run OLS on skewed engagement data without justification.
Run analysis scripts via the scripts/ directory:
# Zotero library analysis (optional customization)
python scripts/zotero_adapt.py --user-id USER_ID --api-key API_KEY
See references/workflows/tiered-validation.md
5 nudge types prevent default-driven research:
Before ANY analysis, ask:
What's your validation tier?
🟢 EXPLORATORY — Learning, exploring (30-60 min)
🟡 PILOT — Committee review, working paper (2-4 hrs)
🔴 PUBLICATION — Journal submission (1-2 days)
Your selection: ___
Do not proceed without explicit tier choice. Tier determines validation requirements.
Frames are not always mutually exclusive:
| Field | Required | Description |
|---|---|---|
| PRIMARY_FRAME | Yes | Dominant frame |
| SECONDARY_FRAME | If applicable | Mark as MIXED |
| VALENCE | Yes | positive/negative/neutral toward subject |
See updated references/methods/frame-analysis.md
Before sampling from news data:
If time range >30 days OR includes major events:
| Mode | What It Provides | What It Doesn't |
|---|---|---|
| Single-model + CommDAAF | Protocol compliance, consistent methodology | Cannot catch model's own errors |
| Multi-model + CommDAAF | Independent verification, convergence checking | Still needs human validation for 🔴 tier |
Key insight: CommDAAF in single-model mode is a methodology scaffold, not a fact-checker. Multi-model convergence increases confidence but does not replace human validation.
| Tier | Human Validation | Inter-Coder Reliability |
|---|---|---|
| 🟢 Exploratory | Not required | Not required |
| 🟡 Pilot | N ≥ 100 | κ ≥ 0.6 |
| 🔴 Publication | N ≥ 200 | κ ≥ 0.7 |
Multi-model agreement does NOT substitute for human validation at 🔴 tier.
CommDAAF now includes specialized subskills for common tasks:
| Subskill | Location | Description |
|---|---|---|
| Codebook Generator | ../codebook-generator/ | Generate operational coding schemes from theory |
| Effect Size Interpreter | ../effect-size-interpreter/ | Calculate, benchmark, and interpret effect sizes |
| Sampling Strategist | ../sampling-strategist/ | Design stratified/tiered sampling strategies |
| Subskill | Location | Description |
|---|---|---|
| Literature Synthesis | ../literature-synthesis/ | Search, cite, map, and synthesize research literature |
| Multimodal Coder | ../multimodal-coder/ | Code images, video, memes, and image-text relationships |
from commdaaf import (
CodebookGenerator, EffectSizeInterpreter, SamplingStrategist,
LiteratureSynthesis, MultimodalCoder
)
# Generate codebook from theory
codebook = CodebookGenerator().generate(
construct="injustice frame",
theory="Gamson 1992"
)
# Interpret regression results
effects = EffectSizeInterpreter().interpret_irr(
irr=2.72, ci_lower=1.52, ci_upper=4.87, p_value=0.001,
predictor_name="INFORMATIONAL", reference_name="SOLIDARITY"
)
# Design stratified sample
sample = SamplingStrategist().engagement_tiers(
data=tweets,
tiers={"viral": (95,100), "high": (75,95), "medium": (25,75), "low": (0,25)},
n_per_tier=100
)
# Search and synthesize literature
lit = LiteratureSynthesis()
papers = lit.search("framing social media protest", years=(2018, 2026))
network = lit.citation_network(anchor_doi="10.1073/pnas.1618923114")
draft = lit.generate_review(papers, structure="thematic")
# Code multimodal content
coder = MultimodalCoder()
post = coder.code_post(
text="Standing together for justice ✊",
image_description="crowd of protesters with signs",
platform="instagram"
)
video = coder.analyze_video("tiktok.mp4", max_keyframes=5)
See individual subskill SKILL.md files for full documentation.