Workflow
- Identify pages with missing or incorrect metadata (titles, descriptions, canonical, OG tags)
- Audit against the priority rules below — fix critical issues (duplicates, indexing) first
- Ensure title, description, canonical, and og:url all agree with each other
- Verify social cards render correctly on a real URL, not localhost
- Keep diffs minimal and scoped to metadata only — do not refactor unrelated code
When to Use
Reference these guidelines when:
- adding or changing page titles, descriptions, canonical, robots
- implementing Open Graph or Twitter card metadata
- setting favicons, app icons, manifest, theme-color
- building shared SEO components or layout metadata defaults
- adding structured data (JSON-LD)
- changing locale, alternate languages, or canonical routing
- shipping new pages, marketing pages, or shareable links
rule categories by priority
| priority |
category |
impact |
| 1 |
correctness and duplication |
critical |
| 2 |
title and description |
high |
| 3 |
canonical and indexing |
high |
| 4 |
social cards |
high |
| 5 |
icons and manifest |
medium |
| 6 |
structured data |
medium |
| 7 |
locale and alternates |
low-medium |
| 8 |
tool boundaries |
critical |
quick reference
1. correctness and duplication (critical)
- define metadata in one place per page, avoid competing systems
- do not emit duplicate title, description, canonical, or robots tags
- metadata must be deterministic, no random or unstable values
- escape and sanitize any user-generated or dynamic strings
- every page must have safe defaults for title and description
2. title and description (high)
- every page must have a title
- use a consistent title format across the site
- keep titles short and readable, avoid stuffing
- shareable or searchable pages should have a meta description
- descriptions must be plain text, no markdown or quote spam
3. canonical and indexing (high)
- canonical must point to the preferred URL for the page
- use noindex only for private, duplicate, or non-public pages
- robots meta must match actual access intent
- previews or staging pages should be noindex by default when possible
- paginated pages must have correct canonical behavior
4. social cards (high)
- shareable pages must set Open Graph title, description, and image
- Open Graph and Twitter images must use absolute URLs
- prefer correct image dimensions and stable aspect ratios
- og:url must match the canonical URL
- use a sensible og:type, usually website or article
- set twitter:card appropriately, summary_large_image by default
5. icons and manifest (medium)
- include at least one favicon that works across browsers
- include apple-touch-icon when relevant
- manifest must be valid and referenced when used
- set theme-color intentionally to avoid mismatched UI chrome
- icon paths should be stable and cacheable
6. structured data (medium)
- do not add JSON-LD unless it clearly maps to real page content
- JSON-LD must be valid and reflect what is actually rendered
- do not invent ratings, reviews, prices, or organization details
- prefer one structured data block per page unless required
7. locale and alternates (low-medium)
- set the html lang attribute correctly
- set og:locale when localization exists
- add hreflang alternates only when pages truly exist
- localized pages must canonicalize correctly per locale
8. tool boundaries (critical)
- prefer minimal changes, do not refactor unrelated code
- do not migrate frameworks or SEO libraries unless requested
- follow the project's existing metadata pattern (Next.js metadata API, react-helmet, manual head, etc.)
review guidance
- fix critical issues first (duplicates, canonical, indexing)
- ensure title, description, canonical, and og:url agree
- verify social cards on a real URL, not localhost
- prefer stable, boring metadata over clever or dynamic
- keep diffs minimal and scoped to metadata only
AGI Framework Integration
Adapted for @techwavedev/agi-agent-kit
Original source: antigravity-awesome-skills
Memory-First Protocol
Cache data schemas, transformation rules, and query patterns. BM25 excels at finding specific column names, table references, and SQL patterns.
# Check for prior data engineering context before starting
python3 execution/memory_manager.py auto --query "data processing patterns and pipeline configurations for Fixing Metadata"
Storing Results
After completing work, store data engineering decisions for future sessions:
python3 execution/memory_manager.py store \
--content "Data pipeline: ETL from PostgreSQL to Qdrant, 50K records/batch, incremental sync via updated_at" \
--type technical --project <project> \
--tags fixing-metadata data
Multi-Agent Collaboration
Share data schema changes with backend and frontend agents so they update their models accordingly.
python3 execution/cross_agent_context.py store \
--agent "<your-agent>" \
--action "Data pipeline implemented — ETL processing with validation, deduplication, and error recovery" \
--project <project>
1---2name: fixing-metadata3description: Audit and fix HTML metadata including page titles, meta descriptions, canonical URLs, Open Graph tags, Twitter cards, favicons, JSON-LD structured data, and robots directives. Use when adding or reviewing SEO and social metadata.4license: MIT5---67## Workflow891. Identify pages with missing or incorrect metadata (titles, descriptions, canonical, OG tags)102. Audit against the priority rules below — fix critical issues (duplicates, indexing) first113. Ensure title, description, canonical, and og:url all agree with each other124. Verify social cards render correctly on a real URL, not localhost135. Keep diffs minimal and scoped to metadata only — do not refactor unrelated code14## When to Use15Reference these guidelines when:16- adding or changing page titles, descriptions, canonical, robots17- implementing Open Graph or Twitter card metadata18- setting favicons, app icons, manifest, theme-color19- building shared SEO components or layout metadata defaults20- adding structured data (JSON-LD)21- changing locale, alternate languages, or canonical routing22- shipping new pages, marketing pages, or shareable links2324## rule categories by priority2526| priority | category | impact |27|----------|----------|--------|28| 1 | correctness and duplication | critical |29| 2 | title and description | high |30| 3 | canonical and indexing | high |31| 4 | social cards | high |32| 5 | icons and manifest | medium |33| 6 | structured data | medium |34| 7 | locale and alternates | low-medium |35| 8 | tool boundaries | critical |3637## quick reference3839### 1. correctness and duplication (critical)4041- define metadata in one place per page, avoid competing systems42- do not emit duplicate title, description, canonical, or robots tags43- metadata must be deterministic, no random or unstable values44- escape and sanitize any user-generated or dynamic strings45- every page must have safe defaults for title and description4647### 2. title and description (high)4849- every page must have a title50- use a consistent title format across the site51- keep titles short and readable, avoid stuffing52- shareable or searchable pages should have a meta description53- descriptions must be plain text, no markdown or quote spam5455### 3. canonical and indexing (high)5657- canonical must point to the preferred URL for the page58- use noindex only for private, duplicate, or non-public pages59- robots meta must match actual access intent60- previews or staging pages should be noindex by default when possible61- paginated pages must have correct canonical behavior6263### 4. social cards (high)6465- shareable pages must set Open Graph title, description, and image66- Open Graph and Twitter images must use absolute URLs67- prefer correct image dimensions and stable aspect ratios68- og:url must match the canonical URL69- use a sensible og:type, usually website or article70- set twitter:card appropriately, summary_large_image by default7172### 5. icons and manifest (medium)7374- include at least one favicon that works across browsers75- include apple-touch-icon when relevant76- manifest must be valid and referenced when used77- set theme-color intentionally to avoid mismatched UI chrome78- icon paths should be stable and cacheable7980### 6. structured data (medium)8182- do not add JSON-LD unless it clearly maps to real page content83- JSON-LD must be valid and reflect what is actually rendered84- do not invent ratings, reviews, prices, or organization details85- prefer one structured data block per page unless required8687### 7. locale and alternates (low-medium)8889- set the html lang attribute correctly90- set og:locale when localization exists91- add hreflang alternates only when pages truly exist92- localized pages must canonicalize correctly per locale9394### 8. tool boundaries (critical)9596- prefer minimal changes, do not refactor unrelated code97- do not migrate frameworks or SEO libraries unless requested98- follow the project's existing metadata pattern (Next.js metadata API, react-helmet, manual head, etc.)99100## review guidance101102- fix critical issues first (duplicates, canonical, indexing)103- ensure title, description, canonical, and og:url agree104- verify social cards on a real URL, not localhost105- prefer stable, boring metadata over clever or dynamic106- keep diffs minimal and scoped to metadata only107108---109110<!-- AGI-INTEGRATION-START -->111112## AGI Framework Integration113114> **Adapted for [@techwavedev/agi-agent-kit](https://www.npmjs.com/package/@techwavedev/agi-agent-kit)**115> Original source: [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills)116117### Memory-First Protocol118119Cache data schemas, transformation rules, and query patterns. BM25 excels at finding specific column names, table references, and SQL patterns.120121```bash122# Check for prior data engineering context before starting123python3 execution/memory_manager.py auto --query "data processing patterns and pipeline configurations for Fixing Metadata"124```125126### Storing Results127128After completing work, store data engineering decisions for future sessions:129130```bash131python3 execution/memory_manager.py store \132 --content "Data pipeline: ETL from PostgreSQL to Qdrant, 50K records/batch, incremental sync via updated_at" \133 --type technical --project <project> \134 --tags fixing-metadata data135```136137### Multi-Agent Collaboration138139Share data schema changes with backend and frontend agents so they update their models accordingly.140141```bash142python3 execution/cross_agent_context.py store \143 --agent "<your-agent>" \144 --action "Data pipeline implemented — ETL processing with validation, deduplication, and error recovery" \145 --project <project>146```147148<!-- AGI-INTEGRATION-END -->