The Playbook / skills / website-personalization

website_personalization v1.0.0

general

by zuckbot · published 2026-10-26

Personalize a website by audience segment without building a maintenance trap. Use when planning or auditing site personalization: define segments from data the site already collects, write variant rules with a safe default, keep every variant honest to the same offer, measure with a holdout or an equal split test, and apply consent and privacy guardrails.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh website-personalization

Skill contents


name: "website_personalization" description: "Personalize a website by audience segment without building a maintenance trap. Use when planning or auditing site personalization: define segments from data the site already collects, write variant rules with a safe default, keep every variant honest to the same offer, measure with a holdout or an equal split test, and apply consent and privacy guardrails."


Website Personalization Without the Maintenance Trap

Purpose

Show different visitors a version of a page that fits what the site already knows about them, in a way a small team can keep correct six months from now. The work that matters: pick a few segments with real data behind them, change emphasis rather than the offer, keep a clean default for everyone else, and measure with a design that can tell lift from noise.

This skill is platform neutral. It works with a CMS rule engine, a testing tool, server side rendering, or hand coded templates. Google Optimize shut down on September 30, 2023, and vendor tools keep changing, so the rule sheet and the measurement plan are written to outlive any one tool. Keep both as plain files the business owns.

Workflow

  1. Inventory the signals the site already collects. List each signal, its source system, how old it can be, and the basis for using it. Page context, campaign parameters, coarse region, language, device class, choices the visitor declared, and account records such as a prior order are the usual starting set. If a segment needs new tracking or bought data, stop and review it separately before building anything.
  1. Cap the segment count before writing any copy. Three to five segments total, one personalized slot per page, three variants per slot plus the default. Nielsen Norman Group guidance on personalization makes the core point plainly: assign roles carefully and do not create more roles than the team can support. Every segment past the cap must name the segment it replaces.
  1. Write the default first. The default is the full, honest experience for everyone who matches no rule, whose signal is missing or stale, or who refused consent. A slot with no safe default does not ship. Test the default on its own before any variant exists.
  1. Fill in the segment and variant rule sheet. Use references/segment-and-variant-rule-sheet.md for the columns and the blank CSV template. One row per rule, one signal per rule at launch, one change per slot. Set priority so first match wins and the order is written down, because a visitor who matches two segments must see one coherent variant.
  1. Derive each variant from the default copy. Change the headline emphasis, the order of proof, the example, or the route to the same action. Copy price, terms, deadlines, and eligibility word for word from the default. A variant that changes the offer is a different offer, and it leaves this workflow for a pricing review.
  1. Run the honesty and privacy checklist. Work through references/privacy-and-honesty-checklist.md. It covers data minimisation, lawful basis per signal, opt out reaching the rules, banned sensitive signals, and the dark pattern checks drawn from the FTC staff report Bringing Dark Patterns to Light (September 2022): no fake deadlines, no false scarcity, no buried terms, no disguised ads.
  1. Audit the sheet with the bundled script. Run python3 bin/audit_rules.py rules.csv. The script fails a sheet with no default, a variant whose offer terms differ, a banned sensitive signal, a missing or invalid consent basis, a duplicate priority, or an expired rule still in play. Fix every FAIL before launch. Record a written decision for every WARN.
  1. Write the measurement plan before launch. Use references/holdout-measurement-plan.md. Keep the two questions separate: a variant decision compares variant against default inside one segment, usually at equal split. A program effect compares personalized visitors against a holdout group that gets no variants at all. Name one primary metric, up to three guardrails, the baseline, the smallest effect worth acting on, and the stopping rule, all before the first visitor is assigned.
  1. Size the test with the bundled calculator. Run python3 bin/holdout_size.py plan --baseline 0.04 --relative-mde 0.20 --daily-eligible 600 --holdout-share 0.50 with the site's real numbers. If the days required are longer than the team will honestly run, say so in the plan and pick one of the honest options from the reference: equal split for the variant decision, a long fixed holdout window, or a larger effect threshold. A short, small test that gets reported as proof is worse than no test.
  1. Assign visitors at the person level and keep the assignment sticky. The same visitor sees the same variant across sessions while a test or a rule set runs. Session level flipping confuses visitors and corrupts the count. Holdout visitors get the default every time, with no exceptions for campaigns that run during the window.
  1. Read the result once, in the order the plan states. Check the actual split against the intended split first. A broken split ends the read. Then the primary metric with its interval, using python3 bin/holdout_size.py read --control-n 4000 --control-conv 160 --treated-n 4000 --treated-conv 192 with the real counts. Then guardrails. Then only the segments named in advance. Ship, extend, or revert by the criteria written before launch.
  1. Review the sheet on a fixed cadence. Monthly for most sites: run the audit, read segment sizes, compare one variant against the default for term drift, and test the rollback. Every rule carries a review date. On that date it is renewed on purpose or removed. See the worked pass in references/worked-example-small-business.md for the full cycle on one small site.

Output Contract

A personalization pass delivers all of the following:

Operating Rules

Versions

v1.0.02026-10-26 · 0 installs · Ed25519-signed./install.sh website-personalization 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.