Skip to content

basou: chart the period and effort on the board page of basou view - #330

Merged
takashi-matsuyama merged 5 commits into
mainfrom
board/view-charts
Oct 7, 2026
Merged

takashi-matsuyama merged 5 commits into
mainfrom
board/view-charts

Conversation

@takashi-matsuyama

Copy link
Copy Markdown
Member

Summary

The period and effort section of the board page of basou view (experimental board) now shows its days.

  • Six counts: elapsed, active, Claude, Codex, per day (over the days from the start to today, with the figure over the days worked beside it), and output tokens. Below them, the commits since the start.
  • Three charts, built as SVG nodes in the page (no library, nothing fetched):
    • The milestones on a line from the start.
    • The active time by day, with Claude's time and the rest not at the same time stacked. The rest is everything not Claude's: Codex's, and work by hand or in a terminal. A record's days cannot tell Codex's alone apart.
    • The running total of the active time, with the milestones as dashed lines.
  • Hover and table view: a day's figures show on hover, and a table gives the same by week, from Monday.
  • Totals: a day or a week part of which was not measured is not totalled; its commits and days worked show as not measured. With no Codex session at all, the week table's Codex column says so.
  • Malformed records: a record whose day is not a date of the calendar is not drawn, and the page says so in its own language.
  • Chart text: month labels too close together are left out. Milestone labels are kept inside a chart and off each other.
  • Appearance: the page's colours now come from variables chosen for light and dark. On a narrow screen a chart keeps a readable width and scrolls in its own frame. The page itself does not scroll sideways.

Verification

  • CI steps run locally with exit codes, after the last commit: pnpm -r build, pnpm typecheck, pnpm -r test:coverage, pnpm test:scripts, pnpm lint (the existing warnings only), pnpm lint:lang, pnpm lint:paths, and pnpm audit --prod: all 0. Board and view tests pass under TZ=UTC, Asia/Tokyo and America/New_York.
  • Chart colours: two categorical slots, checked in light and dark for colour-vision separation, lightness, chroma and contrast against the surface. All pass.
  • In a browser, with a record of 162 days measured from a real workspace:
    • The week table matches the board it replaces.
    • Labels are neither cut off nor overlapping.
    • Light and dark colour schemes and a 375px width were checked, with no console errors and no sideways scroll.
  • Mutations: 31, all caught, applied on the final code. They cover the days, weeks and totals, the date check, the stack, the axis labels, the label placement, the per-day figure and the week table.
  • Review: one round of convergent review (review only). Nine findings, all fixed:
    • The stacked part named Codex though it holds all time not Claude's.
    • Days worked shown as 0 when not measured.
    • The Codex column with no Codex session.
    • The per-day figure over-counting today.
    • Partial commit totals.
    • A bad date in a record causing a 500.
    • Labels cut off or overlapping.
    • A stack drawn above its total.
    • Tests that defined the chart's constants themselves.

🤖 Generated with Claude Code

takashi-matsuyama and others added 5 commits October 7, 2026 21:35
The period and effort section of the board page now shows six counts
(elapsed, active, Claude, Codex, per day, output tokens), the commits since
the start, and three charts built as SVG nodes: the milestones on a line
from the start, the active time by day with Claude's time and the part of
Codex's not at the same time stacked, and the running total of the active
time with the milestones as dashed lines. A day's figures show on hover,
and a table gives the same by week, from Monday. The page data carries the
days, the running total and the weeks, from the record's daily rows.

The page's colours now come from variables, chosen for light and dark, and
a chart keeps a readable width on a narrow screen, scrolling in its own
frame.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… what was measured

The part of a day's active time above Claude's is everything not Claude's
(Codex's, and work by hand or in a terminal), so it is now named that way;
a record's days cannot tell Codex's alone apart. A day or a week part of
which was not measured no longer shows a partial total: its commits and
days worked are not measured. The per-day figure divides by the days from
the start to today, the days the active time covers. With no Codex session
at all, the week table's Codex column says so. A day that is not a date of
the calendar makes the record not one the page draws, said in the page's
language. Milestone labels are kept inside a chart and off each other, and
a stack's top stands at the day's total.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@takashi-matsuyama
takashi-matsuyama merged commit cbd0cad into main Oct 7, 2026
8 checks passed
@takashi-matsuyama
takashi-matsuyama deleted the board/view-charts branch October 8, 2026 05:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant