@appsforgood/next-supabase-kit 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +2 -1
  3. package/UPGRADE.md +12 -0
  4. package/USER_GUIDE.html +9 -2
  5. package/USER_GUIDE.md +1 -0
  6. package/dist/index.js +319 -242
  7. package/dist/index.js.map +1 -1
  8. package/examples/next-supabase-installed/.antigravity/runtime-skills/deslop/SKILL.md +7 -1
  9. package/examples/next-supabase-installed/.antigravity/runtime-skills/frontend-design/SKILL.md +3 -1
  10. package/examples/next-supabase-installed/.antigravity/runtime-skills/planning/SKILL.md +1 -1
  11. package/examples/next-supabase-installed/.antigravity/runtime-skills/testing-qa/SKILL.md +2 -0
  12. package/examples/next-supabase-installed/.cursor/skills/deslop/SKILL.md +7 -1
  13. package/examples/next-supabase-installed/.cursor/skills/frontend-design/SKILL.md +3 -1
  14. package/examples/next-supabase-installed/.cursor/skills/planning/SKILL.md +1 -1
  15. package/examples/next-supabase-installed/.cursor/skills/testing-qa/SKILL.md +2 -0
  16. package/examples/next-supabase-installed/USER_GUIDE.html +9 -2
  17. package/examples/next-supabase-installed/USER_GUIDE.md +1 -0
  18. package/examples/next-supabase-installed/skills/deslop/SKILL.md +7 -1
  19. package/examples/next-supabase-installed/skills/frontend-design/SKILL.md +3 -1
  20. package/examples/next-supabase-installed/skills/planning/SKILL.md +1 -1
  21. package/examples/next-supabase-installed/skills/testing-qa/SKILL.md +2 -0
  22. package/package.json +1 -1
  23. package/skills/deslop/SKILL.md +7 -1
  24. package/skills/frontend-design/SKILL.md +3 -1
  25. package/skills/planning/SKILL.md +1 -1
  26. package/skills/testing-qa/SKILL.md +2 -0
@@ -38,7 +38,7 @@ Second pass: re-read the rewrite. If the same tell remains, rewrite the paragrap
38
38
 
39
39
  ## Visual P0s — fail if still on screen
40
40
 
41
- These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
41
+ These are the 2026 flat AI/SaaS chrome cluster (same family as accent-border cards, glow rails, and card soup). One is a smell. Two or more is a reject. A pick-list row or status well with a left stroke is already a fail.
42
42
 
43
43
  - Purple-to-blue (or indigo) gradient hero, or gradient-clipped headline type
44
44
  - Inter / Roboto / default shadcn zinc as the whole identity
@@ -48,6 +48,12 @@ These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
48
48
  - Acid green or neon vermilion on near-black used as decoration, not meaning
49
49
  - Lucide Sparkles / Zap as the product metaphor
50
50
  - Fake dashboard metrics or DiceBear avatars
51
+ - Left accent bars / left-hand borderlines on selected rows, list items, cards, or success/error/warn wells (the “colored stroke on the left edge” pattern)
52
+ - Thick one-sided colored borders, glow rails, neon strokes, or gradient borders used as the main state cue
53
+
54
+ Selection must use radio/checkbox + light row tint (or weight/space) only. Status wells may use a flat tint fill. No `border-left` accent, no inset bar, no vertical rail as decoration. Keep one accent for the primary CTA, not as a row edge.
55
+
56
+ **Acceptance fixture:** a pick-list row and a “verified” well must pass with **zero** left border accents. If screenshots show a blue/green/amber left stroke, deslop fails.
51
57
 
52
58
  Copy does not restyle the page. It lists the P0s from the screenshot and sends them to Design.
53
59
 
@@ -77,7 +77,9 @@ One family, or two that are obviously different (display vs mono). Inter + syste
77
77
  - Mobile (~390): the primary CTA still fits above the fold.
78
78
  - Hierarchy from size, weight, and space — not from cards.
79
79
  - Landing and marketing pages take a full direction. App chrome (settings, tables) stays quiet and dense.
80
- - Reject: centered hero + two pills + three icon cards; glass navbar; four-column empty footer; fake metrics; broadsheet hairlines + dense newsprint columns (that look is itself a 2026 default).
80
+ - Do not mark selection or severity with a left edge stroke. That pattern reads as default AI/SaaS chrome even on flat full-bleed sheets.
81
+ - Prefer: radio + tint, check + tint, or typography/weight. Keep one accent for the primary CTA, not as a row edge.
82
+ - Reject: centered hero + two pills + three icon cards; glass navbar; four-column empty footer; fake metrics; broadsheet hairlines + dense newsprint columns (that look is itself a 2026 default); left selection rails; callouts whose only cue is a thick left border.
81
83
 
82
84
  ## Motion
83
85
 
@@ -28,4 +28,4 @@ Owner, extra reviewers, required skills, preserved behavior, and required screen
28
28
 
29
29
  ## Reject
30
30
 
31
- Implementing in the planning pass. Asking one chat to play every role. Skipping `supabase-auth-rls` because “it’s just a table.”
31
+ Implementing in the planning pass. Asking one chat to play every role. Skipping `supabase-auth-rls` because “it’s just a table.” Skipping `nextjs-app-router` because the route is small.
@@ -18,6 +18,8 @@ Adding or reviewing tests, smoke checks, or regression coverage.
18
18
  - Network failure, empty, and error behavior is covered.
19
19
  - Gaps are named when infrastructure is missing.
20
20
 
21
+ If the change is App Router, Auth/RLS, or a migration, tests must cover those contracts. This skill does not replace `nextjs-app-router`, `supabase-auth-rls`, `postgres-migrations`, or `owasp-security-review`. Visual proof of a screen still uses `browser-qa`.
22
+
21
23
  ## Visual proof
22
24
 
23
25
  User-visible screens also require `browser-qa`. This skill does not replace screenshots. Passing `toBeVisible` is not image review.
@@ -220,12 +220,15 @@
220
220
  }
221
221
 
222
222
  .rule {
223
- border-left: 4px solid var(--safelight);
224
223
  padding: 0.7rem 0.9rem;
225
- background: #1a1814;
224
+ background: #23160f;
226
225
  margin: 0 0 1.4rem;
227
226
  }
228
227
 
228
+ .rule strong {
229
+ color: var(--safelight);
230
+ }
231
+
229
232
  .steps {
230
233
  display: grid;
231
234
  gap: 0.85rem;
@@ -763,6 +766,10 @@ npx agent-kit update</pre>
763
766
  <td>QA finished from the diff</td>
764
767
  <td>Reject it. Re-run with the good QA prompt.</td>
765
768
  </tr>
769
+ <tr>
770
+ <td>GitHub shows this page as code</td>
771
+ <td>Open <code>USER_GUIDE.html</code> in a browser, or run <code>npx agent-kit guide</code>. GitHub does not render the layout.</td>
772
+ </tr>
766
773
  <tr>
767
774
  <td><code>doctor</code> fails the guide</td>
768
775
  <td>The screenshot fail-closed sentence must stay in <code>USER_GUIDE.md</code> and this page.</td>
@@ -179,5 +179,6 @@ Pristine files refresh. Local edits win or land in `.agent-kit/conflicts/`. Do n
179
179
  | Skill not triggering | Mention the skill name (`browser-qa`) or `@` it in Cursor. |
180
180
  | No browser in Copilot / Codex | Use the Playwright commands in `browser-qa`. |
181
181
  | QA finished from the diff | Reject it. Re-run with the good QA prompt above. |
182
+ | GitHub shows `USER_GUIDE.html` as code | Open the file in a browser. Run `npx agent-kit guide` to print the path. GitHub does not render the layout. |
182
183
  | `doctor` fails USER_GUIDE | The screenshot fail-closed sentence must stay in this file. |
183
184
  | Still have `QUALITY_GATES.md` / `COUNCIL.md` | Expected. `update` does not delete them. `doctor` lists leftovers. |
@@ -38,7 +38,7 @@ Second pass: re-read the rewrite. If the same tell remains, rewrite the paragrap
38
38
 
39
39
  ## Visual P0s — fail if still on screen
40
40
 
41
- These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
41
+ These are the 2026 flat AI/SaaS chrome cluster (same family as accent-border cards, glow rails, and card soup). One is a smell. Two or more is a reject. A pick-list row or status well with a left stroke is already a fail.
42
42
 
43
43
  - Purple-to-blue (or indigo) gradient hero, or gradient-clipped headline type
44
44
  - Inter / Roboto / default shadcn zinc as the whole identity
@@ -48,6 +48,12 @@ These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
48
48
  - Acid green or neon vermilion on near-black used as decoration, not meaning
49
49
  - Lucide Sparkles / Zap as the product metaphor
50
50
  - Fake dashboard metrics or DiceBear avatars
51
+ - Left accent bars / left-hand borderlines on selected rows, list items, cards, or success/error/warn wells (the “colored stroke on the left edge” pattern)
52
+ - Thick one-sided colored borders, glow rails, neon strokes, or gradient borders used as the main state cue
53
+
54
+ Selection must use radio/checkbox + light row tint (or weight/space) only. Status wells may use a flat tint fill. No `border-left` accent, no inset bar, no vertical rail as decoration. Keep one accent for the primary CTA, not as a row edge.
55
+
56
+ **Acceptance fixture:** a pick-list row and a “verified” well must pass with **zero** left border accents. If screenshots show a blue/green/amber left stroke, deslop fails.
51
57
 
52
58
  Copy does not restyle the page. It lists the P0s from the screenshot and sends them to Design.
53
59
 
@@ -77,7 +77,9 @@ One family, or two that are obviously different (display vs mono). Inter + syste
77
77
  - Mobile (~390): the primary CTA still fits above the fold.
78
78
  - Hierarchy from size, weight, and space — not from cards.
79
79
  - Landing and marketing pages take a full direction. App chrome (settings, tables) stays quiet and dense.
80
- - Reject: centered hero + two pills + three icon cards; glass navbar; four-column empty footer; fake metrics; broadsheet hairlines + dense newsprint columns (that look is itself a 2026 default).
80
+ - Do not mark selection or severity with a left edge stroke. That pattern reads as default AI/SaaS chrome even on flat full-bleed sheets.
81
+ - Prefer: radio + tint, check + tint, or typography/weight. Keep one accent for the primary CTA, not as a row edge.
82
+ - Reject: centered hero + two pills + three icon cards; glass navbar; four-column empty footer; fake metrics; broadsheet hairlines + dense newsprint columns (that look is itself a 2026 default); left selection rails; callouts whose only cue is a thick left border.
81
83
 
82
84
  ## Motion
83
85
 
@@ -28,4 +28,4 @@ Owner, extra reviewers, required skills, preserved behavior, and required screen
28
28
 
29
29
  ## Reject
30
30
 
31
- Implementing in the planning pass. Asking one chat to play every role. Skipping `supabase-auth-rls` because “it’s just a table.”
31
+ Implementing in the planning pass. Asking one chat to play every role. Skipping `supabase-auth-rls` because “it’s just a table.” Skipping `nextjs-app-router` because the route is small.
@@ -18,6 +18,8 @@ Adding or reviewing tests, smoke checks, or regression coverage.
18
18
  - Network failure, empty, and error behavior is covered.
19
19
  - Gaps are named when infrastructure is missing.
20
20
 
21
+ If the change is App Router, Auth/RLS, or a migration, tests must cover those contracts. This skill does not replace `nextjs-app-router`, `supabase-auth-rls`, `postgres-migrations`, or `owasp-security-review`. Visual proof of a screen still uses `browser-qa`.
22
+
21
23
  ## Visual proof
22
24
 
23
25
  User-visible screens also require `browser-qa`. This skill does not replace screenshots. Passing `toBeVisible` is not image review.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appsforgood/next-supabase-kit",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Agents, skills, and a user guide for Next.js and Supabase projects. QA reviews screenshots, not code alone.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -38,7 +38,7 @@ Second pass: re-read the rewrite. If the same tell remains, rewrite the paragrap
38
38
 
39
39
  ## Visual P0s — fail if still on screen
40
40
 
41
- These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
41
+ These are the 2026 flat AI/SaaS chrome cluster (same family as accent-border cards, glow rails, and card soup). One is a smell. Two or more is a reject. A pick-list row or status well with a left stroke is already a fail.
42
42
 
43
43
  - Purple-to-blue (or indigo) gradient hero, or gradient-clipped headline type
44
44
  - Inter / Roboto / default shadcn zinc as the whole identity
@@ -48,6 +48,12 @@ These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
48
48
  - Acid green or neon vermilion on near-black used as decoration, not meaning
49
49
  - Lucide Sparkles / Zap as the product metaphor
50
50
  - Fake dashboard metrics or DiceBear avatars
51
+ - Left accent bars / left-hand borderlines on selected rows, list items, cards, or success/error/warn wells (the “colored stroke on the left edge” pattern)
52
+ - Thick one-sided colored borders, glow rails, neon strokes, or gradient borders used as the main state cue
53
+
54
+ Selection must use radio/checkbox + light row tint (or weight/space) only. Status wells may use a flat tint fill. No `border-left` accent, no inset bar, no vertical rail as decoration. Keep one accent for the primary CTA, not as a row edge.
55
+
56
+ **Acceptance fixture:** a pick-list row and a “verified” well must pass with **zero** left border accents. If screenshots show a blue/green/amber left stroke, deslop fails.
51
57
 
52
58
  Copy does not restyle the page. It lists the P0s from the screenshot and sends them to Design.
53
59
 
@@ -77,7 +77,9 @@ One family, or two that are obviously different (display vs mono). Inter + syste
77
77
  - Mobile (~390): the primary CTA still fits above the fold.
78
78
  - Hierarchy from size, weight, and space — not from cards.
79
79
  - Landing and marketing pages take a full direction. App chrome (settings, tables) stays quiet and dense.
80
- - Reject: centered hero + two pills + three icon cards; glass navbar; four-column empty footer; fake metrics; broadsheet hairlines + dense newsprint columns (that look is itself a 2026 default).
80
+ - Do not mark selection or severity with a left edge stroke. That pattern reads as default AI/SaaS chrome even on flat full-bleed sheets.
81
+ - Prefer: radio + tint, check + tint, or typography/weight. Keep one accent for the primary CTA, not as a row edge.
82
+ - Reject: centered hero + two pills + three icon cards; glass navbar; four-column empty footer; fake metrics; broadsheet hairlines + dense newsprint columns (that look is itself a 2026 default); left selection rails; callouts whose only cue is a thick left border.
81
83
 
82
84
  ## Motion
83
85
 
@@ -28,4 +28,4 @@ Owner, extra reviewers, required skills, preserved behavior, and required screen
28
28
 
29
29
  ## Reject
30
30
 
31
- Implementing in the planning pass. Asking one chat to play every role. Skipping `supabase-auth-rls` because “it’s just a table.”
31
+ Implementing in the planning pass. Asking one chat to play every role. Skipping `supabase-auth-rls` because “it’s just a table.” Skipping `nextjs-app-router` because the route is small.
@@ -18,6 +18,8 @@ Adding or reviewing tests, smoke checks, or regression coverage.
18
18
  - Network failure, empty, and error behavior is covered.
19
19
  - Gaps are named when infrastructure is missing.
20
20
 
21
+ If the change is App Router, Auth/RLS, or a migration, tests must cover those contracts. This skill does not replace `nextjs-app-router`, `supabase-auth-rls`, `postgres-migrations`, or `owasp-security-review`. Visual proof of a screen still uses `browser-qa`.
22
+
21
23
  ## Visual proof
22
24
 
23
25
  User-visible screens also require `browser-qa`. This skill does not replace screenshots. Passing `toBeVisible` is not image review.