List Segment Builder
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "build email segments from my list", "make engaged / lapsed / RFM segments", "set up cart-abandoner or lifecycle-stage audiences", or "build a…
E-commerce SEO analysis: Google Shopping visibility, Amazon marketplace intelligence, product schema validation, competitor pricing analysis, and marketplace keyword gaps.
$ npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgriciDaniel/codex-seo seo-ecommerce --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgriciDaniel/codex-seo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-ecommerce .claude/skills/seo-ecommerce && rm -rf skills-srcUse ~/.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/
Install the "seo-ecommerce" agent skill from https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerce into .claude/skills/seo-ecommerce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-ecommerce", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgriciDaniel/codex-seo seo-ecommerce --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/codex-seo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/seo-ecommerce .agents/skills/seo-ecommerce && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "seo-ecommerce" agent skill from https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerce into .agents/skills/seo-ecommerce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-ecommerce", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgriciDaniel/codex-seo seo-ecommerce --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/codex-seo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/seo-ecommerce .cursor/skills/seo-ecommerce && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "seo-ecommerce" agent skill from https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerce into .cursor/skills/seo-ecommerce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-ecommerce", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgriciDaniel/codex-seo.git --path skills/seo-ecommerce--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgriciDaniel/codex-seo seo-ecommerce --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/codex-seo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/seo-ecommerce .gemini/skills/seo-ecommerce && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "seo-ecommerce" agent skill from https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerce into .gemini/skills/seo-ecommerce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-ecommerce", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgriciDaniel/codex-seo seo-ecommerceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgriciDaniel/codex-seo.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/seo-ecommerce .github/skills/seo-ecommerce && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "seo-ecommerce" agent skill from https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerce into .github/skills/seo-ecommerce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-ecommerce", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgriciDaniel/codex-seo seo-ecommerce --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/codex-seo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/seo-ecommerce .opencode/skills/seo-ecommerce && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "seo-ecommerce" agent skill from https://github.com/AgriciDaniel/codex-seo/tree/main/skills/seo-ecommerce into .opencode/skills/seo-ecommerce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-ecommerce", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
seo-ecommerceE-commerce SEO analysis: Google Shopping visibility, Amazon marketplace intelligence, product schema validation, competitor pricing analysis, and marketplace keyword gaps.
SEO Ecommerce is an agent skill from AgriciDaniel/codex-seo. E-commerce SEO analysis: Google Shopping visibility, Amazon marketplace intelligence, product schema validation, competitor pricing analysis, and marketplace keyword gaps. Combines on-page product SEO with marketplace data from DataForSEO Merchant API. Use when user says "ecommerce SEO", "product SEO", "Google Shopping", "marketplace SEO", "product schema", "Amazon SEO", "product listings", "shopping ads", or "merchant SEO".
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/marketplace-endpoints.md`). Compatibility notes: Enhanced with DataForSEO Merchant API (optional)
It sits in Sales & Support, covering E-commerce operations. The repository describes itself as: Codex-first SEO skill suite. 26 workflows, 24 TOML agents, DataForSEO/Gemini/Google/Firecrawl integrations, GEO/AEO, CWV, schema, backlinks, local/maps, and deterministic reports. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9a644f6. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
schema.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Enhanced with DataForSEO Merchant API (optional)
From compatibility in the SKILL.md frontmatter.
SEO Ecommerce loads about 3k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 111 tokens; SKILL.md has 1,008 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from AgriciDaniel/codex-seo at commit 9a644f6, republished under its MIT licence (© AgriciDaniel). 1,008 words, ~2,990 tokens.
.claude/skills/seo-ecommerce/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Step 0 -- Check shared data cache:
Before gathering, check .seo-cache/ for reusable context from related SEO skills.
Reference: ../seo/references/shared-data-cache.md for schemas and dependency map.
Check these cache files when present:
.seo-cache/site-meta.json for domain, business type, industry, and crawl context
.seo-cache/audit-scores.json for prior full-audit priorities
.seo-cache/pages/{url-slug}/page-analysis.json for page-level context when a URL is provided
If found: parse and use clearly valid fields (note "Using cached [X] from [date]")
If missing, corrupt, or irrelevant: continue with fresh evidence
If the user says "refresh" or "re-run": ignore cache reads and overwrite on write
Comprehensive product page optimization, marketplace intelligence, and competitive pricing analysis. Works standalone (on-page + schema) and with DataForSEO Merchant API for live Google Shopping and Amazon data.
| Command | Purpose | DataForSEO? |
|---|---|---|
/seo ecommerce <url> | Full e-commerce SEO analysis of a product page or store | Optional |
/seo ecommerce products <keyword> | Google Shopping competitive analysis | Required |
/seo ecommerce gaps <domain> | Keyword gap: organic vs Shopping visibility | Required |
/seo ecommerce schema <url> | Product schema validation and enhancement | No |
Fetch and parse any product page for on-page SEO quality.
1. python scripts/fetch_page.py <url> → raw HTML
2. python scripts/parse_html.py --url <url> → SEO elements
3. Analyze product-specific signals (below)[Product Name] - [Key Feature] | [Brand]IMG_001.jpg)| Category | Weight | Criteria |
|---|---|---|
| Schema completeness | 25% | Required + recommended Product fields |
| Title & meta | 15% | Keyword placement, length, format |
| Image optimization | 20% | Alt text, format, sizing, count |
| Content quality | 20% | Unique description, specs, reviews |
| Internal linking | 10% | Breadcrumbs, related products, categories |
| Technical | 10% | Page speed, mobile rendering, canonical |
Live competitive analysis from Google Shopping results.
Before EVERY Merchant API call:
python scripts/dataforseo_costs.py check merchant_google_products_search"status": "approved" -- proceed"status": "needs_approval" -- show cost, ask user"status": "blocked" -- stop, inform userAfter each call:
python scripts/dataforseo_costs.py log merchant_google_products_search <cost># Product search: who sells what at what price
python scripts/dataforseo_merchant.py search "<keyword>" --marketplace google
# Seller analysis: merchant ratings and dominance
python scripts/dataforseo_merchant.py sellers "<keyword>"
# Normalize results for analysis
python scripts/dataforseo_normalize.py results.json --module merchantLoad references/marketplace-endpoints.md for full API parameter details.
Cross-marketplace intelligence comparing Google Shopping and Amazon.
python scripts/dataforseo_costs.py check merchant_amazon_products_searchAmazon endpoints are in the warn_endpoints set -- always requires user approval.
# Amazon product search
python scripts/dataforseo_merchant.py search "<keyword>" --marketplace amazon
# Cross-marketplace comparison
python scripts/dataforseo_merchant.py compare "<keyword>"| Metric | Google Shopping | Amazon |
|---|---|---|
| Avg price | $ | $ |
| Median rating | X.X | X.X |
| Avg review count | N | N |
| Top seller share | % | % |
| Free shipping % | % | % |
Identify mismatches between organic and Shopping visibility.
dataforseo_labs_google_ranked_keywords for domainmerchant_google_products_search for top organic keywords| Gap Type | Meaning | Action |
|---|---|---|
| Organic Only | Ranks organically but no Shopping ads | Create Google Merchant Center feed, bid on these keywords |
| Shopping Only | Shopping visibility but weak/no organic | Create content (buying guides, comparison pages) for these keywords |
| Both Present | Visible in both channels | Optimize: ensure price consistency, enhance schema |
| Neither | No visibility in either | Low priority unless high volume |
## Keyword Gap Analysis: example.com
### Opportunities: Organic → Shopping (12 keywords)
| Keyword | Organic Pos | Volume | CPC | Recommended Action |
|---------|------------|--------|-----|-------------------|
### Opportunities: Shopping → Organic (8 keywords)
| Keyword | Shopping Rank | Volume | CPC | Content Type Needed |
|---------|-------------|--------|-----|-------------------|Validate and generate Product schema following Google's current requirements.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "",
"image": [""],
"description": "",
"brand": { "@type": "Brand", "name": "" },
"offers": {
"@type": "Offer",
"url": "",
"priceCurrency": "USD",
"price": "0.00",
"availability": "https://schema.org/InStock",
"seller": { "@type": "Organization", "name": "" }
}
}sku -- product identifiergtin13 / gtin14 / mpn -- global trade identifiersaggregateRating -- star rating + review countreview -- individual reviews (minimum 1)color, material, size -- variant attributesshippingDetails -- ShippingDetails with rate and delivery timehasMerchantReturnPolicy -- MerchantReturnPolicy with type and daysprice must be a number string, not "$29.99" (no currency symbol)availability must use full Schema.org URL enumimage should be array with >= 1 high-res image URLpriceCurrency must be ISO 4217 (USD, EUR, GBP)brand.name must not be empty or "N/A"priceValidUntil must be ISO 8601aggregateRating present: ratingValue and reviewCount required| Completeness | Score |
|---|---|
| All required fields | 50/100 |
| + aggregateRating | 65/100 |
| + sku/gtin/mpn | 75/100 |
| + shippingDetails | 85/100 |
| + merchantReturnPolicy | 90/100 |
| + reviews (3+) | 100/100 |
| Skill | Integration Point |
|---|---|
| seo-schema | Delegates Product schema generation; reuses validation logic |
| seo-images | Product image audit (alt text, format, dimensions) |
| seo-content | Product description E-E-A-T and uniqueness analysis |
| seo-dataforseo | Organic keyword rankings for gap analysis |
| seo-technical | Core Web Vitals for product pages (LCP on hero image) |
| seo-google | Google Merchant Center feed validation via GSC |
| Error | Cause | Response |
|---|---|---|
| No Product schema found | Page lacks JSON-LD | Analyze page content, generate recommended schema |
| DataForSEO credentials missing | Env vars not set | Run analysis without marketplace data, note limitation |
| Cost check blocked | Daily budget exceeded | Inform user, offer free-only analysis |
| Empty Shopping results | No products for keyword | Suggest broader keyword, check location settings |
| Amazon API timeout | Network/rate limit | Retry with backoff, fall back to Google-only |
| Invalid URL | Malformed input | Validate via google_auth.validate_url(), show error |
| Non-product page | URL is category/homepage | Detect page type, suggest /seo ecommerce schema instead |
## E-commerce SEO Report: [URL or Keyword]
### Overall Score: XX/100
### Product Page SEO
- Schema Completeness: XX/100
- Title & Meta: XX/100
- Image Optimization: XX/100
- Content Quality: XX/100
- Internal Linking: XX/100
### Marketplace Intelligence (if DataForSEO available)
- Google Shopping Listings: N products found
- Price Range: $XX - $XX (median: $XX)
- Top Seller: [name] (XX% market share)
- Amazon Comparison: [available/not checked]
### Top Recommendations
1. [Critical] ...
2. [High] ...
3. [Medium] ...
Generate a PDF report? Use `/seo google report`After completing all work, write a concise JSON summary to .seo-cache/ when the workflow produced durable findings.
Use the schemas and naming rules in ../seo/references/shared-data-cache.md; include at least cache_type, analyzed_at, source URL/domain, key findings, issues, recommendations, and tool limitations. Add .seo-cache/ to .gitignore if it is missing.
© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/seo-ecommerce of AgriciDaniel/codex-seo.
Open the folder on GitHubat commit 9a644f6
We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in AgriciDaniel/codex-seo, which our catalogue first saw on October 7, 2026.
SEO Ecommerce 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| SEO Ecommerce this skillAgriciDaniel/codex-seo | 799 | 2 repos | ~3k | Automated safety check: Pass | MIT | |
| List Segment Builderaaron-he-zhu/aaron-marketing-skills | 2.9k | 2 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Trust Signalsthedaviddias/Front-End-Checklist | 74k | — | ~619 | Automated safety check: Pass | MIT | |
| Amazon Seller Analyticsnexscope-ai/Amazon-Skills | 744 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Domain ResearchOpenClaudia/openclaudia-skills | 713 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Brand Packagingarnabbagxd/Brand-building-skills | 729 | — | ~2k | Automated safety check: Pass | MIT |
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "build email segments from my list", "make engaged / lapsed / RFM segments", "set up cart-abandoner or lifecycle-stage audiences", or "build a…
thedaviddias/Front-End-Checklist
A skill your agent uses when applies especially to e-commerce checkouts, contact/lead forms, pricing pages, and YMYL (Your Money or Your Life) content.
nexscope-ai/Amazon-Skills
Seller storefront analysis and competitive intelligence for Amazon.
OpenClaudia/openclaudia-skills
Research domain WHOIS data and check marketplace listings. An agent skill from OpenClaudia/openclaudia-skills.
arnabbagxd/Brand-building-skills
Create a packaging design brief — structure, visual direction, hierarchy, materials, and unboxing experience.
minhnv0807/ai-business-skills
A skill your agent uses when a price has to be set or changed — value-based pricing, anchoring, charm pricing, decoy tiers, good-better-best packaging, discount policy, and margin math, with…
AgriciDaniel/codex-seo
Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, and GA4 organic traffic.
AgriciDaniel/codex-seo
Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.
AgriciDaniel/codex-seo
Search Experience Optimization: reads Google SERPs backwards to detect page-type mismatches, derives user stories from search intent signals, and scores pages from multiple persona perspectives.
AgriciDaniel/codex-seo
Deep single-page SEO analysis covering on-page elements, content quality, technical meta tags, schema, images, and performance.
AgriciDaniel/codex-seo
Detect, validate, and generate Schema.org structured data. An agent skill from AgriciDaniel/codex-seo.
AgriciDaniel/codex-seo
SEO drift monitoring: capture baselines of SEO-critical elements, detect changes, and track regressions over time.
Categories
E-commerce SEO analysis: Google Shopping visibility, Amazon marketplace intelligence, product schema validation, competitor pricing analysis, and marketplace keyword gaps. SEO Ecommerce is an agent skill from AgriciDaniel/codex-seo. E-commerce SEO analysis: Google Shopping visibility, Amazon marketplace intelligence, product schema validation, competitor pricing analysis, and marketplace keyword gaps.
SEO Ecommerce fits situations like: user says ecommerce SEO; google Shopping; marketplace SEO; product listings.
Run `npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a claude-code`. Or copy the skill folder (skills/seo-ecommerce in AgriciDaniel/codex-seo) into .claude/skills/seo-ecommerce in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a codex`. Or copy the skill folder (skills/seo-ecommerce in AgriciDaniel/codex-seo) into .agents/skills/seo-ecommerce in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/codex-seo --skill seo-ecommerce -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-ecommerce, .gemini/skills/seo-ecommerce, .github/skills/seo-ecommerce and .opencode/skills/seo-ecommerce in your project.
Going by SKILL.md and its folder, SEO Ecommerce needs the command-line tools its instructions call (python). Our summary lists: Python 3. Compatibility (from SKILL.md): Enhanced with DataForSEO Merchant API (optional).
SKILL.md names 1 domain. In commands or code: schema.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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. Review the folder before installing.
SEO Ecommerce is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k 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 951 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with SEO Ecommerce: List Segment Builder (aaron-he-zhu/aaron-marketing-skills, 2.9k stars), Trust Signals (thedaviddias/Front-End-Checklist, 74k stars), Amazon Seller Analytics (nexscope-ai/Amazon-Skills, 744 stars) and Domain Research (OpenClaudia/openclaudia-skills, 713 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/codex-seo, which has 799 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on September 11, 2026.
Source: AgriciDaniel/codex-seo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.