From 31afed5b5d798d6c6113849fb9107ed12848abd5 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Sun, 5 Apr 2026 15:46:01 -0700 Subject: [PATCH] feat: add SEO audit support --- AGENTS.md | 6 +- README.md | 10 +-- README.zh-CN.md | 2 +- WORKING-CONTEXT.md | 3 +- agents/seo-specialist.md | 62 +++++++++++++ docs/zh-CN/AGENTS.md | 6 +- docs/zh-CN/README.md | 10 +-- manifests/install-modules.json | 1 + skills/seo/SKILL.md | 154 +++++++++++++++++++++++++++++++++ 9 files changed, 236 insertions(+), 18 deletions(-) create mode 100644 agents/seo-specialist.md create mode 100644 skills/seo/SKILL.md diff --git a/AGENTS.md b/AGENTS.md index c172b577..545f8737 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — Agent Instructions -This is a **production-ready AI coding plugin** providing 38 specialized agents, 162 skills, 72 commands, and automated hook workflows for software development. +This is a **production-ready AI coding plugin** providing 39 specialized agents, 163 skills, 72 commands, and automated hook workflows for software development. **Version:** 1.10.0 @@ -145,8 +145,8 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat ## Project Structure ``` -agents/ — 38 specialized subagents -skills/ — 162 workflow skills and domain knowledge +agents/ — 39 specialized subagents +skills/ — 163 workflow skills and domain knowledge commands/ — 72 slash commands hooks/ — Trigger-based automations rules/ — Always-follow guidelines (common + per-language) diff --git a/README.md b/README.md index e54808e6..e5a98943 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,7 @@ For manual install instructions see the README in the `rules/` folder. When copy /plugin list ecc@ecc ``` -**That's it!** You now have access to 38 agents, 162 skills, and 72 legacy command shims. +**That's it!** You now have access to 39 agents, 163 skills, and 72 legacy command shims. ### Multi-model commands require additional setup @@ -1152,9 +1152,9 @@ The configuration is automatically detected from `.opencode/opencode.json`. | Feature | Claude Code | OpenCode | Status | |---------|-------------|----------|--------| -| Agents | PASS: 38 agents | PASS: 12 agents | **Claude Code leads** | +| Agents | PASS: 39 agents | PASS: 12 agents | **Claude Code leads** | | Commands | PASS: 72 commands | PASS: 31 commands | **Claude Code leads** | -| Skills | PASS: 162 skills | PASS: 37 skills | **Claude Code leads** | +| Skills | PASS: 163 skills | PASS: 37 skills | **Claude Code leads** | | Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** | | Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** | | MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** | @@ -1261,9 +1261,9 @@ ECC is the **first plugin to maximize every major AI coding tool**. Here's how e | Feature | Claude Code | Cursor IDE | Codex CLI | OpenCode | |---------|------------|------------|-----------|----------| -| **Agents** | 38 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | +| **Agents** | 39 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | | **Commands** | 72 | Shared | Instruction-based | 31 | -| **Skills** | 162 | Shared | 10 (native format) | 37 | +| **Skills** | 163 | Shared | 10 (native format) | 37 | | **Hook Events** | 8 types | 15 types | None yet | 11 types | | **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks | | **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions | diff --git a/README.zh-CN.md b/README.zh-CN.md index fdf84f8f..688344a2 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -106,7 +106,7 @@ cp -r everything-claude-code/rules/perl ~/.claude/rules/ /plugin list ecc@ecc ``` -**完成!** 你现在可以使用 38 个代理、162 个技能和 72 个命令。 +**完成!** 你现在可以使用 39 个代理、163 个技能和 72 个命令。 ### multi-* 命令需要额外配置 diff --git a/WORKING-CONTEXT.md b/WORKING-CONTEXT.md index 607808ca..44de8149 100644 --- a/WORKING-CONTEXT.md +++ b/WORKING-CONTEXT.md @@ -10,7 +10,7 @@ Public ECC plugin repo for agents, skills, commands, hooks, rules, install surfa - Default branch: `main` - Public release surface is aligned at `v1.10.0` -- Public catalog truth is `38` agents, `72` commands, and `162` skills +- Public catalog truth is `39` agents, `72` commands, and `163` skills - Public plugin slug is now `ecc`; legacy `everything-claude-code` install paths remain supported for compatibility - Release discussion: `#1272` - ECC 2.0 exists in-tree and builds, but it is still alpha rather than GA @@ -140,6 +140,7 @@ Keep this file detailed for only the current sprint, blockers, and next actions. - 2026-04-05: Fixed the remaining OpenCode npm-publish gap in `db6d52e`. The root package now builds `.opencode/dist` during `prepack`, includes the compiled OpenCode plugin assets in the published tarball, and carries a dedicated regression test (`tests/scripts/build-opencode.test.js`) so the package no longer ships only raw TypeScript source for that surface. - 2026-04-05: Added `skills/council`, direct-ported the safe `code-tour` lane from `#1193`, and re-synced the repo to `162` skills. `code-tour` stays self-contained and only produces `.tours/*.tour` artifacts with real file/line anchors; no external runtime or extension install is assumed inside the skill. - 2026-04-05: Closed the latest auto-generated ECC bundle PR wave (`#1275`-`#1281`) after deploying `ECC-Tools/main` fix `f615905`, which now blocks repo-level issue-comment `/analyze` requests from opening repeated bundle PRs while still allowing PR-thread retry analysis to run against immutable head SHAs. +- 2026-04-05: Filled the SEO gap by direct-porting `agents/seo-specialist.md` and `skills/seo/SKILL.md` into `main`, then wiring `skills/seo` into `business-content`. This resolves the stale `team-builder` reference to an SEO specialist and brings the public catalog to `39` agents and `163` skills without merging the stale PR wholesale. - 2026-04-05: Fixed the stale-row bug in `.github/workflows/monthly-metrics.yml` with `bf5961e`. The workflow now refreshes the current month row in issue `#1087` instead of early-returning when the month already exists, and the dispatched run updated the April snapshot to the current star/fork/release counts. - 2026-04-05: Recovered the useful cost-control workflow from the divergent Hermes branch as a small ECC-native operator skill instead of replaying the branch. `skills/ecc-tools-cost-audit/SKILL.md` is now wired into `operator-workflows` and focused on webhook -> queue -> worker tracing, burn containment, quota bypass, premium-model leakage, and retry fanout in the sibling `ECC-Tools` repo. - 2026-04-05: Added `skills/council/SKILL.md` in `753da37` as an ECC-native four-voice decision workflow. The useful protocol from PR `#1254` was retained, but the shadow `~/.claude/notes` write path was explicitly removed in favor of `knowledge-ops`, `/save-session`, or direct GitHub/Linear updates when a decision delta matters. diff --git a/agents/seo-specialist.md b/agents/seo-specialist.md new file mode 100644 index 00000000..011faf1a --- /dev/null +++ b/agents/seo-specialist.md @@ -0,0 +1,62 @@ +--- +name: seo-specialist +description: SEO specialist for technical SEO audits, on-page optimization, structured data, Core Web Vitals, and content/keyword mapping. Use for site audits, meta tag reviews, schema markup, sitemap and robots issues, and SEO remediation plans. +tools: ["Read", "Grep", "Glob", "Bash", "WebSearch", "WebFetch"] +model: sonnet +--- + +You are a senior SEO specialist focused on technical SEO, search visibility, and sustainable ranking improvements. + +When invoked: +1. Identify the scope: full-site audit, page-specific issue, schema problem, performance issue, or content planning task. +2. Read the relevant source files and deployment-facing assets first. +3. Prioritize findings by severity and likely ranking impact. +4. Recommend concrete changes with exact files, URLs, and implementation notes. + +## Audit Priorities + +### Critical + +- crawl or index blockers on important pages +- `robots.txt` or meta-robots conflicts +- canonical loops or broken canonical targets +- redirect chains longer than two hops +- broken internal links on key paths + +### High + +- missing or duplicate title tags +- missing or duplicate meta descriptions +- invalid heading hierarchy +- malformed or missing JSON-LD on key page types +- Core Web Vitals regressions on important pages + +### Medium + +- thin content +- missing alt text +- weak anchor text +- orphan pages +- keyword cannibalization + +## Review Output + +Use this format: + +```text +[SEVERITY] Issue title +Location: path/to/file.tsx:42 or URL +Issue: What is wrong and why it matters +Fix: Exact change to make +``` + +## Quality Bar + +- no vague SEO folklore +- no manipulative pattern recommendations +- no advice detached from the actual site structure +- recommendations should be implementable by the receiving engineer or content owner + +## Reference + +Use `skills/seo` for the canonical ECC SEO workflow and implementation guidance. diff --git a/docs/zh-CN/AGENTS.md b/docs/zh-CN/AGENTS.md index a2a68075..d9d1052d 100644 --- a/docs/zh-CN/AGENTS.md +++ b/docs/zh-CN/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — 智能体指令 -这是一个**生产就绪的 AI 编码插件**,提供 38 个专业代理、162 项技能、72 条命令以及自动化钩子工作流,用于软件开发。 +这是一个**生产就绪的 AI 编码插件**,提供 39 个专业代理、163 项技能、72 条命令以及自动化钩子工作流,用于软件开发。 **版本:** 1.10.0 @@ -146,8 +146,8 @@ ## 项目结构 ``` -agents/ — 38 个专业子代理 -skills/ — 162 个工作流技能和领域知识 +agents/ — 39 个专业子代理 +skills/ — 163 个工作流技能和领域知识 commands/ — 72 个斜杠命令 hooks/ — 基于触发的自动化 rules/ — 始终遵循的指导方针(通用 + 每种语言) diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index a856e3e1..1778ee21 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -209,7 +209,7 @@ npx ecc-install typescript /plugin list ecc@ecc ``` -**搞定!** 你现在可以使用 38 个智能体、162 项技能和 72 个命令了。 +**搞定!** 你现在可以使用 39 个智能体、163 项技能和 72 个命令了。 *** @@ -1094,9 +1094,9 @@ opencode | 功能特性 | Claude Code | OpenCode | 状态 | |---------|-------------|----------|--------| -| 智能体 | PASS: 38 个 | PASS: 12 个 | **Claude Code 领先** | +| 智能体 | PASS: 39 个 | PASS: 12 个 | **Claude Code 领先** | | 命令 | PASS: 72 个 | PASS: 31 个 | **Claude Code 领先** | -| 技能 | PASS: 162 项 | PASS: 37 项 | **Claude Code 领先** | +| 技能 | PASS: 163 项 | PASS: 37 项 | **Claude Code 领先** | | 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** | | 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** | | MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** | @@ -1206,9 +1206,9 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以 | 功能特性 | Claude Code | Cursor IDE | Codex CLI | OpenCode | |---------|------------|------------|-----------|----------| -| **智能体** | 38 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 | +| **智能体** | 39 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 | | **命令** | 72 | 共享 | 基于指令 | 31 | -| **技能** | 162 | 共享 | 10 (原生格式) | 37 | +| **技能** | 163 | 共享 | 10 (原生格式) | 37 | | **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 | | **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 | | **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 | diff --git a/manifests/install-modules.json b/manifests/install-modules.json index 2d98d872..0b5656b6 100644 --- a/manifests/install-modules.json +++ b/manifests/install-modules.json @@ -293,6 +293,7 @@ "skills/investor-outreach", "skills/lead-intelligence", "skills/social-graph-ranker", + "skills/seo", "skills/market-research" ], "targets": [ diff --git a/skills/seo/SKILL.md b/skills/seo/SKILL.md new file mode 100644 index 00000000..503b05bf --- /dev/null +++ b/skills/seo/SKILL.md @@ -0,0 +1,154 @@ +--- +name: seo +description: Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping. +origin: ECC +--- + +# SEO + +Improve search visibility through technical correctness, performance, and content relevance, not gimmicks. + +## When to Use + +Use this skill when: +- auditing crawlability, indexability, canonicals, or redirects +- improving title tags, meta descriptions, and heading structure +- adding or validating structured data +- improving Core Web Vitals +- doing keyword research and mapping keywords to URLs +- planning internal linking or sitemap / robots changes + +## How It Works + +### Principles + +1. Fix technical blockers before content optimization. +2. One page should have one clear primary search intent. +3. Prefer long-term quality signals over manipulative patterns. +4. Mobile-first assumptions matter because indexing is mobile-first. +5. Recommendations should be page-specific and implementable. + +### Technical SEO checklist + +#### Crawlability + +- `robots.txt` should allow important pages and block low-value surfaces +- no important page should be unintentionally `noindex` +- important pages should be reachable within a shallow click depth +- avoid redirect chains longer than two hops +- canonical tags should be self-consistent and non-looping + +#### Indexability + +- preferred URL format should be consistent +- multilingual pages need correct hreflang if used +- sitemaps should reflect the intended public surface +- no duplicate URLs should compete without canonical control + +#### Performance + +- LCP < 2.5s +- INP < 200ms +- CLS < 0.1 +- common fixes: preload hero assets, reduce render-blocking work, reserve layout space, trim heavy JS + +#### Structured data + +- homepage: organization or business schema where appropriate +- editorial pages: `Article` / `BlogPosting` +- product pages: `Product` and `Offer` +- interior pages: `BreadcrumbList` +- Q&A sections: `FAQPage` only when the content truly matches + +### On-page rules + +#### Title tags + +- aim for roughly 50-60 characters +- put the primary keyword or concept near the front +- make the title legible to humans, not stuffed for bots + +#### Meta descriptions + +- aim for roughly 120-160 characters +- describe the page honestly +- include the main topic naturally + +#### Heading structure + +- one clear `H1` +- `H2` and `H3` should reflect actual content hierarchy +- do not skip structure just for visual styling + +### Keyword mapping + +1. define the search intent +2. gather realistic keyword variants +3. prioritize by intent match, likely value, and competition +4. map one primary keyword/theme to one URL +5. detect and avoid cannibalization + +### Internal linking + +- link from strong pages to pages you want to rank +- use descriptive anchor text +- avoid generic anchors when a more specific one is possible +- backfill links from new pages to relevant existing ones + +## Examples + +### Title formula + +```text +Primary Topic - Specific Modifier | Brand +``` + +### Meta description formula + +```text +Action + topic + value proposition + one supporting detail +``` + +### JSON-LD example + +```json +{ + "@context": "https://schema.org", + "@type": "Article", + "headline": "Page Title Here", + "author": { + "@type": "Person", + "name": "Author Name" + }, + "publisher": { + "@type": "Organization", + "name": "Brand Name" + } +} +``` + +### Audit output shape + +```text +[HIGH] Duplicate title tags on product pages +Location: src/routes/products/[slug].tsx +Issue: Dynamic titles collapse to the same default string, which weakens relevance and creates duplicate signals. +Fix: Generate a unique title per product using the product name and primary category. +``` + +## Anti-Patterns + +| Anti-pattern | Fix | +| --- | --- | +| keyword stuffing | write for users first | +| thin near-duplicate pages | consolidate or differentiate them | +| schema for content that is not actually present | match schema to reality | +| content advice without checking the actual page | read the real page first | +| generic “improve SEO” outputs | tie every recommendation to a page or asset | + +## Related Skills + +- `seo-specialist` +- `frontend-patterns` +- `brand-voice` +- `market-research`