[{"data":1,"prerenderedAt":1078},["ShallowReactive",2],{"navigation":3,"external-navigation":214,"docs:\u002Feos\u002Fhow-to\u002Fuse-fallow":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":1075},{"id":445,"title":170,"body":446,"config":1070,"description":452,"extension":1071,"meta":1072,"navigation":15,"path":171,"seo":1073,"stem":172,"__hash__":1074},"docs\u002Feos\u002Fhow-to\u002Fuse-fallow.md",{"type":447,"value":448,"toc":1060},"minimark",[449,453,465,470,473,495,502,506,509,531,549,556,576,580,583,606,609,613,616,642,657,676,679,724,731,755,758,762,765,768,835,838,875,878,882,885,911,914,938,941,945,948,963,980,983,1012,1015,1019,1025,1028,1042,1053,1056],[450,451,452],"p",{},"Use the repository's pinned Fallow CLI to inspect code health, review changed\ncode, and preview safe fixes. Run each command from the repository root.",[450,454,455,456,460,461,464],{},"Fallow reads the root ",[457,458,459],"code",{},".fallowrc.json"," file and the pinned ",[457,462,463],{},"3.21.0"," dependency.\nThe configuration sets the analysis rules and production mode for this\nrepository.",[466,467,469],"h2",{"id":468},"prepare-the-local-tool","Prepare the local tool",[450,471,472],{},"Install the repository tools before you run a Fallow command:",[474,475,480],"pre",{"className":476,"code":477,"language":478,"meta":479,"style":479},"language-sh shiki shiki-themes github-dark github-light","mise install\n","sh","",[457,481,482],{"__ignoreMap":479},[483,484,487,491],"span",{"class":485,"line":486},"line",1,[483,488,490],{"class":489},"s-Z4r","mise",[483,492,494],{"class":493},"sg6BJ"," install\n",[450,496,497,498,501],{},"The local ",[457,499,500],{},"pnpm"," script resolves the repository dependency. Do not install a\nsecond Fallow version for this repository.",[466,503,505],{"id":504},"run-a-full-analysis","Run a full analysis",[450,507,508],{},"Run Fallow without a subcommand to analyze unused code, duplication, and code\nhealth across the repository:",[474,510,512],{"className":476,"code":511,"language":478,"meta":479,"style":479},"pnpm fallow --format json --quiet\n",[457,513,514],{"__ignoreMap":479},[483,515,516,518,521,525,528],{"class":485,"line":486},[483,517,500],{"class":489},[483,519,520],{"class":493}," fallow",[483,522,524],{"class":523},"s0DvM"," --format",[483,526,527],{"class":493}," json",[483,529,530],{"class":523}," --quiet\n",[450,532,533,534,537,538,537,541,544,545,548],{},"The full analysis returns Fallow's command-specific JSON output. Read the\n",[457,535,536],{},"check",", ",[457,539,540],{},"health",[457,542,543],{},"dupes",", and ",[457,546,547],{},"next_steps"," fields when they are present. Do\nnot wrap this output in a new schema.",[450,550,551,552,555],{},"The root policy enables production mode. Pass ",[457,553,554],{},"--production"," when a command must\nstate that mode explicitly:",[474,557,559],{"className":476,"code":558,"language":478,"meta":479,"style":479},"pnpm fallow --production --format json --quiet\n",[457,560,561],{"__ignoreMap":479},[483,562,563,565,567,570,572,574],{"class":485,"line":486},[483,564,500],{"class":489},[483,566,520],{"class":493},[483,568,569],{"class":523}," --production",[483,571,524],{"class":523},[483,573,527],{"class":493},[483,575,530],{"class":523},[466,577,579],{"id":578},"scope-an-analysis-to-a-workspace","Scope an analysis to a workspace",[450,581,582],{},"Pass a workspace name or pattern to limit the report:",[474,584,586],{"className":476,"code":585,"language":478,"meta":479,"style":479},"pnpm fallow --workspace \"\u003Cworkspace-name>\" --format json --quiet\n",[457,587,588],{"__ignoreMap":479},[483,589,590,592,594,597,600,602,604],{"class":485,"line":486},[483,591,500],{"class":489},[483,593,520],{"class":493},[483,595,596],{"class":523}," --workspace",[483,598,599],{"class":493}," \"\u003Cworkspace-name>\"",[483,601,524],{"class":523},[483,603,527],{"class":493},[483,605,530],{"class":523},[450,607,608],{},"Fallow accepts an exact workspace name, a glob pattern, or a negated pattern.\nUse the workspace package name from the repository configuration.",[466,610,612],{"id":611},"audit-changed-code","Audit changed code",[450,614,615],{},"Use the audit command before you commit code or open a pull request:",[474,617,619],{"className":476,"code":618,"language":478,"meta":479,"style":479},"pnpm fallow audit --base main --format json --quiet\n",[457,620,621],{"__ignoreMap":479},[483,622,623,625,627,630,633,636,638,640],{"class":485,"line":486},[483,624,500],{"class":489},[483,626,520],{"class":493},[483,628,629],{"class":493}," audit",[483,631,632],{"class":523}," --base",[483,634,635],{"class":493}," main",[483,637,524],{"class":523},[483,639,527],{"class":493},[483,641,530],{"class":523},[450,643,644,645,648,649,652,653,656],{},"Replace ",[457,646,647],{},"main"," with the correct comparison ref when the branch uses another\nbase. The ",[457,650,651],{},"--base"," option is an alias for ",[457,654,655],{},"--changed-since",".",[450,658,659,660,663,664,667,668,671,672,675],{},"The audit uses a new-only gate by default. It reports a ",[457,661,662],{},"verdict"," of ",[457,665,666],{},"pass",",\n",[457,669,670],{},"warn",", or ",[457,673,674],{},"fail",". A failed verdict blocks the audit command.",[450,677,678],{},"Use these fields to process the audit result:",[680,681,682,688,694,706,712],"ul",{},[683,684,685,687],"li",{},[457,686,662],{}," gives the quality gate result.",[683,689,690,693],{},[457,691,692],{},"summary"," gives category counts and severity information.",[683,695,696,537,699,544,702,705],{},[457,697,698],{},"dead_code",[457,700,701],{},"complexity",[457,703,704],{},"duplication"," give finding details when Fallow\nreports findings.",[683,707,708,711],{},[457,709,710],{},"attribution"," separates introduced findings from inherited findings.",[683,713,714,537,717,544,720,723],{},[457,715,716],{},"base_ref",[457,718,719],{},"head_sha",[457,721,722],{},"changed_files_count"," identify the audit scope.",[450,725,726,727,730],{},"Use ",[457,728,729],{},"--pretty"," when a person must read the JSON in a terminal:",[474,732,734],{"className":476,"code":733,"language":478,"meta":479,"style":479},"pnpm fallow audit --base main --format json --pretty\n",[457,735,736],{"__ignoreMap":479},[483,737,738,740,742,744,746,748,750,752],{"class":485,"line":486},[483,739,500],{"class":489},[483,741,520],{"class":493},[483,743,629],{"class":493},[483,745,632],{"class":523},[483,747,635],{"class":493},[483,749,524],{"class":523},[483,751,527],{"class":493},[483,753,754],{"class":523}," --pretty\n",[450,756,757],{},"Keep the JSON output unchanged when an agent or script consumes it. Use the\ndocumented Fallow fields instead of a repository-specific output format.",[466,759,761],{"id":760},"investigate-findings-before-deletion","Investigate findings before deletion",[450,763,764],{},"Treat an unused symbol or file as a lead for investigation. Check entry points,\ndynamic imports, package exports, and runtime configuration before deletion.",[450,766,767],{},"Inspect the file or trace the symbol with Fallow:",[474,769,771],{"className":476,"code":770,"language":478,"meta":479,"style":479},"pnpm fallow inspect --file \u003Cpath>\npnpm fallow dead-code --trace \u003Cpath>:\u003Csymbol>\n",[457,772,773,799],{"__ignoreMap":479},[483,774,775,777,779,782,785,789,792,796],{"class":485,"line":486},[483,776,500],{"class":489},[483,778,520],{"class":493},[483,780,781],{"class":493}," inspect",[483,783,784],{"class":523}," --file",[483,786,788],{"class":787},"scx8i"," \u003C",[483,790,791],{"class":493},"pat",[483,793,795],{"class":794},"sQ3_J","h",[483,797,798],{"class":787},">\n",[483,800,802,804,806,809,812,814,816,818,821,824,827,830,833],{"class":485,"line":801},2,[483,803,500],{"class":489},[483,805,520],{"class":493},[483,807,808],{"class":493}," dead-code",[483,810,811],{"class":523}," --trace",[483,813,788],{"class":787},[483,815,791],{"class":493},[483,817,795],{"class":794},[483,819,820],{"class":787},">",[483,822,823],{"class":493},":",[483,825,826],{"class":787},"\u003C",[483,828,829],{"class":493},"symbo",[483,831,832],{"class":794},"l",[483,834,798],{"class":787},[450,836,837],{},"Use type-aware symbol impact when a TypeScript symbol needs stronger evidence:",[474,839,841],{"className":476,"code":840,"language":478,"meta":479,"style":479},"pnpm fallow dead-code --type-aware --symbol-impact \u003Cpath>:\u003Csymbol>\n",[457,842,843],{"__ignoreMap":479},[483,844,845,847,849,851,854,857,859,861,863,865,867,869,871,873],{"class":485,"line":486},[483,846,500],{"class":489},[483,848,520],{"class":493},[483,850,808],{"class":493},[483,852,853],{"class":523}," --type-aware",[483,855,856],{"class":523}," --symbol-impact",[483,858,788],{"class":787},[483,860,791],{"class":493},[483,862,795],{"class":794},[483,864,820],{"class":787},[483,866,823],{"class":493},[483,868,826],{"class":787},[483,870,829],{"class":493},[483,872,832],{"class":794},[483,874,798],{"class":787},[450,876,877],{},"Do not delete an item only because Fallow labels it as unused.",[466,879,881],{"id":880},"preview-automatic-fixes","Preview automatic fixes",[450,883,884],{},"Fallow can propose changes to source files and dependencies. Preview every\nchange before you apply it:",[474,886,888],{"className":476,"code":887,"language":478,"meta":479,"style":479},"pnpm fallow fix --dry-run --no-create-config --format json --quiet\n",[457,889,890],{"__ignoreMap":479},[483,891,892,894,896,899,902,905,907,909],{"class":485,"line":486},[483,893,500],{"class":489},[483,895,520],{"class":493},[483,897,898],{"class":493}," fix",[483,900,901],{"class":523}," --dry-run",[483,903,904],{"class":523}," --no-create-config",[483,906,524],{"class":523},[483,908,527],{"class":493},[483,910,530],{"class":523},[450,912,913],{},"Review the proposed file and configuration changes. Apply a fix only after\nexplicit approval:",[474,915,917],{"className":476,"code":916,"language":478,"meta":479,"style":479},"pnpm fallow fix --yes --no-create-config --format json --quiet\n",[457,918,919],{"__ignoreMap":479},[483,920,921,923,925,927,930,932,934,936],{"class":485,"line":486},[483,922,500],{"class":489},[483,924,520],{"class":493},[483,926,898],{"class":493},[483,928,929],{"class":523}," --yes",[483,931,904],{"class":523},[483,933,524],{"class":523},[483,935,527],{"class":493},[483,937,530],{"class":523},[450,939,940],{},"Agents must keep the default workflow read-only. Agents must not apply a fix\nwithout explicit user approval.",[466,942,944],{"id":943},"configure-vs-code-diagnostics","Configure VS Code diagnostics",[450,946,947],{},"The Fallow VS Code extension is optional. Install it with:",[474,949,951],{"className":476,"code":950,"language":478,"meta":479,"style":479},"code --install-extension fallow-rs.fallow-vscode\n",[457,952,953],{"__ignoreMap":479},[483,954,955,957,960],{"class":485,"line":486},[483,956,457],{"class":489},[483,958,959],{"class":523}," --install-extension",[483,961,962],{"class":493}," fallow-rs.fallow-vscode\n",[450,964,965,966,969,970,973,974,977,978,656],{},"Open the repository root as the VS Code workspace. The extension checks\n",[457,967,968],{},"fallow.lspPath",", the local ",[457,971,972],{},"node_modules"," binary, and the system ",[457,975,976],{},"PATH"," in that\norder. The local binary uses the repository dependency and ",[457,979,459],{},[450,981,982],{},"If the extension does not find the local binary, set the path in workspace\nsettings:",[474,984,988],{"className":985,"code":986,"language":987,"meta":479,"style":479},"language-json shiki shiki-themes github-dark github-light","{\n  \"fallow.lspPath\": \"${workspaceFolder}\u002Fnode_modules\u002F.bin\u002Ffallow\"\n}\n","json",[457,989,990,995,1006],{"__ignoreMap":479},[483,991,992],{"class":485,"line":486},[483,993,994],{"class":794},"{\n",[483,996,997,1000,1003],{"class":485,"line":801},[483,998,999],{"class":523},"  \"fallow.lspPath\"",[483,1001,1002],{"class":794},": ",[483,1004,1005],{"class":493},"\"${workspaceFolder}\u002Fnode_modules\u002F.bin\u002Ffallow\"\n",[483,1007,1009],{"class":485,"line":1008},3,[483,1010,1011],{"class":794},"}\n",[450,1013,1014],{},"Do not add an MCP server or a Fallow Cloud integration for this local workflow.",[466,1016,1018],{"id":1017},"keep-policy-changes-explicit","Keep policy changes explicit",[450,1020,1021,1022,1024],{},"Keep Fallow analysis read-only by default. Change ",[457,1023,459],{}," only with an\nexplicit reason in the pull request.",[450,1026,1027],{},"This rule applies to:",[680,1029,1030,1033,1036,1039],{},[683,1031,1032],{},"new ignore patterns or ignored dependencies;",[683,1034,1035],{},"rule suppressions or lower rule severity;",[683,1037,1038],{},"wider duplication or complexity thresholds;",[683,1040,1041],{},"changes to production mode.",[450,1043,1044,1045,1048,1049,1052],{},"Some dependencies are required by a framework or bundler but have no direct\nsource import. Add these packages to ",[457,1046,1047],{},"ignoreDependencies"," only when the runtime\nor build requires them. Explain the reason in the change. For example, the\nMermaid integration requires ",[457,1050,1051],{},"cytoscape"," during the documentation build.",[450,1054,1055],{},"Describe the affected code, the reason for the policy change, and the plan to\nremove the exception when you add a suppression or widen a threshold.",[1057,1058,1059],"style",{},"html pre.shiki code .s-Z4r, html code.shiki .s-Z4r{--shiki-dark:#B392F0;--shiki-default:#6F42C1}html pre.shiki code .sg6BJ, html code.shiki .sg6BJ{--shiki-dark:#9ECBFF;--shiki-default:#032F62}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);}html pre.shiki code .s0DvM, html code.shiki .s0DvM{--shiki-dark:#79B8FF;--shiki-default:#005CC5}html pre.shiki code .scx8i, html code.shiki .scx8i{--shiki-dark:#F97583;--shiki-default:#D73A49}html pre.shiki code .sQ3_J, html code.shiki .sQ3_J{--shiki-dark:#E1E4E8;--shiki-default:#24292E}",{"title":479,"searchDepth":1008,"depth":1008,"links":1061},[1062,1063,1064,1065,1066,1067,1068,1069],{"id":468,"depth":801,"text":469},{"id":504,"depth":801,"text":505},{"id":578,"depth":801,"text":579},{"id":611,"depth":801,"text":612},{"id":760,"depth":801,"text":761},{"id":880,"depth":801,"text":881},{"id":943,"depth":801,"text":944},{"id":1017,"depth":801,"text":1018},{},"md",{},{"title":170,"description":452},"u0qt97Bj94_DHS8oY9R3jA4HLZNjVEoNdnf6ogLJV8Y",[1076,1077],{"title":166,"path":167,"stem":168,"children":-1},{"title":174,"path":175,"stem":176,"children":-1},1789777547545]