Show your work on a site
Mark what belongs on a site, and let the agent that builds it ask what changed.
1. The site is an ordinary product
2. Mark what belongs there
portfolio section, and stays there until you take it off.
3. Write the showcase text
portfolio-card inside the product. That is what a visitor reads.
summary. That field answers "why are we building this" for your team, and on a public page it reads as marketing while saying something you never meant to publish. When the card is missing, the answer says so in missing and puts nothing in its place.
4. Let the agent read it
list_site_entries | |
get_site_updates | |
get_site_card | portfolio-card text for one product |
get_site_updates is the one to poll. It reports removals as first-class updates, because a site that only ever hears about additions keeps showing what you withdrew - and nothing about that looks wrong from either end. It also reports edits to things already placed: a rewritten product does not change its placement at all, and its card is now out of date.
id.
What the site never sees
health, stage and status are not in the projection. They are internal judgements computed from incidents and gates, and "Critical" on an agency portfolio tells a visitor something you did not mean to say. The projection is an allow-list, so a field added to products later is absent until somebody decides to publish it.
Scopes
site:read to read all three tools. site:write exists for the placement routes, which are refused to agents regardless - so a working site agent needs site:read and the scopes for whatever it reads through its own tools (documents:read for a blog post, say).