home / skills / nealcaren / social-data-analysis / dag-development
This skill helps translate research questions into publication-ready DAGs and render them with Mermaid, R, or Python for clear causal diagrams.
npx playbooks add skill nealcaren/social-data-analysis --skill dag-developmentReview the files below or copy the command above to add this skill to your agents.
---
name: dag-development
description: Develop causal diagrams (DAGs) from social-science research questions and literature, then render publication-ready figures using Mermaid, R, or Python.
---
# DAG Development
You help users **develop causal diagrams (DAGs)** from their research questions, theory, or core paper, and then render them as clean, publication-ready figures using **Mermaid**, **R (ggdag)**, or **Python (networkx)**. This skill spans **conceptual translation** and **technical rendering**.
## When to Use This Skill
Use this skill when users want to:
- Translate a research question or paper into a DAG
- Clarify mechanisms, confounders, and selection/measurement structures
- Turn a DAG into a figure for papers or slides
- Choose a rendering stack (Mermaid vs R vs Python)
- Export SVG/PNG/PDF consistently
## Core Principles
1. **Explicit assumptions**: DAGs encode causal claims; make assumptions visible.
2. **Rigorous Identification**: Use the 6-step algorithm and d-separation to validate the DAG structure *before* rendering.
3. **Reproducible by default**: Provide text-based inputs and scripted outputs.
4. **Exportable assets**: Produce SVG/PNG (and PDF where possible).
5. **Tool choice**: Offer three rendering paths with tradeoffs.
6. **Minimal styling**: Keep figures simple and journal‑friendly.
## Workflow Phases
### Phase 0: Theory → DAG Translation
**Goal**: Help users turn their current thinking or a core paper into a **DAG Blueprint**.
- Clarify the causal question and unit of analysis
- Translate narratives/mechanisms into nodes and edges
- Record assumptions and uncertain edges
**Guide**: `phases/phase0-theory.md`
**Concepts**: `confounding.md`, `potential_outcomes.md`
> **Pause**: Confirm the DAG blueprint before auditing.
---
### Phase 1: Critique & Identification
**Goal**: **Validate** the DAG blueprint using formal rules (Shrier & Platt, Greenland).
- Run the **6-step algorithm** (Check descendants, non-ancestors).
- Check for **Collider-Stratification Bias**.
- Identify the **Sufficient Adjustment Set**.
- Detect threats from unobserved variables.
**Guide**: `phases/phase1-identification.md`
**Concepts**: `six_step_algorithm.md`, `d_separation.md`, `colliders.md`, `selection_bias.md`
> **Pause**: Confirm the "Validated DAG" (nodes + edges + adjustment strategy) before formatting.
---
### Phase 2: Inputs & Format
**Goal**: Turn the Validated DAG into render‑ready inputs.
- Finalize node list, edge list, and node types (Exposure, Outcome, Latent, Selection).
- Choose output formats (SVG/PNG/PDF) and layout.
**Guide**: `phases/phase2-inputs.md`
> **Pause**: Confirm the DAG inputs and output target before rendering.
---
### Phase 3: Mermaid Rendering
**Goal**: Render a DAG quickly from Markdown using Mermaid CLI.
**Guide**: `phases/phase3-mermaid.md`
> **Pause**: Confirm Mermaid output or move to R/Python.
---
### Phase 4: R Rendering (ggdag)
**Goal**: Render a DAG using R with ggdag for publication‑quality plots.
**Guide**: `phases/phase4-r.md`
> **Pause**: Confirm R output or move to Python.
---
### Phase 5: Python Rendering (networkx)
**Goal**: Render a DAG using Python with `uv` inline dependencies.
**Guide**: `phases/phase5-python.md`
---
## Output Expectations
Provide:
- A **DAG Blueprint** (Phase 0)
- An **Identification Memo** (Phase 1)
- A **DAG source file** (Mermaid `.mmd`, R `.R`, or Python `.py`)
- **Rendered figure(s)** in SVG/PNG (and PDF when available)
## Invoking Phase Agents
Use the Task tool for each phase:
```
Task: Phase 3 Mermaid
subagent_type: general-purpose
model: sonnet
prompt: Read phases/phase3-mermaid.md and render the user’s DAG
```This skill helps you develop causal diagrams (DAGs) from social‑science research questions and literature, then render publication‑ready figures using Mermaid, R (ggdag), or Python (networkx). I translate theory and papers into explicit DAG blueprints, validate identification, and produce reproducible source files and exportable figures (SVG/PNG/PDF).
I guide you through four core phases: translate theory into a DAG blueprint, validate the DAG with formal identification checks (6‑step algorithm and d‑separation), convert the validated DAG into render‑ready inputs, and produce figures using Mermaid, R, or Python. At each phase you confirm the blueprint, validation memo, and rendering choices so outputs remain reproducible and journal‑friendly.
Which rendering stack should I pick?
Use Mermaid for fast markdown‑driven diagrams, R (ggdag) for publication styling and statistical integration, and Python (networkx) for programmatic control and complex layouts.
Can you show unobserved (latent) variables and selection nodes?
Yes — I annotate node types (latent, selection) and incorporate them into the identification check and final figure exports.