Turn the people looking you up into bookings: 10 AI skills for your own site
contact-and-map
make it obvious how to reach you, and legal while you are at it
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: contact-and-map description: Builds the contact block for a UK hospitality website so a person looking you up can ring, walk in or ask a question in one tap, and at the same time writes the legal identity details a website is required to make available, the privacy wording for the enquiry form, and the access information disabled customers need before they travel. Use when your phone number is hard to find, when the map sends people to the wrong door, or when you have never checked what your site is legally required to show. --- # Make it obvious how to reach you, and legal while you are at it You give this the pages of your website that carry any contact detail, your registered company details if you have a limited company, and a short description of how people actually get hold of you now. You get back one contact block written out ready to paste, a legal identity block with each line traced to the rule that requires it, the wording for your enquiry form and what happens to what people type into it, an access paragraph written from facts you confirm about your building, and a numbered list of what is missing. It does not tell you that you comply. That is for your solicitor and your accountant to say. ## What it does 1. **List every contact route the site currently offers and every route customers actually use, then compare the two.** Walk the site and write down each occurrence of a phone number, email address, postal address, contact form, map, social handle or messaging link, with the page and the position on the page. Separately, ask the owner how enquiries genuinely arrive: the landline, a mobile in someone's pocket, Instagram messages, the booking platform's inbox, or a form nobody has opened in months. The gap between the two lists is the whole job. A form that routes to an address nobody reads is worse than no form, because the customer believes they have made contact and waits. 2. **Put four facts within reach of a thumb on every page: trading name, street address, phone number, and how to book.** Not a "Contact" link that costs a tap, the facts themselves, in the header or the footer or both. The phone number must be a real link, written as a telephone link so that touching it dials rather than selecting text. Format it the way GOV.UK does, which separates the code from the rest of the number: its style guide says to "separate out the area, freephone, mobile or international code from the rest of the number" and gives "0131 496 0454" as the shape. One number, one form of it, everywhere on the site. Two slightly different versions of the same number is how a customer decides you have moved. 3. **Write the address once, in one canonical form, and use that exact string in every place on the site.** Building name or number, street, locality if the town has more than one high street, town, postcode, in that order, on separate lines. Then name the door: "the entrance is on Mill Lane, not the High Street" saves more arrivals than any map embed. Add the map as a link that opens the customer's own map application as well as an embedded map, because an embed that fails to load on a slow phone leaves nothing behind, and a link works either way. If you have a car park, say where it is and what it costs. If you do not, say the nearest one by name. 4. **Build the legal identity block from regulation 6 of the Electronic Commerce (EC Directive) Regulations 2002, line by line.** That regulation says a person providing an information society service must "make available to the recipient" a set of details, and a restaurant website is such a service. The lines it requires include "the name of the service provider", "the geographic address at which the service provider is established", and "the details of the service provider, including his electronic mail address, which make it possible to contact him rapidly". Where the business is VAT registered it also requires the VAT identification number. Note what that means in practice: an email address is required, and a contact form on its own does not satisfy it, because a form is not an address a customer can write to from their own mailbox. 5. **If the business is a limited company, add the company disclosures, because these are separate from the e-commerce ones and are missed far more often.** Regulation 24 of the Company, Limited Liability Partnership and Business (Names and Trading Disclosures) Regulations 2015 states that "Every company shall disclose its registered name on its websites." Regulation 25 then requires the particulars in its paragraph (2) on "its business letters", "its order forms" and "its websites", and those particulars include "the part of the United Kingdom in which the company is registered", "the company's registered number" and "the address of the company's registered office". So the footer carries the registered name even where the venue trades under a different one, plus England and Wales or Scotland or Northern Ireland, the number, and the registered office address. 6. **Keep the trading name and the registered name visibly separate, and say which is which.** A pub called The Fox trading through Fox Hospitality Ltd needs both on the site and needs them not to be confused. The customer-facing block says The Fox. The footer says the registered name, the registered number and the registered office, introduced in plain words such as "The Fox is a trading name of Fox Hospitality Ltd, registered in England and Wales, company number 00000000, registered office ...". Put the real numbers in from the company's own filing, never from memory. A wrong company number in a footer is a small error that a supplier, a bank or a local authority will eventually spend an afternoon on. 7. **Cut the enquiry form back to what you will actually use, and say what happens to it underneath.** Every field you add is a reason not to finish. Name, a way to reply, and the message is usually the whole form; a date and a number of people if it is a booking enquiry. Then the privacy wording. The ICO's guidance on the right to be informed says you must provide privacy information "at the time you collect their personal data from them", and that it must be "concise, transparent, intelligible, easily accessible, and it must use clear and plain language". So a sentence by the button saying who receives it, what it is used for, how long it is kept and how to ask for it to be deleted, with a link to the full privacy page. Not a wall of text, a sentence. 8. **Write the access paragraph from facts somebody has physically checked, and publish it whether or not it is flattering.** The Equality Act 2010 Code of Practice for services, public functions and associations, published 5 August 2026, states that "The obligation also applies to the provision of services on a website". The duty on service providers is anticipatory, so the question is not whether a disabled customer has asked yet. Publish what is true: step or level entrance and the height of any step, width of the front door, accessible WC or none, hearing loop or none, assistance dogs welcome, whether staff can bring an order to a table outside, and a direct number to ring ahead. An honest "there are three steps and no accessible WC" is useful. Silence is not, because it makes every visit a gamble. 9. **Publish it, then walk every route yourself from a phone on mobile data, and put a re-check date on the page.** Tap the number and confirm it dials the right handset and somebody answers it. Send the form and confirm it lands in an inbox a person opens, then reply to your own test to confirm the reply address works. Open the map link and confirm the pin is on the door and not on the back of the building. Email the address in the legal block from an outside account. Record the date each route was tested and who tested it, and set a date to do it again, because numbers get diverted, forms break silently when a plugin updates, and nobody finds out until a customer mentions it months later. ## Then it checks 1. The phone number appears in the same format everywhere on the site, is a telephone link on every occurrence, and was dialled from a phone on the test date with the person who answered recorded by name. 2. The address string is character for character identical in every location it appears, and the map link and the embedded map both resolve to the same coordinates as the address. 3. The legal identity block contains a business name, a geographic address, an email address and, where the business is VAT registered, a VAT number, with each line named against regulation 6 of the Electronic Commerce (EC Directive) Regulations 2002. 4. Where the business is a limited company, the registered name, the part of the United Kingdom of registration, the registered number and the registered office address are all present and were copied from the company's own filing record rather than from the existing site. 5. The enquiry form has a privacy sentence adjacent to the submit control that names the recipient, the purpose, the retention period and how to ask for deletion, and the form was submitted as a test and the submission was found in a live inbox. 6. Every statement in the access paragraph is traceable to a named person who physically checked it on a stated date, and nothing is described as accessible without a measurement or a specific fact behind it. 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 contact form that emails a customer back as though the manager wrote it goes to the manager first. - Never write a company number, a VAT number or a registered office address from memory or from the existing website. Both are copied from the company's own filing or its VAT certificate, and a number that cannot be confirmed is listed as missing rather than guessed. - Never describe the venue as accessible, step-free, wheelchair friendly or disabled friendly as a summary word. Publish the specific facts and let the customer decide whether they work, because the person reading knows their own requirements and you do not. - Never replace a published email address with a contact form only. The e-commerce regulation requires details that make it possible to contact the provider rapidly and names the electronic mail address, and a form gives the customer no record of what they sent. - Never put a phone number on the site that rings a handset nobody carries. An unanswered published number costs more bookings than a missing one, because the customer has already decided to call. - This output is a working document prepared for the owner to check against their own company filings, VAT registration and building before it is published, and for their solicitor or accountant to check the identity and disclosure lines. It gathers published requirements and drafts wording. It is not legal advice and it does not certify that the website complies with anything. ## Built from - The Electronic Commerce (EC Directive) Regulations 2002, SI 2002/2013, regulation 6, https://www.legislation.gov.uk/uksi/2002/2013/regulation/6/made, read 16 September 2026: the required identity details in step 4, including the geographic address and the electronic mail address wording that makes a contact form insufficient on its own. - The Company, Limited Liability Partnership and Business (Names and Trading Disclosures) Regulations 2015, SI 2015/17, regulations 24 and 25, https://www.legislation.gov.uk/uksi/2015/17/regulation/24 and https://www.legislation.gov.uk/uksi/2015/17/regulation/25, read 16 September 2026: the registered name on websites duty and the paragraph (2) particulars in steps 5 and 6. - Information Commissioner's Office, "Right to be informed", UK GDPR guidance and resources, https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/individual-rights/individual-rights/right-to-be-informed/, no publication date shown on the page, read 16 September 2026: the timing requirement and the concise, transparent, intelligible and easily accessible wording behind the form privacy sentence in step 7. - Equality and Human Rights Commission, "Equality Act 2010: Code of Practice for services, public functions and associations, 2026", published on GOV.UK 5 August 2026, https://www.gov.uk/government/publications/equality-act-2010-code-of-practice-for-services-public-functions-and-associations-2026/equality-act-2010-draft-code-of-practice-for-services-public-functions-and-associations-2026, read 16 September 2026: the statement that the services obligation applies to a website, which is why step 8 treats the access paragraph as part of the contact block rather than an optional extra. - Government Digital Service, "A to Z style guide", GOV.UK publishing guidance, https://guidance.publishing.service.gov.uk/writing-to-gov-uk-standards/style-guides/a-to-z-style-guide/, no publication date shown on the page, read 16 September 2026: the telephone number formatting convention in step 2 and the "to" convention for time ranges used when opening hours sit inside the contact block.
Prompt for Codex
# contact-and-map ## You are given The HTML of every page of one UK hospitality website, saved to disk, with the URL each file came from. A list of the contact routes the owner says are genuinely monitored, each with the route type, the destination and the name of the person who reads it. The company's own filing details where a limited company is involved: registered name, registered number, part of the United Kingdom of registration, registered office address, and the VAT number where registered, each supplied as a value plus the document it was read from. The canonical address string, the canonical telephone number and the canonical trading name, all three already decided by Claude and supplied as exact strings. The access facts, supplied as one row per fact with the person who checked it and the date they checked. The drafted legal identity block, the drafted form privacy sentence and the drafted access paragraph, supplied as finished copy. And the results of the live route tests, supplied as one row per route with the tester, the date and the outcome. ## Produce Write into a `./contact-and-map-output/` folder: 1. `contact-occurrences.csv` with these columns in this order: `occurrence_ref`, `page_url`, `file_path`, `route_type`, `value_as_written_verbatim`, `is_link`, `link_target`, `position_on_page`, `matches_canonical`, `monitored`, `monitor_owner`. `occurrence_ref` is O001 upward. `route_type` is exactly one of `telephone`, `email`, `postal address`, `contact form`, `embedded map`, `map link`, `social handle`, `messaging link`, `booking platform link`. `is_link`, `matches_canonical` and `monitored` are `yes` or `no`. For a telephone occurrence, `is_link` is `yes` only where the anchor href begins `tel:`. 2. `canonical-drift.csv` with columns: `occurrence_ref`, `route_type`, `value_as_written_verbatim`, `canonical_value_verbatim`, `difference_description`, `character_positions_differing`. One row for every occurrence whose `matches_canonical` is `no`. Differences are described, never corrected in the source files. 3. `legal-disclosures.csv` with columns: `requirement_ref`, `requirement_source`, `requirement_text_verbatim`, `required_of`, `value_supplied`, `value_source_document`, `present_on_site`, `page_url_found`, `status`. `requirement_source` is exactly one of `Electronic Commerce (EC Directive) Regulations 2002 regulation 6` or `Names and Trading Disclosures Regulations 2015 regulation 24` or `Names and Trading Disclosures Regulations 2015 regulation 25`. `required_of` is exactly one of `every service provider` or `limited companies only` or `VAT registered only`. `status` is exactly one of `present`, `absent`, `present but differs from supplied value`, `not applicable`. 4. `enquiry-forms.csv` with columns: `form_ref`, `page_url`, `field_name`, `field_label_verbatim`, `field_type`, `required`, `privacy_sentence_present`, `privacy_sentence_verbatim`, `privacy_link_present`, `privacy_link_target`, `submit_control_text_verbatim`. One row per field. `required` and the three `_present` columns are `yes` or `no`. 5. `access-facts.csv` with columns: `fact_ref`, `fact_category`, `fact_as_supplied_verbatim`, `checked_by`, `date_checked`, `measurement_supplied`, `published_in_paragraph`. `fact_category` is exactly one of `entrance`, `internal steps`, `door width`, `WC`, `hearing loop`, `assistance dogs`, `seating`, `parking`, `outside service`, `staff assistance`, `quiet times`. Dates are DD Month YYYY. 6. `route-tests.csv` with columns: `route_type`, `value_tested_verbatim`, `tested_by`, `date_tested`, `device_and_network`, `outcome`, `answered_by_or_landed_in`, `seconds_to_response`. `outcome` is exactly one of `reached the intended destination`, `reached an unintended destination`, `no response`, `failed to load`, `not tested`. 7. `contact-block.md` and `legal-block.md` and `access-paragraph.md` and `form-privacy-sentence.md`, each containing the supplied copy reproduced exactly, with nothing added, removed or reworded. 8. `gaps.md` is a numbered list of: every occurrence where `matches_canonical` is `no`; every telephone occurrence that is not a `tel:` link; every route with `monitored` set to `no`; every `legal-disclosures.csv` row whose status is `absent` or `present but differs from supplied value`; every disclosure value with no `value_source_document`; every form with no privacy sentence or no privacy link; every access fact with no `checked_by` or no `date_checked`; and every route whose test outcome is anything other than `reached the intended destination`. ## Rules - Codex measures, records and checks. It never invents a value, never edits the website's HTML, never rewords supplied copy, and never substitutes a canonical value into a file. Drift is reported in `canonical-drift.csv` and nowhere else. - Never derive a company number, a VAT number, a registered office address or a registered name from the existing website. These arrive as supplied values with a source document. Where one arrives without a source document, the value is recorded and the missing document is listed in `gaps.md`. - Never mark a disclosure `present` on the basis of a partial match. A registered office address differing by a postcode, a suite number or a punctuation mark is `present but differs from supplied value`. - Never write the words accessible, step free, wheelchair friendly or disabled friendly as a summary in any file. Access facts are recorded as supplied, with their measurements, and nothing is aggregated into a verdict. - Never write a benchmark, an industry average, a conversion rate, a response rate or a figure for how many customers use a given contact route. No such figure exists for a single independent UK venue, and none is to be written into any file. - Never treat an untested route as working. `not tested` is an outcome and it goes into `gaps.md`. - Character comparisons are performed on the exact strings, including spaces, punctuation, case and any non breaking spaces, and `character_positions_differing` names the positions rather than describing them loosely. - Use British English, GBP and DD Month YYYY dates. No em dashes in any file you write, and any supplied copy containing one is reproduced 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 company filings, VAT registration and building before publication, and for their solicitor or accountant to check the identity and disclosure lines. It is not legal advice and it does not certify compliance. ## Return The absolute path of each file written, the row count of each CSV, the number of contact occurrences found broken down by `route_type`, the number of telephone occurrences that are not `tel:` links, the number of occurrences whose `matches_canonical` is `no` with the drift descriptions, the count of `legal-disclosures.csv` rows at each status with the absent requirements named in full, every disclosure value supplied without a source document, the number of form fields per form and which forms lack a privacy sentence or link, the number of access facts with no checker or no date, every route test whose outcome is not `reached the intended destination`, and the `gaps.md` item count.
Built from the best public work on this
Sources for contact-and-map
Everything below was opened and read on 16 September 2026. Nothing is cited that could not be loaded.
1. The Electronic Commerce (EC Directive) Regulations 2002, regulation 6
https://www.legislation.gov.uk/uksi/2002/2013/regulation/6/made, made 2002, read 16 September 2026. The version served carries an amendment note recording changes made on 31 December 2020 by The Electronic Commerce (Amendment etc.) (EU Exit) Regulations 2019, which inserted references to the United Kingdom in sub-paragraph (1)(f).
This is the rule that decides what a hospitality website has to show about who is behind it, and it is almost never quoted at owners because it sits under the heading "information society services", which does not sound like it means a pub with a menu page. It does. The regulation opens with the duty: "A person providing an information society service shall make available to the recipient" the details that follow, and the phrase "make available" matters, because it is a lower bar than "display on every page" and a single well signposted page satisfies it.
The list itself supplies step 4 line by line. Sub-paragraph (a) requires "the name of the service provider". Sub-paragraph (b) requires "the geographic address at which the service provider is established", which rules out a PO box and a mobile number as the only trace of a business. Sub-paragraph (c) is the one that changes behaviour most: it requires "the details of the service provider, including his electronic mail address, which make it possible to contact him rapidly". An email address is named in the rule. A contact form is not an email address, and a great many venue websites have quietly replaced one with the other on the reasoning that a form reduces spam. Sub-paragraph (d) covers registration in a public trade register, and sub-paragraph (g) requires the VAT identification number "where the service provider undertakes an activity that is subject to value added tax". Regulation 6(2) adds that where a service refers to prices, "these shall be indicated clearly and unambiguously".
Where the skill departs: regulation 6 also carries sub-paragraphs (e) and (f) covering authorisation schemes and regulated professions, which do not apply to a restaurant, a bar or a hotel in the ordinary case, and the skill does not teach them. It also stops short of the further pre-contract information duties in regulations 9 and 11, which bite when the site actually concludes contracts online. A site that sells gift vouchers or takes deposits crosses into that territory and the skill says so as a question for the owner's solicitor rather than attempting the answer.
2. The Company, Limited Liability Partnership and Business (Names and Trading Disclosures) Regulations 2015, regulations 24 and 25
https://www.legislation.gov.uk/uksi/2015/17/regulation/24 and https://www.legislation.gov.uk/uksi/2015/17/regulation/25, made 2015, read 16 September 2026.
These are the companies-law counterpart to the e-commerce rule, and they are separate duties on a separate footing, which is why the skill keeps them in their own block. Regulation 24 is short and unambiguous: "Every company shall disclose its registered name on its websites." Not its trading name, its registered name, and the word "websites" is in the rule rather than being read into it.
Regulation 25 then adds the particulars. Its opening words require disclosure "on: (a) its business letters; (b) its order forms; and (c) its websites", and the particulars in its paragraph (2) include "the part of the United Kingdom in which the company is registered", "the company's registered number" and "the address of the company's registered office". It carries further particulars for the narrower cases: a limited company exempt from the obligation to use the word "limited", a community interest company that is not a public company, and an investment company within the meaning of section 833 of the Companies Act 2006.
These two regulations are the reason step 6 insists on separating the trading name from the registered name in visible words rather than hoping the reader works it out. A venue trading as The Fox through a company called something else has two names that must both appear, doing different jobs. The common failure is not omission by design, it is a site rebuilt by a designer who was given the trading name and never asked about the company.
Where the skill departs: the 2015 Regulations also carry an extensive names regime, controlling which company names may be registered and which words need approval, and a further set of trading disclosure duties for business premises and for responding to a written request for the registered office address. None of that is in the skill, because it is not a website job. The skill also does not state the penalty for a breach. Regulation 28 of the same instrument deals with offences and was not loaded, and a penalty that has not been read is a penalty that is not quoted.
3. Information Commissioner's Office, "Right to be informed"
https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/individual-rights/individual-rights/right-to-be-informed/, no publication date shown on the page, read 16 September 2026.
Cited for one narrow purpose: the enquiry form. The moment a venue's website collects a name and an email address it is processing personal data, and the ICO's position on when the person must be told is unambiguous: "You must provide privacy information to individuals at the time you collect their personal data from them." At the time, not on a page they could find if they looked for it.
The presentation standard is the second half of step 7. The guidance requires that the information be "concise, transparent, intelligible, easily accessible, and it must use clear and plain language". That standard is what keeps the skill from recommending the usual remedy, which is a link to a two thousand word privacy policy nobody opens. A sentence next to the button naming the recipient, the purpose, the retention period and the deletion route meets "concise" and "easily accessible" in a way the link alone does not.
The page also lists what must be told to a person when data is collected directly from them, including the organisation's name and contact details, the purposes and the lawful basis, who the data is shared with, how long it is kept, the individual's rights, the right to withdraw consent, and the right to complain to the ICO. That list is what the full privacy page carries, and it is why the skill splits the job in two rather than trying to fit everything beside the submit button.
Where the skill departs: the skill does not draft a full privacy notice and does not choose a lawful basis. Lawful basis is a decision with consequences for what the venue may later do with the address, and picking one on an owner's behalf inside a contact-page task is how a marketing list quietly acquires a legal problem. The skill writes the form sentence, lists the items the full notice needs, and leaves the basis to the owner and their adviser.
4. Equality and Human Rights Commission, "Equality Act 2010: Code of Practice for services, public functions and associations, 2026"
https://www.gov.uk/government/publications/equality-act-2010-code-of-practice-for-services-public-functions-and-associations-2026/equality-act-2010-draft-code-of-practice-for-services-public-functions-and-associations-2026, published 5 August 2026, read 16 September 2026. The page describes the Code as having been approved by the Secretary of State and laid before Parliament; note that the URL slug still carries the word "draft", so quote the page and not the slug.
One sentence in this Code is why the access paragraph is part of the contact block rather than a separate accessibility project: "The obligation also applies to the provision of services on a website". The website is the service, not an advertisement for it, and the information a disabled customer needs in order to decide whether to travel is part of what the service provides.
The Code also frames the duty as anticipatory in practical terms, listing what service providers can do to meet their obligations, including to "review regularly whether services are accessible to disabled people" and to "carry out and act on the results of an access audit carried out by a suitably qualified person". On the standard applied, it records that "'Reasonableness' is assessed objectively based on all the circumstances of the case", which is the honest answer to an owner asking how much they have to do, and it is not a number.
It is also realistic about size. It notes that "Small businesses and organisations ... may find a less formal approach sufficient", which the skill uses to keep step 8 proportionate: a named person walking the building with a tape measure and writing down what is true is a legitimate starting point for a twenty cover restaurant, and pretending otherwise stops owners from starting at all.
Where the skill departs: the Code is a statutory code covering the whole of Part 3 of the Act across every protected characteristic, and the skill takes from it only the website point and the anticipatory framing. It draws no conclusion about whether any particular venue has met the duty, because that is a judgement on all the circumstances that a document cannot make from a distance. The skill's rule against the summary words accessible and step free is ours rather than the Code's, and it comes from the practical observation that those words mean different things to a wheelchair user, an ambulant disabled customer and the person who wrote the website.
5. Government Digital Service, "A to Z style guide"
https://guidance.publishing.service.gov.uk/writing-to-gov-uk-standards/style-guides/a-to-z-style-guide/, no publication date shown on the page, read 16 September 2026. Reached by following the 301 redirect from https://www.gov.uk/guidance/style-guide/a-to-z.
Used for two small formatting decisions that stop a contact block from looking amateur. On telephone numbers it says to "separate out the area, freephone, mobile or international code from the rest of the number", with worked examples in the shape of 0131 496 0454. On time ranges, which matter the moment opening hours sit next to the address, it says to "use 'to' in time ranges, not hyphens: 10am to 11am (not 10-11am)", and the same convention applies to date ranges. On capitalisation it records that GOV.UK uses sentence case "even in page titles and service names", with proper nouns as the exception.
These are conventions, not law, and the skill treats them as such. The reason to follow them is that a hyphen in a time range and a run together phone number are both slightly harder to read at speed on a phone, and a contact block is read at speed on a phone almost every time.
Where the skill departs: the GOV.UK style guide is written for government publishing and carries a great deal that does not transfer to a venue, including its list of banned words in favour of plain alternatives, which would flatten the voice of a pub if applied wholesale. The separate site-copy skill deals with voice. This skill borrows only the mechanical conventions for numbers, times and case.
Best public prompt we found for this job
The closest public artefact is the `seo-audit` skill in Anthropic's `knowledge-work-plugins` repository, raw source at https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/marketing/skills/seo-audit/SKILL.md. The repository has 24,123 stars, read from api.github.com on 16 September 2026. Its on-page section is the part that overlaps, and it is worth quoting because it shows what a general website audit looks at:
**Title tags** - present, unique, within 50-60 characters, includes target keyword
What we took is the structure, not the subject: a per-page walk producing a row per finding, each finding falsifiable against something you can count. That is the shape of `contact-occurrences.csv`.
What we deliberately did not copy is the entire premise. That skill audits a site against search engines. This one audits it against a person who has already found you and is trying to ring you, which is a different reader with a different failure mode, and against two UK regulations the SEO frame never reaches. It also assumes connected tools such as Ahrefs or Semrush and degrades to web search without them; this skill needs no tool beyond the site's own HTML and the owner's company filing, which is the right dependency for a business with no subscriptions. And it recommends keyword placement in the first hundred words, which on a contact page would push the actual phone number down the screen. On this page the search engine is not the reader.
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