6 10 min

Lawyer: privacy page and private data

Role
Lawyer
Outcome
A privacy page, and no private data in your repo
Time box
10 minutes

Your repo is public, so the Lawyer does two things before your site goes live. It takes private data out of your files, and it writes your privacy page (the page that says what your site does with visitors' data).

The privacy page comes from a template for a personal portfolio in the EU without tracking. It is not legal advice: if you sell services through your site or run it as a business, ask someone who knows the law in your country.

Is your goal freelance clients, or does your site sell services or show prices? Then the Lawyer also explains what the law asks of a commercial site:

Your repo is public, so your home address never goes into it. That leaves two options. One: a business address that may be public, such as a coworking space, added after the workshop. Two: a site that sells no services and shows no prices. The Lawyer adds no address and no VAT number itself.

Start the Lawyer

  1. In Antigravity IDE, start a new chat in the agent panel (the + button at the top of the panel).
  2. Check the model name under the chat box: it says Gemini 3.8 Flash. If not, click it and pick Gemini 3.8 Flash.

Then type:

Agent chat

Start the Lawyer step.

The Lawyer starts with the same "not legal advice" note you read above.

Private data first

The Lawyer runs the Check, whose search finds what looks like a phone number or a postal address, and a photo that still has the place where it was taken. Then it reads your content file and your design files itself, because a search cannot find everything. A date of birth or the names of family members do not look like numbers or streets.

For each finding, it shows you where it is and why it should go, and asks before it takes anything out. Say yes to remove it. Your email address stays: visitors need a way to reach you.

Why so strict? Anyone can read every file in a public repo, search engines too. And Git keeps every old version of a file, so a number you delete later is still in the history.

The privacy page

The Lawyer replaces the placeholder site/privacy.html with the template and fills in your name, your email address, your site's language and today's date. If your site is not in English, it translates the page.

The page promises five things: no cookies, no tracking and nothing loaded from other servers; who runs the site and how to reach them; that GitHub Pages logs visitors' IP addresses (the numbers that identify their internet connections); what happens with an email; and the visitor's rights. The Lawyer checks that your site keeps these promises.

Does your site show a photo? Then the privacy page gets a short section about it. The Lawyer also checks that the photo tool made it, so its hidden data is gone, and that it has alt text.

Check and read it

The Lawyer runs the Check again. Now every item passes:

What the Check prints (the end of it)

  PASS             Content file matches the schema
  PASS             Accessibility (the axe rules Lighthouse scores)
  PASS             No errors in the browser console
  PASS             What an agent sees: your content without JavaScript
  PASS             Privacy page written
  PASS             No phone number or postal address in the site

6 of 6 items pass.
This Check only reports. It never stops you from publishing.

Then it asks you to read the page: open the preview address in Chrome and click Privacy at the bottom of your site.

The Lawyer ends by sending you on: "The Lawyer is done. Start a fresh chat and ask for Ops: it publishes your site on GitHub Pages."

If something goes wrong

Ask your agent first. Start a fresh chat and type the question below. The agent reads your repo and tells you what is done and what comes next. Got an error message? Paste it into the chat, and it explains it.

Agent chat

Where am I?
The Lawyer wants to change my content in other ways

Fix: say no. The Lawyer only takes private data out. Other content changes belong to the Analyst, in a fresh chat.

"Privacy page written" still needs attention

Cause: a blank such as [[EMAIL]] is still in the page, often because your content file has no email address.

Fix: give the Lawyer an email address you are happy to show. Never a phone number or a postal address instead.

Fell behind?

When the Lawyer Block's time is up and you are not done: at the read-back already? Finish it in the same chat, then ask for Ops in a fresh chat. No privacy page yet? Then jump to the Lawyer's checkpoint. A checkpoint (the finished state of this Block) brings your site to where the room is. It keeps your own content file, design brief and spec. It also replaces your page and its stylesheet, site/index.html and site/assets/styles.css, with the Developer's finished version in the colours and fonts of your brief, so what your own Developer and QA built there is gone.

First stop the agent in your old chat, if it is still working: click the stop button in the agent panel. Otherwise it can keep changing files after the checkpoint has run.

Then, in Antigravity IDE, open a terminal (the window for typing commands) with the menu Terminal → New Terminal. It opens in your portfolio folder. Paste this command (Cmd+V on a Mac, Ctrl+V on Windows, Ctrl+Shift+V on Linux) and press Enter:

Terminal · same on Mac, Windows and Linux

node tools/checkpoint.mjs lawyer

It lists, file by file, what it kept and what it changed. The last lines tell you what to do next: start a fresh chat and ask for Ops. If it says Nothing to change, you were already there. Two Blocks behind? This one checkpoint is enough: it includes the earlier Blocks.

Or let the agent run it for you. Start a fresh chat and type:

Agent chat

Catch me up: the room just finished the Lawyer block.

The checkpoint writes your privacy page in English, with the name and the email address from your content file, and a section about your photo if you have one. Read site/content.json once yourself before you publish: no search finds a date of birth.

Use the Block that has just ended, not the one that starts now.