Gator can turn its understanding of your codebase into clear, visual documents for the people who decide what happens to it.

What Gator docs are for

Charters make this possible. They give the AI agent a deep, written understanding of the repository and its context, so it can explain the system accurately and at the level the reader needs.

Examples

Ask your agent for a Gator doc in plain words. Name the thing you want to understand, and say who will read it.

Create me a Gator doc for …

The agent reads the repository's charters and the code, then writes one standalone HTML document. It is not a chat answer and not a dump of source code. It is an explanation written for a person, with pictures.

How a Gator doc is made Four boxes from left to right, joined by arrows. "You ask: Create me a Gator doc for …". "The agent reads the charters and the code". "The agent writes one HTML document". "You review it in the Dashboard and in Git". You ask “Create me a Gator doc for …” Agent reads the charters and the code Agent writes one HTML document with diagrams You review ✓ in the Dashboard and in Git
Figure 1 — from a one-line request to a document you can read, review and keep.

The examples below show seven situations, the request a person makes, and the kind of document they get. All seven take place at an imaginary online store, so you can see how one team could use Gator docs across its work.

Example 1 · Explain a new feature

Suppose a developer at an online store has built product photo uploads, and the reviewers need to see how the new code and the new infrastructure fit together.

Create me a Gator doc for how product photo uploads work, code and infrastructure, for the review.
Product photo uploads: the path of a photo through code and infrastructure Step 1: the seller's browser asks the "Upload API" (code, api/uploads.py) for an upload. Step 2: the browser uploads the photo with a signed link to the "Photo bucket" (infrastructure, infra/storage.tf). Step 3: a new photo starts the "Resize function" (code, functions/resize/), which writes thumbnails. Step 4: the "CDN" (infrastructure, infra/cdn.tf) serves the files from the bucket. Step 5: shoppers' browsers load the photos from the CDN, through links on the "Product page" (code, web/product/). Seller's browser CODE Upload API api/uploads.py gives a signed link CODE Resize function functions/resize/ writes thumbnails CODE Product page web/product/ links to CDN files INFRA Photo bucket infra/storage.tf private, no public access INFRA CDN infra/cdn.tf caches for 30 days Shoppers' browsers ① ② ③ ④ ⑤ page with photo links
  1. Ask to upload. The seller's browser asks the Upload API for permission. The API checks the seller and returns a signed link that is valid for five minutes.
  2. Upload the photo. The browser sends the photo straight to the private photo bucket with that link. The photo never passes through the API servers.
  3. Make thumbnails. Each new photo starts the resize function, which writes three smaller sizes back to the bucket.
  4. Serve through the CDN. The CDN reads the files from the bucket and keeps copies close to shoppers.
  5. Show the photos. The product page links to the CDN files, so photos load quickly everywhere.

The feature changed application code and infrastructure in the same piece of work. A reviewer who reads only the code sees an API endpoint and a function. A reviewer who reads only the Terraform files sees a bucket and a cache rule. The document joins the two halves into one path that a person can follow.

Labelled diagrams, linked to the source. Every box says in words whether it is code or infrastructure, and names the file or folder that defines it. Every arrow has a step number that matches the list. Nothing depends on colour alone, so a reader can check each part of the picture against the code.
Example 2 · Explain code

Suppose an engineer at an online store must explain why a customer's card was charged a few seconds late.

Create me a Gator doc for the payment service's retry logic.
Retry logic: a charge is retried with growing waits, then sent to a dead-letter queue Top row: "Checkout" sends a charge to "Retry policy", which makes an attempt at "Payment provider". Below, a timeline: attempt 1 fails at 0 seconds, attempt 2 fails after 1 second, attempt 3 fails after 2 seconds, attempt 4 succeeds after 4 seconds. If all 5 attempts fail, the charge goes to the "Dead-letter queue" and the on-call engineer is alerted. Checkout orders/checkout.py Retry policy payments/retry.py Payment provider external API charge attempt The wait doubles after each failure ✗ attempt 1 0 s ✗ attempt 2 wait 1 s ✗ attempt 3 wait 2 s ✓ attempt 4: charged wait 4 s Dead-letter queue payments-dlq on-call is alerted if all 5 attempts fail

The document answers in one picture: which code decides to retry, how long it waits, how many times it tries, and where a charge goes when every attempt fails. The text names the settings and the tests that pin them.

Reviewed and versioned in Git. The document is committed like any other change. When someone changes the retry limit, the same commit updates the document, and Git shows who changed it, when, and why.
Example 3 · Explain a procedure

Suppose the store's release manager is asked for a visual of the release procedure, for the engineer who will run the next release.

Create me a Gator doc for our release procedure.
Release procedure: branch, build, test, promote, tag Five boxes from left to right: "Release branch", "Build candidate", "Smoke tests", "Promote", "Release, done: tag v2.4.0 and announce". If the smoke tests fail, an arrow labelled "tests fail: fix, then rebuild" goes back to "Build candidate". Release branch release/2.4 Build candidate CI builds 2.4.0-rc1 Smoke tests on staging Promote same build, no rebuild Release ✓ tag v2.4.0, announce tests fail: fix, then rebuild
  1. Cut the release branch. Create release/2.4 from main. From now on, only fixes go to this branch.
  2. Build a candidate. CI builds 2.4.0-rc1 and stores it. A failed smoke test means a new candidate, never a patched one.
  3. Run the smoke tests on staging. If one fails, fix it on the branch and build the next candidate.
  4. Promote the tested build. Production gets the same files that passed the tests. Nothing is rebuilt.
  5. Tag and announce. Tag v2.4.0 and post the release notes.
Readable prose. Short, direct sentences explain what each step does and why. A person who has never released the product can follow it on the first try.
Example 4 · Record a decision

Suppose someone at the store asks, a year later, why the team chose Postgres for its event store.

Create me a Gator doc for why we chose Postgres for the event store.
OptionOperationsQueriesDecision
PostgresA database we already run and back upFull SQL over events✓ Chosen
DynamoDBA new service to learn, monitor and pay forKey lookups onlyRejected
Files in GitNothing to runNo queriesRejected

The document shows the options, the trade-offs and the choice, and gives the reason in words: the team already runs Postgres well, and reporting needs real queries. It also says what would make the team decide again.

The reason lives with the code. A decision made in a meeting or a chat thread is soon lost. A Gator doc is a file in the repository, beside the code it explains, so the next person finds the reason where they look for it.
Example 5 · Discuss a feature before it exists

Suppose an architect at the store wants to propose a bulk-export feature and review it with the platform team.

Create me a Gator doc for how a bulk-export feature could work, for review with the platform team.
Proposed bulk export: new parts marked NEW, beside parts that exist today Top row: "Admin page" (exists) goes to "Export API" (NEW), then "Job queue" (exists), then "Export worker" (NEW), then "Object storage" (exists). Object storage goes down to "Email with download link" (NEW). Below the Export API, an open question: "How large can one export be?", to decide with the platform team. Admin page exists today NEW Export API POST /exports Job queue exists today NEW Export worker writes a CSV file Object storage exists today NEW Email with download link ? Open question How large can one export be? decide with the platform team Dashed border and NEW: proposed. Solid border: exists today.

Nothing is built yet. The agent knows the parts that exist from the charters, so the proposal reuses the job queue and the object storage, and shows only three new parts. It lists the options it considered, what each one would change, and the questions the team must answer first.

Made for working with other architects. The proposal is a standalone page. Open it in the Dashboard, or send it to the platform team before the meeting. Their comments go back to the agent, which revises the document. When the team agrees, the document becomes the plan.
Example 6 · Draw the network and its security boundaries

Suppose the store's security team must show a PCI DSS auditor how card data moves through the system, and where every security boundary is.

Create me a Gator doc for how card data flows through our network, with every security boundary, for the PCI audit.
Network diagram: data flows and security boundaries for card payments Boundaries: the untrusted internet; the production VPC with a public subnet, a private app subnet, a private data subnet and the PCI zone for card data; a separate security account; and the payment provider on the internet. Data flows, drawn solid: shoppers reach the CDN and web application firewall, then the load balancer in the public subnet. Orders go to the API service, which sends order events to the order worker and reads and writes the orders database. Card details go from the load balancer straight to the payment service in the PCI zone. The payment service stores card numbers in the token vault, returns only tokens and status to the orders database, and reaches the payment provider only through the egress firewall over mutual TLS. The orders database is backed up nightly to the backup vault. Security flows, drawn dashed: the token vault gets encryption keys from key management in the security account; the order worker reads secrets from the secrets manager; flow and audit logs go to the log archive in the security account; engineers sign in through the access proxy with single sign-on and multi-factor authentication, and have read-only access to the orders database. INTERNET · UNTRUSTED PRODUCTION VPC infra/network.tf PUBLIC SUBNET APP SUBNET · PRIVATE DATA SUBNET · PRIVATE PCI ZONE · CARD DATA SECURITY ACCOUNT PARTNER · INTERNET Shoppers browsers and app Engineers on laptops CDN + WAF blocks attacks Access proxy SSO + MFA Load balancer TLS ends here API service orders, accounts Order worker writes orders Orders database Postgres, encrypted Backup vault nightly, encrypted Payment service returns tokens only Token vault card → token Egress firewall allow-list Key management HSM, keys stay here Log archive flow and audit logs Secrets manager read at start-up Payment provider mTLS, allow-listed orders card details (TLS) order events encryption keys read-only Data flow. Every connection uses TLS. Security flow: keys, secrets, logs, admin access. PCI zone. Card numbers never leave it. Network or account boundary.

The auditor's first question is where card numbers can go. The picture answers it: card details enter the PCI zone directly from the load balancer, the token vault keeps them, and only tokens cross back out to the orders database. The only way out to the internet is the egress firewall, and it allows one destination, the payment provider. The keys and the logs live in a separate security account, so a person with access to production cannot read the keys or delete the evidence.

Solid arrows carry data. Dashed arrows carry keys, secrets, logs and access, which is what auditors and security reviewers check next. The text under the diagram lists each boundary with the rule that enforces it: the route table, the security group, or the account policy.

Drawn from the code, not from memory. The agent builds the diagram from the infrastructure files and the application code that the charters describe. Each boundary in the picture is a real boundary in the code: a subnet, a route table, a security group, or a separate account. When the network changes, the same request brings the diagram up to date.
Example 7 · Report progress

Suppose the store's engineering lead must report this month's progress to the leadership team.

Create me a Gator doc for this month's progress, for the leadership team.

Two of five goals are done. Bulk export is on schedule. The event-store upgrade is at risk, and the second region needs a decision this week.

Failed card charges, % of all charges
Failed card charges by month May 2.1%, June 2.2%, July 2.0%, August 2.1%. The new retry logic shipped at the start of September. September 0.9%, October 0.4%. 0% 1% 2% May: 2.1% of charges failed May Jun: 2.2% of charges failed Jun Jul: 2.0% of charges failed Jul Aug: 2.1% of charges failed Aug Sep: 0.9% of charges failed Sep Oct: 0.4% of charges failed Oct 2.1% 0.4% new retry logic

After the retry logic shipped, failed charges fell by four fifths.

Work done per goal
Share of work done for each goal Safer card payments 100%. Faster checkout page 100%. Bulk export 60%. Event-store upgrade 35%. Second region not started. 0 50% 100% Safer card payments Safer card payments: 100% done 100% Faster checkout page Faster checkout page: 100% done 100% Bulk export Bulk export: 60% done 60% Event-store upgrade Event-store upgrade: 35% done 35% Second region not started

Bars show progress only. The table below gives each goal's status in words.

GoalStatusWhat it means
Safer card payments✓ DoneFailed charges fell from 2.1% to 0.4% after the new retry logic.
Faster checkout page✓ DoneThe page loads in 1.2 s, down from 2.8 s.
Bulk export for customers◐ In progressDesign approved. About 60% built. On schedule for next month.
Event-store upgrade⚑ At riskWaiting for a maintenance window from the database team.
Second region? DecisionApprove the hosting budget so work can start next quarter.

The agent reads the commits, the charters and the open work in the repository, then writes for people who will not read code: goals instead of file names, outcomes instead of changes. The charts show the trend and the progress at a glance; hover a bar to see its value. Each status in the table is a word and a symbol, not only a colour.

Easy to share. A Gator doc is one self-contained HTML file. Attach it in Microsoft Teams, email or chat, and it opens in any browser exactly as it looks in the Dashboard. Nothing is lost on the way.

Keep it up to date

A Gator doc stays beside what it explains, so it is easy to check.

When the code changes, or whenever you are not sure, ask the agent:

Is this document up to date? If not, please update it.

The agent compares the document with the charters and the code, tells you what has changed, and updates the document. The update is a commit like any other, so you can see exactly what changed in the document and why.

Addendum: Cumberland style HTML communication

Every Gator doc uses the Cumberland style, a design template built into Gator. You do not need to ask for it.

The template ships with Gator in .gator/.includes/reference-notes/. The agent starts each Gator doc from it, so every document looks and reads the same way, in every repository, whichever AI model writes it.