6 Commits (1cd5348d863de7b225cd8278f746f6ee7547c579)

Author SHA1 Message Date
Elijah Voigt 1cd5348d86 feat(bit-by-bit): score streaks per-habit instead of day-level
Replace the global day-level streak + triangular(checks) multiplier
with per-habit streaks: each habit tracks its own consecutive-day
streak and reveals pixels equal to that streak length when checked.
Removes the global streak header/stat chip in favor of an inline
streak badge on each habit row.
4 days ago
Elijah Voigt c6a87a3336 chore(bit-by-bit): record escalating daily pixel reward tickets
Beans records for the triangular per-day reveal work (Nth habit check
of the day reveals N units): vibed-fdph (completed, with the shipped
implementation summary) and a duplicate vibed-i315 opened in the same
session. Retained for the historical task record.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
6 days ago
Elijah Voigt e42c3c731c chore: plan hltb CLI (HowLongToBeat search tool)
Milestone vibed-f05l and its seven subtasks laying out a new Rust CLI
binary that queries howlongtobeat.com and prints completion times.
Covers project init, request/response types, CLI arg parsing, the
HTTP search call, output formatting, and a validation/smoke-test pass.
No implementation yet — planning only.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
6 days ago
Elijah Voigt 1259e28865 feat(bit-by-bit): streak-multiplier rewards, Data tab with wipe, footer, onboarding upload [vibed-nf6g]
- Reward is now streak-multiplied: units per day = streakOnDay(d) × triangular(checks);
  recalibrate pixelsPerCheck (÷ triangular(30)) and the upload finish-day estimate.
- Rename the "Backup" settings tab to "Data" and add a double-confirm "Wipe all data" action.
- Add a page footer disclosing authorship (Claude Code — Sonnet 5, Opus 4.8 & Fable 5).
- About page now explains exactly how pixels are earned (per-check escalation + streak multiplier).
- Allow uploading an image during first-run onboarding, not just presets.
- Update DESIGN.md, ARCHITECTURE.md, README.md to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 week ago
Elijah Voigt 757d6ad6f5 feat(bit-by-bit): pixel-art habit tracker with live favicon [vibed-nz22]
Add Paint by Habits, a local-only single-file HTML habit tracker that
reveals a pixel-art image as daily habits are checked off.

The browser-tab icon is a 64x64 miniature of the current artwork —
revealed pixels solid, unrevealed ones a two-tone checker — drawn into
an offscreen canvas and set as a data-URL PNG, so the tab fills in with
the art and the page still makes zero network requests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 week ago
Elijah Voigt 2dd808cdd3 chore: migrate task tracking from nbd to beans
Replace all .nbd/ ticket stores with .beans/ directories across the
mono-repo (root, edu, nbd, quotesdb). Field mappings: status todo→todo,
in_progress→in-progress, done→completed, closed→scrapped,
archived→completed, backlog→draft; priority numeric→label; type
project→epic. All dependency relationships preserved via --blocked-by.

Add scripts/migrate-nbd-to-beans.sh for reproducible future migrations.

Update CLAUDE.md task-tracking sections (root, edu, nbd, quotesdb) to
reference beans commands instead of nbd commands.

Counts: root 2, edu 48, nbd 38, quotesdb 121 beans created; 0 failures.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 months ago