[{"data":1,"prerenderedAt":997},["ShallowReactive",2],{"navigation":3,"docs:\u002Feos\u002Fhow-to\u002Fconsume-eos-marketplace":214,"external-navigation":768},[4,8,201],{"title":5,"path":6,"stem":7},"Documentation","\u002F","README",{"title":9,"path":10,"stem":11,"children":12},"EOS","\u002Feos","eos\u002FREADME",[13,44,121,181],{"title":14,"collapsed":15,"path":16,"stem":17,"children":18,"page":43},"Adrs",true,"\u002Feos\u002Fadrs","eos\u002Fadrs",[19,23,27,31,35,39],{"title":20,"path":21,"stem":22},"Use Turborepo for the EOS monorepo","\u002Feos\u002Fadrs\u002F0001-use-turborepo-for-eos","eos\u002Fadrs\u002F0001-use-turborepo-for-eos",{"title":24,"path":25,"stem":26},"Use Oxc for linting and formatting","\u002Feos\u002Fadrs\u002F0003-use-oxc-for-linting-and-formatting","eos\u002Fadrs\u002F0003-use-oxc-for-linting-and-formatting",{"title":28,"path":29,"stem":30},"Lint Markdown and validate links in CI","\u002Feos\u002Fadrs\u002F0004-lint-markdown-in-ci","eos\u002Fadrs\u002F0004-lint-markdown-in-ci",{"title":32,"path":33,"stem":34},"Use Lefthook for repository-managed Git hooks","\u002Feos\u002Fadrs\u002F0005-use-lefthook-for-repository-git-hooks","eos\u002Fadrs\u002F0005-use-lefthook-for-repository-git-hooks",{"title":36,"path":37,"stem":38},"Use Commitlint's conventional configuration","\u002Feos\u002Fadrs\u002F0006-use-commitlint-conventional-configuration","eos\u002Fadrs\u002F0006-use-commitlint-conventional-configuration",{"title":40,"path":41,"stem":42},"Use Nx for EOS task execution","\u002Feos\u002Fadrs\u002F0007-use-nx-for-eos","eos\u002Fadrs\u002F0007-use-nx-for-eos",false,{"title":45,"path":46,"stem":47,"children":48},"Harbourmaster","\u002Feos\u002Fharbourmaster","eos\u002Fharbourmaster\u002FREADME",[49,58,71,96],{"title":50,"path":51,"stem":52,"children":53,"page":43},"Decisions","\u002Feos\u002Fharbourmaster\u002Fdecisions","eos\u002Fharbourmaster\u002Fdecisions",[54],{"title":55,"path":56,"stem":57},"AI-50: GitHub auth and fork pull request policy","\u002Feos\u002Fharbourmaster\u002Fdecisions\u002Fai-50-auth-and-fork-policy","eos\u002Fharbourmaster\u002Fdecisions\u002Fai-50-auth-and-fork-policy",{"title":59,"path":60,"stem":61,"children":62,"page":43},"Explanation","\u002Feos\u002Fharbourmaster\u002Fexplanation","eos\u002Fharbourmaster\u002Fexplanation",[63,67],{"title":64,"path":65,"stem":66},"The Harbourmaster review pipeline","\u002Feos\u002Fharbourmaster\u002Fexplanation\u002Freview-pipeline","eos\u002Fharbourmaster\u002Fexplanation\u002Freview-pipeline",{"title":68,"path":69,"stem":70},"The Harbourmaster shared-action trust boundary","\u002Feos\u002Fharbourmaster\u002Fexplanation\u002Fshared-action-trust-boundary","eos\u002Fharbourmaster\u002Fexplanation\u002Fshared-action-trust-boundary",{"title":72,"path":73,"stem":74,"children":75,"page":43},"How To","\u002Feos\u002Fharbourmaster\u002Fhow-to","eos\u002Fharbourmaster\u002Fhow-to",[76,80,84,88,92],{"title":77,"path":78,"stem":79},"How to add Harbourmaster reviews to a repository","\u002Feos\u002Fharbourmaster\u002Fhow-to\u002Fadd-harbourmaster-to-a-repository","eos\u002Fharbourmaster\u002Fhow-to\u002Fadd-harbourmaster-to-a-repository",{"title":81,"path":82,"stem":83},"How to build a pilot dashboard","\u002Feos\u002Fharbourmaster\u002Fhow-to\u002Fbuild-pilot-dashboard","eos\u002Fharbourmaster\u002Fhow-to\u002Fbuild-pilot-dashboard",{"title":85,"path":86,"stem":87},"How to configure model routing","\u002Feos\u002Fharbourmaster\u002Fhow-to\u002Fconfigure-model-routing","eos\u002Fharbourmaster\u002Fhow-to\u002Fconfigure-model-routing",{"title":89,"path":90,"stem":91},"How to request a Harbourmaster review","\u002Feos\u002Fharbourmaster\u002Fhow-to\u002Frequest-a-review","eos\u002Fharbourmaster\u002Fhow-to\u002Frequest-a-review",{"title":93,"path":94,"stem":95},"How to diagnose a Harbourmaster review failure","\u002Feos\u002Fharbourmaster\u002Fhow-to\u002Ftroubleshoot-a-review","eos\u002Fharbourmaster\u002Fhow-to\u002Ftroubleshoot-a-review",{"title":97,"path":98,"stem":99,"children":100,"page":43},"Reference","\u002Feos\u002Fharbourmaster\u002Freference","eos\u002Fharbourmaster\u002Freference",[101,105,109,113,117],{"title":102,"path":103,"stem":104},"Harbourmaster command-line interface","\u002Feos\u002Fharbourmaster\u002Freference\u002Fcli","eos\u002Fharbourmaster\u002Freference\u002Fcli",{"title":106,"path":107,"stem":108},"Harbourmaster configuration","\u002Feos\u002Fharbourmaster\u002Freference\u002Fconfiguration","eos\u002Fharbourmaster\u002Freference\u002Fconfiguration",{"title":110,"path":111,"stem":112},"Harbourmaster GitHub Action","\u002Feos\u002Fharbourmaster\u002Freference\u002Fgithub-action","eos\u002Fharbourmaster\u002Freference\u002Fgithub-action",{"title":114,"path":115,"stem":116},"Harbourmaster review behavior","\u002Feos\u002Fharbourmaster\u002Freference\u002Freview-behavior","eos\u002Fharbourmaster\u002Freference\u002Freview-behavior",{"title":118,"path":119,"stem":120},"Harbourmaster telemetry","\u002Feos\u002Fharbourmaster\u002Freference\u002Ftelemetry","eos\u002Fharbourmaster\u002Freference\u002Ftelemetry",{"title":72,"path":122,"stem":123,"children":124,"page":43},"\u002Feos\u002Fhow-to","eos\u002Fhow-to",[125,129,133,137,141,145,149,153,157,161,165,169,173,177],{"title":126,"path":127,"stem":128},"How to add an external documentation source","\u002Feos\u002Fhow-to\u002Fadd-external-documentation-source","eos\u002Fhow-to\u002Fadd-external-documentation-source",{"title":130,"path":131,"stem":132},"How to connect SDLC integrations","\u002Feos\u002Fhow-to\u002Fconnect-sdlc-integrations","eos\u002Fhow-to\u002Fconnect-sdlc-integrations",{"title":134,"path":135,"stem":136},"How to consume the EOS plugin marketplace","\u002Feos\u002Fhow-to\u002Fconsume-eos-marketplace","eos\u002Fhow-to\u002Fconsume-eos-marketplace",{"title":138,"path":139,"stem":140},"How to create a spike ticket","\u002Feos\u002Fhow-to\u002Fcreate-spike-ticket","eos\u002Fhow-to\u002Fcreate-spike-ticket",{"title":142,"path":143,"stem":144},"How to finalise a repository change","\u002Feos\u002Fhow-to\u002Ffinalise-change","eos\u002Fhow-to\u002Ffinalise-change",{"title":146,"path":147,"stem":148},"How to install the EOS Docs MCP server","\u002Feos\u002Fhow-to\u002Finstall-eos-docs-mcp","eos\u002Fhow-to\u002Finstall-eos-docs-mcp",{"title":150,"path":151,"stem":152},"How to resolve a spike ticket","\u002Feos\u002Fhow-to\u002Fresolve-spike-ticket","eos\u002Fhow-to\u002Fresolve-spike-ticket",{"title":154,"path":155,"stem":156},"How to run Git hook checks","\u002Feos\u002Fhow-to\u002Frun-git-hook-checks","eos\u002Fhow-to\u002Frun-git-hook-checks",{"title":158,"path":159,"stem":160},"How to use the AI-enabled SDLC","\u002Feos\u002Fhow-to\u002Fuse-ai-enabled-sdlc","eos\u002Fhow-to\u002Fuse-ai-enabled-sdlc",{"title":162,"path":163,"stem":164},"Use the Aikido plugin","\u002Feos\u002Fhow-to\u002Fuse-aikido-plugin","eos\u002Fhow-to\u002Fuse-aikido-plugin",{"title":166,"path":167,"stem":168},"How to use Compass","\u002Feos\u002Fhow-to\u002Fuse-compass","eos\u002Fhow-to\u002Fuse-compass",{"title":170,"path":171,"stem":172},"How to use Fallow","\u002Feos\u002Fhow-to\u002Fuse-fallow","eos\u002Fhow-to\u002Fuse-fallow",{"title":174,"path":175,"stem":176},"How to use incremental mutation tests","\u002Feos\u002Fhow-to\u002Fuse-incremental-mutation-tests","eos\u002Fhow-to\u002Fuse-incremental-mutation-tests",{"title":178,"path":179,"stem":180},"How to use Scout","\u002Feos\u002Fhow-to\u002Fuse-scout","eos\u002Fhow-to\u002Fuse-scout",{"title":97,"path":182,"stem":183,"children":184,"page":43},"\u002Feos\u002Freference","eos\u002Freference",[185,189,193,197],{"title":186,"path":187,"stem":188},"Compass CLI","\u002Feos\u002Freference\u002Fcompass-cli","eos\u002Freference\u002Fcompass-cli",{"title":190,"path":191,"stem":192},"EOS marketplace skills","\u002Feos\u002Freference\u002Fmarketplace-skills","eos\u002Freference\u002Fmarketplace-skills",{"title":194,"path":195,"stem":196},"Nx task execution and cache","\u002Feos\u002Freference\u002Fnx-task-execution","eos\u002Freference\u002Fnx-task-execution",{"title":198,"path":199,"stem":200},"Scout CLI","\u002Feos\u002Freference\u002Fscout-cli","eos\u002Freference\u002Fscout-cli",{"title":202,"path":203,"stem":204,"children":205},"Product engineering","\u002Fproduct-engineering","product-engineering\u002FREADME",[206],{"title":14,"collapsed":15,"path":207,"stem":208,"children":209,"page":43},"\u002Fproduct-engineering\u002Fadrs","product-engineering\u002Fadrs",[210],{"title":211,"path":212,"stem":213},"Codify Engineering Standards as Skills","\u002Fproduct-engineering\u002Fadrs\u002F0002-codify-engineering-standards-as-skills","product-engineering\u002Fadrs\u002F0002-codify-engineering-standards-as-skills",{"page":215,"surround":765},{"id":216,"title":134,"body":217,"config":760,"description":223,"extension":761,"meta":762,"navigation":15,"path":135,"seo":763,"stem":136,"__hash__":764},"docs\u002Feos\u002Fhow-to\u002Fconsume-eos-marketplace.md",{"type":218,"value":219,"toc":747},"minimark",[220,224,233,248,253,258,261,293,296,307,310,323,333,337,350,365,368,382,393,397,400,432,435,443,450,459,463,466,481,488,514,518,521,537,548,551,555,561,575,586,604,608,611,635,638,642,645,678,681,685,688,725,734,743],[221,222,223],"p",{},"Use APM to install EOS plugins with dependency resolution, security checks, and\ncross-runtime deployment. Install repository-independent skills globally by\ndefault so they remain available while working across repositories. Use a\nproject installation when a repository or its CI pipeline depends on a plugin.",[221,225,226,227,232],{},"See the ",[228,229,231],"a",{"href":230},"..\u002Freference\u002Fmarketplace-skills","EOS marketplace skills reference","\nfor the available skills and their main use cases.",[234,235,236],"blockquote",{},[221,237,238,242,243,247],{},[239,240,241],"span",{},"!IMPORTANT"," Do not use the native marketplace or plugin installer built into\nClaude Code, Cursor, Codex, or another runtime. Native installs do not create\nan APM lockfile, pin content hashes, resolve transitive dependencies, run\nAPM's pre-install security scan, or support ",[244,245,246],"code",{},"apm audit --ci"," drift detection.\nUse APM for both global and project installations.",[249,250,252],"h2",{"id":251},"quickstart","Quickstart",[254,255,257],"h3",{"id":256},"_1-install-apm","1. Install APM",[221,259,260],{},"On macOS or Linux, run:",[262,263,268],"pre",{"className":264,"code":265,"language":266,"meta":267,"style":267},"language-sh shiki shiki-themes github-dark github-light","curl -sSL https:\u002F\u002Faka.ms\u002Fapm-unix | sh\n","sh","",[244,269,270],{"__ignoreMap":267},[239,271,274,278,282,286,290],{"class":272,"line":273},"line",1,[239,275,277],{"class":276},"s-Z4r","curl",[239,279,281],{"class":280},"s0DvM"," -sSL",[239,283,285],{"class":284},"sg6BJ"," https:\u002F\u002Faka.ms\u002Fapm-unix",[239,287,289],{"class":288},"scx8i"," |",[239,291,292],{"class":276}," sh\n",[221,294,295],{},"On Windows, run in PowerShell:",[262,297,301],{"className":298,"code":299,"language":300,"meta":267,"style":267},"language-powershell shiki shiki-themes github-dark github-light","irm https:\u002F\u002Faka.ms\u002Fapm-windows | iex\n","powershell",[244,302,303],{"__ignoreMap":267},[239,304,305],{"class":272,"line":273},[239,306,299],{},[221,308,309],{},"Verify that APM is available:",[262,311,313],{"className":264,"code":312,"language":266,"meta":267,"style":267},"apm --version\n",[244,314,315],{"__ignoreMap":267},[239,316,317,320],{"class":272,"line":273},[239,318,319],{"class":276},"apm",[239,321,322],{"class":280}," --version\n",[221,324,325,326,332],{},"See the official\n",[228,327,331],{"href":328,"rel":329},"https:\u002F\u002Fmicrosoft.github.io\u002Fapm\u002Fgetting-started\u002Fquick-start\u002F",[330],"nofollow","APM quickstart","\nfor alternative installation methods and troubleshooting.",[254,334,336],{"id":335},"_2-install-and-authenticate-the-github-cli","2. Install and authenticate the GitHub CLI",[221,338,339,340,343,344,349],{},"APM resolves marketplace registrations through the GitHub CLI. Install ",[244,341,342],{},"gh","\nfollowing the ",[228,345,348],{"href":346,"rel":347},"https:\u002F\u002Fcli.github.com",[330],"official instructions"," and authenticate\nbefore registering any marketplace:",[262,351,353],{"className":264,"code":352,"language":266,"meta":267,"style":267},"gh auth login\n",[244,354,355],{"__ignoreMap":267},[239,356,357,359,362],{"class":272,"line":273},[239,358,342],{"class":276},[239,360,361],{"class":284}," auth",[239,363,364],{"class":284}," login\n",[221,366,367],{},"Verify the session is active:",[262,369,371],{"className":264,"code":370,"language":266,"meta":267,"style":267},"gh auth status\n",[244,372,373],{"__ignoreMap":267},[239,374,375,377,379],{"class":272,"line":273},[239,376,342],{"class":276},[239,378,361],{"class":284},[239,380,381],{"class":284}," status\n",[221,383,384,385,388,389,392],{},"If ",[244,386,387],{},"gh auth status"," reports no active account, ",[244,390,391],{},"apm marketplace add"," will fail\nwith an authentication error.",[254,394,396],{"id":395},"_3-register-eos-and-install-ask-eos","3. Register EOS and install Ask EOS",[221,398,399],{},"Register the EOS marketplace and install its guided setup plugin globally:",[262,401,403],{"className":264,"code":402,"language":266,"meta":267,"style":267},"apm marketplace add tillotech\u002Feos\napm install eos@eos --global\n",[244,404,405,418],{"__ignoreMap":267},[239,406,407,409,412,415],{"class":272,"line":273},[239,408,319],{"class":276},[239,410,411],{"class":284}," marketplace",[239,413,414],{"class":284}," add",[239,416,417],{"class":284}," tillotech\u002Feos\n",[239,419,421,423,426,429],{"class":272,"line":420},2,[239,422,319],{"class":276},[239,424,425],{"class":284}," install",[239,427,428],{"class":284}," eos@eos",[239,430,431],{"class":280}," --global\n",[221,433,434],{},"Restart the active AI program so it discovers the newly installed skill, then\nrun:",[262,436,441],{"className":437,"code":439,"language":440,"meta":267},[438],"language-text","\u002Fask-eos\n","text",[244,442,439],{"__ignoreMap":267},[221,444,445,446,449],{},"Ask EOS routes by goal. For install or discovery requests (including a bare\n",[244,447,448],{},"\u002Fask-eos","), it asks about the user's role or goal, inventories installed EOS\nplugins and notable skills, avoids recommending skills that overlap the\nengineering plugin, reports whether Jira, GitHub CLI, and Notion are ready via\ntheir preferred MCP or CLI (and whether a compatible plugin, skill, or CLI\nalternative is present when the preferred tool needs setup), and offers to\ninstall each relevant missing plugin after explaining what it provides. For\nreadiness-only requests, it runs the same environment research and reports gaps\nwithout installing unless the user opts into the install walkthrough.",[221,451,452,453,455,456,458],{},"After the plugins are installed, connect Notion, Atlassian, and the GitHub CLI\nwith ",[228,454,130],{"href":131},". Then\nfollow ",[228,457,158],{"href":159},".",[249,460,462],{"id":461},"register-the-marketplace","Register the marketplace",[221,464,465],{},"Register the EOS marketplace:",[262,467,469],{"className":264,"code":468,"language":266,"meta":267,"style":267},"apm marketplace add tillotech\u002Feos\n",[244,470,471],{"__ignoreMap":267},[239,472,473,475,477,479],{"class":272,"line":273},[239,474,319],{"class":276},[239,476,411],{"class":284},[239,478,414],{"class":284},[239,480,417],{"class":284},[221,482,483,484,487],{},"APM registers the marketplace as ",[244,485,486],{},"eos",". Confirm the registration and inspect the\navailable plugins:",[262,489,491],{"className":264,"code":490,"language":266,"meta":267,"style":267},"apm marketplace list\napm marketplace browse eos\n",[244,492,493,502],{"__ignoreMap":267},[239,494,495,497,499],{"class":272,"line":273},[239,496,319],{"class":276},[239,498,411],{"class":284},[239,500,501],{"class":284}," list\n",[239,503,504,506,508,511],{"class":272,"line":420},[239,505,319],{"class":276},[239,507,411],{"class":284},[239,509,510],{"class":284}," browse",[239,512,513],{"class":284}," eos\n",[249,515,517],{"id":516},"install-repository-independent-skills-globally","Install repository-independent skills globally",[221,519,520],{},"Install reusable skills in the user scope so they are available across\nrepositories:",[262,522,524],{"className":264,"code":523,"language":266,"meta":267,"style":267},"apm install engineering@eos --global\n",[244,525,526],{"__ignoreMap":267},[239,527,528,530,532,535],{"class":272,"line":273},[239,529,319],{"class":276},[239,531,425],{"class":284},[239,533,534],{"class":284}," engineering@eos",[239,536,431],{"class":280},[221,538,539,540,543,544,547],{},"Repeat the command for each package needed, retaining the ",[244,541,542],{},"--global"," flag. APM\nstores user-scope dependencies and their lockfile under ",[244,545,546],{},"~\u002F.apm\u002F",", scans the\npackages, and deploys supported primitives to the configured agent runtimes.",[221,549,550],{},"Some runtimes only support a subset of APM primitives at user scope. Review any\ncompatibility warning from APM; a warning about an unsupported primitive does\nnot mean that the package's supported skills failed to install.",[249,552,554],{"id":553},"install-a-repository-dependency","Install a repository dependency",[221,556,557,558,560],{},"Install without ",[244,559,542],{}," when a repository or its CI pipeline requires a\nspecific EOS plugin:",[262,562,564],{"className":264,"code":563,"language":266,"meta":267,"style":267},"apm install engineering@eos\n",[244,565,566],{"__ignoreMap":267},[239,567,568,570,572],{"class":272,"line":273},[239,569,319],{"class":276},[239,571,425],{"class":284},[239,573,574],{"class":284}," engineering@eos\n",[221,576,577,578,581,582,585],{},"APM updates the project's ",[244,579,580],{},"apm.yml"," and resolves the dependency graph into\n",[244,583,584],{},"apm.lock.yaml",". Commit both files so contributors and CI install the same\ncommits and content hashes:",[262,587,589],{"className":264,"code":588,"language":266,"meta":267,"style":267},"git add apm.yml apm.lock.yaml\n",[244,590,591],{"__ignoreMap":267},[239,592,593,596,598,601],{"class":272,"line":273},[239,594,595],{"class":276},"git",[239,597,414],{"class":284},[239,599,600],{"class":284}," apm.yml",[239,602,603],{"class":284}," apm.lock.yaml\n",[249,605,607],{"id":606},"install-in-ci","Install in CI",[221,609,610],{},"Replay the committed lockfile without resolving newer package versions:",[262,612,614],{"className":264,"code":613,"language":266,"meta":267,"style":267},"apm install --frozen\napm audit --ci\n",[244,615,616,625],{"__ignoreMap":267},[239,617,618,620,622],{"class":272,"line":273},[239,619,319],{"class":276},[239,621,425],{"class":284},[239,623,624],{"class":280}," --frozen\n",[239,626,627,629,632],{"class":272,"line":420},[239,628,319],{"class":276},[239,630,631],{"class":284}," audit",[239,633,634],{"class":280}," --ci\n",[221,636,637],{},"Treat a lockfile mismatch or audit failure as a failed build. Do not regenerate\nthe lockfile in CI.",[249,639,641],{"id":640},"update-global-plugins","Update global plugins",[221,643,644],{},"Refresh the marketplace and update user-scope dependencies:",[262,646,648],{"className":264,"code":647,"language":266,"meta":267,"style":267},"apm marketplace update eos\napm update --global\napm install --global\n",[244,649,650,661,669],{"__ignoreMap":267},[239,651,652,654,656,659],{"class":272,"line":273},[239,653,319],{"class":276},[239,655,411],{"class":284},[239,657,658],{"class":284}," update",[239,660,513],{"class":284},[239,662,663,665,667],{"class":272,"line":420},[239,664,319],{"class":276},[239,666,658],{"class":284},[239,668,431],{"class":280},[239,670,672,674,676],{"class":272,"line":671},3,[239,673,319],{"class":276},[239,675,425],{"class":284},[239,677,431],{"class":280},[221,679,680],{},"The update affects every repository that uses those global skills on the\nworkstation.",[249,682,684],{"id":683},"update-project-plugins","Update project plugins",[221,686,687],{},"Refresh the marketplace cache, resolve newer matching plugin versions, and\nverify the result:",[262,689,691],{"className":264,"code":690,"language":266,"meta":267,"style":267},"apm marketplace update eos\napm update\napm install\napm audit\n",[244,692,693,703,710,717],{"__ignoreMap":267},[239,694,695,697,699,701],{"class":272,"line":273},[239,696,319],{"class":276},[239,698,411],{"class":284},[239,700,658],{"class":284},[239,702,513],{"class":284},[239,704,705,707],{"class":272,"line":420},[239,706,319],{"class":276},[239,708,709],{"class":284}," update\n",[239,711,712,714],{"class":272,"line":671},[239,713,319],{"class":276},[239,715,716],{"class":284}," install\n",[239,718,720,722],{"class":272,"line":719},4,[239,721,319],{"class":276},[239,723,724],{"class":284}," audit\n",[221,726,727,728,730,731,733],{},"Review and commit the resulting ",[244,729,580],{}," and ",[244,732,584],{}," changes.",[221,735,736,737,742],{},"See APM's\n",[228,738,741],{"href":739,"rel":740},"https:\u002F\u002Fmicrosoft.github.io\u002Fapm\u002Fconsumer\u002Finstalling-from-marketplaces\u002F",[330],"installing from marketplaces","\nguide for the supported installation paths and the capabilities lost when using\nnative runtime installers.",[744,745,746],"style",{},"html pre.shiki code .s-Z4r, html code.shiki .s-Z4r{--shiki-dark:#B392F0;--shiki-default:#6F42C1}html pre.shiki code .s0DvM, html code.shiki .s0DvM{--shiki-dark:#79B8FF;--shiki-default:#005CC5}html pre.shiki code .sg6BJ, html code.shiki .sg6BJ{--shiki-dark:#9ECBFF;--shiki-default:#032F62}html pre.shiki code .scx8i, html code.shiki .scx8i{--shiki-dark:#F97583;--shiki-default:#D73A49}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":267,"searchDepth":671,"depth":671,"links":748},[749,754,755,756,757,758,759],{"id":251,"depth":420,"text":252,"children":750},[751,752,753],{"id":256,"depth":671,"text":257},{"id":335,"depth":671,"text":336},{"id":395,"depth":671,"text":396},{"id":461,"depth":420,"text":462},{"id":516,"depth":420,"text":517},{"id":553,"depth":420,"text":554},{"id":606,"depth":420,"text":607},{"id":640,"depth":420,"text":641},{"id":683,"depth":420,"text":684},{},"md",{},{"title":134,"description":223},"9L5191QSDvnhb4RrDDKnXEV0KaigViWU2U7eGZzo_14",[766,767],{"title":130,"path":131,"stem":132,"children":-1},{"title":138,"path":139,"stem":140,"children":-1},[769,822],{"nav":770,"source":819},[771],{"title":772,"path":773,"stem":774,"children":775,"page":-1},"Ember","\u002Fember","ember",[776,779,811,815],{"title":777,"path":773,"stem":778},"StoreFront Documentation","ember\u002Findex",{"title":14,"path":780,"stem":781,"children":782,"page":43},"\u002Fember\u002Fadrs","ember\u002Fadrs",[783,787,791,795,799,803,807],{"title":784,"path":785,"stem":786},"Add Infection as a non-blocking mutation testing tool for Ember","\u002Fember\u002Fadrs\u002F0001-infection-mutation-testing","ember\u002Fadrs\u002F0001-infection-mutation-testing",{"title":788,"path":789,"stem":790},"Process DELETE scheduled changes before CREATE_UPDATE at the same instant","\u002Fember\u002Fadrs\u002F0002-scheduled-change-processing-order","ember\u002Fadrs\u002F0002-scheduled-change-processing-order",{"title":792,"path":793,"stem":794},"Standard rate scheduling is permanent until overridden","\u002Fember\u002Fadrs\u002F0003-standard-rate-scheduling-is-permanent","ember\u002Fadrs\u002F0003-standard-rate-scheduling-is-permanent",{"title":796,"path":797,"stem":798},"Promotions require an existing standard rate","\u002Fember\u002Fadrs\u002F0004-promotions-require-existing-standard-rate","ember\u002Fadrs\u002F0004-promotions-require-existing-standard-rate",{"title":800,"path":801,"stem":802},"UTC datetime contract between Storefront and Hub","\u002Fember\u002Fadrs\u002F0005-utc-datetime-contract-between-storefront-and-hub","ember\u002Fadrs\u002F0005-utc-datetime-contract-between-storefront-and-hub",{"title":804,"path":805,"stem":806},"Elapsed unprocessed scheduled changes do not block rate changes","\u002Fember\u002Fadrs\u002F0006-stale-scheduler-rows-do-not-block-rate-changes","ember\u002Fadrs\u002F0006-stale-scheduler-rows-do-not-block-rate-changes",{"title":808,"path":809,"stem":810},"ADR-0007: Delete ConfigureTenantAuth routing command once OIDC setup migrates to Hub","\u002Fember\u002Fadrs\u002F0007-delete-configure-tenant-auth-routing-command","ember\u002Fadrs\u002F0007-delete-configure-tenant-auth-routing-command",{"title":812,"path":813,"stem":814},"Domain Overview","\u002Fember\u002Fdomain_overview","ember\u002Fdomain_overview",{"title":816,"path":817,"stem":818},"Main Flows","\u002Fember\u002Fkey_flows","ember\u002Fkey_flows",{"collectionName":820,"label":821,"prefix":774},"external_ember","StoreFront (Ember)",{"nav":823,"source":995},[824],{"title":825,"path":826,"stem":827,"children":828,"page":-1},"Core","\u002Fcore","core",[829,832,860,864,886,890,900,917,974,978],{"title":830,"path":826,"stem":831},"Documentation Index","core\u002Findex",{"title":14,"path":833,"stem":834,"children":835,"page":43},"\u002Fcore\u002Fadrs","core\u002Fadrs",[836,840,844,848,852,856],{"title":837,"path":838,"stem":839},"ADR-XXXX: Short, descriptive title","\u002Fcore\u002Fadrs\u002F0000-template","core\u002Fadrs\u002F0000-template",{"title":841,"path":842,"stem":843},"ADR-1: Promotions endpoint","\u002Fcore\u002Fadrs\u002F0001-add-promotions-endpoint","core\u002Fadrs\u002F0001-add-promotions-endpoint",{"title":845,"path":846,"stem":847},"ADR-2: EOM partner report job dispatch","\u002Fcore\u002Fadrs\u002F0002-eom-report-job-dispatch","core\u002Fadrs\u002F0002-eom-report-job-dispatch",{"title":849,"path":850,"stem":851},"ADR-3: Replace PB fee waive flag with a Zero scheme override","\u002Fcore\u002Fadrs\u002F0003-replace-pb-fee-waive-with-zero-scheme","core\u002Fadrs\u002F0003-replace-pb-fee-waive-with-zero-scheme",{"title":853,"path":854,"stem":855},"ADR-4: No processor Digital Top-up capability gate in Reloadable Commercials","\u002Fcore\u002Fadrs\u002F0004-no-processor-top-up-capability-gate","core\u002Fadrs\u002F0004-no-processor-top-up-capability-gate",{"title":857,"path":858,"stem":859},"ADR-5: Sparse polymorphic sale fee override reason stamp","\u002Fcore\u002Fadrs\u002F0005-sale-fee-override-reason-stamp","core\u002Fadrs\u002F0005-sale-fee-override-reason-stamp",{"title":861,"path":862,"stem":863},"Agent Workflow","\u002Fcore\u002Fai-workflow","core\u002Fai-workflow",{"title":865,"path":866,"stem":867,"children":868,"page":-1},"Backend Guide","\u002Fcore\u002Fbackend","core\u002Fbackend\u002Findex",[869,870,874,878,882],{"title":865,"path":866,"stem":867},{"title":871,"path":872,"stem":873},"Backend AI Tooling","\u002Fcore\u002Fbackend\u002Fai-tooling","core\u002Fbackend\u002Fai-tooling",{"title":875,"path":876,"stem":877},"Backend Linting and Formatting","\u002Fcore\u002Fbackend\u002Flinting-and-formatting","core\u002Fbackend\u002Flinting-and-formatting",{"title":879,"path":880,"stem":881},"Backend Setup","\u002Fcore\u002Fbackend\u002Fsetup","core\u002Fbackend\u002Fsetup",{"title":883,"path":884,"stem":885},"Backend Testing","\u002Fcore\u002Fbackend\u002Ftesting","core\u002Fbackend\u002Ftesting",{"title":887,"path":888,"stem":889},"Documentation Health","\u002Fcore\u002Fdoc-health","core\u002Fdoc-health",{"title":891,"path":892,"stem":893,"children":894,"page":-1},"Frontend Guide","\u002Fcore\u002Ffrontend","core\u002Ffrontend\u002Findex",[895,896],{"title":891,"path":892,"stem":893},{"title":897,"path":898,"stem":899},"Frontend Development","\u002Fcore\u002Ffrontend\u002Fdevelopment","core\u002Ffrontend\u002Fdevelopment",{"title":901,"path":902,"stem":903,"children":904,"page":43},"Modules","\u002Fcore\u002Fmodules","core\u002Fmodules",[905,909],{"title":906,"path":907,"stem":908},"Connect API","\u002Fcore\u002Fmodules\u002Fconnect-api","core\u002Fmodules\u002Fconnect-api",{"title":910,"path":911,"stem":912,"children":913,"page":43},"Secure Links","\u002Fcore\u002Fmodules\u002Fsecure-links","core\u002Fmodules\u002Fsecure-links",[914],{"title":910,"path":915,"stem":916},"\u002Fcore\u002Fmodules\u002Fsecure-links\u002Fsecure-links","core\u002Fmodules\u002Fsecure-links\u002Fsecure-links",{"title":918,"path":919,"stem":920,"children":921,"page":43},"Processors","\u002Fcore\u002Fprocessors","core\u002Fprocessors",[922,926,930,934,938,942,946,950,954,958,962,966,970],{"title":923,"path":924,"stem":925},"Amazon Processor and API","\u002Fcore\u002Fprocessors\u002Famazon","core\u002Fprocessors\u002Famazon",{"title":927,"path":928,"stem":929},"Amilon Processor and API","\u002Fcore\u002Fprocessors\u002Familon","core\u002Fprocessors\u002Familon",{"title":931,"path":932,"stem":933},"Cadooz Processor and API","\u002Fcore\u002Fprocessors\u002Fcadooz","core\u002Fprocessors\u002Fcadooz",{"title":935,"path":936,"stem":937},"Choice Digital Processor and API","\u002Fcore\u002Fprocessors\u002Fchoice-digital","core\u002Fprocessors\u002Fchoice-digital",{"title":939,"path":940,"stem":941},"Diggecard processor reference","\u002Fcore\u002Fprocessors\u002Fdiggecard","core\u002Fprocessors\u002Fdiggecard",{"title":943,"path":944,"stem":945},"ePay Processor and API","\u002Fcore\u002Fprocessors\u002Fepay","core\u002Fprocessors\u002Fepay",{"title":947,"path":948,"stem":949},"GoGift v2 Processor and API","\u002Fcore\u002Fprocessors\u002Fgo-gift-v2","core\u002Fprocessors\u002Fgo-gift-v2",{"title":951,"path":952,"stem":953},"InComm Processor and API","\u002Fcore\u002Fprocessors\u002Fincomm","core\u002Fprocessors\u002Fincomm",{"title":955,"path":956,"stem":957},"Ogloba Processor and API","\u002Fcore\u002Fprocessors\u002Fogloba","core\u002Fprocessors\u002Fogloba",{"title":959,"path":960,"stem":961},"SVSECard Processor and API","\u002Fcore\u002Fprocessors\u002Fsvs-ecard","core\u002Fprocessors\u002Fsvs-ecard",{"title":963,"path":964,"stem":965},"Vananam Processor and API","\u002Fcore\u002Fprocessors\u002Fvananam","core\u002Fprocessors\u002Fvananam",{"title":967,"path":968,"stem":969},"Vouchers Depot processor reference","\u002Fcore\u002Fprocessors\u002Fvouchers-depot","core\u002Fprocessors\u002Fvouchers-depot",{"title":971,"path":972,"stem":973},"You Got a Gift Processor and API","\u002Fcore\u002Fprocessors\u002Fyou-got-a-gift","core\u002Fprocessors\u002Fyou-got-a-gift",{"title":975,"path":976,"stem":977},"Development Quickstart","\u002Fcore\u002Fsetup","core\u002Fsetup",{"title":979,"path":980,"stem":981,"children":982,"page":43},"Workflows","\u002Fcore\u002Fworkflows","core\u002Fworkflows",[983,987,991],{"title":984,"path":985,"stem":986},"Hub Endpoint Workflow","\u002Fcore\u002Fworkflows\u002Fhub-endpoints","core\u002Fworkflows\u002Fhub-endpoints",{"title":988,"path":989,"stem":990},"OpenAPI Tooling","\u002Fcore\u002Fworkflows\u002Fopenapi-tooling","core\u002Fworkflows\u002Fopenapi-tooling",{"title":992,"path":993,"stem":994},"Processor Integration Workflow","\u002Fcore\u002Fworkflows\u002Fprocessors","core\u002Fworkflows\u002Fprocessors",{"collectionName":996,"label":825,"prefix":827},"external_core",1789777546829]