[{"data":1,"prerenderedAt":1027},["ShallowReactive",2],{"navigation":3,"external-navigation":214,"docs:\u002Feos\u002Freference\u002Fnx-task-execution":443},[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",[215,268],{"nav":216,"source":265},[217],{"title":218,"path":219,"stem":220,"children":221},"Ember","\u002Fember","ember",[222,225,257,261],{"title":223,"path":219,"stem":224},"StoreFront Documentation","ember\u002Findex",{"title":14,"path":226,"stem":227,"children":228,"page":43},"\u002Fember\u002Fadrs","ember\u002Fadrs",[229,233,237,241,245,249,253],{"title":230,"path":231,"stem":232},"Add Infection as a non-blocking mutation testing tool for Ember","\u002Fember\u002Fadrs\u002F0001-infection-mutation-testing","ember\u002Fadrs\u002F0001-infection-mutation-testing",{"title":234,"path":235,"stem":236},"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":238,"path":239,"stem":240},"Standard rate scheduling is permanent until overridden","\u002Fember\u002Fadrs\u002F0003-standard-rate-scheduling-is-permanent","ember\u002Fadrs\u002F0003-standard-rate-scheduling-is-permanent",{"title":242,"path":243,"stem":244},"Promotions require an existing standard rate","\u002Fember\u002Fadrs\u002F0004-promotions-require-existing-standard-rate","ember\u002Fadrs\u002F0004-promotions-require-existing-standard-rate",{"title":246,"path":247,"stem":248},"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":250,"path":251,"stem":252},"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":254,"path":255,"stem":256},"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":258,"path":259,"stem":260},"Domain Overview","\u002Fember\u002Fdomain_overview","ember\u002Fdomain_overview",{"title":262,"path":263,"stem":264},"Main Flows","\u002Fember\u002Fkey_flows","ember\u002Fkey_flows",{"collectionName":266,"label":267,"prefix":220},"external_ember","StoreFront (Ember)",{"nav":269,"source":441},[270],{"title":271,"path":272,"stem":273,"children":274},"Core","\u002Fcore","core",[275,278,306,310,332,336,346,363,420,424],{"title":276,"path":272,"stem":277},"Documentation Index","core\u002Findex",{"title":14,"path":279,"stem":280,"children":281,"page":43},"\u002Fcore\u002Fadrs","core\u002Fadrs",[282,286,290,294,298,302],{"title":283,"path":284,"stem":285},"ADR-XXXX: Short, descriptive title","\u002Fcore\u002Fadrs\u002F0000-template","core\u002Fadrs\u002F0000-template",{"title":287,"path":288,"stem":289},"ADR-1: Promotions endpoint","\u002Fcore\u002Fadrs\u002F0001-add-promotions-endpoint","core\u002Fadrs\u002F0001-add-promotions-endpoint",{"title":291,"path":292,"stem":293},"ADR-2: EOM partner report job dispatch","\u002Fcore\u002Fadrs\u002F0002-eom-report-job-dispatch","core\u002Fadrs\u002F0002-eom-report-job-dispatch",{"title":295,"path":296,"stem":297},"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":299,"path":300,"stem":301},"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":303,"path":304,"stem":305},"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":307,"path":308,"stem":309},"Agent Workflow","\u002Fcore\u002Fai-workflow","core\u002Fai-workflow",{"title":311,"path":312,"stem":313,"children":314},"Backend Guide","\u002Fcore\u002Fbackend","core\u002Fbackend\u002Findex",[315,316,320,324,328],{"title":311,"path":312,"stem":313},{"title":317,"path":318,"stem":319},"Backend AI Tooling","\u002Fcore\u002Fbackend\u002Fai-tooling","core\u002Fbackend\u002Fai-tooling",{"title":321,"path":322,"stem":323},"Backend Linting and Formatting","\u002Fcore\u002Fbackend\u002Flinting-and-formatting","core\u002Fbackend\u002Flinting-and-formatting",{"title":325,"path":326,"stem":327},"Backend Setup","\u002Fcore\u002Fbackend\u002Fsetup","core\u002Fbackend\u002Fsetup",{"title":329,"path":330,"stem":331},"Backend Testing","\u002Fcore\u002Fbackend\u002Ftesting","core\u002Fbackend\u002Ftesting",{"title":333,"path":334,"stem":335},"Documentation Health","\u002Fcore\u002Fdoc-health","core\u002Fdoc-health",{"title":337,"path":338,"stem":339,"children":340},"Frontend Guide","\u002Fcore\u002Ffrontend","core\u002Ffrontend\u002Findex",[341,342],{"title":337,"path":338,"stem":339},{"title":343,"path":344,"stem":345},"Frontend Development","\u002Fcore\u002Ffrontend\u002Fdevelopment","core\u002Ffrontend\u002Fdevelopment",{"title":347,"path":348,"stem":349,"children":350,"page":43},"Modules","\u002Fcore\u002Fmodules","core\u002Fmodules",[351,355],{"title":352,"path":353,"stem":354},"Connect API","\u002Fcore\u002Fmodules\u002Fconnect-api","core\u002Fmodules\u002Fconnect-api",{"title":356,"path":357,"stem":358,"children":359,"page":43},"Secure Links","\u002Fcore\u002Fmodules\u002Fsecure-links","core\u002Fmodules\u002Fsecure-links",[360],{"title":356,"path":361,"stem":362},"\u002Fcore\u002Fmodules\u002Fsecure-links\u002Fsecure-links","core\u002Fmodules\u002Fsecure-links\u002Fsecure-links",{"title":364,"path":365,"stem":366,"children":367,"page":43},"Processors","\u002Fcore\u002Fprocessors","core\u002Fprocessors",[368,372,376,380,384,388,392,396,400,404,408,412,416],{"title":369,"path":370,"stem":371},"Amazon Processor and API","\u002Fcore\u002Fprocessors\u002Famazon","core\u002Fprocessors\u002Famazon",{"title":373,"path":374,"stem":375},"Amilon Processor and API","\u002Fcore\u002Fprocessors\u002Familon","core\u002Fprocessors\u002Familon",{"title":377,"path":378,"stem":379},"Cadooz Processor and API","\u002Fcore\u002Fprocessors\u002Fcadooz","core\u002Fprocessors\u002Fcadooz",{"title":381,"path":382,"stem":383},"Choice Digital Processor and API","\u002Fcore\u002Fprocessors\u002Fchoice-digital","core\u002Fprocessors\u002Fchoice-digital",{"title":385,"path":386,"stem":387},"Diggecard processor reference","\u002Fcore\u002Fprocessors\u002Fdiggecard","core\u002Fprocessors\u002Fdiggecard",{"title":389,"path":390,"stem":391},"ePay Processor and API","\u002Fcore\u002Fprocessors\u002Fepay","core\u002Fprocessors\u002Fepay",{"title":393,"path":394,"stem":395},"GoGift v2 Processor and API","\u002Fcore\u002Fprocessors\u002Fgo-gift-v2","core\u002Fprocessors\u002Fgo-gift-v2",{"title":397,"path":398,"stem":399},"InComm Processor and API","\u002Fcore\u002Fprocessors\u002Fincomm","core\u002Fprocessors\u002Fincomm",{"title":401,"path":402,"stem":403},"Ogloba Processor and API","\u002Fcore\u002Fprocessors\u002Fogloba","core\u002Fprocessors\u002Fogloba",{"title":405,"path":406,"stem":407},"SVSECard Processor and API","\u002Fcore\u002Fprocessors\u002Fsvs-ecard","core\u002Fprocessors\u002Fsvs-ecard",{"title":409,"path":410,"stem":411},"Vananam Processor and API","\u002Fcore\u002Fprocessors\u002Fvananam","core\u002Fprocessors\u002Fvananam",{"title":413,"path":414,"stem":415},"Vouchers Depot processor reference","\u002Fcore\u002Fprocessors\u002Fvouchers-depot","core\u002Fprocessors\u002Fvouchers-depot",{"title":417,"path":418,"stem":419},"You Got a Gift Processor and API","\u002Fcore\u002Fprocessors\u002Fyou-got-a-gift","core\u002Fprocessors\u002Fyou-got-a-gift",{"title":421,"path":422,"stem":423},"Development Quickstart","\u002Fcore\u002Fsetup","core\u002Fsetup",{"title":425,"path":426,"stem":427,"children":428,"page":43},"Workflows","\u002Fcore\u002Fworkflows","core\u002Fworkflows",[429,433,437],{"title":430,"path":431,"stem":432},"Hub Endpoint Workflow","\u002Fcore\u002Fworkflows\u002Fhub-endpoints","core\u002Fworkflows\u002Fhub-endpoints",{"title":434,"path":435,"stem":436},"OpenAPI Tooling","\u002Fcore\u002Fworkflows\u002Fopenapi-tooling","core\u002Fworkflows\u002Fopenapi-tooling",{"title":438,"path":439,"stem":440},"Processor Integration Workflow","\u002Fcore\u002Fworkflows\u002Fprocessors","core\u002Fworkflows\u002Fprocessors",{"collectionName":442,"label":271,"prefix":273},"external_core",{"page":444,"surround":1024},{"id":445,"title":194,"body":446,"config":1019,"description":452,"extension":1020,"meta":1021,"navigation":15,"path":195,"seo":1022,"stem":196,"__hash__":1023},"docs\u002Feos\u002Freference\u002Fnx-task-execution.md",{"type":447,"value":448,"toc":1008},"minimark",[449,453,458,544,558,568,572,586,660,667,681,688,711,734,738,748,754,889,904,907,925,928,931,935,938,941,948,952,959,969,982,985,988,991,995],[450,451,452],"p",{},"EOS uses Nx to execute package scripts and repository tasks.",[454,455,457],"h2",{"id":456},"tool-responsibilities","Tool responsibilities",[459,460,461,477],"table",{},[462,463,464],"thead",{},[465,466,467,471,474],"tr",{},[468,469,470],"th",{},"Tool",[468,472,473],{},"Responsibility",[468,475,476],{},"Examples",[478,479,480,495,512,528],"tbody",{},[465,481,482,486,489],{},[483,484,485],"td",{},"mise",[483,487,488],{},"Install and select repository tool versions",[483,490,491],{},[492,493,494],"code",{},"mise install",[465,496,497,500,503],{},[483,498,499],{},"pnpm",[483,501,502],{},"Install dependencies, manage workspaces, and maintain the lockfile",[483,504,505,508,509],{},[492,506,507],{},"pnpm install",", ",[492,510,511],{},"pnpm --filter @tillo\u002Fscout add \u003Cpackage>",[465,513,514,517,520],{},[483,515,516],{},"Nx",[483,518,519],{},"Select project tasks, run their declared dependencies, and manage the task cache",[483,521,522,508,525],{},[492,523,524],{},"nx run @tillo\u002Fscout:test",[492,526,527],{},"nx affected -t test",[465,529,530,533,536],{},[483,531,532],{},"Ultracite",[483,534,535],{},"Check and fix source files with the Oxlint and Oxfmt presets",[483,537,538,508,541],{},[492,539,540],{},"nx run eos:lint",[492,542,543],{},"nx run eos:fmt",[450,545,546,549,550,553,554,557],{},[492,547,548],{},"mise.toml"," pins the tool versions. ",[492,551,552],{},"package.json"," and ",[492,555,556],{},"pnpm-lock.yaml"," define\nthe repository's local Nx dependency. The mise-installed Nx launcher uses that\nlocal version. An Nx upgrade updates both declarations together.",[450,559,560,561,553,564,567],{},"Mise package task inference is disabled. The repository has one project task\ninterface through Nx. The repository no longer installs the ",[492,562,563],{},"ni",[492,565,566],{},"nr","\naliases.",[454,569,571],{"id":570},"commands","Commands",[450,573,574,575,577,578,585],{},"These commands assume a complete setup with ",[492,576,494],{}," and an active mise\nshell. Mise installs Nx 23.2.1 through its npm backend. The Nx launcher uses\n",[579,580,584],"a",{"href":581,"rel":582},"https:\u002F\u002Fnx.dev\u002Fdocs\u002Fgetting-started\u002Finstallation",[583],"nofollow","the repository's local Nx version","\nfor task execution.",[459,587,588,598],{},[462,589,590],{},[465,591,592,595],{},[468,593,594],{},"Command",[468,596,597],{},"Scope",[478,599,600,610,620,630,640,650],{},[465,601,602,607],{},[483,603,604],{},[492,605,606],{},"nx run-many -t build typecheck test test:e2e lint fmt:check",[483,608,609],{},"All build, typecheck, E2E, test, lint, and format-check targets",[465,611,612,617],{},[483,613,614],{},[492,615,616],{},"nx run @eos\u002Fdocs:build",[483,618,619],{},"The docs build and its declared dependencies",[465,621,622,627],{},[483,623,624],{},[492,625,626],{},"nx affected -t test test:e2e --base=origin\u002Fmain --head=HEAD",[483,628,629],{},"Unit, functional, and E2E tests for changed projects",[465,631,632,637],{},[483,633,634],{},[492,635,636],{},"nx graph",[483,638,639],{},"The project graph",[465,641,642,647],{},[483,643,644],{},[492,645,646],{},"nx show target inputs @eos\u002Fplugin-tests:test",[483,648,649],{},"Resolved inputs for the shared plugin tests",[465,651,652,657],{},[483,653,654],{},[492,655,656],{},"nx reset",[483,658,659],{},"Clear local Nx state and cache",[450,661,662,663,666],{},"The affected example uses the local ",[492,664,665],{},"origin\u002Fmain"," ref. Nx does not fetch it.",[450,668,669,670,508,673,676,677,680],{},"Root aliases such as ",[492,671,672],{},"pnpm build",[492,674,675],{},"pnpm test",", and ",[492,678,679],{},"pnpm check"," call Nx for\ncompatibility. They use the same task graph and cache as direct Nx commands.",[450,682,683,684,687],{},"Direct workspace commands such as ",[492,685,686],{},"pnpm --filter @tillo\u002Fscout test"," execute the\npackage script without the Nx dependency graph or task cache. Scout package test\nscripts require an existing build. The standard project task commands use Nx.",[450,689,690,691,553,694,697,698,702,703,706,707,710],{},"Repository maintenance commands remain pnpm scripts. Examples include\n",[492,692,693],{},"pnpm registry:login",[492,695,696],{},"pnpm changeset",". The\n",[579,699,701],{"href":700},"..\u002Fhow-to\u002Ffinalise-change","finalise-change guide"," uses ",[492,704,705],{},"nx affected"," with\nthe complete verification target set. Direct CLI commands use pnpm when the CLI\nbelongs to a workspace dependency, such as ",[492,708,709],{},"pnpm exec wrangler"," from the Figma\nMCP directory.",[450,712,713,714,722,723,728,729,733],{},"Ultracite uses one root configuration for the monorepo. The\n",[579,715,718,721],{"href":716,"rel":717},"https:\u002F\u002Fwww.ultracite.ai\u002Fdocs\u002Fmonorepos",[583],[492,719,720],{},"eos"," project"," maps the root check and\nfix scripts to Nx targets. Packages do not define duplicate lint or format\nscripts. The configuration follows the\n",[579,724,727],{"href":725,"rel":726},"https:\u002F\u002Fwww.ultracite.ai\u002Fdocs\u002Fmigrate\u002Foxlint",[583],"Oxlint migration guide",". The\npre-commit hook applies Ultracite fixes to supported staged files. Lefthook then\nruns the affected Nx checks. See the\n",[579,730,732],{"href":731},"..\u002Fhow-to\u002Frun-git-hook-checks","Git hook guide",".",[454,735,737],{"id":736},"task-configuration","Task configuration",[450,739,740,743,744,747],{},[492,741,742],{},"nx.json"," defines shared inputs and task defaults. Each ",[492,745,746],{},"project.json"," defines\nworkspace exceptions. Package scripts remain the executable commands.",[450,749,750,751,753],{},"The root excludes its package scripts from Nx task inference to prevent\nrecursive task execution. Explicit targets on the ",[492,752,720],{}," project provide the root\nlint and format tasks.",[459,755,756,769],{},[462,757,758],{},[465,759,760,763,766],{},[468,761,762],{},"Project",[468,764,765],{},"Target",[468,767,768],{},"Check",[478,770,771,786,801,821,836,851,874],{},[465,772,773,778,783],{},[483,774,775],{},[492,776,777],{},"eos-apm",[483,779,780],{},[492,781,782],{},"apm:audit",[483,784,785],{},"Current tracked and untracked local APM files",[465,787,788,793,798],{},[483,789,790],{},[492,791,792],{},"eos-documentation",[483,794,795],{},[492,796,797],{},"docs:check",[483,799,800],{},"Depends on Markdown format, lint, and offline links",[465,802,803,807,818],{},[483,804,805],{},[492,806,792],{},[483,808,809,508,812,508,815],{},[492,810,811],{},"docs:format:check",[492,813,814],{},"docs:lint",[492,816,817],{},"docs:links",[483,819,820],{},"Individual documentation checks",[465,822,823,828,833],{},[483,824,825],{},[492,826,827],{},"eos-scripts",[483,829,830],{},[492,831,832],{},"test:scripts",[483,834,835],{},"Repository script and Nx configuration tests",[465,837,838,843,848],{},[483,839,840],{},[492,841,842],{},"eos-release",[483,844,845],{},[492,846,847],{},"changeset:status",[483,849,850],{},"Changesets release metadata",[465,852,853,857,871],{},[483,854,855],{},[492,856,720],{},[483,858,859,508,862,508,865,508,868],{},[492,860,861],{},"lint",[492,863,864],{},"lint:all",[492,866,867],{},"fmt:check",[492,869,870],{},"fmt",[483,872,873],{},"Ultracite source check and fix for the monorepo",[465,875,876,881,886],{},[483,877,878],{},[492,879,880],{},"@eos\u002Fplugin-tests",[483,882,883],{},[492,884,885],{},"docs:skills:check",[483,887,888],{},"Generated marketplace skills reference",[450,890,891,892,895,896,899,900,903],{},"The marketplace reference, repository lint, repository format, Markdown lint,\nand Markdown format checks use the cache. The other repository checks do not.\nThe Changesets target runs ",[492,893,894],{},"changeset status"," when metadata files exist.\nOtherwise, it reports that no files need validation. The changesets skill still\nassesses release impact. The status command depends on Git state and the local\n",[492,897,898],{},"main"," ref. APM audits use the mise-installed APM version and skip deleted\nfiles. Nx calls the check tools directly. Lefthook passes staged or pushed\nfilenames to Nx through ",[492,901,902],{},"--stdin",". Nx owns task selection and parallel\nexecution. The tools read their existing exclusions and include untracked source\nfiles.",[450,905,906],{},"Nx selects projects, then their requested targets. Target inputs determine cache\nvalidity and can mark a project affected by shared files. They do not select\nindividual targets within an affected project. Documentation-only and test-only\nchanges can select all requested workspace targets. The former finalise-change\ncommand applied narrower rules.",[450,908,909,910,913,914,553,917,920,921,924],{},"The ",[492,911,912],{},"eos:lint"," target uses ",[492,915,916],{},"NX_BASE",[492,918,919],{},"NX_HEAD"," when CI supplies them. The\nGit hook supplies its staged paths through the Nx process. The target passes\nthese paths to Ultracite. It checks the full repository when no path scope is\navailable or when a shared Ultracite input changes. The affected target does not\nuse the cache because its path scope can change. Use ",[492,922,923],{},"eos:lint:all"," for an\nexplicit cached full check.",[450,926,927],{},"Build, test, typecheck, full lint, and format-check targets use the local cache.\nBuild, test, typecheck, and mutation targets require dependency builds.\nIncremental mutation targets use the local cache. Full mutation targets do not\nuse the cache. Nx runs one mutation target at a time on each machine. Format\ncommands change files and do not use the cache.",[450,929,930],{},"Development and preview targets are continuous and uncached. The docs build also\nremains uncached because it reads external documentation sources.",[454,932,934],{"id":933},"inputs-and-outputs","Inputs and outputs",[450,936,937],{},"Shared inputs include package and tool configuration, the pnpm lockfile, the\nNode.js version, and root Ultracite configuration. Workspace inputs also include\ndeclared dependency inputs. Mutation inputs include project files, dependency\nproduction files, and the shared baseline helper.",[450,939,940],{},"The shared plugin tests include child plugin files and documentation. Each child\nplugin has an explicit dependency relationship with the test workspace.\nHarbourmaster tests include the root workflows and shared scripts that they\nread.",[450,942,943,944,947],{},"Build targets restore their declared output directories. Scout tests also\nrestore ",[492,945,946],{},"dist",", because their package script builds the CLI. Figma MCP tests\nrestore coverage output. Incremental mutation targets restore the Stryker state\nand mutation reports from the local Nx cache.",[454,949,951],{"id":950},"ci-cache","CI cache",[450,953,954,955,958],{},"CI installs Node.js and pnpm through the setup action. It uses ",[492,956,957],{},"pnpm exec nx"," to\nselect the repository's local Nx binary. This prefix does not add another task\nrunner. Local shells use the Nx launcher that mise installs.",[450,960,961,962,964,965,968],{},"Build, typecheck, lint, test, and mutation jobs use ",[492,963,705],{},". Each job\nfetches the full Git history. ",[492,966,967],{},"nrwl\u002Fnx-set-shas@v5"," selects the base and head\nfrom GitHub workflow history. The action fails if it cannot find a successful\nbase workflow. Its GitHub API access does not require Nx Cloud. Repository\nscript tests run on every CI execution.",[450,970,971,972,974,975,977,978,981],{},"The mutation job restores trusted Stryker reports before Nx starts the affected\ntargets. Pull requests can read the ",[492,973,898],{}," reports. Only successful ",[492,976,898],{}," and\nscheduled jobs publish new reports. The scheduled workflow uses ",[492,979,980],{},"nx run-many"," to\nrefresh all full mutation targets.",[450,983,984],{},"Each CI job uses its own local Nx cache. Jobs do not share Nx artifacts across\nmachines or workflow runs. The pnpm dependency cache and Stryker baseline\nartifacts remain separate.",[450,986,987],{},"The setup action does not start a Turbo cache server or require cache secrets.\nFork pull requests use the same local cache behaviour as other jobs.",[450,989,990],{},"Remote cache configuration remains separate work. The former R2 resources and\nsecrets remain available for rollback but current workflows do not use them. Nx\nCloud is disabled in this configuration. Nx analytics is also disabled.",[454,992,994],{"id":993},"migration-reference","Migration reference",[450,996,909,997,1002,1003,733],{},[579,998,1001],{"href":999,"rel":1000},"https:\u002F\u002Fnx.dev\u002Fdocs\u002Fkb\u002Ffrom-turborepo",[583],"Nx migration guide"," describes the\nconfiguration conversion. Nx deprecated its former S3 cache package. See the\n",[579,1004,1007],{"href":1005,"rel":1006},"https:\u002F\u002Fnx.dev\u002Fdocs\u002Freference\u002Fdeprecated\u002Fself-hosted-cache-packages",[583],"self-hosted cache notice",{"title":1009,"searchDepth":1010,"depth":1010,"links":1011},"",3,[1012,1014,1015,1016,1017,1018],{"id":456,"depth":1013,"text":457},2,{"id":570,"depth":1013,"text":571},{"id":736,"depth":1013,"text":737},{"id":933,"depth":1013,"text":934},{"id":950,"depth":1013,"text":951},{"id":993,"depth":1013,"text":994},{},"md",{},{"title":194,"description":452},"n3PejocJfhTsil61EDQwJpxewYEitWfxpHQzKhK0yxw",[1025,1026],{"title":190,"path":191,"stem":192,"children":-1},{"title":198,"path":199,"stem":200,"children":-1},1789777547801]