@hanzlaa/rcode 4.3.2 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/AGENTS.md +1 -1
  2. package/CONTRIBUTING.md +2 -1
  3. package/README.md +45 -10
  4. package/cli/doctor.js +21 -3
  5. package/cli/index.js +5 -1
  6. package/cli/install.js +16 -2
  7. package/cli/postinstall.js +1 -1
  8. package/cli/uninstall.js +48 -6
  9. package/dist/rcode.js +178 -174
  10. package/package.json +12 -22
  11. package/rcode/agents/rcode-codebase-mapper.md +12 -0
  12. package/rcode/agents/rcode-phase-researcher.md +13 -0
  13. package/rcode/agents/rcode-project-researcher.md +32 -0
  14. package/rcode/agents/rcode-roadmapper.md +15 -0
  15. package/rcode/agents/rules/planner/common-patterns.md +40 -0
  16. package/rcode/bin/lib/roadmap.cjs +184 -11
  17. package/rcode/bin/rcode-hooks.cjs +303 -14
  18. package/rcode/bin/rcode-tools.cjs +669 -55
  19. package/rcode/commands/lens-audit.md +8 -6
  20. package/rcode/data/intent-table.json +87 -0
  21. package/rcode/modules/seo.yaml +22 -0
  22. package/rcode/references/project-types.yaml +75 -0
  23. package/rcode/skills/SKILLS_INDEX.md +20 -2
  24. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/SKILL.md +16 -21
  25. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/backlog-building.md +13 -0
  26. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/merge-strategy.md +17 -0
  27. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/orchestrator-rhythm.md +9 -0
  28. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/wave-design.md +21 -0
  29. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/heartbeat.sh +0 -0
  30. package/rcode/skills/actions/4-implementation/rcode-scaffold-project/SKILL.md +60 -1
  31. package/rcode/skills/core/rcode-lazy/SKILL.md +149 -0
  32. package/rcode/skills/seo/module.yaml +20 -0
  33. package/rcode/skills/seo/on-page-seo-auditor/SKILL.md +308 -0
  34. package/rcode/skills/seo/on-page-seo-auditor/references/audit-example.md +109 -0
  35. package/rcode/skills/seo/on-page-seo-auditor/references/audit-templates.md +427 -0
  36. package/rcode/skills/seo/on-page-seo-auditor/references/bulk-audit-playbook.md +116 -0
  37. package/rcode/skills/seo/on-page-seo-auditor/references/scoring-rubric.md +525 -0
  38. package/rcode/skills/seo/rank-and-rent-local-seo/SKILL.md +94 -0
  39. package/rcode/skills/seo/rank-and-rent-local-seo/rules/city-matrix-and-pages.md +76 -0
  40. package/rcode/skills/seo/rank-and-rent-local-seo/rules/monetization.md +70 -0
  41. package/rcode/skills/seo/rank-and-rent-local-seo/rules/niche-selection.md +60 -0
  42. package/rcode/skills/seo/rank-and-rent-local-seo/rules/subniche-discovery.md +66 -0
  43. package/rcode/skills/seo/rank-and-rent-local-seo/templates/service-city-page.md +36 -0
  44. package/rcode/skills/seo/rank-and-rent-local-seo/templates/subniche-research-prompt.md +34 -0
  45. package/rcode/skills/seo/seo-audit/SKILL.md +412 -0
  46. package/rcode/skills/seo/seo-audit/evals/evals.json +136 -0
  47. package/rcode/skills/seo/seo-audit/references/ai-writing-detection.md +200 -0
  48. package/rcode/skills/seo/seo-content-factory/SKILL.md +130 -0
  49. package/rcode/skills/seo/seo-content-factory/rules/agents.md +80 -0
  50. package/rcode/skills/seo/seo-content-factory/rules/herdr-wave-mapping.md +80 -0
  51. package/rcode/skills/seo/seo-content-factory/rules/pipeline.md +102 -0
  52. package/rcode/skills/seo/seo-content-factory/rules/programmatic-pages.md +107 -0
  53. package/rcode/skills/seo/seo-content-factory/rules/quality-gates.md +68 -0
  54. package/rcode/skills/seo/seo-content-factory/rules/weekly-cadence.md +61 -0
  55. package/rcode/skills/seo/seo-content-factory/templates/BACKLOG.md +23 -0
  56. package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/01-funnel-A1-A4.md +63 -0
  57. package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/02-fanout-editorial-A5-A6-A8.md +28 -0
  58. package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/03-fanout-programmatic-A7-A6-A8.md +25 -0
  59. package/rcode/skills/seo/seo-content-factory/templates/agent-prompts/04-loop-A9-A10.md +34 -0
  60. package/rcode/skills/seo/seo-content-factory/templates/article.mdx +39 -0
  61. package/rcode/skills/seo/seo-content-factory/templates/cluster.schema.json +52 -0
  62. package/rcode/skills/seo/seo-content-factory/templates/content-brief.md +51 -0
  63. package/rcode/skills/seo/seo-content-factory/templates/jsonld-builders.ts +49 -0
  64. package/rcode/skills/seo/seo-content-factory/templates/keywords.csv +13 -0
  65. package/rcode/skills/seo/seo-content-factory/templates/programmatic-page.tsx +58 -0
  66. package/rcode/skills/seo/seo-content-writer/SKILL.md +263 -0
  67. package/rcode/skills/seo/seo-content-writer/references/content-structure-templates.md +875 -0
  68. package/rcode/skills/seo/seo-content-writer/references/instructions-detail.md +239 -0
  69. package/rcode/skills/seo/seo-content-writer/references/seo-writing-checklist.md +250 -0
  70. package/rcode/skills/seo/seo-content-writer/references/title-formulas.md +339 -0
  71. package/rcode/skills/seo/seo-growth-orchestrator/SKILL.md +79 -0
  72. package/rcode/skills/seo/seo-growth-orchestrator/rules/backlinks.md +29 -0
  73. package/rcode/skills/seo/seo-growth-orchestrator/rules/content-engine.md +27 -0
  74. package/rcode/skills/seo/seo-growth-orchestrator/rules/dos-and-donts.md +40 -0
  75. package/rcode/skills/seo/seo-growth-orchestrator/rules/goals-protocol.md +34 -0
  76. package/rcode/skills/seo/seo-growth-orchestrator/rules/local-seo-stack.md +35 -0
  77. package/rcode/skills/seo/seo-growth-orchestrator/rules/mrr-sprint.md +27 -0
  78. package/rcode/skills/seo/seo-growth-orchestrator/rules/tools.md +19 -0
  79. package/rcode/skills/seo/seo-growth-orchestrator/templates/backlink-research.md +29 -0
  80. package/rcode/skills/seo/seo-growth-orchestrator/templates/goal-protocol.md +35 -0
  81. package/rcode/skills/seo/seo-growth-orchestrator/templates/local-citations.md +24 -0
  82. package/rcode/skills/seo/seo-growth-orchestrator/templates/local-city-pages.md +27 -0
  83. package/rcode/skills/seo/seo-growth-orchestrator/templates/local-gbp-categories.md +23 -0
  84. package/rcode/skills/seo/seo-growth-orchestrator/templates/local-gsc-goldmine.md +27 -0
  85. package/rcode/skills/seo/seo-growth-orchestrator/templates/local-review-mining.md +26 -0
  86. package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-30day-plan.md +19 -0
  87. package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-cut.md +13 -0
  88. package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-opportunity-finder.md +17 -0
  89. package/rcode/skills/seo/seo-growth-orchestrator/templates/mrr-role-model.md +18 -0
  90. package/rcode/skills/seo/seo-site-builder/SKILL.md +149 -0
  91. package/rcode/skills/seo/seo-site-builder/rules/01-niche-discovery.md +64 -0
  92. package/rcode/skills/seo/seo-site-builder/rules/02-deep-research.md +164 -0
  93. package/rcode/skills/seo/seo-site-builder/rules/03-keyword-strategy.md +82 -0
  94. package/rcode/skills/seo/seo-site-builder/rules/04-content-plan.md +173 -0
  95. package/rcode/skills/seo/seo-site-builder/rules/05-site-build.md +187 -0
  96. package/rcode/skills/seo/seo-site-builder/rules/06-yolo.md +127 -0
  97. package/rcode/skills/seo/seo-site-builder/templates/article-stub.mdx +62 -0
  98. package/rcode/skills/seo/seo-site-builder/templates/image-prompt.md +97 -0
  99. package/rcode/skills/seo/seo-site-builder/templates/keyword-export.md +45 -0
  100. package/rcode/skills/seo/seo-site-builder/templates/niche-scorecard.md +28 -0
  101. package/rcode/skills/seo/technical-seo-checker/SKILL.md +329 -0
  102. package/rcode/skills/seo/technical-seo-checker/references/bulk-audit-playbook.md +118 -0
  103. package/rcode/skills/seo/technical-seo-checker/references/ecommerce-platform-patterns.md +166 -0
  104. package/rcode/skills/seo/technical-seo-checker/references/http-status-codes.md +705 -0
  105. package/rcode/skills/seo/technical-seo-checker/references/llm-crawler-handling.md +257 -0
  106. package/rcode/skills/seo/technical-seo-checker/references/pre-migration-playbook.md +137 -0
  107. package/rcode/skills/seo/technical-seo-checker/references/robots-txt-reference.md +717 -0
  108. package/rcode/skills/seo/technical-seo-checker/references/technical-audit-example.md +169 -0
  109. package/rcode/skills/seo/technical-seo-checker/references/technical-audit-templates.md +436 -0
  110. package/rcode/templates/settings-hooks.json +16 -1
  111. package/rcode/workflows/do.md +17 -0
  112. package/rcode/workflows/enable-hooks.md +3 -2
  113. package/rcode/workflows/execute-sprint.md +22 -0
  114. package/rcode/workflows/execute.md +17 -3
  115. package/rcode/workflows/lens-audit.md +49 -8
  116. package/rcode/workflows/new-milestone.md +21 -9
  117. package/rcode/workflows/new-project-create-roadmap.md +2 -0
  118. package/rcode/workflows/new-project-roadmap.md +2 -0
  119. package/rcode/workflows/new-project.md +3 -0
  120. package/rcode/workflows/plan.md +15 -2
  121. package/server/dashboard.js +6 -2
  122. package/server/lib/api.js +35 -20
  123. package/server/lib/html/client/components/OrchPanel.js +43 -2
  124. package/server/lib/html/client/components/dashboard/InProgress.js +5 -4
  125. package/server/lib/html/client/components/shared.js +14 -0
  126. package/server/lib/html/client/orchestrator.js +13 -0
  127. package/server/lib/html/client/views/KanbanView.js +33 -4
  128. package/server/lib/html/css.js +57 -3
  129. package/server/lib/scanner.js +40 -4
  130. package/server/orchestrator.js +42 -0
@@ -0,0 +1,427 @@
1
+ # On-Page SEO Auditor — Output Templates
2
+
3
+ Detailed output templates for on-page-seo-auditor steps 1-11. Referenced from [SKILL.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/optimize/on-page-seo-auditor/SKILL.md).
4
+
5
+ ---
6
+
7
+ ## Step 1: Gather Page Information
8
+
9
+ ```markdown
10
+ ### Audit Setup
11
+
12
+ **Page URL**: [URL]
13
+ **Target Keyword**: [primary keyword]
14
+ **Secondary Keywords**: [additional keywords]
15
+ **Page Type**: [blog/product/landing/service]
16
+ **Business Goal**: [traffic/conversions/authority]
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Step 2: Audit Title Tag
22
+
23
+ ```markdown
24
+ ## Title Tag Analysis
25
+
26
+ **Current Title**: [title]
27
+ **Character Count**: [X] characters
28
+
29
+ | Criterion | Status | Notes |
30
+ |-----------|--------|-------|
31
+ | Length (50-60 chars) | Pass/Warn/Fail | [notes] |
32
+ | Keyword included | Pass/Warn/Fail | Position: [front/middle/end] |
33
+ | Keyword at front | Pass/Warn/Fail | [notes] |
34
+ | Unique across site | Pass/Warn/Fail | [notes] |
35
+ | Compelling/clickable | Pass/Warn/Fail | [notes] |
36
+ | Matches intent | Pass/Warn/Fail | [notes] |
37
+
38
+ **Title Score**: [X]/10
39
+
40
+ **Issues Found**:
41
+ - [Issue 1]
42
+ - [Issue 2]
43
+
44
+ **Recommended Title**:
45
+ "[Optimized title suggestion]"
46
+
47
+ **Why**: [Explanation of improvements]
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Step 3: Audit Meta Description
53
+
54
+ ```markdown
55
+ ## Meta Description Analysis
56
+
57
+ **Current Description**: [description]
58
+ **Character Count**: [X] characters
59
+
60
+ | Criterion | Status | Notes |
61
+ |-----------|--------|-------|
62
+ | Length (150-160 chars) | Pass/Warn/Fail | [notes] |
63
+ | Keyword included | Pass/Warn/Fail | [notes] |
64
+ | Call-to-action present | Pass/Warn/Fail | [notes] |
65
+ | Unique across site | Pass/Warn/Fail | [notes] |
66
+ | Accurately describes page | Pass/Warn/Fail | [notes] |
67
+ | Compelling copy | Pass/Warn/Fail | [notes] |
68
+
69
+ **Description Score**: [X]/10
70
+
71
+ **Issues Found**:
72
+ - [Issue 1]
73
+
74
+ **Recommended Description**:
75
+ "[Optimized description suggestion]" ([X] chars)
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Step 4: Audit Header Structure
81
+
82
+ ```markdown
83
+ ## Header Structure Analysis
84
+
85
+ ### Current Header Hierarchy
86
+
87
+ ```
88
+ H1: [H1 text]
89
+ H2: [H2 text]
90
+ H3: [H3 text]
91
+ H3: [H3 text]
92
+ H2: [H2 text]
93
+ H3: [H3 text]
94
+ H2: [H2 text]
95
+ ```
96
+
97
+ | Criterion | Status | Notes |
98
+ |-----------|--------|-------|
99
+ | Single H1 | Pass/Warn/Fail | Found: [X] H1s |
100
+ | H1 includes keyword | Pass/Warn/Fail | [notes] |
101
+ | Logical hierarchy | Pass/Warn/Fail | [notes] |
102
+ | H2s include keywords | Pass/Warn/Fail | [X]/[Y] contain keywords |
103
+ | No skipped levels | Pass/Warn/Fail | [notes] |
104
+ | Descriptive headers | Pass/Warn/Fail | [notes] |
105
+
106
+ **Header Score**: [X]/10
107
+
108
+ **Issues Found**:
109
+ - [Issue 1]
110
+ - [Issue 2]
111
+
112
+ **Recommended Changes**:
113
+ - H1: [suggestion]
114
+ - H2s: [suggestions]
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Step 5: Audit Content Quality
120
+
121
+ ```markdown
122
+ ## Content Quality Analysis
123
+
124
+ **Word Count**: [X] words
125
+ **Reading Level**: [Grade level]
126
+ **Estimated Read Time**: [X] minutes
127
+
128
+ | Criterion | Status | Notes |
129
+ |-----------|--------|-------|
130
+ | Sufficient length | ✅/⚠️/❌ | [comparison to ranking content] |
131
+ | Comprehensive coverage | ✅/⚠️/❌ | [notes] |
132
+ | Unique value/insights | ✅/⚠️/❌ | [notes] |
133
+ | Up-to-date information | ✅/⚠️/❌ | [notes] |
134
+ | Proper formatting | ✅/⚠️/❌ | [notes] |
135
+ | Readability | ✅/⚠️/❌ | [notes] |
136
+ | E-E-A-T signals | ✅/⚠️/❌ | [notes] |
137
+
138
+ **Content Elements Present**:
139
+ - [ ] Introduction with keyword
140
+ - [ ] Clear sections/structure
141
+ - [ ] Bullet points/lists
142
+ - [ ] Tables where appropriate
143
+ - [ ] Images/visuals
144
+ - [ ] Examples/case studies
145
+ - [ ] Statistics with sources
146
+ - [ ] Expert quotes
147
+ - [ ] FAQ section
148
+ - [ ] Conclusion with CTA
149
+
150
+ **Content Score**: [X]/10
151
+
152
+ **Gaps Identified**:
153
+ - [Missing topic/section 1]
154
+ - [Missing topic/section 2]
155
+
156
+ **Recommendations**:
157
+ 1. [Specific improvement]
158
+ 2. [Specific improvement]
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Step 6: Audit Keyword Usage
164
+
165
+ ```markdown
166
+ ## Keyword Optimization Analysis
167
+
168
+ **Primary Keyword**: "[keyword]"
169
+ **Keyword Density**: [X]%
170
+
171
+ ### Keyword Placement
172
+
173
+ | Location | Present | Notes |
174
+ |----------|---------|-------|
175
+ | Title tag | ✅/❌ | Position: [X] |
176
+ | Meta description | ✅/❌ | [notes] |
177
+ | H1 | ✅/❌ | [notes] |
178
+ | First 100 words | ✅/❌ | Word position: [X] |
179
+ | H2 headings | ✅/❌ | In [X]/[Y] H2s |
180
+ | Body content | ✅/❌ | [X] occurrences |
181
+ | URL slug | ✅/❌ | [notes] |
182
+ | Image alt text | ✅/❌ | In [X]/[Y] images |
183
+ | Conclusion | ✅/❌ | [notes] |
184
+
185
+ ### Secondary Keywords
186
+
187
+ | Keyword | Occurrences | Status |
188
+ |---------|-------------|--------|
189
+ | [keyword 1] | [X] | ✅/⚠️/❌ |
190
+ | [keyword 2] | [X] | ✅/⚠️/❌ |
191
+
192
+ ### LSI/Related Terms
193
+
194
+ **Present**: [list of related terms found]
195
+ **Missing**: [important related terms not found]
196
+
197
+ **Keyword Score**: [X]/10
198
+
199
+ **Issues**:
200
+ - [Issue 1]
201
+
202
+ **Recommendations**:
203
+ - [Suggestion 1]
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Step 7: Audit Internal Links
209
+
210
+ ```markdown
211
+ ## Internal Linking Analysis
212
+
213
+ **Total Internal Links**: [X]
214
+ **Unique Internal Links**: [X]
215
+
216
+ | Criterion | Status | Notes |
217
+ |-----------|--------|-------|
218
+ | Number of internal links | ✅/⚠️/❌ | [X] (recommend 3-5+) |
219
+ | Relevant anchor text | ✅/⚠️/❌ | [notes] |
220
+ | Links to related content | ✅/⚠️/❌ | [notes] |
221
+ | Links to important pages | ✅/⚠️/❌ | [notes] |
222
+ | No broken links | ✅/⚠️/❌ | [X] broken found |
223
+ | Natural placement | ✅/⚠️/❌ | [notes] |
224
+
225
+ **Current Internal Links**:
226
+ 1. "[Anchor text]" → [URL]
227
+ 2. "[Anchor text]" → [URL]
228
+ 3. "[Anchor text]" → [URL]
229
+
230
+ **Internal Linking Score**: [X]/10
231
+
232
+ **Recommended Additional Links**:
233
+ 1. Add link to "[Related page]" with anchor "[suggested anchor]"
234
+ 2. Add link to "[Related page]" with anchor "[suggested anchor]"
235
+
236
+ **Anchor Text Improvements**:
237
+ - Change "[current anchor]" to "[improved anchor]"
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Step 8: Audit Images
243
+
244
+ ```markdown
245
+ ## Image Optimization Analysis
246
+
247
+ **Total Images**: [X]
248
+
249
+ ### Image Audit Table
250
+
251
+ | Image | Alt Text | File Name | Size | Status |
252
+ |-------|----------|-----------|------|--------|
253
+ | [img1] | [alt or "missing"] | [filename] | [KB] | ✅/⚠️/❌ |
254
+ | [img2] | [alt or "missing"] | [filename] | [KB] | ✅/⚠️/❌ |
255
+
256
+ | Criterion | Status | Notes |
257
+ |-----------|--------|-------|
258
+ | All images have alt text | ✅/⚠️/❌ | [X]/[Y] have alt |
259
+ | Alt text includes keywords | ✅/⚠️/❌ | [notes] |
260
+ | Descriptive file names | ✅/⚠️/❌ | [notes] |
261
+ | Appropriate file sizes | ✅/⚠️/❌ | [notes] |
262
+ | Modern formats (WebP) | ✅/⚠️/❌ | [notes] |
263
+ | Lazy loading enabled | ✅/⚠️/❌ | [notes] |
264
+
265
+ **Image Score**: [X]/10
266
+
267
+ **Recommendations**:
268
+ 1. Add alt text to image [X]: "[suggested alt text]"
269
+ 2. Compress image [Y]: Currently [X]KB, should be under [Y]KB
270
+ 3. Rename [filename] to [better-filename]
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Step 9: Audit Technical On-Page Elements
276
+
277
+ ```markdown
278
+ ## Technical On-Page Analysis
279
+
280
+ | Element | Current Value | Status | Recommendation |
281
+ |---------|---------------|--------|----------------|
282
+ | URL | [URL] | ✅/⚠️/❌ | [notes] |
283
+ | URL length | [X] chars | ✅/⚠️/❌ | [notes] |
284
+ | URL keywords | [present/absent] | ✅/⚠️/❌ | [notes] |
285
+ | Canonical tag | [URL or "missing"] | ✅/⚠️/❌ | [notes] |
286
+ | Mobile-friendly | [yes/no] | ✅/⚠️/❌ | [notes] |
287
+ | Page speed | [X]s | ✅/⚠️/❌ | [notes] |
288
+ | HTTPS | [yes/no] | ✅/⚠️/❌ | [notes] |
289
+ | Schema markup | [types or "none"] | ✅/⚠️/❌ | [notes] |
290
+
291
+ **Technical Score**: [X]/10
292
+ ```
293
+
294
+ ---
295
+
296
+ ## Step 10: CORE-EEAT Content Quality Quick Scan
297
+
298
+ Run a quick scan of on-page-relevant CORE-EEAT items. Reference: [CORE-EEAT Benchmark](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/references/core-eeat-benchmark.md)
299
+
300
+ ```markdown
301
+ ## CORE-EEAT Quick Scan
302
+
303
+ Content-relevant items from the 80-item benchmark:
304
+
305
+ | ID | Check Item | Status | Notes |
306
+ |----|-----------|--------|-------|
307
+ | C01 | Intent Alignment | ✅/⚠️/❌ | Title promise = content delivery |
308
+ | C02 | Direct Answer | ✅/⚠️/❌ | Core answer in first 150 words |
309
+ | C09 | FAQ Coverage | ✅/⚠️/❌ | Structured FAQ present |
310
+ | C10 | Semantic Closure | ✅/⚠️/❌ | Conclusion answers opening |
311
+ | O01 | Heading Hierarchy | ✅/⚠️/❌ | H1→H2→H3, no skipping |
312
+ | O02 | Summary Box | ✅/⚠️/❌ | TL;DR or Key Takeaways |
313
+ | O03 | Data Tables | ✅/⚠️/❌ | Comparisons in tables |
314
+ | O05 | Schema Markup | ✅/⚠️/❌ | Appropriate JSON-LD |
315
+ | O06 | Section Chunking | ✅/⚠️/❌ | Single topic per section |
316
+ | R01 | Data Precision | ✅/⚠️/❌ | ≥5 precise numbers |
317
+ | R02 | Citation Density | ✅/⚠️/❌ | ≥1 per 500 words |
318
+ | R06 | Timestamp | ✅/⚠️/❌ | Updated <1 year |
319
+ | R08 | Internal Link Graph | ✅/⚠️/❌ | Descriptive anchors |
320
+ | R10 | Content Consistency | ✅/⚠️/❌ | No contradictions |
321
+ | Exp01 | First-Person Narrative | ✅/⚠️/❌ | "I tested" or "We found" |
322
+ | Ept01 | Author Identity | ✅/⚠️/❌ | Byline + bio present |
323
+ | T04 | Disclosure Statements | ✅/⚠️/❌ | Affiliate links disclosed |
324
+
325
+ **CORE-EEAT Quick Score**: [X]/17 items passing
326
+
327
+ > For a complete 80-item audit with weighted scoring, use `content-quality-auditor`.
328
+ ```
329
+
330
+ ---
331
+
332
+ ## Step 11: Generate Audit Summary
333
+
334
+ ```markdown
335
+ # On-Page SEO Audit Report
336
+
337
+ **Page**: [URL]
338
+ **Target Keyword**: [keyword]
339
+ **Audit Date**: [date]
340
+
341
+ ## Overall Score: [X]/100
342
+
343
+ ```
344
+ Score Breakdown:
345
+ ████████░░ Title Tag: 8/10
346
+ ██████░░░░ Meta Description: 6/10
347
+ █████████░ Headers: 9/10
348
+ ███████░░░ Content: 7/10
349
+ ██████░░░░ Keywords: 6/10
350
+ █████░░░░░ Internal Links: 5/10
351
+ ████░░░░░░ Images: 4/10
352
+ ████████░░ Technical: 8/10
353
+ ```
354
+
355
+ ## Priority Issues
356
+
357
+ ### 🔴 Critical (Fix Immediately)
358
+ 1. [Critical issue 1]
359
+ 2. [Critical issue 2]
360
+
361
+ ### 🟡 Important (Fix Soon)
362
+ 1. [Important issue 1]
363
+ 2. [Important issue 2]
364
+
365
+ ### 🟢 Minor (Nice to Have)
366
+ 1. [Minor issue 1]
367
+ 2. [Minor issue 2]
368
+
369
+ ## Quick Wins
370
+
371
+ These changes will have immediate impact:
372
+
373
+ 1. **[Change 1]**: [Why and how]
374
+ 2. **[Change 2]**: [Why and how]
375
+ 3. **[Change 3]**: [Why and how]
376
+
377
+ ## Detailed Recommendations
378
+
379
+ ### Title Tag
380
+ - **Current**: [current title]
381
+ - **Recommended**: [new title]
382
+ - **Impact**: [expected improvement]
383
+
384
+ ### Meta Description
385
+ - **Current**: [current description]
386
+ - **Recommended**: [new description]
387
+ - **Impact**: [expected improvement]
388
+
389
+ ### Content Improvements
390
+ 1. [Specific content change with location]
391
+ 2. [Specific content change with location]
392
+
393
+ ### Internal Linking
394
+ 1. Add link: "[anchor]" → [destination]
395
+ 2. Add link: "[anchor]" → [destination]
396
+
397
+ ### Image Optimization
398
+ 1. [Image 1]: [change needed]
399
+ 2. [Image 2]: [change needed]
400
+
401
+ ## Competitor Comparison
402
+
403
+ | Element | Your Page | Top Competitor | Gap |
404
+ |---------|-----------|----------------|-----|
405
+ | Word count | [X] | [Y] | [+/-Z] |
406
+ | Internal links | [X] | [Y] | [+/-Z] |
407
+ | Images | [X] | [Y] | [+/-Z] |
408
+ | H2 headings | [X] | [Y] | [+/-Z] |
409
+
410
+ ## Action Checklist
411
+
412
+ - [ ] Update title tag
413
+ - [ ] Rewrite meta description
414
+ - [ ] Add keyword to H1
415
+ - [ ] Add [X] more internal links
416
+ - [ ] Add alt text to [X] images
417
+ - [ ] Add [X] more content sections
418
+ - [ ] Implement FAQ schema
419
+ - [ ] [Additional action items]
420
+
421
+ ## Expected Results
422
+
423
+ After implementing these changes:
424
+ - Estimated ranking improvement: [X] positions
425
+ - Estimated CTR improvement: [X]%
426
+ - Estimated traffic increase: [X]%
427
+ ```
@@ -0,0 +1,116 @@
1
+ # On-Page SEO — Site-Wide / Bulk Audit Playbook
2
+
3
+ Referenced from [SKILL.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/optimize/on-page-seo-auditor/SKILL.md). Use when the user wants on-page audits across >5 pages at once.
4
+
5
+ ---
6
+
7
+ ## When to use bulk mode
8
+
9
+ - User wants to audit a content category (all blog posts, all product pages)
10
+ - User is triaging a site-wide traffic drop across many URLs
11
+ - Pre-publish audit for a content batch (5+ articles)
12
+ - Competitive benchmarking across many URLs
13
+
14
+ ## Inputs accepted
15
+
16
+ 1. **URL list** — user pastes 5+ URLs
17
+ 2. **Sitemap URL** — scope to a section (e.g., `/sitemap-blog.xml`)
18
+ 3. **GSC export** — URLs ranked for target queries
19
+ 4. **Content type + sitemap** — "audit all 40 blog posts on example.com/blog/"
20
+
21
+ ## Workflow
22
+
23
+ ### Step 1 — Classify URLs into clusters
24
+
25
+ Group URLs by content-type template (blog post / product / landing / guide / comparison / listicle). Surface the cluster distribution to the user before spending effort:
26
+
27
+ ```
28
+ Your 40 URLs:
29
+ - 24 blog posts (informational)
30
+ - 10 guide pages (commercial)
31
+ - 4 comparison pages (commercial)
32
+ - 2 landing pages (transactional)
33
+ ```
34
+
35
+ ### Step 2 — Sample 2-3 URLs per cluster
36
+
37
+ Run the standard on-page audit flow on the sampled URLs. Capture:
38
+ - Title pattern (e.g., "all titles start with product name + `| Brand`")
39
+ - H1 pattern consistency
40
+ - Meta description quality distribution
41
+ - CORE-EEAT dimension profile for the cluster
42
+
43
+ ### Step 3 — Extrapolate + confirm
44
+
45
+ Produce cluster-level findings with scope:
46
+
47
+ ```
48
+ ### Cluster: Blog posts (24 URLs) — sample of 3
49
+
50
+ **Common strengths**:
51
+ - Title pattern is keyword-front-loaded + year qualifier (strong)
52
+ - H1 matches title (strong)
53
+
54
+ **Common weaknesses**:
55
+ - Meta description length distribution: 8 short (<120 chars), 16 OK, 0 over — sampled 3: 2 short, 1 OK. **Estimate: 67% need rewrite.**
56
+ - No H2 every 300 words — sampled 3: all violate. **Estimate: 24/24 affected.**
57
+ - Thin intro (<60 words before first H2) — sampled 3: 2 affected. **Estimate: 16/24.**
58
+
59
+ **CORE-EEAT profile (sampled)**:
60
+ - Strong: C02, O01, O02
61
+ - Weak: R01 (no citations), Exp02 (no first-person narrative), E01 (no original data)
62
+ ```
63
+
64
+ ### Step 4 — Portfolio priority
65
+
66
+ ```
67
+ P0 (affects majority of cluster):
68
+ - Rewrite meta descriptions across blog cluster (est. 16 URLs) — template improvement
69
+
70
+ P1 (affects minority but high-impact):
71
+ - Add author bio + credentials to all blog posts (est. 24 URLs) — CORE-EEAT Ept
72
+ - Add 1 original stat per blog post (est. 20+ URLs) — CORE-EEAT R01
73
+
74
+ P2 (single-page refinements):
75
+ - Specific URLs flagged during deep sample: [list]
76
+ ```
77
+
78
+ ### Step 5 — Deliver bulk handoff
79
+
80
+ - **Status**: DONE | DONE_WITH_CONCERNS
81
+ - **Objective**: "Bulk on-page audit across <cluster_count> clusters (<total_urls> URLs)"
82
+ - **Key Findings / Output**: per-cluster pattern findings + portfolio priority
83
+ - **Evidence**: "Sampled N/M URLs; extrapolated to cluster level; confidence flagged per finding"
84
+ - **Open Loops**: un-sampled clusters, URLs flagged for individual attention, data gaps (no keyword data, etc.)
85
+ - **Recommended Next Skill**: `content-refresher` (for bulk content edits) OR `meta-tags-optimizer` (for title/description template work) OR `internal-linking-optimizer` (if linking pattern is the dominant issue)
86
+
87
+ ## Template suggestions (common bulk outputs)
88
+
89
+ **Meta description template for a blog cluster**:
90
+
91
+ ```
92
+ [Benefit in first 80 chars]. [Proof — number, source, or specific]. [CTA clause].
93
+ — Target: 140-155 chars. Front-load the benefit.
94
+ ```
95
+
96
+ **H1 template for product cluster**:
97
+
98
+ ```
99
+ [Product name]: [differentiator] for [audience]
100
+ — e.g., "Cloud Hosting: Managed Kubernetes for Small Teams"
101
+ ```
102
+
103
+ **Alt-text template for images**:
104
+
105
+ ```
106
+ [Descriptive noun phrase, 6-12 words, no "image of"]
107
+ ```
108
+
109
+ ## Minimum viable bulk input
110
+
111
+ ```
112
+ 1. URL list (or sitemap URL or content-type scope)
113
+ 2. Are these already ranking, or new/pre-publish?
114
+ 3. What's the business goal for this cluster?
115
+ 4. Any known template/CMS that affects all of them?
116
+ ```