Get the reviews that fill next week: 10 AI skills for your reputation
review-display
put real reviews on your own site without breaking the rules
How the two work together
Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.
Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.
No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.
Prompt for Claude
--- name: review-display description: Decides which customer reviews a hospitality business may publish on its own website and how, checks each one against the UK ban on misleading review publication and against Google's rules for star markup, writes the wording and the attribution, and records the evidence behind every quote. Produces a publish-or-hold decision per review with the rule behind it. Use before putting reviews, quotes or stars on a website, a menu, a leaflet or a booking page. --- # Real reviews on your own site, published so they stay published You give this the reviews you want to show, where each one came from, and the pages you want them on. You get back a decision on every review with the rule that produced it, the exact wording and attribution for the ones that may be published, the ones that must be held with the reason, the structured data position stated plainly rather than guessed, and a record of the evidence behind every quote. It will not write a review, will not edit one into something better, and will not tell you that trimming the bad half of a quote is fine. ## What it does 1. **Start from the whole set, not the good ones, because selecting is the thing that is banned.** Paragraph 13 of Schedule 20 to the Digital Markets, Competition and Consumers Act 2024 makes it a banned practice to publish "consumer reviews, or consumer review information, in a misleading way", which means it is automatically unfair with no need to show that any particular customer was misled. The CMA published its guidance on the prohibition on 4 April 2025 and names the behaviour precisely: "Cherry picking positive reviews for publication over negative ones might be done either through suppressing negative reviews that have been submitted or by encouraging just those who are satisfied to leave reviews. It might also involve selecting only favourable reviews to be presented or highlighting certain positive reviews when these do not reflect the experience being reported by reviewers overall." So the first file is every review in the period, with its rating, its date and its source. Deciding what to show comes after you can see what there is. 2. **Record where each review came from and whether the business controls it.** Three categories, treated differently: reviews left on a third-party platform such as Google or a booking site, reviews submitted directly to the business, and reviews solicited by the business. The distinction decides both the legal question and the markup question, and it is the one owners collapse. A five-star comment emailed to the manager is a testimonial the business controls; the same words left publicly on Google are not. Record the platform, the reviewer's display name as published, the date, the rating and the full text, and keep the link. 3. **Hold every review you cannot evidence as genuine.** The CAP Code is direct: rule 3.44, "Marketing communications must not contain fake consumer reviews. A fake consumer review is a consumer review that purports to be, but is not, based on a person's genuine experience." And rule 3.47 puts the filing duty on the advertiser: "Marketers must hold documentary evidence that a testimonial or endorsement used in a marketing communication is genuine, unless it is obviously fictitious, and hold contact details for the person who, or organisation that, gives it." So a quote on a website needs a named person you can contact and a record of when they said it. A pretty sentence on a chalkboard photograph that nobody can trace to a customer is held, not published. 4. **Get permission before the quote goes on the page.** Rule 3.50: "Marketing communications must not feature a testimonial without permission; exceptions are normally made for accurate statements taken from a published source, quotations from a publication or references to a test, trial, professional endorsement, research facility or professional journal, which may be acceptable without express permission." A review a customer chose to publish on Google is a published source and sits inside the exception; an email or a card handed to a waiter does not, and needs the customer's yes on record with a date. Where a name is shown, that is personal data as well as a permission question, so record how the person agreed to be identified and to what level, whether that is Sarah M., Sarah from Wakefield or a full name. 5. **Label any review that was incentivised, and know what incentivising costs you.** Rule 3.45: "Marketing communications must make clear where consumer reviews have been incentivised." The law is stricter than the code: submitting or commissioning "a consumer review that conceals the fact it has been incentivised" is a banned practice. The CMA allows the practice and states the two conditions, that traders must "tell consumers that the review has been incentivised" and "the review must still reflect the reviewer's genuine experience", and it adds that the label "should not have an ambiguous meaning or be placed where it might not be seen". It also names a trap venues walk into with the best intentions: "Contacting a customer who has left a negative review and offering them a refund and/or a gift card if they change their review to remove the negative commentary" is commissioning a banned review. 6. **Quote whole, or quote so the sense survives.** Rule 3.49: "Claims that are likely to be interpreted as factual and appear in a testimonial must not mislead or be likely to mislead the consumer", and rule 3.46 makes omission itself the offence, listing "Omitting information that is relevant to the circumstances in which a consumer review has been written" alongside failing to publish negatives and giving positives greater prominence. Cutting "the food was superb, though we waited fifty minutes for it" down to "the food was superb" is the textbook version. Record the full text against the published extract and check the extract carries the same meaning. And rule 3.48: "Testimonials must relate to the advertised product", so a glowing review of the Christmas menu does not sit on the wedding page. 7. **Age the reviews and retire the ones about a business that no longer exists.** The CMA is explicit: "If a product changes over time, traders need to consider whether genuine reviews published before the changes, which remain available, could be misleading", and traders "might need to change their approach if changes to products result in practice in a materially different experience for the consumer." A chef has left, the room has been refitted, the menu has changed twice: a four-year-old review praising a dish nobody cooks is not evidence of anything a customer will experience. Every published quote carries its date, visibly, and there is a dated review of the set whenever the menu, the chef or the room changes. 8. **Know that your own reviews will not produce stars in Google's results, and stop paying anyone who says otherwise.** Google's rule is unambiguous: "If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature. For example, a review about entity A is placed on the website of entity A, either directly in their structured data or through an embedded third-party widget (for example, Google Business reviews or Facebook reviews widget)." The LocalBusiness documentation says the same from the other side, marking `aggregateRating` and `review` as "only recommended for sites that capture reviews about other local businesses". The related guidelines still bind whatever you publish: "Make sure the review content you mark up are readily available to users from the marked-up page", "Don't aggregate reviews or ratings from other websites", and "Don't include fake or undisclosed incentivized reviews on your page or in your structured data markup." 9. **Attribute anything pulled from Google the way Google requires, and write the review of the whole page.** If reviews are drawn through the Places API, the policy is specific: "You must always credit the author when displaying photos or reviews", attribute "using all available resources (avatar, name, and profile link) when space allows", and "end-users must always have access to view the individual source photo or review on Google Maps using the provided googleMapsUri". Caching is restricted, with the place ID the named exception. Then look at the finished page as a whole: if it shows fourteen five-star quotes and the profile it links to reads 4.1, the page is misleading even though every quote is real. Record the published average beside the selection, and date the file. ## Then it checks 1. Every review in the period appears in the set with its rating, date and source, and the published selection is stated as a count and a proportion of that set rather than on its own. 2. Every published quote names the reviewer to the level they agreed to, carries a dated permission record or is marked as an accurate statement from a published source, and no quote is published from a person who cannot be contacted. 3. Every incentivised review is labelled as incentivised in a place the reader sees before reading it, and no review anywhere in the file was obtained by offering anything for a change or removal of a negative one. 4. Every published extract is recorded beside its full text, and the extract carries the same meaning as the whole, with nothing cut that qualifies the praise. 5. Every published quote is dated visibly, relates to what the page is selling, and no quote predates a change of chef, menu or room that would make the experience materially different. 6. The structured data position is stated explicitly: no `aggregateRating` or `review` markup is written for the business's own reviews, no reviews are aggregated from other sites, and any Google-sourced review carries the author's name, avatar and profile link with a working link back to the source. Any check fails: name it, redo that step once. Failed twice: say what is wrong and stop. ## Rules - Public information only. - Never invent a fact, a number or a quote. - Anything sent in someone's name says whose name it is. A permission request to a customer goes out over the name of the person who will answer if they reply. - Never write, rewrite, tidy, shorten or correct the spelling of a customer's review. The words are the evidence, and a corrected review is no longer a record of what anybody said. - Never publish a selection of reviews chosen because they are the good ones. Publish a set that reflects what the reviews say overall, and record the published average beside it so the page cannot drift away from the truth. - Never offer, and never draft, any communication that offers a refund, a voucher, a free item or any other benefit in exchange for changing, softening or removing a negative review. The CMA names this as commissioning a banned review, and it is a banned practice under Schedule 20 to the Digital Markets, Competition and Consumers Act 2024. - Never write `aggregateRating` or `review` structured data for the business's own reviews, and never install a widget that claims to produce stars from them. Google states plainly that such pages are ineligible, and the markup buys a risk with no upside. - Never present a review as though it came from a platform when it came by email, and never move a review between platforms. - This output is a working document prepared for the owner to check against their own records, and for their solicitor or trade body to check before anything is published, particularly where a review makes a comparative or superlative claim. It applies published advertising rules, published competition law guidance and published platform rules to draft copy. It is not a ruling that the copy complies, and it is not legal advice. ## Built from - Digital Markets, Competition and Consumers Act 2024, Schedule 20, paragraph 13, https://www.legislation.gov.uk/ukpga/2024/13/schedule/20, read 16 September 2026: the banned practice covering submitting or commissioning fake and concealed incentivised reviews, publishing reviews or consumer review information in a misleading way, and the duty to take "reasonable and proportionate steps" to prevent and remove them, behind steps 1 and 5. - Competition and Markets Authority, "Fake reviews", CMA208, guidance on the prohibition under paragraph 13 of Schedule 20 to the Digital Markets, Competition and Consumers Act 2024, https://assets.publishing.service.gov.uk/media/67eeb64fe9c76fa33048c790/CMA208_-_Fake_reviews_guidance.pdf, published 4 April 2025, read 16 September 2026: the cherry-picking and suppression examples in step 1, the incentivised-review conditions and the refund-for-removal example in step 5, and the outdated-reviews passage in step 7. - Committee of Advertising Practice, CAP Code (Edition 12), Section 3 "Misleading advertising", endorsements and testimonials rules 3.44 to 3.52, https://www.asa.org.uk/type/non_broadcast/code_section/03.html, no publication date shown on the page, read 16 September 2026: rule 3.44 in step 3, rule 3.47 in step 3, rule 3.45 in step 5, rules 3.46 and 3.49 in step 6, rules 3.48 and 3.50 in steps 4 and 6. - Google, "Review snippet (Review, AggregateRating) structured data", Google Search Central, https://developers.google.com/search/docs/appearance/structured-data/review-snippet, last updated 8 September 2026, read 16 September 2026: the self-serving reviews rule, the widget example, the readily-available requirement, the ban on aggregating from other sites and the ban on fake or undisclosed incentivised reviews, all in step 8. - Google, "Local business (LocalBusiness) structured data", Google Search Central, https://developers.google.com/search/docs/appearance/structured-data/local-business, last updated 8 September 2026, read 16 September 2026: the marking of `aggregateRating` and `review` as only recommended for sites capturing reviews about other local businesses, in step 8. - Google, "Places API Policies", Google Maps Platform, https://developers.google.com/maps/documentation/places/web-service/policies, last updated 10 September 2026, read 16 September 2026: the author attribution requirement, the avatar, name and profile link, the googleMapsUri access requirement and the caching restriction with the place ID exception, all in step 9.
Prompt for Codex
# review-display ## You are given Every consumer review one UK hospitality business holds for the period under review, whatever its rating, supplied as rows: the source it came from, the reviewer's display name exactly as published, the date, the rating, the full text verbatim, and the link where one exists. The published average rating and total review count on each platform, read on a stated date. For every review the business proposes to publish on its own pages: the page it is destined for, the extract Claude has selected, the attribution wording Claude has written, and whether the review was incentivised. The permission records the owner holds, as files with dates. The dates of any change of chef, menu or room layout that the owner considers material. And, for each proposed review, the publish-or-hold decision Claude has already made with the rule reference behind it. You count, compare and record. You never decide, never select and never write copy. ## Produce Write into a `./review-display-output/` folder: 1. `all-reviews.csv` with these columns in this order: `review_ref`, `source`, `platform_url`, `reviewer_display_name_verbatim`, `date_left`, `rating`, `rating_scale_max`, `full_text_verbatim`, `business_controls_it`, `incentivised`. `review_ref` is R001 upward. `source` is exactly one of `third-party platform`, `submitted directly to the business`, `solicited by the business`. `business_controls_it` and `incentivised` are `yes` or `no`. Every review in the period appears, whatever its rating. 2. `set-profile.csv` with columns: `source`, `reviews_in_period`, `count_1_star`, `count_2_star`, `count_3_star`, `count_4_star`, `count_5_star`, `mean_rating`, `published_average_on_platform`, `published_count_on_platform`, `date_read`. One row per source plus a `TOTAL` row. `mean_rating` is computed to two decimal places from `all-reviews.csv`, never copied from the platform. 3. `publication-decisions.csv` with columns: `review_ref`, `destination_page`, `decision_supplied`, `rule_cited`, `extract_verbatim`, `extract_characters`, `full_text_characters`, `percentage_of_full_text`, `attribution_verbatim`, `date_shown_on_page`, `incentive_label_verbatim`, `permission_file`, `permission_date`, `published_source_exception`. `decision_supplied` is `publish` or `hold` and is copied, never decided. Every `hold` row carries a non-empty `rule_cited`. `published_source_exception` is `yes` or `no`. 4. `extract-check.csv` with columns: `review_ref`, `full_text_verbatim`, `extract_verbatim`, `is_contiguous`, `words_removed`, `removed_text_verbatim`, `contains_qualifier_word`, `flagged`. `is_contiguous` is `yes` where the extract appears in the full text as one unbroken run, otherwise `no`. `contains_qualifier_word` is `yes` where the removed text contains any of `but`, `though`, `although`, `however`, `except`, `unfortunately`, `slow`, `wait`, `waited`, `cold`, `rude`, `expensive`, `disappointing`. Every row where `is_contiguous` is `no` or `contains_qualifier_word` is `yes` is `flagged` and listed in `gaps.md`. 5. `selection-balance.csv` and `age-check.csv`. The balance file has columns: `destination_page`, `reviews_published`, `mean_rating_of_published`, `mean_rating_of_all`, `difference`, `published_average_on_platform`, `lowest_rating_published`, `proportion_of_set_published`, where `difference` is `mean_rating_of_published` minus `mean_rating_of_all`, to two decimal places. The age file has columns: `review_ref`, `date_left`, `age_in_days_at_build`, `material_change_date`, `predates_material_change`, `date_visible_on_page`, the last two being `yes` or `no`. 6. `markup-check.csv` with columns: `page_url`, `structured_data_type`, `has_aggregaterating`, `has_review_property`, `reviews_sourced_from`, `author_name_shown`, `author_avatar_shown`, `author_profile_link_shown`, `source_link_shown`, `compliant_position`. The first two boolean columns must both read `no` for any page carrying the business's own reviews. `compliant_position` is `yes` or `no` and follows from the supplied rules, not from a judgement made here. 7. `gaps.md`, a numbered list of: every proposed review with no permission file and no published-source exception; every incentivised review with no label; every flagged extract; every published quote with no visible date; every page whose published mean differs from the whole-set mean by more than 0.5; every page carrying `aggregateRating` or `review` markup for the business's own reviews; every Google-sourced review missing an author name, avatar, profile link or source link; and every proposed review with no supplied decision or no rule cited on a hold. ## Rules - Codex measures, counts, compares and records. It never invents, never rewords the owner's copy, and never makes the judgement that was supplied to it. - Never write, edit, shorten, extend, translate or correct the spelling or punctuation of a review, an extract or an attribution. A review is evidence, and corrected evidence is not evidence. - Never select which reviews to publish, and never drop a review from `all-reviews.csv` because it is negative, short, abusive or duplicated. Record it and flag it. - Never draft any message offering a refund, voucher, discount, free item or other benefit in exchange for changing, softening or removing a review, and never write such an offer into any file. - Never write `aggregateRating` or `review` structured data for the business's own reviews, and never generate markup at all in this job. `markup-check.csv` records what is on the page; it does not produce any. - Never copy a rating average from a platform into `mean_rating`. Compute it from the rows and record the platform figure separately in its own column. - Never move a review between sources, and never record a review as coming from a platform unless a link to it is present. - Never write an industry average, a benchmark, a conversion rate or a figure for bookings produced by reviews. No such figure exists for a single independent venue. - Character counts, word counts and percentages are counted, not estimated. Ages are counted in whole days from the build date, which is recorded in every file. - Use British English, GBP and DD Month YYYY dates. No em dash characters in any file you write, and any supplied text containing one is recorded verbatim and flagged in `gaps.md`. - Every file ends with this line: this is a working document prepared for the owner to check against their own records, and for their solicitor or trade body to check before anything is published. It applies supplied rules to draft copy and is not a ruling that the copy complies. ## Return The absolute path of every file written and the row count of each CSV. The number of reviews in the period by source and by star rating, with the computed mean beside the platform's published average for each source. The number proposed for publication, the number decided publish and hold, and the rule cited on every hold. For each destination page, the published mean against the whole-set mean and the difference. Every flagged extract with the words removed. Every proposed review with no permission record. Every incentivised review with no label. Every published quote with no visible date and every one predating a material change. Every page carrying own-review markup. And the `gaps.md` item count.
Built from the best public work on this
Sources for review-display
Everything below was opened and read on 16 September 2026. Nothing is cited that could not be loaded.
1. Digital Markets, Competition and Consumers Act 2024, Schedule 20, paragraph 13
https://www.legislation.gov.uk/ukpga/2024/13/schedule/20, read 16 September 2026.
The statute that changed this job from a matter of taste into a matter of law. Paragraph 13 sits in the list of commercial practices that are banned outright, which means a breach is automatically unfair and nobody has to show that a particular customer was misled.
Three limbs matter to a venue putting quotes on its own website. Paragraph 13(1) bans "Submitting, or commissioning another person to submit or write - (a) a fake consumer review, or (b) a consumer review that conceals the fact it has been incentivised." Paragraph 13(2) bans "Publishing consumer reviews, or consumer review information, in a misleading way", and this is the one the skill is built around, because it catches the honest owner who has published nothing false and has simply chosen the nice ones. Paragraph 13(3) adds a positive duty to take "such reasonable and proportionate steps as are necessary" to prevent the publication of fake and concealed incentivised reviews and false or misleading consumer review information, "and (b) removing any such reviews or information from publication."
Note what "consumer review information" reaches. It is information derived from or influenced by reviews, so the star average and the review count printed on a page are themselves regulated, not just the words.
Where the skill departs: paragraph 13(4) covers offering to procure banned reviews and offering services that facilitate them, aimed at brokers rather than at the venue. The skill does not teach it, though an owner approached by somebody promising to improve their rating should read it. It also does not address the enforcement regime or the penalties, which are the CMA's to apply and a solicitor's to explain.
2. Competition and Markets Authority, "Fake reviews", CMA208
https://assets.publishing.service.gov.uk/media/67eeb64fe9c76fa33048c790/CMA208_-_Fake_reviews_guidance.pdf, published 4 April 2025, read 16 September 2026.
The regulator's own worked guidance on paragraph 13, and the single most useful document in this pack because it is written in examples rather than abstractions.
Step 1 is paragraph 4.5 almost in full: "Cherry picking positive reviews for publication over negative ones might be done either through suppressing negative reviews that have been submitted or by encouraging just those who are satisfied to leave reviews. It might also involve selecting only favourable reviews to be presented or highlighting certain positive reviews when these do not reflect the experience being reported by reviewers overall." Paragraph 4.4 is the companion, telling traders they should not "limit access to and/or the impact of negative reviews by editing, withholding or removing such reviews", nor interfere with people's willingness to leave them "through threats of harm or legal action" or "by making an offer of dispute resolution contingent on a consumer not leaving a negative review".
Step 5 comes from paragraphs 3.5 and 3.7. On labelling: "the review must be clearly identifiable as incentivised... The label should not have an ambiguous meaning or be placed where it might not be seen." On what is allowed: traders may incentivise, but "to comply with the law they must: (a) tell consumers that the review has been incentivised, and (b) the review must still reflect the reviewer's genuine experience." The list of commissioning examples supplies the one venues walk into while trying to put things right: "Contacting a customer who has left a negative review and offering them a refund and/or a gift card if they change their review to remove the negative commentary (so that it is no longer reflective of their genuine experience)."
Step 7 is paragraph 4.10: "If a product changes over time, traders need to consider whether genuine reviews published before the changes, which remain available, could be misleading... traders publishing or providing access to the reviews might need to change their approach if changes to products result in practice in a materially different experience for the consumer."
Paragraph 3.6 is the sentence that keeps this skill from making owners frightened of asking at all: "Doing so without predetermining the contents or sentiment expressed in the review, for example by merely emailing customers generally to ask if they wish to provide a review, is not prohibited under the banned practice."
Where the skill departs: chapters 6, 7 and most of 8 are addressed to publishers and intermediaries, platforms, review sites and marketplaces, and set out a full risk assessment, detection and sanctions regime. A venue publishing a dozen quotes on its own site is a publisher in the Act's sense but not in that sense, and the skill takes chapter 8 only as far as the requirement in 8.9 that publishers "should all have published policies which prohibit fake reviews", which belongs to the reputation-rota skill in this pack, not here.
3. Committee of Advertising Practice, CAP Code (Edition 12), Section 3, rules 3.44 to 3.52
https://www.asa.org.uk/type/non_broadcast/code_section/03.html, no publication date shown on the page, read 16 September 2026.
The advertising rules that run alongside the law, and the ones an owner is more likely to meet first because a competitor can complain to the ASA in five minutes. The section carries its own note directing readers elsewhere for the statutory position: "Marketers are advised to seek legal advice on other obligations in relation to the prohibition on fake consumer reviews."
The rules used, in the order the skill uses them. Rule 3.44: "Marketing communications must not contain fake consumer reviews... A fake consumer review is a consumer review that purports to be, but is not, based on a person's genuine experience." Rule 3.47 is the filing duty and the reason step 3 asks for contact details rather than just a name: "Marketers must hold documentary evidence that a testimonial or endorsement used in a marketing communication is genuine, unless it is obviously fictitious, and hold contact details for the person who, or organisation that, gives it." Rule 3.50 covers permission, with its exception for "accurate statements taken from a published source", which puts a Google review on a different footing from a card handed to a waiter. Rule 3.48: "Testimonials must relate to the advertised product." Rule 3.49: "Claims that are likely to be interpreted as factual and appear in a testimonial must not mislead or be likely to mislead the consumer."
Rule 3.46 deserves its own paragraph because it lists the failures by name, and they are exactly the ones a venue commits without meaning to: "Failing to publish, or removing from publication, negative consumer reviews whilst publishing positive ones (or vice versa)", "Giving greater prominence to positive consumer reviews over negative ones (or vice versa)", "Omitting information that is relevant to the circumstances in which a consumer review has been written (including that a person has been commissioned to write the review)." That third bullet is why step 6 records the full text beside the extract and counts what was cut.
Where the skill departs: rules 3.51 to 3.53 cover references to CAP advice, trust marks and codes of conduct. The skill does not teach them, beyond the obvious point that a venue should not display an award or a mark it has not been given, which is already covered by its evidence rule. Section 3's comparison regime is also left out, because a review that names a competitor is a problem to be avoided rather than managed.
4. Google, "Review snippet (Review, AggregateRating) structured data", Google Search Central
https://developers.google.com/search/docs/appearance/structured-data/review-snippet, last updated 8 September 2026, read 16 September 2026.
Step 8 is here, and it settles an argument that costs venues money every year. The rule is stated without qualification: "If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature. For example, a review about entity A is placed on the website of entity A, either directly in their structured data or through an embedded third-party widget (for example, Google Business reviews or Facebook reviews widget)." The widget clause is the important half, because that is precisely what a venue is sold.
The page reinforces it in the list of supported features, where Local business is marked "only for sites that capture reviews about other local businesses", and adds two more constraints: "Ratings must be sourced directly from users" and "Don't rely on human editors to create, curate, or compile ratings information for local businesses."
The general guidelines still apply to anything a venue does publish. "Make sure the review content you mark up are readily available to users from the marked-up page. It must be immediately obvious to users that the page has review content." "Don't aggregate reviews or ratings from other websites." "Don't include fake or undisclosed incentivized reviews on your page or in your structured data markup." Google also warns what non-compliance costs: "If your site violates one or more of these guidelines, then Google may take manual action against it."
Where the skill departs: the property tables for Review, AggregateRating and the critic review formats are not reproduced, because the skill's answer for a venue's own reviews is not to write the markup at all. Those properties matter to a site reviewing other businesses, which is a different job.
5. Google, "Local business (LocalBusiness) structured data", Google Search Central
https://developers.google.com/search/docs/appearance/structured-data/local-business, last updated 8 September 2026, read 16 September 2026.
Cited for one confirmation, so that step 8's conclusion rests on both documents rather than one. In the recommended properties table, both `aggregateRating` and `review` carry the same warning in bold: "This property is only recommended for sites that capture reviews about other local businesses". A venue's developer reading only this page and only the property list could easily add them; the warning is on the same line, and the skill quotes it so the conversation with the developer is short.
Where the skill departs: everything else on this page, the required and recommended properties, the hours encodings and the departments, belongs to the listing-consistency skill in this pack. One fact, one home.
6. Google, "Places API Policies", Google Maps Platform
https://developers.google.com/maps/documentation/places/web-service/policies, last updated 10 September 2026, read 16 September 2026.
Step 9, for the venues that pull their Google reviews onto their own site through the API rather than copying them out by hand. The attribution duty is an absolute: "You must always credit the author when displaying photos or reviews." The instruction is to "Attribute the author using all available resources (avatar, name, and profile link) when space allows", and where space is tight "the minimum requirement is to display the author's avatar". The route back to the source is also required: "end-users must always have access to view the individual source photo or review on Google Maps using the provided googleMapsUri." On storage, the policy restricts pre-fetching, caching and storing Places content, with one named exception: the place ID "is exempt from the caching restrictions", so "You can therefore store place ID values indefinitely."
Where the skill departs: the policy's billing, map-display and branding requirements are not taught. They matter to whoever builds the integration, and the skill's job is to make sure the reviews that arrive are attributed and linked rather than to specify the build.
Best public prompt we found for this job
The closest public artefact is the `compliance-check` skill in Anthropic's `knowledge-work-plugins` repository, raw source at https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/legal/skills/compliance-check/SKILL.md. The repository has 24,123 stars, read from api.github.com on 16 September 2026. Two things in it are worth keeping. The first is its honesty about its own standing:
**Important**: This command assists with legal workflows but does not provide legal advice. Compliance assessments should be reviewed by qualified legal professionals.
The second is the shape of its output, a table mapping each applicable regulation to what it requires and then a requirement-by-requirement status. That is the shape of `publication-decisions.csv`, where every hold carries the rule that produced it rather than a note saying the review seems risky. It even names this exact scenario in its example inputs, "Marketing wants to use customer testimonials in ads", which is a fair description of what a venue is doing when it puts four quotes on a homepage.
Three things we did not copy. It asks the user to describe a plan and then reasons about which regulations apply, which produces a plausible-sounding list; this skill names its documents, quotes them, and cites nothing it has not loaded, because a rule number invented in a compliance file is worse than no file. Its risk table grades severity as high, medium or low, which we dropped: a banned practice has no low setting, and grading it invites an owner to accept a risk that is not theirs to accept. And it reasons about privacy regimes generically; the question here is narrower, which is whether a named customer gave permission for a specific quote to appear at a specific level of naming, and that is a dated record in a row, not an assessment.
Want this running in your business?
I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.
Foxera