[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F6MMQHM01RPSF8CASVBTHN":3,"skill-same:01M6F6MMQHM01RPSF8CASVBTHN":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":30,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":43,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":67,"install":68,"resources":81},"01M6F6MMQHM01RPSF8CASVBTHN","frontend-seo",null,"A portable, framework-agnostic SEO system for any React or React Native-for-web frontend.","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-frontend-seo\u002FSKILL.md",[17,22,25],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":26,"categoryName":27,"taxonomyType":28,"taxonomyTypeDesc":29},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"seo","frontend seo","frontend","community","2026","blob","for","tree","framework-agnostic","native","critical","wed","main","react native","system","https","license","framework","architecture","react","web","github","2026-11-10 10:12:30",false,"---\nname: frontend-seo\ndescription: \"A portable, framework-agnostic SEO system for any React or React Native-for-web frontend.\"\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002Fstareezy-1\u002Ffrontend-architecture-skill\u002Ftree\u002Fmain\u002Fskills\u002Ffrontend-seo\nsource_repo: stareezy-1\u002Ffrontend-architecture-skill\nsource_type: community\ndate_added: 2026-07-01\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002Fstareezy-1\u002Ffrontend-architecture-skill\u002Fblob\u002Fmain\u002FLICENSE\n---\n\n# Frontend SEO (portable, builder-based)\n\n## Detailed Guide\n\nRead [the detailed guide](references\u002Fdetailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.\n\n## When to Use\n\nUse this skill when you need a portable, framework-agnostic SEO system for any React or React Native-for-web frontend. Centralizes site metadata in one constants module, derives canonical URLs from a single base, builds per-route metadata (title, description, canonical, Open Graph, Twitter\u002FX cards), generates...\n\n\n> Portable skill — readable by Claude Code, OpenCode, Codex, Cursor, Windsurf, and others.\n> This skill describes an **SEO system** — a set of pure builder functions plus a thin\n> framework adapter — not a component library or a visual style.\n> It pairs with the **frontend-architecture** skill: the SEO system lives in a single\n> service module (`services\u002Fseo\u002F`) and is consumed through one barrel.\n\nThe goal: every route ships **correct, consistent, machine-readable metadata** without\nanyone copy-pasting `\u003Cmeta>` tags. Site identity lives in **one** constants module, URLs are\n**always absolute and canonical**, and search engines get a **sitemap, robots rules, an RSS\nfeed, and typed JSON-LD** derived from the same content the app already renders.\n\n---\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n\n## Rendering and metadata limits\n\nThe fragments need application loaders, route encoding, a supported framework adapter and actual serialization tests; they are not a complete portable package. Canonicalization does not prove two URLs have identical content or redirect them. The supplied route builder accepts local pathnames; use a separate validated HTTPS resolver for external images, and preserve the deployment's actual base-path\u002Ftrailing-slash policy. Exclude unpublished, private and noindex records from every discovery surface. Supply real content modification timestamps rather than build time.\n\nThe RSS fragment remains illustrative until an XML serializer handles every field and CDATA terminator. JSON-LD must escape less-than signs before insertion into HTML, and its values must match visible content and real author\u002Fimage facts. The index-signature JsonLd type does not validate per-schema properties. SearchAction requires an actual search endpoint, and valid FAQ schema does not guarantee a rich result. Canonical tags, robots and self-assessed checklists do not guarantee indexing, rankings or privacy. Confirm rendered per-route Open Graph\u002FTwitter values and HTTP responses, not only builder objects.\n","# Frontend SEO (portable, builder-based)\n\n## Detailed Guide\n\nRead [the detailed guide](references\u002Fdetailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.\n\n## When to Use\n\nUse this skill when you need a portable, framework-agnostic SEO system for any React or React Native-for-web frontend. Centralizes site metadata in one constants module, derives canonical URLs from a single base, builds per-route metadata (title, description, canonical, Open Graph, Twitter\u002FX cards), generates...\n\n\n> Portable skill — readable by Claude Code, OpenCode, Codex, Cursor, Windsurf, and others.\n> This skill describes an **SEO system** — a set of pure builder functions plus a thin\n> framework adapter — not a component library or a visual style.\n> It pairs with the **frontend-architecture** skill: the SEO system lives in a single\n> service module (`services\u002Fseo\u002F`) and is consumed through one barrel.\n\nThe goal: every route ships **correct, consistent, machine-readable metadata** without\nanyone copy-pasting `\u003Cmeta>` tags. Site identity lives in **one** constants module, URLs are\n**always absolute and canonical**, and search engines get a **sitemap, robots rules, an RSS\nfeed, and typed JSON-LD** derived from the same content the app already renders.\n\n---\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n\n## Rendering and metadata limits\n\nThe fragments need application loaders, route encoding, a supported framework adapter and actual serialization tests; they are not a complete portable package. Canonicalization does not prove two URLs have identical content or redirect them. The supplied route builder accepts local pathnames; use a separate validated HTTPS resolver for external images, and preserve the deployment's actual base-path\u002Ftrailing-slash policy. Exclude unpublished, private and noindex records from every discovery surface. Supply real content modification timestamps rather than build time.\n\nThe RSS fragment remains illustrative until an XML serializer handles every field and CDATA terminator. JSON-LD must escape less-than signs before insertion into HTML, and its values must match visible content and real author\u002Fimage facts. The index-signature JsonLd type does not validate per-schema properties. SearchAction requires an actual search endpoint, and valid FAQ schema does not guarantee a rich result. Canonical tags, robots and self-assessed checklists do not guarantee indexing, rankings or privacy. Confirm rendered per-route Open Graph\u002FTwitter values and HTTP responses, not only builder objects.\n",{"name":5,"risk":41,"source":58,"license":14,"date_added":59,"description":7,"source_repo":60,"source_type":34,"license_source":61},"https:\u002F\u002Fgithub.com\u002Fstareezy-1\u002Ffrontend-architecture-skill\u002Ftree\u002Fmain\u002Fskills\u002Ffrontend-seo",1782864000000,"stareezy-1\u002Ffrontend-architecture-skill","https:\u002F\u002Fgithub.com\u002Fstareezy-1\u002Ffrontend-architecture-skill\u002Fblob\u002Fmain\u002FLICENSE","7bf2279c8a65758319526a721d5c4b75683aec9c","skills\u002Fantigravity-frontend-seo",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-10 14:20:15",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add boisenoise\u002Fskills-collections --skill frontend-seo",{"tool":74,"command":75},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill frontend-seo",{"tool":77,"command":78},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill frontend-seo","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-frontend-seo\u002FSKILL.md",true,[82],{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fdetailed-guide.md","REFERENCE","参考文档",23917,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-frontend-seo\u002Freferences\u002Fdetailed-guide.md",[89,116,139,161,180,203],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":93,"licenseFileUrl":94,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":53},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[51,98,99,100,101,102,103,104,105,106,107,108,109,110,111,41,112,113,114,115,35],"access","web access","official","development","browser","search","data","Tools","read","fetch","only","youtube","free tools","platform","free","cover","normal","when",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":93,"licenseFileUrl":120,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":53},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[118,127,128,52,100,101,47,105,129,130,131,132,133,134,135,41,136,137,138,36,35],"MCP","cli","Budget","credentials","team","catalog","use","call","discover","external tools","with","scoped",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":93,"licenseFileUrl":143,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":53},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":28,"taxonomyTypeDesc":29},"01JBSEEDCAT000000000000038","人力资源",[141,52,100,47,46,150,151,152,153,154,41,155,156,157,137,37,158,159,160,36,118,35],"email","enrichment","business","evidence","phone","ranking","post","job description","person","candidate","reason",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":93,"licenseFileUrl":165,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":53},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[169,170,171,52,100,47,172,173,46,174,129,175,176,177,153,41,178,179,36,118,35],"growth","rea","rea growth","produce","content","playbook","marketing","analyze","public","observations","company",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":93,"licenseFileUrl":184,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":53},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[188,189,52,190,100,191,47,192,193,194,195,196,41,197,198,199,200,201,202,36],"make","make ugc","research","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":93,"licenseFileUrl":207,"sourceHtmlUrl":208,"categories":209,"keywords":210,"publishedAt":53},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[211,212,213,52,100,47,214,215,152,216,217,41,218,219,220,221,222,223,224,36],"signals","lead","lead signals","how","find","ready","as","how to","qualify","people","information","enrich","changes","funding"]