points for whatever you decide.
plenty of households have a running competition: table tennis in the garage, the weekly quiz, who has lost fewest socks. the score lives on a whiteboard or in someone’s head, and both get wiped.
the thing you want is not a chore-and-reward system. it is a scoreboard — names, numbers, a history of who won what and when.
that is one message to an agent and a url you can pin to the fridge. the rules can be as stupid as you like, because you are the one describing them.
a whiteboard that does not get wiped.
01 / what it isthis is a scoreboard and nothing else: names, points, results, history. it is not a behaviour system and the prompt keeps it that way, because the moment a family scoreboard becomes about rewards it stops being fun and starts being management.
the fun part is that the rules are whatever you say. an agent will implement "three points for a win, one for winning a rally off a let, minus five for gloating" without asking whether that is a standard format, which is the advantage of building rather than installing.
- your players and your scoring rules, whatever they are
- adding a result in two taps
- a running total and a standings table
- a history of results with dates
- seasons, if you want a fresh start periodically
- export and import as json
- what it records
- results, points and a standings table under your rules
- where that goes
- localStorage in one browser. no shared live scoreboard
- seasons
- optional reset that archives the standings rather than deleting them
- who can edit
- anyone with the url, in their own copy. the real board is the device you nominate
see one in action.
02 / examplefour players, a season of table tennis, a running total and last month’s winner
the live example is still being built — the prompt below is the one it was made with.
copy this, then make it yours.
03 / starting prompta starting point, not a template — the point of an agent is that the result is yours. change the sections to match what you want, and remove anything you don’t need.
Build me a family scoreboard as a single web page.
Ask me first:
- What we are competing at, and who the players are.
- The scoring rules, exactly as we use them, however unusual.
- Whether we play in seasons or just keep a running total forever.
- Whether results are one-against-one, teams, or free-for-all.
Take my rules literally. Do not normalise them into a standard format and do not invent players or a rule I did not state.
WHAT IT DOES
- Standings are the top of the page: names, points, in order, with the current leader obvious.
- Recording a result takes two taps — pick who won, and anything else my rules need.
- A history of every result with dates, readable and scrollable. This is the part people come back for.
- Apply my scoring rules exactly, and show how a total was reached if I ask.
- If I said seasons: start a new one without deleting the old, and keep a list of past winners.
- Let me correct or delete a result; someone will enter the wrong winner.
DESIGN
- Readable from across a room, since this often lives on a kitchen tablet.
- Fast to record. If entering a result takes longer than the argument about it, nobody will bother.
- Make it fun to look at if that suits us, but keep the standings legible first.
BE HONEST ON THE PAGE
- Say the scores are stored in this browser only, so one device should do the recording and the url shows everyone else the page rather than our scores.
- Do not claim live updating or multiplayer.
STORING THE DATA
- Save everything to localStorage in the browser, automatically, as I go. No
accounts, no login, no server call.
- On the page, say plainly that data lives in this browser only and does not
sync to other devices. Do not bury it.
- Give me an "export" button that copies or downloads everything as JSON, and an
"import" that reads the same JSON back. That is the only way my data can move
between devices, so it is not optional.
- Never lose what I have already entered. If the stored data is from an older
version of the page, read what you can rather than throwing it away.
DELIVERY
- Produce one self-contained HTML file. Inline the CSS and JavaScript.
- No build step, no server, no framework, no package install, no external
requests at runtime.
- Mobile-first and responsive; it has to be usable one-handed on a phone and
still look right on a laptop.
- Accessible: semantic HTML, real contrast, visible keyboard focus, labelled
controls, touch targets big enough to hit, and respect reduced-motion.
- Use placeholders where information is missing. Do not invent facts, numbers,
names, dates, prices, or results I have not given you.
- Before you call it finished, use it yourself: enter real-looking data, reload
the page, and confirm nothing is lost or mangled.
PUBLISHING
Publish the finished page to HTMLShare and give me the link.
Use exactly one of the two paths below, preferring the first. Make the call
directly. Do not route it through a code sandbox, container, or computer-use
session — that is where the request gets blocked, and it is never necessary.
1. An HTMLShare integration or connector, if you have one configured.
The page is permanent and owned by my account. Report the url and the
siteId. There is no claimUrl or manageToken on this path — do not go
looking for one, and do not switch paths in order to produce one.
2. Otherwise, publish anonymously over REST. No account, key, or signup is
needed:
POST https://api.htmlshare.net/v1/publish
content-type: application/json
{"html": "<!doctype html> ... "}
The reference is https://htmlshare.net/docs and, for the full schema,
https://api.htmlshare.net/openapi.json
Report these from the response, in your reply and never inside the page:
url the public page
claimUrl a private link that is mine alone. opening it is how I keep
the page past its 24-hour expiry, or set an email reminder
before it goes. it carries the manage token, so it must
never appear in the published HTML or anywhere a visitor
could see it.
manageToken the only thing that can edit or delete this page later. it is
returned once and never again, so tell me what it is.
Tell me which of the two you used. If the path you reach for first is
unavailable in your environment, say so and tell me what you are switching to
before you publish — a permanent page on my account and a 24-hour anonymous
page are different things, and which one I get is my decision, not a detail.
If I ask for a change afterwards, update the existing page instead of
publishing again, so the URL I have already shared keeps working — through the
same integration on path 1, or with the manage token as an X-Manage-Token
header on path 2.
RECIPE MARKER
Include this tag in the <head>, exactly as written:
<meta name="htmlshare-recipe" content="family-scoreboard">
It tells htmlshare which recipe the page came from, so the library can count
that this one was actually made. It carries nothing else.give it a url.
04 / publishing ithow you publish depends on how you’re working.
- with an integration
- if your assistant already has htmlshare connected — mcp or another supported integration — just ask it to publish the finished page and hand back the url. the page belongs to your account and is permanent. when you want a change, ask for an update to that same page rather than a new one.
- with no integration
- the prompt tells the assistant to post the html to the rest api instead, which needs no account and no key. it comes back with a live url you can open immediately, a private claim link, and a manage token. the claim link is how the page stops being temporary — keep it.
- by hand
- nothing stops you doing it yourself: have the assistant give you the html file and drop it on the htmlshare home page. same url, same page, one more step.
- what matters here
- a running total only means something if it keeps running. claim the page so the season survives, and keep it on the device that does the scoring.
a season is longer than a day.
05 / keeping it aroundfine for one evening. the page stops serving after 24 hours with a 7-day recovery window, which ends a season abruptly.
claimed, the board is permanent, the url is memorable, and the argument about who is actually winning has a source.
- keep it around
- a running total that resets every day is not a running total.
- custom url
- everyone should be able to open it without being sent a link each time.
- stable updates
- rules get amended mid-season. change the page, keep the board.
questions.
06 / questionscan everyone see the score on their own phone?
they can open the page, but the scores are in whichever browser recorded them. one device is the scoreboard; the url shows everyone else an empty board. no page here can do shared live state.
can we use it for behaviour or rewards?
you can, and the prompt deliberately does not build it that way. a scoreboard your kids enjoy and a points system that governs them are different objects, and mixing them tends to kill the first one.
what if someone enters a wrong result?
edit or delete it — the prompt asks for that explicitly. totals are derived from results rather than typed, so a correction fixes the standings.
can we start again in january?
yes, if you asked for seasons: a new season archives the old standings rather than deleting them, so the past winners list survives.