尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A single-page tool for turning a pasted Jira ticket export into a monthly delivery board: a "what shipped this month" report you can review, write up, and share.
Sign-in is required — with an @BHphoto.com email address — before the board is shown. See Cloud sync below.
Paste ticket rows (tab/comma/pipe-separated, or a raw Jira multi-line export) and it builds:
Everything runs client-side in one HTML file — no build step, no backend required. Board state lives in memory for the session; use Save this month to persist a board to the browser's local storage and reload it later from Saved months.
Also has a star-to-save-for-later feature (Year in review, for pulling together an end-of-year report).
The Saved months card has:
The board's grouping options (release, sprint, portfolio, priority, reporter) now include Group by month, which groups rows by which saved month they came from and orders the groups newest-first. It's used automatically by Load all to board, and can also be picked directly from the grouping dropdown.
Starring an item for Year in review before its writeup (what we were solving / what shipped / impact to watch) is filled in no longer freezes that entry blank — editing the row afterward keeps the year-in-review entry updated with the latest text.
The whole app sits behind a sign-in screen (email + password, via Firebase Authentication), restricted to @BHphoto.com addresses — enforced both client-side (the form rejects other domains before ever calling Firebase) and by Firestore's own security rules (firestore.rules), so it holds even if the client-side check is bypassed. New accounts get a verification email and can't use the app until they click it.
Once signed in, everything that keeps Main board, Dashboard, and Updates populated — the current board itself (rows, period, your name, notes, grouping) — plus your saved months and starred items also sync to your own Firestore document, so they follow you to any browser or device you sign into. Auto-save: every 10 seconds, if anything on the board changed, the app saves it — to this browser, into Saved months (under the board's period, as if you'd clicked Save this month), and to your account when signed in. It also saves right away when you switch tabs or close the page. The full date and time of the last save (e.g. "Last auto-save: Tue, Oct 27, 2026 at 5:49:42 PM") shows at the top right of the board and in the Saved months card, and is remembered across reloads. When the board holds several months (Load all to board), each row is saved back to its own month. Signing in for the first time on a browser that already has a cloud copy asks before overwriting what's in that browser. Nothing is uploaded until your cloud copy has been read, so reopening the app can't overwrite newer edits from another device; if the two copies already match, you aren't asked at all. Next to your email in the toolbar, Saved to account confirms each sync, and Not saved to account (with an explanation) shows if Firestore rejects a write — usually because firestore.rules hasn't been published yet.
Signing in lasts 4 hours (tracked from the moment you sign in, independent of activity — reloading the page doesn't reset it), after which you're automatically signed out and shown the login screen again. Right before that happens, whatever's currently on the board — even if you never clicked Save this month — is saved into Saved months so nothing is lost. A normal reload or new tab in the meantime doesn't ask you to sign in again.
To enable this on your own Firebase project:
firestore.rules's contents into the Firestore Rules tab and publish.The Firebase web config is inlined directly in index.html (these values are public client identifiers by Firebase's own design — the security rules above are what actually restrict access, not hiding this config).
Open index.html directly in a browser, or serve it locally:
python3 -m http.server 8000
then visit http://localhost:8000.
The included GitHub Actions workflow (.github/workflows/deploy.yml) publishes index.html to GitHub Pages on every push to main. Enable it under the repo's Settings → Pages → Source: GitHub Actions.