create-ailk 0.9.0 → 0.11.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 (104) hide show
  1. package/README.md +10 -5
  2. package/dist/cli.js +17 -2
  3. package/dist/content-payloads.d.ts +37 -0
  4. package/dist/content-payloads.js +64 -0
  5. package/dist/lib/fetch-module.d.ts +3 -3
  6. package/dist/lib/fetch-module.js +11 -5
  7. package/dist/lib/fetch-template.d.ts +1 -1
  8. package/dist/lib/fetch-template.js +7 -4
  9. package/dist/lib/module-license-gate.d.ts +29 -23
  10. package/dist/lib/module-license-gate.js +98 -0
  11. package/dist/module-architecture.d.ts +9 -0
  12. package/dist/module-architecture.js +46 -14
  13. package/dist/parse-args.d.ts +2 -0
  14. package/dist/parse-args.js +7 -0
  15. package/dist/programmatic.js +12 -4
  16. package/dist/starter-grid.d.ts +4 -67
  17. package/dist/starter-grid.js +6 -84
  18. package/dist/surfaces.js +2 -3
  19. package/dist/template-manifest.d.ts +1 -1
  20. package/dist/template-manifest.js +5 -5
  21. package/package.json +6 -4
  22. package/release-scope.json +25 -0
  23. package/site-templates/designs/minimalism/sample/README.md +2 -2
  24. package/site-templates/designs/minimalism/sample/content/en/HomePage/home.mdx +1 -1
  25. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +4 -3
  26. package/templates/.claude/agents/web.md +10 -8
  27. package/templates/.claude/rules/architecture.md +10 -7
  28. package/templates/.claude/settings.json +12 -0
  29. package/templates/.env.example +24 -3
  30. package/templates/CLAUDE.md +38 -22
  31. package/templates/README.md +12 -12
  32. package/templates/apps/api/jest.config.cjs +1 -0
  33. package/templates/apps/api/package.json +1 -0
  34. package/templates/apps/mcp/CLAUDE.md +23 -10
  35. package/templates/apps/mcp/__tests__/catalog-drift.test.ts +160 -17
  36. package/templates/apps/mcp/__tests__/index.test.ts +118 -1
  37. package/templates/apps/mcp/__tests__/lib/commerce-claim.test.ts +425 -5
  38. package/templates/apps/mcp/__tests__/module-exclusion.test.ts +67 -3
  39. package/templates/apps/mcp/__tests__/server.test.ts +162 -1
  40. package/templates/apps/mcp/src/index.ts +35 -3
  41. package/templates/apps/mcp/src/lib/commerce-claim.ts +193 -24
  42. package/templates/apps/mcp/src/server.ts +77 -5
  43. package/templates/apps/mcp/src/tools/purchase.ts +1 -1
  44. package/templates/apps/web/app/.well-known/mcp.json/build-manifest.ts +15 -0
  45. package/templates/apps/web/app/.well-known/mcp.json/route.ts +10 -3
  46. package/templates/apps/web/src/lib/commerce-claim.ts +15 -6
  47. package/templates/content/_site.mdx +23 -4
  48. package/templates/database/CHANGELOG.md +7 -0
  49. package/templates/database/package.json +1 -1
  50. package/templates/package.json +2 -0
  51. package/versions.json +34 -33
  52. package/dist/modules/commerce/0.6.0.tar.gz +0 -0
  53. package/dist/modules/commerce/0.6.1.tar.gz +0 -0
  54. package/dist/modules/docs-blog/0.6.0.tar.gz +0 -0
  55. package/dist/modules/docs-blog/0.6.1.tar.gz +0 -0
  56. package/dist/modules/marketing-site/0.6.1.tar.gz +0 -0
  57. package/dist/modules/minimalism-site/0.6.1.tar.gz +0 -0
  58. package/dist/modules/multi-tenant/0.6.0.tar.gz +0 -0
  59. package/dist/modules/multi-tenant/0.6.1.tar.gz +0 -0
  60. package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
  61. package/dist/modules/scheduling/0.6.0.tar.gz +0 -0
  62. package/dist/modules/scheduling/0.6.1.tar.gz +0 -0
  63. package/dist/modules/signal-collectors/0.6.0.tar.gz +0 -0
  64. package/dist/modules/signal-collectors/0.6.1.tar.gz +0 -0
  65. package/dist/modules/simple-service/0.6.1.tar.gz +0 -0
  66. package/dist/modules/workspace/0.6.0.tar.gz +0 -0
  67. package/dist/modules/workspace/0.6.1.tar.gz +0 -0
  68. package/site-templates/aliases/minimalism-site.TEMPLATE-MANIFEST.json +0 -538
  69. package/templates/.claude/skills/README.md +0 -37
  70. package/templates/.claude/skills/add-auth/SKILL.md +0 -261
  71. package/templates/.claude/skills/add-auth/references/env-vars.md +0 -98
  72. package/templates/.claude/skills/add-auth/references/oauth-app-setup.md +0 -172
  73. package/templates/.claude/skills/add-page/SKILL.md +0 -260
  74. package/templates/.claude/skills/add-page/references/page-types.md +0 -124
  75. package/templates/.claude/skills/add-page/scripts/site-pages.mjs +0 -87
  76. package/templates/.claude/skills/add-page/templates/comparison-page.mdx.tmpl +0 -99
  77. package/templates/.claude/skills/add-page/templates/content.mdx.tmpl +0 -18
  78. package/templates/.claude/skills/add-page/templates/flow-landing-page.mdx.tmpl +0 -43
  79. package/templates/.claude/skills/add-page/templates/report-page.mdx.tmpl +0 -52
  80. package/templates/.claude/skills/add-page/templates/reports-list.mdx.tmpl +0 -38
  81. package/templates/.claude/skills/check-site/SKILL.md +0 -235
  82. package/templates/.claude/skills/check-site/references/common-errors.md +0 -113
  83. package/templates/.claude/skills/check-site/references/findings-glossary.md +0 -140
  84. package/templates/.claude/skills/check-site/references/severity-levels.md +0 -114
  85. package/templates/.claude/skills/fill-page/SKILL.md +0 -199
  86. package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +0 -80
  87. package/templates/.claude/skills/fill-page/references/section-sources.md +0 -41
  88. package/templates/.claude/skills/setup-database/SKILL.md +0 -156
  89. package/templates/.claude/skills/setup-database/scripts/verify-inbox.ts +0 -154
  90. package/templates/.claude/skills/setup-deploy/SKILL.md +0 -275
  91. package/templates/.claude/skills/setup-deploy/references/env-vars-template.md +0 -192
  92. package/templates/.claude/skills/setup-deploy/references/runbook-template.md +0 -204
  93. package/templates/.claude/skills/setup-deploy/references/vercel-json-template.md +0 -98
  94. package/templates/.claude/skills/update-page/SKILL.md +0 -117
  95. package/templates/.claude/skills/update-page/scripts/update-page.ts +0 -640
  96. package/templates/.claude/skills/update-page/templates/redirects.mjs.tmpl +0 -31
  97. package/templates/.claude/skills/upgrade-plan/SKILL.md +0 -121
  98. package/templates/.claude/skills/upgrade-plan/references/options.md +0 -24
  99. package/templates/.claude/skills/upgrade-plan/scripts/upgrade-plan.ts +0 -527
  100. package/templates/apps/api/.ailk/inbox/2026-09-20T14-57-31.552Z-fallback-1789916251590-037e9005.json +0 -8
  101. package/templates/apps/api/.ailk/inbox/2026-09-20T14-57-33.840Z-fallback-1789916253842-b52659e9.json +0 -12
  102. package/templates/apps/api/.ailk/inbox/2026-09-20T14-57-33.844Z-fallback-1789916253845-6b266f8c.json +0 -12
  103. package/templates/apps/mcp/__tests__/lib/require-paid-tier.test.ts +0 -75
  104. package/templates/apps/mcp/src/lib/require-paid-tier.ts +0 -44
@@ -1,538 +0,0 @@
1
- {
2
- "template": "minimalism-site",
3
- "requires": ["marketing", "scheduling", "signal-collectors"],
4
- "categories": ["real-estate", "technology", "legal"],
5
- "shape": "organization-service",
6
- "design": "minimalism",
7
- "generatedHash": "0aaead8d66a2cfd64f9c89a15154f8a5d857a772dcab6759a15d2dd7e8b63aa5",
8
- "layout": {
9
- "nav": "mark-only",
10
- "footer": "centered",
11
- "announcementBanner": false,
12
- "home": "deck"
13
- },
14
- "theme": {
15
- "corners": "square",
16
- "eyebrowCase": "sentence",
17
- "placeholders": "fill",
18
- "checkmarks": "plain",
19
- "colors": {
20
- "light": {
21
- "bg": "#ffffff",
22
- "bgMuted": "#ffffff",
23
- "surface": "#ffffff",
24
- "border": "#000000",
25
- "text": "#000000",
26
- "textMuted": "#333333",
27
- "primary": "#000000",
28
- "primaryFg": "#ffffff",
29
- "accent": "#000000"
30
- },
31
- "dark": {
32
- "bg": "#000000",
33
- "bgMuted": "#000000",
34
- "surface": "#000000",
35
- "border": "#ffffff",
36
- "text": "#ffffff",
37
- "textMuted": "#cccccc",
38
- "primary": "#ffffff",
39
- "primaryFg": "#000000",
40
- "accent": "#ffffff"
41
- }
42
- }
43
- },
44
- "rows": [
45
- {
46
- "route": "/",
47
- "kind": "page",
48
- "pageType": "HomePage",
49
- "schema": "HomePage",
50
- "shell": "MarketingShell",
51
- "chrome": "on",
52
- "sections": [
53
- {
54
- "type": "hero",
55
- "component": "Hero",
56
- "options": {
57
- "surface": "gradient-brand",
58
- "fill": "viewport"
59
- }
60
- },
61
- {
62
- "type": "content-block",
63
- "component": "ContentBlock",
64
- "options": {
65
- "align": "center",
66
- "fill": "viewport"
67
- }
68
- },
69
- {
70
- "type": "logoCloud",
71
- "component": "LogoCloud",
72
- "options": {
73
- "layout": "grid"
74
- }
75
- },
76
- {
77
- "type": "content-block",
78
- "component": "ContentBlock",
79
- "options": {
80
- "align": "center",
81
- "fill": "viewport"
82
- }
83
- },
84
- {
85
- "type": "reports-list",
86
- "component": "ReportsList",
87
- "options": {
88
- "surface": "gradient-dark",
89
- "tone": "on-dark"
90
- }
91
- },
92
- {
93
- "type": "reports-list",
94
- "component": "ReportsList",
95
- "options": {
96
- "surface": "gradient-dark",
97
- "tone": "on-dark"
98
- }
99
- },
100
- {
101
- "type": "content-block",
102
- "component": "ContentBlock",
103
- "options": {
104
- "align": "center",
105
- "fill": "viewport"
106
- }
107
- },
108
- {
109
- "type": "team",
110
- "component": "Team"
111
- },
112
- {
113
- "type": "cta",
114
- "component": "CTA"
115
- }
116
- ]
117
- },
118
- {
119
- "route": "/reports",
120
- "kind": "page",
121
- "pageType": "ReportsList",
122
- "schema": "ReportsList",
123
- "shell": "MarketingShell",
124
- "chrome": "on",
125
- "sections": [
126
- {
127
- "type": "hero",
128
- "component": "Hero"
129
- },
130
- {
131
- "type": "cta",
132
- "component": "CTA"
133
- }
134
- ]
135
- },
136
- {
137
- "route": "/about",
138
- "kind": "page",
139
- "pageType": "AboutPage",
140
- "schema": "AboutPage",
141
- "shell": "MarketingShell",
142
- "chrome": "on",
143
- "sections": [
144
- {
145
- "type": "content-block",
146
- "component": "ContentBlock"
147
- },
148
- {
149
- "type": "cta",
150
- "component": "CTA"
151
- }
152
- ]
153
- },
154
- {
155
- "route": "/services",
156
- "kind": "page",
157
- "pageType": "ServicesList",
158
- "schema": "ServicesList",
159
- "shell": "MarketingShell",
160
- "chrome": "on",
161
- "sections": [
162
- {
163
- "type": "hero",
164
- "component": "Hero"
165
- },
166
- {
167
- "type": "items",
168
- "component": "Items",
169
- "options": {
170
- "columns": 3
171
- }
172
- },
173
- {
174
- "type": "cta",
175
- "component": "CTA"
176
- }
177
- ]
178
- },
179
- {
180
- "route": "/services/[slug]",
181
- "kind": "page",
182
- "contentDir": "content/en/Service",
183
- "seeds": [
184
- "content/en/Service/first-engagement.mdx",
185
- "content/en/Service/second-engagement.mdx",
186
- "content/en/Service/third-engagement.mdx"
187
- ],
188
- "pageType": "Service",
189
- "schema": "Service",
190
- "shell": "MarketingShell",
191
- "chrome": "on",
192
- "sections": []
193
- },
194
- {
195
- "route": "/for",
196
- "kind": "page",
197
- "pageType": "UseCasesList",
198
- "schema": "UseCasesList",
199
- "shell": "MarketingShell",
200
- "chrome": "on",
201
- "sections": [
202
- {
203
- "type": "hero",
204
- "component": "Hero"
205
- },
206
- {
207
- "type": "items",
208
- "component": "Items",
209
- "options": {
210
- "columns": 3
211
- }
212
- },
213
- {
214
- "type": "logoCloud",
215
- "component": "LogoCloud",
216
- "options": {
217
- "layout": "inline"
218
- }
219
- },
220
- {
221
- "type": "testimonials",
222
- "component": "Testimonials"
223
- },
224
- {
225
- "type": "cta",
226
- "component": "CTA"
227
- },
228
- {
229
- "type": "faq",
230
- "component": "FAQ"
231
- }
232
- ]
233
- },
234
- {
235
- "route": "/for/[slug]",
236
- "kind": "page",
237
- "contentDir": "content/en/UseCase",
238
- "seeds": [
239
- "content/en/UseCase/persona-1.mdx",
240
- "content/en/UseCase/persona-2.mdx",
241
- "content/en/UseCase/persona-3.mdx"
242
- ],
243
- "pageType": "UseCase",
244
- "schema": "UseCase",
245
- "shell": "MarketingShell",
246
- "chrome": "on",
247
- "sections": []
248
- },
249
- {
250
- "route": "/contact",
251
- "kind": "page",
252
- "pageType": "ContactPage",
253
- "schema": "ContactPage",
254
- "shell": "MarketingShell",
255
- "chrome": "on",
256
- "sections": [
257
- {
258
- "type": "hero",
259
- "component": "Hero"
260
- },
261
- {
262
- "type": "items",
263
- "component": "Items",
264
- "options": {
265
- "columns": 2
266
- }
267
- }
268
- ]
269
- },
270
- {
271
- "route": "/referral",
272
- "kind": "page",
273
- "pageType": "LandingPage",
274
- "schema": "WebPage",
275
- "shell": "MarketingShell",
276
- "chrome": "on",
277
- "sections": [
278
- {
279
- "type": "hero",
280
- "component": "Hero"
281
- },
282
- {
283
- "type": "stair-steps",
284
- "component": "StairSteps"
285
- },
286
- {
287
- "type": "cta",
288
- "component": "CTA"
289
- }
290
- ]
291
- },
292
- {
293
- "route": "/faq",
294
- "kind": "page",
295
- "pageType": "FAQPage",
296
- "schema": "FAQPage",
297
- "shell": "MarketingShell",
298
- "chrome": "on",
299
- "sections": [
300
- {
301
- "type": "hero",
302
- "component": "Hero",
303
- "options": {
304
- "gapBelow": "tight"
305
- }
306
- },
307
- {
308
- "type": "faq",
309
- "component": "FAQ"
310
- },
311
- {
312
- "type": "faq",
313
- "component": "FAQ"
314
- }
315
- ]
316
- },
317
- {
318
- "route": "/glossary",
319
- "kind": "page",
320
- "pageType": "GlossaryList",
321
- "schema": "GlossaryList",
322
- "shell": "MarketingShell",
323
- "chrome": "on",
324
- "sections": [
325
- {
326
- "type": "hero",
327
- "component": "Hero"
328
- },
329
- {
330
- "type": "glossary-index",
331
- "component": "GlossaryIndex"
332
- }
333
- ]
334
- },
335
- {
336
- "route": "/newsletter",
337
- "kind": "page",
338
- "pageType": "NewsletterSignup",
339
- "schema": "NewsletterSignup",
340
- "shell": "MarketingShell",
341
- "chrome": "on",
342
- "sections": [
343
- {
344
- "type": "hero",
345
- "component": "Hero"
346
- },
347
- {
348
- "type": "faq",
349
- "component": "FAQ"
350
- }
351
- ]
352
- },
353
- {
354
- "route": "/privacy",
355
- "kind": "page",
356
- "pageType": "PrivacyPage",
357
- "schema": "PrivacyPage",
358
- "shell": "MarketingShell",
359
- "chrome": "on",
360
- "sections": [
361
- {
362
- "type": "document-chassis",
363
- "component": "DocumentChassis",
364
- "options": {
365
- "layout": "article"
366
- }
367
- }
368
- ]
369
- },
370
- {
371
- "route": "/terms",
372
- "kind": "page",
373
- "pageType": "TermsPage",
374
- "schema": "TermsPage",
375
- "shell": "MarketingShell",
376
- "chrome": "on",
377
- "sections": [
378
- {
379
- "type": "document-chassis",
380
- "component": "DocumentChassis",
381
- "options": {
382
- "layout": "article"
383
- }
384
- }
385
- ]
386
- },
387
- {
388
- "route": "/purchase-policy",
389
- "kind": "page",
390
- "pageType": "PurchasePolicyPage",
391
- "schema": "PurchasePolicyPage",
392
- "shell": "MarketingShell",
393
- "chrome": "on",
394
- "sections": [
395
- {
396
- "type": "document-chassis",
397
- "component": "DocumentChassis",
398
- "options": {
399
- "layout": "article"
400
- }
401
- }
402
- ]
403
- },
404
- {
405
- "route": "/projects",
406
- "kind": "page",
407
- "pageType": "ProjectsList",
408
- "schema": "ProjectsList",
409
- "shell": "MarketingShell",
410
- "chrome": "on",
411
- "sections": [
412
- {
413
- "type": "hero",
414
- "component": "Hero"
415
- },
416
- {
417
- "type": "items",
418
- "component": "Items",
419
- "options": {
420
- "columns": 2
421
- }
422
- },
423
- {
424
- "type": "cta",
425
- "component": "CTA"
426
- }
427
- ]
428
- },
429
- {
430
- "route": "/projects/[slug]",
431
- "kind": "page",
432
- "contentDir": "content/en/Project",
433
- "seeds": [
434
- "content/en/Project/fit-check-funnel.mdx",
435
- "content/en/Project/launch-site-in-fourteen-days.mdx"
436
- ],
437
- "pageType": "Project",
438
- "schema": "Project",
439
- "shell": "MarketingShell",
440
- "chrome": "on",
441
- "sections": []
442
- },
443
- {
444
- "route": "/thanks/[slug]",
445
- "kind": "page",
446
- "contentDir": "content/en/ThankYouPage",
447
- "seeds": [
448
- "content/en/ThankYouPage/apply.mdx",
449
- "content/en/ThankYouPage/contact.mdx",
450
- "content/en/ThankYouPage/newsletter.mdx"
451
- ],
452
- "pageType": "ThankYouPage",
453
- "schema": "ThankYouPage",
454
- "shell": "MarketingShell",
455
- "chrome": "on",
456
- "sections": []
457
- },
458
- {
459
- "route": "/meet",
460
- "kind": "route",
461
- "pageType": null,
462
- "schema": null,
463
- "shell": "MarketingShell",
464
- "chrome": "on",
465
- "sections": []
466
- },
467
- {
468
- "route": "/meet/[slug]",
469
- "kind": "route",
470
- "pageType": null,
471
- "schema": null,
472
- "shell": "MarketingShell",
473
- "chrome": "on",
474
- "sections": []
475
- },
476
- {
477
- "route": "/meet/confirmed",
478
- "kind": "route",
479
- "pageType": null,
480
- "schema": null,
481
- "shell": "MarketingShell",
482
- "chrome": "on",
483
- "sections": []
484
- },
485
- {
486
- "route": "/appointments",
487
- "kind": "route",
488
- "pageType": null,
489
- "schema": null,
490
- "shell": "MarketingShell",
491
- "chrome": "on",
492
- "sections": []
493
- },
494
- {
495
- "route": "/flows/[slug]",
496
- "kind": "route",
497
- "pageType": null,
498
- "schema": null,
499
- "shell": "MarketingShell",
500
- "chrome": "on",
501
- "sections": []
502
- },
503
- {
504
- "route": "/flows/[slug]/start",
505
- "kind": "route",
506
- "pageType": null,
507
- "schema": null,
508
- "shell": "MarketingShell",
509
- "chrome": "on",
510
- "sections": []
511
- },
512
- {
513
- "route": "/flows/[slug]/results/[payload]",
514
- "kind": "route",
515
- "pageType": null,
516
- "schema": null,
517
- "shell": "MarketingShell",
518
- "chrome": "on",
519
- "sections": []
520
- },
521
- {
522
- "route": "/reports/[slug]",
523
- "kind": "page",
524
- "contentDir": "content/en/ReportPage",
525
- "seeds": [
526
- "content/en/ReportPage/annual-letter-2024.mdx",
527
- "content/en/ReportPage/field-notes-2023.mdx",
528
- "content/en/ReportPage/platform-shift-2025.mdx",
529
- "content/en/ReportPage/state-of-the-market-2026.mdx"
530
- ],
531
- "pageType": "ReportPage",
532
- "schema": "ReportPage",
533
- "shell": "MarketingShell",
534
- "chrome": "on",
535
- "sections": []
536
- }
537
- ]
538
- }
@@ -1,37 +0,0 @@
1
- # Skills
2
-
3
- Skills are reusable Claude Code workflows scoped to this project. Each
4
- lives in its own subdirectory with a `SKILL.md` describing when to use
5
- it and how it works.
6
-
7
- The eight skills below ship with this project. Claude Code discovers
8
- them automatically at session start — nothing to install or enable.
9
-
10
- ## Available skills
11
-
12
- | Skill | Purpose |
13
- | -------------- | -------------------------------------------------------------------------------------------------------------- |
14
- | `add-page` | Add a page this site can serve — its content file, structured data and nav link — adding a missing route with `create-ailk add-route` first. Also documents the `schema:` frontmatter override for any page. |
15
- | `update-page` | Rename a page — give it a new URL and/or a new title — in one plan-then-confirm pass: its content files, its own route folder, exact internal links and the manifest row move together, and the old URL gets a permanent redirect. |
16
- | `add-auth` | Activate auth providers — magic-link via Resend, Google OAuth, GitHub OAuth. |
17
- | `setup-deploy` | Emit deploy configuration — `vercel.json`, `.env.example`, and `RUNBOOK.md` — for a Vercel deploy. Asks where leads go (email or a database) and warns when neither is set. |
18
- | `setup-database` | Take the site from no database to a working lead inbox: provision Postgres, create the tables, pin the owner, and verify one test message lands in `/leads`. |
19
- | `check-site` | Run `ailk-audit --json` and explain the score and findings in plain language. |
20
- | `fill-page` | Fill one page's section content from a category profile: labelled sample content (tier 1) or your own first draft from a short intake (tier 2). |
21
- | `upgrade-plan` | Compare Free, Pro, Pro Plus, Agency and the commerce add-on side by side, with the prices the public pricing page publishes right now, and recommend one option for this site with a reason. |
22
-
23
- `scaffold-commerce` is delivered with the commerce module (`--modules commerce`, licensed).
24
-
25
- ## How a skill works
26
-
27
- Each subdirectory holds:
28
-
29
- - `SKILL.md` — when to invoke, what it produces, what it requires.
30
- - Any supporting prompt fragments, code templates, or reference
31
- files the skill loads at runtime.
32
-
33
- ## Adding your own
34
-
35
- To add a project-specific skill, create a folder here with a
36
- `SKILL.md` describing it. Claude Code will discover it automatically
37
- on session start. See the skills above for examples of the format.