- apps/desktop: electron-vite + React + Tailwind mapped onto design tokens (preflight off; tokens/base.css owns the reset); boots to a Reginald placeholder proving fonts/tokens/core wiring - packages/core: pure TS; gitea label schema (est/*, p/*, deadline/hard) with pessimistic conflict resolution + 15 unit tests - docs/design: full design handoff (tokens, 16 component contracts, interactive 14-screen prototype, Reginald voice rules) - docs/PLAN.md: product plan (purity rule, pm-state repo, deterministic scheduler + Monte Carlo, directive log) - Deliberate deviation from novelpad stack: no ElectricSQL/PGlite — local store is a rebuildable cache over gitea REST/webhooks (better-sqlite3 in main process, arriving in P1) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
9 lines
371 B
Markdown
9 lines
371 B
Markdown
Text input; focus is a spruce border, errors are stated plainly.
|
|
|
|
```jsx
|
|
<Input label="Gitea base URL" icon="link" mono placeholder="https://gitea.example.io" />
|
|
<Input label="Milestone name" error="Every milestone needs a name. Even a bad one." />
|
|
```
|
|
|
|
`mono` for machine values (URLs, tokens, label strings). Error copy may carry the wit; the field itself stays sober.
|