Skip to content

[docs] Fix SEO issues on introduction page + stale policy count#366

Merged
nk-ag merged 11 commits into
mainfrom
luv-366
May 19, 2026
Merged

[docs] Fix SEO issues on introduction page + stale policy count#366
nk-ag merged 11 commits into
mainfrom
luv-366

Conversation

@NiveditJain
Copy link
Copy Markdown
Member

@NiveditJain NiveditJain commented May 19, 2026

Summary

Originally an SEO fix on docs.befailproof.ai/introduction (title, meta description, H1, keyword coverage); during local Mintlify preview the scope expanded into a small copy + branding pass on the same page.

Page copy (docs/introduction.mdx)

  • Frontmatter title — set to Failproof AI (per user preference; an earlier "Introduction — Failure Handling for AI Agents" version was reverted). The frontmatter description keeps the keyword payload.
  • Meta description — rewrite from the 84-char generic ("Manage hooks and policies …") to a tighter, keyword-bearing line naming the 39 built-in policies and the top failure modes (loops, secret leaks, destructive tool calls). No "Runs locally." trailer.
  • Body keyword seedingAI failure handling, error recovery, LLM reliability added to the lede; agent failure and recovery action added to the dashboard sentence. Audit flagged all three as 0-occurrence on the page; they now appear naturally without keyword stuffing.
  • CLI list — expanded from 3 to the actual 7-CLI surface (Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, Gemini CLI, + Agents SDK).
  • Copy polish — em dashes removed from the page body and card subtitles; "Everything runs locally" sentence dropped (privacy claim "No data leaves your machine." retained).
  • Stale count — Card title 26 built-in policies39 built-in policies, matching docs/built-in-policies.mdx line 7.

Sibling fixes in docs/architecture.mdx

Same stale 26 count was in two places. Both corrected:

  • Line 189 ("Builtin policies" prose): defines all 26 …defines all 39 ….
  • Line 310 (file-tree comment): # 26 policy definitions# 39 policy definitions.

Branding (docs/docs.json, docs/logo/, docs/favicon.ico)

  • Header logo — was the Exosphere brand (logo/exosphere-{light,dark}.png). Replaced with the user-uploaded FailproofAI wordmark PNGs: logo/Failproof_AI_logo_light.png (dark text, for light-mode UI) and logo/Failproof_AI_logo.png (light text, for dark-mode UI). The unused logo/light.svg, logo/dark.svg, and the Exosphere PNGs are removed from disk. PNGs got re-exported to smaller versions during iteration.
  • Favicon — Mintlify did not render the intermediate docs/icon.svg favicon in live preview, so Nivedit dropped a 32x32 32-bit docs/favicon.ico. docs.json favicon path settled on /favicon.ico; the SVG asset is removed.

i18n

The 16 localized docs/<lang>/introduction.mdx files are not edited here. The .github/workflows/translate-docs.yml workflow watches docs/*.mdx and docs/**/*.mdx, so on push it auto-translates the English changes into every language.

Repo hygiene

mint-dev.log was added to .gitignore so the Mintlify local-preview log doesn't slip into future commits.

Commit map

Commit Scope
82ebcee Initial SEO pass on introduction.mdx (title, desc, keywords, CLI list, count).
4823f65 Sibling 26 → 39 fix in architecture.mdx prose.
dbc83f8 CodeRabbit follow-ups: second stale 26 in file-tree comment + (#366) on changelog line.
e258f27 .gitignore ignores mint-dev.log.
579ec4b Title revert to Failproof AI, em-dash + "Runs locally" copy polish, initial logo wiring, star-us banner (reverted).
f87538d Use the user-uploaded FailproofAI PNG logos (replaces both the Exosphere PNGs and the stock SVGs).
500ba78 Drop the star-us banner — reads as needy in a developer-docs context.
985cbb2 Refresh the FailproofAI logo PNGs with smaller re-exports.
969dee3 Add docs/icon.svg (FailproofAI F-mark) as an asset.
c9120d5 Wire docs.json favicon to /icon.svg and remove the old /favicon.ico.
abc8ff9 Mintlify wouldn't render the SVG favicon — switch to user-provided favicon.ico, drop the SVG attempt, pick up another logo refresh.

Test plan

  • Mintlify preview of /introduction shows the title in the browser tab as Failproof AI - FailproofAI (per Mintlify auto-append).
  • <meta name="description"> matches the rewritten string and contains 39 built-in failure policies.
  • H1 on the rendered page reads Failproof AI.
  • The first card on the landing page reads 39 built-in policies.
  • Page body contains AI failure handling, error recovery, and LLM reliability.
  • Page body has no em dashes () and no "Everything runs locally" sentence.
  • Architecture page's "Builtin policies" prose and file-tree comment both read 39.
  • Header logo is the FailproofAI wordmark (light variant on light theme, dark variant on dark theme), not the Exosphere mark.
  • Browser tab favicon is the FailproofAI F-mark (docs/favicon.ico).
  • No site-wide announcement banner appears at the top of any page.
  • translate-docs job runs green on push and opens the auto-translation PR for the 16 locales.

🤖 Generated with Claude Code

nk-ag and others added 2 commits May 19, 2026 13:51
- Title: replace duplicate-brand `Failproof AI` (rendered as
  `Failproof AI - FailproofAI`) with keyword-bearing
  `Introduction — Failure Handling for AI Agents`. Mintlify auto-appends
  the site name, yielding a single-brand, ~60-char title tag.
- Meta description: rewrite 84-char generic line to ~150 chars naming the
  39 built-in policies and top failure modes (loops, secret leaks,
  destructive tool calls).
- Body keywords: seed `AI failure handling`, `error recovery`, and
  `LLM reliability` into the lede; add `agent failure` and
  `recovery action` to the dashboard sentence so they pick up search
  signal without keyword stuffing.
- CLI list: expand from 3 to the full 7-CLI surface
  (Claude Code, Codex, Copilot, Cursor, OpenCode, Pi, Gemini, + Agents SDK).
- Stale count: card title `26 built-in policies` → `39`, matching
  `built-in-policies.mdx`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sibling fix to the introduction.mdx SEO pass — same stale count
appeared in the Builtin policies section of architecture.mdx
(`src/hooks/builtin-policies.ts defines all 26 ...`).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 19, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR updates docs: introduction hero/overview now emphasizes "Failure Handling for AI Agents" and "39 built-in failure policies," architecture docs reflect 39 policies, docs theme banner/logo were updated to new FailproofAI PNGs, CHANGELOG.md documents the edits, and .gitignore ignores mint-dev.log.

Changes

Documentation and Count Corrections

Layer / File(s) Summary
Introduction page hero, overview, and cards
docs/introduction.mdx
Hero front-matter and paragraphs updated to emphasize "Failure Handling for AI Agents", list expanded tooling/agent integrations, and the built-in policies card count corrected to 39.
Architecture documentation count correction
docs/architecture.mdx
Two locations in the architecture docs updated to state that src/hooks/builtin-policies.ts defines 39 built-in policies instead of 26.
Docs theme, changelog entry, and .gitignore
docs/docs.json, CHANGELOG.md, .gitignore
Theme banner content updated (dismissible GitHub star CTA) and logo paths switched to new FailproofAI PNGs, CHANGELOG 0.0.11-beta.0 notes expanded to document these changes, and .gitignore adds mint-dev.log.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped through docs to count with care,
Swapped twenty-six for thirty-nine flair,
A banner waves, PNGs gleam bright,
.gitignore tucks the dev log out of sight,
Little rabbit smiles — the docs look right.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: SEO improvements on the introduction page and correction of a stale policy count from 26 to 39.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed PR description is comprehensive and well-structured, detailing SEO fixes, copy updates, branding changes, and sibling corrections with thorough commit mapping and test plan.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Line 6: Append the PR number " (`#366`)" to the end of the changelog entry that
begins "SEO fixes on the docs landing page (`docs/introduction.mdx`): replace
the duplicate-brand title..." so the entry is a single line with the description
followed by the PR number; ensure you do not alter the text otherwise and keep
it as one line.

In `@docs/architecture.mdx`:
- Line 189: Update the stale policy count in the architecture document so both
references match the actual number of built-in policies defined as
BuiltinPolicyDefinition in src/hooks/builtin-policies.ts; locate the two
occurrences that state "39 built-ins" and "26 policy definitions" and change the
incorrect one to the correct total (the actual count of BuiltinPolicyDefinition
entries) so the document is consistent.
🪄 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: CHILL

Plan: Pro

Run ID: c94a2a4d-87d7-4539-afe5-a80496d3dfdd

📥 Commits

Reviewing files that changed from the base of the PR and between 6ed8cfa and 4823f65.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • docs/architecture.mdx
  • docs/introduction.mdx

Comment thread CHANGELOG.md Outdated
Comment thread docs/architecture.mdx
nk-ag and others added 9 commits May 19, 2026 13:55
- docs/architecture.mdx: fix the second stale `26 policy definitions`
  reference in the file tree comment at line 310 (the Builtin policies
  prose at line 189 was already corrected in 4823f65; the file-tree
  comment was missed).
- CHANGELOG.md: append `(#366)` to the docs entry per changelog format
  requirement.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mintlify dev server (`mint dev`) writes a session log at the repo root
when started from agent sessions; it should never be committed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…banner

- Title revert: drop the "Introduction —" prefix per user preference;
  restore frontmatter title to "Failproof AI" so the H1 reads as just
  the brand. The keyword density work in the description and body is
  retained.
- Copy pass: remove em dashes from the page body and card subtitles for
  a less wordy read; rephrase the lede into shorter sentences;
  drop the "Everything runs locally" line (kept "No data leaves your
  machine." for the privacy claim).
- Description: tighten and remove the "Runs locally." trailing fragment
  while preserving the 39-policies + failure-modes keyword payload.
- Logo: switch docs.json to the FailproofAI wordmark SVGs already
  shipped in the repo (`logo/light.svg`, `logo/dark.svg`) instead of
  the Exosphere PNGs. SVGs render the colorful F-mark + failproofai
  lockup with theme-correct ink colors.
- Banner: add a dismissible site-wide Mintlify banner inviting readers
  to star the GitHub repo. One-line CTA, dismissible.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
User uploaded two new logo PNGs into `docs/logo/`:
- `Failproof_AI_logo_light.png` — dark-text wordmark for light-mode UI
- `Failproof_AI_logo.png`       — light-text wordmark for dark-mode UI

Point `docs.json`'s `logo.light` / `logo.dark` at the new files and remove
the now-orphaned Exosphere PNGs plus the older stock `light.svg` /
`dark.svg` wordmarks that the prior commit had wired up by mistake.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Reads as needy in a developer-doc context. Logo swap stays; the
top-of-page CTA goes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace the prior PNGs with the new versions Nivedit dropped into
`docs/logo/`. Same filenames, smaller files (`Failproof_AI_logo.png`:
18KB → 14KB; `Failproof_AI_logo_light.png`: 22KB → 10KB). `docs.json`
already points at these filenames, so no config change needed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Untracked asset Nivedit dropped into `docs/` — the colorful F-mark
(pink + teal) that pairs with the wordmark logos already in `docs/logo/`.
Not wired to `docs.json` `favicon` yet; current favicon stays
`/favicon.ico` until told otherwise.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Per user follow-up after the prior commit dropped `docs/icon.svg` in:
point `docs.json` favicon at the new vector mark and remove the now
orphan `/favicon.ico`. Mintlify renders SVG favicons natively across
modern browsers.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mintlify did not render the SVG favicon in the live preview. Nivedit
dropped a 32x32 32-bit `docs/favicon.ico` into the docs root; point
`docs.json` `favicon` at `/favicon.ico` and remove the now unused
`docs/icon.svg`. Also picks up another `Failproof_AI_logo.png` refresh.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@nk-ag nk-ag merged commit 18c6baa into main May 19, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants