[{"data":1,"prerenderedAt":424},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:eM-byum0-KdP9yowonni0lw_8_aPQeovWGEQ1-2FKTY":223,"content-page-surround:docs:eM-byum0-KdP9yowonni0lw_8_aPQeovWGEQ1-2FKTY":415,"i-lucide:clipboard":418,"i-lucide:file-cog":422},[4,25,83,141,168],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"icon":10,"path":11,"children":12},"Lupinum OSS handbook","content:docs:1.get-started:1.index.md","1","en",false,"lucide:book-open","\u002Fdocs\u002Fget-started",[13,19],{"title":14,"id":15,"canonicalKey":16,"locale":8,"draft":9,"icon":17,"path":18},"Choose a repository profile","content:docs:1.get-started:2.choose-a-profile.md","1\u002F2","lucide:git-branch","\u002Fdocs\u002Fget-started\u002Fchoose-a-profile",{"title":20,"id":21,"canonicalKey":22,"locale":8,"draft":9,"icon":23,"path":24},"New project path","content:docs:1.get-started:3.new-project-path.md","1\u002F3","lucide:route","\u002Fdocs\u002Fget-started\u002Fnew-project-path",{"title":26,"page":9,"canonicalKey":27,"locale":8,"children":28},"Standards","2",[29,35,41,47,53,59,65,71,77],{"title":30,"id":31,"canonicalKey":32,"locale":8,"draft":9,"icon":33,"path":34},"Repository structure","content:docs:2.standards:1.repository-structure.md","2\u002F1","lucide:folders","\u002Fdocs\u002Fstandards\u002Frepository-structure",{"title":36,"id":37,"canonicalKey":38,"locale":8,"draft":9,"icon":39,"path":40},"Documentation ownership","content:docs:2.standards:2.documentation-ownership.md","2\u002F2","lucide:files","\u002Fdocs\u002Fstandards\u002Fdocumentation-ownership",{"title":42,"id":43,"canonicalKey":44,"locale":8,"draft":9,"icon":45,"path":46},"GitHub and contributions","content:docs:2.standards:3.github-and-contributions.md","2\u002F3","lucide:github","\u002Fdocs\u002Fstandards\u002Fgithub-and-contributions",{"title":48,"id":49,"canonicalKey":50,"locale":8,"draft":9,"icon":51,"path":52},"Dependency policy","content:docs:2.standards:4.dependencies.md","2\u002F4","lucide:package-search","\u002Fdocs\u002Fstandards\u002Fdependencies",{"title":54,"id":55,"canonicalKey":56,"locale":8,"draft":9,"icon":57,"path":58},"Release security","content:docs:2.standards:5.release-security.md","2\u002F5","lucide:shield-check","\u002Fdocs\u002Fstandards\u002Frelease-security",{"title":60,"id":61,"canonicalKey":62,"locale":8,"draft":9,"icon":63,"path":64},"Package previews","content:docs:2.standards:6.package-previews.md","2\u002F6","lucide:package-open","\u002Fdocs\u002Fstandards\u002Fpackage-previews",{"title":66,"id":67,"canonicalKey":68,"locale":8,"draft":9,"icon":69,"path":70},"Documentation sites","content:docs:2.standards:7.documentation-sites.md","2\u002F7","lucide:panel-top","\u002Fdocs\u002Fstandards\u002Fdocumentation-sites",{"title":72,"id":73,"canonicalKey":74,"locale":8,"draft":9,"icon":75,"path":76},"Analytics and feedback","content:docs:2.standards:8.analytics-and-feedback.md","2\u002F8","lucide:chart-no-axes-combined","\u002Fdocs\u002Fstandards\u002Fanalytics-and-feedback",{"title":78,"id":79,"canonicalKey":80,"locale":8,"draft":9,"icon":81,"path":82},"Security and agents","content:docs:2.standards:9.security-and-agents.md","2\u002F9","lucide:bot-message-square","\u002Fdocs\u002Fstandards\u002Fsecurity-and-agents",{"title":84,"page":9,"canonicalKey":85,"locale":8,"children":86},"Procedures","3",[87,93,99,105,111,117,123,129,135],{"title":88,"id":89,"canonicalKey":90,"locale":8,"draft":9,"icon":91,"path":92},"Create a repository","content:docs:3.procedures:1.create-a-repository.md","3\u002F1","lucide:folder-plus","\u002Fdocs\u002Fprocedures\u002Fcreate-a-repository",{"title":94,"id":95,"canonicalKey":96,"locale":8,"draft":9,"icon":97,"path":98},"First npm release","content:docs:3.procedures:2.first-npm-release.md","3\u002F2","lucide:package-plus","\u002Fdocs\u002Fprocedures\u002Ffirst-npm-release",{"title":100,"id":101,"canonicalKey":102,"locale":8,"draft":9,"icon":103,"path":104},"Normal release","content:docs:3.procedures:3.normal-release.md","3\u002F3","lucide:package-check","\u002Fdocs\u002Fprocedures\u002Fnormal-release",{"title":106,"id":107,"canonicalKey":108,"locale":8,"draft":9,"icon":109,"path":110},"Prerelease","content:docs:3.procedures:4.prerelease.md","3\u002F4","lucide:flask-conical","\u002Fdocs\u002Fprocedures\u002Fprerelease",{"title":112,"id":113,"canonicalKey":114,"locale":8,"draft":9,"icon":115,"path":116},"Hotfix","content:docs:3.procedures:5.hotfix.md","3\u002F5","lucide:ambulance","\u002Fdocs\u002Fprocedures\u002Fhotfix",{"title":118,"id":119,"canonicalKey":120,"locale":8,"draft":9,"icon":121,"path":122},"Rollback","content:docs:3.procedures:6.rollback.md","3\u002F6","lucide:undo-2","\u002Fdocs\u002Fprocedures\u002Frollback",{"title":124,"id":125,"canonicalKey":126,"locale":8,"draft":9,"icon":127,"path":128},"Dependency update","content:docs:3.procedures:7.dependency-update.md","3\u002F7","lucide:refresh-cw","\u002Fdocs\u002Fprocedures\u002Fdependency-update",{"title":130,"id":131,"canonicalKey":132,"locale":8,"draft":9,"icon":133,"path":134},"Documentation change","content:docs:3.procedures:8.documentation-change.md","3\u002F8","lucide:file-pen-line","\u002Fdocs\u002Fprocedures\u002Fdocumentation-change",{"title":136,"id":137,"canonicalKey":138,"locale":8,"draft":9,"icon":139,"path":140},"Credential incident","content:docs:3.procedures:9.credential-incident.md","3\u002F9","lucide:key-round","\u002Fdocs\u002Fprocedures\u002Fcredential-incident",{"title":142,"page":9,"canonicalKey":143,"locale":8,"children":144},"Checklists","4",[145,151,156,162],{"title":146,"id":147,"canonicalKey":148,"locale":8,"draft":9,"icon":149,"path":150},"Repository launch checklist","content:docs:4.checklists:1.repository-launch.md","4\u002F1","lucide:list-checks","\u002Fdocs\u002Fchecklists\u002Frepository-launch",{"title":152,"id":153,"canonicalKey":154,"locale":8,"draft":9,"icon":97,"path":155},"First release checklist","content:docs:4.checklists:2.first-release.md","4\u002F2","\u002Fdocs\u002Fchecklists\u002Ffirst-release",{"title":157,"id":158,"canonicalKey":159,"locale":8,"draft":9,"icon":160,"path":161},"Production acceptance checklist","content:docs:4.checklists:3.production-acceptance.md","4\u002F3","lucide:monitor-check","\u002Fdocs\u002Fchecklists\u002Fproduction-acceptance",{"title":163,"id":164,"canonicalKey":165,"locale":8,"draft":9,"icon":166,"path":167},"Quarterly audit checklist","content:docs:4.checklists:4.quarterly-audit.md","4\u002F4","lucide:calendar-check","\u002Fdocs\u002Fchecklists\u002Fquarterly-audit",{"title":169,"id":170,"canonicalKey":171,"locale":8,"draft":9,"icon":172,"path":173,"children":174},"Troubleshooting","content:docs:5.troubleshooting:1.index.md","5","lucide:wrench","\u002Fdocs\u002Ftroubleshooting",[175,181,187,193,199,205,211,217],{"title":176,"id":177,"canonicalKey":178,"locale":8,"draft":9,"icon":179,"path":180},"npm trusted publishing","content:docs:5.troubleshooting:2.npm-trusted-publishing.md","5\u002F2","lucide:shield-alert","\u002Fdocs\u002Ftroubleshooting\u002Fnpm-trusted-publishing",{"title":182,"id":183,"canonicalKey":184,"locale":8,"draft":9,"icon":185,"path":186},"GitHub Actions","content:docs:5.troubleshooting:3.github-actions.md","5\u002F3","lucide:workflow","\u002Fdocs\u002Ftroubleshooting\u002Fgithub-actions",{"title":188,"id":189,"canonicalKey":190,"locale":8,"draft":9,"icon":191,"path":192},"GitHub Action SHA errors","content:docs:5.troubleshooting:4.action-sha-errors.md","5\u002F4","lucide:git-commit-horizontal","\u002Fdocs\u002Ftroubleshooting\u002Faction-sha-errors",{"title":194,"id":195,"canonicalKey":196,"locale":8,"draft":9,"icon":197,"path":198},"Dependency quarantine","content:docs:5.troubleshooting:5.dependency-quarantine.md","5\u002F5","lucide:timer","\u002Fdocs\u002Ftroubleshooting\u002Fdependency-quarantine",{"title":200,"id":201,"canonicalKey":202,"locale":8,"draft":9,"icon":203,"path":204},"Vercel deployment","content:docs:5.troubleshooting:6.vercel.md","5\u002F6","lucide:triangle","\u002Fdocs\u002Ftroubleshooting\u002Fvercel",{"title":206,"id":207,"canonicalKey":208,"locale":8,"draft":9,"icon":209,"path":210},"Plausible analytics","content:docs:5.troubleshooting:7.plausible.md","5\u002F7","lucide:chart-no-axes-column-increasing","\u002Fdocs\u002Ftroubleshooting\u002Fplausible",{"title":212,"id":213,"canonicalKey":214,"locale":8,"draft":9,"icon":215,"path":216},"Package preview failures","content:docs:5.troubleshooting:8.package-previews.md","5\u002F8","lucide:package-x","\u002Fdocs\u002Ftroubleshooting\u002Fpackage-previews",{"title":218,"id":219,"canonicalKey":220,"locale":8,"draft":9,"icon":221,"path":222},"GitHub CLI authentication","content:docs:5.troubleshooting:9.github-cli-authentication.md","5\u002F9","lucide:terminal","\u002Fdocs\u002Ftroubleshooting\u002Fgithub-cli-authentication",{"title":48,"description":224,"icon":51,"body":225,"type":402,"id":49,"canonicalKey":50,"draft":9,"partial":9,"locale":8,"collection":403,"navigationFile":9,"file":404,"route":410,"resolution":412},"Apply one quarantine, update, and audit policy across the fleet.",{"type":226,"children":227,"toc":394},"root",[228,244,251,263,335,340,345,350,356,361,366,372,382],{"type":229,"tag":230,"props":231,"children":232},"element","p",{},[233,236,242],{"type":234,"value":235},"text","Use pnpm for Lupinum workspaces. Commit the lockfile. Pin the package manager in\n",{"type":229,"tag":237,"props":238,"children":239},"code",{},[240],{"type":234,"value":241},"packageManager",{"type":234,"value":243},".",{"type":229,"tag":245,"props":246,"children":248},"h2",{"id":247},"quarantine-new-releases",[249],{"type":234,"value":250},"Quarantine new releases",{"type":229,"tag":230,"props":252,"children":253},{},[254,256,261],{"type":234,"value":255},"Set these values in ",{"type":229,"tag":237,"props":257,"children":258},{},[259],{"type":234,"value":260},"pnpm-workspace.yaml",{"type":234,"value":262},":",{"type":229,"tag":264,"props":265,"children":268},"pre",{"language":266,"class":267},"yaml","shiki shiki-themes light-plus dark-plus dark:dark-plus",[269],{"type":229,"tag":237,"props":270,"children":272},{"class":271},"language-yaml",[273,297,299,317,318],{"type":229,"tag":274,"props":275,"children":278},"span",{"class":276,"style":277},"line","display: inline",[279,285,291],{"type":229,"tag":274,"props":280,"children":282},{"style":281},"color:#800000;--shiki-dark:#569CD6",[283],{"type":234,"value":284},"minimumReleaseAge",{"type":229,"tag":274,"props":286,"children":288},{"style":287},"color:#000000;--shiki-dark:#D4D4D4",[289],{"type":234,"value":290},": ",{"type":229,"tag":274,"props":292,"children":294},{"style":293},"color:#098658;--shiki-dark:#B5CEA8",[295],{"type":234,"value":296},"1440",{"type":234,"value":298},"\n",{"type":229,"tag":274,"props":300,"children":301},{"class":276,"style":277},[302,307,311],{"type":229,"tag":274,"props":303,"children":304},{"style":281},[305],{"type":234,"value":306},"minimumReleaseAgeStrict",{"type":229,"tag":274,"props":308,"children":309},{"style":287},[310],{"type":234,"value":290},{"type":229,"tag":274,"props":312,"children":314},{"style":313},"color:#0000FF;--shiki-dark:#569CD6",[315],{"type":234,"value":316},"true",{"type":234,"value":298},{"type":229,"tag":274,"props":319,"children":320},{"class":276,"style":277},[321,326,330],{"type":229,"tag":274,"props":322,"children":323},{"style":281},[324],{"type":234,"value":325},"minimumReleaseAgeIgnoreMissingTime",{"type":229,"tag":274,"props":327,"children":328},{"style":287},[329],{"type":234,"value":290},{"type":229,"tag":274,"props":331,"children":332},{"style":313},[333],{"type":234,"value":334},"false",{"type":229,"tag":230,"props":336,"children":337},{},[338],{"type":234,"value":339},"The 24-hour quarantine reduces exposure to a compromised dependency version\nimmediately after publication. It does not delay changes to our own code.",{"type":229,"tag":230,"props":341,"children":342},{},[343],{"type":234,"value":344},"Do not bypass the quarantine for convenience. A critical fix can use one exact,\nreviewed exception when no safe older version works. Record the package,\nversion, reason, owner, and removal time. Remove the exception after the time\nexpires.",{"type":229,"tag":230,"props":346,"children":347},{},[348],{"type":234,"value":349},"An exact Lupinum prerelease can use a temporary first-party exception when a\nfleet migration requires it. Apply the same record and removal rule.",{"type":229,"tag":245,"props":351,"children":353},{"id":352},"update-dependencies",[354],{"type":234,"value":355},"Update dependencies",{"type":229,"tag":230,"props":357,"children":358},{},[359],{"type":234,"value":360},"Use Renovate for routine update pull requests. Use Dependabot alerts for known\nsecurity problems. Do not use two bots to open the same routine upgrades.",{"type":229,"tag":230,"props":362,"children":363},{},[364],{"type":234,"value":365},"Review release notes for major updates and for tools that run during install,\nbuild, test, or publication. Run the full repository verification after a\nlockfile change.",{"type":229,"tag":245,"props":367,"children":369},{"id":368},"audit-all-deployable-code",[370],{"type":234,"value":371},"Audit all deployable code",{"type":229,"tag":230,"props":373,"children":374},{},[375,380],{"type":229,"tag":237,"props":376,"children":377},{},[378],{"type":234,"value":379},"pnpm audit:all",{"type":234,"value":381}," must cover public packages, the documentation app, examples,\nand other deployable workspaces. A production-package audit is an additional\ncheck. It is not a substitute for the full audit.",{"type":229,"tag":230,"props":383,"children":384},{},[385,387,392],{"type":234,"value":386},"Pin Changelogen to the approved exact version. Do not use ",{"type":229,"tag":237,"props":388,"children":389},{},[390],{"type":234,"value":391},"latest",{"type":234,"value":393}," in a release\nworkflow because the release tool itself is part of the trusted path.",{"title":395,"searchDepth":396,"depth":396,"links":397},"",4,[398,400,401],{"id":247,"depth":399,"text":250},2,{"id":352,"depth":399,"text":355},{"id":368,"depth":399,"text":371},"markdown","docs",{"source":405,"path":406,"stem":407,"dir":408,"extension":409},"content","docs\u002F2.standards\u002F4.dependencies.md","docs\u002F2.standards\u002F4.dependencies","standards","md",{"requestedPath":52,"resolvedPath":52,"alternates":411},[],{"requested":413,"resolved":414,"usedFallback":9},{},{"locale":8},{"previous":416,"next":417},{"title":42,"id":43,"canonicalKey":44,"locale":8,"draft":9,"path":46},{"title":54,"id":55,"canonicalKey":56,"locale":8,"draft":9,"path":58},{"left":419,"top":419,"width":420,"height":420,"rotate":419,"vFlip":9,"hFlip":9,"body":421},0,24,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",{"left":419,"top":419,"width":420,"height":420,"rotate":419,"vFlip":9,"hFlip":9,"body":423},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8zm5 0v12a2 2 0 0 1-2 2h-4.182M3.305 19.53l.923-.382M4 10.592V4a2 2 0 0 1 2-2h8M4.228 16.852l-.924-.383m2.548-1.241l-.383-.923m.383 6.467l-.383.924m2.679-6.468l.383-.923m-.001 7.391l-.382-.924m1.625-3.92l.922-.383m-.922 2.679l.922.383\"\u002F>\u003Ccircle cx=\"7\" cy=\"18\" r=\"3\"\u002F>\u003C\u002Fg>",1786663362042]