Agent skill

Webinar Marketing

by alirezarezvani in alirezarezvani/claude-skills

When the user wants to plan, promote, run, or improve a webinar or virtual event to generate and convert demand.

MITAuto-check passedMarketing & SEO

Install Webinar Marketing

skills CLI
$ npx skills add alirezarezvani/claude-skills --skill webinar-marketing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install alirezarezvani/claude-skills webinar-marketing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/marketing-skill/skills/webinar-marketing .claude/skills/webinar-marketing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
webinar-marketing
GitHub stars
28k
Token cost
~3.3k tokens
SKILL.md length
1,585 words
Files
7 (incl. scripts, references)
Skills in repo
342
Repo updated
First seen
Licence
MIT

At a glance

When the user wants to plan, promote, run, or improve a webinar or virtual event to generate and convert demand.

  • Works in 8 steps: The Event → The Audience & Goal → Reality Check → …
  • Improve a webinar
  • SKILL.md covers Before Starting, How This Skill Works, The Funnel Math (Plan Backward) and The Five Stages, plus 5 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Webinar Marketing is an agent skill from alirezarezvani/claude-skills. When the user wants to plan, promote, run, or improve a webinar or virtual event to generate and convert demand. Use when the user mentions 'webinar,' 'virtual event,' 'online event,' 'live demo,' 'virtual summit,' 'workshop,' 'masterclass,' 'fireside chat,' 'roundtable,' 'registration funnel,' 'show-up rate,' 'attendance rate,' 'webinar promotion,' 'webinar follow-up,' or 'on-demand webinar.' Also use when they have a webinar that isn't converting — low registrations, low show-up, or attendees who don't buy —…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `evals/evals.json`, `references/benchmarks.md` and `references/promotion-playbook.md`).

It sits in Marketing & SEO, covering Email marketing and Product launch strategy. The repository describes itself as: 380 Claude Code skills & agent skills & plugins (30+ Agents, 70+ custom commands, 380+ skills, customizable references, scripts)for Claude Code, Codex, Gemini CLI, Cursor, and 8… The licence is MIT.

When your agent uses it

  • Improve a webinar
  • Virtual event to generate and convert demand
  • The user mentions webinar
  • Registration funnel

Example prompts

  • “webinar,”
  • “virtual event,”
  • “online event,”
  • “/webinar-marketing”

Requirements

  • Python 3

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. The Event
  2. The Audience & Goal
  3. Reality Check
  4. Registration
  5. Show-Up
  6. Live Engagement
  7. Live-to-Close (The Transition)
  8. Follow-Up

What it can do on your machine

Read from SKILL.md and the folder at commit 19392f7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Webinar Marketing loads about 3.3k tokens when it runs, and up to ~6.3k if it reads all its reference files. Until then it costs about 230 tokens; SKILL.md has 1,585 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~230
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from alirezarezvani/claude-skills at commit 19392f7, republished under its MIT licence (© alirezarezvani). 1,585 words, ~3,253 tokens.

Download SKILL.mdSave it as .claude/skills/webinar-marketing/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
webinar-marketing
description
When the user wants to plan, promote, run, or improve a webinar or virtual event to generate and convert demand. Use when the user mentions 'webinar,' 'virtual event,' 'online event,' 'live demo,' 'virtual summit,' 'workshop,' 'masterclass,' 'fireside chat,' 'roundtable,' 'registration funnel,' 'show-up rate,' 'attendance rate,' 'webinar promotion,' 'webinar follow-up,' or 'on-demand webinar.' Also use when they have a webinar that isn't converting — low registrations, low show-up, or attendees who don't buy — and want to diagnose and fix it. Covers the full funnel: registration, promotion, show-up, live engagement, live-to-close, and post-event nurture. Distinct from launch-strategy (full product launches) and email-sequence (lifecycle nurture) — this is the end-to-end webinar/event motion. NOT for in-person field events logistics, and NOT for generic lifecycle email (use email-sequence).
license
MIT
metadata.version
1.0.0
metadata.author
Alireza Rezvani
metadata.category
marketing
metadata.updated
2026-06-01

Webinar & Virtual Event Marketing

You are an expert in webinar and virtual event marketing. Your goal is to help plan, promote, run, and optimize webinars that fill the room with the right people, keep them watching, and turn attention into pipeline — not a recorded talk that 40 people half-watch and nobody acts on.

A webinar is a funnel, not an event. Registrations are cheap; attention and action are not. Most of the value is won or lost in the parts people skip: the promotion runway, the show-up sequence, and the follow-up.

Before Starting

Check for context first: If .claude/product-marketing-context.md exists, read it before asking questions. Use it for brand voice, audience personas, and customer language, and only ask for what's specific to this event.

Gather this context (ask conversationally, one section at a time — don't dump every question at once):

1. The Event
  • What's the topic, and what's the single promise to the attendee? (What will they be able to do after?)
  • Format: live training, product demo, expert panel, customer story, fireside chat, multi-session summit?
  • Date, length, and platform (Zoom Webinars, Livestorm, Demio, Goldcast, etc.)?
  • Live, on-demand/evergreen, or live-then-evergreen?
2. The Audience & Goal
  • Who is this for? (Role, stage of awareness — cold prospects vs. existing pipeline vs. customers)
  • What's the business goal: net-new leads, pipeline acceleration, product adoption, retention/expansion, or brand/authority?
  • What's the conversion action after the webinar? (Book a demo, start a trial, upgrade, attend a follow-up call)
3. Reality Check
  • How big is the reachable list / audience, and what channels can promote it? (Email list, paid, partners, social, sales)
  • How long is the runway before the event date?
  • Is there budget for paid promotion, or is this organic-only?

How This Skill Works

This skill supports three modes.

Mode 1: Plan From Scratch

When there's no webinar yet — design the whole motion.

  1. Lock the promise and pick the format that fits the goal (see references/webinar-formats.md)
  2. Map the funnel targets backward from the business goal (see funnel math below)
  3. Build the promotion plan across the runway (see references/promotion-playbook.md)
  4. Design the show-up sequence and the live-to-close moment
  5. Plan the segmented follow-up for attendees vs. no-shows
  6. Deliver: a full webinar plan (use templates/webinar-plan-template.md), promo calendar, and email/copy drafts
Mode 2: Optimize / Rescue

When a webinar exists or recently ran and the numbers disappoint. Diagnose where the funnel breaks before rewriting anything.

  1. Get the actual numbers: invited → registered → showed up → engaged → converted

  2. Score the funnel with scripts/webinar_funnel_scorer.py to find the weakest stage:

    bash
    # Score a funnel from a JSON file (registrations + attended_live required;
    # page_visits, cta_clicks, conversions, audience, runtime_min, avg_watch_min optional)
    python3 scripts/webinar_funnel_scorer.py funnel.json
    
    # Or pipe JSON via stdin
    cat funnel.json | python3 scripts/webinar_funnel_scorer.py -
    
    # Demo mode on embedded sample data
    python3 scripts/webinar_funnel_scorer.py --sample

    Output: a 0-100 scorecard per stage against audience-temperature benchmarks (customers / warm / owned_cold / paid_cold), the bottleneck stage flagged, plus a JSON block for downstream use.

  3. Fix the stage that's actually broken — don't rewrite the landing page when the problem is show-up rate

  4. Deliver: diagnosis (where it breaks + why) + targeted fixes ranked by impact

Mode 3: Evergreen / On-Demand

When turning a one-time webinar into an always-on lead engine.

  1. Identify the segment of the webinar with the strongest live-to-close moment
  2. Set up the on-demand registration → watch → follow-up automation
  3. Decide live vs. "just-in-time" simulated-live framing (be honest with the audience — fake-live that's obviously fake erodes trust)
  4. Deliver: evergreen funnel map + automated follow-up sequence

The Funnel Math (Plan Backward)

Always size the webinar from the business goal backward, using realistic conversion rates. This stops people from celebrating 800 registrations and ignoring that 6 people bought.

Business goal:        20 sales-qualified opportunities
÷ attendee→SQO rate   (~10%)         → need 200 engaged attendees
÷ register→attend     (~35% live)    → need ~570 registrations
÷ landing-page CVR     (~40%)        → need ~1,425 landing-page visits
→ promotion plan must drive ~1,425 qualified visits

If the math says you need 5,000 visits and your list is 2,000 people, the plan is broken before it starts — fix the goal, the format, or the promotion budget now, not after. See references/benchmarks.md for stage-by-stage benchmarks by audience type.


The Five Stages

1. Registration

The landing page has one job: make the value obvious and registering frictionless.

  • Lead with the outcome and the takeaway, not the agenda. "Leave with a 90-day pipeline plan" beats "Join us to learn about pipeline."
  • Name and face of the host/speaker — people register for people.
  • Ask for the minimum fields you'll actually use. Every extra field costs registrations.
  • Show the date/time in the visitor's timezone, and make the time commitment explicit.
  • If B2B and gating matters, you can ask for company/role — but know it lowers CVR.
2. Show-Up

This is where most webinars quietly fail. A registration is a promise people forget. The show-up sequence is non-negotiable.

  • Confirmation email immediately, with a one-click calendar add (this alone lifts attendance materially).
  • Reminders: 1 week, 1 day, 1 hour, and "we're live now." The 1-hour and live reminders drive the most attendance.
  • Give a reason to show up live vs. watch the recording: live Q&A, a live-only resource, a giveaway, or a tool they build during the session.
  • Pre-event engagement (a question, a poll, a "what do you want covered?") increases commitment.
3. Live Engagement

Attention is the currency. Every 10 minutes without interaction, you lose people.

  • Hook in the first 2-3 minutes: state the promise and the agenda, then deliver a quick win fast.
  • Interaction every 5-10 minutes: polls, chat prompts, Q&A, live examples.
  • Teach something genuinely useful even if no one buys — earned trust converts later.
  • Watch the drop-off curve; the point where people leave tells you where the content sags.
4. Live-to-Close (The Transition)

The pitch is a moment, not the whole webinar. Done right it feels like a natural next step, not a bait-and-switch.

  • Earn the right first: deliver real value before any offer.
  • Transition explicitly and confidently: "Here's how to go further / do this with us."
  • Make the offer time-bound to the event (attendee-only bonus, deadline) to create a reason to act now.
  • One clear CTA. Repeat it; don't bury it.
Show full SKILL.md (651 more words)Show less
5. Follow-Up

The follow-up converts more than the live event for most B2B webinars. Segment it.

SegmentMessage
Attended + engaged with offerStrike now — direct path to the CTA, attendee bonus, easy booking
Attended, no actionRecap + the one key takeaway + soft CTA
Registered, no-show"Sorry we missed you" + recording + same offer (this segment is often the biggest)
Watched recording laterRecap + CTA matched to on-demand intent

Send the recording within 24 hours while it's fresh. See references/promotion-playbook.md for the full follow-up sequence.


What to Avoid

❌ AvoidWhy It Fails
Promoting the topic instead of the takeawayPeople register for outcomes, not agendas
One reminder emailShow-up rate craters; you need a sequence, not a nudge
No reason to attend liveEveryone "watches the recording later" (they don't)
45 minutes of teaching, then a hard pitch with no transitionFeels like a bait-and-switch; tanks trust and conversion
Treating no-shows as lostNo-shows are often your largest convertible segment
Optimizing registrations as the headline metric800 regs and 6 buyers is a failure dressed as a win
Sending the recording a week laterIntent has evaporated; send within 24h
Asking for 8 form fieldsEvery field beyond the essentials costs registrations

Proactive Triggers

Surface these without being asked when you see them:

  • Show-up sequence has fewer than 3 reminders → attendance will suffer. Flag and propose the full 1-week/1-day/1-hour/live cadence.
  • No live-only incentive → registrations will watch "later" and never convert. Recommend a live Q&A, attendee bonus, or build-along.
  • Registration page leads with agenda/logistics → reframe around the attendee outcome and takeaway.
  • No follow-up plan for no-shows → flag that the largest convertible segment is being ignored.
  • Funnel goal implies more traffic than the reachable audience can supply → the plan is mathematically broken; flag before execution and adjust goal/format/budget.
  • The offer/CTA appears with no value delivered first → it will read as a bait-and-switch; recommend earning the transition.
  • Webinar length over ~60 min for a cold audience → drop-off risk; recommend tightening or splitting.

Output Artifacts

When you ask for...You get...
Plan a webinarFull webinar plan: promise, format, funnel targets (backward math), promotion calendar, show-up sequence, live structure, and follow-up plan
Promote my webinarChannel-by-channel promotion calendar across the runway + ready-to-send invite, reminder, and social copy
Fix my low attendanceShow-up diagnosis + a complete reminder sequence with timing and copy
Why isn't it converting?Funnel diagnosis (stage-by-stage with the weakest link identified) + ranked fixes
Write the follow-upSegmented post-event sequence (engaged / attended / no-show / on-demand) with copy
Score my funnel0-100 funnel scorecard from your numbers (via scripts/webinar_funnel_scorer.py) with the bottleneck stage called out

Communication

All output follows the structured communication standard:

  • Bottom line first — answer before explanation
  • What + Why + How — every finding has all three
  • Actions have owners and deadlines — no "we should consider"
  • Confidence tagging — 🟢 verified / 🟡 medium / 🔴 assumed

For webinar numbers, always tag whether a conversion rate is measured from their data (🟢) or an industry benchmark assumption (🟡), so they know what's real vs. estimated.


  • launch-strategy: For full product/feature launches where a webinar is one tactic among many. Use webinar-marketing for the webinar motion itself; use launch-strategy for the broader launch plan.
  • email-sequence: For lifecycle and nurture emails to opted-in subscribers. The webinar follow-up borrows its mechanics, but the show-up and follow-up sequences here are event-specific. Use email-sequence for ongoing drips, not event flows.
  • paid-ads: For paid registration-driving campaigns. Use it to build the promotion traffic this skill's funnel math calls for. NOT for the funnel design itself.
  • page-cro: For optimizing the registration landing page conversion rate specifically. Pair it with this skill when the bottleneck is landing-page CVR.
  • content-creator: For producing the on-demand assets, recap posts, and clips that extend a webinar's life. Good follow-up reuses webinar content.
  • campaign-analytics: For measuring webinar performance against pipeline and revenue. Use it to close the loop on whether the webinar actually drove business outcomes.
  • social-content: For the organic social promotion of the event across the runway.

© alirezarezvani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references) in marketing-skill/skills/webinar-marketing of alirezarezvani/claude-skills.

  • SKILL.md
  • evals/evals.json
  • references/benchmarks.md
  • references/promotion-playbook.md
  • references/webinar-formats.md
  • scripts/webinar_funnel_scorer.py
  • templates/webinar-plan-template.md

Open the folder on GitHubat commit 19392f7

Compare with similar skills

Webinar Marketing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Webinar Marketing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Webinar Marketing this skillalirezarezvani/claude-skills28k—~3.3kAutomated safety check: PassMIT
Eventscoreyhaines31/marketingskills54k—~3kAutomated safety check: PassMIT
Marketing Campaignaffaan-m/ECC276k1 repos~1.3kAutomated safety check: PassMIT
Email Marketingsanqiufong/slides-from-anything1321 repos~861Automated safety check: PassApache-2.0
Memstack Marketing Webinar Scriptcwinvestments/memstack423—~3kAutomated safety check: PassProprietary
Campaign And Launch Planningsocial-media-skills/skills134—~1.7kAutomated safety check: PassMIT

Similar skills

  • Events

    coreyhaines31/marketingskills

    When the user wants to plan, run, sponsor, speak at, or get pipeline from events — webinars, conferences, trade shows, meetups, dinners, workshops, virtual summits, or user conferences.

    54k GitHub stars~3k tokensUpdated 2 days ago
    Marketing & SEOAuto-check passed
  • Marketing Campaign

    affaan-m/ECC

    End-to-end marketing campaign planning and execution. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 1 repo~1.3k tokens
    Marketing & SEOAuto-check passed
  • Email Marketing

    sanqiufong/slides-from-anything

    A brand product-launch email — masthead with wordmark, hero image block, headline lockup with skewed-italic accent, body copy, primary CTA, and a specifications grid.

    132 GitHub starsUsed in 1 repo~861 tokens
    Marketing & SEOAuto-check passed
  • Memstack Marketing Webinar Script

    cwinvestments/memstack

    A skill your agent uses when the user says 'webinar script', 'webinar', 'live presentation', 'teach-to-sell', or needs a timestamped presentation script with slide notes, presenter cues, and replay…

    423 GitHub stars~3k tokensUpdated 14 days ago
    Marketing & SEOAuto-check passed
  • Campaign And Launch Planning

    social-media-skills/skills

    Plan and orchestrate a product launch or social media campaign end to end — the multi-week arc, channel by channel.

    134 GitHub stars~1.7k tokensUpdated 9 days ago
    Marketing & SEOAuto-check passed
  • Email Campaign

    mohitagw15856/pm-claude-skills

    Write and sequence multi-email nurture or launch campaigns. An agent skill from mohitagw15856/pm-claude-skills.

    1.4k GitHub stars~1k tokensUpdated yesterday
    Marketing & SEOAuto-check passed

More from alirezarezvani/claude-skills

All 342 skills in this repo
  • Agile Product Owner

    alirezarezvani/claude-skills

    Writes INVEST-checked user stories with acceptance criteria, splits epics, plans sprints from velocity and ranks the backlog with a weighted score.

    28k GitHub starsUsed in 3 repos~3.2k tokens
    Auto-check passed
  • Product Strategist

    alirezarezvani/claude-skills

    OKR cascade toolkit for product leaders: generates aligned company-to-team OKRs from five strategy types and scores how well they line up.

    28k GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • App Store Optimization

    alirezarezvani/claude-skills

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store.

    28k GitHub starsUsed in 1 repo~4.2k tokens
    Auto-check passed
  • AWS Solution Architect

    alirezarezvani/claude-skills

    Design AWS architectures for startups using serverless patterns and IaC templates.

    28k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Campaign Analytics

    alirezarezvani/claude-skills

    Calculates attribution, funnel and ROI figures for marketing campaigns with three Python scripts that need only the standard library.

    28k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Code to PRD

    alirezarezvani/claude-skills

    Reverse-engineers a frontend, backend or fullstack codebase into a product requirements document with per-page docs, an enum dictionary and an API inventory.

    28k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed

Categories

Questions about Webinar Marketing

What does Webinar Marketing do?

When the user wants to plan, promote, run, or improve a webinar or virtual event to generate and convert demand. Webinar Marketing is an agent skill from alirezarezvani/claude-skills. When the user wants to plan, promote, run, or improve a webinar or virtual event to generate and convert demand.

When should I use Webinar Marketing?

Webinar Marketing fits situations like: improve a webinar; virtual event to generate and convert demand; the user mentions webinar; registration funnel.

How do I install Webinar Marketing in Claude Code?

Run `npx skills add alirezarezvani/claude-skills --skill webinar-marketing -a claude-code`. Or copy the skill folder (marketing-skill/skills/webinar-marketing in alirezarezvani/claude-skills) into .claude/skills/webinar-marketing in your project. Claude Code loads it when a task matches its description.

How do I install Webinar Marketing in Codex?

Run `npx skills add alirezarezvani/claude-skills --skill webinar-marketing -a codex`. Or copy the skill folder (marketing-skill/skills/webinar-marketing in alirezarezvani/claude-skills) into .agents/skills/webinar-marketing in your project. Codex loads it when a task matches its description.

Can I use Webinar Marketing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alirezarezvani/claude-skills --skill webinar-marketing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/webinar-marketing, .gemini/skills/webinar-marketing, .github/skills/webinar-marketing and .opencode/skills/webinar-marketing in your project.

What does Webinar Marketing need to run?

Going by SKILL.md and its folder, Webinar Marketing needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Webinar Marketing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Webinar Marketing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Webinar Marketing use?

Webinar Marketing is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Webinar Marketing use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.

What are the alternatives to Webinar Marketing?

Skills that share tags, products or a category with Webinar Marketing: Events (coreyhaines31/marketingskills, 54k stars), Marketing Campaign (affaan-m/ECC, 276k stars), Email Marketing (sanqiufong/slides-from-anything, 132 stars) and Memstack Marketing Webinar Script (cwinvestments/memstack, 423 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Webinar Marketing?

alirezarezvani (a GitHub user) maintains it in alirezarezvani/claude-skills, which has 27,938 GitHub stars. The repository holds 342 skills in this directory. The repository was last updated on August 30, 2026.

Source: alirezarezvani/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.