From 35feec81fefdea69fda1f89f6b78f107d2eb041b Mon Sep 17 00:00:00 2001 From: NikolaiKushner Date: Sun, 9 Aug 2026 15:38:06 +0400 Subject: [PATCH 01/12] feat/plan-and-fixes --- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .gitignore | 1 + .prettierignore | 2 +- AGENTS.md | 12 +- CLAUDE.md | 15 +-- NEXT.md | 74 +++++++++++++ README.md | 4 +- ROADMAP.md | 82 -------------- docs/.vitepress/config.ts | 6 +- docs/components/dialog.md | 2 +- docs/components/tooltip.md | 4 +- docs/contributing.md | 4 +- docs/index.md | 2 +- docs/installation.md | 2 +- docs/introduction.md | 4 +- docs/next.md | 65 +++++++++++ docs/roadmap.md | 110 ------------------- package.json | 1 + packages/ui/README.md | 2 +- scripts/visual-check.mjs | 122 +++++++++++++++++++++ 20 files changed, 296 insertions(+), 220 deletions(-) create mode 100644 NEXT.md delete mode 100644 ROADMAP.md create mode 100644 docs/next.md delete mode 100644 docs/roadmap.md create mode 100644 scripts/visual-check.mjs diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 1f8d4e3..0a72349 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -14,7 +14,7 @@ body: attributes: label: Scope check options: - - label: I have read [Considered, not planned](https://github.com/NikolaiKushner/rowkit/blob/main/ROADMAP.md#considered-not-planned) and this is not on that list. + - label: I have read [what's next / out of scope](https://github.com/NikolaiKushner/rowkit/blob/main/NEXT.md) and this is not on that list. required: true - label: I understand rowkit is twelve components by design, and that a new component is unlikely to be accepted. required: true diff --git a/.gitignore b/.gitignore index 250338d..d8be247 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ storybook-static/ npm-debug.log* pnpm-debug.log* plan.md +.visual-check/ # VitePress build output and cache docs/.vitepress/dist diff --git a/.prettierignore b/.prettierignore index 430737a..5f0e5ac 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,6 +11,6 @@ CHANGELOG.md # Hand-written prose at the repo root — Prettier reflows tables and emphasis # markers in ways that churn the diff without improving anything. /README.md -/ROADMAP.md +/NEXT.md /CLAUDE.md /AGENTS.md diff --git a/AGENTS.md b/AGENTS.md index f73a6c2..52dd418 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,8 +16,8 @@ Instructions for coding agents working **on** rowkit. with a public surface. Prop naming, state ownership, event and slot shapes and the recurring accessibility patterns are decided there, once, for every component. -- **[`ROADMAP.md`](./ROADMAP.md)** — before proposing a component. The scope is - twelve, and that is a decision rather than a stage. +- **[`NEXT.md`](./NEXT.md)** — the working backlog. Scope stays twelve + components; do not propose a thirteenth. ## Commands @@ -29,6 +29,10 @@ pnpm typecheck # vue-tsc, strict pnpm format # prettier pnpm size # bundle budget, brotli +pnpm storybook # then, in another terminal: +pnpm visual:check # screenshot default stories, light + dark → .visual-check/ +pnpm visual:check Button # scoped to one component + pnpm docs:props # regenerate the props tables after touching a prop or its JSDoc pnpm docs:agents # regenerate packages/ui/AGENTS.md, likewise ``` @@ -37,6 +41,10 @@ pnpm docs:agents # regenerate packages/ui/AGENTS.md, likewise the type checker all resolve `rowkit` through `packages/ui/dist`, and an unbuilt workspace produces a wall of confusing type errors rather than one clear one. +After any change that touches variants, tokens, layout, or dark mode: run +`pnpm visual:check`, **Read the PNGs**, and fix what looks wrong before claiming +done. Styling fails silently — screenshots are how agents catch it. + ## Three things that are true here and not everywhere **Backward compatibility matters.** rowkit is a published package with semver and diff --git a/CLAUDE.md b/CLAUDE.md index b2eb55d..898de9a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ Repository: `github.com/NikolaiKushner/rowkit` Package: `rowkit` on npm Docs: `rowkit.dev` -Read `ROADMAP.md` before proposing new components. The scope is fixed at twelve components for v1.0. +Read `NEXT.md` before proposing work. The component set is fixed at twelve — do not start a thirteenth. The backlog is polish, proof, and process, not new surface area. Read `docs/conventions.md` before designing a component API. Prop naming, state ownership, event and slot shapes, and the recurring accessibility patterns are decided there, once, for every component. @@ -14,14 +14,9 @@ Read `docs/conventions.md` before designing a component API. Prop naming, state ## Stack -- **Vue 3.5+** — Composition API, `