Put Beacon — bug, feature-request and feedback reporting — into someone's macOS or iOS app, and set up the pickup that works the reports. Use when asked to "set up Beacon", "add Beacon to my app", "install Beacon", "add a feedback button", "get bug reports from my testers", "publish the Beacon page", or "set up the triage pickup". Walks one of the two setup paths (Claude-only, or GitHub) end to end from the documentation that ships with this skill, and never touches infrastructure the person did not ask for.
Instal·la
npx skillscat add up-coast/beacon/beacon-setup Instal·la des del registre de SkillsCat.
Setting Beacon up for someone
This skill lives at .claude/skills/beacon-setup/ inside the Beacon
repository — a clone of it, or the copy this plugin installed. Two
directories up from this file is the repository root, and everything you
need is there: docs/ (the public documentation, which is the source of
truth for every step below), Scripts/, Triage/, Inbox/index.html and
the Swift package itself. Find that root first:
BEACON="$(cd "$(dirname "<path to this SKILL.md>")/../../.." && pwd)"
ls "$BEACON/docs"Read docs/README.md there before anything else. The steps below say what
order to do things in and what to ask; the pages under docs/ say how, and
they win wherever the two seem to differ.
1. Find out which path
Ask, in one message, unless the answer is already clear from what they said:
- Do they track work in GitHub? No GitHub → the Claude-only path
(docs/setup-claude-only.md): reports go to a page they own, and its dashboard
is the whole tracker. Yes → ask who reports. Developers or a team with
GitHub accounts → the GitHub path (docs/setup-github.md): reporters
sign in with GitHub, reports become labelled issues, and the page is
optional. The app's users, with no GitHub account → the relay
(docs/setup-relay.md): reporters stay anonymous and never see GitHub,
and a relay the owner runs files the issues. - Which app, where is its source, and which platform (macOS, iOS, both)?
- Where should they be told when something happened? A Slack channel
through a connector, an email, or nowhere.
Do not ask for anything the documentation does not need.
2. Do the path, in the documentation's order
Follow the numbered steps of the chosen setup page exactly. In outline:
Claude-only path
- Publish
Inbox/index.htmlfrom the repository root as an artifact with
thedbandartifactcapabilities and the favicon 🎇. Load theartifact-capabilitiesskill first if it is available. The link it gives
back is their Beacon page; tell them to keep it. - Have them open the page link and add each app in the page's Apps
view (Add your first app on an empty page): name, platform, folder,
and On this page for where reports are worked. If they would rather
you did it, write oneapps/<id>document per app withname,platform,folderandtracker: "board". - Put the button in the app (
docs/quickstart.md, steps 1 to 3). - Set up the pickup (below).
GitHub path
- Run
Scripts/beacon-adopt-github.sh <app checkout> <owner/repo>from the
repository root. It needsghsigned in. Commit what it copied. - Tell them to register a GitHub OAuth App with Device Flow enabled
(docs/setup-github.md, step 2). That is theirs to do — it is a
sign-in on their account. Ask for the Client ID when they have it. - Configure the app (
docs/setup-github.md, step 4, anddocs/quickstart.md). - Optionally publish the page and board, with each app's
trackerset togithub(the Claude-only path's steps 1 and 2). - Set up the pickup (below).
Relay
- Run the adoption script as on the GitHub path, step 1.
- Tell them to create and install the GitHub App, and to deploy the relay
to Supabase with its secrets (docs/setup-relay.md, steps 1 to 3).
Those are theirs to do — sign-ins, a private key and infrastructure on
their accounts. Ask for the relay's address and the app token when they
have them. - Configure the app (
docs/setup-relay.md, step 4). - Set up the pickup (below).
The pickup, any path. Copy the prompt from Triage/PICKUP.md, fill in
its four values (their page link, the path to this repository, the folder
their code lives under, and where to notify), and offer it as a scheduled
task in Claude Code, daily, or as a prompt they paste when they want a run.
The pickup needs gh signed in to their GitHub account and python3 on the
Mac that runs it: it runs Scripts/mirror-board.py (the dashboard follows the
issues) and Scripts/push-edits.py (what they change on the dashboard reaches
the issues at the next run, because the page cannot call GitHub). Tell them
that, and that "Run now" on the task applies a change at once. On the
GitHub path there is also the copied workflow, which needs the Claude GitHub
App and one secret — both theirs to add; say so and point at the setup page.
The worker, any path. Copy the prompt from Triage/WORKER.md, fill in the
same values, and offer it as a second scheduled task in Claude Code: hourly,
permission mode Auto. The pickup triages and fills To do; the worker builds
what is in To do and flags a report Blocked (with a comment on the issue)
when it cannot finish. Ask before creating either task.
3. Prove it
Build the app, press the button, send a test report, and show them where it
landed: the dashboard at their page link (it opens there), or the issue in
their repository. A setup that has not filed one report is not finished.
Never
- Create, change or delete anything on an account they did not ask you to
touch: no OAuth Apps, no repository secrets, no GitHub App installs, no
scheduled tasks they have not agreed to. Say what is theirs to do and stop. - Enter a token, secret or password anywhere. The Client ID is public by
design and is the only value you handle. - Edit a published page by hand.
Inbox/index.htmlis the one home;
republish from it. - Skip the test report.