# Fix

> Opt-in fixer (the /claude-seo-ai:fix command). Applies the safe, deterministic SEO/AI-search fixes from an audit to the user's code — meta viewport/charset/lang, JSON-LD, robots.txt AI directives, hreflang, sitemaps, OG/Twitter cards, image dimensions, canonical, llms.txt. Dry-run preview by default; writes only after explicit per-change confirmation. Runs only when the user invokes it — never au…

- **Type:** Skill
- **Install:** `agentstack add skill-hainrixz-claude-seo-ai-fix`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Hainrixz](https://agentstack.voostack.com/s/hainrixz)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Hainrixz](https://github.com/Hainrixz)
- **Source:** https://github.com/Hainrixz/claude-seo-ai/tree/main/skills/fix
- **Website:** https://tododeia.com

## Install

```sh
agentstack add skill-hainrixz-claude-seo-ai-fix
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# fix (opt-in writer)

`disable-model-invocation: true` means the model can **never** trigger this on its own — only the user running `/claude-seo-ai:fix`. Writes happen only through the **seo-fixer-writer** subagent (the one agent with Write/Edit) and only after explicit confirmation.

## Fixability classes (from each finding's `fixable` field — see `schema/finding.schema.json`)
- **AUTO** — deterministic, additive, machine-verifiable, low-semantic-risk. May be written (with diff + confirmation):
  meta `viewport`/`charset`/``; Tier-1 JSON-LD blocks; `sameAs`/`@id`/`dateModified` (from confirmed inputs only); robots.txt AI-crawler presets + `Sitemap:` line; self-referential canonical; hreflang link sets; OG/Twitter cards; image `width`/`height`; XML sitemap entries; `llms.txt` (disclosure-gated).
- **PROPOSED** — changes prose/meaning or is editorial; generate a draft diff and require per-item accept: generated `` and meta description, answer-block/TL;DR rewrites, internal-link insertions, heading restructuring, **generated image alt text** (titles, descriptions, and image alt are editorial messaging, not deterministic).
- **ADVISORY** — never written: content/E-E-A-T rewrites, adding stats/citations/original data, Core Web Vitals/performance, rendering strategy, redirects/status codes, link-building, Merchant Center/GBP backend data.

## Workflow
1. Take the findings (from the last audit or a fresh one). Filter to `fixable: auto` (+ `proposed` if the user opts in). Honor `--category` to scope (schema|meta|robots|sitemap|hreflang|alt|canonical|social|llms).
2. For each, locate the exact insertion point in the user's files and build a **unified diff** (or new-file content). Resolve any required real-world inputs (e.g. `sameAs` URLs, locale map, publish dates) by **asking the user** — never invent them.
3. **Dry-run (default)**: print every diff grouped by file. Write nothing. Summarize what `fix` (without `--dry-run`) would change.
4. On explicit confirmation (and only then): delegate to **seo-fixer-writer** to apply. Per-change or batch confirmation is the user's choice.

## Safety (hard rules)
- **Dry-run is the default**; writing requires the user to drop `--dry-run` and confirm.
- **Git-aware**: refuse to write to a dirty working tree unless `--force`; prefer creating/using a branch. Detect via `git status --porcelain`.
- **Backup** every file before first modification to `${CLAUDE_PLUGIN_DATA}/backups//`.
- **Idempotent**: detect existing tags/blocks; update in place, never duplicate (re-running `fix` produces no new diffs once applied).
- **Re-verify**: after writing, re-run the finding's `verification.assertion` (e.g. `scripts/validate-jsonld.mjs`) and report pass/fail per change.
- **Never touch** `.git/`, `.env`/secrets, lockfiles, or files outside the project root.
- **No fabrication**: never write invented statistics, citations, dates (no backdating `dateModified`), credentials, or identity links.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Hainrixz](https://github.com/Hainrixz)
- **Source:** [Hainrixz/claude-seo-ai](https://github.com/Hainrixz/claude-seo-ai)
- **License:** MIT
- **Homepage:** https://tododeia.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-hainrixz-claude-seo-ai-fix
- Seller: https://agentstack.voostack.com/s/hainrixz
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
