antigravity-seo-kit 2.0.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.

Potentially problematic release.


This version of antigravity-seo-kit might be problematic. Click here for more details.

Files changed (135) hide show
  1. package/.agent/agent.md +96 -0
  2. package/.agent/skills/seo/SKILL.md +153 -0
  3. package/.agent/skills/seo/references/cwv-thresholds.md +108 -0
  4. package/.agent/skills/seo/references/eeat-framework.md +214 -0
  5. package/.agent/skills/seo/references/local-schema-types.md +230 -0
  6. package/.agent/skills/seo/references/local-seo-signals.md +218 -0
  7. package/.agent/skills/seo/references/maps-api-endpoints.md +160 -0
  8. package/.agent/skills/seo/references/maps-free-apis.md +176 -0
  9. package/.agent/skills/seo/references/maps-gbp-checklist.md +150 -0
  10. package/.agent/skills/seo/references/maps-geo-grid.md +154 -0
  11. package/.agent/skills/seo/references/quality-gates.md +155 -0
  12. package/.agent/skills/seo/references/schema-types.md +118 -0
  13. package/.agent/skills/seo/schema/templates.json +213 -0
  14. package/.agent/skills/seo/scripts/analyze_visual.py +217 -0
  15. package/.agent/skills/seo/scripts/capture_screenshot.py +181 -0
  16. package/.agent/skills/seo/scripts/fetch_page.py +196 -0
  17. package/.agent/skills/seo/scripts/parse_html.py +201 -0
  18. package/.agent/skills/seo-audit/SKILL.md +278 -0
  19. package/.agent/skills/seo-competitor-pages/SKILL.md +212 -0
  20. package/.agent/skills/seo-content/SKILL.md +230 -0
  21. package/.agent/skills/seo-dataforseo/SKILL.md +418 -0
  22. package/.agent/skills/seo-geo/SKILL.md +305 -0
  23. package/.agent/skills/seo-google/SKILL.md +405 -0
  24. package/.agent/skills/seo-google/assets/templates/cwv-audit-report.md +48 -0
  25. package/.agent/skills/seo-google/assets/templates/gsc-performance-report.md +44 -0
  26. package/.agent/skills/seo-google/assets/templates/indexation-status-report.md +43 -0
  27. package/.agent/skills/seo-google/references/auth-setup.md +154 -0
  28. package/.agent/skills/seo-google/references/ga4-data-api.md +184 -0
  29. package/.agent/skills/seo-google/references/indexing-api.md +107 -0
  30. package/.agent/skills/seo-google/references/keyword-planner-api.md +66 -0
  31. package/.agent/skills/seo-google/references/nlp-api.md +55 -0
  32. package/.agent/skills/seo-google/references/pagespeed-crux-api.md +204 -0
  33. package/.agent/skills/seo-google/references/rate-limits-quotas.md +75 -0
  34. package/.agent/skills/seo-google/references/search-console-api.md +156 -0
  35. package/.agent/skills/seo-google/references/supplementary-apis.md +99 -0
  36. package/.agent/skills/seo-google/references/youtube-api.md +49 -0
  37. package/.agent/skills/seo-google/scripts/crux_history.py +321 -0
  38. package/.agent/skills/seo-google/scripts/ga4_report.py +478 -0
  39. package/.agent/skills/seo-google/scripts/google_auth.py +795 -0
  40. package/.agent/skills/seo-google/scripts/google_report.py +2273 -0
  41. package/.agent/skills/seo-google/scripts/gsc_inspect.py +340 -0
  42. package/.agent/skills/seo-google/scripts/gsc_query.py +378 -0
  43. package/.agent/skills/seo-google/scripts/indexing_notify.py +313 -0
  44. package/.agent/skills/seo-google/scripts/keyword_planner.py +297 -0
  45. package/.agent/skills/seo-google/scripts/nlp_analyze.py +309 -0
  46. package/.agent/skills/seo-google/scripts/pagespeed_check.py +649 -0
  47. package/.agent/skills/seo-google/scripts/youtube_search.py +355 -0
  48. package/.agent/skills/seo-hreflang/SKILL.md +192 -0
  49. package/.agent/skills/seo-image-gen/SKILL.md +211 -0
  50. package/.agent/skills/seo-image-gen/references/cost-tracking.md +47 -0
  51. package/.agent/skills/seo-image-gen/references/gemini-models.md +200 -0
  52. package/.agent/skills/seo-image-gen/references/mcp-tools.md +115 -0
  53. package/.agent/skills/seo-image-gen/references/post-processing.md +192 -0
  54. package/.agent/skills/seo-image-gen/references/presets.md +69 -0
  55. package/.agent/skills/seo-image-gen/references/prompt-engineering.md +411 -0
  56. package/.agent/skills/seo-image-gen/references/seo-image-presets.md +137 -0
  57. package/.agent/skills/seo-image-gen/scripts/batch.py +97 -0
  58. package/.agent/skills/seo-image-gen/scripts/cost_tracker.py +191 -0
  59. package/.agent/skills/seo-image-gen/scripts/edit.py +141 -0
  60. package/.agent/skills/seo-image-gen/scripts/generate.py +149 -0
  61. package/.agent/skills/seo-image-gen/scripts/presets.py +153 -0
  62. package/.agent/skills/seo-image-gen/scripts/setup_mcp.py +151 -0
  63. package/.agent/skills/seo-image-gen/scripts/validate_setup.py +133 -0
  64. package/.agent/skills/seo-images/SKILL.md +176 -0
  65. package/.agent/skills/seo-local/SKILL.md +381 -0
  66. package/.agent/skills/seo-maps/SKILL.md +328 -0
  67. package/.agent/skills/seo-page/SKILL.md +86 -0
  68. package/.agent/skills/seo-plan/SKILL.md +118 -0
  69. package/.agent/skills/seo-plan/assets/agency.md +175 -0
  70. package/.agent/skills/seo-plan/assets/ecommerce.md +167 -0
  71. package/.agent/skills/seo-plan/assets/generic.md +144 -0
  72. package/.agent/skills/seo-plan/assets/local-service.md +160 -0
  73. package/.agent/skills/seo-plan/assets/publisher.md +153 -0
  74. package/.agent/skills/seo-plan/assets/saas.md +135 -0
  75. package/.agent/skills/seo-programmatic/SKILL.md +171 -0
  76. package/.agent/skills/seo-schema/SKILL.md +223 -0
  77. package/.agent/skills/seo-sitemap/SKILL.md +180 -0
  78. package/.agent/skills/seo-technical/SKILL.md +211 -0
  79. package/.agent/workflows/seo-audit.md +17 -0
  80. package/.agent/workflows/seo-competitor-pages.md +12 -0
  81. package/.agent/workflows/seo-content.md +14 -0
  82. package/.agent/workflows/seo-geo.md +12 -0
  83. package/.agent/workflows/seo-google.md +12 -0
  84. package/.agent/workflows/seo-hreflang.md +12 -0
  85. package/.agent/workflows/seo-images.md +13 -0
  86. package/.agent/workflows/seo-local.md +12 -0
  87. package/.agent/workflows/seo-maps.md +11 -0
  88. package/.agent/workflows/seo-page.md +13 -0
  89. package/.agent/workflows/seo-plan.md +13 -0
  90. package/.agent/workflows/seo-programmatic.md +12 -0
  91. package/.agent/workflows/seo-schema.md +11 -0
  92. package/.agent/workflows/seo-sitemap.md +9 -0
  93. package/.agent/workflows/seo-technical.md +18 -0
  94. package/LICENSE +88 -0
  95. package/README.md +122 -0
  96. package/bin/cli.js +117 -0
  97. package/docs/ARCHITECTURE.md +218 -0
  98. package/docs/COMMANDS.md +184 -0
  99. package/docs/INSTALLATION.md +100 -0
  100. package/docs/MCP-INTEGRATION.md +153 -0
  101. package/docs/TROUBLESHOOTING.md +151 -0
  102. package/docs/superpowers/plans/2026-03-13-github-audit-fixes.md +511 -0
  103. package/extensions/banana/README.md +95 -0
  104. package/extensions/banana/docs/BANANA-SETUP.md +86 -0
  105. package/extensions/banana/install.sh +170 -0
  106. package/extensions/banana/references/cost-tracking.md +47 -0
  107. package/extensions/banana/references/gemini-models.md +200 -0
  108. package/extensions/banana/references/mcp-tools.md +115 -0
  109. package/extensions/banana/references/post-processing.md +192 -0
  110. package/extensions/banana/references/presets.md +69 -0
  111. package/extensions/banana/references/prompt-engineering.md +411 -0
  112. package/extensions/banana/references/seo-image-presets.md +137 -0
  113. package/extensions/banana/scripts/batch.py +97 -0
  114. package/extensions/banana/scripts/cost_tracker.py +191 -0
  115. package/extensions/banana/scripts/edit.py +141 -0
  116. package/extensions/banana/scripts/generate.py +149 -0
  117. package/extensions/banana/scripts/presets.py +153 -0
  118. package/extensions/banana/scripts/setup_mcp.py +151 -0
  119. package/extensions/banana/scripts/validate_setup.py +133 -0
  120. package/extensions/banana/uninstall.sh +43 -0
  121. package/extensions/dataforseo/README.md +169 -0
  122. package/extensions/dataforseo/docs/DATAFORSEO-SETUP.md +74 -0
  123. package/extensions/dataforseo/field-config.json +280 -0
  124. package/extensions/dataforseo/install.ps1 +110 -0
  125. package/extensions/dataforseo/install.sh +161 -0
  126. package/extensions/dataforseo/uninstall.ps1 +35 -0
  127. package/extensions/dataforseo/uninstall.sh +39 -0
  128. package/lib/api.js +190 -0
  129. package/lib/fingerprint.js +68 -0
  130. package/lib/installer.js +486 -0
  131. package/lib/utils.js +254 -0
  132. package/package.json +40 -0
  133. package/pyproject.toml +11 -0
  134. package/requirements-google.txt +15 -0
  135. package/requirements.txt +11 -0
@@ -0,0 +1,511 @@
1
+ # GitHub Audit Fixes Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Raise the GitHub repo health score from 70/100 by closing all audit gaps identified in the 2026-03-13 audit.
6
+
7
+ **Architecture:** All changes are isolated file edits and net-new file creation, with no refactoring and no dependency changes. GitHub settings are updated via `gh repo edit`. The `.github/` directory does not yet exist; all files in it are created from scratch with zero conflict risk.
8
+
9
+ **Tech Stack:** Markdown, YAML, GitHub Actions, `gh` CLI
10
+
11
+ ---
12
+
13
+ ## Pre-flight Checklist (Verify Before Any Changes)
14
+
15
+ - [ ] Confirm `agents/` directory has exactly 7 files:
16
+ `seo-content.md seo-geo.md seo-performance.md seo-schema.md seo-sitemap.md seo-technical.md seo-visual.md`
17
+ - [ ] Confirm CITATION.cff does NOT exist: `ls CITATION.cff 2>&1` → "No such file"
18
+ - [ ] Confirm `.github/` does NOT exist: `ls .github/ 2>&1` → "No such file"
19
+ - [ ] Confirm `plugin.json` version is `"1.3.2"` and agents array has 6 items (missing seo-geo)
20
+ - [ ] Confirm README line 181 says `Subagents (6 total)`
21
+ - [ ] Confirm CHANGELOG.md line 123 says "6 subagents" - **this is in the v1.0.0 historical entry, do NOT touch it**
22
+
23
+ ---
24
+
25
+ ## Task 1: Fix plugin.json (version bump + add seo-geo agent)
26
+
27
+ **Files:** Modify `plugin.json`
28
+
29
+ **What & Why:** Version is still `1.3.2` but the codebase is on v1.4.0. The `agents` array is missing `agents/seo-geo.md` which was added in v1.4.0.
30
+
31
+ **Safe to change:** Purely additive - adding one entry to the array and bumping a string.
32
+
33
+ - [ ] Open `plugin.json`, verify current state:
34
+ - `"version": "1.3.2"` ← stale
35
+ - agents array has 6 items, ends with `"agents/seo-visual.md"` ← missing seo-geo
36
+ - [ ] Change `"version"` from `"1.3.2"` to `"1.4.0"`
37
+ - [ ] Add `"agents/seo-geo.md"` to the `agents` array (after `"agents/seo-visual.md"`)
38
+ - [ ] Verify the JSON is valid: `python3 -c "import json; json.load(open('.claude-plugin/plugin.json'))"`
39
+ - [ ] Commit:
40
+ ```bash
41
+ git add .claude-plugin/plugin.json
42
+ git commit -m "fix: bump plugin.json to v1.4.0 and add seo-geo agent"
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Task 2: Fix README.md (H1 keyword, ToC, version badge, architecture count)
48
+
49
+ **Files:** Modify `README.md`
50
+
51
+ **What & Why:**
52
+ - H1 is `# Claude SEO` (weak keyword signal) → add keyword suffix
53
+ - No Table of Contents (10+ sections, hard to navigate)
54
+ - Only 2 badges → add GitHub release version badge
55
+ - Architecture block says `Subagents (6 total)` → should be 7
56
+
57
+ **Safe to change:** All edits are in isolated sections. No cross-file references break.
58
+
59
+ - [ ] Strengthen H1 (line 5):
60
+ - Change `# Claude SEO` -> `# Claude SEO: SEO Audit Skill for Claude Code`
61
+ - [ ] Add version badge after existing badges (line 12, after License badge):
62
+ ```markdown
63
+ [![Version](https://img.shields.io/github/v/release/AgriciDaniel/claude-seo)](https://github.com/AgriciDaniel/claude-seo/releases)
64
+ ```
65
+ - [ ] Add Table of Contents between the intro paragraph and `## Installation` section.
66
+ Insert after line 12 (the badges block), before line 14 (`## Installation`):
67
+ ```markdown
68
+
69
+ ## Table of Contents
70
+
71
+ - [Installation](#installation)
72
+ - [Quick Start](#quick-start)
73
+ - [Commands](#commands)
74
+ - [Features](#features)
75
+ - [Architecture](#architecture)
76
+ - [Extensions](#extensions)
77
+ - [Documentation](#documentation)
78
+ - [Requirements](#requirements)
79
+ - [Uninstall](#uninstall)
80
+ - [Contributing](#contributing)
81
+ ```
82
+ - [ ] Fix architecture block (line 181 after ToC insertion - find by content):
83
+ - Change `~/.claude/agents/seo-*.md # Subagents (6 total)` → `~/.claude/agents/seo-*.md # Subagents (7 total)`
84
+ - [ ] Verify no other "6 total" or "6 subagent" strings remain:
85
+ `grep -n "6 total\|6 subagent" README.md`
86
+ - [ ] Commit:
87
+ ```bash
88
+ git add README.md
89
+ git commit -m "docs: strengthen H1, add ToC and version badge, fix subagent count to 7"
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Task 3: Fix SECURITY.md (add response timeline)
95
+
96
+ **Files:** Modify `SECURITY.md`
97
+
98
+ **What & Why:** Missing acknowledgment and resolution timeline, required for full Community Standards score.
99
+
100
+ **Safe to change:** Pure addition to existing section.
101
+
102
+ - [ ] Add response timeline to the "Reporting a Vulnerability" section.
103
+ After the 3-item list and before `## Supported Versions`, insert:
104
+ ```markdown
105
+
106
+ ## Response Timeline
107
+
108
+ - **Acknowledgment**: Within 72 hours of report
109
+ - **Status update**: Within 7 days with initial assessment
110
+ - **Resolution**: We aim to release a fix within 30 days for confirmed vulnerabilities
111
+ ```
112
+ - [ ] Commit:
113
+ ```bash
114
+ git add SECURITY.md
115
+ git commit -m "docs: add vulnerability response timeline to SECURITY.md"
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Task 4: Create CITATION.cff
121
+
122
+ **Files:** Create `CITATION.cff`
123
+
124
+ **What & Why:** File doesn't exist. Enables academic citation. Required for GitHub Community Standards full score.
125
+
126
+ - [ ] Create `CITATION.cff` at repo root:
127
+ ```yaml
128
+ cff-version: 1.2.0
129
+ title: Claude SEO
130
+ message: >-
131
+ If you use this software, please cite it using the metadata from this file.
132
+ type: software
133
+ authors:
134
+ - alias: AgriciDaniel
135
+ given-names: Daniel
136
+ family-names: Agricidaniel
137
+ repository-code: 'https://github.com/AgriciDaniel/claude-seo'
138
+ url: 'https://github.com/AgriciDaniel/claude-seo'
139
+ license: MIT
140
+ version: 1.4.0
141
+ date-released: '2026-03-12'
142
+ keywords:
143
+ - seo
144
+ - claude-code
145
+ - ai-tools
146
+ - schema-markup
147
+ - e-e-a-t
148
+ - geo
149
+ ```
150
+ - [ ] Commit:
151
+ ```bash
152
+ git add CITATION.cff
153
+ git commit -m "docs: add CITATION.cff for academic citation support"
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Task 5: Create .github/ directory infrastructure
159
+
160
+ **Files:** Create 8 new files under `.github/`
161
+
162
+ **What & Why:** No `.github/` directory exists. This single gap zeros out: issue templates (20pts), PR template (10pts), devcontainer/Dependabot (15pts) in Community Health scoring. Creating these closes the biggest single scoring gap.
163
+
164
+ **Safe to create:** Directory doesn't exist at all, so zero conflict risk.
165
+
166
+ ### 5a: Issue Templates
167
+
168
+ - [ ] Create `.github/ISSUE_TEMPLATE/bug_report.yml`:
169
+ ```yaml
170
+ name: Bug Report
171
+ description: Report a bug or unexpected behavior in Claude SEO
172
+ title: "[Bug]: "
173
+ labels: ["bug"]
174
+ body:
175
+ - type: markdown
176
+ attributes:
177
+ value: |
178
+ Thanks for reporting a bug! Please fill in as much detail as possible.
179
+ - type: input
180
+ id: os
181
+ attributes:
182
+ label: Operating System
183
+ description: e.g. macOS 14, Ubuntu 24.04, Windows 11
184
+ validations:
185
+ required: true
186
+ - type: input
187
+ id: python-version
188
+ attributes:
189
+ label: Python Version
190
+ description: Run `python3 --version`
191
+ validations:
192
+ required: true
193
+ - type: input
194
+ id: command
195
+ attributes:
196
+ label: Command that failed
197
+ description: e.g. `/seo audit https://example.com`
198
+ validations:
199
+ required: true
200
+ - type: textarea
201
+ id: error-output
202
+ attributes:
203
+ label: Full error output
204
+ description: Copy the complete terminal output
205
+ render: shell
206
+ validations:
207
+ required: true
208
+ - type: textarea
209
+ id: expected
210
+ attributes:
211
+ label: Expected behavior
212
+ description: What did you expect to happen?
213
+ validations:
214
+ required: true
215
+ ```
216
+
217
+ - [ ] Create `.github/ISSUE_TEMPLATE/feature_request.yml`:
218
+ ```yaml
219
+ name: Feature Request
220
+ description: Suggest a new feature or improvement for Claude SEO
221
+ title: "[Feature]: "
222
+ labels: ["enhancement"]
223
+ body:
224
+ - type: markdown
225
+ attributes:
226
+ value: |
227
+ Have a great idea? We'd love to hear it! For general discussion, consider using [GitHub Discussions](https://github.com/AgriciDaniel/claude-seo/discussions) instead.
228
+ - type: textarea
229
+ id: problem
230
+ attributes:
231
+ label: Problem statement
232
+ description: What problem does this feature solve?
233
+ validations:
234
+ required: true
235
+ - type: textarea
236
+ id: solution
237
+ attributes:
238
+ label: Proposed solution
239
+ description: Describe how you'd like it to work
240
+ validations:
241
+ required: true
242
+ - type: textarea
243
+ id: alternatives
244
+ attributes:
245
+ label: Alternatives considered
246
+ description: Any alternative solutions or features you've considered?
247
+ ```
248
+
249
+ - [ ] Create `.github/ISSUE_TEMPLATE/config.yml`:
250
+ ```yaml
251
+ blank_issues_enabled: false
252
+ contact_links:
253
+ - name: Question or Discussion
254
+ url: https://github.com/AgriciDaniel/claude-seo/discussions
255
+ about: Ask questions and discuss ideas in GitHub Discussions
256
+ ```
257
+
258
+ - [ ] Commit:
259
+ ```bash
260
+ git add .github/ISSUE_TEMPLATE/
261
+ git commit -m "ci: add YAML issue templates for bug reports and feature requests"
262
+ ```
263
+
264
+ ### 5b: PR Template
265
+
266
+ - [ ] Create `.github/PULL_REQUEST_TEMPLATE.md`:
267
+ ```markdown
268
+ ## Summary
269
+
270
+ <!-- What does this PR do? Why is it needed? -->
271
+
272
+ ## Type of Change
273
+
274
+ - [ ] Bug fix
275
+ - [ ] New feature / sub-skill
276
+ - [ ] Documentation update
277
+ - [ ] Refactor / code quality
278
+ - [ ] Other (describe below)
279
+
280
+ ## Checklist
281
+
282
+ - [ ] Tested with a real URL before submitting
283
+ - [ ] SKILL.md files stay under 500 lines (if modified)
284
+ - [ ] Python scripts output JSON (if modified)
285
+ - [ ] Reference files stay under 200 lines (if modified)
286
+ - [ ] `set -euo pipefail` used in any new shell scripts
287
+ - [ ] CHANGELOG.md updated with the change
288
+ ```
289
+ - [ ] Commit:
290
+ ```bash
291
+ git add .github/PULL_REQUEST_TEMPLATE.md
292
+ git commit -m "ci: add PR template with checklist"
293
+ ```
294
+
295
+ ### 5c: GitHub Actions CI
296
+
297
+ **What:** Python syntax validation for scripts in `scripts/`. No test suite exists, so this is the minimum viable CI. It validates that all scripts are syntactically correct Python 3.10+.
298
+
299
+ - [ ] Create `.github/workflows/ci.yml`:
300
+ ```yaml
301
+ name: CI
302
+
303
+ on:
304
+ push:
305
+ branches: [main]
306
+ pull_request:
307
+ branches: [main]
308
+
309
+ jobs:
310
+ lint:
311
+ name: Python Syntax Check
312
+ runs-on: ubuntu-latest
313
+ steps:
314
+ - uses: actions/checkout@v4
315
+
316
+ - name: Set up Python 3.10
317
+ uses: actions/setup-python@v5
318
+ with:
319
+ python-version: "3.10"
320
+
321
+ - name: Check Python syntax
322
+ run: |
323
+ python3 -m py_compile scripts/fetch_page.py
324
+ python3 -m py_compile scripts/parse_html.py
325
+ python3 -m py_compile scripts/analyze_visual.py
326
+ python3 -m py_compile scripts/capture_screenshot.py
327
+ echo "All scripts passed syntax check"
328
+ ```
329
+ - [ ] Commit:
330
+ ```bash
331
+ git add .github/workflows/ci.yml
332
+ git commit -m "ci: add GitHub Actions workflow for Python syntax validation"
333
+ ```
334
+
335
+ ### 5d: Dependabot
336
+
337
+ - [ ] Create `.github/dependabot.yml`:
338
+ ```yaml
339
+ version: 2
340
+ updates:
341
+ - package-ecosystem: "pip"
342
+ directory: "/"
343
+ schedule:
344
+ interval: "weekly"
345
+ labels:
346
+ - "dependencies"
347
+
348
+ - package-ecosystem: "github-actions"
349
+ directory: "/"
350
+ schedule:
351
+ interval: "weekly"
352
+ labels:
353
+ - "dependencies"
354
+ ```
355
+ - [ ] Commit:
356
+ ```bash
357
+ git add .github/dependabot.yml
358
+ git commit -m "ci: add Dependabot for pip and GitHub Actions updates"
359
+ ```
360
+
361
+ ### 5e: FUNDING and Release Config
362
+
363
+ - [ ] Create `.github/FUNDING.yml`:
364
+ ```yaml
365
+ # Funding links for this project
366
+ # See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
367
+ custom:
368
+ - https://www.skool.com/ai-marketing-hub-pro
369
+ ```
370
+
371
+ - [ ] Create `.github/release.yml`:
372
+ ```yaml
373
+ changelog:
374
+ exclude:
375
+ labels:
376
+ - ignore-for-release
377
+ categories:
378
+ - title: Security
379
+ labels:
380
+ - security
381
+ - title: New Features
382
+ labels:
383
+ - enhancement
384
+ - feature
385
+ - title: Bug Fixes
386
+ labels:
387
+ - bug
388
+ - fix
389
+ - title: Documentation
390
+ labels:
391
+ - documentation
392
+ - docs
393
+ - title: Dependencies
394
+ labels:
395
+ - dependencies
396
+ - title: Other Changes
397
+ labels:
398
+ - "*"
399
+ ```
400
+
401
+ - [ ] Commit:
402
+ ```bash
403
+ git add .github/FUNDING.yml .github/release.yml
404
+ git commit -m "ci: add FUNDING.yml and release.yml for auto-generated release notes"
405
+ ```
406
+
407
+ ---
408
+
409
+ ## Task 6: Update GitHub Repository Settings
410
+
411
+ **What & Why:** These are GitHub UI settings that can be set via `gh repo edit`. Cannot be done via file commits; must use the CLI.
412
+
413
+ **Changes:**
414
+ 1. Enable Discussions (currently off, but CONTRIBUTING.md tells users to use it)
415
+ 2. Disable Wiki (currently on but unused, misleads visitors)
416
+ 3. Fix description ("6 subagents" → "7 subagents")
417
+ 4. Add topics: `python`, `skill`
418
+
419
+ **IMPORTANT:** These changes take effect immediately on the remote repo. Verify with `gh repo view` after each change.
420
+
421
+ - [ ] Enable Discussions:
422
+ ```bash
423
+ gh repo edit AgriciDaniel/claude-seo --enable-discussions
424
+ ```
425
+ Verify: `gh repo view AgriciDaniel/claude-seo --json hasDiscussionsEnabled --jq .hasDiscussionsEnabled`
426
+ Expected: `true`
427
+
428
+ - [ ] Disable Wiki:
429
+ ```bash
430
+ gh repo edit AgriciDaniel/claude-seo --enable-wiki=false
431
+ ```
432
+ Verify: `gh repo view AgriciDaniel/claude-seo --json hasWikiEnabled --jq .hasWikiEnabled`
433
+ Expected: `false`
434
+
435
+ - [ ] Fix description (replace "6 subagents" with "7 subagents"):
436
+ ```bash
437
+ gh repo edit AgriciDaniel/claude-seo --description "Universal SEO skill for Claude Code. 13 sub-skills, 7 subagents, extensions system with DataForSEO MCP integration. Technical SEO, E-E-A-T, schema, GEO/AEO, and strategic planning."
438
+ ```
439
+ Verify: `gh repo view AgriciDaniel/claude-seo --json description --jq .description`
440
+
441
+ - [ ] Add topics `python` and `skill`:
442
+ ```bash
443
+ gh repo edit AgriciDaniel/claude-seo --add-topic python --add-topic skill
444
+ ```
445
+ Verify: `gh repo view AgriciDaniel/claude-seo --json repositoryTopics --jq '.repositoryTopics | map(.name)'`
446
+ Expected: 15 topics including `python` and `skill`
447
+
448
+ - [ ] Push all committed changes:
449
+ ```bash
450
+ git push origin main
451
+ ```
452
+
453
+ ---
454
+
455
+ ## Task 7: Final Verification
456
+
457
+ - [ ] Confirm all 8 `.github/` files exist:
458
+ ```bash
459
+ find .github/ -type f | sort
460
+ ```
461
+ Expected 8 files: 3 under ISSUE_TEMPLATE/, PR template, ci.yml, dependabot.yml, FUNDING.yml, release.yml
462
+
463
+ - [ ] Confirm CITATION.cff exists and is valid YAML:
464
+ ```bash
465
+ python3 -c "import yaml; yaml.safe_load(open('CITATION.cff'))" && echo "valid"
466
+ ```
467
+
468
+ - [ ] Confirm plugin.json is valid JSON and has 7 agents:
469
+ ```bash
470
+ python3 -c "import json; d=json.load(open('.claude-plugin/plugin.json')); print(d['version'], len(d['agents']))"
471
+ ```
472
+ Expected: `1.4.0 7`
473
+
474
+ - [ ] Confirm no stale "6 subagent/total" strings remain in actively-versioned content:
475
+ ```bash
476
+ grep -rn "6 subagent\|subagents (6\|6 total" --include="*.md" --include="*.json" . \
477
+ --exclude-dir=".git" --exclude-dir="claude-seo-main" --exclude-dir="claude-ads-main"
478
+ ```
479
+ Expected: Only line 123 in CHANGELOG.md (v1.0.0 historical entry, correct, do not touch)
480
+
481
+ - [ ] Confirm GitHub settings applied:
482
+ ```bash
483
+ gh repo view AgriciDaniel/claude-seo --json description,hasDiscussionsEnabled,hasWikiEnabled,repositoryTopics
484
+ ```
485
+
486
+ - [ ] Confirm CI workflow is visible on GitHub:
487
+ ```bash
488
+ gh workflow list --repo AgriciDaniel/claude-seo
489
+ ```
490
+
491
+ ---
492
+
493
+ ## Do NOT Change
494
+
495
+ - `CHANGELOG.md` line 123: "6 subagents" is in the v1.0.0 historical entry. It was accurate when written.
496
+ - `seo/SKILL.md`: already correctly says "7 subagents"
497
+ - `CLAUDE.md`: already correctly says "7 parallel subagents"
498
+ - `docs/ARCHITECTURE.md`, `docs/COMMANDS.md`: no stale counts found
499
+ - `scripts/mobile_analysis.py`: already in `.gitignore` as a generated file
500
+
501
+ ## Expected Score Impact
502
+
503
+ | Category | Before | Expected After |
504
+ |----------|--------|---------------|
505
+ | README Quality | 79 | ~84 (H1, ToC, badge) |
506
+ | Metadata & Discovery | 79 | ~87 (description, topics, Discussions) |
507
+ | Legal Compliance | 78 | ~88 (CITATION.cff, SECURITY timeline) |
508
+ | Community Health | 38 | ~68 (issue templates, PR template, dependabot) |
509
+ | Release & Maintenance | 67 | ~80 (CI, dependabot, release.yml, badge) |
510
+ | SEO & Discoverability | 73 | ~79 (Discussions, keyword H1) |
511
+ | **Overall** | **70** | **~81** |
@@ -0,0 +1,95 @@
1
+ # Banana Image Generation Extension for SEO Kit
2
+
3
+ Generate production-ready SEO images using AI: OG/social previews, blog heroes,
4
+ product photography, infographics, and more. Powered by Google Gemini via the
5
+ banana Creative Director pipeline.
6
+
7
+ ## Prerequisites
8
+
9
+ > This extension wraps [Claude Banana](https://github.com/AgriciDaniel/banana-claude)
10
+ > for SEO-specific use cases. Install the standalone skill for general-purpose image generation.
11
+
12
+ - **SEO Kit** installed (`.agent/skills/seo/`)
13
+ - **Node.js 18+** with npx
14
+ - **Google AI API key** (free at [aistudio.google.com/apikey](https://aistudio.google.com/apikey))
15
+ - **ImageMagick** (optional, for post-processing)
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ ./extensions/banana/install.sh
21
+ ```
22
+
23
+ The installer will:
24
+ 1. Verify SEO Kit is installed
25
+ 2. Prompt for your Google AI API key (if nanobanana-mcp not already configured)
26
+ 3. Install the `seo-image-gen` skill to `.agent/skills/`
27
+ 4. Configure the MCP server
28
+
29
+ ## Commands
30
+
31
+ | Command | What it does |
32
+ |---------|-------------|
33
+ | `/seo image-gen og <description>` | OG/social preview image (1200x630 feel) |
34
+ | `/seo image-gen hero <description>` | Blog hero image (widescreen, dramatic) |
35
+ | `/seo image-gen product <description>` | Product photography (clean, white BG) |
36
+ | `/seo image-gen infographic <description>` | Infographic visual (vertical, data-heavy) |
37
+ | `/seo image-gen custom <description>` | Custom with full Creative Director pipeline |
38
+ | `/seo image-gen batch <description> [N]` | Generate N variations (default: 3) |
39
+
40
+ ## Use Case Defaults
41
+
42
+ | Use Case | Aspect Ratio | Resolution | Domain Mode | Cost |
43
+ |----------|-------------|------------|-------------|------|
44
+ | OG/Social Preview | 16:9 | 1K | Product/UI | ~$0.04 |
45
+ | Blog Hero | 16:9 | 2K | Cinema/Editorial | ~$0.08 |
46
+ | Product Photo | 4:3 | 2K | Product | ~$0.08 |
47
+ | Infographic | 2:3 | 4K | Infographic | ~$0.16 |
48
+ | Social Square | 1:1 | 1K | UI/Web | ~$0.04 |
49
+ | Favicon/Icon | 1:1 | 512 | Logo | ~$0.02 |
50
+
51
+ ## How It Works
52
+
53
+ The agent acts as a **Creative Director**. It never passes raw text to the API.
54
+ Instead, it analyzes your intent, selects the optimal domain mode, and constructs
55
+ an optimized prompt using a proven 6-component Reasoning Brief system:
56
+
57
+ 1. **Subject** (30%):Physical specificity and micro-details
58
+ 2. **Style** (25%):Camera specs, film stock, brand references
59
+ 3. **Context** (15%):Location, time, weather, supporting elements
60
+ 4. **Action** (10%):Pose, gesture, movement, state
61
+ 5. **Composition** (10%):Shot type, framing, focal length
62
+ 6. **Lighting** (10%):Direction, quality, color temperature
63
+
64
+ ## Post-Generation SEO Checklist
65
+
66
+ After every generation, the agent provides:
67
+ - Alt text suggestion (keyword-rich, descriptive)
68
+ - SEO-friendly file naming convention
69
+ - WebP conversion command
70
+ - ImageObject schema snippet
71
+ - OG meta tag markup (for social previews)
72
+
73
+ ## Audit Integration
74
+
75
+ During `/seo-audit`, the extension activates an image analysis skill that:
76
+ - Audits existing OG/social images across the site
77
+ - Identifies missing or low-quality images
78
+ - Creates a prioritized generation plan with prompt suggestions
79
+ - Estimates total cost for the generation plan
80
+
81
+ The skill never auto-generates images. It produces a plan for your review.
82
+
83
+ ## Uninstallation
84
+
85
+ ```bash
86
+ ./extensions/banana/uninstall.sh
87
+ ```
88
+
89
+ This removes the skill files. If you also use [Claude Banana](https://github.com/AgriciDaniel/banana-claude),
90
+ the MCP server config is preserved.
91
+
92
+ ## Troubleshooting
93
+
94
+ See [docs/BANANA-SETUP.md](docs/BANANA-SETUP.md) for detailed setup instructions
95
+ and common issues.
@@ -0,0 +1,86 @@
1
+ # Banana Extension Setup Guide
2
+
3
+ ## Google AI API Key
4
+
5
+ 1. Go to [aistudio.google.com/apikey](https://aistudio.google.com/apikey)
6
+ 2. Sign in with your Google account
7
+ 3. Click "Create API key"
8
+ 4. Copy the key. You'll need it during installation
9
+
10
+ **Free tier limits:**
11
+ - ~10 requests per minute (RPM)
12
+ - ~500 requests per day (RPD)
13
+ - Resets at midnight Pacific time
14
+
15
+ ## MCP Server Configuration
16
+
17
+ The installer configures this automatically. If you need to set it up manually,
18
+ add to `your MCP settings`:
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "nanobanana-mcp": {
24
+ "command": "npx",
25
+ "args": ["-y", "@ycse/nanobanana-mcp@latest"],
26
+ "env": {
27
+ "GOOGLE_API_KEY": "your-api-key-here"
28
+ }
29
+ }
30
+ }
31
+ }
32
+ ```
33
+
34
+ ## Verifying Installation
35
+
36
+ Run the validation script:
37
+ ```bash
38
+ python3 .agent/skills/seo-image-gen/scripts/validate_setup.py
39
+ ```
40
+
41
+ Or check manually:
42
+ 1. `ls .agent/skills/seo-image-gen/SKILL.md`:skill file exists
43
+ 2. `ls .agent/skills/seo-image-gen.md`:agent file exists
44
+ 3. `grep nanobanana your MCP settings`:MCP configured
45
+
46
+ ## Common Issues
47
+
48
+ ### "MCP tools not available"
49
+ - Restart your AI agent after installing the extension
50
+ - Verify your API key is valid at [aistudio.google.com](https://aistudio.google.com)
51
+ - Check `your MCP settings` has the nanobanana-mcp entry
52
+
53
+ ### "Rate limited (429)"
54
+ - Free tier: ~10 requests/minute, ~500/day
55
+ - Wait 60 seconds and retry
56
+ - For batch operations, add delays between requests
57
+
58
+ ### "IMAGE_SAFETY" error
59
+ - The safety filter flagged your prompt (often a false positive)
60
+ - Claude will suggest rephrased alternatives automatically
61
+ - Common triggers: certain color descriptions, implied scenarios
62
+ - See `references/prompt-engineering.md` Safety Rephrase section
63
+
64
+ ### "Node.js version too old"
65
+ - Requires Node.js 18+
66
+ - Update via nvm: `nvm install 18 && nvm use 18`
67
+ - Or download from [nodejs.org](https://nodejs.org/)
68
+
69
+ ### Generated images not appearing
70
+ - Default output directory: `~/Documents/nanobanana_generated/`
71
+ - Check the path returned by Claude after generation
72
+ - Verify disk space is available
73
+
74
+ ## ImageMagick (Optional)
75
+
76
+ For post-processing (WebP conversion, cropping, background removal):
77
+
78
+ ```bash
79
+ # Ubuntu/Pop!_OS
80
+ sudo apt install imagemagick
81
+
82
+ # Verify
83
+ magick --version
84
+ ```
85
+
86
+ If `magick` (v7) is not available, the scripts fall back to `convert` (v6).