Add comprehensive SEO + GEO instructions across all 12 AI coding tools#11
Add comprehensive SEO + GEO instructions across all 12 AI coding tools#11
Conversation
📝 WalkthroughWalkthroughAdds a cross-repo “SEO + GEO” specification and supporting audit artifacts: many new geo-seo rule documents across tool directories, a 17-step Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@claude-code/.claude/rules/geo-seo.md`:
- Around line 151-200: The robots.txt example code fence in the geo-seo rules
(the triple-backtick block that begins with "# Standard search engines" /
"User-agent: Googlebot") should include a language identifier for proper
highlighting; change the opening fence from "```" to "```txt" so the block is
explicitly marked as plain text.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 04cbe481-7e51-466f-a49c-2ee3edcbf5cf
📒 Files selected for processing (4)
README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.md
…ng, platform presence, defensive awareness, citation volatility
…g audit, platform presence, defensive review, updated statistics
…a, semantic writing, defensive awareness
…a, semantic writing, defensive awareness
…/Wikidata, semantic writing, defensive awareness
…ata, semantic writing, defensive awareness
…data, semantic writing, defensive awareness
…ata, semantic writing, defensive awareness
…ikidata, semantic writing, defensive awareness
…/Wikidata, semantic writing, defensive awareness
…, semantic writing, defensive awareness
There was a problem hiding this comment.
Actionable comments posted: 10
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@augment-code/.augment/rules/geo-seo.md`:
- Around line 131-177: The fenced robots.txt block is missing a language
identifier which triggers markdownlint rule MD040; update the opening code fence
for the robots.txt block (the triple-backtick that begins the fenced block
containing "User-agent: Googlebot" through "Sitemap:
https://yoursite.com/sitemap.xml") to include a language tag such as txt (e.g.,
change ``` to ```txt) so the block is explicitly marked and MD040 is satisfied.
- Around line 203-216: The fenced examples need normalized Markdown fencing and
surrounding blank lines to satisfy MD031/MD040: for the citable paragraph block
add a language tag (e.g., use ```txt) and ensure there is a blank line before
and after the fenced block, and for the Definition block wrap the HTML example
in a fenced block with language tag (```html) also surrounded by blank lines;
specifically update the occurrence of the triple-backtick block containing
"[Direct statement of fact]..." to use ```txt and add blank lines around it, and
update the Definition example to be enclosed in ```html with blank lines before
and after so both the citable paragraph and the `<section id="what-is-term">`
example comply.
In `@claude-code/.claude/rules/geo-seo.md`:
- Around line 311-328: The fenced code examples in the geo-seo rules (the "Every
key claim follows this structure" block, the "FAQ block pattern", and the
"Definition block pattern" shown around the `<section id="what-is-term">`
example) need proper fenced-code language tags and blank-line separation to
satisfy MD031/MD040; update the first generic paragraph fence to use a language
(e.g., ```txt) and add a blank line between adjacent fenced blocks (and ensure
the HTML example uses ```html) so each fenced block is correctly labeled and
separated.
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md`:
- Around line 11-12: The markdown heading "## When to Use" is immediately
followed by a list and violates MD022; add a single blank line between the
heading ("## When to Use") and the following list so the heading is separated
from the list by an empty line to satisfy markdownlint.
In `@gemini-cli/GEMINI.md`:
- Around line 433-450: The large "GEO + SEO — Advocacy Website Visibility" rule
block (the heading and its entire content) exceeds the file's
instruction-budget; extract that whole section into a new rule/skill file (e.g.,
a separate GEO_SEO.md or rules/gseo.md) and replace it here with a concise
pointer line such as "See GEO + SEO guidance in [GEO SEO rules]" linking to the
new file; ensure the moved content retains its heading "GEO + SEO — Advocacy
Website Visibility", all subsections (HTML structure, Structured data (JSON-LD),
Meta tags, robots.txt, Sitemap and architecture, Performance, Content patterns
that earn AI citations) and metadata so nothing is lost, and update any internal
references to point to the new file.
In `@github-copilot/.github/prompts/geo-seo-audit.prompt.md`:
- Around line 5-45: The prompt omits the repo’s expanded GEO audit areas
(Wikipedia/Wikidata and defensive-risk checks) so update the
geo-seo-audit.prompt.md steps to match the full GEO model by adding explicit
steps (e.g., "Step X: Audit Wikipedia/Wikidata" and "Step Y: Audit Defensive &
Risk Checks") and include specific checks and validation actions for each (what
to verify, where to validate, and expected metadata/sources). Also update the
"Findings Report" section to include corresponding Critical/High/Medium/Low
entries for Wikipedia/Wikidata issues and defensive-risk findings, and ensure
cross-references to existing symbols like "Step 2: Audit Structured Data
(JSON-LD)" and "Step 9: Findings Report" so reviewers can locate and align the
new checks with the current JSON-LD, meta, robots, and sitemap audit items.
In `@jetbrains-junie/.junie/guidelines.md`:
- Around line 410-426: The GEO+SEO guideline "GEO + SEO — Advocacy Website
Visibility" is missing high-impact audit domains (semantic writing for
retrieval, Wikipedia/Wikidata, authoritative platform publishing,
defensive-awareness guardrails) referenced in
claude-code/.claude/rules/geo-seo.md; update the Junie rules by adding a
dedicated subsection or checklist entries under the same "GEO + SEO" heading
that enumerate each missing domain, describe the required checks (e.g., semantic
writing practices for retrieval, verification/citation protocols for
Wikipedia/Wikidata, requirements for authoritative-platform publishing, and
defensive-awareness guardrails), and reference the existing Schema/metadata,
robots, and content modules (Structured data (JSON-LD), Meta tags, robots.txt)
so audits use consistent criteria across tools. Ensure the new entries use the
same concise checklist format and link back to the Article/FAQ/Organization
schema rules to keep tool-independent audit outcomes consistent.
In `@kilo-code/.kilocode/rules/geo-seo.md`:
- Line 131: Several fenced code blocks are triggering markdownlint rules MD040
and MD031 because they lack language identifiers and blank lines around the
fences; update each plain ``` fence to include a language tag (e.g., ```txt) and
ensure there is a blank line before and after the fenced block, including the
"citable paragraph pattern" example and the User-agent/Sitemap example, so the
fences read as a properly delimited block with a language identifier and
surrounding blank lines to satisfy MD040/MD031.
- Around line 1-236: The GEO+SEO rules file is missing four mandatory policy
areas compared to the canonical set: "semantic writing for AI retrieval",
"Wikipedia/Wikidata strategy", "authoritative third-party platform publishing",
and "defensive-awareness prohibitions"; add four new sections to
kilo-code/.kilocode/rules/geo-seo.md with clear, actionable guidance mirroring
the canonical content in claude-code/.claude/rules/geo-seo.md (include goals,
required markup/metadata, examples, and enforcement notes), place them alongside
existing major headings like "HTML Structure" and "Structured Data (JSON-LD)" so
they integrate with the modular guidance, and ensure each new section includes
required artifacts (e.g., semantic writing patterns, citation strategy to
Wikipedia/Wikidata, checklist for publishing to third-party platforms, and
explicit prohibitions + detection tips for defensive-awareness content) and
references to update rules/tests that assert their presence.
In `@roo-code/.roo/rules/geo-seo.md`:
- Around line 181-184: The XML Sitemap section omits concrete size limits
causing inconsistent implementations: update the "XML Sitemap" paragraph to
state explicit limits (max 50,000 URLs per sitemap and 50MB uncompressed file
size), require use of sitemap index files when those limits are exceeded,
recommend splitting by canonical grouping (matching the canonical rule set) and
include guidance to reference sitemap locations in robots.txt and to submit
sitemap index to Google Search Console and Bing Webmaster Tools; also note
<lastmod> must reflect actual update dates and be preserved when
generating/regenerating sitemaps automatically.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6de0a9ef-bfcb-46ce-9ad1-d0e537d59285
📒 Files selected for processing (14)
agents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
gemini-cli/GEMINI.md
Outdated
|
|
||
| ## GEO + SEO — Advocacy Website Visibility | ||
|
|
||
| Websites built for animal advocacy serve two discovery channels: traditional search engines and AI answer systems (ChatGPT, Perplexity, Google AI Overviews, Claude, Gemini, Bing Copilot). Approximately 60% of searches end without a click — AI systems are the fastest-growing discovery channel with distinct citation requirements. Apply these rules when building or modifying any public-facing advocacy website. | ||
|
|
||
| **HTML structure.** Every page needs exactly one `<h1>` containing the primary topic. Use a logical heading hierarchy (h1 > h2 > h3), never skipping levels. Phrase h2 headings as questions — question-based headings produce 7× more AI citations for smaller sites. The first paragraph after any heading must directly answer that question in 40-60 words; AI systems pull from the first 30% of content 44% of the time. Keep paragraphs to 2-4 sentences (40-60 words). Structure content as self-contained 120-180 word modules — this modular pattern generates 70% more ChatGPT citations than unstructured prose. Use semantic HTML correctly: article, section, nav, aside, header, footer, main. Add lang attribute to html element. Every img must have descriptive alt text. Every anchor must have meaningful text — never "click here". Use table for comparison data (32.5% of AI-cited content uses tables), ol and ul for lists (78% of AI answers include list formats), blockquote with cite attribute for expert quotations (+28-40% AI visibility). Flag any content rendered exclusively by JavaScript — AI crawlers often skip JS rendering. Do NOT keyword-stuff — stuffing decreases AI visibility by 10%. | ||
|
|
||
| **Structured data (JSON-LD).** This is the single highest-leverage GEO action: 41% citation rate with schema vs 15% without, yet only 12.4% of websites implement it. Every page needs Organization + WebSite schema in a @graph array. Every content page needs Article schema with headline, author (with name, url, jobTitle), publisher, datePublished, dateModified, image, and description. Any page with Q&A content needs FAQPage schema with 40-80 word direct answers per question. Also implement when applicable: HowTo, BreadcrumbList, SoftwareApplication, Event, Dataset, Person. Always use JSON-LD format, not Microdata. Keep dateModified accurate. Validate at schema.org/validator. | ||
|
|
||
| **Meta tags.** Title tag: Primary Keyword — Brand Name, 50-60 chars, keywords first, unique per page. Meta description: 150-160 chars, direct factual answer to the primary query, one specific statistic, never duplicated across pages. Every page needs a canonical link tag, full Open Graph tags (og:title, og:description, og:type, og:url, og:image, og:site_name), Twitter Card tags, and article timestamp tags in ISO 8601 format. | ||
|
|
||
| **robots.txt.** Allow AI citation crawlers — they power AI answer systems: OAI-SearchBot, ChatGPT-User, PerplexityBot, ClaudeBot, Claude-SearchBot, Applebot, Amazonbot. Optionally block AI training crawlers if not consenting to training use: GPTBot, CCBot, Google-Extended. Include a Sitemap directive. Note: blocking Googlebot blocks both Google Search AND Google AI Overviews — there is no way to separate them. | ||
|
|
||
| **Sitemap and architecture.** XML sitemap at /sitemap.xml with accurate lastmod dates — never fake them. Submit to Google Search Console and Bing Webmaster Tools. Regenerate automatically on content changes. Use descriptive hyphenated lowercase URLs under 75 characters, max 3 levels deep, canonical tags on every page. Implement hub-and-spoke topic cluster model: pillar page (2,000-4,000 words) + 8-15 cluster pages with bidirectional links — increases AI citation rate from 12% to 41%. Display "Last Updated" visibly with time[datetime] tag; synchronize with dateModified in schema (76% of most-cited AI content was updated within 30 days). | ||
|
|
||
| **Performance.** AI crawlers timeout at 1-5 seconds: TTFB under 200ms, LCP under 2.5s, CLS under 0.1, page weight under 1MB. Require SSR or SSG — AI crawlers often skip JavaScript rendering. Enforce HTTPS. | ||
|
|
||
| **Content patterns that earn AI citations.** Citable paragraph: direct statement of fact, specific statistic with attribution, brief elaboration, named source and date. Author attribution on every content page — visible name, credentials, link to profile page with Person schema — increases AI citations by 40%. Pages over 2,900 words are 59% more likely to be cited. Original or proprietary data generates 4.31× more citations per URL. Adding statistics to claims increases AI visibility by 41%. Citing credible sources inline increases AI visibility by 30-40%. Expert quotations increase AI visibility by 28-40%. |
There was a problem hiding this comment.
New GEO/SEO block conflicts with this file’s instruction-budget constraint.
Line 432 warns about an effective instruction budget, but this large append increases prompt load and can reduce compliance with higher-priority safety rules in the same file. Move GEO/SEO into a separate rule/skill file and keep a short pointer here.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@gemini-cli/GEMINI.md` around lines 433 - 450, The large "GEO + SEO — Advocacy
Website Visibility" rule block (the heading and its entire content) exceeds the
file's instruction-budget; extract that whole section into a new rule/skill file
(e.g., a separate GEO_SEO.md or rules/gseo.md) and replace it here with a
concise pointer line such as "See GEO + SEO guidance in [GEO SEO rules]" linking
to the new file; ensure the moved content retains its heading "GEO + SEO —
Advocacy Website Visibility", all subsections (HTML structure, Structured data
(JSON-LD), Meta tags, robots.txt, Sitemap and architecture, Performance, Content
patterns that earn AI citations) and metadata so nothing is lost, and update any
internal references to point to the new file.
There was a problem hiding this comment.
Re: extracting the GEO+SEO section to a separate file
This is architecturally impossible for Gemini CLI. The gemini-cli/README.md explicitly states that GEMINI.md is the sole instruction file — there is no mechanism for persistent project-level rules in any other location. A separate GEO_SEO.md file would never be read by the tool.
The section has been condensed specifically to fit within the practical instruction budget while preserving the highest-impact rules (Core Web Vitals thresholds, entity salience, Wikipedia/Wikidata, structured data, robots.txt citation crawlers, and defensive awareness). The condensation is intentional — lower-priority details that are fully covered in the standalone rule files for other tools (claude-code, cursor, etc.) are omitted here to stay within budget.
This is a known architectural constraint of Gemini CLI, not an oversight. The canonical full rule set lives in claude-code/.claude/rules/geo-seo.md for tools that support separate rule files.
There was a problem hiding this comment.
@stuckvgn, understood — thanks for the clear explanation. You're right that my suggestion was architecturally invalid for Gemini CLI. Since GEMINI.md is the only file the tool loads, extraction to a separate file would silently drop all GEO+SEO guidance. The intentional condensation to ~50 lines, prioritizing the highest-impact rules while deferring the full playbook to claude-code/.claude/rules/geo-seo.md, is exactly the right approach given the tool's constraints. I'll withdraw this comment.
✏️ Learnings added
Learnt from: stuckvgn
Repo: Open-Paws/structured-coding-with-ai PR: 11
File: gemini-cli/GEMINI.md:0-0
Timestamp: 2026-03-28T21:25:36.222Z
Learning: In the `Open-Paws/structured-coding-with-ai` repository, `gemini-cli/GEMINI.md` is the **sole** instruction file that Gemini CLI reads. There is no mechanism for persistent project-level rules in any other location — separate files such as `GEO_SEO.md` or `rules/geo-seo.md` are never loaded by the tool. Any guidance that needs to be available to Gemini CLI must be included directly in `GEMINI.md`, kept concise to stay within the effective instruction budget (~150-200 instructions). The canonical full GEO+SEO rule set lives in `claude-code/.claude/rules/geo-seo.md` for tools that support separate rule files.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@augment-code/.augment/rules/geo-seo.md`:
- Around line 331-340: The Security headers list is missing two headers present
in the canonical baseline: add entries for Permissions-Policy and
Cross-Origin-Opener-Policy to this file's Security headers section so it matches
claude-code/.claude/rules/geo-seo.md; specifically add a Permissions-Policy line
(e.g., Permissions-Policy: geolocation=(), microphone=(), camera=()) and a
Cross-Origin-Opener-Policy line (e.g., Cross-Origin-Opener-Policy: same-origin)
and ensure the wording/values match the canonical file so derived configs stay
synchronized.
- Line 1: Add YAML frontmatter to the top of geo-seo.md with at minimum the
fields source and last_synced so this rules file can be tracked against the
canonical copy; e.g. insert a frontmatter block (---) containing source:
"<canonical-source-identifier>" and last_synced: "<YYYY-MM-DDTHH:MM:SSZ>" (or
null/placeholder) and optionally a sync_note field, ensuring valid YAML and the
block is the first thing in the file so tools that read source/last_synced can
detect drift.
In `@claude-code/.claude/rules/geo-seo.md`:
- Around line 1-17: Add the new geo-seo rule to the rules index and update the
scoped-rule count: in claude-code/.claude/rules/README.md add a table row for
geo-seo.md using the activation patterns shown in the geo-seo.md header (paths:
"**/*.html", "**/robots.txt", "**/sitemap.xml", "**/llms.txt", "**/head/**",
"**/seo/**", "**/meta/**", "**/schema/**", "**/structured-data/**",
"**/layout.*", "**/Layout.*", "**/BaseHead.*", "**/Head.*") so it appears
alongside the other rule files, and in claude-code/.claude/README.md update the
count statement from "7 scoped rule files" to "9 scoped rule files".
In `@github-copilot/.github/instructions/geo-seo.md`:
- Around line 1-3: Registry out of sync: the new instruction file
github-copilot/.github/instructions/geo-seo.md is not listed in the instructions
README. Update the instructions registry in README.md to include an entry for
geo-seo.md (add it to the table, update any total count from 7 to 8, and ensure
its applyTo pattern or description matches the front-matter shown in the diff)
so the new file is discoverable alongside the existing instruction files.
In `@roo-code/.roo/rules/geo-seo.md`:
- Line 1: This file is missing frontmatter metadata for sync tracking; add a
YAML frontmatter block at the top containing at least the fields `source` (set
to "claude-code/.claude/rules/geo-seo.md") and `last_synced` (ISO 8601
timestamp), so the rule can be drift-tracked against the canonical source;
ensure the frontmatter is the first content in the file and does not alter the
existing heading "# SEO + GEO Rules for Animal Advocacy Websites".
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 23e5702f-a574-48a5-9cbe-fde3010af348
📒 Files selected for processing (17)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
| --- | ||
| paths: | ||
| - "**/*.html" | ||
| - "**/robots.txt" | ||
| - "**/sitemap.xml" | ||
| - "**/llms.txt" | ||
| - "**/head/**" | ||
| - "**/seo/**" | ||
| - "**/meta/**" | ||
| - "**/schema/**" | ||
| - "**/structured-data/**" | ||
| - "**/layout.*" | ||
| - "**/Layout.*" | ||
| - "**/BaseHead.*" | ||
| - "**/Head.*" | ||
| --- | ||
| # SEO + GEO Rules for Animal Advocacy Websites |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Verify geo-seo rule registration in claude indexes =="
echo
echo "[1] Rule listed in claude-code/.claude/rules/README.md?"
rg -n "geo-seo\.md|SEO \+ GEO|geo-seo" claude-code/.claude/rules/README.md || true
echo
echo "[2] Scoped rules count statement in claude-code/.claude/README.md"
rg -n "scoped rule files|rules/" claude-code/.claude/README.md || true
echo
echo "[3] Actual rule files currently present"
fd -t f --glob "*.md" claude-code/.claude/rules | sortRepository: Open-Paws/structured-coding-with-ai
Length of output: 799
🏁 Script executed:
head -100 claude-code/.claude/rules/README.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 1943
🏁 Script executed:
git log --oneline -n 20 -- claude-code/.claude/rules/desloppify.md 2>/dev/null | head -5 || echo "No git history for desloppify.md"
cat -n claude-code/.claude/rules/desloppify.md | head -20Repository: Open-Paws/structured-coding-with-ai
Length of output: 1507
Add geo-seo.md to the rules table and update the scoped-rule count.
The new canonical geo-seo.md file is missing from the rules index in claude-code/.claude/rules/README.md. The table currently lists 7 files, but 9 rule files now exist. Add a row for geo-seo.md to the table with its activation patterns, and update the count statement in claude-code/.claude/README.md (line 7) from "7 scoped rule files" to "9 scoped rule files" to prevent discoverability drift.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@claude-code/.claude/rules/geo-seo.md` around lines 1 - 17, Add the new
geo-seo rule to the rules index and update the scoped-rule count: in
claude-code/.claude/rules/README.md add a table row for geo-seo.md using the
activation patterns shown in the geo-seo.md header (paths: "**/*.html",
"**/robots.txt", "**/sitemap.xml", "**/llms.txt", "**/head/**", "**/seo/**",
"**/meta/**", "**/schema/**", "**/structured-data/**", "**/layout.*",
"**/Layout.*", "**/BaseHead.*", "**/Head.*") so it appears alongside the other
rule files, and in claude-code/.claude/README.md update the count statement from
"7 scoped rule files" to "9 scoped rule files".
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (3)
roo-code/.roo/rules/geo-seo.md (1)
9-9:⚠️ Potential issue | 🟠 MajorInline citations are missing for quantitative claims.
This section states multiple hard metrics without source markers, making updates and verification error-prone and inconsistent with canonical-aligned variants.
Based on learnings, this rules file is a derived adaptation from
claude-code/.claude/rules/geo-seo.md, so evidence annotations should remain aligned.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@roo-code/.roo/rules/geo-seo.md` at line 9, This section contains multiple quantitative claims without inline citations; update geo-seo.md to add precise evidence annotations for each metric (e.g., "17-32%", "r=0.18", "r=0.40", "r=0.664", "80%") by inserting inline citation markers or footnotes that reference the original source and keep them aligned with the derived canonical in claude-code/.claude/rules/geo-seo.md; ensure each numeric claim has a matching citation identifier and the citation text matches the source used in the claude-code variant so verification and future updates remain consistent.windsurf/.windsurf/rules/geo-seo.md (1)
7-7:⚠️ Potential issue | 🟠 MajorAdd source attribution for quantitative GEO claims.
This block contains hard metrics without inline sources, which weakens verifiability and drifts from the canonical evidence style used in other tool variants.
Based on learnings, this file is a derived copy of
claude-code/.claude/rules/geo-seo.md, so evidence annotations should stay aligned across tool configs.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@windsurf/.windsurf/rules/geo-seo.md` at line 7, The paragraph asserting quantitative GEO metrics (the block starting "How AI citation works: Google generates an answer first...") must include inline source attributions for each numeric claim; update that paragraph to add parenthetical or bracketed citations (URLs or short source keys) for the percentages, correlation coefficients, and the 80% stat, and ensure the evidence annotation format matches the canonical style used in the claude-code variant (claude-code/.claude/rules/geo-seo.md) so the annotations remain aligned across tool configs.cursor/.cursor/rules/geo-seo.mdc (1)
10-10:⚠️ Potential issue | 🟠 MajorQuantitative claims need inline source attribution.
This paragraph includes multiple metrics without citation labels, which reduces auditability and deviates from the canonical evidence pattern.
Based on learnings, this file is derived from
claude-code/.claude/rules/geo-seo.md, so evidence annotations should stay in sync.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cursor/.cursor/rules/geo-seo.mdc` at line 10, The paragraph contains several quantitative claims (e.g., "17-32%", "r=0.18", "r=0.40", "r=0.664", "80%") with no inline evidence; update the paragraph in geo-seo.mdc to add inline source attributions after each metric using the repository's canonical evidence annotation format (match the pattern used elsewhere in this rules set), and ensure these citation annotations mirror the corresponding evidence entries in the originating rule so the annotations stay in sync with the source.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@claude-code/.claude/rules/geo-seo.md`:
- Around line 541-542: The doc mistakenly presents Tailwind utility names as
native CSS logical properties; update the text around "ps-4", "pe-4", and
"text-start" to clarify they are Tailwind classes and add the native CSS
equivalents `padding-inline-start`, `padding-inline-end`, and `text-align:
start`, and note that other frameworks or vanilla CSS should use those native
properties (or their framework-specific equivalents) rather than the Tailwind
names so downstream tool-specific docs are not misled.
In `@windsurf/.windsurf/rules/geo-seo.md`:
- Around line 333-343: Under the "Security headers" section add the missing
headers to match canonical guidance: include a Permissions-Policy entry (e.g.,
explicit feature allow/deny directives such as camera=(), microphone=(),
interest-cohort=()) and a Cross-Origin-Opener-Policy entry (e.g., same-origin or
same-origin-allow-popups) alongside the existing
CSP/HSTS/X-Content-Type-Options/X-Frame-Options/Referrer-Policy entries; update
the bullet list in the "Security headers" block so it documents these two
headers and provides recommended values and notes about how to set them in
Next.js middleware (the same list that currently contains
Content-Security-Policy, Strict-Transport-Security, etc.).
---
Duplicate comments:
In `@cursor/.cursor/rules/geo-seo.mdc`:
- Line 10: The paragraph contains several quantitative claims (e.g., "17-32%",
"r=0.18", "r=0.40", "r=0.664", "80%") with no inline evidence; update the
paragraph in geo-seo.mdc to add inline source attributions after each metric
using the repository's canonical evidence annotation format (match the pattern
used elsewhere in this rules set), and ensure these citation annotations mirror
the corresponding evidence entries in the originating rule so the annotations
stay in sync with the source.
In `@roo-code/.roo/rules/geo-seo.md`:
- Line 9: This section contains multiple quantitative claims without inline
citations; update geo-seo.md to add precise evidence annotations for each metric
(e.g., "17-32%", "r=0.18", "r=0.40", "r=0.664", "80%") by inserting inline
citation markers or footnotes that reference the original source and keep them
aligned with the derived canonical in claude-code/.claude/rules/geo-seo.md;
ensure each numeric claim has a matching citation identifier and the citation
text matches the source used in the claude-code variant so verification and
future updates remain consistent.
In `@windsurf/.windsurf/rules/geo-seo.md`:
- Line 7: The paragraph asserting quantitative GEO metrics (the block starting
"How AI citation works: Google generates an answer first...") must include
inline source attributions for each numeric claim; update that paragraph to add
parenthetical or bracketed citations (URLs or short source keys) for the
percentages, correlation coefficients, and the 80% stat, and ensure the evidence
annotation format matches the canonical style used in the claude-code variant
(claude-code/.claude/rules/geo-seo.md) so the annotations remain aligned across
tool configs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: f218b710-e6ba-434e-892c-64fd75525ddb
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
…props wording; add windsurf headers
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@agents-md/AGENTS.md`:
- Line 504: Replace the phrase “saw average position drops of 0.8 places” with
“saw an average ranking drop of 0.8 positions” to improve clarity; update the
sentence containing the INP/LCP statistics (the line referencing INP, LCP and
the primary technique `scheduler.yield()` ) so it reads: “Sites with INP above
200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more
traffic loss vs faster competitors.”
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: bc474a8e-ac81-4851-ac17-c2909235cda0
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
| | INP (Interaction to Next Paint) | ≤ 200ms | 200–500ms | > 500ms | | ||
| | CLS (Cumulative Layout Shift) | ≤ 0.1 | 0.1–0.25 | > 0.25 | | ||
|
|
||
| 43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. |
There was a problem hiding this comment.
Tighten wording for metric clarity.
“saw average position drops of 0.8 places” is awkward; use “saw an average ranking drop of 0.8 positions” for precision/readability.
✏️ Suggested edit
-43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them.
+43% of sites still fail the INP threshold. Sites with INP above 200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. | |
| 43% of sites still fail the INP threshold. Sites with INP above 200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. |
🧰 Tools
🪛 LanguageTool
[grammar] ~504-~504: Ensure spelling is correct
Context: ...the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 place...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@agents-md/AGENTS.md` at line 504, Replace the phrase “saw average position
drops of 0.8 places” with “saw an average ranking drop of 0.8 positions” to
improve clarity; update the sentence containing the INP/LCP statistics (the line
referencing INP, LCP and the primary technique `scheduler.yield()` ) so it
reads: “Sites with INP above 200ms saw an average ranking drop of 0.8 positions;
LCP above 3s causes 23% more traffic loss vs faster competitors.”
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
claude-code/.claude/README.md (1)
11-13:⚠️ Potential issue | 🟡 MinorUpdate skill count to match the geo-seo-audit addition.
Line 11 still references "6 process skill packages," but the PR adds the
geo-seo-auditskill (confirmed inclaude-code/.claude/skills/README.md), bringing the total to 7. Update the count for consistency.📝 Suggested fix
-- **`skills/`** — 6 process skill packages, each in its own subdirectory with a `SKILL.md` +- **`skills/`** — 7 process skill packages, each in its own subdirectory with a `SKILL.md` workflow file. Skills cover code review, git workflow, plan-first development, - requirements interview, security audit, and testing strategy. + requirements interview, security audit, testing strategy, and GEO + SEO audit.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/README.md` around lines 11 - 13, Update the count in the README entry for "skills/" from 6 to 7 to reflect the new geo-seo-audit skill; locate the line that reads "**`skills/`** — 6 process skill packages…" and change the numeral to 7, and confirm the new "geo-seo-audit" skill (present in the skills/ listing and its SKILL.md) is represented consistently.
♻️ Duplicate comments (1)
agents-md/AGENTS.md (1)
504-504:⚠️ Potential issue | 🟡 MinorTighten metric wording for clarity.
The phrase “saw average position drops of 0.8 places” is still awkward; use “saw an average ranking drop of 0.8 positions.”
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@agents-md/AGENTS.md` at line 504, Edit the sentence in AGENTS.md that reads "saw average position drops of 0.8 places" to the clearer wording "saw an average ranking drop of 0.8 positions" in the paragraph discussing INP (the line mentioning "43% of sites still fail the INP threshold" and "The primary INP technique is `scheduler.yield()`...") so the metric phrasing is concise and natural.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@claude-code/.claude/rules/geo-seo.md`:
- Line 507: The guidance wrongly uses React JSX casing `autoComplete` in
framework-agnostic documentation; update the sentence to clarify the distinction
and show the correct native HTML attribute `autocomplete` (lowercase) vs the
React prop `autoComplete` so implementers know to use `autocomplete` in HTML and
`autoComplete` in JSX; ensure the rule text replaces or augments the existing
mention so it explicitly states both names and their contexts (native HTML vs
React) to avoid misimplementation.
---
Outside diff comments:
In `@claude-code/.claude/README.md`:
- Around line 11-13: Update the count in the README entry for "skills/" from 6
to 7 to reflect the new geo-seo-audit skill; locate the line that reads
"**`skills/`** — 6 process skill packages…" and change the numeral to 7, and
confirm the new "geo-seo-audit" skill (present in the skills/ listing and its
SKILL.md) is represented consistently.
---
Duplicate comments:
In `@agents-md/AGENTS.md`:
- Line 504: Edit the sentence in AGENTS.md that reads "saw average position
drops of 0.8 places" to the clearer wording "saw an average ranking drop of 0.8
positions" in the paragraph discussing INP (the line mentioning "43% of sites
still fail the INP threshold" and "The primary INP technique is
`scheduler.yield()`...") so the metric phrasing is concise and natural.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 1635c269-6317-42c6-a8a8-f3e05101f2d2
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
|
|
||
| For nonprofit donation pages: present 3-4 preset amounts with the middle option pre-selected and pair amounts with impact descriptions ("$40/month provides clean water for 12 families"). Pre-select monthly giving — monthly donors become more valuable than one-time donors within 5.25 months, yet 64% of nonprofits still default to one-time. Single-step forms vastly outperform multi-step (52% drop in completions with multi-step). Eliminating site header navigation during the donation flow produced a documented 195% conversion increase. Embed the form directly on-site; never redirect to a third-party processor. | ||
|
|
||
| For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
In web forms, what is the correct attribute name in HTML vs React JSX: autocompleteorautoComplete?
💡 Result:
In HTML, the correct attribute name is autocomplete (kebab-case). In React JSX, it is autoComplete (camelCase). HTML uses kebab-case for attributes as per the specification. React converts JSX props from camelCase to the corresponding HTML attributes: autoComplete becomes autocomplete on the DOM element. Official sources confirm this: - MDN and WHATWG HTML spec document autocomplete for HTML elements. - React official documentation lists autoComplete as the prop for the input element, specifying autocomplete behaviors.
Citations:
- 1: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
- 2: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html
- 3: https://react.dev/reference/react-dom/components/input
- 4: https://react.dev/reference/react-dom/components/textarea
- 5: https://stackoverflow.com/questions/37503656/react-doesnt-render-autocomplete-off
Clarify autocomplete (HTML) vs autoComplete (React JSX) to avoid incorrect implementation.
The current line uses React-style casing in framework-agnostic guidance. In native HTML, the attribute is autocomplete (lowercase). Since this is the canonical source for derived tool docs, this distinction is important for clarity across frameworks.
✏️ Suggested edit
-For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5).
+For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autocomplete` attributes in HTML (React JSX uses `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@claude-code/.claude/rules/geo-seo.md` at line 507, The guidance wrongly uses
React JSX casing `autoComplete` in framework-agnostic documentation; update the
sentence to clarify the distinction and show the correct native HTML attribute
`autocomplete` (lowercase) vs the React prop `autoComplete` so implementers know
to use `autocomplete` in HTML and `autoComplete` in JSX; ensure the rule text
replaces or augments the existing mention so it explicitly states both names and
their contexts (native HTML vs React) to avoid misimplementation.
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 9
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
claude-code/.claude/README.md (1)
11-13:⚠️ Potential issue | 🟡 MinorUpdate skills count from 6 to 7 to match current registry.
geo-seo-audit/is now present in the skills index, so this top-level README line is outdated and can mislead users about available skills.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/README.md` around lines 11 - 13, Update the README line under "skills/" to reflect the current registry count: change "6 process skill packages" to "7 process skill packages" and mention that the skills index now includes the geo-seo-audit/ package (or ensure the top-level description implicitly covers geo-seo-audit/); edit the sentence that references "skills/" so it accurately states seven skill subdirectories and still references that each has a SKILL.md workflow file.
♻️ Duplicate comments (2)
agents-md/AGENTS.md (1)
504-504:⚠️ Potential issue | 🟡 MinorUse clearer metric phrasing for ranking impact sentence.
Line 504 still reads awkwardly (“average position drops of 0.8 places”). Prefer: “an average ranking drop of 0.8 positions.”
Suggested edit
-43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. +43% of sites still fail the INP threshold. Sites with INP above 200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@agents-md/AGENTS.md` at line 504, Update the awkward phrasing in the sentence that reads “average position drops of 0.8 places” to a clearer form such as “an average ranking drop of 0.8 positions” in AGENTS.md (the sentence discussing INP impact). Replace the existing fragment with the suggested wording and ensure surrounding punctuation and spacing remain consistent with the paragraph.claude-code/.claude/rules/geo-seo.md (1)
507-507:⚠️ Potential issue | 🟡 MinorUse
autocompletefor HTML and qualifyautoCompleteas JSX-specific.Line 507 is framework-agnostic guidance but uses JSX casing. This can mislead non-React implementations.
What is the correct autofill attribute name in HTML, and what is the corresponding React JSX prop name?🛠 Proposed fix
-For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autocomplete` attributes in HTML (React JSX uses `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/rules/geo-seo.md` at line 507, Update the guidance to clarify HTML vs JSX attribute names: state that the standard HTML attribute is "autocomplete" (lowercase) and the React JSX prop is "autoComplete" (camelCase); revise the sentence that currently uses `autoComplete` to either use `autocomplete` for framework-agnostic guidance or explicitly mention both forms (HTML: "autocomplete", React JSX: "autoComplete") and keep the WCAG note about SC 1.3.5 intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md`:
- Line 163: Update Step 8’s “Additional applicable types” list to include
LocalBusiness; locate the line containing the phrase "Additional applicable
types: HowTo, SoftwareApplication, Event, Dataset, VideoObject" in SKILL.md and
add LocalBusiness to that comma-separated list so it reads including
LocalBusiness.
- Line 264: Replace the JSX-specific attribute name `autoComplete` with the
standard HTML attribute name `autocomplete` in the SKILL.md checklist entry that
currently reads "autoComplete attributes on all form fields?"; update that
string so the doc is tool-agnostic and uses lowercase `autocomplete` (note: keep
React-specific usage unchanged elsewhere if explicitly React contexts exist).
In `@cursor/.cursor/rules/geo-seo.mdc`:
- Line 496: Replace the React JSX attribute name "autoComplete" with the native
HTML attribute name "autocomplete" wherever the document references form markup
(update the literal text "autoComplete" to "autocomplete"); also update the
sentence that mislabels utility classes as CSS logical properties to clearly
distinguish them—state that CSS logical properties (e.g., margin-inline-start,
inset-inline) are native browser properties while utility classes are
framework/author-provided helpers (mention the phrase "utility classes" and "CSS
logical properties" so you change the specific wording near the current
reference).
In `@github-copilot/.github/instructions/geo-seo.md`:
- Around line 336-343: Update the security header checklist to include the
missing Permissions-Policy and Cross-Origin-Opener-Policy (COOP) entries: add a
Permissions-Policy line (e.g., disable unused features like "geolocation=(),
camera=(), microphone=()") and add COOP set to "same-origin" (or
"same-origin-allow-popups" if needed) alongside the existing headers and the
middleware.ts guidance for Next.js; ensure the list still recommends HSTS, CSP
with nonces, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, fixing
mixed content, and removing X-Powered-By so the audit guidance is consistent.
- Line 492: Clarify the distinction between HTML and React attribute names by
explicitly stating that the HTML attribute is `autocomplete` while React JSX
uses `autoComplete` (update the sentence referencing `autoComplete`
accordingly), and separate the native CSS logical properties from
Tailwind/utility class equivalents by replacing or appending the utility-class
mentions `ps-4`, `pe-4`, and `text-start` with the native CSS equivalents
`padding-inline-start`, `padding-inline-end`, and `text-align: start` (or show
both forms side-by-side for clarity) so readers can see both the native property
names and their Tailwind counterparts.
In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md`:
- Line 163: Update the optional schema types list in SKILL.md by adding
"LocalBusiness" to the line currently reading "Additional applicable types:
HowTo, SoftwareApplication, Event, Dataset, VideoObject" so it matches the
canonical rule spec; ensure the text exactly includes LocalBusiness (e.g.,
"HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness") to
prevent false passes for location-based organizations.
- Line 264: Update the framework-agnostic checklist entry that currently reads
"`autoComplete` attributes on all form fields?" to use the HTML standard name by
replacing it with "`autocomplete` attributes on all form fields?" or, if you
want to note React specifically, change it to "`autocomplete` attributes on all
form fields? (camelCase `autoComplete` in React)"; target the text token
`autoComplete` in SKILL.md and make the replacement/clarification.
In `@README.md`:
- Around line 59-61: Update the README so the “process skills” counts are
consistent: in the table rows for "Claude Code", "Cursor", and "GitHub Copilot"
ensure the inventory numbers reflect the new 7 process skills (or change the
later "6 process skills" heading/text to "7 process skills"); specifically edit
the table entries shown and the later "6 process skills" section text so both
reference the same total (7) and adjust any related counts or descriptions that
assume six skills.
In `@windsurf/.windsurf/rules/geo-seo.md`:
- Line 493: Change framework-specific JSX terms to platform-standard names:
replace the mention of JSX's autoComplete with the HTML standard autocomplete
(you may optionally note "JSX: autoComplete" in parentheses). Also clarify that
ps-4, pe-4 and text-start are Bootstrap utility classes that map to CSS logical
properties rather than being logical properties themselves — rewrite the
sentence to say CSS logical properties (via utilities like ps-4, pe-4,
text-start) handle RTL mirroring or explicitly state that those Bootstrap
utilities map to native logical properties.
---
Outside diff comments:
In `@claude-code/.claude/README.md`:
- Around line 11-13: Update the README line under "skills/" to reflect the
current registry count: change "6 process skill packages" to "7 process skill
packages" and mention that the skills index now includes the geo-seo-audit/
package (or ensure the top-level description implicitly covers geo-seo-audit/);
edit the sentence that references "skills/" so it accurately states seven skill
subdirectories and still references that each has a SKILL.md workflow file.
---
Duplicate comments:
In `@agents-md/AGENTS.md`:
- Line 504: Update the awkward phrasing in the sentence that reads “average
position drops of 0.8 places” to a clearer form such as “an average ranking drop
of 0.8 positions” in AGENTS.md (the sentence discussing INP impact). Replace the
existing fragment with the suggested wording and ensure surrounding punctuation
and spacing remain consistent with the paragraph.
In `@claude-code/.claude/rules/geo-seo.md`:
- Line 507: Update the guidance to clarify HTML vs JSX attribute names: state
that the standard HTML attribute is "autocomplete" (lowercase) and the React JSX
prop is "autoComplete" (camelCase); revise the sentence that currently uses
`autoComplete` to either use `autocomplete` for framework-agnostic guidance or
explicitly mention both forms (HTML: "autocomplete", React JSX: "autoComplete")
and keep the WCAG note about SC 1.3.5 intact.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 00b5d2df-fe10-4fbd-9bd9-26444db3ead0
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
| - **FAQPage schema** on any page with Q&A content | ||
| - **BreadcrumbList schema** on all non-homepage pages | ||
| - **Person schema** on all author/team profile pages | ||
| - Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject |
There was a problem hiding this comment.
Include LocalBusiness in Step 8 optional schema types.
Step 8 currently skips LocalBusiness, which is part of the canonical “when applicable” schema set for location-based entities.
🛠 Proposed fix
-- Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject
+- Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 163, Update Step
8’s “Additional applicable types” list to include LocalBusiness; locate the line
containing the phrase "Additional applicable types: HowTo, SoftwareApplication,
Event, Dataset, VideoObject" in SKILL.md and add LocalBusiness to that
comma-separated list so it reads including LocalBusiness.
| - Single-step form? (multi-step forms see 52% drop in completions) | ||
| - Site header navigation removed during donation flow? | ||
| - Form embedded on-site, not redirecting to third-party processor? | ||
| - `autoComplete` attributes on all form fields? |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
For form autofill, what attribute name should be used in HTML vs React JSX?
💡 Result:
For form autofill in both HTML and React JSX, use the autocomplete attribute. In HTML: or . In React JSX: or . The attribute name is autocomplete in HTML (lowercase). In React JSX, use camelCase autoComplete because JSX transforms HTML attributes to camelCase for event handlers and certain attributes. Official HTML specs (MDN, WHATWG) confirm autocomplete. React docs list it as autoComplete (e.g., in textarea reference, forms examples). Stack Overflow confirms React requires autoComplete (capital C) for proper rendering.
Citations:
- 1: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
- 2: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html
- 3: https://reactjs.org/docs/forms.html
- 4: https://react.dev/reference/react-dom/components/textarea
- 5: https://stackoverflow.com/questions/37503656/react-doesnt-render-autocomplete-off
🏁 Script executed:
# Check if the file exists and read around line 264
if [ -f "claude-code/.claude/skills/geo-seo-audit/SKILL.md" ]; then
wc -l "claude-code/.claude/skills/geo-seo-audit/SKILL.md"
echo "---"
sed -n '250,280p' "claude-code/.claude/skills/geo-seo-audit/SKILL.md"
else
echo "File not found at specified path. Searching for SKILL.md files:"
find . -name "SKILL.md" -type f 2>/dev/null | head -20
fiRepository: Open-Paws/structured-coding-with-ai
Length of output: 1856
Use standard HTML autocomplete attribute name in tool-agnostic documentation.
Line 264 uses autoComplete (JSX camelCase), but this checklist is not JSX-specific code. The standard HTML attribute name is autocomplete (lowercase). In React JSX specifically, this becomes autoComplete, but the SKILL.md file should reference the HTML standard unless the context is explicitly React.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 264, Replace the
JSX-specific attribute name `autoComplete` with the standard HTML attribute name
`autocomplete` in the SKILL.md checklist entry that currently reads
"autoComplete attributes on all form fields?"; update that string so the doc is
tool-agnostic and uses lowercase `autocomplete` (note: keep React-specific usage
unchanged elsewhere if explicitly React contexts exist).
|
|
||
| For nonprofit donation pages: present 3-4 preset amounts with the middle option pre-selected and pair amounts with impact descriptions ("$40/month provides clean water for 12 families"). Pre-select monthly giving — monthly donors become more valuable than one-time donors within 5.25 months, yet 64% of nonprofits still default to one-time. Single-step forms vastly outperform multi-step (52% drop in completions with multi-step). Eliminating site header navigation during the donation flow produced a documented 195% conversion increase. Embed the form directly on-site; never redirect to a third-party processor. | ||
|
|
||
| For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Confirm: (1) native HTML autofill attribute name vs React JSX prop name, and (2) whether ps-4/pe-4/text-start are native CSS properties or utility classes.
💡 Result:
Confirmed: 1. Native HTML autofill attribute is autocomplete. In React JSX, the prop is autoComplete (camelCase). 2. ps-4, pe-4, and text-start are utility classes (from Tailwind CSS and/or Bootstrap), not native CSS properties.
Citations:
- 1: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
- 2: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html
- 3: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
- 4: https://react.dev/reference/react-dom/components/input
- 5: https://react.dev/reference/react-dom/components/textarea
- 6: https://tailwindcss.com/docs/padding/
- 7: https://tailwindcss.com/docs/text-align
- 8: https://getbootstrap.com/docs/5.3/utilities/spacing/
Correct HTML attribute naming and clarify CSS logical property vs utility class terminology.
Line 496 uses React JSX naming (autoComplete) but should reference the native HTML attribute (autocomplete). Line 530 mischaracterizes utility classes as native CSS logical properties.
🛠 Proposed fix
-For all forms: ... Support browser autofill with correct `autoComplete` attributes ...
+For all forms: ... Support browser autofill with correct `autocomplete` attributes in HTML (React JSX uses `autoComplete`) ...
-Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets.
+Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. Native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) handle RTL layout mirroring automatically; utility-framework equivalents include `ps-4`, `pe-4`, `text-start`.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@cursor/.cursor/rules/geo-seo.mdc` at line 496, Replace the React JSX
attribute name "autoComplete" with the native HTML attribute name "autocomplete"
wherever the document references form markup (update the literal text
"autoComplete" to "autocomplete"); also update the sentence that mislabels
utility classes as CSS logical properties to clearly distinguish them—state that
CSS logical properties (e.g., margin-inline-start, inset-inline) are native
browser properties while utility classes are framework/author-provided helpers
(mention the phrase "utility classes" and "CSS logical properties" so you change
the specific wording near the current reference).
| Implement all of these — they are expected signals in 2026. For Next.js, set via `middleware.ts`: | ||
| - `Content-Security-Policy` (CSP with nonces for scripts/styles) — prevents XSS | ||
| - `Strict-Transport-Security: max-age=63072000; includeSubDomains; preload` (HSTS) | ||
| - `X-Content-Type-Options: nosniff` | ||
| - `X-Frame-Options: DENY` | ||
| - `Referrer-Policy: strict-origin-when-cross-origin` | ||
| - Fix all mixed content (HTTP resources on HTTPS pages) | ||
| - Remove `X-Powered-By` header (information disclosure) |
There was a problem hiding this comment.
Security header baseline is missing Permissions-Policy and COOP.
The section omits two headers used as required checks elsewhere in this PR, creating inconsistent audit guidance.
🛠 Proposed fix
### Security headers
@@
- `Referrer-Policy: strict-origin-when-cross-origin`
+- `Permissions-Policy: camera=(), microphone=(), geolocation=()`
+- `Cross-Origin-Opener-Policy: same-origin`
- Fix all mixed content (HTTP resources on HTTPS pages)
- Remove `X-Powered-By` header (information disclosure)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@github-copilot/.github/instructions/geo-seo.md` around lines 336 - 343,
Update the security header checklist to include the missing Permissions-Policy
and Cross-Origin-Opener-Policy (COOP) entries: add a Permissions-Policy line
(e.g., disable unused features like "geolocation=(), camera=(), microphone=()")
and add COOP set to "same-origin" (or "same-origin-allow-popups" if needed)
alongside the existing headers and the middleware.ts guidance for Next.js;
ensure the list still recommends HSTS, CSP with nonces, X-Content-Type-Options,
X-Frame-Options, Referrer-Policy, fixing mixed content, and removing
X-Powered-By so the audit guidance is consistent.
| - **FAQPage schema** on any page with Q&A content | ||
| - **BreadcrumbList schema** on all non-homepage pages | ||
| - **Person schema** on all author/team profile pages | ||
| - Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject |
There was a problem hiding this comment.
Add LocalBusiness to the optional schema types list for parity with the rule spec.
Line 163 omits LocalBusiness, which is included in the canonical structured-data guidance for location-based entities. This can cause false “pass” audits for orgs with physical locations.
🛠 Proposed fix
-- Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject
+- Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness (for location-based entities)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md` at line 163, Update the
optional schema types list in SKILL.md by adding "LocalBusiness" to the line
currently reading "Additional applicable types: HowTo, SoftwareApplication,
Event, Dataset, VideoObject" so it matches the canonical rule spec; ensure the
text exactly includes LocalBusiness (e.g., "HowTo, SoftwareApplication, Event,
Dataset, VideoObject, LocalBusiness") to prevent false passes for location-based
organizations.
| - Single-step form? (multi-step forms see 52% drop in completions) | ||
| - Site header navigation removed during donation flow? | ||
| - Form embedded on-site, not redirecting to third-party processor? | ||
| - `autoComplete` attributes on all form fields? |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
In forms, what is the correct attribute name in native HTML vs React JSX: autocompleteorautoComplete?
💡 Result:
In native HTML, the correct attribute name is autocomplete (kebab-case, lowercase). In React JSX, the correct prop name is autoComplete (camelCase). Native HTML: Use as specified in the HTML standard and MDN docs. React JSX: Use . React converts camelCase props to the corresponding HTML attributes. Using autocomplete triggers a development warning like "Unknown DOM property autocomplete. Did you mean autoComplete?"
Citations:
- 1: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
- 2: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html
- 3: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
- 4: https://react.dev/reference/react-dom/components/input#controlling-an-input-with-a-state-variable
- 5: https://react.dev/reference/react-dom/components/input
- 6: Warning: Unknown DOM property autocomplete. Did you mean autoComplete? facebook/react#2882
- 7: Align on HTML attribute/property casing (ie not camelCase) facebook/react#31520
🏁 Script executed:
fd "SKILL.md" --type f | head -5Repository: Open-Paws/structured-coding-with-ai
Length of output: 61
🏁 Script executed:
wc -l github-copilot/.github/skills/geo-seo-audit/SKILL.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 135
🏁 Script executed:
sed -n '250,280p' github-copilot/.github/skills/geo-seo-audit/SKILL.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 1798
Use HTML standard autocomplete instead of React-style autoComplete in framework-agnostic guidance.
Line 264 uses the React camelCase prop name in a framework-agnostic audit checklist. Use autocomplete (the HTML standard) or clarify that React requires autoComplete.
🛠 Suggested revision
-- `autoComplete` attributes on all form fields?
+- `autocomplete` attributes on all form fields?If the guide needs to mention React: - \autocomplete` attributes on all form fields? (camelCase `autoComplete` in React)`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md` at line 264, Update the
framework-agnostic checklist entry that currently reads "`autoComplete`
attributes on all form fields?" to use the HTML standard name by replacing it
with "`autocomplete` attributes on all form fields?" or, if you want to note
React specifically, change it to "`autocomplete` attributes on all form fields?
(camelCase `autoComplete` in React)"; target the text token `autoComplete` in
SKILL.md and make the replacement/clarification.
|
|
||
| For nonprofit donation pages: present 3-4 preset amounts with the middle option pre-selected and pair amounts with impact descriptions ("$40/month provides clean water for 12 families"). Pre-select monthly giving — monthly donors become more valuable than one-time donors within 5.25 months, yet 64% of nonprofits still default to one-time. Single-step forms vastly outperform multi-step (52% drop in completions with multi-step). Eliminating site header navigation during the donation flow produced a documented 195% conversion increase. Embed the form directly on-site; never redirect to a third-party processor. | ||
|
|
||
| For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
What are the native CSS equivalents of ps-4, pe-4, and text-start, and what is the correct HTML vs React JSX naming for autocomplete?
💡 Result:
The Bootstrap 5 utility classes ps-4, pe-4, and text-start have the following native CSS equivalents using logical properties (which Bootstrap itself uses under the hood for RTL support): - ps-4: padding-inline-start: 1.5rem !important; (where 4 corresponds to $spacer * 1.5 and $spacer defaults to 1rem) - pe-4: padding-inline-end: 1.5rem !important; - text-start: text-align: start !important; (maps to left in LTR, right in RTL) In LTR contexts (default), these are equivalent to padding-left: 1.5rem, padding-right: 1.5rem, and text-align: left, but logical properties are the native modern equivalents. For HTML vs React JSX naming with autocomplete: - HTML: class="ps-4 pe-4 text-start" (standard class attribute) - React JSX: className="ps-4 pe-4 text-start" (use className instead of class) VS Code and other editors autocomplete class in HTML and className in JSX/TSX automatically when typing the attribute name, especially with Emmet configured (e.g., "emmet.includeLanguages": {"javascript": "javascriptreact"}). No special setup needed for Bootstrap classes beyond having Tailwind CSS IntelliSense or similar extensions if desired, but native Emmet/TSX support handles the attribute naming correctly.
Citations:
- 1: https://getbootstrap.com/docs/5.2/utilities/spacing/
- 2: https://getbootstrap.com/docs/5.0/utilities/text/
- 3: https://getbootstrap.com/docs/5.0/utilities/spacing/
- 4: https://bootstrap.p2hp.com/docs/5.3/utilities/spacing
- 5: https://getbootstrap.com/docs/5.3/utilities/text/
- 6: https://getbootstrap.com/docs/5.2/utilities/text/
- 7: https://developer.mozilla.org/en/docs/Web/CSS/CSS_logical_properties_and_values
- 8: https://developer.mozilla.org/docs/Web/CSS/padding-inline-start
- 9: https://stackoverflow.com/questions/68541706/how-to-do-padding-left-in-bootstrap5
- 10: https://stackoverflow.com/questions/76855743/how-to-get-vscode-to-suggest-autocomplete-the-react-classname-given-my-custom
- 11: https://stackoverflow.com/questions/44250313/how-to-enable-classname-autocomplete-on-custom-jsx-tags-aka-react-components
🏁 Script executed:
#!/bin/bash
# Read the file and show context around lines 493 and 527
echo "=== Line 493 context (lines 490-496) ==="
sed -n '490,496p' windsurf/.windsurf/rules/geo-seo.md
echo ""
echo "=== Line 527 context (lines 524-530) ==="
sed -n '524,530p' windsurf/.windsurf/rules/geo-seo.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 2043
Use framework-neutral terminology for autofill attributes and CSS properties.
Line 493: Use HTML standard autocomplete attribute name instead of JSX autoComplete. Since this is framework-neutral documentation, use the platform standard naming (autocomplete), optionally noting the JSX equivalent in parentheses.
Line 527: Bootstrap utility classes ps-4, pe-4, text-start are not themselves CSS logical properties; they are utilities that apply logical properties. Rewrite as: "CSS logical properties (via utilities like ps-4, pe-4, text-start) handle RTL layout mirroring" or clarify that these are Bootstrap classes mapping to native logical properties.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@windsurf/.windsurf/rules/geo-seo.md` at line 493, Change framework-specific
JSX terms to platform-standard names: replace the mention of JSX's autoComplete
with the HTML standard autocomplete (you may optionally note "JSX: autoComplete"
in parentheses). Also clarify that ps-4, pe-4 and text-start are Bootstrap
utility classes that map to CSS logical properties rather than being logical
properties themselves — rewrite the sentence to say CSS logical properties (via
utilities like ps-4, pe-4, text-start) handle RTL mirroring or explicitly state
that those Bootstrap utilities map to native logical properties.
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
89-89:⚠️ Potential issue | 🟡 MinorUpdate the section heading to reflect 7 process skills.
The table entries above now document 7 skills for Claude Code and GitHub Copilot, but this heading still says "6 process skills", creating an inconsistency that will confuse readers.
📝 Suggested fix
-**6 process skills** (workflow guides invoked on demand): +**7 process skills** (workflow guides invoked on demand):🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` at line 89, Update the heading string "**6 process skills** (workflow guides invoked on demand):" to "**7 process skills** (workflow guides invoked on demand):" so the section title matches the seven skills documented above; locate and change the exact heading text in README.md (the bold "6 process skills" line) to "7 process skills".
♻️ Duplicate comments (9)
agents-md/AGENTS.md (1)
504-504:⚠️ Potential issue | 🟡 MinorImprove wording precision for metric description.
The phrase "saw average position drops of 0.8 places" should be "saw an average ranking drop of 0.8 positions" for clarity and grammatical correctness, as previously suggested.
✏️ Suggested fix
-43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. +43% of sites still fail the INP threshold. Sites with INP above 200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@agents-md/AGENTS.md` at line 504, Replace the imprecise phrase "saw average position drops of 0.8 places" in the INP metric paragraph (the sentence discussing "Sites with INP above 200ms...") with "saw an average ranking drop of 0.8 positions" to improve clarity and grammatical correctness.aider/CONVENTIONS.md (1)
373-374:⚠️ Potential issue | 🟡 MinorFix missing blank line and improve wording clarity.
Two issues: (1) MD022 requires a blank line after the heading, and (2) the phrase "saw average position drops of 0.8 places" should be "saw an average ranking drop of 0.8 positions" for clarity and correctness.
🔧 Suggested fix
### HTML Structure + -One `<h1>` per page. Phrase `<h2>` headings as questions — produces 7× more AI citations for smaller sites. First paragraph after any heading must directly answer the question in 40–60 words. AI pulls from the first 30% of content 44% of the time. Keep paragraphs 2–4 sentences. Structure content as self-contained 120–180 word modules — generates 70% more ChatGPT citations than unstructured prose. Use semantic HTML (`<article>`, `<section>`, `<main>`, etc.). Never hide content behind JavaScript-only rendering; AI crawlers generally do not execute JS. +One `<h1>` per page. Phrase `<h2>` headings as questions — produces 7× more AI citations for smaller sites. First paragraph after any heading must directly answer the question in 40–60 words. AI pulls from the first 30% of content 44% of the time. Keep paragraphs 2–4 sentences. Structure content as self-contained 120–180 word modules — generates 70% more ChatGPT citations than unstructured prose. Use semantic HTML (`<article>`, `<section>`, `<main>`, etc.). Never hide content behind JavaScript-only rendering; AI crawlers generally do not execute JS.For the wording issue at line 374:
-43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. +43% of sites still fail the INP threshold. Sites with INP above 200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@aider/CONVENTIONS.md` around lines 373 - 374, Add a blank line after the preceding heading to satisfy MD022 and improve the sentence wording: change "saw average position drops of 0.8 places" to "saw an average ranking drop of 0.8 positions" in the paragraph that mentions "43% of sites still fail the INP threshold" and references "scheduler.yield()" so the text reads clearly and the Markdown linter passes.claude-code/.claude/rules/geo-seo.md (1)
507-507:⚠️ Potential issue | 🟡 MinorUse HTML
autocompletenaming (and optionally note React JSX casing).Line 507 is framework-agnostic guidance but uses React-style
autoComplete. Use native HTMLautocomplete, with optional JSX clarification.✏️ Proposed fix
-For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autocomplete` attributes in HTML (React JSX uses `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5).In native HTML vs React JSX, what is the correct form attribute/prop name: `autocomplete` or `autoComplete`?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/rules/geo-seo.md` at line 507, The guidance currently uses React-style `autoComplete`; change the text to use the native HTML attribute name `autocomplete` (while optionally adding a parenthetical note that in React JSX the prop is camelCased as `autoComplete`) so the rule is framework‑agnostic; update occurrences of `autoComplete` in the guidance and add a short clarification mentioning React JSX casing where helpful.windsurf/.windsurf/rules/geo-seo.md (1)
497-497:⚠️ Potential issue | 🟡 MinorUse framework-neutral, standards-accurate terminology in these two lines.
Line 497 should use HTML
autocomplete(with optional JSX note).
Line 531 should describeps-4/pe-4/text-startas utility classes that map to logical properties.Confirm best-practice wording: HTML uses `autocomplete`; React JSX uses `autoComplete`; `ps-4`/`pe-4`/`text-start` are utility classes, while native CSS uses logical properties like `padding-inline-start`.Also applies to: 531-531
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@windsurf/.windsurf/rules/geo-seo.md` at line 497, Update the wording on line 497 and 531 to use framework-neutral, standards-accurate terms: replace the current `autoComplete` mention with "HTML autocomplete (React JSX: autoComplete)" so readers know the HTML attribute name and the JSX casing, and change the note about `ps-4`/`pe-4`/`text-start` to state these are utility classes that map to logical CSS properties (e.g., padding-inline-start, padding-inline-end, text-align: start) rather than implying they are native CSS properties.cursor/.cursor/rules/geo-seo.mdc (1)
496-496:⚠️ Potential issue | 🟡 MinorCorrect HTML attribute naming and CSS terminology in implementation guidance.
Line 496 should reference HTML
autocomplete(optionally noting React JSXautoComplete).
Line 530 should state thatps-4/pe-4/text-startare utility classes, not native CSS properties.Confirm: (1) HTML uses `autocomplete` while React JSX uses `autoComplete`; (2) `ps-4`, `pe-4`, `text-start` are utility classes rather than native CSS logical properties.Also applies to: 530-530
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cursor/.cursor/rules/geo-seo.mdc` at line 496, Update the guidance to use correct HTML and React attribute names and to clarify CSS terminology: state that the HTML attribute is autocomplete (and in React JSX it is autoComplete), and change the wording around ps-4, pe-4, and text-start to say they are utility classes (not native CSS logical properties); adjust the sentences around the existing guidance references to replace incorrect terms with these exact identifiers (autocomplete, autoComplete, ps-4, pe-4, text-start).claude-code/.claude/skills/geo-seo-audit/SKILL.md (2)
264-264:⚠️ Potential issue | 🟡 MinorUse HTML-standard autofill attribute name in the checklist.
Line 264 should use
autocomplete(HTML) instead of JSX-onlyautoComplete, unless the line is explicitly React-specific.For form autofill, what is the correct attribute name in HTML vs React JSX (`autocomplete` vs `autoComplete`)?Suggested patch
-- `autoComplete` attributes on all form fields? +- `autocomplete` attributes on all form fields? (React JSX: `autoComplete`)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 264, Update the checklist entry that currently uses the JSX-specific attribute name `autoComplete` to the HTML-standard `autocomplete` so the document is correct for non-React contexts; locate the checklist line referencing `autoComplete` and replace it with `autocomplete`, and if any surrounding guidance mentions React-only behavior, clarify that `autoComplete` is React/JSX-specific while `autocomplete` is the standard HTML attribute.
163-163:⚠️ Potential issue | 🟠 MajorAdd
LocalBusinessto Step 8 optional schema types.Step 8 omits a canonical applicable type for location-based entities, so the audit rubric is incomplete.
Is `LocalBusiness` a valid Schema.org type typically recommended for location-based organizations/websites?Suggested patch
-- Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject +- Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 163, Step 8's optional schema types list omits the location-focused Schema.org type; update the "Additional applicable types" entry in SKILL.md (the line currently listing HowTo, SoftwareApplication, Event, Dataset, VideoObject) to include LocalBusiness so location-based organizations are covered, and optionally add a brief parenthetical note that LocalBusiness is the recommended Schema.org type for local/brick-and-mortar organizations/websites where relevant.github-copilot/.github/instructions/geo-seo.md (2)
492-492:⚠️ Potential issue | 🟡 MinorClarify standards vs framework-specific terms in form/i18n guidance.
Use HTML
autocompletein generic guidance (optionally note JSXautoComplete).
Also separate native CSS logical properties from utility classes (ps-4,pe-4,text-start).Please verify: HTML attribute name (`autocomplete`) vs React JSX prop (`autoComplete`), and whether `ps-4`/`pe-4`/`text-start` are native CSS properties or utility classes.Also applies to: 526-526
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` at line 492, Update the guidance to distinguish standard HTML attribute names from framework-specific props by using the HTML attribute name "autocomplete" in the generic guidance and adding a short parenthetical note that in React/JSX it appears as the prop "autoComplete"; likewise, explicitly call out that "ps-4", "pe-4" and "text-start" are utility-class names (e.g., Bootstrap/Tailwind-like) and not native CSS logical properties, and add a brief line referencing native CSS logical properties (padding-inline-start, padding-inline-end, text-align) as the standards-based alternatives.
336-344:⚠️ Potential issue | 🟠 MajorSecurity header baseline is incomplete in this Copilot instruction file.
Permissions-PolicyandCross-Origin-Opener-Policyare missing here, creating inconsistent hardening guidance versus the canonical rule set.Based on learnings,
claude-code/.claude/rules/geo-seo.mdis the canonical source and derived tool files should remain synchronized.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` around lines 336 - 344, The instruction file's security header baseline is missing Permissions-Policy and Cross-Origin-Opener-Policy and must be synchronized with the canonical rule set; update the Copilot instruction text to include adding Permissions-Policy (e.g., restrict features like camera, microphone, geolocation) and Cross-Origin-Opener-Policy: same-origin (or same-origin-allow-popups as appropriate), and explicitly state removing X-Powered-By and fixing mixed content, plus the existing CSP, HSTS, X-Content-Type-Options, X-Frame-Options, and Referrer-Policy; reference Next.js middleware.ts as the implementation point and note exact header names (Permissions-Policy, Cross-Origin-Opener-Policy, Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, X-Powered-By) so derived tool files stay synchronized with claude-code/.claude/rules/geo-seo.md.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@aider/CONVENTIONS.md`:
- Line 283: A Markdown heading in CONVENTIONS.md is missing the required blank
line after it (causing MD022); fix it by inserting a single blank line
immediately after the heading so the next paragraph/content is separated, then
run the markdown linter to confirm the MD022 warning is cleared.
In `@augment-code/.augment/rules/geo-seo.md`:
- Line 496: Update the tool-agnostic guidance to use the HTML attribute name
"autocomplete" and add a parenthetical that "autoComplete" is the React JSX prop
equivalent; also revise the wording around spacing/alignment to state that
"ps-4", "pe-4", and "text-start" are Tailwind/Bootstrap utility classes (or
similar utility frameworks) that map to native CSS logical properties, rather
than being native CSS properties themselves, so readers understand they are
utilities not browser-level properties.
In `@kilo-code/.kilocode/rules/geo-seo.md`:
- Line 496: Update the text to clearly distinguish HTML/JSX attribute naming and
CSS utility classes: state that the HTML standard attribute is "autocomplete"
(kebab-case) while React JSX uses "autoComplete" (camelCase) so readers know
which applies depending on context; and when mentioning layout helpers, clarify
that "ps-4", "pe-4", and "text-start" are framework utility classes (e.g.,
Tailwind/Bootstrap) and show their native CSS equivalents—use
"padding-inline-start", "padding-inline-end", and "text-align: start"—so readers
understand the difference and can implement correctly in non-framework or
non-React environments.
In `@roo-code/.roo/rules/geo-seo.md`:
- Around line 337-345: The security-header baseline is missing two canonical
headers: add Permissions-Policy and Cross-Origin-Opener-Policy to the list of
required headers (the same set used in claude-code/.claude/rules/geo-seo.md) so
the rule enumerating required headers includes "Permissions-Policy" (with a
restrictive default value, e.g., disabling powerful features) and
"Cross-Origin-Opener-Policy: same-origin" alongside the existing CSP, HSTS,
X-Content-Type-Options, X-Frame-Options, Referrer-Policy, mixed-content
guidance, and removal of X-Powered-By; update the guidance text and the Next.js
note (middleware.ts) to show setting these headers there.
---
Outside diff comments:
In `@README.md`:
- Line 89: Update the heading string "**6 process skills** (workflow guides
invoked on demand):" to "**7 process skills** (workflow guides invoked on
demand):" so the section title matches the seven skills documented above; locate
and change the exact heading text in README.md (the bold "6 process skills"
line) to "7 process skills".
---
Duplicate comments:
In `@agents-md/AGENTS.md`:
- Line 504: Replace the imprecise phrase "saw average position drops of 0.8
places" in the INP metric paragraph (the sentence discussing "Sites with INP
above 200ms...") with "saw an average ranking drop of 0.8 positions" to improve
clarity and grammatical correctness.
In `@aider/CONVENTIONS.md`:
- Around line 373-374: Add a blank line after the preceding heading to satisfy
MD022 and improve the sentence wording: change "saw average position drops of
0.8 places" to "saw an average ranking drop of 0.8 positions" in the paragraph
that mentions "43% of sites still fail the INP threshold" and references
"scheduler.yield()" so the text reads clearly and the Markdown linter passes.
In `@claude-code/.claude/rules/geo-seo.md`:
- Line 507: The guidance currently uses React-style `autoComplete`; change the
text to use the native HTML attribute name `autocomplete` (while optionally
adding a parenthetical note that in React JSX the prop is camelCased as
`autoComplete`) so the rule is framework‑agnostic; update occurrences of
`autoComplete` in the guidance and add a short clarification mentioning React
JSX casing where helpful.
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md`:
- Line 264: Update the checklist entry that currently uses the JSX-specific
attribute name `autoComplete` to the HTML-standard `autocomplete` so the
document is correct for non-React contexts; locate the checklist line
referencing `autoComplete` and replace it with `autocomplete`, and if any
surrounding guidance mentions React-only behavior, clarify that `autoComplete`
is React/JSX-specific while `autocomplete` is the standard HTML attribute.
- Line 163: Step 8's optional schema types list omits the location-focused
Schema.org type; update the "Additional applicable types" entry in SKILL.md (the
line currently listing HowTo, SoftwareApplication, Event, Dataset, VideoObject)
to include LocalBusiness so location-based organizations are covered, and
optionally add a brief parenthetical note that LocalBusiness is the recommended
Schema.org type for local/brick-and-mortar organizations/websites where
relevant.
In `@cursor/.cursor/rules/geo-seo.mdc`:
- Line 496: Update the guidance to use correct HTML and React attribute names
and to clarify CSS terminology: state that the HTML attribute is autocomplete
(and in React JSX it is autoComplete), and change the wording around ps-4, pe-4,
and text-start to say they are utility classes (not native CSS logical
properties); adjust the sentences around the existing guidance references to
replace incorrect terms with these exact identifiers (autocomplete,
autoComplete, ps-4, pe-4, text-start).
In `@github-copilot/.github/instructions/geo-seo.md`:
- Line 492: Update the guidance to distinguish standard HTML attribute names
from framework-specific props by using the HTML attribute name "autocomplete" in
the generic guidance and adding a short parenthetical note that in React/JSX it
appears as the prop "autoComplete"; likewise, explicitly call out that "ps-4",
"pe-4" and "text-start" are utility-class names (e.g., Bootstrap/Tailwind-like)
and not native CSS logical properties, and add a brief line referencing native
CSS logical properties (padding-inline-start, padding-inline-end, text-align) as
the standards-based alternatives.
- Around line 336-344: The instruction file's security header baseline is
missing Permissions-Policy and Cross-Origin-Opener-Policy and must be
synchronized with the canonical rule set; update the Copilot instruction text to
include adding Permissions-Policy (e.g., restrict features like camera,
microphone, geolocation) and Cross-Origin-Opener-Policy: same-origin (or
same-origin-allow-popups as appropriate), and explicitly state removing
X-Powered-By and fixing mixed content, plus the existing CSP, HSTS,
X-Content-Type-Options, X-Frame-Options, and Referrer-Policy; reference Next.js
middleware.ts as the implementation point and note exact header names
(Permissions-Policy, Cross-Origin-Opener-Policy, Content-Security-Policy,
Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options,
Referrer-Policy, X-Powered-By) so derived tool files stay synchronized with
claude-code/.claude/rules/geo-seo.md.
In `@windsurf/.windsurf/rules/geo-seo.md`:
- Line 497: Update the wording on line 497 and 531 to use framework-neutral,
standards-accurate terms: replace the current `autoComplete` mention with "HTML
autocomplete (React JSX: autoComplete)" so readers know the HTML attribute name
and the JSX casing, and change the note about `ps-4`/`pe-4`/`text-start` to
state these are utility classes that map to logical CSS properties (e.g.,
padding-inline-start, padding-inline-end, text-align: start) rather than
implying they are native CSS properties.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: a2b6d76c-d966-4a5c-b2af-8f3a08ecd29f
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
| For nonprofit donation pages: present 3-4 preset amounts with the middle option pre-selected and pair amounts with impact descriptions ("$40/month provides clean water for 12 families"). Pre-select monthly giving — monthly donors become more valuable than one-time donors within 5.25 months, yet 64% of nonprofits still default to one-time. Single-step forms vastly outperform multi-step (52% drop in completions with multi-step). Eliminating site header navigation during the donation flow produced a documented 195% conversion increase. Embed the form directly on-site; never redirect to a third-party processor. | ||
|
|
||
| For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
In web standards, is the HTML autofill attribute autocompletewhile React JSX usesautoComplete? Also, are ps-4, pe-4, and text-start native CSS logical properties or framework utility classes?
💡 Result:
Yes, in web standards the HTML autofill attribute is autocomplete (kebab-case), while React JSX uses autoComplete (camelCase). The classes ps-4, pe-4, and text-start are framework utility classes (primarily from Tailwind CSS, also Bootstrap for text-start), not native CSS logical properties. Native CSS uses properties like padding-inline-start: 1rem; and text-align: start; directly.
Citations:
- 1: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html
- 2: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
- 3: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
- 4: https://html.spec.whatwg.org/C/form-control-infrastructure.html
- 5: https://html.spec.whatwg.org/multipage/forms.html
- 6: https://react.dev/reference/react-dom/components/input
- 7: https://legacy.reactjs.org/docs/dom-elements.html
- 8: http://reactjs.org/docs/dom-elements.html
- 9: https://tailwindcss.com/docs/padding/
- 10: https://tailwindcss.com/docs/text-align
- 11: https://v5.bootcss.com/docs/utilities/text
- 12: https://www.docs4dev.com/docs/tailwindcss/latest/padding.html
- 13: https://tailscan.com/tailwind/spacing/pe-4
- 14: https://tailscan.com/tailwind/spacing/ps-4
- 15: Logical properties (ms-*, me-*, ps-*, pe-*) not working with Next.js 15.5.0 tailwindlabs/tailwindcss#18810
🏁 Script executed:
# Check if the file exists and get line count
wc -l kilo-code/.kilocode/rules/geo-seo.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 119
🏁 Script executed:
# Read lines 490-505 to see context around line 496
sed -n '490,505p' kilo-code/.kilocode/rules/geo-seo.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 2025
🏁 Script executed:
# Read lines 525-535 to see context around line 530
sed -n '525,535p' kilo-code/.kilocode/rules/geo-seo.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 819
Clarify HTML vs. React attribute naming and distinguish native CSS properties from utility classes.
Line 496: The HTML standard attribute is autocomplete (kebab-case); React JSX uses autoComplete (camelCase). Update the sentence to specify which context applies or note both variants for clarity.
Line 530: ps-4, pe-4, and text-start are framework utility classes (Tailwind CSS), not native CSS logical properties. Revise to show native CSS equivalents (padding-inline-start, padding-inline-end, text-align: start) alongside framework class names to prevent confusion when implementing in non-React contexts.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@kilo-code/.kilocode/rules/geo-seo.md` at line 496, Update the text to clearly
distinguish HTML/JSX attribute naming and CSS utility classes: state that the
HTML standard attribute is "autocomplete" (kebab-case) while React JSX uses
"autoComplete" (camelCase) so readers know which applies depending on context;
and when mentioning layout helpers, clarify that "ps-4", "pe-4", and
"text-start" are framework utility classes (e.g., Tailwind/Bootstrap) and show
their native CSS equivalents—use "padding-inline-start", "padding-inline-end",
and "text-align: start"—so readers understand the difference and can implement
correctly in non-framework or non-React environments.
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (14)
agents-md/AGENTS.md (1)
504-504:⚠️ Potential issue | 🟡 MinorChange "saw average position drops of 0.8 places" to "saw an average ranking drop of 0.8 positions" for clarity and precision. The suggested wording improvement has not yet been applied at line 504.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@agents-md/AGENTS.md` at line 504, Replace the imprecise phrase "saw average position drops of 0.8 places" with "saw an average ranking drop of 0.8 positions" in the sentence that reads "43% of sites still fail the INP threshold... saw average position drops of 0.8 places" (the same line mentioning INP and scheduler.yield()); simply update that fragment to the suggested wording so the sentence becomes clearer and more precise.claude-code/.claude/rules/geo-seo.md (1)
507-507:⚠️ Potential issue | 🟡 MinorClarify
autocomplete(HTML) vsautoComplete(React JSX).In canonical, framework-agnostic guidance, prefer the HTML attribute name and optionally annotate JSX casing.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/rules/geo-seo.md` at line 507, Update the guidance to prefer the HTML attribute name "autocomplete" for canonical, framework-agnostic documentation and add a short parenthetical note that in React JSX the equivalent attribute is camelCased as "autoComplete"; ensure the sentence referencing "Support browser autofill with correct `autoComplete` attributes" is edited to use "autocomplete" as the primary term and include the JSX casing as an optional note so both usages are clear (refer to the sentence about autofill and the phrase currently using `autoComplete`).github-copilot/.github/skills/geo-seo-audit/SKILL.md (2)
264-264:⚠️ Potential issue | 🟡 MinorPrefer
autocompletewording for framework-neutral instructions.Use HTML attribute naming and optionally note React’s
autoCompletevariant.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md` at line 264, Replace the framework-specific `autoComplete` wording with the HTML attribute name `autocomplete` in the guidance line and any related instructions; if you want to help React users, add a short parenthetical note that in React the equivalent prop is `autoComplete` (capital C) so both audiences understand the mapping.
163-163:⚠️ Potential issue | 🟡 MinorAdd
LocalBusinessto the optional schema-type checklist.This avoids false “pass” outcomes for location-based entities.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md` at line 163, Update the optional schema-type checklist line that currently reads "Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject" to include "LocalBusiness" so it becomes "Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness" ensuring location-based entities are covered in the SKILL.md checklist.claude-code/.claude/skills/geo-seo-audit/SKILL.md (2)
264-264:⚠️ Potential issue | 🟡 MinorUse HTML-standard
autocompletein tool-agnostic guidance.
autoCompleteis JSX-specific naming; this checklist is framework-agnostic.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 264, The checklist uses JSX-specific `autoComplete` casing; change any occurrences of the string `autoComplete` to the HTML-standard `autocomplete` in SKILL.md (e.g., the checklist item "`autoComplete` attributes on all form fields?") so the guidance is tool-agnostic and uses the correct HTML attribute name.
163-163:⚠️ Potential issue | 🟡 MinorInclude
LocalBusinessin the “additional applicable types” list.Location-based organizations can be incorrectly marked “complete” without it.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 163, The "Additional applicable types" list currently reads "HowTo, SoftwareApplication, Event, Dataset, VideoObject" and is missing LocalBusiness; update the SKILL.md entry for "Additional applicable types" (the line containing that exact list) to include "LocalBusiness" among the comma-separated types so location-based organizations are correctly recognized.github-copilot/.github/instructions/geo-seo.md (2)
336-343:⚠️ Potential issue | 🟠 MajorSecurity header checklist is missing
Permissions-PolicyandCross-Origin-Opener-Policy.Please align this section with the canonical rules to avoid weaker Copilot-specific guidance.
Based on learnings, the canonical source is
claude-code/.claude/rules/geo-seo.mdand derived tool instructions should remain aligned.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` around lines 336 - 343, Update the security header checklist in geo-seo.md to include the missing headers by adding "Permissions-Policy" (specify allowed features or set to none / strict policy) and "Cross-Origin-Opener-Policy: same-origin" to the list alongside the existing headers and note implementing them in Next.js via middleware.ts; ensure the guidance references CSP/HSTS/etc. already listed and aligns wording with the canonical rules in claude-code/.claude/rules/geo-seo.md so the derived tool instructions remain consistent.
492-492:⚠️ Potential issue | 🟡 MinorFix platform-agnostic naming:
autocomplete(HTML) and utility classes vs native CSS properties.Current wording mixes React prop naming with HTML guidance and mislabels
ps-4/pe-4/text-startas native CSS properties.Also applies to: 526-526
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` at line 492, Update the guidance to use platform-agnostic naming: refer to the HTML attribute as "autocomplete" (lowercase) and note React uses the prop "autoComplete" only when relevant; clarify that `ps-4`, `pe-4`, and `text-start` are framework utility classes (e.g., Bootstrap/Tailwind) not native CSS properties and show the native CSS equivalents (padding-inline-start, padding-inline-end, text-align) where needed; ensure the WCAG note still references autocomplete support for SC 1.3.5 and replicate the same wording change at the other occurrence mentioned (line 526).augment-code/.augment/rules/geo-seo.md (1)
495-495:⚠️ Potential issue | 🟡 MinorCorrect terminology for HTML autofill and CSS logical properties.
In this tool-agnostic document, prefer
autocompletefor HTML (note ReactautoCompleteas equivalent), and describeps-4/pe-4/text-startas utility classes rather than native CSS logical properties.Also applies to: 529-529
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@augment-code/.augment/rules/geo-seo.md` at line 495, Update the phrasing to use the correct HTML autofill attribute name "autocomplete" (note that in React it appears as "autoComplete") and change references to "ps-4", "pe-4", and "text-start" to state they are utility classes (e.g., framework utility classes) rather than native CSS logical properties; make the same correction at the other occurrence flagged (line 529) so the document consistently uses "autocomplete" and describes those tokens as utility classes.kilo-code/.kilocode/rules/geo-seo.md (1)
495-495:⚠️ Potential issue | 🟡 MinorUse standard naming in cross-framework guidance (
autocomplete) and fix CSS terminology.Please avoid React-specific naming in generic HTML rules, and identify
ps-4/pe-4/text-startas framework utility classes with native CSS equivalents.Also applies to: 529-529
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@kilo-code/.kilocode/rules/geo-seo.md` at line 495, The guidance currently uses React-specific attribute naming and framework utility class names; change the attribute reference from "autoComplete" to the standard HTML "autocomplete" and mark "ps-4", "pe-4", and "text-start" as Bootstrap/utility framework classes (not native CSS), adding their native CSS equivalents (e.g., padding-left/padding-right values and text-align: left) and keep the WCAG reference to "SC 1.3.5 (WCAG 2.2 AA)" intact; update the cross-framework guidance text to use the standard "autocomplete" term and explicitly note the native CSS alternatives for the utility classes.roo-code/.roo/rules/geo-seo.md (1)
337-345:⚠️ Potential issue | 🟠 MajorAdd missing
Permissions-PolicyandCross-Origin-Opener-Policyheaders.This security baseline is still incomplete versus the canonical GEO+SEO rule set and can cause tool-specific drift.
🔧 Proposed fix
### Security headers Implement all of these — they are expected signals in 2026. For Next.js, set via `middleware.ts`: - `Content-Security-Policy` (CSP with nonces for scripts/styles) — prevents XSS - `Strict-Transport-Security: max-age=63072000; includeSubDomains; preload` (HSTS) - `X-Content-Type-Options: nosniff` - `X-Frame-Options: DENY` - `Referrer-Policy: strict-origin-when-cross-origin` +- `Permissions-Policy: camera=(), microphone=(), geolocation=()` +- `Cross-Origin-Opener-Policy: same-origin` - Fix all mixed content (HTTP resources on HTTPS pages) - Remove `X-Powered-By` header (information disclosure)Based on learnings,
claude-code/.claude/rules/geo-seo.mdis the canonical source and derived rule files should stay synchronized.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@roo-code/.roo/rules/geo-seo.md` around lines 337 - 345, Add the missing security headers by updating the middleware that sets response headers (e.g., the Next.js middleware.ts header configuration) to include Permissions-Policy (with a conservative policy such as fullscreen=(), camera=(), microphone=(), geolocation=()) and Cross-Origin-Opener-Policy: same-origin; ensure their names are exactly "Permissions-Policy" and "Cross-Origin-Opener-Policy" and that they are added alongside the existing CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy and removal of X-Powered-By; also mirror these changes to the canonical rule source (claude-code/.claude/rules/geo-seo.md) so derived rule files stay synchronized.cursor/.cursor/rules/geo-seo.mdc (1)
496-496:⚠️ Potential issue | 🟡 MinorClarify
autocompletevsautoComplete, and distinguish native CSS logical properties from utility classes.This text should be tool-agnostic: HTML uses
autocomplete; React usesautoComplete. Also,ps-4/pe-4/text-startare utility classes, not native CSS properties.Also applies to: 530-530
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cursor/.cursor/rules/geo-seo.mdc` at line 496, Update the guidance to be tool-agnostic by explicitly distinguishing the HTML attribute name `autocomplete` (lowercase) from React's prop `autoComplete` (camelCase), and replace or annotate any phrasing that implies `ps-4`/`pe-4`/`text-start` are native CSS logical properties by calling them out as utility classes (e.g., framework-specific utilities) rather than CSS properties; ensure the WCAG reference to SC 1.3.5 remains and that the text instructs to use correct attribute casing for browser autofill depending on the environment (HTML vs React).windsurf/.windsurf/rules/geo-seo.md (2)
497-497:⚠️ Potential issue | 🟡 MinorUse HTML standard
autocompleteattribute naming.The text references JSX-specific
autoComplete(camelCase). Since this is framework-neutral documentation for all 12 AI coding tools, use the HTML platform standardautocomplete(lowercase). Optionally note the JSX variant in parentheses if helpful.📝 Suggested wording
-Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +Support browser autofill with correct `autocomplete` attributes (also required for WCAG 2.2 AA SC 1.3.5; JSX: `autoComplete`).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@windsurf/.windsurf/rules/geo-seo.md` at line 497, The doc uses the JSX camelCase attribute `autoComplete`; update the guidance to use the HTML standard lowercase `autocomplete` instead (e.g., "Support browser autofill with correct `autocomplete` attributes") and, if helpful, add a parenthetical note that JSX/React uses `autoComplete` to avoid confusion; ensure the sentence referencing WCAG 2.2 AA SC 1.3.5 still follows and replace any other occurrences of `autoComplete` with `autocomplete`.
531-531:⚠️ Potential issue | 🟡 MinorClarify that Bootstrap utilities apply CSS logical properties.
The text states "CSS logical properties (
ps-4,pe-4,text-start)" but these are Bootstrap utility classes that apply native CSS logical properties, not the properties themselves. Improve technical precision.🔧 Suggested rewording
-CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets. +Bootstrap utilities like `ps-4`, `pe-4`, and `text-start` (which apply CSS logical properties) handle RTL layout mirroring automatically without separate stylesheets.Or more concisely:
-CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets. +CSS logical properties (via Bootstrap utilities like `ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@windsurf/.windsurf/rules/geo-seo.md` at line 531, Update the wording to be technically precise: change the phrase that currently implies `ps-4`, `pe-4`, and `text-start` are CSS properties to state that these are Bootstrap utility classes which apply native CSS logical properties for RTL mirroring; reference the classes `ps-4`, `pe-4`, and `text-start` in the sentence so readers know which utilities apply the logical properties rather than calling them the properties themselves.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@jetbrains-junie/.junie/guidelines.md`:
- Line 478: Update the guideline text to distinguish Tailwind utility class
names from native CSS logical properties: replace the phrase that calls `ps-4`,
`pe-4`, and `text-start` "CSS logical properties" with a clear note that those
are Tailwind utilities, and add the actual native properties
`padding-inline-start`, `padding-inline-end`, and `text-align: start` (or
`direction`/`unicode-bidi` as needed) as the alternatives for teams not using a
utility framework; reference the existing labels `ps-4`, `pe-4`, and
`text-start` and the native properties so readers know which to use depending on
whether they use Tailwind or plain CSS.
In `@roo-code/.roo/rules/geo-seo.md`:
- Line 493: Update the copy to distinguish HTML and React attribute names:
explicitly mention the HTML attribute `autocomplete` and the React prop
`autoComplete` when advising to support browser autofill (replace or augment the
existing React-only example). Also clarify that `ps-4`, `pe-4`, and `text-start`
are Tailwind utility classes (not native CSS logical properties) by labeling
them as Tailwind utilities wherever those class names are referenced.
---
Duplicate comments:
In `@agents-md/AGENTS.md`:
- Line 504: Replace the imprecise phrase "saw average position drops of 0.8
places" with "saw an average ranking drop of 0.8 positions" in the sentence that
reads "43% of sites still fail the INP threshold... saw average position drops
of 0.8 places" (the same line mentioning INP and scheduler.yield()); simply
update that fragment to the suggested wording so the sentence becomes clearer
and more precise.
In `@augment-code/.augment/rules/geo-seo.md`:
- Line 495: Update the phrasing to use the correct HTML autofill attribute name
"autocomplete" (note that in React it appears as "autoComplete") and change
references to "ps-4", "pe-4", and "text-start" to state they are utility classes
(e.g., framework utility classes) rather than native CSS logical properties;
make the same correction at the other occurrence flagged (line 529) so the
document consistently uses "autocomplete" and describes those tokens as utility
classes.
In `@claude-code/.claude/rules/geo-seo.md`:
- Line 507: Update the guidance to prefer the HTML attribute name "autocomplete"
for canonical, framework-agnostic documentation and add a short parenthetical
note that in React JSX the equivalent attribute is camelCased as "autoComplete";
ensure the sentence referencing "Support browser autofill with correct
`autoComplete` attributes" is edited to use "autocomplete" as the primary term
and include the JSX casing as an optional note so both usages are clear (refer
to the sentence about autofill and the phrase currently using `autoComplete`).
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md`:
- Line 264: The checklist uses JSX-specific `autoComplete` casing; change any
occurrences of the string `autoComplete` to the HTML-standard `autocomplete` in
SKILL.md (e.g., the checklist item "`autoComplete` attributes on all form
fields?") so the guidance is tool-agnostic and uses the correct HTML attribute
name.
- Line 163: The "Additional applicable types" list currently reads "HowTo,
SoftwareApplication, Event, Dataset, VideoObject" and is missing LocalBusiness;
update the SKILL.md entry for "Additional applicable types" (the line containing
that exact list) to include "LocalBusiness" among the comma-separated types so
location-based organizations are correctly recognized.
In `@cursor/.cursor/rules/geo-seo.mdc`:
- Line 496: Update the guidance to be tool-agnostic by explicitly distinguishing
the HTML attribute name `autocomplete` (lowercase) from React's prop
`autoComplete` (camelCase), and replace or annotate any phrasing that implies
`ps-4`/`pe-4`/`text-start` are native CSS logical properties by calling them out
as utility classes (e.g., framework-specific utilities) rather than CSS
properties; ensure the WCAG reference to SC 1.3.5 remains and that the text
instructs to use correct attribute casing for browser autofill depending on the
environment (HTML vs React).
In `@github-copilot/.github/instructions/geo-seo.md`:
- Around line 336-343: Update the security header checklist in geo-seo.md to
include the missing headers by adding "Permissions-Policy" (specify allowed
features or set to none / strict policy) and "Cross-Origin-Opener-Policy:
same-origin" to the list alongside the existing headers and note implementing
them in Next.js via middleware.ts; ensure the guidance references CSP/HSTS/etc.
already listed and aligns wording with the canonical rules in
claude-code/.claude/rules/geo-seo.md so the derived tool instructions remain
consistent.
- Line 492: Update the guidance to use platform-agnostic naming: refer to the
HTML attribute as "autocomplete" (lowercase) and note React uses the prop
"autoComplete" only when relevant; clarify that `ps-4`, `pe-4`, and `text-start`
are framework utility classes (e.g., Bootstrap/Tailwind) not native CSS
properties and show the native CSS equivalents (padding-inline-start,
padding-inline-end, text-align) where needed; ensure the WCAG note still
references autocomplete support for SC 1.3.5 and replicate the same wording
change at the other occurrence mentioned (line 526).
In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md`:
- Line 264: Replace the framework-specific `autoComplete` wording with the HTML
attribute name `autocomplete` in the guidance line and any related instructions;
if you want to help React users, add a short parenthetical note that in React
the equivalent prop is `autoComplete` (capital C) so both audiences understand
the mapping.
- Line 163: Update the optional schema-type checklist line that currently reads
"Additional applicable types: HowTo, SoftwareApplication, Event, Dataset,
VideoObject" to include "LocalBusiness" so it becomes "Additional applicable
types: HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness"
ensuring location-based entities are covered in the SKILL.md checklist.
In `@kilo-code/.kilocode/rules/geo-seo.md`:
- Line 495: The guidance currently uses React-specific attribute naming and
framework utility class names; change the attribute reference from
"autoComplete" to the standard HTML "autocomplete" and mark "ps-4", "pe-4", and
"text-start" as Bootstrap/utility framework classes (not native CSS), adding
their native CSS equivalents (e.g., padding-left/padding-right values and
text-align: left) and keep the WCAG reference to "SC 1.3.5 (WCAG 2.2 AA)"
intact; update the cross-framework guidance text to use the standard
"autocomplete" term and explicitly note the native CSS alternatives for the
utility classes.
In `@roo-code/.roo/rules/geo-seo.md`:
- Around line 337-345: Add the missing security headers by updating the
middleware that sets response headers (e.g., the Next.js middleware.ts header
configuration) to include Permissions-Policy (with a conservative policy such as
fullscreen=(), camera=(), microphone=(), geolocation=()) and
Cross-Origin-Opener-Policy: same-origin; ensure their names are exactly
"Permissions-Policy" and "Cross-Origin-Opener-Policy" and that they are added
alongside the existing CSP, HSTS, X-Content-Type-Options, X-Frame-Options,
Referrer-Policy and removal of X-Powered-By; also mirror these changes to the
canonical rule source (claude-code/.claude/rules/geo-seo.md) so derived rule
files stay synchronized.
In `@windsurf/.windsurf/rules/geo-seo.md`:
- Line 497: The doc uses the JSX camelCase attribute `autoComplete`; update the
guidance to use the HTML standard lowercase `autocomplete` instead (e.g.,
"Support browser autofill with correct `autocomplete` attributes") and, if
helpful, add a parenthetical note that JSX/React uses `autoComplete` to avoid
confusion; ensure the sentence referencing WCAG 2.2 AA SC 1.3.5 still follows
and replace any other occurrences of `autoComplete` with `autocomplete`.
- Line 531: Update the wording to be technically precise: change the phrase that
currently implies `ps-4`, `pe-4`, and `text-start` are CSS properties to state
that these are Bootstrap utility classes which apply native CSS logical
properties for RTL mirroring; reference the classes `ps-4`, `pe-4`, and
`text-start` in the sentence so readers know which utilities apply the logical
properties rather than calling them the properties themselves.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 27ae6011-1fc9-4e29-98f6-04963887f5fb
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
|
|
||
| ### Internationalization | ||
|
|
||
| For multilingual sites, use **next-intl** (1.8M weekly downloads) with subdirectory URL strategy (`/en/`, `/hi/`, `/ar/`) to centralize domain authority. Set `lang` and `dir` on `<html>`. Hreflang tags must be self-referencing and reciprocal on every page — 31% of international sites have broken hreflang. Use ICU MessageFormat for plural/gender forms (Arabic requires 6 CLDR plural categories). CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout automatically. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Find the guidelines.md file and read context around line 478
fd "guidelines.md" -t f | head -5Repository: Open-Paws/structured-coding-with-ai
Length of output: 61
🏁 Script executed:
# Get file size first
wc -l jetbrains-junie/.junie/guidelines.md 2>/dev/null || find . -name "guidelines.md" -exec wc -l {} \;Repository: Open-Paws/structured-coding-with-ai
Length of output: 119
🏁 Script executed:
# Search for the file containing the CSS logical properties snippet
rg "CSS logical properties" -B 5 -A 5Repository: Open-Paws/structured-coding-with-ai
Length of output: 3248
🏁 Script executed:
# Read the guidelines.md file directly, focusing on the area around line 478
sed -n '470,490p' jetbrains-junie/.junie/guidelines.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 2868
🏁 Script executed:
# Get broader context around the CSS logical properties mention
sed -n '450,510p' jetbrains-junie/.junie/guidelines.mdRepository: Open-Paws/structured-coding-with-ai
Length of output: 6761
🌐 Web query:
CSS logical properties padding-inline-start padding-inline-end MDN documentation
💡 Result:
CSS logical properties padding-inline-start and padding-inline-end define the inline start and end padding of an element, respectively. These map to physical padding properties (padding-left, padding-right, padding-top, or padding-bottom) based on the element's writing-mode, direction, and text-orientation, enabling direction-agnostic styling for internationalization. padding-inline-start (MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-start): - Defines logical inline start padding. - Syntax: padding-inline-start: <length-percentage [0,∞]> (e.g., 10px, 1em, 5%). - Initial value: 0. - Applies to: All elements (some table elements excluded). - Inherited: No. - Percentages: Relative to logical inline size of containing block. - Part of CSS Logical Properties and Values Level 1. padding-inline-end (MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-end): - Defines logical inline end padding. - Same syntax, values, initial value, applicability, inheritance, and percentages as padding-inline-start. - Maps oppositely to physical properties compared to start. Related: padding-inline shorthand sets both (padding-inline: 10px 20px; sets start to 10px, end to 20px). These are widely supported (baseline across browsers since ~2020). For LTR horizontal-tb: start maps to left, end to right. Changes with RTL (direction: rtl) or vertical writing-modes.
Citations:
- 1: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/padding-inline-start
- 2: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/padding-inline-end
- 3: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/padding-inline
- 4: https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Logical_properties_and_values
🌐 Web query:
Tailwind CSS ps-4 pe-4 logical properties mapping
💡 Result:
In Tailwind CSS, the classes ps-4 and pe-4 use logical properties for RTL/LTR support. ps-4 maps to padding-inline-start: 1rem (16px), which corresponds to padding-left in LTR and padding-right in RTL. pe-4 maps to padding-inline-end: 1rem (16px), which corresponds to padding-right in LTR and padding-left in RTL. These were introduced in v3.3 for inline direction support.
Citations:
- 1: Add logical properties support for inline direction tailwindlabs/tailwindcss#10166
- 2: https://tailwindcss.com/blog/tailwindcss-v3-3
- 3: https://tailwindcss.com/docs/padding
- 4: https://www.docs4dev.com/docs/tailwindcss/latest/padding.html
- 5: https://v3.tailwindcss.com/docs/padding
Distinguish native CSS logical properties from framework utility class names.
The text labels ps-4, pe-4, and text-start as "CSS logical properties," but these are Tailwind CSS utility class names. The native CSS logical properties are padding-inline-start, padding-inline-end, and text-align: start. This distinction matters for teams adopting logical properties without a utility framework.
Suggested revision
-CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout automatically.
+Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL layout. If using a utility framework, use its equivalent classes (for example: Tailwind's `ps-4`, `pe-4`, `text-start`).📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| For multilingual sites, use **next-intl** (1.8M weekly downloads) with subdirectory URL strategy (`/en/`, `/hi/`, `/ar/`) to centralize domain authority. Set `lang` and `dir` on `<html>`. Hreflang tags must be self-referencing and reciprocal on every page — 31% of international sites have broken hreflang. Use ICU MessageFormat for plural/gender forms (Arabic requires 6 CLDR plural categories). CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout automatically. | |
| For multilingual sites, use **next-intl** (1.8M weekly downloads) with subdirectory URL strategy (`/en/`, `/hi/`, `/ar/`) to centralize domain authority. Set `lang` and `dir` on `<html>`. Hreflang tags must be self-referencing and reciprocal on every page — 31% of international sites have broken hreflang. Use ICU MessageFormat for plural/gender forms (Arabic requires 6 CLDR plural categories). Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL layout. If using a utility framework, use its equivalent classes (for example: Tailwind's `ps-4`, `pe-4`, `text-start`). |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@jetbrains-junie/.junie/guidelines.md` at line 478, Update the guideline text
to distinguish Tailwind utility class names from native CSS logical properties:
replace the phrase that calls `ps-4`, `pe-4`, and `text-start` "CSS logical
properties" with a clear note that those are Tailwind utilities, and add the
actual native properties `padding-inline-start`, `padding-inline-end`, and
`text-align: start` (or `direction`/`unicode-bidi` as needed) as the
alternatives for teams not using a utility framework; reference the existing
labels `ps-4`, `pe-4`, and `text-start` and the native properties so readers
know which to use depending on whether they use Tailwind or plain CSS.
|
|
||
| For nonprofit donation pages: present 3-4 preset amounts with the middle option pre-selected and pair amounts with impact descriptions ("$40/month provides clean water for 12 families"). Pre-select monthly giving — monthly donors become more valuable than one-time donors within 5.25 months, yet 64% of nonprofits still default to one-time. Single-step forms vastly outperform multi-step (52% drop in completions with multi-step). Eliminating site header navigation during the donation flow produced a documented 195% conversion increase. Embed the form directly on-site; never redirect to a third-party processor. | ||
|
|
||
| For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's find and read the file
fd -i "geo-seo.md" -type fRepository: Open-Paws/structured-coding-with-ai
Length of output: 249
🏁 Script executed:
# Correct fd syntax - use -type f without -i flag
fd "geo-seo.md" --type fRepository: Open-Paws/structured-coding-with-ai
Length of output: 61
🏁 Script executed:
# Let's explore the repository structure and find the file
git ls-files | grep -i "geo-seo"Repository: Open-Paws/structured-coding-with-ai
Length of output: 496
🏁 Script executed:
# Read the file and look at lines around 493 and 527
cat -n roo-code/.roo/rules/geo-seo.md | sed -n '490,496p; 524,530p'Repository: Open-Paws/structured-coding-with-ai
Length of output: 2058
Clarify HTML/React attribute naming and utility-class terminology.
Line 493: Mention autocomplete for HTML guidance and autoComplete for React separately, since the current text only shows React syntax.
Line 527: Label ps-4, pe-4, text-start as Tailwind utility classes, not native CSS logical properties.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@roo-code/.roo/rules/geo-seo.md` at line 493, Update the copy to distinguish
HTML and React attribute names: explicitly mention the HTML attribute
`autocomplete` and the React prop `autoComplete` when advising to support
browser autofill (replace or augment the existing React-only example). Also
clarify that `ps-4`, `pe-4`, and `text-start` are Tailwind utility classes (not
native CSS logical properties) by labeling them as Tailwind utilities wherever
those class names are referenced.
|
@coderabbitai resume |
✅ Actions performedReviews resumed. |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (15)
roo-code/.roo/rules/geo-seo.md (1)
493-493:⚠️ Potential issue | 🟡 MinorMake form/CSS guidance framework-neutral and technically precise.
Use HTML
autocompletein generic guidance (optionally note ReactautoComplete), and don’t callps-4/pe-4/text-startCSS properties—they are utility classes.✏️ Suggested wording fix
-Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +Support browser autofill with correct `autocomplete` attributes (React JSX equivalent: `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5). -Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets. +Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL mirroring, or utility-framework equivalents such as `ps-4`, `pe-4`, and `text-start`.What is the HTML standard attribute name for browser autofill, what is the React JSX equivalent, and are `ps-4`/`pe-4`/`text-start` native CSS properties?Also applies to: 527-527
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@roo-code/.roo/rules/geo-seo.md` at line 493, Update the guidance to be framework-neutral and technically precise: replace any references to "browser autofill" with the HTML standard attribute name autocomplete, note the React JSX equivalent autoComplete in parentheses (no framework-specific examples), and remove or stop recommending utility class names like ps-4, pe-4, and text-start—refer instead to native CSS properties (e.g., padding-inline-start/padding-inline-end and text-align) or say "use CSS for spacing/alignment" so the doc doesn't prescribe utility classes; update the sentences near the existing autocomplete and CSS guidance accordingly.jetbrains-junie/.junie/guidelines.md (1)
478-478:⚠️ Potential issue | 🟡 MinorClarify utility classes vs native CSS logical properties.
ps-4,pe-4, andtext-startare utility classes, not CSS property names.✏️ Suggested wording fix
-CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout automatically. +Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL layout. If using a utility framework, use its equivalents (for example: `ps-4`, `pe-4`, `text-start`).Are `ps-4`, `pe-4`, and `text-start` native CSS logical properties or utility classes, and what are the native CSS equivalents?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@jetbrains-junie/.junie/guidelines.md` at line 478, Update the sentence to state that ps-4, pe-4, and text-start are framework utility classes (not native CSS properties) and add their native CSS logical equivalents: use padding-inline-start, padding-inline-end, and text-align (or inline-size/text-align for flow) or consider padding-inline and text-align: start/right/left as appropriate; mention that the corresponding logical CSS properties (padding-inline-start, padding-inline-end, padding-inline, block-size/inline-size, and direction/ text-align) handle RTL automatically. Reference the utility class names ps-4, pe-4, and text-start when clarifying and provide the native CSS property names as the replacements.augment-code/.augment/rules/geo-seo.md (1)
496-496:⚠️ Potential issue | 🟡 MinorCorrect HTML/React naming and CSS logical-property terminology.
This text is still mixing framework-specific names into framework-neutral guidance.
✏️ Suggested wording fix
-Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +Support browser autofill with correct `autocomplete` attributes (React JSX equivalent: `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5). -Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets. +Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL layout mirroring, or utility-framework equivalents such as `ps-4`, `pe-4`, and `text-start`.In standards terms, should generic docs use `autocomplete` or `autoComplete`, and are `ps-4`/`pe-4`/`text-start` CSS properties or utility classes?Also applies to: 530-530
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@augment-code/.augment/rules/geo-seo.md` at line 496, The guidance is mixing framework-specific names into framework-neutral docs; replace React-specific attr names and utility-class tokens with standard HTML/CSS terminology: use the HTML attribute name "autocomplete" (lowercase) instead of "autoComplete", and describe layout using CSS logical properties (e.g., "padding-inline-start"/"padding-inline-end" and "text-align: start") rather than utility class names like "ps-4", "pe-4", or "text-start"; also call out when examples are framework-specific by labeling them as framework examples or showing both the standard property and the framework utility equivalent.windsurf/.windsurf/rules/geo-seo.md (1)
497-497:⚠️ Potential issue | 🟡 MinorUse platform-standard terminology for autofill and logical CSS properties.
These lines still read as framework-specific and technically imprecise.
✏️ Suggested wording fix
-Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +Support browser autofill with correct `autocomplete` attributes (React JSX equivalent: `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5). -Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets. +Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL mirroring, or utility-framework equivalents such as `ps-4`, `pe-4`, and `text-start`.What is the correct HTML autofill attribute name vs React JSX prop name, and are `ps-4`/`pe-4`/`text-start` native CSS properties?Also applies to: 531-531
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@windsurf/.windsurf/rules/geo-seo.md` at line 497, Update the wording to use platform-standard terms: explain that the correct raw HTML attribute is "autocomplete" while in React JSX it is "autoComplete" (case-sensitive), and replace framework-specific CSS references like "ps-4", "pe-4", and "text-start" with native CSS properties such as "padding-inline-start"/"padding-inline-end" or "padding-left"/"padding-right" and "text-align: start" (or note these are Bootstrap utility classes if you must keep them); keep the WCAG reference "WCAG 2.2 AA SC 1.3.5" as-is and apply the same clarification at the other occurrence mentioned ("531-531").kilo-code/.kilocode/rules/geo-seo.md (1)
496-496:⚠️ Potential issue | 🟡 MinorFix HTML autofill attribute naming and CSS logical-property wording.
Line 496 should reference HTML
autocomplete(with optional ReactautoCompletenote).
Line 530 should not describeps-4/pe-4/text-startas native CSS properties.Verify with standards/framework docs: - HTML uses `autocomplete`; React JSX uses `autoComplete`. - `ps-4`, `pe-4`, `text-start` are utility classes, while native CSS logical properties are `padding-inline-start`, `padding-inline-end`, and `text-align: start`.Also applies to: 530-530
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@kilo-code/.kilocode/rules/geo-seo.md` at line 496, Update the wording at the two noted spots: change the HTML attribute reference on the line currently mentioning "autofill" to the correct attribute name "autocomplete" and add a parenthetical note that React JSX uses "autoComplete"; and update the description that currently treats "ps-4"/"pe-4"/"text-start" as native CSS properties to instead state they are utility classes, and mention the equivalent native CSS logical properties "padding-inline-start", "padding-inline-end", and "text-align: start" for clarity.agents-md/AGENTS.md (1)
504-504:⚠️ Potential issue | 🟡 MinorRefine metric wording for precision.
Line 504 reads awkwardly (“saw average position drops of 0.8 places”). Prefer “saw an average ranking drop of 0.8 positions” for clarity.
✏️ Proposed edit
-43% of sites still fail the INP threshold. Sites with INP above 200ms saw average position drops of 0.8 places; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them. +43% of sites still fail the INP threshold. Sites with INP above 200ms saw an average ranking drop of 0.8 positions; LCP above 3s causes 23% more traffic loss vs faster competitors. The primary INP technique is `scheduler.yield()` (Chrome-native, with `setTimeout` fallback) — breaks long tasks so the browser can handle user input between them.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@agents-md/AGENTS.md` at line 504, Replace the awkward phrase in AGENTS.md describing ranking impact: change "saw average position drops of 0.8 places" to "saw an average ranking drop of 0.8 positions" in the sentence that starts with "43% of sites still fail the INP threshold..." so the metric wording is clearer and more precise.cursor/.cursor/rules/geo-seo.mdc (1)
496-496:⚠️ Potential issue | 🟡 MinorCorrect HTML/CSS terminology to avoid implementation mistakes.
Line 496 should use native HTML
autocomplete(or explicitly distinguish React JSXautoComplete).
Line 530 mislabelsps-4,pe-4,text-startas native CSS logical properties—they are utility classes.Confirm from official docs: 1) Native HTML attribute name for autofill is "autocomplete", and React JSX prop is "autoComplete". 2) "ps-4", "pe-4", and "text-start" are utility classes (Tailwind/Bootstrap), not native CSS logical properties; provide native equivalents.🛠 Suggested wording fix
-For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autoComplete` attributes (also required for WCAG 2.2 AA SC 1.3.5). +For all forms: target 3-5 essential fields maximum — each additional field costs ~11% in conversion. Start with easy, non-threatening questions. Make optional fields clearly optional (+25-35% completion). Support browser autofill with correct `autocomplete` attributes in HTML (React JSX uses `autoComplete`) (also required for WCAG 2.2 AA SC 1.3.5).-Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout mirroring automatically without separate stylesheets. +Arabic requires all 6 CLDR plural categories — use ICU MessageFormat, not string concatenation. Native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) handle RTL layout mirroring automatically; utility-class equivalents include `ps-4`, `pe-4`, and `text-start`.Also applies to: 530-530
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@cursor/.cursor/rules/geo-seo.mdc` at line 496, The docs/text incorrectly uses non-native terminology: replace any mention of the HTML autofill attribute "autoComplete" with the native HTML attribute name "autocomplete" (and note that in React JSX the prop is camelCased as "autoComplete"); also correct the claim that "ps-4", "pe-4", and "text-start" are native CSS logical properties—mark them as utility classes (e.g., Bootstrap/Tailwind) and provide native CSS equivalents such as padding-inline-start, padding-inline-end, and text-align (or text-align: start/left) where appropriate so implementers use the correct attribute/prop names and CSS properties (search for occurrences of autocomplete/autoComplete and the utility class names to update).github-copilot/.github/instructions/geo-seo.md (3)
492-492:⚠️ Potential issue | 🟡 MinorUse HTML
autocompletenaming (or explicitly note JSX variant).Line 492 is framework-agnostic text but uses React casing. Prefer
autocompletein HTML and optionally clarify React usesautoComplete.In standards docs, what is the correct attribute name in native HTML vs React JSX for browser autofill: `autocomplete` or `autoComplete`?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` at line 492, The guidance line should use native HTML attribute casing `autocomplete` (lowercase) and add a parenthetical note that in React JSX the prop is `autoComplete` (camelCase); update the text that currently shows `autoComplete` to read `autocomplete` and append a brief clarification like "(React JSX: `autoComplete`)" so the doc remains framework-agnostic and accurate.
526-526:⚠️ Potential issue | 🟡 MinorDistinguish native CSS logical properties from utility classes.
Line 526 currently presents
ps-4,pe-4,text-startas logical properties; these are framework utilities. Use native names (padding-inline-start,padding-inline-end,text-align: start) and optionally map utility equivalents.Are `ps-4`, `pe-4`, and `text-start` native CSS logical properties or framework utility classes, and what are their native CSS equivalents?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` at line 526, The comment flags that ps-4, pe-4 and text-start are framework utility classes, not native CSS logical properties; update the docs/text to clearly distinguish them by replacing or annotating occurrences of "ps-4", "pe-4", and "text-start" with their native CSS equivalents ("padding-inline-start", "padding-inline-end", "text-align: start") and optionally note the utility-to-native mapping (e.g., ps-4 -> padding-inline-start) so readers understand these are utilities vs. built-in logical properties.
336-343:⚠️ Potential issue | 🟠 MajorSecurity baseline is missing
Permissions-PolicyandCOOP.Line 336-343 should include both headers to match the rest of the GEO/SEO baseline and avoid incomplete hardening guidance.
🔧 Suggested patch
### Security headers @@ - `Referrer-Policy: strict-origin-when-cross-origin` +- `Permissions-Policy: camera=(), microphone=(), geolocation=()` +- `Cross-Origin-Opener-Policy: same-origin` - Fix all mixed content (HTTP resources on HTTPS pages) - Remove `X-Powered-By` header (information disclosure)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/instructions/geo-seo.md` around lines 336 - 343, Add the missing Permissions-Policy and Cross-Origin-Opener-Policy (COOP) headers in the same place you set the other security headers (e.g., in Next.js middleware.ts header configuration) so the GEO/SEO baseline is complete; set Permissions-Policy to explicitly opt out of sensitive features (example: block geolocation, camera, microphone, interest-cohort, etc.) and set Cross-Origin-Opener-Policy to a strict value (e.g., "same-origin") to provide top-level document isolation — update the header list alongside Content-Security-Policy, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy and removal of X-Powered-By.claude-code/.claude/skills/geo-seo-audit/SKILL.md (2)
264-264:⚠️ Potential issue | 🟡 MinorUse standards-based autofill attribute naming in checklist text.
Line 264 should use
autocompletefor HTML guidance (optionally noting React’sautoComplete).What is the correct autofill attribute name in HTML docs, and how should React JSX naming be represented?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 264, Update the checklist text to use the HTML attribute name "autocomplete" (lowercase, single word) for standards-based guidance and optionally note React JSX uses "autoComplete" (camelCase) when referencing component props; replace the current backticked `autoComplete` wording at the checklist item with "autocomplete" and add a short parenthetical like "(React prop: autoComplete)" if you want to call out the JSX naming.
163-163:⚠️ Potential issue | 🟠 MajorAdd
LocalBusinessto the optional schema list.Line 163 omits
LocalBusiness, which can cause false passes for organizations with physical locations.In Schema.org guidance for organization pages, should `LocalBusiness` be included as an applicable type for location-based entities?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md` at line 163, The "Additional applicable types" list in SKILL.md currently reads "HowTo, SoftwareApplication, Event, Dataset, VideoObject" and is missing LocalBusiness; update that list to include LocalBusiness (e.g., "HowTo, SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness") so location-based organizations are correctly flagged, and adjust any related examples or validation checks that derive from this list in the geo-seo-audit skill.claude-code/.claude/rules/geo-seo.md (1)
507-507:⚠️ Potential issue | 🟡 MinorClarify HTML
autocompletevs ReactautoComplete.Line 507 is framework-agnostic guidance but uses React-style casing; use
autocompletefor HTML and optionally add the React note.Confirm the canonical naming for browser autofill attributes in native HTML and in React JSX inputs.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@claude-code/.claude/rules/geo-seo.md` at line 507, The guidance line should use the canonical HTML attribute name "autocomplete" (lowercase) for browser autofill, and add a brief parenthetical note that in React JSX the prop is "autoComplete" (camelCase); update the sentence mentioning `autoComplete` to reference the HTML attribute `autocomplete` and append a short React note, and ensure the WCAG reference (SC 1.3.5) remains intact.github-copilot/.github/skills/geo-seo-audit/SKILL.md (2)
264-264:⚠️ Potential issue | 🟡 MinorStandardize form autofill attribute naming.
Line 264 uses JSX-style casing in a tool-agnostic checklist. Prefer
autocomplete(and optionally note React usesautoComplete).For web form autofill guidance, what naming should docs use for HTML vs React JSX: `autocomplete` and `autoComplete`?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md` at line 264, The checklist uses JSX-style casing `autoComplete` but should use the standard HTML attribute name `autocomplete` in tool-agnostic docs; update the checklist item (the string "`autoComplete` attributes on all form fields?") to "`autocomplete` attributes on all form fields?" and optionally add a brief parenthetical note that React JSX uses `autoComplete` (e.g., "HTML `autocomplete` (React JSX: `autoComplete`)") so readers know the React exception.
163-163:⚠️ Potential issue | 🟠 MajorInclude
LocalBusinessin applicable schema types.Line 163 should include
LocalBusinessfor location-based entities to keep the audit rubric aligned with canonical rules.Is `LocalBusiness` an official Schema.org type appropriate for location-based organizations in JSON-LD audits?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md` at line 163, Update the applicable schema types list to include LocalBusiness so location-based entities are covered; specifically, add "LocalBusiness" to the "Additional applicable types" entry (the line that currently reads "Additional applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject") in SKILL.md to align the audit rubric with canonical Schema.org types for location-based organizations.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@aider/CONVENTIONS.md`:
- Around line 426-429: Update the Internationalization section to clarify that
ps-4, pe-4, and text-start are Tailwind (or other utility framework) classes
rather than native CSS logical properties; change the wording to recommend using
CSS logical properties (e.g., padding-inline-start, padding-inline-end,
text-align: start) for plain-CSS projects and note that utility classes like
ps-4/pe-4/text-start provide the equivalent behavior in Tailwind/Bootstrap-style
frameworks so teams understand the distinction.
In `@gemini-cli/GEMINI.md`:
- Line 452: Edit the paragraph that currently starts with three consecutive
"Required ..." sentences in GEMINI.md (the lines describing Organization +
WebSite, Article, and FAQPage schemas) to remove the repetitive sentence
openings — e.g., replace the three "Required on ..." sentences with a single
lead like "Required: on every page include Organization + WebSite (with sameAs
to Wikipedia and Wikidata); on content pages include Article (with author,
datePublished, dateModified); on Q&A pages include FAQPage." — keep all required
schema names (BreadcrumbList, Person, HowTo, VideoObject) and the instruction to
use `@id` and validate at https://validator.schema.org/ unchanged.
---
Duplicate comments:
In `@agents-md/AGENTS.md`:
- Line 504: Replace the awkward phrase in AGENTS.md describing ranking impact:
change "saw average position drops of 0.8 places" to "saw an average ranking
drop of 0.8 positions" in the sentence that starts with "43% of sites still fail
the INP threshold..." so the metric wording is clearer and more precise.
In `@augment-code/.augment/rules/geo-seo.md`:
- Line 496: The guidance is mixing framework-specific names into
framework-neutral docs; replace React-specific attr names and utility-class
tokens with standard HTML/CSS terminology: use the HTML attribute name
"autocomplete" (lowercase) instead of "autoComplete", and describe layout using
CSS logical properties (e.g., "padding-inline-start"/"padding-inline-end" and
"text-align: start") rather than utility class names like "ps-4", "pe-4", or
"text-start"; also call out when examples are framework-specific by labeling
them as framework examples or showing both the standard property and the
framework utility equivalent.
In `@claude-code/.claude/rules/geo-seo.md`:
- Line 507: The guidance line should use the canonical HTML attribute name
"autocomplete" (lowercase) for browser autofill, and add a brief parenthetical
note that in React JSX the prop is "autoComplete" (camelCase); update the
sentence mentioning `autoComplete` to reference the HTML attribute
`autocomplete` and append a short React note, and ensure the WCAG reference (SC
1.3.5) remains intact.
In `@claude-code/.claude/skills/geo-seo-audit/SKILL.md`:
- Line 264: Update the checklist text to use the HTML attribute name
"autocomplete" (lowercase, single word) for standards-based guidance and
optionally note React JSX uses "autoComplete" (camelCase) when referencing
component props; replace the current backticked `autoComplete` wording at the
checklist item with "autocomplete" and add a short parenthetical like "(React
prop: autoComplete)" if you want to call out the JSX naming.
- Line 163: The "Additional applicable types" list in SKILL.md currently reads
"HowTo, SoftwareApplication, Event, Dataset, VideoObject" and is missing
LocalBusiness; update that list to include LocalBusiness (e.g., "HowTo,
SoftwareApplication, Event, Dataset, VideoObject, LocalBusiness") so
location-based organizations are correctly flagged, and adjust any related
examples or validation checks that derive from this list in the geo-seo-audit
skill.
In `@cursor/.cursor/rules/geo-seo.mdc`:
- Line 496: The docs/text incorrectly uses non-native terminology: replace any
mention of the HTML autofill attribute "autoComplete" with the native HTML
attribute name "autocomplete" (and note that in React JSX the prop is camelCased
as "autoComplete"); also correct the claim that "ps-4", "pe-4", and "text-start"
are native CSS logical properties—mark them as utility classes (e.g.,
Bootstrap/Tailwind) and provide native CSS equivalents such as
padding-inline-start, padding-inline-end, and text-align (or text-align:
start/left) where appropriate so implementers use the correct attribute/prop
names and CSS properties (search for occurrences of autocomplete/autoComplete
and the utility class names to update).
In `@github-copilot/.github/instructions/geo-seo.md`:
- Line 492: The guidance line should use native HTML attribute casing
`autocomplete` (lowercase) and add a parenthetical note that in React JSX the
prop is `autoComplete` (camelCase); update the text that currently shows
`autoComplete` to read `autocomplete` and append a brief clarification like
"(React JSX: `autoComplete`)" so the doc remains framework-agnostic and
accurate.
- Line 526: The comment flags that ps-4, pe-4 and text-start are framework
utility classes, not native CSS logical properties; update the docs/text to
clearly distinguish them by replacing or annotating occurrences of "ps-4",
"pe-4", and "text-start" with their native CSS equivalents
("padding-inline-start", "padding-inline-end", "text-align: start") and
optionally note the utility-to-native mapping (e.g., ps-4 ->
padding-inline-start) so readers understand these are utilities vs. built-in
logical properties.
- Around line 336-343: Add the missing Permissions-Policy and
Cross-Origin-Opener-Policy (COOP) headers in the same place you set the other
security headers (e.g., in Next.js middleware.ts header configuration) so the
GEO/SEO baseline is complete; set Permissions-Policy to explicitly opt out of
sensitive features (example: block geolocation, camera, microphone,
interest-cohort, etc.) and set Cross-Origin-Opener-Policy to a strict value
(e.g., "same-origin") to provide top-level document isolation — update the
header list alongside Content-Security-Policy, HSTS, X-Content-Type-Options,
X-Frame-Options, Referrer-Policy and removal of X-Powered-By.
In `@github-copilot/.github/skills/geo-seo-audit/SKILL.md`:
- Line 264: The checklist uses JSX-style casing `autoComplete` but should use
the standard HTML attribute name `autocomplete` in tool-agnostic docs; update
the checklist item (the string "`autoComplete` attributes on all form fields?")
to "`autocomplete` attributes on all form fields?" and optionally add a brief
parenthetical note that React JSX uses `autoComplete` (e.g., "HTML
`autocomplete` (React JSX: `autoComplete`)") so readers know the React
exception.
- Line 163: Update the applicable schema types list to include LocalBusiness so
location-based entities are covered; specifically, add "LocalBusiness" to the
"Additional applicable types" entry (the line that currently reads "Additional
applicable types: HowTo, SoftwareApplication, Event, Dataset, VideoObject") in
SKILL.md to align the audit rubric with canonical Schema.org types for
location-based organizations.
In `@jetbrains-junie/.junie/guidelines.md`:
- Line 478: Update the sentence to state that ps-4, pe-4, and text-start are
framework utility classes (not native CSS properties) and add their native CSS
logical equivalents: use padding-inline-start, padding-inline-end, and
text-align (or inline-size/text-align for flow) or consider padding-inline and
text-align: start/right/left as appropriate; mention that the corresponding
logical CSS properties (padding-inline-start, padding-inline-end,
padding-inline, block-size/inline-size, and direction/ text-align) handle RTL
automatically. Reference the utility class names ps-4, pe-4, and text-start when
clarifying and provide the native CSS property names as the replacements.
In `@kilo-code/.kilocode/rules/geo-seo.md`:
- Line 496: Update the wording at the two noted spots: change the HTML attribute
reference on the line currently mentioning "autofill" to the correct attribute
name "autocomplete" and add a parenthetical note that React JSX uses
"autoComplete"; and update the description that currently treats
"ps-4"/"pe-4"/"text-start" as native CSS properties to instead state they are
utility classes, and mention the equivalent native CSS logical properties
"padding-inline-start", "padding-inline-end", and "text-align: start" for
clarity.
In `@roo-code/.roo/rules/geo-seo.md`:
- Line 493: Update the guidance to be framework-neutral and technically precise:
replace any references to "browser autofill" with the HTML standard attribute
name autocomplete, note the React JSX equivalent autoComplete in parentheses (no
framework-specific examples), and remove or stop recommending utility class
names like ps-4, pe-4, and text-start—refer instead to native CSS properties
(e.g., padding-inline-start/padding-inline-end and text-align) or say "use CSS
for spacing/alignment" so the doc doesn't prescribe utility classes; update the
sentences near the existing autocomplete and CSS guidance accordingly.
In `@windsurf/.windsurf/rules/geo-seo.md`:
- Line 497: Update the wording to use platform-standard terms: explain that the
correct raw HTML attribute is "autocomplete" while in React JSX it is
"autoComplete" (case-sensitive), and replace framework-specific CSS references
like "ps-4", "pe-4", and "text-start" with native CSS properties such as
"padding-inline-start"/"padding-inline-end" or "padding-left"/"padding-right"
and "text-align: start" (or note these are Bootstrap utility classes if you must
keep them); keep the WCAG reference "WCAG 2.2 AA SC 1.3.5" as-is and apply the
same clarification at the other occurrence mentioned ("531-531").
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: c4bfa388-481e-4de5-9b15-58f90955c305
📒 Files selected for processing (20)
README.mdagents-md/AGENTS.mdaider/CONVENTIONS.mdaugment-code/.augment/rules/geo-seo.mdclaude-code/.claude/README.mdclaude-code/.claude/rules/README.mdclaude-code/.claude/rules/geo-seo.mdclaude-code/.claude/skills/README.mdclaude-code/.claude/skills/geo-seo-audit/SKILL.mdcursor/.cursor/rules/geo-seo.mdcgemini-cli/GEMINI.mdgithub-copilot/.github/instructions/README.mdgithub-copilot/.github/instructions/geo-seo.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdgithub-copilot/.github/skills/README.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdjetbrains-junie/.junie/guidelines.mdkilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdwindsurf/.windsurf/rules/geo-seo.md
| ### Internationalization | ||
|
|
||
| For multilingual sites, use **next-intl** (1.8M weekly downloads) with subdirectory URL strategy (`/en/`, `/hi/`, `/ar/`) to centralize domain authority. Set `lang` and `dir` on `<html>`. Hreflang tags must be self-referencing and reciprocal on every page — 31% of international sites have broken hreflang. Use ICU MessageFormat for plural/gender forms (Arabic requires 6 CLDR plural categories). CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout automatically. | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
What are the native CSS logical properties corresponding to ps-4, pe-4, and text-start, and are those names native CSS properties or utility framework classes?
💡 Result:
The classes ps-4, pe-4, and text-start are utility framework classes from Tailwind CSS, not native CSS properties. Their corresponding native CSS logical properties are: - ps-4 → padding-inline-start: 1rem (16px) - pe-4 → padding-inline-end: 1rem (16px) - text-start → text-align: start
Citations:
- 1: https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Logical_properties_and_values/Margins_borders_padding
- 2: https://developer.mozilla.org/en/docs/Web/CSS/CSS_logical_properties_and_values
- 3: https://www.w3.org/TR/css-logical-1/
- 4: https://developer.mozilla.org/en/docs/Web/CSS/text-align
- 5: https://tailwindcss.com/docs/padding/
- 6: https://www.docs4dev.com/docs/tailwindcss/latest/padding.html
- 7: https://tailscan.com/tailwind/spacing/ps-4
- 8: https://tailscan.com/tailwind/spacing/pe-4
- 9: https://tailwindcss.com/docs/text-align
Clarify that those are utility framework classes, not native CSS logical properties.
The text presents ps-4, pe-4, and text-start as CSS logical properties, but these are Tailwind utility classes. Using native CSS property names prevents confusion for teams using plain CSS.
Suggested fix
-CSS logical properties (`ps-4`, `pe-4`, `text-start`) handle RTL layout automatically.
+Use native CSS logical properties (`padding-inline-start`, `padding-inline-end`, `text-align: start`) for RTL layout. If using a utility framework, use its equivalents (for example: `ps-4`, `pe-4`, `text-start`).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@aider/CONVENTIONS.md` around lines 426 - 429, Update the Internationalization
section to clarify that ps-4, pe-4, and text-start are Tailwind (or other
utility framework) classes rather than native CSS logical properties; change the
wording to recommend using CSS logical properties (e.g., padding-inline-start,
padding-inline-end, text-align: start) for plain-CSS projects and note that
utility classes like ps-4/pe-4/text-start provide the equivalent behavior in
Tailwind/Bootstrap-style frameworks so teams understand the distinction.
|
|
||
| **Wikipedia COI (mandatory):** Never directly edit your own organization's Wikipedia article. Disclose affiliation on the Talk page. Propose edits through Talk-page requests or neutral editors. Use only independent, reliable sources. | ||
|
|
||
| **Structured data (JSON-LD):** 41% AI citation rate with schema vs 15% without. Required on every page: Organization + WebSite schema (with `sameAs` to Wikipedia and Wikidata). Required on content pages: Article schema with `author`, `datePublished`, `dateModified`. Required on Q&A pages: FAQPage schema. Also implement: BreadcrumbList, Person (author pages), HowTo, VideoObject. Use `@id` to connect entities. Validate at https://validator.schema.org/. |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Tighten repeated sentence openings for readability.
Line 452 repeats “Required … Required … Required …” in consecutive sentences; rephrasing improves scanability without changing meaning.
Suggested wording tweak
-**Structured data (JSON-LD):** 41% AI citation rate with schema vs 15% without. Required on every page: Organization + WebSite schema (with `sameAs` to Wikipedia and Wikidata). Required on content pages: Article schema with `author`, `datePublished`, `dateModified`. Required on Q&A pages: FAQPage schema. Also implement: BreadcrumbList, Person (author pages), HowTo, VideoObject. Use `@id` to connect entities. Validate at https://validator.schema.org/.
+**Structured data (JSON-LD):** 41% AI citation rate with schema vs 15% without. On every page, include Organization + WebSite schema (with `sameAs` to Wikipedia and Wikidata). On content pages, include Article schema with `author`, `datePublished`, `dateModified`; on Q&A pages, include FAQPage schema. Also implement: BreadcrumbList, Person (author pages), HowTo, VideoObject. Use `@id` to connect entities. Validate at https://validator.schema.org/.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| **Structured data (JSON-LD):** 41% AI citation rate with schema vs 15% without. Required on every page: Organization + WebSite schema (with `sameAs` to Wikipedia and Wikidata). Required on content pages: Article schema with `author`, `datePublished`, `dateModified`. Required on Q&A pages: FAQPage schema. Also implement: BreadcrumbList, Person (author pages), HowTo, VideoObject. Use `@id` to connect entities. Validate at https://validator.schema.org/. | |
| **Structured data (JSON-LD):** 41% AI citation rate with schema vs 15% without. On every page, include Organization + WebSite schema (with `sameAs` to Wikipedia and Wikidata). On content pages, include Article schema with `author`, `datePublished`, `dateModified`; on Q&A pages, include FAQPage schema. Also implement: BreadcrumbList, Person (author pages), HowTo, VideoObject. Use `@id` to connect entities. Validate at https://validator.schema.org/. |
🧰 Tools
🪛 LanguageTool
[style] ~452-~452: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...thor, datePublished, dateModified`. Required on Q&A pages: FAQPage schema. Also impl...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@gemini-cli/GEMINI.md` at line 452, Edit the paragraph that currently starts
with three consecutive "Required ..." sentences in GEMINI.md (the lines
describing Organization + WebSite, Article, and FAQPage schemas) to remove the
repetitive sentence openings — e.g., replace the three "Required on ..."
sentences with a single lead like "Required: on every page include Organization
+ WebSite (with sameAs to Wikipedia and Wikidata); on content pages include
Article (with author, datePublished, dateModified); on Q&A pages include
FAQPage." — keep all required schema names (BreadcrumbList, Person, HowTo,
VideoObject) and the instruction to use `@id` and validate at
https://validator.schema.org/ unchanged.
Summary
Adds comprehensive SEO + GEO (Generative Engine Optimization) instructions across all 12 AI coding tool configurations, incorporating three research sources:
Files
New rule files (per-tool format)
claude-code/.claude/rules/geo-seo.mdpaths:frontmattercursor/.cursor/rules/geo-seo.mdcdescription:frontmattergithub-copilot/.github/instructions/geo-seo.mdapplyTo:globwindsurf/.windsurf/rules/geo-seo.md<!-- trigger: model_decision -->kilo-code/.kilocode/rules/geo-seo.mdroo-code/.roo/rules/geo-seo.mdaugment-code/.augment/rules/geo-seo.mdSkill files
claude-code/.claude/skills/geo-seo-audit/SKILL.mdgithub-copilot/.github/skills/geo-seo-audit/SKILL.mdgithub-copilot/.github/prompts/geo-seo-audit.prompt.mdSingle-file tools (section appended/updated)
aider/CONVENTIONS.md,gemini-cli/GEMINI.md,jetbrains-junie/.junie/guidelines.md,agents-md/AGENTS.mdIndex updates
claude-code/.claude/skills/README.md,README.mdContent coverage
Core Web Vitals (updated March 2026): LCP threshold tightened from 2.5s to 2.0s. INP officially replaces FID. Ranking impact data: INP >200ms = -0.8 position drop; LCP >3s = 23% more traffic loss vs faster competitors. 43% of sites still fail the 200ms INP threshold.
Search intent mapping: Content must match the intent format of top-ranking results before any other optimization. Table of intent types → expected content formats.
Google's Helpful Content System: Integrated into core ranking since March 2024. "Scaled content abuse" manual actions since June 2025. AI content position (Mueller, Nov 2025) with caveats.
E-E-A-T signals: How to demonstrate Experience, Expertise, Authoritativeness, Trustworthiness. Author attribution chain: Article schema → author
@id→ Person schema →sameAsexternal profiles. +40% AI citations with proper author metadata.Semantic writing for AI retrieval: Entity salience (active voice 0.74 vs passive 0.11), atomic claims as semantic triples, proper noun density (20.6% vs 5-8% standard), content density sweet spot (5,000-20,000 chars), Gemini's ~380 word per-page grounding budget.
Wikipedia and Wikidata: Wikipedia = 47.9% of ChatGPT's top-10 citations. Knowledge Panels within 7 days of Wikidata entry. Entity web strategy.
sameAsto Wikipedia and Wikidata Q-ID in Organization schema.Crawl budget: Faceted navigation URL explosion, redirect chains, crawl waste patterns. HTTP status code requirements. Index audit cadence.
Image optimization: Descriptive file names, WebP/AVIF with
<picture>fallbacks,srcsetfor responsive, explicitwidth/heightfor CLS prevention.Security headers: HSTS, CSP,
X-Content-Type-Options,X-Frame-Options, mixed content.Link building (post-March 2026 spam update): Topical relevance (r=0.4) > raw DA. Anchor text distribution requirements (sites below 30% diversity = -15 positions). Digital PR + original research = 156% more links. What was devalued: PBNs, sponsored guest posts on generalist sites, niche edits on thin domains.
Brand signals: Brand mentions now 55% of off-page ranking weight (up from ~20%). 85% of AI brand mentions from third-party pages. Unlinked mention conversion (>30% close rate). 60% of online brand mentions are unlinked.
Authoritative platform publishing: Platform trust hierarchy, Reddit/YouTube/LinkedIn/GitHub strategy. Cross-platform consistency requirement.
Platform-specific behavior: 40-60% monthly citation turnover, 11% ChatGPT/Perplexity domain overlap, first-mover advantage in data voids.
Defensive awareness: Hidden text injection including invisible Unicode U+E0000-U+E007F, agent-aware cloaking (domain-wide penalty), scaled AI content (80% traffic loss), FTC "Operation AI Comply" legal exposure.
Test plan
sameAsSummary by CodeRabbit
Documentation
New Features
Chores