bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證brandrune.com: the site for Brandrune, the free Claude Code naming skill
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗The site for Brandrune, the free Claude Code naming skill. A Cloudflare Worker with static assets, on its own custom domains (brandrune.com and www.brandrune.com, no wildcard route).
public/: the home page (index.html, home.css, app.js), the shared
style.css, the OG image, the brand guide at /brand/, the sample results pages
under /sample/, the replay data at /demo/run.json, and /confirmed/.src/worker.js: serves the assets with security headers, redirects www and
http to https://brandrune.com, and handles the double opt-in signup
(POST /api/subscribe, GET /confirm, POST /api/confirm).public/ph.js and public/ph-init.js: PostHog pageview counting, served from
this origin. ph.js is posthog-js 1.438.7 dist/array.no-external.js (one em dash
escaped as \u2014, sourcemap line dropped); to upgrade, copy that file from the
new npm tarball and keep the same edits. ph-init.js holds the key and options.
The worker's own pages (/confirm and its errors) load neither: that URL carries
the subscriber's email and token. Regenerating public/sample/ with the skill drops
the two script tags; add them back at the end of the head, after the closing </style>.demo-run/: the recorded run the home page replays (an invented plant-care app,
150 names on .com and .ai, checked 2026-10-10). build.py turns its
results.json into public/demo/run.json using the skill's own status labels:
python3 demo-run/build.py /path/to/skills/brandrune/scripts/brandrune.py. The
skill's HTML page from the same run is public/sample/plant-care/index.html.
test/static.test.js fails if the page's printed tallies or picks drift from the data.sample-run/: the invented project, names and registry results behind
public/sample/. Regenerate with the skill's script:
python3 brandrune.py check sample-run/names.txt --tlds com,ai --description-file sample-run/about.txt --out sample-run/results.json --html public/sample/index.htmlbrand-src/: the logo system as code. geometry.py builds the carved
berkanan mark and the drawn wordmark from one 30 degree construction;
build.py writes every SVG into public/brand/assets/ (plus
public/favicon.svg); render.mjs renders the PNGs, public/og.png and
public/apple-touch-icon.png with headless Chromium.python3 -m venv .venv && .venv/bin/pip install shapely==2.2.0
.venv/bin/python brand-src/build.py # SVGs
PLAYWRIGHT_CORE=/path/to/node_modules/playwright-core node brand-src/render.mjs # PNGs, og.png, apple-touch-icon.png
.venv/bin/python brand-src/build.py zip # brandrune-brand-assets.zip
The SVGs carry no <style> and no live text in the logo itself, so they
render the same everywhere and pass the site CSP when opened directly. The
social card template keeps its headline as live text on purpose, so it can
be edited.
The "Is yourname.com open?" box on the home page asks Verisign's RDAP server
straight from the browser (Verisign sends Access-Control-Allow-Origin: *, and the
request uses only a CORS-safelisted Accept header, so there is no preflight). The
site never sees the name. It applies the skill's rules for one extension and no
price check: a 404 only counts when it is served as application/rdap+json,
redirects are not answers, and a "no record" is only trusted after nic.com or
google.com comes back registered. A trusted no-record shows as open*. The CSP
allows connect-src https://rdap.verisign.com https://us.i.posthog.com and nothing else off-site. The
parking list in app.js is copied from brandrune.py 0.3.0; keep them in step.
POST /api/subscribe checks the Origin (SITE_ORIGIN), rate limits per IP
(SUBSCRIBE_LIMITER, 5 a minute), refuses a body over 2 KB by Content-Length
before reading it (and cuts off an undeclared one at the cap), validates the
address, and treats a filled honeypot field as success. Then it emails a
confirmation link from CONFIRM_FROM. Nothing is written to the Resend
audience at this step.+tag
dropped, lowercased, and for gmail.com and googlemail.com its dots dropped
(capKey in src/worker.js):
CONFIRM_COOLDOWN)
keyed on a SHA-256 of that address, with a 24 hour TTL;CONFIRM_EMAIL_LIMITER, 2 a minute), which
covers the time KV takes to agree across locations;GLOBAL_SEND_LIMITER, 10 a minute, keyed on a
constant). Workers rate limits count per Cloudflare location, so this is a cap
per location, not a hard global one.
An address that is already confirmed, or inside its cooldown, gets the same
answer and no email, so the form does not reveal who is on the list. If any cap
binding is missing, the endpoint answers 503 and sends nothing.GET /confirm?t=<token>. The token is
base64url(email).expiry.HMAC-SHA256 over a purpose tag, the address and the
expiry, signed with CONFIRM_SECRET, good for 48 hours. The GET only shows a
button; link scanners follow GETs, so nothing changes until a person clicks.POST /api/confirm checks the token again and creates the contact in the
audience "Brandrune updates" (RESEND_AUDIENCE_ID) as subscribed. Resend treats
a create for an existing address as an update (checked 2026-10-10), so an address
that unsubscribed and confirms again is resubscribed; a 409 falls back to an
explicit update. Then it 303s to /confirmed/.No other signup data is kept. The site counts pageviews and referrers with PostHog
(self-hosted /ph.js, pageviews only, no profiles, no session recording,
no autocapture). It does not track what you type or name in Brandrune.
Responses carry Cache-Control: no-transform so the edge does not inject a
third-party beacon.
KV namespaces: brandrune-confirm-cooldown (production, bound in wrangler.jsonc)
and brandrune-confirm-cooldown-preview. The preview worker uses the Resend
audience "Brandrune updates (preview test)", never the production audience.
Secrets, set with wrangler secret put <NAME>:
RESEND_API_KEY: a dedicated full-access Resend key (brandrune-site; contacts
need full access).CONFIRM_SECRET: any long random string, for example
python3 -c "import secrets; print(secrets.token_urlsafe(32))". Without it the
signup answers 503 and stores nothing.Sender: CONFIRM_FROM in wrangler.jsonc. It is [email protected] because the
Resend plan is at its domain limit and brandrune.com could not be added. Once
brandrune.com is a verified Resend domain, change it to Brandrune <[email protected]>.
npm install
npm test # worker unit tests and static checks on public/, offline
npx wrangler secret put CONFIRM_SECRET # once, before the first deploy with double opt-in
npx wrangler deploy
Light mode only, colors set explicitly. Brand rules live in the Brandrune
workspace's brand.md.