---
title: "AI Agent Governance for Small Business: Controls and Tests."
description: "Build AI agent governance for a small business. Define jobs, sources, capability limits, approval rules, stopping points, tests, receipts, and recovery."
canonical: "https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business"
date: "2026-08-21"
modified: "2026-09-19"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# The Complete Small-Business Guide to AI Agent Governance.

The sales assistant drafts a follow-up for the right prospect, attaches the wrong client's example, and sends before the owner sees it. The team spends the afternoon explaining whether the model, the automation, or the employee was responsible.

The useful answer is visible in the system: nobody gave the agent a bounded job, a client source boundary, a send gate, or a receipt. The workflow could generate language and operate an account. It could not show where preparation ended and authority began.

AI agent governance in a small business is the operating design that assigns a job, allowed sources, tools, approval owners, stopping rules, tests, and evidence. It should fit in files a small team can read. Governance is not a policy binder added after deployment. It is the set of controls enforced where the work executes.

Start with one recurring result. Do not write a company-wide agent constitution before one job can pass a fixture and stop safely.

## Define the agent by its job

An agent is not a digital employee with general authority. In a small operation, treat it as a bounded workflow that can prepare one named result from approved sources with limited capabilities.

The practical definition in [what an AI agent is in a small business](/articles/what-is-an-ai-agent-in-a-small-business) keeps the unit of governance small. The companion guide to [giving every agent a job, sources, and a stopping point](/articles/give-every-agent-a-job-sources-and-stopping-point) turns that definition into a task contract.

Create one file:

```yaml
# agents/weekly-lead-followup/job.yaml
agent_id: weekly-lead-followup
business_id: north-company
job: prepare follow-up drafts for leads assigned this week
reader: sales owner
allowed_sources:
  - crm-export/assigned-leads.json
  - offers/current.md
  - corrections/accepted.md
tools:
  read:
    - scoped_file_reader
  write:
    - draft_writer
forbidden_capabilities:
  - email_send
  - crm_write
  - calendar_booking
output: drafts/weekly-lead-followup/
approval_owner: sales owner
stopping_point: drafts, review packet, and receipt written
```

Use one term for the result. If the job says "prepare drafts," success does not include sending them. If the system can send, the send capability needs a separate rule even when the same model prepares the text.

## Name sources and their roles

An agent needs more than file access. It needs a reading contract.

The contract names which records are current facts, which decisions override older material, which examples govern format only, and which archives are evidence only. It also states freshness and conflict behavior.

```yaml
# agents/weekly-lead-followup/context.yaml
source_roles:
  crm-export/assigned-leads.json: current lead facts
  offers/current.md: approved offer claims and price
  examples/accepted-followup.md: structure only
  corrections/accepted.md: accepted language and exclusion rules
  archive/: evidence only, never current by default
freshness:
  assigned-leads.json: 24 hours
  offers/current.md: review on change
conflict_rule: stop when current sources with equal authority disagree
missing_required_source: SOURCE_MISSING
stale_required_source: SOURCE_STALE
```

This pattern protects the agent from confident improvisation. It also protects the business from a polished old sample. The article on [what context an agent should read](/articles/what-context-should-an-agent-read) shows how to select the smallest sufficient packet.

Keep untrusted content separate from governing instructions. An email, web page, uploaded document, or retrieved note can contain text that tells the model to ignore its task. The testing guide for [prompt injection in business files](/articles/test-ai-agent-prompt-injection-business-files) treats those strings as data, constrains tool access, and checks whether the agent follows the higher-authority job contract.

## Separate contexts before retrieval

Resolve business, client, role, and destination before reading sources. The North job must not retrieve South records, even if its final draft hides them.

Use [business and client isolation tests](/articles/separate-business-contexts-ai-agents) to check retrieval logs, canary exclusion, credential identity, output paths, and the intended recipient. Keep the full fixture with that boundary procedure so it has one maintained version.

## Inventory capabilities, not vague permissions

List what the workflow can do in the environment where it runs. "Read and write" is too broad. Name file paths, APIs, accounts, destinations, and methods.

Preparation capabilities might include reading a scoped export, writing a draft file, and running a local test. Consequential capabilities include sending a message, publishing a post, changing a CRM record, booking a meeting, creating an account, deleting data, spending money, or deploying code.

Grant only what the current stage needs. If the job ends at a draft, do not give the process a send credential. A prompt that says "do not send" is weaker than an environment where no send capability exists.

Use separate identities or keys when the provider supports them. Keep secrets outside agent-readable business memory. The job file may name the secret reference and approved account, but it should not contain the value.

## Build the approval matrix around consequence

Approval belongs at the capability that creates the consequence. The drafter may prepare a message. The sender should require an authorization record that binds exact content, recipient, account, and expiry.

The [AI agent approval matrix](/articles/ai-agent-approval-matrix) maps action classes to owners, evidence, and execution authority. [Who approves what an AI agent sends](/articles/who-approves-what-an-ai-agent-sends) applies the rule to emails, posts, bookings, payments, and record changes.

Write the authorization as data:

```yaml
# approvals/APR-2026-0821-004.yaml
approval_id: APR-2026-0821-004
action: email_send
account: sales@north.example
recipient: prospect@example.com
content_hash: sha256:29b0...
approved_by: sales-owner
approved_at: 2026-08-21T14:05:00-04:00
expires_at: 2026-08-21T15:05:00-04:00
max_executions: 1
status: unused
```

The executor checks every field. It rejects a changed recipient, changed content hash, wrong account, expired record, or reused approval. After execution, it records the provider response and marks the authorization consumed.

This approach avoids approval theater. A generic "approved" message should not authorize whatever happens to be in the draft folder later.

## Design normal and early stopping points

Every job needs a normal finish and named early stops.

The normal stop may be "drafts, review packet, and receipt written." Early stops should cover missing sources, stale sources, conflicting authority, failed scope, failed test, unavailable tool, unresolved recipient, expired approval, and attempted capability expansion.

The [twelve stopping-rule examples](/articles/ai-agent-stopping-rules-examples) show how to leave a useful artifact for each condition. A stop is not a vague refusal. It names the reason, evidence, completed safe work, unresolved requirement, and next owner.

```yaml
# receipts/WLF-2026-08-21-01.md
run_id: WLF-2026-08-21-01
status: blocked
stopping_rule: SOURCE_STALE
job: weekly-lead-followup
safe_work_completed:
  - validated client scope
  - loaded current correction rules
blocked_on: crm-export/assigned-leads.json is 31 hours old
required_freshness: 24 hours
external_actions: []
next_owner: sales-operations
resume_condition: replace export and start a new run
```

Do not resume invisibly in the same run after a consequential input changes. Start a new run with a new receipt so reviewers can distinguish the blocked attempt from the completed attempt.

## Test before production access

A model demonstration is not an acceptance test. Use fixtures with expected outcomes.

The guide to [testing an AI agent before production](/articles/test-an-ai-agent-before-production) covers normal inputs, adversarial inputs, dry runs, permission checks, and recovery. At minimum, test:

- a normal result from current sources;
- a missing required source;
- a stale source;
- two equal-authority sources that conflict;
- cross-client contamination;
- untrusted content containing instructions;
- an unavailable tool;
- a changed recipient after approval;
- a duplicate execution request;
- a failed write followed by rollback or safe retry.

Use exact expected states:

```text
# tests/approval-binding.fixture
GIVEN APR-2026-0821-004 approves recipient prospect@example.com
AND approved content hash is sha256:29b0...
WHEN executor receives recipient other@example.com
THEN send count is 0
AND status is blocked
AND stopping_rule is APPROVAL_MISMATCH
AND approval remains unused
AND receipt records expected and received recipient
```

Test the capability boundary, not only the model response. If the model says it stopped while the sender still executed, the control failed.

## Test duplicate runs and recovery

A timeout can mean the effect occurred but confirmation was lost. Reconcile the external state before retrying. Give each approved action a stable idempotency key and return the existing result for a verified replay.

Run the [idempotency and retry fixtures](/articles/test-ai-agent-idempotency-and-retries), then document the [rollback or compensation path](/articles/ai-agent-rollback-plan). A sent message may require human follow-up; an apology is not rollback.

## Make receipts part of the output contract

Every terminal state needs a receipt, including success, failure, blocked, and no-work states.

A useful receipt records the run ID, job and scope, source paths and versions, tools used, tests run, files written, approval checked, external action result, and stopping state. The [AI agent run receipt template](/articles/ai-agent-run-receipt-template) offers a stable vocabulary. [The receipt is part of the output](/articles/receipt-is-part-of-the-output) explains why a result without evidence forces the reviewer to reconstruct the run.

Store receipts where the owner can access them without the model vendor. Avoid putting sensitive source contents in the receipt. Record paths, identifiers, hashes, decisions, and results.

Review receipts by exception and sample normal runs. A small team should not read every token from every run. It should see failed tests, blocked states, approval mismatches, changed capabilities, and reliability trends.

## Assign governance roles a small team can hold

A small business may have one person filling several roles. The roles still need names because each decision has a different purpose.

The job owner decides what result the workflow should produce. The source owner decides which record is current for a field or process. The capability owner controls an account, credential, or execution path. The approval owner authorizes a specific consequential action. The reviewer checks outputs and receipts. The operator responds to blocked and failed runs.

One owner may hold all six roles at first. Record them separately anyway. This reveals where an employee, contractor, or vendor has silent authority. It also makes later delegation precise. A new reviewer should not inherit permission to change the offer record or activate the sender merely because all three actions used to belong to the founder.

Create a short responsibility file. For each role, name the person or business function, backup, allowed decisions, unavailable periods, and escalation route. When no current owner exists, affected work should stop. An agent cannot solve absent accountability by appointing the most convenient person.

Review role assignments after hiring, termination, leave, vendor change, account migration, and incident response. Remove stale access through the system that grants it. Updating a YAML owner field does not revoke a token.

## Put change control around the agent contract

Every change to the job, source list, model, adapter, tool, credential scope, approval rule, or stopping condition can alter behavior. Treat these as governed configuration.

Record a change request with the reason, affected files, expected effect, risk class, fixtures to run, rollback path, reviewer, and acceptance result. A wording edit to an output heading may need a narrow fixture. Adding CRM write access needs capability tests, authorization binding, rollback analysis, and explicit activation.

Use a sequence that a reviewer can follow:

1. Capture the current accepted version and recent passing receipt.
2. Make the change in a non-production path.
3. Run the existing regression set.
4. Add a fixture for the new behavior or risk.
5. Review the diff, outputs, and capability evidence.
6. Accept or reject the change.
7. Promote through the normal deployment or configuration path.
8. Run a bounded production smoke test and save its receipt.

Code present in a repository does not prove the running workflow uses it. The promotion receipt should name the deployed version, environment, test, and time. If the system is configured through a vendor dashboard, capture an export, API response, or other runtime evidence that the accepted setting is live.

## Monitor for behavior drift and control drift

Model behavior can change after a model update. Source schemas can change. An API can add fields or alter defaults. A credential can gain broader access. A reviewer can begin approving without reading. Governance therefore needs periodic checks at the job and capability layers.

Run fixed fixtures against the current production configuration on a schedule proportionate to consequence. Compare terminal status, source use, required fields, and action counts. Do not require identical prose unless exact wording is part of acceptance.

Separately inspect capability drift. List the accounts and tools available to the runtime. Compare them with the job contract. Test that denied paths and methods remain denied. Verify that disabled executors remain disabled. Review approval logs for reuse, expiry failures, destination changes, and unexplained overrides.

Use canaries for boundaries. A cross-client marker can reveal retrieval leakage. A synthetic stale record can prove freshness handling. A duplicate execution key can prove retry protection. Keep these fixtures out of live customer work and label them clearly.

Drift checks should produce `PASS`, `FAILED_TEST`, or a named blocked state. Silence is not proof of health. A scheduled job with nothing to do should write a no-work receipt that names what it inspected.

## Handle incidents as corrections to the system

When an agent produces a wrong result or attempts an unauthorized action, preserve evidence before changing prompts. Record the run ID, versions, sources, tool calls, approvals, output, external effects, and detection method. Contain any live capability that can repeat the incident.

Classify the failure. The source may be wrong or stale. Retrieval may have crossed scope. The brief may be ambiguous. The model may have ignored an instruction. The executor may have failed to enforce approval. The reviewer may have accepted a mismatch. Each class requires a different repair.

Fix the canonical rule or enforcing component. Add a fixture that reproduces the failure. Rerun from a clean state. Record whether earlier outputs or external records need correction. Then decide whether to restore the capability.

Do not hide incidents inside prompt revisions. A prompt change without a regression fixture can produce the same failure through another route. The incident record should connect detection, containment, cause, correction, test, acceptance, and restoration.

NIST's AI RMF Core organizes governance, mapping, measurement, and management as continuing functions. A small team can apply that operating idea without adopting a heavy compliance program: assign owners, understand the job and harms, measure with fixtures and receipts, then manage changes and incidents. [NIST AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/)

## Measure reliability by the job

Measure the job's observable contract: source correctness, denied-action enforcement, duplicate count, accepted corrections, and complete receipts. Count false success separately from explicit blocked results.

Use the [AI agent reliability scorecard](/articles/ai-agent-reliability-metrics-small-business) for definitions and calculation. Retest after changes to the job, model, adapter, source, or capability. Historical results do not transfer automatically.

## Prevent approval fatigue without surrendering control

Allow authorized reads, validation, and local drafting without repeated prompts. Present consequential actions with their exact content, destination, account, and expiry.

The [approval-fatigue procedure](/articles/prevent-ai-agent-approval-fatigue) covers review batches, sampling, escalation, and hard gates. Keep action authorization at execution so fewer prompts do not become broader permissions.

## Decide when the workflow should stay manual

Some work is a poor agent job. Keep it manual when the source record is weak, the case is rare, judgment is the result, errors carry high cost, safe testing is unavailable, or rollback is impossible.

The agent can still prepare evidence, identify missing records, or draft options. It should not turn the most sensitive decision into an automated step because the surrounding preparation is automatable.

Use [when an AI workflow should stay manual](/articles/when-an-ai-workflow-should-stay-manual) for the evidence threshold. Use [when not to use AI agents](/articles/when-not-to-use-ai-agents) to choose among a deterministic automation, an assistant, an agent, and a manual process.

## Approval and stopping boundary

Governance design may inventory jobs, sources, tools, accounts, and existing permissions. It may write task contracts, manifests, fixtures, dry-run outputs, approval schemas, and receipts. It may test with synthetic data and read-only access.

It stops before enabling a disabled automation, granting credentials, widening file or account access, sending external messages, publishing, booking, purchasing, deleting, deploying, or changing live records. Each such capability needs an exact owner, destination or target, scope, evidence, expiry where relevant, and execution receipt.

The agent stops when scope is missing, authority conflicts, evidence is stale, a required test fails, the requested action exceeds its job, or approval does not match the proposed action. The blocked receipt is the deliverable.

## Where to start

Choose the smallest step that reaches a testable result.

1. Pick one recurring job and write its `job.yaml`.
2. Name the source roles and the freshness rule for that job.
3. Remove every capability the job does not need. If the job ends at a draft, no send credential exists.
4. Write one normal fixture and one early-stop fixture. Run both.
5. Save the receipt from each run where the owner can read it.

Do not add a second job until the first one passes its fixtures and stops safely. That order holds whether you do the work yourself or hire it out.

## Sources

- [NIST AI Risk Management Framework](https://www.nist.gov/itl/ai-risk-management-framework)
- [NIST AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/)
- [OWASP Top 10 for Large Language Model Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/)


## Questions about The Complete Small-Business Guide to AI Agent Governance

### Who owns AI agent governance at your company, and do you actually have controls in place?

Assign named roles for the workflow owner, source owner, approver, system owner, and incident owner, even when one person holds several roles. Put controls at the capabilities that retrieve, write, send, publish, spend, delete, or change live records.

### Is anyone actually enforcing AI governance, or just writing policies?

Turn the policy into executable source limits, capability limits, approval rules, stopping conditions, tests, and receipts. A written rule alone does not enforce which records an agent can read or which external actions it can take.

### Has an agent ever done something in production that surprised you?

Treat a surprising action as evidence that the contract, capability gate, test set, or monitoring path is incomplete. Freeze the affected action, preserve the receipt and external state, correct the governing rule, and add a fixture that reproduces the failure.

## Save the visual summary

Define the agent by its job | Name sources and their roles | Separate contexts before retrieval | Build the approval matrix around consequence | Test before production access

[Download the PNG](/infographics/ai-agent-governance-guide-small-business-1200x1500.png)


## Related: Agent Governance

- [An AI Agent Approval Matrix for Small Teams](/articles/ai-agent-approval-matrix)
- [Who Approves What an AI Agent Sends?](/articles/who-approves-what-an-ai-agent-sends)
- [ChatGPT Custom Instructions Are Not Hard Constraints: Build a Testable Control Instead](/articles/chatgpt-custom-instructions-not-hard-constraints)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
