Last Updated June 11, 2026
Public narrative turns private experience into shared responsibility. It helps people explain who they are, what they value, what they have endured, what they hope for, who they stand with, what injustice or possibility demands attention, and why action is needed now. It is not merely a speech technique. It is one of the ways communities make meaning together under pressure.
Public Narrative and Social Change examines how stories help movements, communities, campaigns, institutions, and publics connect identity, values, memory, grievance, strategy, and action. It explores the story of self, us, and now; collective-action framing; testimony; counternarrative; moral urgency; coalition-building; digital mobilization; movement memory; and the ethical risks of persuasive public storytelling.

Public narrative can help people move from isolation to participation, from grievance to agency, and from scattered experience to collective action. But it can also manipulate identity, simplify opponents, exploit testimony, convert suffering into spectacle, or substitute symbolic belonging for material change. Responsible public narrative must connect story to evidence, consent, coalition, strategy, accountability, and repair.
Why Public Narrative Matters
Public narrative matters because social change requires more than information. People may know that a problem exists and still remain isolated, uncertain, afraid, overwhelmed, cynical, or unsure what action would matter. Public narrative helps connect knowledge to identity, emotion, values, agency, and collective possibility.
A public narrative can make action imaginable. It can say: this harm is not private failure; this experience is shared; this community has a history; this moment matters; these values are at stake; this action is possible; and this future is worth working toward.
But public narrative is also dangerous because it works through emotion and identification. It can make people feel belonging before they understand complexity. It can turn urgency into pressure, outrage into simplification, testimony into mobilizing content, or a movement into a moral drama with heroes, villains, victims, and traitors.
| Public narrative function | Constructive use | Risk |
|---|---|---|
| Identity | Helps people see themselves as part of a public. | Defines belonging too narrowly. |
| Meaning | Connects events to values and history. | Simplifies causes or suppresses complexity. |
| Urgency | Shows why action matters now. | Creates panic or moral pressure without strategy. |
| Solidarity | Connects individual experience to collective responsibility. | Uses people’s pain as symbolic capital. |
| Strategy | Frames what action can change. | Substitutes emotional alignment for effective action. |
| Memory | Preserves struggle, sacrifice, and learning. | Turns movements into mythology. |
Public narrative becomes powerful when people recognize themselves in a shared story and see a path toward action.
The Story of Self, Us, and Now
One influential approach to public narrative organizes movement storytelling around the story of self, the story of us, and the story of now. The story of self explains the experiences, choices, values, and commitments that bring a person to act. The story of us connects those values to a community. The story of now identifies the urgent challenge and the action required.
This structure matters because it prevents public narrative from being only biography, only group identity, or only demand. It links personal commitment, collective belonging, and present action.
The story of self without the story of us can become personal branding. The story of us without the story of self can become abstract solidarity. The story of now without self and us can become pressure without trust. Responsible public narrative holds all three together.
| Public narrative layer | Question | Failure mode |
|---|---|---|
| Story of self | What values and choices brought me here? | Personal testimony becomes self-display. |
| Story of us | What shared values, memories, and relationships connect us? | Collective identity excludes difference or dissent. |
| Story of now | What urgent challenge requires action? | Urgency becomes emotional pressure without strategy. |
| Choice | What decision does the story ask people to make? | The action step is vague or symbolic only. |
| Hope | What future becomes possible through action? | Hope becomes optimism without cost or plan. |
| Accountability | How will the story be tested by outcomes? | Mobilization is measured only by attention. |
The strongest public narrative does not merely explain what people feel; it clarifies what they can choose together.
Public Narrative and Collective Identity
Public narrative helps form collective identity. It gives people a way to say “we” without already being fully organized. A movement, campaign, community, or public may form around a story of shared harm, shared hope, shared place, shared memory, shared exclusion, shared responsibility, or shared future.
Collective identity is not automatic. People may share a condition but not yet see themselves as connected. Public narrative helps transform similar experiences into common interpretation. It says: this is not happening only to you; this has a pattern; this has a history; this can be named; and this can be changed.
The ethical challenge is that every “we” creates a boundary. A responsible public narrative must ask who is included, who is spoken for, who is expected to identify, and who is being used as symbol rather than participant.
| Collective identity element | Constructive use | Question to ask |
|---|---|---|
| Shared experience | Helps people recognize common conditions. | Whose experience is treated as representative? |
| Shared value | Connects action to moral commitment. | Are values broad enough to build coalition? |
| Shared memory | Links present struggle to earlier history. | What past is remembered or omitted? |
| Shared opposition | Names the barrier to change. | Is opposition simplified into enemy identity? |
| Shared agency | Shows how people can act together. | Who has real decision power? |
| Shared future | Provides direction beyond grievance. | Is the future concrete enough to guide action? |
Public narrative creates belonging responsibly when the “we” is strong enough for action and open enough for truth.
Grievance, Values, and Moral Urgency
A public narrative often begins with a grievance: something is wrong, harmful, unjust, neglected, or intolerable. But grievance alone does not create durable action. People also need values, agency, and credible pathways for change.
Values explain why the grievance matters. A story about unaffordable housing may invoke dignity, home, community, childhood, fairness, or democratic voice. A story about environmental harm may invoke stewardship, health, intergenerational responsibility, land, place, and survival. A story about labor conditions may invoke respect, safety, family, time, and human worth.
Moral urgency turns values into time-sensitive action. But urgency must be governed. If every issue is framed as immediate crisis, people burn out, distrust increases, and strategic judgment weakens.
| Narrative component | Purpose | Risk |
|---|---|---|
| Grievance | Names harm or injustice. | Stays in complaint without action. |
| Value | Explains why the issue matters. | Uses moral language to shut down debate. |
| Urgency | Shows why delay has consequences. | Creates panic, guilt, or exhaustion. |
| Agency | Shows that people can affect the outcome. | Overpromises what a single action can do. |
| Strategy | Connects action to change mechanism. | Uses symbolism without power analysis. |
| Hope | Sustains participation beyond outrage. | Becomes sentiment without structure. |
A responsible public narrative does not only say that something is wrong; it shows why action is meaningful and how change could happen.
Collective-Action Frames
Social movements often use frames to help people interpret conditions and decide whether to act. A collective-action frame typically performs three tasks: it diagnoses the problem, proposes a response, and motivates participation.
Diagnostic framing names what is wrong and who or what is responsible. Prognostic framing describes what should be done. Motivational framing explains why people should act and why action is possible. These frames may appear in speeches, slogans, testimony, manifestos, petitions, campaigns, videos, infographics, organizing conversations, lawsuits, policy proposals, and social media posts.
Frames matter because they organize attention. A movement that cannot explain the problem, the solution, and the reason to act will struggle to build participation. But frames also risk reduction. A frame can make complex causes too simple, opponents too evil, or solutions too easy.
| Frame type | Question | Risk |
|---|---|---|
| Diagnostic frame | What is the problem? | Blames too narrowly or too broadly. |
| Attribution frame | Who or what is responsible? | Turns accountability into scapegoating. |
| Prognostic frame | What should be done? | Offers symbolic action without power analysis. |
| Motivational frame | Why should people act? | Uses guilt, fear, or identity pressure. |
| Identity frame | Who are “we”? | Excludes people needed for coalition. |
| Hope frame | What future can action build? | Promises transformation without a pathway. |
A public narrative becomes more strategic when it links diagnosis, solution, motivation, and action without sacrificing complexity.
Testimony and Witness
Testimony is one of the most powerful forms of public narrative. A person who speaks from experience can make harm visible, challenge official denial, humanize abstract issues, and give moral weight to policy or movement demands.
Testimony can shift public attention because it carries witness. It says: this happened; this is what it meant; this is what is at stake; this is why silence is no longer acceptable. Testimony can appear in hearings, town halls, truth commissions, public meetings, documentaries, journalism, litigation, organizing, memorials, and digital campaigns.
But testimony is ethically delicate. People’s pain should not be extracted for movement benefit. Vulnerable speakers should not be pressured to perform trauma. Public testimony should protect consent, context, safety, agency, and follow-through.
| Testimony use | Public value | Ethical risk |
|---|---|---|
| Policy hearing | Connects law to lived experience. | Testimony is heard but not acted on. |
| Campaign video | Humanizes a public issue. | Story is edited to fit a predetermined message. |
| Community meeting | Builds local memory and solidarity. | Speakers face exposure without protection. |
| Truth-telling forum | Builds public record after harm. | Recognition replaces repair. |
| Digital post | Circulates experience beyond local setting. | Context collapses and harassment risk increases. |
| Movement archive | Preserves memory for future organizers. | Consent for long-term reuse is unclear. |
Testimony should move publics toward responsibility, not turn witness into content.
Counternarratives and Contested Memory
Public narrative often becomes necessary because dominant narratives already exist. A dominant story may say that a problem is natural, inevitable, deserved, private, isolated, too complex, already solved, or not a problem at all. Counternarratives challenge these explanations.
A counternarrative can expose hidden harm, recover suppressed memory, contest stereotypes, reframe blame, name systemic causes, and create new forms of public recognition. It may come from communities that have been misrepresented, ignored, criminalized, displaced, or spoken for by institutions.
Counternarratives are often treated as disruptive because they challenge public comfort. But disruption may be necessary when the existing public story protects power or innocence. The ethical challenge is to challenge dominant memory without replacing it with a new closed story that cannot hear complexity or internal difference.
| Dominant story | Counterstory | Governance question |
|---|---|---|
| “The system works.” | “The system works differently depending on who you are.” | What evidence shows unequal experience? |
| “This is an individual failure.” | “This is a patterned institutional condition.” | What records show repetition? |
| “The issue is too complicated.” | “Complexity is not an excuse for inaction.” | What action is feasible now? |
| “Progress already happened.” | “Formal change has not produced lived change.” | What outcomes confirm or challenge the claim? |
| “The public is divided.” | “The public has not heard affected communities.” | Who has been excluded from agenda-setting? |
| “Dissent is extremism.” | “Dissent is a democratic warning signal.” | What claims are being made, and what evidence supports them? |
Counternarratives make social change possible by changing what a public can recognize.
Coalition Stories
Social change often requires coalitions: groups with different identities, interests, histories, risks, and priorities working together toward a shared objective. Coalition stories help connect these differences without erasing them.
A good coalition story does not pretend that everyone has the same experience. It explains the shared value, shared threat, shared opportunity, or shared future that makes cooperation meaningful. It also preserves the distinct reasons different groups join.
Coalition storytelling is hard because the story must be broad enough to include difference and specific enough to guide action. If it is too broad, it becomes empty unity. If it is too narrow, it becomes factional. If it ignores internal power differences, it reproduces inequality within the coalition.
| Coalition story element | Responsible use | Risk |
|---|---|---|
| Shared value | Creates common moral ground. | Uses vague language that hides disagreement. |
| Distinct stakes | Shows why different groups care. | Ranks suffering or turns groups into symbols. |
| Shared target | Clarifies where action is directed. | Turns accountability into scapegoating. |
| Shared action | Coordinates participation. | Asks unequal sacrifice from less powerful groups. |
| Shared future | Gives coalition positive direction. | Promises unity without governance. |
| Conflict process | Allows disagreement without collapse. | Suppresses internal critique for appearance of unity. |
Coalition stories are strongest when they build unity without demanding sameness.
Leadership and Movement Narrative
Leadership in social change is partly narrative work. Leaders help name the moment, connect people across difference, interpret setbacks, preserve courage, mark victories, mourn losses, and keep action connected to values.
But leadership narrative is not only what a visible leader says from a platform. It also appears in organizing conversations, local meetings, training sessions, rituals, campaign materials, collective decision-making, and stories passed between participants.
Responsible movement leadership does not make the leader the center of the story. It helps people see themselves as agents. It makes room for distributed leadership, community voice, local knowledge, and correction. A movement story that depends entirely on one heroic figure is fragile and ethically risky.
| Leadership narrative task | Constructive role | Risk |
|---|---|---|
| Name the moment | Helps people interpret what is happening. | Overstates crisis or certainty. |
| Connect values | Builds moral coherence. | Uses moral language to silence dissent. |
| Invite action | Turns concern into participation. | Asks for action without a realistic pathway. |
| Interpret setback | Sustains participation through loss. | Explains away failure without learning. |
| Share credit | Builds distributed agency. | Centralizes recognition around charismatic leadership. |
| Preserve memory | Links current work to movement history. | Turns history into mythology. |
Movement leadership tells stories that help others act, not stories that make followers dependent on the storyteller.
Digital Public Narrative
Digital platforms have changed public narrative. Social media, livestreams, podcasts, short videos, infographics, messaging apps, newsletters, hashtags, digital archives, and algorithmic feeds allow stories to circulate rapidly and across boundaries.
Digital public narrative can broaden participation. It can help affected communities bypass gatekeepers, document events in real time, coordinate action, preserve testimony, and connect local experience to global publics. It can also make movements more accessible to people who cannot attend in person.
But digital circulation creates risks. Stories may be decontextualized, compressed, misattributed, appropriated, or turned into spectacle. Platform incentives may reward outrage, simplicity, speed, and identity performance. Visibility can expose vulnerable people to harassment. Attention can be mistaken for organization.
| Digital narrative form | Potential value | Risk |
|---|---|---|
| Hashtag | Aggregates testimony and attention. | Turns complex experience into slogan. |
| Short video | Makes witness visible and shareable. | Context collapses and affect dominates. |
| Infographic | Translates issues into accessible form. | Oversimplifies evidence or spreads errors. |
| Livestream | Documents events in real time. | Exposure creates safety and consent risks. |
| Digital archive | Preserves movement memory. | Long-term consent and access remain unclear. |
| AI-generated summary | Helps organize large volumes of material. | Smooths dissent, uncertainty, and source differences. |
Digital public narrative expands voice, but it also increases the need for context, verification, consent, and care.
Movement Memory and Institutionalization
Social change does not end with mobilization. Movements create memory: stories of founding, breakthrough, repression, sacrifice, victory, betrayal, compromise, failure, and renewal. These memories help later organizers understand what happened and what remains unfinished.
Movement memory can sustain long-term work. It can preserve lessons, honor risk, transmit tactics, and prevent erasure. But movement memory can also become mythology. A movement may remember heroic moments while forgetting internal conflict, strategic mistakes, excluded participants, or people harmed within the movement itself.
Institutionalization adds another layer. As movements become organizations, nonprofits, campaigns, professional advocacy groups, policy offices, or public institutions, their stories may change. Grassroots memory may become brand history. Radical demands may become manageable messaging. Movement accountability may become fundraising narrative.
| Movement memory form | Value | Risk |
|---|---|---|
| Origin story | Explains how the movement began. | Erases prior labor or less visible organizers. |
| Victory story | Shows that change is possible. | Overstates completion or hides compromise. |
| Martyr story | Honors sacrifice and risk. | Glorifies suffering or discourages criticism. |
| Repression story | Documents state or institutional response. | Centers opposition more than strategy. |
| Failure story | Supports learning. | Is buried to protect morale or funding. |
| Institutional story | Preserves organizational continuity. | Turns movement memory into brand asset. |
Movement memory is responsible when it preserves struggle without turning struggle into myth.
AI and Public Narrative
AI systems can summarize testimony, draft campaign messages, generate speeches, analyze social media frames, cluster public comments, identify narrative themes, translate materials, and help organizers make sense of large amounts of text. These tools can support access and coordination.
They can also distort social change narratives. AI may generate emotionally persuasive messaging without accountability. It may reproduce dominant frames, flatten testimony, erase minority voices, hallucinate claims, overstate consensus, or optimize for engagement rather than justice. It may turn complex public memory into campaign-ready language too quickly.
AI use in public narrative requires governance. Organizers, institutions, and communicators should track sources, protect privacy, document consent, preserve uncertainty, mark generated text, review for bias, include affected communities, and prevent automation from speaking for people who have not authorized it.
| AI use | Possible benefit | Risk |
|---|---|---|
| Testimony summarization | Helps process large volumes of public voice. | Flattens pain, contradiction, or minority experience. |
| Campaign drafting | Speeds communication. | Creates persuasive language detached from accountability. |
| Frame detection | Identifies dominant themes and gaps. | Over-classifies complex speech. |
| Translation | Expands access across language difference. | Loses cultural meaning and emotional nuance. |
| Digital listening | Finds patterns in public discussion. | Raises surveillance, privacy, and consent concerns. |
| Generated storytelling | Helps prototype narratives. | Speaks for communities without authority. |
AI should support public narrative by improving listening and accountability, not by automating moral voice.
Ethics of Public Narrative
The ethics of public narrative begins with power. Stories can move people, but they can also pressure people. They can create belonging, but they can also enforce identity. They can honor testimony, but they can also extract it. They can mobilize action, but they can also simplify conflict beyond responsibility.
Responsible public narrative asks: Who is speaking? Who is spoken for? Who benefits from the story? What evidence supports it? What action does it invite? What risks are borne by those represented? What complexity is being omitted? What feedback or accountability exists?
A public narrative should not be judged only by whether it inspires action. It should also be judged by whether the action is informed, consent-based, strategically connected, and ethically accountable.
| Ethical principle | Question | Warning sign |
|---|---|---|
| Consent | Did people authorize the use of their stories? | Testimony is reused beyond its original context. |
| Accuracy | Does the story remain accountable to evidence? | Emotional clarity replaces factual care. |
| Agency | Do represented communities shape the narrative? | Others speak for them without shared power. |
| Complexity | Does the story preserve important nuance? | Opponents, causes, or solutions are simplified. |
| Safety | Are risks to speakers and communities considered? | Visibility is treated as automatically empowering. |
| Accountability | Does storytelling connect to follow-through? | Mobilization is measured by attention alone. |
Public narrative is ethical when it increases agency, truth, and responsibility rather than only emotional force.
Examples of Public Narrative Analysis
The examples below show how public narratives can be examined as instruments of meaning, mobilization, and accountability.
Story of self
Weak: A speaker tells a moving personal story.
Stronger: The analysis asks what values, choices, risks, and commitments the story reveals, and how it connects to a larger public.
Why it works: It keeps personal testimony from becoming isolated self-expression.
Story of us
Weak: A campaign says “we are all in this together.”
Stronger: The analysis asks who is included, who is missing, what shared memory is invoked, and whether difference is preserved.
Why it works: It treats solidarity as something that must be built, not assumed.
Story of now
Weak: The message says the moment is urgent.
Stronger: The analysis asks what evidence shows urgency, what action is requested, and how action connects to change.
Why it works: It prevents urgency from becoming emotional pressure alone.
Movement testimony
Weak: A personal story is used to generate attention.
Stronger: The analysis checks consent, context, safety, agency, representativeness, and follow-through.
Why it works: It protects witness from extraction.
Digital campaign
Weak: A hashtag is treated as proof of mass alignment.
Stronger: The analysis examines platform incentives, source diversity, offline organizing, misinformation, and participation pathways.
Why it works: It distinguishes visibility from organized power.
AI-generated campaign message
Weak: Generated language is used because it is emotionally effective.
Stronger: The workflow audits sources, consent, community authority, uncertainty, bias, and action accountability.
Why it works: It prevents automation from speaking as a public it has not heard.
Public narrative analysis asks whether a story helps people act with more truth, power, and care.
Mathematics, Computation, and Modeling
Public narrative should not be reduced to numbers, but structured diagnostics can help evaluate whether a narrative is clear, inclusive, action-oriented, ethically grounded, and accountable.
A public-narrative coherence score can estimate whether a narrative connects self, us, now, values, action, and accountability:
P_c = \frac{S_e + U_s + N_w + V_a + A_c + G_r}{6}
\]
Interpretation: Public narrative coherence \(P_c\) averages self clarity \(S_e\), us clarity \(U_s\), now clarity \(N_w\), value articulation \(V_a\), action clarity \(A_c\), and governance review \(G_r\).
A mobilization-readiness score can estimate whether a public narrative connects meaning to feasible action:
M_r = \frac{D_f + P_s + R_s + C_o + T_a + F_b}{6}
\]
Interpretation: Mobilization readiness \(M_r\) averages diagnostic frame \(D_f\), proposed solution \(P_s\), resource support \(R_s\), coalition openness \(C_o\), tactical action \(T_a\), and feedback loop \(F_b\).
A testimony-extraction risk score can estimate when witness is being used without enough care:
T_e = C_dw_c + E_tw_e + S_rw_s + R_uw_r + V_rw_v + (1 – A_g)w_a
\]
Interpretation: Testimony extraction \(T_e\) rises with consent deficit \(C_d\), emotional targeting \(E_t\), safety risk \(S_r\), reuse uncertainty \(R_u\), visibility risk \(V_r\), and weak agency \(A_g\).
An AI-public-narrative risk score can estimate whether automation is distorting civic storytelling:
A_p = S_dw_s + O_vw_o + C_lw_c + B_rw_b + U_ew_u + (1 – H_r)w_h
\]
Interpretation: AI public narrative risk \(A_p\) rises with summary dependence \(S_d\), omitted voices \(O_v\), context loss \(C_l\), bias reproduction \(B_r\), uncertainty erasure \(U_e\), and weak human review \(H_r\).
| Modeling task | Governance question | Example output |
|---|---|---|
| Public narrative audit | Does the story connect self, us, now, values, action, and accountability? | Public-narrative coherence score. |
| Mobilization audit | Does the story connect emotion to feasible action? | Mobilization-readiness score. |
| Frame audit | Are diagnosis, solution, and motivation clear? | Collective-action frame review. |
| Testimony audit | Are witness stories used with consent, context, and care? | Testimony-extraction risk score. |
| Coalition audit | Does the story build unity without erasing difference? | Coalition-plurality score. |
| AI narrative audit | Is automation speaking for publics without authority? | AI public narrative risk score. |
Computation should make public narrative more accountable, not more efficient at mobilizing people without consent or strategy.
Python Workflow: Public Narrative Governance Audit
The Python workflow below follows the advanced Catalyst Canvas standard: typed records, config-driven scoring, validation, governance notes, Canvas-card exports, CSV outputs, JSON outputs, markdown governance queues, and review priorities. The companion repository version includes the shared `python/catalyst_canvas/` layer plus article-specific data for public narrative coherence, mobilization readiness, testimony ethics, coalition openness, digital circulation, and AI public narrative risk.
# run_public_narrative_governance_audit.py
from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
import csv
import json
from hashlib import sha256
from statistics import mean
from typing import Any
ARTICLE_ROOT = Path(__file__).resolve().parents[1]
OUTPUTS = ARTICLE_ROOT / "outputs"
@dataclass(frozen=True)
class PublicNarrativeGovernanceRecord:
item: str
claim_context: str
self_clarity: float
us_clarity: float
now_clarity: float
value_articulation: float
action_clarity: float
governance_review: float
diagnostic_frame: float
proposed_solution: float
resource_support: float
coalition_openness: float
tactical_action: float
feedback_loop: float
consent_deficit: float
emotional_targeting: float
safety_risk: float
reuse_uncertainty: float
visibility_risk: float
agency: float
voice_plurality: float
affected_community_authority: float
evidence_visibility: float
digital_context: float
summary_dependence: float
omitted_voices: float
context_loss: float
bias_reproduction: float
uncertainty_erasure: float
human_review: float
public_consequence: float
owner: str = "editorial"
status: str = "active"
notes: str = ""
@dataclass(frozen=True)
class PublicNarrativeGovernanceConfig:
article_title: str = "Public Narrative and Social Change"
article_slug: str = "public-narrative-and-social-change"
medium_threshold: float = 0.45
high_threshold: float = 0.62
allowed_statuses: tuple[str, ...] = ("active", "archive", "review", "revise")
def validate_score(value: float, field_name: str) -> None:
if value < 0 or value > 1:
raise ValueError(f"{field_name} must be between 0 and 1.")
def validate_record(record: PublicNarrativeGovernanceRecord, config: PublicNarrativeGovernanceConfig) -> None:
if not record.item.strip():
raise ValueError("item is required.")
if not record.claim_context.strip():
raise ValueError("claim_context is required.")
if record.status not in config.allowed_statuses:
raise ValueError(f"Invalid status: {record.status}")
for field_name, value in record.__dict__.items():
if isinstance(value, float):
validate_score(value, field_name)
def public_narrative_coherence(record: PublicNarrativeGovernanceRecord) -> float:
return mean([
record.self_clarity,
record.us_clarity,
record.now_clarity,
record.value_articulation,
record.action_clarity,
record.governance_review,
])
def mobilization_readiness(record: PublicNarrativeGovernanceRecord) -> float:
return mean([
record.diagnostic_frame,
record.proposed_solution,
record.resource_support,
record.coalition_openness,
record.tactical_action,
record.feedback_loop,
])
def testimony_extraction_risk(record: PublicNarrativeGovernanceRecord) -> float:
return min(
1.0,
record.consent_deficit * 0.18
+ record.emotional_targeting * 0.18
+ record.safety_risk * 0.18
+ record.reuse_uncertainty * 0.16
+ record.visibility_risk * 0.16
+ (1 - record.agency) * 0.14,
)
def public_voice_integrity(record: PublicNarrativeGovernanceRecord) -> float:
return mean([
record.voice_plurality,
record.affected_community_authority,
record.evidence_visibility,
record.coalition_openness,
record.digital_context,
record.governance_review,
])
def ai_public_narrative_risk(record: PublicNarrativeGovernanceRecord) -> float:
return min(
1.0,
record.summary_dependence * 0.18
+ record.omitted_voices * 0.20
+ record.context_loss * 0.18
+ record.bias_reproduction * 0.16
+ record.uncertainty_erasure * 0.16
+ (1 - record.human_review) * 0.12,
)
def governance_priority_score(record: PublicNarrativeGovernanceRecord, config: PublicNarrativeGovernanceConfig) -> float:
score = (
testimony_extraction_risk(record) * 0.22
+ ai_public_narrative_risk(record) * 0.20
+ (1 - public_narrative_coherence(record)) * 0.16
+ (1 - mobilization_readiness(record)) * 0.14
+ (1 - public_voice_integrity(record)) * 0.12
+ record.public_consequence * 0.16
)
if record.status == "revise":
score = max(score, config.high_threshold)
elif record.status == "review":
score = max(score, config.medium_threshold)
return min(1.0, max(0.0, score))
def review_priority(record: PublicNarrativeGovernanceRecord, config: PublicNarrativeGovernanceConfig) -> str:
score = governance_priority_score(record, config)
if score >= config.high_threshold:
return "high"
if score >= config.medium_threshold:
return "medium"
return "standard"
def card_id(record: PublicNarrativeGovernanceRecord, config: PublicNarrativeGovernanceConfig) -> str:
raw = f"{config.article_slug}|{record.item}|{record.claim_context}"
return sha256(raw.encode("utf-8")).hexdigest()[:16]
def governance_note(record: PublicNarrativeGovernanceRecord, config: PublicNarrativeGovernanceConfig) -> str:
priority = review_priority(record, config)
notes = []
if priority == "high":
notes.append("High-priority public narrative governance review required.")
elif priority == "medium":
notes.append("Medium-priority review recommended before reuse.")
else:
notes.append("Standard editorial review sufficient.")
if public_narrative_coherence(record) < 0.65:
notes.append("Public narrative coherence is limited; strengthen self, us, now, values, action clarity, and governance review.")
if mobilization_readiness(record) < 0.65:
notes.append("Mobilization readiness is limited; strengthen diagnosis, solution, resource support, coalition openness, tactical action, and feedback loops.")
if testimony_extraction_risk(record) >= 0.55:
notes.append("Testimony-extraction risk is elevated; review consent, emotional targeting, safety risk, reuse uncertainty, visibility risk, and agency.")
if public_voice_integrity(record) < 0.65:
notes.append("Public voice integrity is limited; strengthen voice plurality, affected-community authority, evidence visibility, coalition openness, digital context, and governance.")
if ai_public_narrative_risk(record) >= 0.55:
notes.append("AI public narrative risk is elevated; review summary dependence, omitted voices, context loss, bias reproduction, uncertainty erasure, and human review.")
if record.notes:
notes.append(record.notes)
return " ".join(notes)
def canvas_card(record: PublicNarrativeGovernanceRecord, config: PublicNarrativeGovernanceConfig) -> dict[str, Any]:
return {
"schema_version": "1.0.0",
"card_id": card_id(record, config),
"card_type": "public_narrative_governance",
"article_title": config.article_title,
"article_slug": config.article_slug,
"item": record.item,
"claim_context": record.claim_context,
"scores": {
"public_narrative_coherence": round(public_narrative_coherence(record), 4),
"mobilization_readiness": round(mobilization_readiness(record), 4),
"testimony_extraction_risk": round(testimony_extraction_risk(record), 4),
"public_voice_integrity": round(public_voice_integrity(record), 4),
"ai_public_narrative_risk": round(ai_public_narrative_risk(record), 4),
"governance_priority_score": round(governance_priority_score(record, config), 4),
},
"review": {
"priority": review_priority(record, config),
"owner": record.owner,
"status": record.status,
"governance_note": governance_note(record, config),
},
}
def write_csv(path: Path, rows: list[dict[str, Any]]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
fieldnames = list(rows[0].keys())
with path.open("w", encoding="utf-8", newline="") as handle:
writer = csv.DictWriter(handle, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows)
def write_json(path: Path, payload: Any) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(json.dumps(payload, indent=2), encoding="utf-8")
def write_markdown_queue(path: Path, rows: list[dict[str, Any]]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
lines = [
"# Public Narrative Governance Queue",
"",
"| Item | Context | Coherence | Mobilization | Testimony risk | AI risk | Priority | Owner |",
"|---|---|---:|---:|---:|---:|---|---|",
]
for row in rows:
lines.append(
f"| {row['item']} | {row['claim_context']} | "
f"{row['public_narrative_coherence']} | {row['mobilization_readiness']} | "
f"{row['testimony_extraction_risk']} | {row['ai_public_narrative_risk']} | "
f"{row['review_priority']} | {row['owner']} |"
)
path.write_text("\n".join(lines) + "\n", encoding="utf-8")
def main() -> None:
config = PublicNarrativeGovernanceConfig()
records = [
PublicNarrativeGovernanceRecord(
"Story of self us and now",
"public narrative coherence and action clarity audit",
0.84, 0.80, 0.76, 0.82, 0.72, 0.68,
0.74, 0.68, 0.62, 0.76, 0.70, 0.64,
0.34, 0.42, 0.38, 0.46, 0.40, 0.78,
0.82, 0.80, 0.76, 0.72,
0.40, 0.36, 0.42, 0.38, 0.46, 0.82,
0.86,
"editorial", "review",
"Strong structure; improve feedback loop and governance review before reuse."
),
PublicNarrativeGovernanceRecord(
"Movement testimony video",
"witness consent safety and narrative extraction audit",
0.70, 0.74, 0.78, 0.76, 0.68, 0.52,
0.72, 0.66, 0.56, 0.70, 0.64, 0.54,
0.68, 0.76, 0.72, 0.70, 0.78, 0.42,
0.66, 0.58, 0.70, 0.64,
0.54, 0.58, 0.62, 0.52, 0.60, 0.48,
0.92,
"ethics review", "revise",
"Escalate; testimony may be persuasive but requires consent, safety, reuse limits, and community authority."
),
PublicNarrativeGovernanceRecord(
"AI-generated campaign message",
"automated public narrative and omitted voice audit",
0.60, 0.52, 0.64, 0.66, 0.58, 0.36,
0.62, 0.54, 0.42, 0.44, 0.50, 0.34,
0.72, 0.78, 0.66, 0.74, 0.70, 0.30,
0.34, 0.28, 0.48, 0.38,
0.94, 0.88, 0.86, 0.82, 0.84, 0.28,
0.90,
"governance", "revise",
"Escalate; AI-generated campaign language may omit affected voices and produce false moral authority."
),
]
rows = []
cards = []
for record in records:
validate_record(record, config)
cards.append(canvas_card(record, config))
rows.append({
"item": record.item,
"claim_context": record.claim_context,
"public_narrative_coherence": round(public_narrative_coherence(record), 4),
"mobilization_readiness": round(mobilization_readiness(record), 4),
"testimony_extraction_risk": round(testimony_extraction_risk(record), 4),
"public_voice_integrity": round(public_voice_integrity(record), 4),
"ai_public_narrative_risk": round(ai_public_narrative_risk(record), 4),
"governance_priority_score": round(governance_priority_score(record, config), 4),
"review_priority": review_priority(record, config),
"owner": record.owner,
"status": record.status,
"governance_note": governance_note(record, config),
})
priority_order = {"high": 3, "medium": 2, "standard": 1}
rows = sorted(
rows,
key=lambda row: (
priority_order.get(str(row["review_priority"]), 0),
float(row["governance_priority_score"]),
),
reverse=True,
)
queue = [row for row in rows if row["review_priority"] != "standard"]
queue_cards = [card for card in cards if card["review"]["priority"] != "standard"]
write_csv(OUTPUTS / "tables" / "public_narrative_governance_audit.csv", rows)
write_csv(OUTPUTS / "tables" / "public_narrative_governance_queue.csv", queue)
write_json(OUTPUTS / "json" / "public_narrative_governance_canvas_cards.json", cards)
write_json(OUTPUTS / "json" / "public_narrative_governance_queue.json", queue_cards)
write_markdown_queue(OUTPUTS / "markdown" / "public_narrative_governance_queue.md", queue)
print("Public narrative governance audit complete.")
if __name__ == "__main__":
main()
This workflow helps identify when public narrative connects self, us, now, values, action, and accountability—and when it drifts into testimony extraction, vague mobilization, or automated moral voice.
R Workflow: Public Narrative and Mobilization Diagnostics
The R workflow below provides a portable base R diagnostic for public narrative coherence, mobilization readiness, testimony-extraction risk, public voice integrity, and AI public narrative risk.
# public_narrative_governance_diagnostics.R
# Base R workflow for Public Narrative and Social Change.
args <- commandArgs(trailingOnly = FALSE)
file_arg <- grep("^--file=", args, value = TRUE)
if (length(file_arg) > 0) {
script_path <- normalizePath(sub("^--file=", "", file_arg[1]), mustWork = TRUE)
article_root <- normalizePath(file.path(dirname(script_path), ".."), mustWork = TRUE)
} else {
article_root <- getwd()
}
setwd(article_root)
tables_dir <- file.path(article_root, "outputs", "tables")
figures_dir <- file.path(article_root, "outputs", "figures")
dir.create(tables_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(figures_dir, recursive = TRUE, showWarnings = FALSE)
records <- data.frame(
item = c(
"Story of self us and now",
"Movement testimony video",
"AI-generated campaign message"
),
claim_context = c(
"public narrative coherence and action clarity audit",
"witness consent safety and narrative extraction audit",
"automated public narrative and omitted voice audit"
),
self_clarity = c(0.84, 0.70, 0.60),
us_clarity = c(0.80, 0.74, 0.52),
now_clarity = c(0.76, 0.78, 0.64),
value_articulation = c(0.82, 0.76, 0.66),
action_clarity = c(0.72, 0.68, 0.58),
governance_review = c(0.68, 0.52, 0.36),
diagnostic_frame = c(0.74, 0.72, 0.62),
proposed_solution = c(0.68, 0.66, 0.54),
resource_support = c(0.62, 0.56, 0.42),
coalition_openness = c(0.76, 0.70, 0.44),
tactical_action = c(0.70, 0.64, 0.50),
feedback_loop = c(0.64, 0.54, 0.34),
consent_deficit = c(0.34, 0.68, 0.72),
emotional_targeting = c(0.42, 0.76, 0.78),
safety_risk = c(0.38, 0.72, 0.66),
reuse_uncertainty = c(0.46, 0.70, 0.74),
visibility_risk = c(0.40, 0.78, 0.70),
agency = c(0.78, 0.42, 0.30),
voice_plurality = c(0.82, 0.66, 0.34),
affected_community_authority = c(0.80, 0.58, 0.28),
evidence_visibility = c(0.76, 0.70, 0.48),
digital_context = c(0.72, 0.64, 0.38),
summary_dependence = c(0.40, 0.54, 0.94),
omitted_voices = c(0.36, 0.58, 0.88),
context_loss = c(0.42, 0.62, 0.86),
bias_reproduction = c(0.38, 0.52, 0.82),
uncertainty_erasure = c(0.46, 0.60, 0.84),
human_review = c(0.82, 0.48, 0.28),
public_consequence = c(0.86, 0.92, 0.90),
owner = c("editorial", "ethics review", "governance"),
status = c("review", "revise", "revise"),
stringsAsFactors = FALSE
)
records$public_narrative_coherence <- rowMeans(records[, c(
"self_clarity",
"us_clarity",
"now_clarity",
"value_articulation",
"action_clarity",
"governance_review"
)])
records$mobilization_readiness <- rowMeans(records[, c(
"diagnostic_frame",
"proposed_solution",
"resource_support",
"coalition_openness",
"tactical_action",
"feedback_loop"
)])
records$testimony_extraction_risk <- pmin(
1,
records$consent_deficit * 0.18 +
records$emotional_targeting * 0.18 +
records$safety_risk * 0.18 +
records$reuse_uncertainty * 0.16 +
records$visibility_risk * 0.16 +
(1 - records$agency) * 0.14
)
records$public_voice_integrity <- rowMeans(records[, c(
"voice_plurality",
"affected_community_authority",
"evidence_visibility",
"coalition_openness",
"digital_context",
"governance_review"
)])
records$ai_public_narrative_risk <- pmin(
1,
records$summary_dependence * 0.18 +
records$omitted_voices * 0.20 +
records$context_loss * 0.18 +
records$bias_reproduction * 0.16 +
records$uncertainty_erasure * 0.16 +
(1 - records$human_review) * 0.12
)
records$governance_priority_score <- pmin(
1,
records$testimony_extraction_risk * 0.22 +
records$ai_public_narrative_risk * 0.20 +
(1 - records$public_narrative_coherence) * 0.16 +
(1 - records$mobilization_readiness) * 0.14 +
(1 - records$public_voice_integrity) * 0.12 +
records$public_consequence * 0.16
)
records$review_priority <- ifelse(
records$status == "revise" | records$governance_priority_score >= 0.62,
"high",
ifelse(
records$status == "review" | records$governance_priority_score >= 0.45,
"medium",
"standard"
)
)
records <- records[order(records$governance_priority_score, decreasing = TRUE), ]
write.csv(records, file.path(tables_dir, "public_narrative_governance_diagnostics.csv"), row.names = FALSE)
write.csv(records[records$review_priority != "standard", ], file.path(tables_dir, "public_narrative_governance_queue.csv"), row.names = FALSE)
png(file.path(figures_dir, "public_narrative_coherence_scores.png"), width = 1200, height = 700)
barplot(
records$public_narrative_coherence,
names.arg = records$item,
las = 2,
ylab = "Public narrative coherence",
main = "Public Narrative Coherence"
)
grid()
dev.off()
png(file.path(figures_dir, "mobilization_readiness_scores.png"), width = 1200, height = 700)
barplot(
records$mobilization_readiness,
names.arg = records$item,
las = 2,
ylab = "Mobilization readiness",
main = "Mobilization Readiness"
)
grid()
dev.off()
print(records[, c(
"item",
"claim_context",
"public_narrative_coherence",
"mobilization_readiness",
"testimony_extraction_risk",
"ai_public_narrative_risk",
"review_priority"
)])
This workflow helps distinguish responsible public narrative from vague mobilization, testimony extraction, digital overreach, or AI-generated moral authority.
GitHub Repository
The companion repository for this article supports public narrative governance analysis as a Catalyst Canvas-ready module. It includes advanced additive `python/catalyst_canvas/` governance infrastructure, article-specific public-narrative data, config-driven scoring, validation, governance notes, Canvas card generation, CSV/JSON/markdown exporters, CLI workflows, smoke tests, unit tests, R diagnostics, SQL structures, documentation, and reusable public narrative review templates.
Complete Code Repository
Companion repository for the article, including advanced Catalyst Canvas-ready code for public narrative, social change, story of self/us/now, collective-action frames, testimony ethics, coalition storytelling, AI public narrative risk, JSON exports, Canvas cards, governance queues, and reproducible research workflows.
articles/public-narrative-and-social-change/
├── canvas/
│ ├── canvas_manifest.json
│ ├── input_schema.json
│ ├── output_schema.json
│ ├── catalyst_canvas_config.json
│ ├── catalyst_canvas_manifest.json
│ ├── catalyst_canvas_cards.json
│ └── catalyst_canvas_governance_queue.json
├── html/
├── css/
├── php/
├── java/
├── python/
│ ├── catalyst_canvas/
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ ├── cli.py
│ │ ├── models.py
│ │ ├── scoring.py
│ │ ├── validation.py
│ │ ├── governance.py
│ │ └── exporters.py
│ ├── public_narrative_governance_canvas/
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── scoring.py
│ │ ├── validation.py
│ │ ├── governance.py
│ │ └── exporters.py
│ ├── tests/
│ │ ├── test_catalyst_canvas.py
│ │ └── test_public_narrative_governance_canvas.py
│ ├── run_catalyst_canvas_audit.py
│ └── run_public_narrative_governance_audit.py
├── r/
│ ├── public_narrative_governance_diagnostics.R
│ └── run_all_public_narrative_governance_workflows.R
├── sql/
│ ├── canvas_schema.sql
│ └── canvas_queries.sql
├── docs/
│ ├── article_notes.md
│ ├── modeling_principles.md
│ ├── story_of_self_us_and_now.md
│ ├── public_narrative_and_collective_identity.md
│ ├── grievance_values_and_moral_urgency.md
│ ├── collective_action_frames.md
│ ├── testimony_and_witness.md
│ ├── counternarratives_and_contested_memory.md
│ ├── coalition_stories.md
│ ├── leadership_and_movement_narrative.md
│ ├── digital_public_narrative.md
│ ├── movement_memory_and_institutionalization.md
│ ├── ai_and_public_narrative.md
│ ├── ethical_risk.md
│ ├── responsible_use.md
│ ├── governance_notes.md
│ └── catalyst_canvas_upgrade_notes.md
├── data/
│ ├── public_narrative_governance_claims.csv
│ ├── public_narrative_coherence_notes.csv
│ ├── mobilization_readiness_notes.csv
│ ├── testimony_ethics_notes.csv
│ ├── ai_public_narrative_risk_notes.csv
│ └── catalyst_canvas_assessment.csv
├── outputs/
│ ├── figures/
│ ├── json/
│ ├── markdown/
│ └── tables/
├── notebooks/
├── shared/
│ ├── schemas/
│ ├── narrative-templates/
│ ├── story-archetypes/
│ ├── character-models/
│ ├── plot-structures/
│ ├── rhetorical-frameworks/
│ ├── cultural-memory/
│ ├── public-narrative-governance/
│ └── governance/
├── tests/
└── README.md
Related Articles
- Organizational Storytelling, Purpose, and Change
- Storytelling in Religion, Politics, and Public Life
- National Narratives and the Politics of Memory
- Law, Evidence, and Narrative Responsibility
- Rhetoric, Persuasion, and the Public Life of Story
- Storytelling and the Ethics of Representation
A Practical Method for Reading Public Narratives
1. Identify the speaker
Ask who is speaking, what authority they claim, and whether they speak from experience, leadership, institution, coalition, or generated text.
2. Identify the public
Ask who the story imagines as “us,” who is included, who is missing, and who is spoken for.
3. Identify the now
Ask what urgent challenge the story names and what evidence supports urgency.
4. Map the frame
Separate diagnosis, attribution, proposed solution, motivation, action, and hope.
5. Check testimony ethics
Review consent, context, safety, reuse, visibility risk, and agency.
6. Listen for counternarratives
Ask what dominant story is being challenged and whether the counterstory remains open to complexity.
7. Evaluate coalition capacity
Ask whether the story builds unity without erasing difference or unequal risk.
8. Connect narrative to strategy
Ask how the story’s requested action contributes to power, policy, institution-building, community care, or repair.
9. Audit digital circulation
Check platform incentives, context collapse, misinformation, harassment risk, and offline organizing connection.
10. Audit AI use
Check source grounding, omitted voices, generated-text disclosure, uncertainty, bias, consent, and human review.
The method treats public narrative as a responsibility-bearing practice, not only a tool for mobilization.
Common Pitfalls
Several pitfalls appear when public narrative is accepted too quickly.
- Testimony extraction: People’s lived experience is used for movement or campaign benefit without adequate consent, safety, or agency.
- Urgency without strategy: The story creates pressure but does not connect action to a credible change pathway.
- Identity simplification: The “we” becomes too narrow, too pure, or too intolerant of internal difference.
- Scapegoating: Accountability collapses into enemy-making.
- Hope without structure: The story inspires but does not identify resources, institutions, tactics, or feedback loops.
- Digital overreach: Visibility, likes, and sharing are mistaken for durable organization.
- Counterstory closure: A counternarrative challenges domination but becomes unable to hear complexity or critique.
- Coalition erasure: Unity language hides unequal risk, power, or sacrifice.
- AI moral voice: Generated language speaks as if it represents a public it has not actually heard.
- Symbolic closure: Storytelling replaces policy, repair, organizing, or institutional change.
The central pitfall is confusing emotional alignment with accountable collective action.
Why Public Narrative Must Remain Accountable
Public narrative is one of the most important storytelling practices in democratic, civic, community, and movement life. It helps people connect personal experience to shared values, shared memory, and shared action. It makes invisible harm visible. It helps communities move from isolation to agency.
But public narrative can also become dangerous when it is measured only by its ability to mobilize. A story can inspire and still distort. It can move people and still exploit testimony. It can build belonging and still exclude. It can create urgency and still lack strategy. It can circulate widely and still be shallow.
Responsible public narrative must remain accountable to the people whose stories it uses, the evidence it cites, the complexity it simplifies, the actions it requests, and the consequences it produces. It should not merely ask people to believe. It should help them act with more truth, care, courage, and responsibility.
Public narrative matters because social change is not only about winning attention. It is about building publics capable of remembering, judging, organizing, repairing, and acting together.
Further Reading
- Bennett, W.L. and Segerberg, A. (2013) The Logic of Connective Action: Digital Media and the Personalization of Contentious Politics. Cambridge: Cambridge University Press. Available at: https://www.cambridge.org/core/books/logic-of-connective-action/6B54DBBEAD1625C2778F8D80A17D58E1
- Benford, R.D. and Snow, D.A. (2000) ‘Framing Processes and Social Movements: An Overview and Assessment’, Annual Review of Sociology, 26, pp. 611–639. Available at: https://www.annualreviews.org/content/journals/10.1146/annurev.soc.26.1.611
- Ganz, M. (n.d.) ‘Public Narrative: Leadership, Storytelling, and Action’, Harvard Kennedy School Executive Education. Available at: https://www.hks.harvard.edu/educational-programs/executive-education/public-narrative-leadership-storytelling-and-action
- Ganz, M. (n.d.) ‘What Is Public Narrative: Self, Us and Now’. Leading Change Network. Available at: https://leadingchangenetwork.org/resource_center/what-is-public-narrative-self-us-and-now-public-narrative-worksheet-working-paper/
- Gamson, W.A. (1992) Talking Politics. Cambridge: Cambridge University Press. Available at: https://archive.org/details/talkingpolitics0000gams
- McAdam, D., McCarthy, J.D. and Zald, M.N. (eds) (1996) Comparative Perspectives on Social Movements: Political Opportunities, Mobilizing Structures, and Cultural Framings. Cambridge: Cambridge University Press.
- McCarthy, J.D. and Zald, M.N. (1977) ‘Resource Mobilization and Social Movements: A Partial Theory’, American Journal of Sociology, 82(6), pp. 1212–1241. Available at: https://www.journals.uchicago.edu/doi/abs/10.1086/226464
- Mendelsohn, J., Vijan, M., Card, D. and Budak, C. (2024) ‘Framing Social Movements on Social Media: Unpacking Diagnostic, Prognostic, and Motivational Strategies’. Available at: https://arxiv.org/abs/2406.13820
- Olson, M. (1971) The Logic of Collective Action: Public Goods and the Theory of Groups. Cambridge, MA: Harvard University Press. Available at: https://www.hup.harvard.edu/books/9780674537514
- Polletta, F. (2006) It Was Like a Fever: Storytelling in Protest and Politics. Chicago: University of Chicago Press. Available at: https://press.uchicago.edu/ucp/books/book/chicago/I/bo3750498.html
- Snow, D.A. (2019) ‘The Framing Perspective on Social Movements: Its Conceptual Roots and Architecture’. Available at: https://pure.uva.nl/ws/files/33640269/The_Framing_Perspective_on_Social_Movements_Its_Conceptual_Roots_and_Architecture.pdf
- Tarrow, S. (2011) Power in Movement: Social Movements and Contentious Politics. 3rd edn. Cambridge: Cambridge University Press.
- Tilly, C. (2004) Social Movements, 1768–2004. Boulder: Paradigm Publishers. Routledge edition available at: https://www.taylorfrancis.com/books/mono/10.4324/9781315632063/social-movements-1768-2004-charles-tilly
References
- Bennett, W.L. and Segerberg, A. (2013) The Logic of Connective Action: Digital Media and the Personalization of Contentious Politics. Cambridge: Cambridge University Press. Available at: https://www.cambridge.org/core/books/logic-of-connective-action/6B54DBBEAD1625C2778F8D80A17D58E1
- Benford, R.D. and Snow, D.A. (2000) ‘Framing Processes and Social Movements: An Overview and Assessment’, Annual Review of Sociology, 26, pp. 611–639. Available at: https://www.annualreviews.org/content/journals/10.1146/annurev.soc.26.1.611
- Ganz, M. (n.d.) ‘Public Narrative: Leadership, Storytelling, and Action’, Harvard Kennedy School Executive Education. Available at: https://www.hks.harvard.edu/educational-programs/executive-education/public-narrative-leadership-storytelling-and-action
- Ganz, M. (n.d.) ‘What Is Public Narrative: Self, Us and Now’. Leading Change Network. Available at: https://leadingchangenetwork.org/resource_center/what-is-public-narrative-self-us-and-now-public-narrative-worksheet-working-paper/
- Gamson, W.A. (1992) Talking Politics. Cambridge: Cambridge University Press. Available at: https://archive.org/details/talkingpolitics0000gams
- Kaviani, D. and Salehi, N. (2021) ‘Bridging Action Frames: Instagram Infographics in U.S. Ethnic Movements’. Available at: https://arxiv.org/abs/2111.00714
- McAdam, D., McCarthy, J.D. and Zald, M.N. (eds) (1996) Comparative Perspectives on Social Movements: Political Opportunities, Mobilizing Structures, and Cultural Framings. Cambridge: Cambridge University Press.
- McCarthy, J.D. and Zald, M.N. (1977) ‘Resource Mobilization and Social Movements: A Partial Theory’, American Journal of Sociology, 82(6), pp. 1212–1241. Available at: https://www.journals.uchicago.edu/doi/abs/10.1086/226464
- Mendelsohn, J., Vijan, M., Card, D. and Budak, C. (2024) ‘Framing Social Movements on Social Media: Unpacking Diagnostic, Prognostic, and Motivational Strategies’. Available at: https://arxiv.org/abs/2406.13820
- Olson, M. (1971) The Logic of Collective Action: Public Goods and the Theory of Groups. Cambridge, MA: Harvard University Press. Available at: https://www.hup.harvard.edu/books/9780674537514
- Polletta, F. (2006) It Was Like a Fever: Storytelling in Protest and Politics. Chicago: University of Chicago Press. Available at: https://press.uchicago.edu/ucp/books/book/chicago/I/bo3750498.html
- Snow, D.A. (2019) ‘The Framing Perspective on Social Movements: Its Conceptual Roots and Architecture’. Available at: https://pure.uva.nl/ws/files/33640269/The_Framing_Perspective_on_Social_Movements_Its_Conceptual_Roots_and_Architecture.pdf
- Tarrow, S. (2011) Power in Movement: Social Movements and Contentious Politics. 3rd edn. Cambridge: Cambridge University Press.
- Tilly, C. (2004) Social Movements, 1768–2004. Boulder: Paradigm Publishers. Routledge edition available at: https://www.taylorfrancis.com/books/mono/10.4324/9781315632063/social-movements-1768-2004-charles-tilly
