@appsforgood/next-supabase-kit 0.4.0 → 0.4.1

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 (58) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +2 -2
  3. package/UPGRADE.md +11 -0
  4. package/USER_GUIDE.html +808 -0
  5. package/USER_GUIDE.md +7 -5
  6. package/agents/app-engineer/agent.md +2 -0
  7. package/agents/copy/agent.md +16 -3
  8. package/agents/design/agent.md +7 -1
  9. package/agents/optional/deploy/agent.md +6 -0
  10. package/agents/optional/docs/agent.md +4 -0
  11. package/agents/optional/lead-architect/agent.md +8 -0
  12. package/agents/optional/research/agent.md +4 -0
  13. package/agents/planner/agent.md +8 -0
  14. package/agents/qa/agent.md +2 -0
  15. package/agents/security/agent.md +2 -0
  16. package/catalog.json +1 -0
  17. package/dist/index.js +74 -11
  18. package/dist/index.js.map +1 -1
  19. package/examples/next-supabase-installed/.agent-kit/config.json +1 -0
  20. package/examples/next-supabase-installed/.agent-kit/manifest.json +36 -31
  21. package/examples/next-supabase-installed/.antigravity/agent-kit/commands/copy.toml +1 -1
  22. package/examples/next-supabase-installed/.antigravity/runtime-skills/deslop/SKILL.md +62 -0
  23. package/examples/next-supabase-installed/.antigravity/runtime-skills/frontend-design/SKILL.md +90 -9
  24. package/examples/next-supabase-installed/.antigravity/runtime-skills/product-copy/SKILL.md +36 -4
  25. package/examples/next-supabase-installed/.claude/agents/app-engineer.md +2 -0
  26. package/examples/next-supabase-installed/.claude/agents/copy.md +16 -3
  27. package/examples/next-supabase-installed/.claude/agents/design.md +7 -1
  28. package/examples/next-supabase-installed/.claude/agents/planner.md +8 -0
  29. package/examples/next-supabase-installed/.claude/agents/qa.md +2 -0
  30. package/examples/next-supabase-installed/.claude/agents/security.md +2 -0
  31. package/examples/next-supabase-installed/.codex/agents/app-engineer.toml +2 -0
  32. package/examples/next-supabase-installed/.codex/agents/copy.toml +17 -4
  33. package/examples/next-supabase-installed/.codex/agents/design.toml +7 -1
  34. package/examples/next-supabase-installed/.codex/agents/planner.toml +8 -0
  35. package/examples/next-supabase-installed/.codex/agents/qa.toml +2 -0
  36. package/examples/next-supabase-installed/.codex/agents/security.toml +2 -0
  37. package/examples/next-supabase-installed/.cursor/agents/app-engineer.md +2 -0
  38. package/examples/next-supabase-installed/.cursor/agents/copy.md +16 -3
  39. package/examples/next-supabase-installed/.cursor/agents/design.md +7 -1
  40. package/examples/next-supabase-installed/.cursor/agents/planner.md +8 -0
  41. package/examples/next-supabase-installed/.cursor/agents/qa.md +2 -0
  42. package/examples/next-supabase-installed/.cursor/agents/security.md +2 -0
  43. package/examples/next-supabase-installed/.cursor/skills/deslop/SKILL.md +62 -0
  44. package/examples/next-supabase-installed/.cursor/skills/frontend-design/SKILL.md +90 -9
  45. package/examples/next-supabase-installed/.cursor/skills/product-copy/SKILL.md +36 -4
  46. package/examples/next-supabase-installed/AGENTS.md +1 -1
  47. package/examples/next-supabase-installed/USER_GUIDE.html +808 -0
  48. package/examples/next-supabase-installed/USER_GUIDE.md +7 -5
  49. package/examples/next-supabase-installed/skills/deslop/SKILL.md +62 -0
  50. package/examples/next-supabase-installed/skills/frontend-design/SKILL.md +90 -9
  51. package/examples/next-supabase-installed/skills/product-copy/SKILL.md +36 -4
  52. package/examples/next-supabase-installed/tree.txt +3 -0
  53. package/package.json +6 -4
  54. package/research/agent-skill-gap-report.md +7 -2
  55. package/skills/deslop/SKILL.md +62 -0
  56. package/skills/frontend-design/SKILL.md +90 -9
  57. package/skills/product-copy/SKILL.md +36 -4
  58. package/templates/next-supabase/AGENTS.md +1 -1
@@ -1,6 +1,6 @@
1
1
  # User Guide
2
2
 
3
- How to use the agents and skills in this repo.
3
+ How to use the agents and skills in this repo. Open **[USER_GUIDE.html](USER_GUIDE.html)** to read this as a designed page — that is the copy and layout to judge.
4
4
 
5
5
  **Agent** = who you ask. **Skill** = the workflow they follow. **Tool** = what they must use. For QA and UI, that tool is a **live browser plus screenshots**, not a file diff.
6
6
 
@@ -76,7 +76,7 @@ Files: `.antigravity/agent-kit/commands/*.toml`, `.antigravity/runtime-skills/*/
76
76
  | Is this done? | QA |
77
77
  | Landing / CTA words | Copy |
78
78
 
79
- Do not ask one chat to be all six.
79
+ Do not ask one chat to be all six. Planner names the next specialist. It does not run the other agents.
80
80
 
81
81
  ## Which skill do I use?
82
82
 
@@ -87,14 +87,15 @@ Do not ask one chat to be all six.
87
87
  | `supabase-auth-rls` | Auth, RLS, service role |
88
88
  | `postgres-migrations` | Schema and migrations |
89
89
  | `owasp-security-review` | Mutations, uploads, secrets |
90
- | `frontend-design` | Layout, hierarchy, anti-generic UI |
90
+ | `frontend-design` | Layout, simple palette, anti-generic UI |
91
91
  | `accessibility-wcag` | Keyboard, contrast, labels |
92
92
  | `browser-qa` | Any screen. Required for QA of UI |
93
93
  | `testing-qa` | Unit / regression / smoke only |
94
94
  | `product-copy` | Headlines and CTAs |
95
+ | `deslop` | Last copy pass. Copy always runs this |
95
96
  | `ship` | Release, env, rollback |
96
97
 
97
- QA of a screen always uses `browser-qa`, not `testing-qa` alone.
98
+ QA of a screen always uses `browser-qa`, not `testing-qa` alone. Each agent file names the skills it must run, then points at `catalog.json` for the rest.
98
99
 
99
100
  ## Standard workflows
100
101
 
@@ -118,7 +119,7 @@ Design + `frontend-design` + `browser-qa`. Desktop and mobile required. One happ
118
119
 
119
120
  ### Copy pass
120
121
 
121
- Copy agent reviews **rendered** screenshots, not just strings in TSX.
122
+ Copy reviews **rendered** screenshots, not just strings in TSX. Run `product-copy`, then **`deslop` last**. Do not hand off after the first draft.
122
123
 
123
124
  ## QA screenshot loop
124
125
 
@@ -179,3 +180,4 @@ Pristine files refresh. Local edits win or land in `.agent-kit/conflicts/`. Do n
179
180
  | No browser in Copilot / Codex | Use the Playwright commands in `browser-qa`. |
180
181
  | QA finished from the diff | Reject it. Re-run with the good QA prompt above. |
181
182
  | `doctor` fails USER_GUIDE | The screenshot fail-closed sentence must stay in this file. |
183
+ | Still have `QUALITY_GATES.md` / `COUNCIL.md` | Expected. `update` does not delete them. `doctor` lists leftovers. |
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: deslop
3
+ description: Use as the last copy pass. Strip AI-writing tells and leftover visual slop. Copy must run this after product-copy, not instead of it.
4
+ ---
5
+
6
+ # Deslop
7
+
8
+ Last pass. `product-copy` writes the words. This skill removes the machine accent.
9
+
10
+ Scan 2026-09-06: `conorbronsdon/avoid-ai-writing`, `funboy322/avoid-ai-design`, `educlopez/ui-craft`, `superdesigndev/superdesign-skill`. Patterns only. Do not copy their catalogs.
11
+
12
+ ## Use when
13
+
14
+ Copy is about to say “done,” or anyone asked to de-slop, humanize, or “make this less AI.” Always run after `product-copy` on public or conversion copy.
15
+
16
+ ## Order
17
+
18
+ 1. Finish `product-copy` (audience, headline, CTA, claims).
19
+ 2. Open the rendered surface if one exists.
20
+ 3. Run this skill. Fix words first. If the screenshot still reads as default AI UI, hand back to Design with the P0 list. Do not skip this step.
21
+
22
+ ## Writing tells — cut or rewrite
23
+
24
+ | Tell | Fix |
25
+ | --- | --- |
26
+ | Chatbot openers (“Certainly!”, “Great question!”) | Delete. Start with the point. |
27
+ | Inflators (seamless, robust, leverage, unlock, supercharge, 10x, paradigm) | Name the thing. “use,” “ships,” “blocks.” |
28
+ | Copula dodge (“serves as,” “boasting,” “featuring”) | “is” / “has.” |
29
+ | “It’s not X, it’s Y” | One positive sentence. |
30
+ | Moreover / Furthermore / In today’s X / In conclusion | Cut or join with “and.” |
31
+ | Vague experts / studies show | Cite or delete. |
32
+ | Title Case Headings on every line | Sentence case. |
33
+ | Em dash stacks, emoji headers, sparkle bullets | Periods. Real nouns. |
34
+ | “Get started” / “Learn more” with no object | Say the next action. |
35
+ | Placeholder leftovers (`[Your Name]`, `TODO copy`) | Fill or delete. |
36
+
37
+ Second pass: re-read the rewrite. If the same tell remains, rewrite the paragraph, do not synonym-swap.
38
+
39
+ ## Visual P0s — fail if still on screen
40
+
41
+ These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
42
+
43
+ - Purple-to-blue (or indigo) gradient hero, or gradient-clipped headline type
44
+ - Inter / Roboto / default shadcn zinc as the whole identity
45
+ - Centered slogan + two pills + three equal icon cards
46
+ - `rounded-2xl` + `shadow-lg` + blur on every surface
47
+ - Cream paper `#F4F1EA` + terracotta accent (the 2026 “editorial default”)
48
+ - Acid green or neon vermilion on near-black used as decoration, not meaning
49
+ - Lucide Sparkles / Zap as the product metaphor
50
+ - Fake dashboard metrics or DiceBear avatars
51
+
52
+ Copy does not restyle the page. It lists the P0s from the screenshot and sends them to Design.
53
+
54
+ ## Must keep
55
+
56
+ Facts, commands, file paths, the fail-closed screenshot sentence, and any claim that has proof. Deslop is subtraction, not a new brand voice.
57
+
58
+ ## Done when
59
+
60
+ - A second read finds no writing tells above.
61
+ - If a screen exists, the screenshot was read and remaining visual P0s are named or gone.
62
+ - Copy’s verdict is not “done” until this pass ran.
@@ -1,26 +1,107 @@
1
1
  ---
2
2
  name: frontend-design
3
- description: Use when building or reviewing user-facing UI. Prefer task-first screens. Reject generic AI-looking gradients, card soup, and fake metrics.
3
+ description: Use when building or reviewing user-facing UI. Commit one simple palette and type pairing. Reject default AI layouts, timid color spreads, and decoration that is not the task.
4
4
  ---
5
5
 
6
6
  # Frontend Design
7
7
 
8
+ Build or review a screen as if a stranger must name the product from the first viewport. Simple and specific beats decorated.
9
+
10
+ Scan 2026-09-06 (structure only, no bodies copied): Anthropic `frontend-design` (updated 2026-06), addyosmani `frontend-ui-engineering`, `educlopez/ui-craft`, `funboy322/avoid-ai-design`, `superdesigndev/superdesign-skill`.
11
+
8
12
  ## Use when
9
13
 
10
- Screens, components, layout, visual design, or anti-generic UI review.
14
+ Any user-facing layout, component, HTML page, or “it looks generic.” Required for `USER_GUIDE.html` and for app screens.
15
+
16
+ ## Ground in the subject
17
+
18
+ Name the product, the user, and this screen’s job before CSS. Tokens come from the domain (materials, time of day, one real object) — not from a theme pack. A toy store and a ledger cannot share a palette.
19
+
20
+ **This kit’s HTML** (`USER_GUIDE.html`): charcoal assignment desk.
21
+
22
+ | Token | Value |
23
+ | --- | --- |
24
+ | Paper | `#10100e` |
25
+ | Ink | `#eceae4` |
26
+ | Frame | `#070706` |
27
+ | Line | `#2a2823` |
28
+ | Safelight | `#ff5a2a` (required / fail only) |
29
+ | Pass | `#5ea37a` |
30
+ | Type | `"Helvetica Neue", Helvetica, Arial, ui-sans-serif` |
31
+ | Mono | `ui-monospace, Menlo, Consolas` |
32
+ | Radius | `2px` |
33
+ | Shadow | none |
34
+
35
+ **Downstream Next.js apps:** do not paste the kit desk onto a product. Extract or invent **4–6 hex tokens** from *this* product’s job. Write them before CSS. Inside an existing design system, stay surgical — swap tells, do not invent a second brand.
36
+
37
+ ## Color — simple schemes that hold up
38
+
39
+ One field, one ink, one accent, one line. That is enough.
40
+
41
+ 1. **Dominant field** (~80%): the page. Flat. Not a gradient, not a mesh.
42
+ 2. **Ink** (~15%): body text. Contrast ≥ 4.5:1 (3:1 for large type).
43
+ 3. **Accent** (~5%): one action or one required state. Recolor-as-decoration fails.
44
+ 4. **Line / well**: borders and code wells, one step off the field.
45
+
46
+ Recipes (pick one that fits the product, then stop):
47
+
48
+ | Scheme | Field | Ink | Accent | Use when |
49
+ | --- | --- | --- | --- | --- |
50
+ | Charcoal desk | `#10100e` | `#eceae4` | `#ff5a2a` | Tools, manuals, this kit |
51
+ | Paper + ink | `#f4f4f1` | `#171717` | `#0b57d0` | Documents, settings, calm apps |
52
+ | Night + signal | `#0e1116` | `#e6edf3` | `#3fb950` | Ops, status, pass/fail |
53
+ | Warm shop | `#1c1916` | `#f3ece3` | `#e8a317` | Craft, commerce with real goods |
54
+
55
+ Do not:
56
+
57
+ - Spread six mid-chroma colors evenly.
58
+ - Use purple→blue, default `blue-600`, or untouched shadcn `zinc` as the identity.
59
+ - Use cream `#F4F1EA` + terracotta (the 2026 editorial default) unless the brief asks.
60
+ - Use acid green or neon vermilion on near-black as decoration.
61
+ - Treat Space Grotesk + slate, or any “tasteful” swap you used last week, as a new idea.
62
+
63
+ Prefer CSS variables. Self-contained kit HTML: no Google Fonts, no CDN CSS.
64
+
65
+ ## Type
66
+
67
+ One family, or two that are obviously different (display vs mono). Inter + system sans is not a pairing. Roboto, Space Grotesk, and “the last distinctive font you used” are second-order defaults.
68
+
69
+ - Line length < 80 characters.
70
+ - Tight display tracking on large sans. Do not italicize or recolor one word of a headline.
71
+ - No tracked-out ALL-CAPS eyebrows, middle-dot meta (`A · B · C`), or `WORD — fragment` labels unless the content needs them.
72
+ - Numbered tickets only when the content is a real sequence.
73
+
74
+ ## Layout
75
+
76
+ - First viewport = the characteristic thing: command, table, form, named owner. Not a slogan over atmosphere.
77
+ - Mobile (~390): the primary CTA still fits above the fold.
78
+ - Hierarchy from size, weight, and space — not from cards.
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).
81
+
82
+ ## Motion
83
+
84
+ None, or one moment that answers a click. Fade-and-slide on every section is generated. Respect `prefers-reduced-motion`.
85
+
86
+ ## Process
87
+
88
+ 1. Name the product, the user, and the job of this screen.
89
+ 2. Write the 4–6 tokens and one-sentence layout idea.
90
+ 3. Check the plan is not a 2026 default (cream editorial, neon-on-black decoration, SaaS card kit, newsprint desk, last week’s “tasteful” swap). If it is, change one axis: field, accent, or structure.
91
+ 4. Build. Spend boldness once. Remove one accessory.
92
+ 5. Screenshot desktop (~1280) and mobile (~390). Fix from pixels. Ask: would a stranger believe a person chose this?
11
93
 
12
94
  ## Checks
13
95
 
14
- - First screen shows the real product, task, or workflow.
15
- - Hierarchy, density, and primary action are obvious.
16
- - Loading, empty, error, disabled, success, and mobile states exist where relevant.
17
- - Contrast, focus, labels, and tap targets meet WCAG 2.1 AA.
18
- - Reject purple-blue gradient heroes, vague SaaS copy, fake dashboards, glass-card soup, and glow rails.
96
+ - A stranger can name the product from the first screen.
97
+ - Loading, empty, error, disabled, success exist where the flow has them.
98
+ - Focus visible, tap targets usable.
99
+ - Copy on the screen is real. If words are public-facing, Copy runs `deslop` last.
19
100
 
20
101
  ## Tools
21
102
 
22
- Critique from `browser` + `screenshot` + `image-review` first. Do not approve UI from TSX alone.
103
+ `browser` + `screenshot` + `image-review` first. Do not approve UI from TSX or HTML alone.
23
104
 
24
105
  ## Done when
25
106
 
26
- Desktop and mobile screenshots were read. Blocker detector findings are fixed.
107
+ Desktop and mobile images were read. Token list is in the change or in `DESIGN.md`. No P0 slop from `deslop` remains unless Design names it as an accepted exception.
@@ -7,16 +7,48 @@ description: Use for headlines, CTAs, empty states, and conversion copy. Review
7
7
 
8
8
  ## Use when
9
9
 
10
- Landing pages, CTAs, positioning, onboarding, empty states, or pricing copy.
10
+ Landing pages, CTAs, positioning, onboarding, empty states, pricing copy, or the public user guide (`USER_GUIDE.html`).
11
+
12
+ ## Audience
13
+
14
+ Engineers and coding agents on a Next.js + Supabase repo who already have Cursor, Claude, Codex, Copilot, or Antigravity. They do not need a manifesto. They need to know **who to @**, **what to paste**, and **what “done” looks like**.
15
+
16
+ ## Positioning (this product)
17
+
18
+ Name the specialist. Prove the screen. Six agents, twelve skills, five IDEs. QA is two screenshots, not a file diff.
19
+
20
+ Do not describe this as an “agent operating system,” a copilot marketplace, or “AI-powered delivery.”
21
+
22
+ ## Voice
23
+
24
+ Direct, specific, slightly dry. Prefer verbs: ask, paste, open, capture, reject.
25
+
26
+ Use: specialist, owner, screenshot, desktop, mobile, fail-closed, paste, Planner, browser-qa.
27
+ Avoid: supercharge, seamless, unlock, copilot for X, 10x, enterprise-grade, magic, revolutionize.
28
+
29
+ ## Headline test
30
+
31
+ If the headline could sell GitHub Copilot, Cursor, or any agent marketplace, rewrite it.
32
+
33
+ Good: `Ask one specialist. Then open the running UI.`
34
+ Bad: `Supercharge your AI workflow with agents and skills.`
35
+
36
+ ## CTA test
37
+
38
+ A CTA is a command or a pasteable prompt, not “Get started.”
39
+
40
+ Good: `Paste this to Planner` followed by the plan prompt.
41
+ Good: `npx --yes @appsforgood/next-supabase-kit init --activate all`
42
+ Bad: `Start building today`.
11
43
 
12
44
  ## Checks
13
45
 
14
46
  - Audience, pain, and outcome are specific to this product.
15
- - Claims are backed or marked as assumptions.
47
+ - Claims are backed or marked as assumptions. Do not invent user counts or “best-in-class.”
16
48
  - Headlines could not fit any competitor.
17
49
  - CTAs say what happens next.
18
- - Review the words on a screenshot for truncation and hierarchy.
50
+ - Review the words on a screenshot for truncation, wrapping, and hierarchy. Copy that only exists in markdown is not approved for a public HTML page.
19
51
 
20
52
  ## Done when
21
53
 
22
- Copy is specific and the rendered screenshot shows the key line and CTA clearly.
54
+ Copy is specific and the rendered screenshot shows the key line and CTA clearly on desktop and mobile. Copy then runs `deslop` as the last pass — this skill is not the end of the run.
@@ -11,6 +11,7 @@ AGENTS.md
11
11
  .antigravity/agent-kit/plugin.json
12
12
  .antigravity/runtime-skills/accessibility-wcag/SKILL.md
13
13
  .antigravity/runtime-skills/browser-qa/SKILL.md
14
+ .antigravity/runtime-skills/deslop/SKILL.md
14
15
  .antigravity/runtime-skills/frontend-design/SKILL.md
15
16
  .antigravity/runtime-skills/nextjs-app-router/SKILL.md
16
17
  .antigravity/runtime-skills/owasp-security-review/SKILL.md
@@ -42,6 +43,7 @@ CLAUDE.md
42
43
  .cursor/rules/cursor-agent-kit.mdc
43
44
  .cursor/skills/accessibility-wcag/SKILL.md
44
45
  .cursor/skills/browser-qa/SKILL.md
46
+ .cursor/skills/deslop/SKILL.md
45
47
  .cursor/skills/frontend-design/SKILL.md
46
48
  .cursor/skills/nextjs-app-router/SKILL.md
47
49
  .cursor/skills/owasp-security-review/SKILL.md
@@ -54,4 +56,5 @@ CLAUDE.md
54
56
  .github/copilot-instructions.md
55
57
  README.md
56
58
  tree.txt
59
+ USER_GUIDE.html
57
60
  USER_GUIDE.md
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appsforgood/next-supabase-kit",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
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": {
@@ -29,6 +29,7 @@
29
29
  "skills",
30
30
  "assistant-adapters/cursor-agent-kit.mdc",
31
31
  "USER_GUIDE.md",
32
+ "USER_GUIDE.html",
32
33
  "examples/next-supabase-installed",
33
34
  "research/agent-skill-gap-report.md",
34
35
  "README.md",
@@ -100,7 +101,7 @@
100
101
  "@changesets/cli": "^2.31.0",
101
102
  "@eslint/js": "^9.39.4",
102
103
  "@types/node": "^25.9.3",
103
- "@vitest/coverage-v8": "^4.1.9",
104
+ "@vitest/coverage-v8": "^4.1.11",
104
105
  "eslint": "^9.39.4",
105
106
  "eslint-config-prettier": "^10.1.8",
106
107
  "globals": "^17.7.0",
@@ -110,10 +111,11 @@
110
111
  "tsx": "^4.19.2",
111
112
  "typescript": "^6.0.3",
112
113
  "typescript-eslint": "^8.62.1",
113
- "vitest": "^4.1.8"
114
+ "vitest": "^4.1.11"
114
115
  },
115
116
  "overrides": {
116
- "esbuild": "0.28.1"
117
+ "esbuild": "0.28.1",
118
+ "vite": "6.4.3"
117
119
  },
118
120
  "allowScripts": {
119
121
  "better-sqlite3@12.11.1": true,
@@ -124,5 +124,10 @@ Skills **kept despite being uncommon** in generic zoos:
124
124
  **Agents:** planner, app-engineer, security, design, qa, copy
125
125
  **Optional agents:** lead-architect, docs, deploy, research
126
126
 
127
- **Skills:** planning, nextjs-app-router, supabase-auth-rls, postgres-migrations, owasp-security-review, frontend-design, accessibility-wcag, browser-qa, testing-qa, product-copy, ship
128
- **Optional skills:** ui-polish, docs, upgrade, debug
127
+ **Skills:** planning, nextjs-app-router, supabase-auth-rls, postgres-migrations, owasp-security-review, frontend-design, accessibility-wcag, browser-qa, testing-qa, product-copy, deslop, ship
128
+ **Optional skills:** ui-polish, docs, upgrade, debug
129
+
130
+ ### 2026-09-06 follow-up
131
+
132
+ - Added `deslop` as a default skill. Copy’s end run is always `product-copy` then `deslop` (second pass on the rewrite). Patterns from `conorbronsdon/avoid-ai-writing` and `funboy322/avoid-ai-design` — catalogs not copied.
133
+ - Uplifted `frontend-design` against Anthropic `frontend-design` (2026-06), `educlopez/ui-craft`, `superdesigndev/superdesign-skill`. Kit HTML keeps charcoal desk tokens. Downstream apps write 4–6 product tokens. Cream-editorial, neon-on-black decoration, SaaS card kits, and broadsheet newsprint are treated as 2026 defaults.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: deslop
3
+ description: Use as the last copy pass. Strip AI-writing tells and leftover visual slop. Copy must run this after product-copy, not instead of it.
4
+ ---
5
+
6
+ # Deslop
7
+
8
+ Last pass. `product-copy` writes the words. This skill removes the machine accent.
9
+
10
+ Scan 2026-09-06: `conorbronsdon/avoid-ai-writing`, `funboy322/avoid-ai-design`, `educlopez/ui-craft`, `superdesigndev/superdesign-skill`. Patterns only. Do not copy their catalogs.
11
+
12
+ ## Use when
13
+
14
+ Copy is about to say “done,” or anyone asked to de-slop, humanize, or “make this less AI.” Always run after `product-copy` on public or conversion copy.
15
+
16
+ ## Order
17
+
18
+ 1. Finish `product-copy` (audience, headline, CTA, claims).
19
+ 2. Open the rendered surface if one exists.
20
+ 3. Run this skill. Fix words first. If the screenshot still reads as default AI UI, hand back to Design with the P0 list. Do not skip this step.
21
+
22
+ ## Writing tells — cut or rewrite
23
+
24
+ | Tell | Fix |
25
+ | --- | --- |
26
+ | Chatbot openers (“Certainly!”, “Great question!”) | Delete. Start with the point. |
27
+ | Inflators (seamless, robust, leverage, unlock, supercharge, 10x, paradigm) | Name the thing. “use,” “ships,” “blocks.” |
28
+ | Copula dodge (“serves as,” “boasting,” “featuring”) | “is” / “has.” |
29
+ | “It’s not X, it’s Y” | One positive sentence. |
30
+ | Moreover / Furthermore / In today’s X / In conclusion | Cut or join with “and.” |
31
+ | Vague experts / studies show | Cite or delete. |
32
+ | Title Case Headings on every line | Sentence case. |
33
+ | Em dash stacks, emoji headers, sparkle bullets | Periods. Real nouns. |
34
+ | “Get started” / “Learn more” with no object | Say the next action. |
35
+ | Placeholder leftovers (`[Your Name]`, `TODO copy`) | Fill or delete. |
36
+
37
+ Second pass: re-read the rewrite. If the same tell remains, rewrite the paragraph, do not synonym-swap.
38
+
39
+ ## Visual P0s — fail if still on screen
40
+
41
+ These are the 2026 convergence cluster. One is a smell. Two or more is a reject.
42
+
43
+ - Purple-to-blue (or indigo) gradient hero, or gradient-clipped headline type
44
+ - Inter / Roboto / default shadcn zinc as the whole identity
45
+ - Centered slogan + two pills + three equal icon cards
46
+ - `rounded-2xl` + `shadow-lg` + blur on every surface
47
+ - Cream paper `#F4F1EA` + terracotta accent (the 2026 “editorial default”)
48
+ - Acid green or neon vermilion on near-black used as decoration, not meaning
49
+ - Lucide Sparkles / Zap as the product metaphor
50
+ - Fake dashboard metrics or DiceBear avatars
51
+
52
+ Copy does not restyle the page. It lists the P0s from the screenshot and sends them to Design.
53
+
54
+ ## Must keep
55
+
56
+ Facts, commands, file paths, the fail-closed screenshot sentence, and any claim that has proof. Deslop is subtraction, not a new brand voice.
57
+
58
+ ## Done when
59
+
60
+ - A second read finds no writing tells above.
61
+ - If a screen exists, the screenshot was read and remaining visual P0s are named or gone.
62
+ - Copy’s verdict is not “done” until this pass ran.
@@ -1,26 +1,107 @@
1
1
  ---
2
2
  name: frontend-design
3
- description: Use when building or reviewing user-facing UI. Prefer task-first screens. Reject generic AI-looking gradients, card soup, and fake metrics.
3
+ description: Use when building or reviewing user-facing UI. Commit one simple palette and type pairing. Reject default AI layouts, timid color spreads, and decoration that is not the task.
4
4
  ---
5
5
 
6
6
  # Frontend Design
7
7
 
8
+ Build or review a screen as if a stranger must name the product from the first viewport. Simple and specific beats decorated.
9
+
10
+ Scan 2026-09-06 (structure only, no bodies copied): Anthropic `frontend-design` (updated 2026-06), addyosmani `frontend-ui-engineering`, `educlopez/ui-craft`, `funboy322/avoid-ai-design`, `superdesigndev/superdesign-skill`.
11
+
8
12
  ## Use when
9
13
 
10
- Screens, components, layout, visual design, or anti-generic UI review.
14
+ Any user-facing layout, component, HTML page, or “it looks generic.” Required for `USER_GUIDE.html` and for app screens.
15
+
16
+ ## Ground in the subject
17
+
18
+ Name the product, the user, and this screen’s job before CSS. Tokens come from the domain (materials, time of day, one real object) — not from a theme pack. A toy store and a ledger cannot share a palette.
19
+
20
+ **This kit’s HTML** (`USER_GUIDE.html`): charcoal assignment desk.
21
+
22
+ | Token | Value |
23
+ | --- | --- |
24
+ | Paper | `#10100e` |
25
+ | Ink | `#eceae4` |
26
+ | Frame | `#070706` |
27
+ | Line | `#2a2823` |
28
+ | Safelight | `#ff5a2a` (required / fail only) |
29
+ | Pass | `#5ea37a` |
30
+ | Type | `"Helvetica Neue", Helvetica, Arial, ui-sans-serif` |
31
+ | Mono | `ui-monospace, Menlo, Consolas` |
32
+ | Radius | `2px` |
33
+ | Shadow | none |
34
+
35
+ **Downstream Next.js apps:** do not paste the kit desk onto a product. Extract or invent **4–6 hex tokens** from *this* product’s job. Write them before CSS. Inside an existing design system, stay surgical — swap tells, do not invent a second brand.
36
+
37
+ ## Color — simple schemes that hold up
38
+
39
+ One field, one ink, one accent, one line. That is enough.
40
+
41
+ 1. **Dominant field** (~80%): the page. Flat. Not a gradient, not a mesh.
42
+ 2. **Ink** (~15%): body text. Contrast ≥ 4.5:1 (3:1 for large type).
43
+ 3. **Accent** (~5%): one action or one required state. Recolor-as-decoration fails.
44
+ 4. **Line / well**: borders and code wells, one step off the field.
45
+
46
+ Recipes (pick one that fits the product, then stop):
47
+
48
+ | Scheme | Field | Ink | Accent | Use when |
49
+ | --- | --- | --- | --- | --- |
50
+ | Charcoal desk | `#10100e` | `#eceae4` | `#ff5a2a` | Tools, manuals, this kit |
51
+ | Paper + ink | `#f4f4f1` | `#171717` | `#0b57d0` | Documents, settings, calm apps |
52
+ | Night + signal | `#0e1116` | `#e6edf3` | `#3fb950` | Ops, status, pass/fail |
53
+ | Warm shop | `#1c1916` | `#f3ece3` | `#e8a317` | Craft, commerce with real goods |
54
+
55
+ Do not:
56
+
57
+ - Spread six mid-chroma colors evenly.
58
+ - Use purple→blue, default `blue-600`, or untouched shadcn `zinc` as the identity.
59
+ - Use cream `#F4F1EA` + terracotta (the 2026 editorial default) unless the brief asks.
60
+ - Use acid green or neon vermilion on near-black as decoration.
61
+ - Treat Space Grotesk + slate, or any “tasteful” swap you used last week, as a new idea.
62
+
63
+ Prefer CSS variables. Self-contained kit HTML: no Google Fonts, no CDN CSS.
64
+
65
+ ## Type
66
+
67
+ One family, or two that are obviously different (display vs mono). Inter + system sans is not a pairing. Roboto, Space Grotesk, and “the last distinctive font you used” are second-order defaults.
68
+
69
+ - Line length < 80 characters.
70
+ - Tight display tracking on large sans. Do not italicize or recolor one word of a headline.
71
+ - No tracked-out ALL-CAPS eyebrows, middle-dot meta (`A · B · C`), or `WORD — fragment` labels unless the content needs them.
72
+ - Numbered tickets only when the content is a real sequence.
73
+
74
+ ## Layout
75
+
76
+ - First viewport = the characteristic thing: command, table, form, named owner. Not a slogan over atmosphere.
77
+ - Mobile (~390): the primary CTA still fits above the fold.
78
+ - Hierarchy from size, weight, and space — not from cards.
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).
81
+
82
+ ## Motion
83
+
84
+ None, or one moment that answers a click. Fade-and-slide on every section is generated. Respect `prefers-reduced-motion`.
85
+
86
+ ## Process
87
+
88
+ 1. Name the product, the user, and the job of this screen.
89
+ 2. Write the 4–6 tokens and one-sentence layout idea.
90
+ 3. Check the plan is not a 2026 default (cream editorial, neon-on-black decoration, SaaS card kit, newsprint desk, last week’s “tasteful” swap). If it is, change one axis: field, accent, or structure.
91
+ 4. Build. Spend boldness once. Remove one accessory.
92
+ 5. Screenshot desktop (~1280) and mobile (~390). Fix from pixels. Ask: would a stranger believe a person chose this?
11
93
 
12
94
  ## Checks
13
95
 
14
- - First screen shows the real product, task, or workflow.
15
- - Hierarchy, density, and primary action are obvious.
16
- - Loading, empty, error, disabled, success, and mobile states exist where relevant.
17
- - Contrast, focus, labels, and tap targets meet WCAG 2.1 AA.
18
- - Reject purple-blue gradient heroes, vague SaaS copy, fake dashboards, glass-card soup, and glow rails.
96
+ - A stranger can name the product from the first screen.
97
+ - Loading, empty, error, disabled, success exist where the flow has them.
98
+ - Focus visible, tap targets usable.
99
+ - Copy on the screen is real. If words are public-facing, Copy runs `deslop` last.
19
100
 
20
101
  ## Tools
21
102
 
22
- Critique from `browser` + `screenshot` + `image-review` first. Do not approve UI from TSX alone.
103
+ `browser` + `screenshot` + `image-review` first. Do not approve UI from TSX or HTML alone.
23
104
 
24
105
  ## Done when
25
106
 
26
- Desktop and mobile screenshots were read. Blocker detector findings are fixed.
107
+ Desktop and mobile images were read. Token list is in the change or in `DESIGN.md`. No P0 slop from `deslop` remains unless Design names it as an accepted exception.
@@ -7,16 +7,48 @@ description: Use for headlines, CTAs, empty states, and conversion copy. Review
7
7
 
8
8
  ## Use when
9
9
 
10
- Landing pages, CTAs, positioning, onboarding, empty states, or pricing copy.
10
+ Landing pages, CTAs, positioning, onboarding, empty states, pricing copy, or the public user guide (`USER_GUIDE.html`).
11
+
12
+ ## Audience
13
+
14
+ Engineers and coding agents on a Next.js + Supabase repo who already have Cursor, Claude, Codex, Copilot, or Antigravity. They do not need a manifesto. They need to know **who to @**, **what to paste**, and **what “done” looks like**.
15
+
16
+ ## Positioning (this product)
17
+
18
+ Name the specialist. Prove the screen. Six agents, twelve skills, five IDEs. QA is two screenshots, not a file diff.
19
+
20
+ Do not describe this as an “agent operating system,” a copilot marketplace, or “AI-powered delivery.”
21
+
22
+ ## Voice
23
+
24
+ Direct, specific, slightly dry. Prefer verbs: ask, paste, open, capture, reject.
25
+
26
+ Use: specialist, owner, screenshot, desktop, mobile, fail-closed, paste, Planner, browser-qa.
27
+ Avoid: supercharge, seamless, unlock, copilot for X, 10x, enterprise-grade, magic, revolutionize.
28
+
29
+ ## Headline test
30
+
31
+ If the headline could sell GitHub Copilot, Cursor, or any agent marketplace, rewrite it.
32
+
33
+ Good: `Ask one specialist. Then open the running UI.`
34
+ Bad: `Supercharge your AI workflow with agents and skills.`
35
+
36
+ ## CTA test
37
+
38
+ A CTA is a command or a pasteable prompt, not “Get started.”
39
+
40
+ Good: `Paste this to Planner` followed by the plan prompt.
41
+ Good: `npx --yes @appsforgood/next-supabase-kit init --activate all`
42
+ Bad: `Start building today`.
11
43
 
12
44
  ## Checks
13
45
 
14
46
  - Audience, pain, and outcome are specific to this product.
15
- - Claims are backed or marked as assumptions.
47
+ - Claims are backed or marked as assumptions. Do not invent user counts or “best-in-class.”
16
48
  - Headlines could not fit any competitor.
17
49
  - CTAs say what happens next.
18
- - Review the words on a screenshot for truncation and hierarchy.
50
+ - Review the words on a screenshot for truncation, wrapping, and hierarchy. Copy that only exists in markdown is not approved for a public HTML page.
19
51
 
20
52
  ## Done when
21
53
 
22
- Copy is specific and the rendered screenshot shows the key line and CTA clearly.
54
+ Copy is specific and the rendered screenshot shows the key line and CTA clearly on desktop and mobile. Copy then runs `deslop` as the last pass — this skill is not the end of the run.
@@ -27,4 +27,4 @@ Planner names the owner. Security joins auth/data/secret work. Design joins user
27
27
 
28
28
  ## Skills
29
29
 
30
- Default skills live in `.cursor/skills/*/SKILL.md` (and the matching Claude/Codex/Antigravity copies). QA of a screen always uses `browser-qa`, not `testing-qa` alone.
30
+ Default skills live in `.cursor/skills/*/SKILL.md` (and the matching Claude/Codex/Antigravity copies). QA of a screen always uses `browser-qa`, not `testing-qa` alone. Copy finishes public words with `deslop`. Planner uses `planning` and names owners; it does not run the other agents. Each agent file points at `catalog.json` for the full skill list.