[{"data":1,"prerenderedAt":472},["ShallowReactive",2],{"docs-nav-en":3,"docs-nav-zh":59,"docs-page-en-skills-and-vibe-coding":95,"docs-page-zh-skills-and-vibe-coding":299,"landing-footer-friend-links":469},[4,10,16,22,27,32,37,42,48,53],{"path":5,"title":6,"label":7,"description":8,"order":9},"/docs/introduction","web-nuxt template overview","Introduction","What the Nuxt template already ships today, and where to customize it.","1",{"path":11,"title":12,"label":13,"description":14,"order":15},"/docs/quick-start","Quick start for web-nuxt","Quick start","Go from first visit to live demo, dashboard activation, and launch-ready trust surfaces.","2",{"path":17,"title":18,"label":19,"description":20,"order":21},"/docs/billing-and-credits","Billing and credits","Billing","How pricing, credits, subscriptions, and order history fit together in the Nuxt template.","3",{"path":23,"title":24,"label":25,"description":26,"order":21},"/docs/skills-and-vibe-coding","Skills and vibe coding for web-nuxt","Skills & vibe coding","Use repo skills to customize apps/web-nuxt with prompt-driven edits instead of starting from a blank spec.",{"path":28,"title":29,"label":29,"description":30,"order":31},"/docs/auth-and-guest-mode","Auth and guest mode","Understand login, guest access, account conversion, and where each path should lead users.","4",{"path":33,"title":34,"label":34,"description":35,"order":36},"/docs/ai-playground","AI playground","The canonical AI entry in web-nuxt and how it relates to credits, keys, and guest access.","5",{"path":38,"title":39,"label":39,"description":40,"order":41},"/docs/support-and-refund","Support and refund","Where users should go for help, how refunds are handled, and what to expose on the public site.","6",{"path":43,"title":44,"label":45,"description":46,"order":47},"/docs/analytics","Analytics providers in web-nuxt","Analytics","Optional analytics support for GA4, Plausible, and Microsoft Clarity.","7",{"path":49,"title":50,"label":50,"description":51,"order":52},"/docs/footer-configuration","Footer configuration","Configure footer brand copy, contact email, social links, navigation columns, legal text, and copyright from zship.app.json.","8",{"path":54,"title":55,"label":56,"description":57,"order":58},"/docs/docs-system","How the built-in docs work","Docs system","The Nuxt Content docs setup inside web-nuxt and how to extend it.","9",[60,64,68,71,75,78,81,84,88,91],{"path":5,"title":61,"label":62,"description":63,"order":9},"web-nuxt 模板概览","模板概览","说明 web-nuxt 当前已经具备什么，以及主要改动入口在哪里。",{"path":11,"title":65,"label":66,"description":67,"order":15},"web-nuxt 快速开始","快速开始","从首次访问到真实演示、仪表盘激活路径与对外发布前检查清单。",{"path":17,"title":69,"label":69,"description":70,"order":21},"计费与积分","说明定价、积分、订阅与订单历史在 Nuxt 模板中的关系。",{"path":23,"title":72,"label":73,"description":74,"order":21},"web-nuxt 的 Skills 与 vibe coding","Skills 与 vibe coding","通过 repo 里的 skills，用自然语言驱动方式修改和自定义 apps/web-nuxt。",{"path":28,"title":76,"label":76,"description":77,"order":31},"登录与访客模式","说明登录、访客访问、账户升级以及这些路径应该把用户带到哪里。",{"path":33,"title":79,"label":79,"description":80,"order":36},"AI Playground","说明 web-nuxt 中统一 AI 入口与积分、API Key、访客会话之间的关系。",{"path":38,"title":82,"label":82,"description":83,"order":41},"支持与退款","说明用户应该去哪里求助、退款如何处理，以及公开站点应暴露哪些信任入口。",{"path":43,"title":85,"label":86,"description":87,"order":47},"web-nuxt 的 Analytics 支持","数据分析","说明 web-nuxt 目前如何接入 GA4、Plausible 和 Clarity。",{"path":49,"title":89,"label":89,"description":90,"order":52},"Footer 配置","通过 zship.app.json 配置 Footer 的品牌文案、联系邮箱、社交链接、导航栏目、法律声明与版权信息。",{"path":54,"title":92,"label":93,"description":94,"order":58},"内置 Docs 系统说明","Docs 系统","说明 web-nuxt 当前基于 Nuxt Content 的站内文档能力，以及如何继续扩展。",{"id":96,"title":24,"body":97,"description":26,"extension":293,"label":25,"meta":294,"navigation":295,"order":21,"path":23,"seo":296,"stem":297,"__hash__":298},"docsEn/docs/skills-and-vibe-coding.md",{"type":98,"value":99,"toc":284},"minimark",[100,108,113,160,164,173,178,182,214,225,229,256,260,278],[101,102,103,107],"p",{},[104,105,106],"code",{},"web-nuxt"," now has a dedicated skills entry for prompt-driven customization. The goal is simple: let a builder describe the product change in natural language, then let Codex map that request onto the right files and shared layers.",[109,110,112],"h2",{"id":111},"recommended-skill-stack","Recommended skill stack",[114,115,116,123,133,142,148,154],"ul",{},[117,118,119,122],"li",{},[104,120,121],{},"$onboard","\nUse first when you need the repo map or want to confirm which layer owns a feature.",[117,124,125,128,129,132],{},[104,126,127],{},"$customize-web-nuxt","\nUse when you are editing ",[104,130,131],{},"apps/web-nuxt"," directly: landing hero, pricing, docs, auth, guest-demo, dashboard entry flow, or app-level proxy routes.",[117,134,135,138,139,141],{},[104,136,137],{},"$create-app","\nUse when you want a separate frontend copied from ",[104,140,131],{}," instead of modifying the template in place.",[117,143,144,147],{},[104,145,146],{},"$customize-brand","\nUse after copying the app, or when the change is mostly manifest-driven branding and SEO.",[117,149,150,153],{},[104,151,152],{},"$add-page","\nUse when the new product surface needs its own route.",[117,155,156,159],{},[104,157,158],{},"$add-dashboard","\nUse when the user dashboard needs a new feature tab or activation area.",[109,161,163],{"id":162},"in-place-editing-vs-copied-app","In-place editing vs copied app",[101,165,166,167,169,170,172],{},"Use ",[104,168,127],{}," when ",[104,171,131],{}," itself is the working frontend.",[101,174,166,175,177],{},[104,176,137],{}," first if you want tenant isolation, a new package name, or a product app that should stop tracking the official template directly. After that, use the other skills against the copied app.",[109,179,181],{"id":180},"main-edit-surfaces","Main edit surfaces",[114,183,184,190,196,202,208],{},[117,185,186,189],{},[104,187,188],{},"apps/web-nuxt/zship.app.json","\nBrand identity, SEO, footer, analytics, dashboard feature flags.",[117,191,192,195],{},[104,193,194],{},"apps/web-nuxt/app/components/LandingPage.vue","\nHero, CTA flow, marketing sections, testimonials, closing CTA.",[117,197,198,201],{},[104,199,200],{},"apps/web-nuxt/app/pages/pricing.vue","\nPricing layout, comparison table, sales CTA.",[117,203,204,207],{},[104,205,206],{},"apps/web-nuxt/content/docs/*","\nUser-facing docs content in English and Simplified Chinese.",[117,209,210,213],{},[104,211,212],{},"apps/web-nuxt/server/api/*","\nPublic-page server proxies.",[101,215,216,217,220,221,224],{},"When a request clearly belongs to ",[104,218,219],{},"packages/nuxt-common-layer"," or ",[104,222,223],{},"packages/nuxt-ai-layer",", Codex should explain that boundary instead of silently turning a local page tweak into a shared-platform rewrite.",[109,226,228],{"id":227},"example-prompts","Example prompts",[114,230,231,236,241,246,251],{},[117,232,233],{},[104,234,235],{},"Use $customize-web-nuxt to turn the landing hero into a waitlist-first launch page for an AI video tool.",[117,237,238],{},[104,239,240],{},"Use $customize-web-nuxt to simplify the dashboard home so the primary action is opening AI Playground.",[117,242,243],{},[104,244,245],{},"Use $customize-web-nuxt to add a docs page about API keys and link it in the existing docs list.",[117,247,248],{},[104,249,250],{},"Use $customize-web-nuxt to rewrite pricing for annual plans only and update the CTA language across the landing page.",[117,252,253],{},[104,254,255],{},"Use $create-app NAME=my-product to fork web-nuxt, then use $customize-brand APP=apps/my-product to replace the default branding.",[109,257,259],{"id":258},"practical-workflow","Practical workflow",[261,262,263,266,269,272,275],"ol",{},[117,264,265],{},"Start from the repo root.",[117,267,268],{},"Invoke the skill explicitly in your prompt.",[117,270,271],{},"Describe the product change, not just the file name.",[117,273,274],{},"Let Codex inspect the current implementation before patching.",[117,276,277],{},"Ask for verification on the affected route after the change lands.",[101,279,280,281,283],{},"That approach keeps the work close to the real codebase and makes ",[104,282,106],{}," feel like a modifiable product surface instead of a frozen template.",{"title":285,"searchDepth":286,"depth":286,"links":287},"",2,[288,289,290,291,292],{"id":111,"depth":286,"text":112},{"id":162,"depth":286,"text":163},{"id":180,"depth":286,"text":181},{"id":227,"depth":286,"text":228},{"id":258,"depth":286,"text":259},"md",{},true,{"title":24,"description":26},"docs/skills-and-vibe-coding","qT2HLoG03WKkNMrn65dbBnpxtJDHiMkNwDFLCqBqrGE",{"id":300,"title":72,"body":301,"description":74,"extension":293,"label":73,"meta":466,"navigation":295,"order":21,"path":23,"seo":467,"stem":297,"__hash__":468},"docsZh/docs/skills-and-vibe-coding.md",{"type":98,"value":302,"toc":459},[303,308,312,350,354,363,369,372,399,408,411,433,436,453],[101,304,305,307],{},[104,306,106],{}," 现在补了一套更适合 prompt 驱动改造的 skills 入口。目标很直接：让使用者先描述产品改动，再由 Codex 把请求映射到正确的页面、配置文件和共享层，而不是从一堆文件名开始猜。",[109,309,311],{"id":310},"推荐的-skills-组合","推荐的 skills 组合",[114,313,314,319,327,335,340,345],{},[117,315,316,318],{},[104,317,121],{},"\n先看仓库分层、确认某个功能到底归哪个 layer。",[117,320,321,323,324,326],{},[104,322,127],{},"\n当你就是要直接修改 ",[104,325,131],{}," 本体时使用。适合 landing hero、pricing、docs、auth、guest-demo、dashboard 激活路径、前台代理路由等改动。",[117,328,329,331,332,334],{},[104,330,137],{},"\n当你不想继续直接改模板，而是希望先从 ",[104,333,131],{}," 复制出一个独立前台时使用。",[117,336,337,339],{},[104,338,146],{},"\n适合复制出独立 app 之后做品牌、SEO、footer、manifest 级配置。",[117,341,342,344],{},[104,343,152],{},"\n适合新增独立页面和路由。",[117,346,347,349],{},[104,348,158],{},"\n适合给用户仪表盘增加新的功能页或新入口。",[109,351,353],{"id":352},"什么时候直接改模板什么时候先复制","什么时候直接改模板，什么时候先复制",[101,355,356,357,359,360,362],{},"如果当前工作对象就是 ",[104,358,131],{},"，直接用 ",[104,361,127],{},"。",[101,364,365,366,368],{},"如果你需要租户隔离、独立包名，或者希望产品前台不再直接跟随官方模板一起演进，就先用 ",[104,367,137],{}," 复制，再对复制出来的 app 使用其它 skills。",[109,370,371],{"id":371},"最常见的改动面",[114,373,374,379,384,389,394],{},[117,375,376,378],{},[104,377,188],{},"\n品牌信息、SEO、footer、analytics、dashboard feature 开关。",[117,380,381,383],{},[104,382,194],{},"\n首页 hero、CTA、营销区块、社证内容、尾部 CTA。",[117,385,386,388],{},[104,387,200],{},"\n定价页结构、对比表、销售 CTA。",[117,390,391,393],{},[104,392,206],{},"\n中英文站内文档内容。",[117,395,396,398],{},[104,397,212],{},"\n前台页面用到的服务端代理。",[101,400,401,402,404,405,407],{},"如果某个改动明显属于 ",[104,403,219],{}," 或 ",[104,406,223],{},"，Codex 应该先说明边界，而不是把一个局部页面需求直接扩散成共享层大改。",[109,409,410],{"id":410},"示例提示词",[114,412,413,417,421,425,429],{},[117,414,415],{},[104,416,235],{},[117,418,419],{},[104,420,240],{},[117,422,423],{},[104,424,245],{},[117,426,427],{},[104,428,250],{},[117,430,431],{},[104,432,255],{},[109,434,435],{"id":435},"实际使用方式",[261,437,438,441,444,447,450],{},[117,439,440],{},"从仓库根目录开始。",[117,442,443],{},"在提示词里显式写出 skill 名称。",[117,445,446],{},"先描述产品改动目标，不要只丢一个文件名。",[117,448,449],{},"让 Codex 先读现有实现，再补丁。",[117,451,452],{},"改完后要求它在对应路由上做验证。",[101,454,455,456,458],{},"这样做的效果是：",[104,457,106],{}," 会更像一个可以持续“边聊边改”的产品前台，而不是一个只能手工拆解的静态模板。",{"title":285,"searchDepth":286,"depth":286,"links":460},[461,462,463,464,465],{"id":310,"depth":286,"text":311},{"id":352,"depth":286,"text":353},{"id":371,"depth":286,"text":371},{"id":410,"depth":286,"text":410},{"id":435,"depth":286,"text":435},{},{"title":72,"description":74},"_PqG7NWom2qvk5uMzFsWLlN2-krNx27GBa4mxLGVJJQ",{"code":470,"data":471},200,[],1777195974408]