create-ailk 0.6.1 → 0.8.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 (324) hide show
  1. package/README.md +87 -14
  2. package/component-catalog.json +735 -95
  3. package/component-catalog.md +13 -7
  4. package/dist/add-module-core.d.ts +22 -0
  5. package/dist/add-module-core.js +50 -0
  6. package/dist/add-module.d.ts +89 -0
  7. package/dist/add-module.js +334 -0
  8. package/dist/category-profile.d.ts +126 -0
  9. package/dist/category-profile.js +262 -0
  10. package/dist/cli.js +89 -29
  11. package/dist/index.d.ts +4 -2
  12. package/dist/index.js +6 -1
  13. package/dist/lib/extract-module-bundle.d.ts +56 -1
  14. package/dist/lib/extract-module-bundle.js +170 -14
  15. package/dist/lib/license-key-files.d.ts +15 -0
  16. package/dist/lib/license-key-files.js +102 -0
  17. package/dist/lib/module-license-gate.d.ts +79 -0
  18. package/dist/lib/module-license-gate.js +160 -12
  19. package/dist/lib/module-tier.d.ts +45 -16
  20. package/dist/lib/module-tier.js +76 -0
  21. package/dist/lib/pro-callout.d.ts +16 -10
  22. package/dist/lib/pro-callout.js +34 -3
  23. package/dist/license-set.d.ts +34 -0
  24. package/dist/license-set.js +194 -0
  25. package/dist/module-architecture.d.ts +20 -0
  26. package/dist/module-architecture.js +77 -19
  27. package/dist/modules/commerce/0.6.1.tar.gz +0 -0
  28. package/dist/modules/docs-blog/0.6.1.tar.gz +0 -0
  29. package/dist/modules/marketing-site/0.6.1.tar.gz +0 -0
  30. package/dist/modules/minimalism-site/0.6.1.tar.gz +0 -0
  31. package/dist/modules/multi-tenant/0.6.1.tar.gz +0 -0
  32. package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
  33. package/dist/modules/scheduling/0.6.1.tar.gz +0 -0
  34. package/dist/modules/signal-collectors/0.6.1.tar.gz +0 -0
  35. package/dist/modules/simple-service/0.6.1.tar.gz +0 -0
  36. package/dist/modules/workspace/0.6.1.tar.gz +0 -0
  37. package/dist/parse-args.d.ts +85 -10
  38. package/dist/parse-args.js +227 -15
  39. package/dist/programmatic.d.ts +81 -5
  40. package/dist/programmatic.js +291 -32
  41. package/dist/site-chrome.d.ts +18 -7
  42. package/dist/site-chrome.js +32 -14
  43. package/dist/site-roster.d.ts +127 -0
  44. package/dist/site-roster.js +499 -0
  45. package/dist/starter-grid.d.ts +216 -0
  46. package/dist/starter-grid.js +449 -0
  47. package/dist/surfaces.d.ts +20 -7
  48. package/dist/surfaces.js +204 -24
  49. package/dist/sync-routes.d.ts +9 -0
  50. package/dist/sync-routes.js +2 -2
  51. package/dist/template-manifest.d.ts +94 -19
  52. package/dist/template-manifest.js +170 -289
  53. package/dist/template-names.d.ts +14 -12
  54. package/dist/template-names.js +13 -17
  55. package/package.json +6 -4
  56. package/site-templates/_base/content/en/BookCall/book-call.mdx +52 -0
  57. package/site-templates/_base/content/en/Feature/feature-1.mdx +69 -0
  58. package/site-templates/_base/content/en/Feature/feature-2.mdx +69 -0
  59. package/site-templates/_base/content/en/Feature/feature-3.mdx +69 -0
  60. package/site-templates/_base/content/en/FeaturesList/features.mdx +91 -0
  61. package/site-templates/_base/content/en/GlossaryList/glossary.mdx +65 -0
  62. package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +67 -0
  63. package/site-templates/_base/content/en/PortfolioItem/sample-four.mdx +105 -0
  64. package/site-templates/_base/content/en/PortfolioItem/sample-one.mdx +34 -0
  65. package/site-templates/_base/content/en/PortfolioItem/sample-three.mdx +94 -0
  66. package/site-templates/_base/content/en/PortfolioItem/sample-two.mdx +45 -0
  67. package/site-templates/_base/content/en/PortfolioList/portfolio.mdx +169 -0
  68. package/site-templates/_base/content/en/Pricing/pricing.mdx +71 -62
  69. package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +17 -3
  70. package/site-templates/_base/content/en/TermsPage/terms.mdx +2 -3
  71. package/site-templates/_base/content/en/UseCase/persona-1.mdx +69 -0
  72. package/site-templates/_base/content/en/UseCase/persona-2.mdx +69 -0
  73. package/site-templates/_base/content/en/UseCase/persona-3.mdx +69 -0
  74. package/site-templates/designs/minimalism/DESIGN.md +162 -0
  75. package/site-templates/designs/standard/DESIGN.md +167 -0
  76. package/site-templates/marketing-site/DESIGN.md +59 -40
  77. package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +376 -57
  78. package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +230 -90
  79. package/site-templates/marketing-site/ailk-template.json +1 -0
  80. package/site-templates/marketing-site-free/DESIGN.md +59 -40
  81. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +323 -63
  82. package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +323 -113
  83. package/site-templates/marketing-site-free/ailk-template.json +3 -2
  84. package/site-templates/marketing-site-free/content/en/NewsletterSignup/newsletter.mdx +59 -0
  85. package/site-templates/marketing-site-free/content/en/Pricing/pricing.mdx +199 -0
  86. package/site-templates/minimalism-site/DESIGN.md +54 -40
  87. package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +246 -19
  88. package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +173 -51
  89. package/site-templates/minimalism-site/ailk-template.json +3 -2
  90. package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +52 -0
  91. package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +3 -37
  92. package/site-templates/minimalism-site/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
  93. package/site-templates/saas-product/DESIGN.md +59 -40
  94. package/site-templates/saas-product/TEMPLATE-MANIFEST.md +9 -1
  95. package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.json +369 -0
  96. package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.md +302 -0
  97. package/site-templates/shapes/local-business-service/ailk-template.json +10 -0
  98. package/site-templates/{simple-service → shapes/local-business-service}/content/en/AboutPage/about.mdx +4 -4
  99. package/site-templates/shapes/local-business-service/content/en/HomePage/home.mdx +70 -0
  100. package/site-templates/shapes/local-business-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
  101. package/site-templates/shapes/local-business-service/content/en/PortfolioList/portfolio.mdx +171 -0
  102. package/site-templates/shapes/local-business-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
  103. package/site-templates/shapes/local-business-service/content/en/Service/first-job.mdx +39 -0
  104. package/site-templates/shapes/local-business-service/content/en/Service/second-job.mdx +39 -0
  105. package/site-templates/shapes/local-business-service/content/en/Service/third-job.mdx +39 -0
  106. package/site-templates/shapes/local-business-service/content/en/ServicesList/services.mdx +61 -0
  107. package/site-templates/shapes/local-business-service/provenance.json +4 -0
  108. package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.json +362 -0
  109. package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.md +300 -0
  110. package/site-templates/shapes/organization-service/ailk-template.json +10 -0
  111. package/site-templates/shapes/organization-service/content/en/AboutPage/about.mdx +38 -0
  112. package/site-templates/shapes/organization-service/content/en/HomePage/home.mdx +85 -0
  113. package/site-templates/shapes/organization-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
  114. package/site-templates/shapes/organization-service/content/en/PortfolioList/portfolio.mdx +171 -0
  115. package/site-templates/shapes/organization-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
  116. package/site-templates/shapes/organization-service/content/en/Service/first-engagement.mdx +38 -0
  117. package/site-templates/shapes/organization-service/content/en/Service/second-engagement.mdx +38 -0
  118. package/site-templates/shapes/organization-service/content/en/Service/third-engagement.mdx +38 -0
  119. package/site-templates/shapes/organization-service/content/en/ServicesList/services.mdx +72 -0
  120. package/site-templates/shapes/organization-service/provenance.json +4 -0
  121. package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.json +369 -0
  122. package/site-templates/shapes/person-service/TEMPLATE-MANIFEST.md +299 -0
  123. package/site-templates/shapes/person-service/ailk-template.json +10 -0
  124. package/site-templates/shapes/person-service/content/_site.mdx +85 -0
  125. package/site-templates/shapes/person-service/content/en/AboutPage/about.mdx +39 -0
  126. package/site-templates/shapes/person-service/content/en/HomePage/home.mdx +97 -0
  127. package/site-templates/shapes/person-service/content/en/NewsletterSignup/newsletter.mdx +59 -0
  128. package/site-templates/shapes/person-service/content/en/PortfolioList/portfolio.mdx +169 -0
  129. package/site-templates/shapes/person-service/content/en/PurchasePolicyPage/purchase-policy.mdx +123 -0
  130. package/site-templates/shapes/person-service/content/en/Service/first-engagement.mdx +38 -0
  131. package/site-templates/shapes/person-service/content/en/Service/second-engagement.mdx +38 -0
  132. package/site-templates/shapes/person-service/content/en/Service/third-engagement.mdx +38 -0
  133. package/site-templates/{simple-service → shapes/person-service}/content/en/ServicesList/services.mdx +16 -16
  134. package/site-templates/shapes/person-service/provenance.json +4 -0
  135. package/templates/.claude/settings.json +15 -0
  136. package/templates/.claude/skills/README.md +10 -9
  137. package/templates/.claude/skills/{scaffold-auth → add-auth}/SKILL.md +7 -7
  138. package/templates/.claude/skills/{scaffold-auth → add-auth}/references/env-vars.md +2 -2
  139. package/templates/.claude/skills/{scaffold-auth → add-auth}/references/oauth-app-setup.md +3 -3
  140. package/templates/.claude/skills/{scaffold-page → add-page}/SKILL.md +76 -62
  141. package/templates/.claude/skills/add-page/references/page-types.md +115 -0
  142. package/templates/.claude/skills/{scaffold-page → add-page}/templates/content.mdx.tmpl +4 -4
  143. package/templates/.claude/skills/{scaffold-page → add-page}/templates/route.tsx.tmpl +1 -1
  144. package/templates/.claude/skills/{audit-site → check-site}/SKILL.md +16 -17
  145. package/templates/.claude/skills/{audit-site → check-site}/references/common-errors.md +3 -3
  146. package/templates/.claude/skills/{audit-site → check-site}/references/findings-glossary.md +16 -14
  147. package/templates/.claude/skills/{audit-site → check-site}/references/severity-levels.md +1 -1
  148. package/templates/.claude/skills/fill-page/SKILL.md +180 -0
  149. package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +80 -0
  150. package/templates/.claude/skills/fill-page/references/section-sources.md +41 -0
  151. package/templates/.claude/skills/setup-database/SKILL.md +156 -0
  152. package/templates/.claude/skills/setup-database/scripts/verify-inbox.ts +154 -0
  153. package/templates/.claude/skills/{provision-config → setup-deploy}/SKILL.md +73 -41
  154. package/templates/.claude/skills/{provision-config → setup-deploy}/references/env-vars-template.md +21 -30
  155. package/templates/.claude/skills/setup-deploy/references/runbook-template.md +204 -0
  156. package/templates/.claude/skills/{provision-config → setup-deploy}/references/vercel-json-template.md +1 -1
  157. package/templates/.claude/skills/upgrade-plan/SKILL.md +117 -0
  158. package/templates/.claude/skills/upgrade-plan/references/options.md +24 -0
  159. package/templates/.claude/skills/upgrade-plan/scripts/upgrade-plan.ts +527 -0
  160. package/templates/.github/workflows/ci.yml +5 -0
  161. package/templates/CLAUDE.md +8 -2
  162. package/templates/DESIGN.md +56 -44
  163. package/templates/README.md +116 -46
  164. package/templates/apps/api/.env.example +2 -1
  165. package/templates/apps/api/CLAUDE.md +3 -2
  166. package/templates/apps/api/package.json +1 -1
  167. package/templates/apps/api/src/config/__tests__/index.test.ts +146 -10
  168. package/templates/apps/api/src/config/index.ts +46 -14
  169. package/templates/apps/api/src/lib/__tests__/lead-capture-store.test.ts +30 -0
  170. package/templates/apps/api/src/lib/__tests__/lead-delivery.test.ts +96 -0
  171. package/templates/apps/api/src/lib/lead-capture-store.ts +12 -0
  172. package/templates/apps/api/src/lib/lead-delivery.ts +52 -0
  173. package/templates/apps/api/src/lib/license-key-store.ts +45 -0
  174. package/templates/apps/api/src/lib/site.ts +5 -3
  175. package/templates/apps/api/src/middleware/__tests__/auth.database-not-configured.test.ts +97 -0
  176. package/templates/apps/api/src/middleware/auth.ts +9 -0
  177. package/templates/apps/api/src/openapi/spec.ts +63 -12
  178. package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +127 -5
  179. package/templates/apps/api/src/routes/content/get-page.ts +86 -2
  180. package/templates/apps/api/src/routes/leads/__tests__/capture.test.ts +88 -0
  181. package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +100 -0
  182. package/templates/apps/api/src/routes/leads/index.ts +46 -1
  183. package/templates/apps/api/src/server.ts +13 -0
  184. package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +194 -0
  185. package/templates/apps/api/src/services/__tests__/leads-inbox.test.ts +124 -0
  186. package/templates/apps/api/src/services/lead-routing.ts +140 -30
  187. package/templates/apps/api/src/services/leads-inbox.ts +48 -11
  188. package/templates/apps/mcp/__tests__/audit-single-page.test.ts +75 -1
  189. package/templates/apps/mcp/__tests__/lib/audit-single-page-readiness-scan.test.ts +57 -9
  190. package/templates/apps/mcp/__tests__/parity.test.ts +5 -4
  191. package/templates/apps/mcp/package.json +2 -1
  192. package/templates/apps/mcp/src/index.ts +7 -0
  193. package/templates/apps/mcp/src/lib/audit-single-page.ts +36 -10
  194. package/templates/apps/mcp/src/lib/license-key-store.ts +45 -0
  195. package/templates/apps/mcp/src/tools/create_project.ts +21 -6
  196. package/templates/apps/web/__tests__/setup.ts +18 -0
  197. package/templates/apps/web/app/[locale]/(auth)/forgot-password/forgot-password-card.tsx +10 -2
  198. package/templates/apps/web/app/[locale]/(auth)/layout.tsx +2 -2
  199. package/templates/apps/web/app/[locale]/(auth)/reset-password/reset-password-card.tsx +10 -4
  200. package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-card.tsx +22 -14
  201. package/templates/apps/web/app/[locale]/(auth)/sign-up/sign-up-card.tsx +26 -18
  202. package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +12 -4
  203. package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +35 -4
  204. package/templates/apps/web/app/[locale]/[slug]/page.tsx +49 -9
  205. package/templates/apps/web/app/[locale]/book-a-call/page.tsx +50 -0
  206. package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
  207. package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
  208. package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +3 -4
  209. package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +67 -29
  210. package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +94 -11
  211. package/templates/apps/web/app/[locale]/contact/__tests__/contact-form-text.test.ts +32 -0
  212. package/templates/apps/web/app/[locale]/contact/__tests__/contact.actions.test.ts +129 -0
  213. package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +228 -86
  214. package/templates/apps/web/app/[locale]/contact/contact-form-text.ts +50 -0
  215. package/templates/apps/web/app/[locale]/contact/contact.actions.ts +73 -20
  216. package/templates/apps/web/app/[locale]/contact/page.tsx +115 -7
  217. package/templates/apps/web/app/[locale]/contact/site-contact-email.ts +54 -0
  218. package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
  219. package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +3 -4
  220. package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +4 -5
  221. package/templates/apps/web/app/[locale]/features/[slug]/page.tsx +64 -0
  222. package/templates/apps/web/app/[locale]/features/page.tsx +52 -0
  223. package/templates/apps/web/app/[locale]/glossary/page.tsx +50 -0
  224. package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
  225. package/templates/apps/web/app/[locale]/how-to/page.tsx +25 -15
  226. package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
  227. package/templates/apps/web/app/[locale]/layout.tsx +146 -52
  228. package/templates/apps/web/app/[locale]/newsletter/__tests__/newsletter.actions.test.ts +75 -0
  229. package/templates/apps/web/app/[locale]/newsletter/__tests__/page.test.tsx +163 -0
  230. package/templates/apps/web/app/[locale]/newsletter/newsletter.actions.ts +66 -0
  231. package/templates/apps/web/app/[locale]/newsletter/page.tsx +142 -0
  232. package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
  233. package/templates/apps/web/app/[locale]/portfolio/[slug]/page.tsx +59 -0
  234. package/templates/apps/web/app/[locale]/portfolio/page.tsx +49 -0
  235. package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
  236. package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +4 -5
  237. package/templates/apps/web/app/[locale]/{cancellation → purchase-policy}/page.tsx +15 -10
  238. package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +4 -5
  239. package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
  240. package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +14 -1
  241. package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
  242. package/templates/apps/web/app/[locale]/software/page.tsx +25 -15
  243. package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
  244. package/templates/apps/web/app/[locale]/tech-articles/page.tsx +25 -15
  245. package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +3 -4
  246. package/templates/apps/web/app/[locale]/use-cases/[slug]/page.tsx +63 -0
  247. package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +3 -4
  248. package/templates/apps/web/app/[locale]/use-cases/page.tsx +15 -2
  249. package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
  250. package/templates/apps/web/app/[locale]/whitepapers/page.tsx +25 -15
  251. package/templates/apps/web/app/error-fallback.tsx +17 -45
  252. package/templates/apps/web/app/not-found.tsx +14 -38
  253. package/templates/apps/web/app/og/route.tsx +6 -0
  254. package/templates/apps/web/eslint.config.mjs +3 -0
  255. package/templates/apps/web/instrumentation.ts +14 -0
  256. package/templates/apps/web/lib/__tests__/structured-data.test.tsx +38 -0
  257. package/templates/apps/web/lib/license-key-store.ts +52 -0
  258. package/templates/apps/web/lib/nav-config.ts +82 -18
  259. package/templates/apps/web/lib/prisma-for-auth.ts +9 -6
  260. package/templates/apps/web/lib/site-brand.tsx +1 -1
  261. package/templates/apps/web/lib/site-chrome.ts +3 -3
  262. package/templates/apps/web/lib/site-identity.ts +148 -0
  263. package/templates/apps/web/lib/site-theme.ts +11 -0
  264. package/templates/apps/web/messages/en.json +78 -37
  265. package/templates/apps/web/public/android-chrome-192x192.png +0 -0
  266. package/templates/apps/web/public/android-chrome-512x512.png +0 -0
  267. package/templates/apps/web/public/apple-touch-icon.png +0 -0
  268. package/templates/apps/web/public/favicon-16x16.png +0 -0
  269. package/templates/apps/web/public/favicon-32x32.png +0 -0
  270. package/templates/apps/web/public/favicon.ico +0 -0
  271. package/templates/apps/web/public/favicon.svg +3 -3
  272. package/templates/apps/web/public/logomark.svg +6 -3
  273. package/templates/apps/web/public/logos/ai-launch-kit-light.svg +4 -0
  274. package/templates/apps/web/public/logos/ai-launch-kit.svg +4 -0
  275. package/templates/apps/web/public/logos/atomic-agent-light.svg +4 -0
  276. package/templates/apps/web/public/logos/atomic-agent.svg +4 -0
  277. package/templates/apps/web/public/logos/salessmyth-light.svg +4 -0
  278. package/templates/apps/web/public/logos/salessmyth.svg +4 -0
  279. package/templates/apps/web/public/site.webmanifest +4 -4
  280. package/templates/apps/web/public/wordmark-light.svg +4 -0
  281. package/templates/apps/web/public/wordmark.svg +3 -3
  282. package/templates/apps/web/security-headers.config.ts +5 -1
  283. package/templates/content/_site.mdx +25 -0
  284. package/templates/content/en/AboutPage/about.mdx +150 -144
  285. package/templates/content/en/BlogList/blog.mdx +126 -0
  286. package/templates/content/en/ContactPage/contact.mdx +21 -92
  287. package/templates/content/en/FAQPage/faq.mdx +86 -57
  288. package/templates/content/en/HomePage/home.mdx +268 -217
  289. package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +181 -0
  290. package/templates/content/en/UseCasesList/use-cases.mdx +170 -0
  291. package/templates/database/CHANGELOG.md +14 -0
  292. package/templates/database/package.json +1 -1
  293. package/templates/package.json +3 -1
  294. package/templates/tools/lint-architecture.ts +315 -0
  295. package/templates/tools/tsconfig.json +14 -0
  296. package/versions.json +33 -33
  297. package/site-templates/simple-service/DESIGN.md +0 -148
  298. package/site-templates/simple-service/TEMPLATE-MANIFEST.json +0 -240
  299. package/site-templates/simple-service/TEMPLATE-MANIFEST.md +0 -278
  300. package/site-templates/simple-service/ailk-template.json +0 -10
  301. package/site-templates/simple-service/content/en/ContactPage/contact.mdx +0 -67
  302. package/site-templates/simple-service/content/en/FAQPage/faq.mdx +0 -56
  303. package/site-templates/simple-service/content/en/HomePage/home.mdx +0 -85
  304. package/site-templates/simple-service/content/en/Service/landscape-design.mdx +0 -40
  305. package/site-templates/simple-service/content/en/Service/lawn-maintenance.mdx +0 -40
  306. package/site-templates/simple-service/content/en/Service/seasonal-cleanup.mdx +0 -40
  307. package/site-templates/simple-service/provenance.json +0 -4
  308. package/templates/.claude/skills/add-schema/SKILL.md +0 -277
  309. package/templates/.claude/skills/add-schema/references/conflict-handling.md +0 -200
  310. package/templates/.claude/skills/add-schema/references/file-finding.md +0 -123
  311. package/templates/.claude/skills/add-schema/references/schema-types.md +0 -234
  312. package/templates/.claude/skills/provision-config/references/runbook-template.md +0 -248
  313. package/templates/.claude/skills/scaffold-page/references/page-types.md +0 -169
  314. package/templates/.claude/skills/suggest-site-pages/SKILL.md +0 -242
  315. package/templates/.claude/skills/suggest-site-pages/references/categories.md +0 -287
  316. package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +0 -150
  317. package/templates/apps/web/app/[locale]/returns/page.tsx +0 -44
  318. package/templates/apps/web/app/[locale]/shipping/page.tsx +0 -44
  319. package/templates/content/en/CancellationPolicyPage/cancellation.mdx +0 -108
  320. package/templates/content/en/LandingPage/blog.mdx +0 -83
  321. package/templates/content/en/LandingPage/features.mdx +0 -103
  322. package/templates/content/en/LandingPage/how-it-works.mdx +0 -143
  323. package/templates/content/en/ReturnsPolicyPage/returns.mdx +0 -108
  324. package/templates/content/en/ShippingPolicyPage/shipping.mdx +0 -108
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: scaffold-page
3
- description: Generate a new page on an AILK consumer site — App Router route + MDX content stub + typed JSON-LD attachment — in a single confirm-before-write pass. Use when the user says "scaffold me a /pricing page", "add an about page", "create a /contact route", or chains a row from `suggest-site-pages` output (e.g., "scaffold home — Organization — anchor with hero, value prop, CTA"). Both invocation shapes flow through the same pipeline. MDX-only at v1; refuses on existing routes and points at `add-schema` (#366).
2
+ name: add-page
3
+ description: Generate a new page on an AILK consumer site — App Router route + MDX content stub + typed JSON-LD attachment — in a single confirm-before-write pass. Use when the user says "scaffold me a /pricing page", "add an about page", "create a /contact route", or hands over a structured triple (e.g., "add home — Organization — anchor with hero, value prop, CTA"). Both invocation shapes flow through the same pipeline. MDX-only at v1; refuses on existing routes and points at the `schema:` frontmatter override for adding structured data to a page that already exists.
4
4
  ---
5
5
 
6
- # scaffold-page
6
+ # add-page
7
7
 
8
8
  Generate a new page in one pass. Three artifacts emit together:
9
9
 
@@ -20,31 +20,29 @@ The consumer wants a new page on their AILK site. Triggers:
20
20
 
21
21
  - "scaffold me a /pricing page" / "create a /contact route"
22
22
  - "add an about page" / "I need a /privacy page"
23
- - A row chained from `suggest-site-pages` output:
24
- `home — Organization — anchor with hero, value prop, CTA`
25
- - "scaffold that one" referring to a specific row from prior chat output
23
+ - A structured triple: `home — Organization — anchor with hero, value prop, CTA`
24
+ - "add that one" referring to a specific row from prior chat output
26
25
 
27
26
  Skip this skill when:
28
27
 
29
- - The consumer wants to **add schema to an existing page** — that's
30
- `add-schema` (#366). This skill refuses on existing routes and
31
- points at #366 explicitly.
32
- - The consumer wants to **plan their pages** — that's
33
- `suggest-site-pages` (#361). Output of #361 is this skill's chained
34
- input contract.
28
+ - The consumer wants to **add supplementary schema to an existing
29
+ page** — that's the `schema:` frontmatter override (see
30
+ [Adding schema to an existing page](#adding-schema-to-an-existing-page)
31
+ below), not a separate skill. This skill refuses on existing routes
32
+ and points there.
35
33
  - The consumer's content backend is **not MDX**. v1 is MDX-only —
36
34
  other adapters (Sanity, Payload, additional adapters) are additive
37
35
  future PRs. Refuse with a clear message.
38
36
 
39
37
  ## What this skill does
40
38
 
41
- 1. Parses the consumer's input — chained format
39
+ 1. Parses the consumer's input — structured triple
42
40
  (`<slug> — <Schema.orgType> — <purpose>`) OR free-text.
43
41
  2. Resolves the **primary schema.org type** for the page using
44
- `references/page-types.md` (about → AboutPage, pricing → Service,
42
+ `references/page-types.md` (about → AboutPage, pricing → Pricing,
45
43
  etc.). Confirms the choice before writing.
46
44
  3. Detects existing routes and refuses if `app/<slug>/page.tsx`
47
- already exists, pointing at `add-schema` (#366).
45
+ already exists, pointing at the `schema:` frontmatter override.
48
46
  4. Detects content adapter — only MDX is supported at v1; refuses
49
47
  on any other adapter with a clear message.
50
48
  5. Emits three files via `templates/route.tsx.tmpl` and
@@ -52,12 +50,13 @@ Skip this skill when:
52
50
  typed builder import from `@working-theory/schema`.
53
51
  6. Shows the consumer a **single diff** of all three files and waits
54
52
  for one confirmation. After approval, writes all files.
55
- 7. Closing summary: pointer at `add-schema` (#366) for additional
56
- schema, pointer at `audit-site` (#365) for citation-readiness check.
53
+ 7. Closing summary: pointer at the `schema:` frontmatter override for
54
+ additional schema, pointer at `check-site` for citation-readiness check.
57
55
 
58
56
  ## What this skill does NOT do
59
57
 
60
- - Modify an existing route. Refuses + points at `add-schema` (#366).
58
+ - Modify an existing route. Refuses + points at the `schema:`
59
+ frontmatter override.
61
60
  - Run `pnpm dev` or rebuild content. The consumer does that.
62
61
  - Detect content-adapter type beyond "is it MDX?". v1 ships MDX
63
62
  only; other adapters are out of scope.
@@ -74,12 +73,12 @@ Skip this skill when:
74
73
 
75
74
  The consumer's request can arrive in either shape:
76
75
 
77
- **Chained shape** (from `suggest-site-pages` output):
76
+ **Structured triple:**
78
77
 
79
78
  ```
80
79
  home — Organization — anchor with hero, value prop, CTA
81
80
  about — AboutPage — company story and team
82
- pricing — Service — public price tiers and feature comparison
81
+ pricing — Pricing — public price tiers and feature comparison
83
82
  ```
84
83
 
85
84
  Three em-dash-separated fields: `<slug>` `<Schema.orgType>` `<purpose>`.
@@ -113,7 +112,7 @@ backend?
113
112
 
114
113
  If neither exists, refuse:
115
114
 
116
- > "scaffold-page only supports the MDX content backend at v1. Your
115
+ > "add-page only supports the MDX content backend at v1. Your
117
116
  > project doesn't appear to have one — file an issue at the upstream
118
117
  > repo if you'd like Sanity / Payload / additional adapter support."
119
118
 
@@ -126,10 +125,11 @@ depending on the consumer's structure).
126
125
 
127
126
  If it exists, refuse:
128
127
 
129
- > "A route at `/<slug>` already exists. To **add schema** to an
130
- > existing page, run `add-schema` (#366) instead. To **replace** the
131
- > page entirely, delete the existing files first and re-run this
132
- > skill."
128
+ > "A route at `/<slug>` already exists. To **add structured data** to
129
+ > an existing page, use the `schema:` frontmatter override (see this
130
+ > skill's [Adding schema to an existing page](#adding-schema-to-an-existing-page)
131
+ > section) instead. To **replace** the page entirely, delete the
132
+ > existing files first and re-run this skill."
133
133
 
134
134
  Stop. No writes.
135
135
 
@@ -187,57 +187,71 @@ Print:
187
187
  - The two paths written.
188
188
  - Reminder: `pnpm dev` to see the page, `pnpm build` to confirm it
189
189
  compiles.
190
- - Pointer at `add-schema` (#366) for adding supplementary schema
191
- (FAQPage, HowTo, Product, etc.) to this page later.
192
- - Pointer at `audit-site` (#365) for citation-readiness check after
190
+ - Pointer at the `schema:` frontmatter override for adding
191
+ supplementary schema (FAQPage-shaped Q&A, a `Review`, a richer
192
+ `mainEntity`, etc.) to this page later.
193
+ - Pointer at `check-site` for citation-readiness check after
193
194
  adding pages.
194
195
 
195
- ## Cross-skill chaining
196
+ ## Adding schema to an existing page
196
197
 
197
- Output of `suggest-site-pages` (#361) is this skill's input contract.
198
- The consumer can paste any row of #361's output verbatim and this
199
- skill scaffolds it. Example end-to-end:
198
+ There is no separate skill for this — a page's MDX frontmatter
199
+ already carries an escape hatch. `page.schema` is a
200
+ `Record<string, unknown>`, opaque to the typed builder, that the
201
+ builder merges on top of its derived fields after deriving them
202
+ (frontmatter wins on conflict). Use it to add structured sub-entities,
203
+ enrich a page with additional fields, or override any derived field
204
+ — without re-scaffolding the route.
200
205
 
201
- 1. Consumer asks `suggest-site-pages` for a SaaS page list.
202
- 2. Output includes: `pricing — Service — public price tiers and feature comparison`
203
- 3. Consumer says: "scaffold that pricing one"
204
- 4. This skill resolves the row, emits route + MDX + JSON-LD, all in
205
- one confirm-before-write pass.
206
- 5. Consumer continues with the next row, or moves on.
206
+ ```yaml
207
+ # in an existing page's MDX frontmatter
208
+ ---
209
+ type: BlogPosting
210
+ slug: hello-world
211
+ title: Hello, World
212
+ description: First post.
213
+ schema:
214
+ author:
215
+ "@type": Person
216
+ name: Jane Doe
217
+ ---
218
+ ```
207
219
 
208
- ## What lives in `references/page-types.md`
220
+ Where an override key lands depends on the builder's shape — a
221
+ two-layer builder (a `WebPage`-family envelope wrapping a described
222
+ `mainEntity`, e.g. `BlogPosting`, `Service`, `Product`, `JobPosting`)
223
+ routes most keys to the entity and a known few to the envelope; every
224
+ other builder shallow-merges `page.schema` onto the top level. The
225
+ full routing table is `packages/schema/README.md` § `schema` field
226
+ override — read it before guiding a consumer through a non-obvious
227
+ placement (e.g. `mainEntity` object merges, `@type` retyping).
209
228
 
210
- The type-to-schema mapping is data, not logic. Read the references
211
- file at runtime — don't try to remember the table.
229
+ This is also how a page picks up a **supplementary** schema type that
230
+ has no builder of its own — an `Offer`, a `Review`, an `AggregateRating`
231
+ — since those are expressed as plain objects inside `schema:`, not as
232
+ a distinct AILK page type.
212
233
 
213
- The mapping covers the canonical AILK page types:
234
+ ## What lives in `references/page-types.md`
214
235
 
215
- - Identity — `home → HomePage`, `about → AboutPage`
216
- - Conversion — `pricing → Service`, `contact → ContactPage`
217
- - Trust — `privacy → PrivacyPage`, `terms → TermsPage`
218
- - Editorial — `blog → Blog`, `blog/<slug> → BlogPosting`
219
- - Catalog — `products → ItemList`, `products/<slug> → Product`
220
- - Q&A — `faq → FAQPage`, `how-to/<slug> → HowTo`
236
+ The type-to-schema mapping is data, not logic. Read the references
237
+ file at runtime — don't try to remember the table. It is generated
238
+ from `packages/schema/src/registry/entries.ts` by
239
+ `packages/create-ailk/scripts/generate-page-types-reference.ts` —
240
+ never hand-edit it; regenerate it instead (`pnpm page-types:build` from
241
+ `packages/create-ailk`) whenever a registry key changes.
221
242
 
222
- The full list is in `references/page-types.md`. New types added to
223
- `@working-theory/schema` should be added to that file in a follow-up PR; the
224
- skill renders unrecognized types as a "missing from page-types.md"
225
- prompt to ask the consumer rather than guessing.
243
+ The mapping covers every registered AILK page type — family, chassis,
244
+ schema.org `@type`, and the route convention — with list/detail pairs
245
+ (e.g. `ServicesList` / `Service`) shown together.
226
246
 
227
247
  ## Coordination
228
248
 
229
- - **`suggest-site-pages` (#361)** — output is this skill's chained
230
- input. The two skills' references corpora (`categories.md` and
231
- `page-types.md`) must agree on schema-type names.
232
- - **`add-schema` (#366)** — modifies existing pages. The
233
- `<JsonLd schema={build<Type>(...)} />` attachment pattern is
234
- shared with this skill (canonical pattern landed in #389 /
235
- `@working-theory/jsonld`).
236
- - **`audit-site` (#365)** — citation-readiness check. Runs after
249
+ - **`check-site`** — citation-readiness check. Runs after
237
250
  pages exist; not invoked from inside this skill.
238
- - **`@working-theory/jsonld`** (#389) — the React component for JSON-LD
251
+ - **`@working-theory/jsonld`** — the React component for JSON-LD
239
252
  rendering. Single source of truth for the attachment pattern.
240
253
  - **`@working-theory/schema`** — typed builders (`buildHomePage`,
241
- `buildAboutPage`, etc.). The skill's emit imports from here.
254
+ `buildAboutPage`, etc.). The skill's emit imports from here, and its
255
+ README documents the `schema` frontmatter override in full.
242
256
  - **`@working-theory/content-adapters`** (MDX) — the content backend. v1 is
243
257
  MDX-only; other adapters are deferred.
@@ -0,0 +1,115 @@
1
+ <!-- GENERATED — do not hand-edit. Regenerate with:
2
+ cd packages/create-ailk && pnpm page-types:build
3
+ Source: packages/schema/src/registry/entries.ts
4
+ Generator: packages/create-ailk/scripts/generate-page-types-reference.ts
5
+ -->
6
+
7
+ # Page-Type → schema.org Registry Reference
8
+
9
+ The full page-type catalog the `add-page` skill reads at runtime to
10
+ resolve a slug or page-purpose hint to a family, chassis, schema.org
11
+ `@type`, and route convention. Generated from
12
+ `packages/schema/src/registry/entries.ts` — every registered page type
13
+ appears exactly once, list/detail pairs are shown together, and no row
14
+ here can name a type the registry doesn't have.
15
+
16
+ The skill resolves in this order:
17
+
18
+ 1. **Exact slug match** — `pricing` → `Pricing`.
19
+ 2. **Slug-prefix match** — `blog/<anything>` → `BlogPosting`.
20
+ 3. **Free-text hint match** — "company story" / "team" → `AboutPage`.
21
+ 4. **Ask** — if nothing matches, ask the consumer rather than guessing.
22
+
23
+ `<slug>` in a route below is the page's own slug (e.g. `hello-world`);
24
+ `<Type>` families using two-layer builders route supplementary schema
25
+ through the `schema:` frontmatter override — see this skill's
26
+ [Adding schema to an existing page](../SKILL.md#adding-schema-to-an-existing-page) section, or `packages/schema/README.md` for the full
27
+ override contract.
28
+
29
+ ## Core
30
+
31
+ | Key | `@type` | Family | Chassis | Route |
32
+ | --- | --- | --- | --- | --- |
33
+ | `HomePage` | `HomePage` | core | home | / |
34
+ | `AboutPage` | `AboutPage` | core | detail | /about |
35
+ | `ContactPage` | `ContactPage` | core | detail | /contact |
36
+ | `PrivacyPage` | `WebPage` | core | detail | /privacy |
37
+ | `TermsPage` | `WebPage` | core | detail | /terms |
38
+ | `PurchasePolicyPage` | `WebPage` | core | detail | /purchase-policy |
39
+ | `WorkingAgreementPage` | `WebPage` | core | detail | /working-agreement |
40
+ | `LandingPage` | `WebPage` | core | home | /<slug> |
41
+ | `ThankYouPage` | `WebPage` | core | detail | /thanks/<slug> |
42
+ | `BookCall` | `WebPage` | core | home | /book-a-call |
43
+ | `NewsletterSignup` | `WebPage` | core | home | /newsletter |
44
+ | `DemoRequest` | `WebPage` | core | home | /demo-request |
45
+ | `TrialSignup` | `WebPage` | core | home | /trial-signup |
46
+ | `Waitlist` | `WebPage` | core | home | /waitlist |
47
+ | `Assessment` | `WebApplication` | core | home | /assessment |
48
+ | `Calculator` | `WebApplication` | core | home | /calculator |
49
+ | `CampaignLP` | `WebPage` | core | home | /<slug> |
50
+
51
+ ## Identity
52
+
53
+ | Key | `@type` | Family | Chassis | Route |
54
+ | --- | --- | --- | --- | --- |
55
+ | `Organization` | `Organization` | identity | detail | — site-wide identity — emitted on the home page or in a layout |
56
+ | `Person` | `Person` | identity | detail | — site-wide identity — emitted on the home page or in a layout |
57
+ | `BreadcrumbList` | `BreadcrumbList` | identity | detail | — site-wide — attached alongside another page's own schema |
58
+ | `ContactPoint` | `ContactPoint` | identity | detail | — site-wide — embedded in `Organization` or `Person` |
59
+
60
+ ## Canonical
61
+
62
+ | Key | `@type` | Family | Chassis | Route |
63
+ | --- | --- | --- | --- | --- |
64
+ | `ServicesList` | `CollectionPage` | canonical-list | list | /services |
65
+ | `Service` | `Service` | canonical-detail | detail | /services/<slug> |
66
+ | `ProductsList` | `CollectionPage` | canonical-list | list | /products |
67
+ | `Product` | `Product` | canonical-detail | detail | /products/<slug> |
68
+ | `ProjectsList` | `CollectionPage` | canonical-list | list | /projects |
69
+ | `Project` | `CreativeWork` | canonical-detail | detail | /projects/<slug> |
70
+ | `FAQPage` | `FAQPage` | canonical-list | list | /faq |
71
+ | `CareersList` | `CollectionPage` | canonical-list | list | /careers |
72
+ | `JobPosting` | `JobPosting` | canonical-detail | detail | /careers/<slug> |
73
+ | `UseCasesList` | `CollectionPage` | canonical-list | list | /use-cases |
74
+ | `UseCase` | `WebPage` | canonical-detail | detail | /use-cases/<slug> |
75
+ | `PortfolioList` | `CollectionPage` | canonical-list | list | /portfolio |
76
+ | `PortfolioItem` | `WebPage` | canonical-detail | detail | /portfolio/<slug> |
77
+ | `FeaturesList` | `CollectionPage` | canonical-list | list | /features |
78
+ | `Feature` | `WebPage` | canonical-detail | detail | /features/<slug> |
79
+ | `TestimonialsList` | `CollectionPage` | canonical-list | list | /testimonials |
80
+ | `ClientsList` | `CollectionPage` | canonical-list | list | /clients |
81
+ | `DownloadsList` | `CollectionPage` | canonical-list | list | /downloads |
82
+ | `EventsList` | `CollectionPage` | canonical-list | list | /events |
83
+ | `Event` | `Event` | canonical-detail | detail | /events/<slug> |
84
+ | `CoursesList` | `CollectionPage` | canonical-list | list | /courses |
85
+ | `Course` | `Course` | canonical-detail | detail | /courses/<slug> |
86
+ | `TeamList` | `CollectionPage` | canonical-list | list | /team |
87
+ | `TeamMember` | `ProfilePage` | canonical-detail | detail | /team/<slug> |
88
+ | `PartnersList` | `CollectionPage` | canonical-list | list | /partners |
89
+ | `Partner` | `AboutPage` | canonical-detail | detail | /partners/<slug> |
90
+ | `IntegrationsList` | `CollectionPage` | canonical-list | list | /integrations |
91
+ | `Integration` | `WebPage` | canonical-detail | detail | /integrations/<slug> |
92
+ | `GlossaryList` | `CollectionPage` | canonical-list | list | /glossary |
93
+ | `LocationsList` | `CollectionPage` | canonical-list | list | /locations |
94
+ | `Location` | `Place` | canonical-detail | detail | /locations/<slug> |
95
+ | `DocsList` | `CollectionPage` | canonical-list | list | /docs |
96
+ | `SoftwareProduct` | `WebPage` | canonical-detail | detail | /software/<slug> |
97
+ | `ServiceAreaPage` | `WebPage` | canonical-detail | detail | /service-areas/<slug> |
98
+ | `Pricing` | `WebPage` | canonical-detail | detail | /pricing |
99
+ | `ComparisonPage` | `WebPage` | canonical-detail | detail | /comparisons/<slug> |
100
+ | `ReportPage` | `Report` | canonical-detail | detail | /reports/<slug> |
101
+
102
+ ## Editorial
103
+
104
+ | Key | `@type` | Family | Chassis | Route |
105
+ | --- | --- | --- | --- | --- |
106
+ | `BlogList` | `Blog` | editorial-list | list | /blog |
107
+ | `BlogPosting` | `BlogPosting` | editorial-detail | detail | /blog/<slug> |
108
+ | `ResourcesHub` | `CollectionPage` | editorial-list | list | /resources |
109
+ | `ResourceDetail` | `Article` | editorial-detail | detail | /resources/<slug> |
110
+ | `CaseStudiesList` | `CollectionPage` | editorial-list | list | /case-studies |
111
+ | `CaseStudy` | `Article` | editorial-detail | detail | /case-studies/<slug> |
112
+ | `HowTo` | `HowTo` | editorial-detail | detail | /how-to/<slug> |
113
+ | `Whitepaper` | `Article` | editorial-detail | detail | /whitepapers/<slug> |
114
+ | `TechArticle` | `TechArticle` | editorial-detail | detail | /tech-articles/<slug> |
115
+ | `DocsDetail` | `TechArticle` | editorial-detail | detail | /docs/<slug> |
@@ -10,7 +10,7 @@ description: {{DESCRIPTION}}
10
10
  {{DESCRIPTION}}
11
11
 
12
12
  <!--
13
- This is the MDX content stub emitted by `scaffold-page`.
13
+ This is the MDX content stub emitted by `add-page`.
14
14
  The frontmatter is the source of truth for JSON-LD — the
15
15
  `{{BUILDER}}(page)` call in `app/{{SLUG}}/page.tsx` reads it.
16
16
 
@@ -21,8 +21,8 @@ description: {{DESCRIPTION}}
21
21
  - Don't change `type` unless you also update the route's import
22
22
  to match a different `@working-theory/schema` builder.
23
23
 
24
- When you're happy with the page, run `audit-site` (#365) to see
25
- how it scores on citation-readiness. Use `add-schema` (#366) to
26
- add supplementary schema (FAQPage, HowTo, etc.) without
24
+ When you're happy with the page, run `check-site` to see
25
+ how it scores on citation-readiness. Use the `schema:` frontmatter
26
+ override to add supplementary schema (FAQPage, HowTo, etc.) without
27
27
  re-scaffolding.
28
28
  -->
@@ -1,4 +1,4 @@
1
- // Emitted by `scaffold-page` at `app/{{SLUG}}/page.tsx`. Substitutions:
1
+ // Emitted by `add-page` at `app/{{SLUG}}/page.tsx`. Substitutions:
2
2
  // {{SLUG}} — page slug (e.g., "pricing")
3
3
  // {{TYPE}} — schema.org @type (e.g., "Service")
4
4
  // {{BUILDER}} — typed builder name (e.g., "buildService")
@@ -1,14 +1,14 @@
1
1
  ---
2
- name: audit-site
2
+ name: check-site
3
3
  description: Run `ailk-audit --json` on the consumer's AILK site, parse the JSON report, and explain the score and findings in plain language. Use when the user asks "how is my site doing?", "audit my site", "what's my score?", "is my JSON-LD valid?", "do I have all the schema I need?", or otherwise wants a citation-readiness check on their AILK content. The skill never edits files — it reports and points at fix tools.
4
4
  ---
5
5
 
6
- # audit-site
6
+ # check-site
7
7
 
8
8
  Shell out to `ailk-audit --json`, parse the JSON, and turn it into a
9
9
  conversational summary the consumer can act on. Pure explain-only —
10
- the skill names fix tools (like `add-schema`) but does not invoke
11
- them.
10
+ the skill names fix tools (like the `schema:` frontmatter override)
11
+ but does not invoke them.
12
12
 
13
13
  ## When to use
14
14
 
@@ -24,7 +24,7 @@ citation-readiness audit (AEO Layer 1). Triggers:
24
24
  Skip this skill when:
25
25
 
26
26
  - The consumer wants to _fix_ a finding — point them at the fix
27
- tool (usually `add-schema` (#366)) and stop. This skill reports;
27
+ tool (usually `add-page`'s `schema:` frontmatter override) and stop. This skill reports;
28
28
  fix tools fix.
29
29
  - The consumer is asking about deploy-time monitoring or continuous
30
30
  audits — those are Pro features (`ailk pro` for details). Mention
@@ -131,18 +131,17 @@ themselves on a subsequent turn.
131
131
 
132
132
  | Rule | Fix tool |
133
133
  | --------------------- | ---------------------------------------------------------------------------------------- |
134
- | `schema-coverage` | `add-schema` (#366) — add the missing schema type to the named page |
135
- | `jsonld-validity` | `add-schema` (#366) — replace the invalid block; or hand-fix the MDX |
134
+ | `schema-coverage` | `add-page`'s `schema:` frontmatter override — add the missing schema type to the named page |
135
+ | `jsonld-validity` | `add-page`'s `schema:` frontmatter override — replace the invalid block; or hand-fix the MDX |
136
136
  | `entity-markup` | Manual edit — ensure `Organization` (or `Person`) JSON-LD is emitted somewhere site-wide |
137
- | `faq-howto-incentive` | `add-schema` (#366) — add an `FAQPage` or `HowTo` block to a relevant page |
137
+ | `faq-howto-incentive` | `add-page`'s `schema:` frontmatter override — add an `FAQPage` or `HowTo` block to a relevant page |
138
138
 
139
139
  Phrase the pointer as a single sentence:
140
140
 
141
- > "Missing `Product` schema on `/pricing` — run `add-schema` (#366)
142
- > to add it."
141
+ > "Missing `Product` schema on `/pricing` — add it via `add-page`'s
142
+ > `schema:` frontmatter override."
143
143
 
144
- Never invoke `add-schema` automatically. Never write to the
145
- consumer's repo from inside this skill.
144
+ Never write to the consumer's repo from inside this skill.
146
145
 
147
146
  ### Step 8 — Soft Pro mention
148
147
 
@@ -187,8 +186,8 @@ Never recommend "weekly" / "monthly" / a date.
187
186
  ## What this skill does NOT do
188
187
 
189
188
  - Edit any file in the consumer's repo.
190
- - Add JSON-LD to pages (that's `add-schema` #366).
191
- - Create new pages (that's `scaffold-page` #362).
189
+ - Add JSON-LD to pages (that's the `schema:` frontmatter override, documented in `add-page`).
190
+ - Create new pages (that's `add-page`).
192
191
  - Cache results between runs.
193
192
  - Track score history or trends.
194
193
  - Auto-invoke fix tools.
@@ -202,9 +201,9 @@ Never recommend "weekly" / "monthly" / a date.
202
201
 
203
202
  ## Coordination
204
203
 
205
- - **`add-schema` (#366)** — primary fix tool the skill points at.
206
- Never auto-invoked.
207
- - **`scaffold-page` (#362)** — new-page creation; not a fix-tool
204
+ - **`add-page`'s `schema:` frontmatter override** — primary fix
205
+ mechanism the skill points at. Never auto-invoked.
206
+ - **`add-page`** — new-page creation; not a fix-tool
208
207
  for audit findings (audit reports on existing pages).
209
208
  - **`packages/aeo`** — owner of the `ailk-audit` CLI and rule set.
210
209
  This skill depends only on the CLI's `--json` output schema, not
@@ -1,7 +1,7 @@
1
1
  # Common Errors — Plain-Language Translations
2
2
 
3
3
  The three most common ways `ailk-audit` fails on a real consumer
4
- setup, with translations the `audit-site` skill emits instead of
4
+ setup, with translations the `check-site` skill emits instead of
5
5
  the raw stderr. Errors not matching any of these signatures pass
6
6
  through verbatim with a one-line `` `ailk-audit` failed — `` prefix
7
7
  (see SKILL.md Step 2).
@@ -56,8 +56,8 @@ mis-translate an unfamiliar error into a familiar fix path.
56
56
  >
57
57
  > - Your content lives elsewhere — pass `--content-root <path>`
58
58
  > to point at the right directory.
59
- > - You haven't authored any pages yet — run `suggest-site-pages`
60
- > to plan your pages, then `scaffold-page` to generate them.
59
+ > - You haven't authored any pages yet — run `add-page` to generate
60
+ > them.
61
61
  > - The MDX files exist but aren't in the format the AILK content
62
62
  > adapter expects — make sure each page has frontmatter with at
63
63
  > least `title` and `type`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  What each AEO rule means in plain language, what its `pass: false`
4
4
  result indicates, and what the consumer can do about it. Used by the
5
- `audit-site` skill in Step 6 (drill-down) and Step 7 (fix-tool
5
+ `check-site` skill in Step 6 (drill-down) and Step 7 (fix-tool
6
6
  pointer).
7
7
 
8
8
  The structure deliberately matches `perRule[].id` from the audit
@@ -30,9 +30,10 @@ SGE, Perplexity, ChatGPT search) read to understand your pages. A
30
30
  page with no schema is invisible to citation; a page with the
31
31
  wrong schema gets miscategorized.
32
32
 
33
- **Fix tool:** `add-schema` (#366) — invoke it with the page slug
34
- and the schema type the registry expects (the audit names both).
35
- The skill will emit a `<JsonLd>` block matching the page's content.
33
+ **Fix tool:** `add-page`'s `schema:` frontmatter override — set the
34
+ schema type the registry expects (the audit names it) on the page's
35
+ frontmatter. The typed builder emits a `<JsonLd>` block matching the
36
+ page's content.
36
37
 
37
38
  ---
38
39
 
@@ -52,10 +53,10 @@ invalid blocks. The page exists, the JSON-LD exists, but the
52
53
  citation surface is broken because the block doesn't parse as
53
54
  valid schema.org.
54
55
 
55
- **Fix tool:** `add-schema` (#366) — replace the malformed block.
56
- For one-off edits to MDX, the consumer can also hand-edit the
57
- JSON-LD inline; `add-schema` is the safer path because it uses
58
- typed builders.
56
+ **Fix tool:** `add-page`'s `schema:` frontmatter override — replace
57
+ the malformed block. For one-off edits to MDX, the consumer can also
58
+ hand-edit the JSON-LD inline; the frontmatter override is the safer
59
+ path because it uses typed builders.
59
60
 
60
61
  ---
61
62
 
@@ -81,8 +82,9 @@ have nothing to anchor to.
81
82
  layout component rendered on every page) emits an
82
83
  `Organization` (or `Person`) JSON-LD block. The `<JsonLd
83
84
  schema={OrganizationSchema(...)} />` pattern from `@working-theory/schema`
84
- is the one this is going to ship as. `add-schema` (#366) can land
85
- the block on a specific page if you'd rather; but typically
85
+ is the one this is going to ship as. `add-page`'s `schema:`
86
+ frontmatter override can land the block on a specific page if you'd
87
+ rather; but typically
86
88
  identity goes in a layout, not a leaf page.
87
89
 
88
90
  ---
@@ -105,10 +107,10 @@ explicit Q&A or step-by-step content because those are easier to
105
107
  quote directly into a generated response. Adding an FAQ or HowTo
106
108
  block to relevant pages is a low-effort score boost.
107
109
 
108
- **Fix tool:** `add-schema` (#366) — add an `FAQPage` block to
109
- your `/pricing` or `/contact` page (anywhere your customers ask
110
- predictable questions), or a `HowTo` block to any
111
- process/instructions content. `audit-site` will surface this as
110
+ **Fix tool:** `add-page`'s `schema:` frontmatter override — add an
111
+ `FAQPage` block to your `/pricing` or `/contact` page (anywhere your
112
+ customers ask predictable questions), or a `HowTo` block to any
113
+ process/instructions content. `check-site` will surface this as
112
114
  an _incentive_ in drill-down, not a finding to "fix."
113
115
 
114
116
  ---
@@ -1,7 +1,7 @@
1
1
  # Severity Levels — Score Banding + Severity Mapping
2
2
 
3
3
  The AEO audit JSON does **not** include explicit severity fields.
4
- Severity is **derived** by the `audit-site` skill from each rule's
4
+ Severity is **derived** by the `check-site` skill from each rule's
5
5
  `weight` and `pass`. This file is the source of truth for that
6
6
  mapping.
7
7