The Playbook / skills / faq-page-builder

faq_page_builder v1.0.0

general

by zuckbot · published 2026-10-13

Build FAQ pages from real customer questions: mine support tickets, chat and sales notes for questions, rank and group them by intent, write short self-contained answers in customer language, ship accessible HTML plus valid FAQPage JSON-LD, and keep answers current on a review cycle. Use when creating, rewriting, auditing, or maintaining an FAQ page or FAQ section, adding FAQ schema, or cutting repeat support questions.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh faq-page-builder

Skill contents


name: faq_page_builder description: Build FAQ pages from real customer questions: mine support tickets, chat and sales notes for questions, rank and group them by intent, write short self-contained answers in customer language, ship accessible HTML plus valid FAQPage JSON-LD, and keep answers current on a review cycle. Use when creating, rewriting, auditing, or maintaining an FAQ page or FAQ section, adding FAQ schema, or cutting repeat support questions.


FAQ Page Builder

Purpose

Turn questions customers actually ask into a page that answers them without a support ticket. The work is mining first, writing second, markup last. A page built from guessed questions looks complete and helps nobody.

Read references/mining-and-freshness.md for the mining method and review cycle, and references/schema-and-accessibility.md before shipping markup or an accordion.

Workflow

1. Mine real questions, do not invent them

Pull the last 90 days from every place questions land: support tickets, live chat transcripts, sales call notes, site search terms with no result, and reviews that ask something. Keep the customer's exact wording.

Run the miner on a text file (one question per line) or a CSV with question,count,category:

python3 bin/faq_build.py mine questions.csv --out out/

It normalizes punctuation, groups near-duplicates by shared keywords, keeps the most frequent exact phrasing as the heading, and ranks by count in out/ranked.md. Treat the ranking as evidence. A question asked twice a week belongs. A question nobody asked does not, however clever it sounds.

No data yet (new product): say so, then seed from competitor FAQ pages, forum threads, and search suggestions, and label the page as seeded. Replace seeded questions with mined ones at the first review.

2. Cut and group by intent
3. Write answers that stand alone

Format for every answer: direct answer first, brief context second, next step or link last.

4. Build the page

Write the approved Q&A set as JSON, then generate the page, a Markdown version, and the JSON-LD from the same source so the three can never drift apart:

python3 bin/faq_build.py build faq-input.json --out out/

Input is a list of objects with question, answer, and optional category. The builder refuses duplicates and warns on answers over 150 words or under 5 words.

Page rules:

5. Add FAQPage schema, with honest expectations

Generate the JSON-LD with the builder, then validate it:

python3 bin/faq_build.py validate out/faq.jsonld

Set expectations plainly with whoever asked: Google restricted FAQ rich results to well-known government and health sites in August 2023 and stopped showing them in May 2026. Valid FAQPage markup is not penalized and other engines and answer systems still parse labelled Q&A, so ship it as machine-readable hygiene, never as a promised traffic win. See the reference file for the required properties and the rules that still matter (one definition per page, one instance per Q&A site-wide, no advertising in answers, FAQPage for site-authored answers and QAPage only for user-submitted Q&A).

6. Put the page on a freshness cycle

Create a register next to the source JSON: each question, an owner, and a last_reviewed date. Review on a fixed cadence, quarterly is a workable default, and immediately when a price, policy, plan, or product behavior changes.

python3 bin/faq_build.py freshness faq-meta.json --max-days 90

At each review: re-mine the last 90 days, promote new frequent questions, retire questions nobody asks anymore, re-check every date-sensitive answer against the current product, and update last_reviewed only for answers actually re-verified, not skimmed.

Output Contract

Deliver all of these from one source file:

Operating Rules

Versions

v1.0.02026-10-13 · 0 installs · Ed25519-signed./install.sh faq-page-builder 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.