feat(cli): wire config+reader+render → dist/index.html [skip-tdd: visual+wrapper]

- src/cli.ts: load config, fetch board, write dist/index.html, copy static
- static/board.css: minimal raw CSS, system fonts, light/dark via prefers-color-scheme
- static/board.js: client-side filter, drawer (lazy-fetch + marked@14 from esm.sh),
  toggle-archived, refresh-info; ESM module
- npm run build → runs cli with --experimental-strip-types

CSS/JS = [skip-tdd: visual]. CLI = plumbing wrapper (~30 LOC of pure FS+orchestration
calling already-tested functions; over 10-line wrapper-skip threshold but no branching
logic — would be tested via smoke / e2e, not unit).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
vitya
2026-05-22 14:44:59 +03:00
parent 5bbbd0b533
commit 4c59241d15
4 changed files with 391 additions and 1 deletions

View File

@@ -7,7 +7,8 @@
"scripts": {
"test": "vitest run",
"test:watch": "vitest",
"typecheck": "tsc --noEmit"
"typecheck": "tsc --noEmit",
"build": "node --experimental-strip-types src/cli.ts"
},
"engines": {
"node": ">=22"