@withmata/blueprints 0.3.5 → 0.4.0

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 (62) hide show
  1. package/.claude/skills/audit/SKILL.md +4 -4
  2. package/.claude/skills/blueprint-catalog/SKILL.md +17 -7
  3. package/.claude/skills/copywrite/SKILL.md +187 -0
  4. package/.claude/skills/copywrite-landing/SKILL.md +489 -0
  5. package/.claude/skills/design-system/SKILL.md +970 -0
  6. package/.claude/skills/new-project/SKILL.md +168 -112
  7. package/.claude/skills/scaffold-auth/SKILL.md +9 -9
  8. package/.claude/skills/scaffold-db/SKILL.md +14 -14
  9. package/.claude/skills/scaffold-env/SKILL.md +4 -4
  10. package/.claude/skills/scaffold-foundation/SKILL.md +15 -15
  11. package/.claude/skills/scaffold-tailwind/SKILL.md +17 -3
  12. package/.claude/skills/scaffold-ui/SKILL.md +155 -36
  13. package/ENGINEERING.md +2 -2
  14. package/blueprints/discovery/design-system/BLUEPRINT.md +1479 -0
  15. package/blueprints/discovery/marketing-copywriting/BLUEPRINT.md +664 -0
  16. package/blueprints/features/auth-better-auth/BLUEPRINT.md +20 -22
  17. package/blueprints/features/db-drizzle-postgres/BLUEPRINT.md +12 -12
  18. package/blueprints/features/db-drizzle-postgres/files/db/src/example-entity.ts +1 -1
  19. package/blueprints/features/db-drizzle-postgres/files/db/src/scripts/seed.ts +1 -1
  20. package/blueprints/features/env-t3/BLUEPRINT.md +1 -1
  21. package/blueprints/features/tailwind-v4/BLUEPRINT.md +9 -2
  22. package/blueprints/features/tailwind-v4/files/tailwind-config/shared-styles.css +80 -1
  23. package/blueprints/features/ui-shared-components/BLUEPRINT.md +411 -78
  24. package/blueprints/features/ui-shared-components/files/ui/components/ui/alert-dialog.tsx +192 -0
  25. package/blueprints/features/ui-shared-components/files/ui/components/ui/avatar.tsx +71 -0
  26. package/blueprints/features/ui-shared-components/files/ui/components/ui/badge.tsx +52 -0
  27. package/blueprints/features/ui-shared-components/files/ui/components/ui/breadcrumb.tsx +122 -0
  28. package/blueprints/features/ui-shared-components/files/ui/components/ui/button.tsx +56 -0
  29. package/blueprints/features/ui-shared-components/files/ui/components/ui/card-select.tsx +72 -0
  30. package/blueprints/features/ui-shared-components/files/ui/components/ui/card.tsx +100 -0
  31. package/blueprints/features/ui-shared-components/files/ui/components/ui/collapsible.tsx +34 -0
  32. package/blueprints/features/ui-shared-components/files/ui/components/ui/combobox.tsx +301 -0
  33. package/blueprints/features/ui-shared-components/files/ui/components/ui/dropdown-menu.tsx +264 -0
  34. package/blueprints/features/ui-shared-components/files/ui/components/ui/empty-state.tsx +43 -0
  35. package/blueprints/features/ui-shared-components/files/ui/components/ui/entity-select.tsx +110 -0
  36. package/blueprints/features/ui-shared-components/files/ui/components/ui/field.tsx +237 -0
  37. package/blueprints/features/ui-shared-components/files/ui/components/ui/form-field.tsx +217 -0
  38. package/blueprints/features/ui-shared-components/files/ui/components/ui/input-group.tsx +161 -0
  39. package/blueprints/features/ui-shared-components/files/ui/components/ui/input.tsx +20 -0
  40. package/blueprints/features/ui-shared-components/files/ui/components/ui/label.tsx +20 -0
  41. package/blueprints/features/ui-shared-components/files/ui/components/ui/org-switcher.tsx +114 -0
  42. package/blueprints/features/ui-shared-components/files/ui/components/ui/page-header.tsx +45 -0
  43. package/blueprints/features/ui-shared-components/files/ui/components/ui/pagination.tsx +52 -0
  44. package/blueprints/features/ui-shared-components/files/ui/components/ui/pill-select.tsx +151 -0
  45. package/blueprints/features/ui-shared-components/files/ui/components/ui/popover.tsx +41 -0
  46. package/blueprints/features/ui-shared-components/files/ui/components/ui/search-input.tsx +49 -0
  47. package/blueprints/features/ui-shared-components/files/ui/components/ui/select.tsx +205 -0
  48. package/blueprints/features/ui-shared-components/files/ui/components/ui/selected-entity-card.tsx +47 -0
  49. package/blueprints/features/ui-shared-components/files/ui/components/ui/separator.tsx +25 -0
  50. package/blueprints/features/ui-shared-components/files/ui/components/ui/sidebar.tsx +389 -0
  51. package/blueprints/features/ui-shared-components/files/ui/components/ui/status-filter.tsx +43 -0
  52. package/blueprints/features/ui-shared-components/files/ui/components/ui/tag-input.tsx +131 -0
  53. package/blueprints/features/ui-shared-components/files/ui/components/ui/textarea.tsx +18 -0
  54. package/blueprints/features/ui-shared-components/files/ui/components/ui/user-menu.tsx +149 -0
  55. package/blueprints/features/ui-shared-components/files/ui/components.json +11 -8
  56. package/blueprints/features/ui-shared-components/files/ui/package.json +20 -11
  57. package/blueprints/foundation/monorepo-turbo/BLUEPRINT.md +19 -20
  58. package/blueprints/foundation/monorepo-turbo/files/root/package.json +1 -1
  59. package/dist/index.js +1 -1
  60. package/package.json +1 -1
  61. package/blueprints/features/tailwind-v4/files/tailwind-config/package.json +0 -20
  62. package/blueprints/foundation/monorepo-turbo/files/root/pnpm-workspace.yaml +0 -5
@@ -13,7 +13,7 @@ Run a health check against available blueprints. Analyze this project's current
13
13
  Load all available blueprint specs to understand what is possible:
14
14
 
15
15
  ```
16
- ~/.withmata/blueprints/blueprints/discovery/product-discovery/BLUEPRINT.md
16
+ ~/.withmata/blueprints/blueprints/discovery/*/BLUEPRINT.md
17
17
  ~/.withmata/blueprints/blueprints/foundation/monorepo-turbo/BLUEPRINT.md
18
18
  ~/.withmata/blueprints/blueprints/features/*/BLUEPRINT.md
19
19
  ```
@@ -41,10 +41,10 @@ Regardless of whether project context exists, explore the actual project to unde
41
41
  ### 3b. Project Structure & Type
42
42
 
43
43
  - **Detect project type:**
44
- - **Monorepo indicators**: `pnpm-workspace.yaml`, `turbo.json`, `nx.json`, `lerna.json`, or `"workspaces"` in root `package.json`
44
+ - **Monorepo indicators**: `turbo.json`, `"workspaces"` in root `package.json`, `pnpm-workspace.yaml`, `nx.json`, or `lerna.json`
45
45
  - **Single-repo indicators**: Single `package.json` at root, `src/` directory, no workspace config
46
46
  - Record as `monorepo` or `single-repo` in the report
47
- - What package manager? Check for `pnpm-lock.yaml`, `yarn.lock`, `package-lock.json`, `bun.lock`
47
+ - What package manager? Check for `bun.lock`, `pnpm-lock.yaml`, `yarn.lock`, `package-lock.json`
48
48
  - If monorepo: What workspaces exist? List `apps/`, `packages/`, `apis/`, `config/` or equivalent
49
49
  - Is there a `biome.json`? ESLint config? Prettier config?
50
50
  - Is TypeScript strict? Check `tsconfig.json` for `strict: true` and `noUncheckedIndexedAccess`
@@ -323,7 +323,7 @@ Blueprint upgrades:
323
323
  Skipped:
324
324
  ○ ui-shared-components — not selected
325
325
 
326
- Next: run pnpm install to pick up new dependencies.
326
+ Next: run bun install to pick up new dependencies.
327
327
  ──────────────────────────────────────────────
328
328
  ```
329
329
 
@@ -13,12 +13,14 @@ user-invocable: false
13
13
  | Blueprint | Tier | What it does | Dependencies | Skill |
14
14
  |-----------|------|-------------|--------------|-------|
15
15
  | Product Discovery | Discovery | Structured session producing product thesis, user archetypes, and competitive analysis. No code. | None | `/discover` |
16
- | Monorepo Foundation | Foundation | Turborepo + pnpm monorepo with Next.js, Biome, TypeScript strict, Tailwind v4. | None | `/scaffold-foundation` |
16
+ | Marketing Copywriting | Discovery | Conversion-focused page copy (landing, pricing, about, features) with psychology frameworks, variations, and educational annotations. | product-discovery (recommended) | `/copywrite`, `/copywrite-landing` |
17
+ | Design System | Discovery | Visual identity definition: colors, typography, spacing, shadows, component guidelines. Outputs actual Tailwind v4 CSS tokens. | product-discovery (recommended) | `/design-system` |
18
+ | Monorepo Foundation | Foundation | Turborepo + bun monorepo with Next.js, Biome, TypeScript strict, Tailwind v4. | None | `/scaffold-foundation` |
17
19
  | Database | Feature | Drizzle ORM + PostgreSQL: schema groups, per-group migrations, seed scripts. | None | `/scaffold-db` |
18
20
  | Authentication | Feature | Better Auth + Drizzle + PostgreSQL: social login, email/password, organizations, role-based permissions. | Database | `/scaffold-auth` |
19
21
  | Environment Variables | Feature | T3 Env + Zod: validated, type-safe env vars for Next.js (client/server split) and backend apps. | None | `/scaffold-env` |
20
- | Tailwind v4 Design System | Feature | Full design system: shadcn tokens, animations, typography, sidebar/chart tokens, dark mode. | Foundation (recommended) | `/scaffold-tailwind` |
21
- | UI Shared Components | Feature | Shared UI package: shadcn/ui, path-based exports, cn utility, component generation. | Tailwind v4 | `/scaffold-ui` |
22
+ | Tailwind v4 Design System | Feature | Full Tailwind v4 upgrade: shadcn tokens, shadows, easing, animations, sidebar/chart tokens, dark mode. Auto-detects `/design-system` output. | Foundation (recommended) | `/scaffold-tailwind` |
23
+ | UI Shared Components | Feature | 31 base components (Base UI + Phosphor): compound patterns, form system, app shell, data display. Auto-installs Tailwind. | Tailwind v4 (auto-installed) | `/scaffold-ui` |
22
24
 
23
25
  ## Project Context
24
26
 
@@ -30,7 +32,13 @@ Suggest a blueprint when you observe these signals. Be helpful, not pushy — me
30
32
 
31
33
  **`/discover`** — User describes a new product idea, asks "what should I build", is unsure about scope or target users, is non-technical or building their first product, or project has no product documentation.
32
34
 
33
- **`/scaffold-foundation`** — User wants to set up a monorepo, mentions Turborepo or project structure, or project has no `turbo.json` / `pnpm-workspace.yaml`. Best after discovery. Skip for single-repo apps.
35
+ **`/copywrite`** — User mentions landing page copy, marketing page, pricing page copy, about page copy, or wants help writing page content. For landing pages specifically, suggest `/copywrite-landing` instead (deeper CRO frameworks).
36
+
37
+ **`/copywrite-landing`** — User mentions landing page, homepage copy, conversion optimization, or wants to write a high-converting landing page. Reads from product discovery automatically when available.
38
+
39
+ **`/design-system`** — User mentions visual identity, brand colors, design tokens, font choices, custom theme, "make it look unique", or wants to move beyond the default shadcn aesthetic. Best after discovery. Output is consumed by `/scaffold-tailwind` automatically.
40
+
41
+ **`/scaffold-foundation`** — User wants to set up a monorepo, mentions Turborepo or project structure, or project has no `turbo.json` / `"workspaces"` in root `package.json`. Best after discovery. Skip for single-repo apps.
34
42
 
35
43
  **`/scaffold-db`** — User mentions database, Drizzle, PostgreSQL, schemas, migrations, or needs a structured db layer. Or is writing raw SQL or using an ORM without organized schemas.
36
44
 
@@ -48,12 +56,14 @@ Suggest a blueprint when you observe these signals. Be helpful, not pushy — me
48
56
 
49
57
  Discovery → Foundation → Features is the recommended flow, but blueprints can be applied at any stage.
50
58
 
51
- - **New project, no code:** Start with `/discover` (especially for non-technical users) or `/scaffold-foundation` (for monorepos)
59
+ - **New project, no code:** Start with `/discover` (product definition), then optionally `/copywrite-landing` (marketing copy) and `/design-system` (visual identity), then `/scaffold-foundation` (monorepo) or go straight to features (single-repo)
52
60
  - **Single-repo project:** Skip foundation — go directly to feature blueprints (`/scaffold-db`, `/scaffold-auth`)
53
61
  - **Has monorepo, missing features:** Suggest specific feature blueprints
54
62
  - **Existing project:** Feature blueprints adapt to existing structures — no foundation required
55
- - **Dependencies:** `/scaffold-auth` works best after `/scaffold-db` (auth builds on db patterns). `/scaffold-ui` requires `/scaffold-tailwind`. Install dependencies first.
56
- - **Environment setup:** `/scaffold-env` is recommended for all projects it's standalone and works with any combination of other blueprints
63
+ - **Want unique visual identity:** Run `/design-system` it outputs Tailwind tokens that `/scaffold-tailwind` auto-detects
64
+ - **Need marketing pages:** Run `/copywrite-landing` for landing pages, `/copywrite` for other pages (pricing, about, features)
65
+ - **Dependencies:** `/scaffold-auth` works best after `/scaffold-db` (auth builds on db patterns). `/scaffold-ui` auto-installs `/scaffold-tailwind`. `/scaffold-tailwind` auto-detects design system tokens.
66
+ - **Environment setup:** `/scaffold-env` is recommended for all projects — it's standalone
57
67
 
58
68
  ## Important
59
69
 
@@ -0,0 +1,187 @@
1
+ ---
2
+ name: copywrite
3
+ description: Write conversion-focused marketing page copy with psychology-backed frameworks and educational annotations
4
+ ---
5
+
6
+ # Write Marketing Page Copy
7
+
8
+ Write structured, conversion-focused marketing copy for any page type: pricing, about, features, team, careers, changelog, and more. Every section is annotated with the psychology and framework behind it so the user learns marketing through the output.
9
+
10
+ This skill covers general marketing pages. For landing pages and homepages, redirect to `/copywrite-landing`.
11
+
12
+ ## Step 1: Read the Blueprint
13
+
14
+ Read the full copywriting blueprint:
15
+
16
+ ```
17
+ ~/.withmata/blueprints/blueprints/discovery/marketing-copywriting/BLUEPRINT.md
18
+ ```
19
+
20
+ If not found, run `npx @withmata/blueprints` to install.
21
+
22
+ The BLUEPRINT.md contains the complete methodology: page-type section sequences, copywriting frameworks, psychology principles, and the Seven Sweeps editing process. Follow it precisely.
23
+
24
+ ## Step 2: Read Context
25
+
26
+ Check if `.project-context.md` exists in the target project root. If it contains a `## Product Discovery` section, read the product docs:
27
+
28
+ - `docs/product/product-thesis.md` — for pillars, positioning, value prop
29
+ - `docs/product/product-brief.md` — for competitive landscape, differentiation
30
+ - `docs/product/users/archetype-*.md` — for customer language, pain points, desires, "In Their Voice" quotes
31
+
32
+ Map discovery findings to copywriting context:
33
+
34
+ - Product thesis pillars become the key benefits to emphasize
35
+ - Archetype "Their World" + "The Problem in Their Words" become problem/pain section content
36
+ - Archetype "What They Care About Most" drives benefit prioritization
37
+ - Competitive landscape informs differentiation claims and objection handling
38
+ - "In Their Voice" quotes supply customer language to weave into copy
39
+
40
+ If no product docs exist, note what context is missing. Gather it conversationally in Step 3.
41
+
42
+ ## Step 3: Understand the Page
43
+
44
+ Ask these questions. Skip any already answered by product docs:
45
+
46
+ 1. **"What page are you writing?"** — pricing, about, features, team, careers, changelog, or describe it
47
+ 2. **"What's the primary goal?"** — what action should visitors take? (sign up, book demo, learn about team, explore features, etc.)
48
+ 3. **"Who's the audience for THIS specific page?"** — pre-fill from archetypes if available, confirm or refine
49
+ 4. **"What tone fits?"** — casual/conversational, professional but friendly, technical/precise, playful/bold. Derive from product docs if brand voice is defined.
50
+ 5. **"Any specific content that MUST be included?"** — e.g., specific features for a feature page, specific team members for a team page, specific plans for pricing
51
+
52
+ If product docs exist, present a summary of what you pulled and ask: "Here's what I'm working from — [summarize context]. Anything to adjust or add?"
53
+
54
+ ## Step 4: Generate Page Structure
55
+
56
+ Based on the page type, select the appropriate section sequence from the blueprint. Present a structure sketch for approval before writing:
57
+
58
+ ```
59
+ Here's the structure I recommend for your [page type]:
60
+
61
+ 1. **Hero** — [what this section will accomplish]
62
+ *Why first: [psychology reasoning]*
63
+
64
+ 2. **[Section 2]** — [purpose]
65
+ *Why here: [reasoning]*
66
+
67
+ ... etc
68
+
69
+ Does this structure feel right, or should we adjust before I write the copy?
70
+ ```
71
+
72
+ Wait for confirmation. Do not proceed to writing until the user approves or adjusts the structure.
73
+
74
+ ## Step 5: Write Copy Section by Section
75
+
76
+ For each section, generate:
77
+
78
+ - The actual copy text
79
+ - An annotation explaining the framework/psychology behind the choices
80
+ - For key elements (headlines, CTAs, hero text): 2-3 variations with rationale
81
+
82
+ **Annotation format for every section:**
83
+
84
+ ```
85
+ *Why this works: [Name the specific framework or psychology principle]. [Explain in 1-2 sentences why this technique is effective for this audience/product]. [Note any product-specific reasoning from the discovery docs].*
86
+ ```
87
+
88
+ **Variation format for key elements:**
89
+
90
+ ```
91
+ **Primary (recommended):**
92
+ > [copy text]
93
+ *Why: [reasoning]*
94
+
95
+ **Alternative A** — [angle description]:
96
+ > [copy text]
97
+ *Best when: [context]*
98
+
99
+ **Alternative B** — [angle description]:
100
+ > [copy text]
101
+ *Best when: [context]*
102
+ ```
103
+
104
+ Generate 2-3 meaningfully different angles, not slight word swaps. Each variation should represent a different strategic choice.
105
+
106
+ Use customer language from archetypes when available. Bridge every feature to a benefit with "which means..."
107
+
108
+ ## Step 6: Quality Pass — Seven Sweeps
109
+
110
+ Run the Seven Sweeps copy editing framework against the generated copy:
111
+
112
+ 1. **Clarity** — flag anything not immediately understandable
113
+ 2. **Voice & Tone** — flag any inconsistencies with the chosen tone
114
+ 3. **"So What?"** — flag features presented without benefits
115
+ 4. **"Prove It"** — flag unsupported claims (suggest where to add testimonials or stats; never fabricate them)
116
+ 5. **Specificity** — flag vague language, suggest concrete alternatives
117
+ 6. **Heightened Emotion** — flag purely informational sections near decision points
118
+ 7. **Zero Risk** — flag missing risk reversals near CTAs
119
+
120
+ Include the sweep results in the output document under "## Copy Editing Notes". Fix what can be fixed inline; call out what needs user input (e.g., real testimonials, actual stats).
121
+
122
+ ## Step 7: Output
123
+
124
+ Create `docs/pages/` in the target project if it does not exist. Write the page copy to `docs/pages/{page-name}.md` using this structure:
125
+
126
+ ```markdown
127
+ # {Page Name} — {Page Type} Copy
128
+
129
+ ## Context
130
+ - **Page type:** [type]
131
+ - **Primary goal:** [conversion action]
132
+ - **Target audience:** [from product docs or conversation]
133
+ - **Tone:** [chosen tone]
134
+ - **Product discovery:** [Yes — linked to docs/product/ | No — context gathered conversationally]
135
+
136
+ ## Page Structure Sketch
137
+ [Section-by-section layout with spacing/hierarchy notes.
138
+ Not pixel-perfect, but sketch-level: what goes where, relative sizing, visual weight.
139
+ Describe the visual flow a developer would need to build this page.]
140
+
141
+ ## Copy by Section
142
+
143
+ ### 1. Hero
144
+ [Headlines with variations, subheadline, primary CTA, supporting micro-copy.
145
+ Each with full annotations.]
146
+
147
+ ### 2. [Section 2]
148
+ [Copy + annotations]
149
+
150
+ ... [all sections]
151
+
152
+ ## Copy Editing Notes
153
+ [Results of Seven Sweeps — what was flagged, what was improved, what needs user input (e.g., real testimonials to add)]
154
+
155
+ ## Meta Content
156
+ - **Page title:** [SEO-optimized, 60 chars max]
157
+ - **Meta description:** [155 chars max, includes CTA]
158
+ - **OG title:** [for social sharing]
159
+ - **OG description:** [for social sharing]
160
+ ```
161
+
162
+ Update `.project-context.md` under `## Installed Blueprints`. If a `### marketing-copywriting` entry already exists, update `pages_created` to include the new page. Otherwise append:
163
+
164
+ ```yaml
165
+ ### marketing-copywriting
166
+ blueprint: marketing-copywriting
167
+ pages_created:
168
+ - docs/pages/{page-name}.md
169
+ ```
170
+
171
+ ## Step 8: Summary
172
+
173
+ Tell the user:
174
+
175
+ - What page was created and where the file lives
176
+ - Key copywriting decisions and the reasoning behind them
177
+ - Top 3 things the user should customize with real data (e.g., "Replace the placeholder testimonial with a real customer quote")
178
+ - Suggested next steps ("Run `/copywrite-landing` for your homepage", "Add real testimonials to strengthen the social proof section")
179
+
180
+ ## Important Rules
181
+
182
+ - **Never fabricate testimonials, stats, or customer quotes.** Use placeholder format: `[Testimonial: Customer name, role — what they'd say about {specific benefit}]`. The user fills these in with real data.
183
+ - **Always explain WHY.** Every section, every headline choice, every CTA — annotate with the framework and psychology behind it. The user is learning marketing through these outputs.
184
+ - **Use customer language when available.** If archetypes have "In Their Voice" quotes, weave that language into the copy. It converts because it feels like the visitor wrote it themselves.
185
+ - **Don't over-sell.** Honest, specific claims convert better than sensational ones. If the product can't back a claim, don't make it.
186
+ - **Variations are for comparison, not volume.** Each variation should represent a different strategic choice, not a slight word swap.
187
+ - **For landing pages, redirect to `/copywrite-landing`.** If the user asks for a landing page or homepage, suggest: "Landing pages benefit from deeper frameworks. Want to use `/copywrite-landing` instead? It includes CRO analysis and traffic source matching."