bsmnt 0.14.0 → 0.15.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 (116) hide show
  1. package/dist/core/create/internal-ids.d.ts +1 -0
  2. package/dist/core/create/internal-ids.d.ts.map +1 -1
  3. package/dist/core/create/internal-ids.js +1 -0
  4. package/dist/core/create/internal-ids.js.map +1 -1
  5. package/dist/domain/skills.d.ts +5 -0
  6. package/dist/domain/skills.d.ts.map +1 -1
  7. package/dist/domain/skills.js +9 -1
  8. package/dist/domain/skills.js.map +1 -1
  9. package/dist/infrastructure/create/format-project.d.ts +9 -0
  10. package/dist/infrastructure/create/format-project.d.ts.map +1 -0
  11. package/dist/infrastructure/create/format-project.js +21 -0
  12. package/dist/infrastructure/create/format-project.js.map +1 -0
  13. package/dist/infrastructure/create/lifecycle-registry.d.ts.map +1 -1
  14. package/dist/infrastructure/create/lifecycle-registry.js +5 -0
  15. package/dist/infrastructure/create/lifecycle-registry.js.map +1 -1
  16. package/dist/modules/features/cms/sanity-pagebuilder/index.d.ts.map +1 -1
  17. package/dist/modules/features/cms/sanity-pagebuilder/index.js +1 -0
  18. package/dist/modules/features/cms/sanity-pagebuilder/index.js.map +1 -1
  19. package/dist/modules/features/cms/sanity-pagebuilder-cache/index.d.ts.map +1 -1
  20. package/dist/modules/features/cms/sanity-pagebuilder-cache/index.js +1 -0
  21. package/dist/modules/features/cms/sanity-pagebuilder-cache/index.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/agent-skills/launch-ready/SKILL.md +114 -0
  24. package/src/agent-skills/launch-ready/references/a11y.md +74 -0
  25. package/src/agent-skills/launch-ready/references/content.md +65 -0
  26. package/src/agent-skills/launch-ready/references/crawlers.md +89 -0
  27. package/src/agent-skills/launch-ready/references/launch.md +44 -0
  28. package/src/agent-skills/launch-ready/references/metadata.md +83 -0
  29. package/src/agent-skills/launch-ready/references/performance.md +36 -0
  30. package/src/agent-skills/launch-ready/references/routing.md +47 -0
  31. package/src/agent-skills/launch-ready/references/security.md +39 -0
  32. package/src/modules/features/cms/sanity/files/app/layout.tsx +2 -2
  33. package/src/modules/features/cms/sanity/files/lib/utils/metadata.ts +2 -2
  34. package/src/modules/features/cms/sanity/files/lib/utils/url.ts +6 -3
  35. package/src/modules/features/cms/sanity-pagebuilder/files/components/sanity/rich-text.tsx +3 -1
  36. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/redirect-import-dialog.tsx +538 -0
  37. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/csv.ts +88 -0
  38. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/fetchers/breadcrumbs.ts +22 -0
  39. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/page-builder-config.ts +15 -0
  40. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/queries.ts +20 -0
  41. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/redirect-import.ts +651 -0
  42. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/sanity.config.ts +2 -0
  43. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/redirect.ts +9 -6
  44. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/structured-data.ts +8 -0
  45. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/metadata.ts +60 -6
  46. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/page.ts +22 -1
  47. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/richText.ts +0 -1
  48. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/structure.ts +16 -1
  49. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/tags.ts +5 -2
  50. package/src/modules/features/cms/sanity-pagebuilder/files/lib/scripts/sanity-typegen.ts +8 -11
  51. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/metadata.ts +109 -136
  52. package/src/modules/features/cms/sanity-pagebuilder-cache/files/components/sanity/rich-text.tsx +3 -1
  53. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/components/redirect-import-dialog.tsx +538 -0
  54. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/csv.ts +88 -0
  55. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/fetchers/breadcrumbs.ts +25 -0
  56. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/page-builder-config.ts +15 -0
  57. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/queries.ts +20 -0
  58. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/redirect-import.ts +651 -0
  59. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/sanity.config.ts +2 -0
  60. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/layout/redirect.ts +9 -6
  61. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/layout/structured-data.ts +8 -0
  62. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/shared/metadata.ts +60 -6
  63. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/shared/page.ts +22 -1
  64. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/shared/richText.ts +0 -1
  65. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/structure.ts +16 -1
  66. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/tags.ts +6 -2
  67. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/scripts/sanity-typegen.ts +8 -11
  68. package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/utils/metadata.ts +109 -136
  69. package/src/templates/next-default/.env.example +3 -1
  70. package/src/templates/next-default/app/layout.tsx +2 -1
  71. package/src/templates/next-default/app/robots.ts +9 -3
  72. package/src/templates/next-default/lib/utils/metadata.ts +2 -1
  73. package/src/templates/next-default/lib/utils/url.ts +20 -3
  74. package/src/templates/next-default/next.config.ts +16 -0
  75. package/src/templates/next-experiments/.env.example +3 -1
  76. package/src/templates/next-experiments/app/layout.tsx +2 -1
  77. package/src/templates/next-experiments/app/robots.ts +9 -3
  78. package/src/templates/next-experiments/lib/utils/metadata.ts +2 -1
  79. package/src/templates/next-experiments/lib/utils/url.ts +20 -3
  80. package/src/templates/next-experiments/next.config.ts +16 -0
  81. package/src/templates/next-pagebuilder/.env.example +3 -1
  82. package/src/templates/next-pagebuilder/.github/workflows/ci.yml +32 -8
  83. package/src/templates/next-pagebuilder/AGENTS.md +3 -0
  84. package/src/templates/next-pagebuilder/app/(content)/[[...slug]]/page.tsx +45 -7
  85. package/src/templates/next-pagebuilder/app/layout.tsx +3 -41
  86. package/src/templates/next-pagebuilder/app/robots.ts +9 -3
  87. package/src/templates/next-pagebuilder/biome.json +2 -1
  88. package/src/templates/next-pagebuilder/components/layout/footer/index.tsx +1 -1
  89. package/src/templates/next-pagebuilder/components/page-document/index.tsx +27 -35
  90. package/src/templates/next-pagebuilder/lefthook.yml +1 -1
  91. package/src/templates/next-pagebuilder/lib/integrations/sanity/sanity.types.ts +32 -29
  92. package/src/templates/next-pagebuilder/lib/utils/base-url.ts +18 -3
  93. package/src/templates/next-pagebuilder/lib/utils/breadcrumbs.ts +70 -0
  94. package/src/templates/next-pagebuilder/next.config.ts +16 -0
  95. package/src/templates/next-pagebuilder/package.json +1 -1
  96. package/src/templates/next-pagebuilder-cache/.env.example +3 -1
  97. package/src/templates/next-pagebuilder-cache/.github/workflows/ci.yml +32 -8
  98. package/src/templates/next-pagebuilder-cache/AGENTS.md +3 -0
  99. package/src/templates/next-pagebuilder-cache/app/(content)/[[...slug]]/page.tsx +46 -7
  100. package/src/templates/next-pagebuilder-cache/app/layout.tsx +5 -46
  101. package/src/templates/next-pagebuilder-cache/app/robots.ts +9 -3
  102. package/src/templates/next-pagebuilder-cache/biome.json +2 -1
  103. package/src/templates/next-pagebuilder-cache/components/layout/footer/index.tsx +1 -1
  104. package/src/templates/next-pagebuilder-cache/components/page-document/index.tsx +27 -35
  105. package/src/templates/next-pagebuilder-cache/lefthook.yml +1 -1
  106. package/src/templates/next-pagebuilder-cache/lib/integrations/sanity/sanity.types.ts +32 -29
  107. package/src/templates/next-pagebuilder-cache/lib/utils/base-url.ts +18 -3
  108. package/src/templates/next-pagebuilder-cache/lib/utils/breadcrumbs.ts +70 -0
  109. package/src/templates/next-pagebuilder-cache/next.config.ts +16 -0
  110. package/src/templates/next-pagebuilder-cache/package.json +1 -1
  111. package/src/templates/next-webgl/.env.example +3 -1
  112. package/src/templates/next-webgl/app/layout.tsx +2 -1
  113. package/src/templates/next-webgl/app/robots.ts +9 -3
  114. package/src/templates/next-webgl/lib/utils/metadata.ts +2 -1
  115. package/src/templates/next-webgl/lib/utils/url.ts +20 -3
  116. package/src/templates/next-webgl/next.config.ts +16 -0
@@ -7,6 +7,7 @@ export declare const CREATE_LIFECYCLE_STEP_IDS: {
7
7
  readonly agentSetup: "agent:setup";
8
8
  readonly sanitySetupProject: "sanity:setup-project";
9
9
  readonly sanityMcpSetup: "sanity:mcp-setup";
10
+ readonly formatProject: "project:format";
10
11
  };
11
12
  export type CreateLifecycleStepId = (typeof CREATE_LIFECYCLE_STEP_IDS)[keyof typeof CREATE_LIFECYCLE_STEP_IDS];
12
13
  export declare const CREATE_MERGER_IDS: {
@@ -1 +1 @@
1
- {"version":3,"file":"internal-ids.d.ts","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,yBAAyB;aACrC,UAAU,EAAE,aAAa;aACzB,kBAAkB,EAAE,sBAAsB;aAC1C,cAAc,EAAE,kBAAkB;CACzB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAChC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB;aAC7B,YAAY,EAAE,eAAe;aAC7B,aAAa,EAAE,gBAAgB;aAC/B,sBAAsB,EAAE,0BAA0B;aAClD,gBAAgB,EAAE,oBAAoB;aACtC,UAAU,EAAE,aAAa;aACzB,kBAAkB,EAAE,qBAAqB;CAChC,CAAC;AAEX,MAAM,MAAM,cAAc,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMxD,CAAC;AAEF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAI7D,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAEjE,CAAC;AAEF,eAAO,MAAM,oCAAoC,mCAChB,CAAC;AAElC,eAAO,MAAM,0CAA0C,yCAChB,CAAC;AAExC,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAGpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1D,CAAC"}
1
+ {"version":3,"file":"internal-ids.d.ts","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,yBAAyB;aACrC,UAAU,EAAE,aAAa;aACzB,kBAAkB,EAAE,sBAAsB;aAC1C,cAAc,EAAE,kBAAkB;aAClC,aAAa,EAAE,gBAAgB;CACtB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAChC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB;aAC7B,YAAY,EAAE,eAAe;aAC7B,aAAa,EAAE,gBAAgB;aAC/B,sBAAsB,EAAE,0BAA0B;aAClD,gBAAgB,EAAE,oBAAoB;aACtC,UAAU,EAAE,aAAa;aACzB,kBAAkB,EAAE,qBAAqB;CAChC,CAAC;AAEX,MAAM,MAAM,cAAc,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMxD,CAAC;AAEF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAI7D,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAEjE,CAAC;AAEF,eAAO,MAAM,oCAAoC,mCAChB,CAAC;AAElC,eAAO,MAAM,0CAA0C,yCAChB,CAAC;AAExC,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAGpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1D,CAAC"}
@@ -2,6 +2,7 @@ export const CREATE_LIFECYCLE_STEP_IDS = {
2
2
  agentSetup: "agent:setup",
3
3
  sanitySetupProject: "sanity:setup-project",
4
4
  sanityMcpSetup: "sanity:mcp-setup",
5
+ formatProject: "project:format",
5
6
  };
6
7
  export const CREATE_MERGER_IDS = {
7
8
  sanityLayout: "sanity:layout",
@@ -1 +1 @@
1
- {"version":3,"file":"internal-ids.js","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,sBAAsB;IAC1C,cAAc,EAAE,kBAAkB;CACzB,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,sBAAsB,EAAE,0BAA0B;IAClD,gBAAgB,EAAE,oBAAoB;IACtC,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,qBAAqB;CAChC,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC5D,cAAc,EAAE,qBAAqB;IACrC,kBAAkB,EAAE,yBAAyB;IAC7C,wBAAwB,EAAE,+BAA+B;IACzD,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAE7D,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACrE,MAAM,EAAE,wBAAwB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAChD,gCAAgC,CAAC;AAElC,MAAM,CAAC,MAAM,0CAA0C,GACtD,sCAAsC,CAAC;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAgC;IACxE,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,0BAA0B;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA4B;IAChE,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,qBAAqB;IAC5B,MAAM,EAAE,sBAAsB;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,aAAa,EAAE,0BAA0B;IACzC,iBAAiB,EAAE,8BAA8B;IACjD,2BAA2B,EAAE,wCAAwC;CACrE,CAAC"}
1
+ {"version":3,"file":"internal-ids.js","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,sBAAsB;IAC1C,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,gBAAgB;CACtB,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,sBAAsB,EAAE,0BAA0B;IAClD,gBAAgB,EAAE,oBAAoB;IACtC,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,qBAAqB;CAChC,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC5D,cAAc,EAAE,qBAAqB;IACrC,kBAAkB,EAAE,yBAAyB;IAC7C,wBAAwB,EAAE,+BAA+B;IACzD,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAE7D,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACrE,MAAM,EAAE,wBAAwB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAChD,gCAAgC,CAAC;AAElC,MAAM,CAAC,MAAM,0CAA0C,GACtD,sCAAsC,CAAC;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAgC;IACxE,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,0BAA0B;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA4B;IAChE,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,qBAAqB;IAC5B,MAAM,EAAE,sBAAsB;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,aAAa,EAAE,0BAA0B;IACzC,iBAAiB,EAAE,8BAA8B;IACjD,2BAA2B,EAAE,wCAAwC;CACrE,CAAC"}
@@ -104,6 +104,11 @@ export declare const LOCAL_SKILLS: {
104
104
  readonly description: "Wire schema.org JSON-LD into components using the project's generators";
105
105
  readonly dir: "json-ld";
106
106
  };
107
+ readonly "launch-ready": {
108
+ readonly name: "Launch Ready";
109
+ readonly description: "Launch-readiness rules: 404s, links, robots and sitemap, metadata, accessibility";
110
+ readonly dir: "launch-ready";
111
+ };
107
112
  readonly "rss-feed": {
108
113
  readonly name: "RSS Feed";
109
114
  readonly description: "Add or extend an RSS feed for a Sanity content type";
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,11 @@ export const LOCAL_SKILLS = {
55
55
  description: "Wire schema.org JSON-LD into components using the project's generators",
56
56
  dir: "json-ld",
57
57
  },
58
+ "launch-ready": {
59
+ name: "Launch Ready",
60
+ description: "Launch-readiness rules: 404s, links, robots and sitemap, metadata, accessibility",
61
+ dir: "launch-ready",
62
+ },
58
63
  "rss-feed": {
59
64
  name: "RSS Feed",
60
65
  description: "Add or extend an RSS feed for a Sanity content type",
@@ -98,7 +103,10 @@ export const LOCAL_SKILLS = {
98
103
  * ashby-pagebuilder-block) are gated through each integration's `localSkills`,
99
104
  * and template-scoped ones (page-builder-block) through each template's.
100
105
  */
101
- export const BASE_LOCAL_SKILL_IDS = ["json-ld"];
106
+ export const BASE_LOCAL_SKILL_IDS = [
107
+ "json-ld",
108
+ "launch-ready",
109
+ ];
102
110
  const SKILL_INSTALL_CATALOG = {
103
111
  "vercel-react-best-practices": {
104
112
  source: "vercel-labs/agent-skills",
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,6BAA6B,EAAE;QAC9B,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,gDAAgD;KAC7D;IACD,uBAAuB,EAAE;QACxB,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,8BAA8B;KAC3C;IACD,iBAAiB,EAAE;QAClB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,8CAA8C;KAC3D;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACV,yEAAyE;KAC1E;IACD,qBAAqB,EAAE;QACtB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,iCAAiC;KAC9C;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,uDAAuD;KACpE;IACD,UAAU,EAAE;QACX,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,uDAAuD;KACpE;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,0CAA0C;KACvD;IACD,sBAAsB,EAAE;QACvB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,+CAA+C;KAC5D;CACkD,CAAC;AAIrD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,EAAE,EAAE,EAAa;IACjB,GAAG,KAAK;CACR,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAuB;IACjD,6BAA6B;IAC7B,uBAAuB;IACvB,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,UAAU;IACV,UAAU;CACV,CAAC;AAeF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,SAAS,EAAE;QACV,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACV,wEAAwE;QACzE,GAAG,EAAE,SAAS;KACd;IACD,UAAU,EAAE;QACX,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,qDAAqD;QAClE,GAAG,EAAE,UAAU;KACf;IACD,2BAA2B,EAAE;QAC5B,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,wDAAwD;QACrE,GAAG,EAAE,2BAA2B;KAChC;IACD,yBAAyB,EAAE;QAC1B,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,2DAA2D;QACxE,GAAG,EAAE,yBAAyB;KAC9B;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACV,8FAA8F;QAC/F,GAAG,EAAE,oBAAoB;KACzB;IACD,YAAY,EAAE;QACb,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,8DAA8D;QAC3E,GAAG,EAAE,YAAY;QACjB,WAAW,EAAE,IAAI;KACjB;IACD,qBAAqB,EAAE;QACtB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,yDAAyD;QACtE,GAAG,EAAE,qBAAqB;KAC1B;IACD,qBAAqB,EAAE;QACtB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,4DAA4D;QACzE,GAAG,EAAE,qBAAqB;KAC1B;CACuD,CAAC;AAI1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4B,CAAC,SAAS,CAAC,CAAC;AAEzE,MAAM,qBAAqB,GAA4C;IACtE,6BAA6B,EAAE;QAC9B,MAAM,EAAE,0BAA0B;QAClC,IAAI,EAAE,CAAC,SAAS,EAAE,6BAA6B,CAAC;QAChD,WAAW,EAAE,CAAC,6BAA6B,CAAC;KAC5C;IACD,uBAAuB,EAAE;QACxB,MAAM,EAAE,0BAA0B;QAClC,IAAI,EAAE,CAAC,SAAS,EAAE,uBAAuB,CAAC;QAC1C,WAAW,EAAE,CAAC,uBAAuB,CAAC;KACtC;IACD,iBAAiB,EAAE;QAClB,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACpC,WAAW,EAAE,CAAC,iBAAiB,CAAC;KAChC;IACD,oBAAoB,EAAE;QACrB,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACpC,WAAW,EAAE,CAAC,iBAAiB,CAAC;KAChC;IACD,qBAAqB,EAAE;QACtB,MAAM,EAAE,yBAAyB;QACjC,IAAI,EAAE,CAAC,SAAS,EAAE,qBAAqB,CAAC;QACxC,WAAW,EAAE,CAAC,qBAAqB,CAAC;KACpC;IACD,QAAQ,EAAE;QACT,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC7B,WAAW,EAAE,CAAC,UAAU,CAAC;KACzB;IACD,UAAU,EAAE;QACX,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC7B,WAAW,EAAE,CAAC,UAAU,CAAC;KACzB;IACD,oBAAoB,EAAE;QACrB,MAAM,EAAE,mDAAmD;QAC3D,IAAI,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC;QACvC,WAAW,EAAE,CAAC,oBAAoB,CAAC;KACnC;IACD,sBAAsB,EAAE;QACvB,MAAM,EAAE,yBAAyB;QACjC,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,CAAC,yBAAyB,EAAE,eAAe,CAAC;KACzD;CACD,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACxC,OAAgB;IAEhB,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,OAAgB,EAChB,OAGC;IAED,MAAM,OAAO,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,mBAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC5C,KAA2B,EAC3B,OAGC;IAED,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE1B,OAAO,oBAAoB,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC/C,QAA4B,EAC5B,OAGC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8C,CAAC;IAErE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC1B,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;gBACvB,GAAG,EAAE,CAAC,OAAO,CAAC;aACd,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACb,MAAM;YACN,OAAO,EAAE,mBAAmB,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtD,QAAQ,EAAE,GAAG;SACb,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Run `biome check --write` in the generated project so files copied from
3
+ * feature modules match the template's formatter settings and the first
4
+ * `bun lint` (`biome ci`) passes. Non-fatal: a failure is reported as a warning.
5
+ *
6
+ * @param targetDir - Absolute path to the scaffolded project directory
7
+ */
8
+ export declare function formatProject(targetDir: string): Promise<void>;
9
+ //# sourceMappingURL=format-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-project.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/create/format-project.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpE"}
@@ -0,0 +1,21 @@
1
+ import { execSync } from "node:child_process";
2
+ import ora from "ora";
3
+ /**
4
+ * Run `biome check --write` in the generated project so files copied from
5
+ * feature modules match the template's formatter settings and the first
6
+ * `bun lint` (`biome ci`) passes. Non-fatal: a failure is reported as a warning.
7
+ *
8
+ * @param targetDir - Absolute path to the scaffolded project directory
9
+ */
10
+ export async function formatProject(targetDir) {
11
+ const spinner = ora("Formatting project (biome)...").start();
12
+ try {
13
+ execSync("bun biome check --write .", { cwd: targetDir, stdio: "pipe" });
14
+ spinner.succeed("Project formatted.");
15
+ }
16
+ catch (error) {
17
+ const message = error instanceof Error ? error.message : String(error);
18
+ spinner.warn(`Formatting left issues — run \`bun lint\` to see them.\n${message}`);
19
+ }
20
+ }
21
+ //# sourceMappingURL=format-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-project.js","sourceRoot":"","sources":["../../../src/infrastructure/create/format-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,IAAI,CAAC;QACJ,QAAQ,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CACX,2DAA2D,OAAO,EAAE,CACpE,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-registry.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/create/lifecycle-registry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,MAAM,4BAA4B,CAAC;AAoFpC,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,aAAa,EAAE,EACtB,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBnB"}
1
+ {"version":3,"file":"lifecycle-registry.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/create/lifecycle-registry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,MAAM,4BAA4B,CAAC;AAyFpC,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,aAAa,EAAE,EACtB,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBnB"}
@@ -3,6 +3,7 @@ import prompts from "prompts";
3
3
  import { CREATE_LIFECYCLE_STEP_IDS, } from "../../core/create/internal-ids.js";
4
4
  import { AGENTS, isAgentId } from "../../domain/agents.js";
5
5
  import { getSanityMcpManualInstruction, registerSanityMcp, } from "../agents/register-sanity-mcp.js";
6
+ import { formatProject } from "./format-project.js";
6
7
  import { setupAgent } from "./setup-agent.js";
7
8
  import { setupSanity } from "./setup-sanity.js";
8
9
  const LIFECYCLE_REGISTRY = {
@@ -60,6 +61,10 @@ const LIFECYCLE_REGISTRY = {
60
61
  }
61
62
  return true;
62
63
  },
64
+ [CREATE_LIFECYCLE_STEP_IDS.formatProject]: async (_step, context) => {
65
+ await formatProject(context.targetDir);
66
+ return true;
67
+ },
63
68
  };
64
69
  export async function runLifecycleStage(stage, steps, context) {
65
70
  const completedStepIds = [];
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../../../src/infrastructure/create/lifecycle-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../../../src/infrastructure/create/lifecycle-registry.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACN,yBAAyB,GAEzB,MAAM,mCAAmC,CAAC;AAM3C,OAAO,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EACN,6BAA6B,EAC7B,iBAAiB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,MAAM,kBAAkB,GAAoD;IAC3E,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxE,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;YAC3C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC,CAAC;IACJ,CAAC;IACD,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE;YACnC,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,YAAY,EAAE,OAAO,CAAC,QAAQ;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACb,CAAC;IACD,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACpE,wEAAwE;QACxE,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE9C,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC;YACpC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,+CAA+C;YACxD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK;gBAC1B,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI;aACd,CAAC,CAAC;YACH,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,KAAK;SACnB,CAAC,CAA8B,CAAC;QAEjC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,gBAAgB,GAAG,GAAG,CAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAC;YACzE,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAC9C,OAAO,CAAC,SAAS,EACjB,SAAS,CACT,CAAC;YAEF,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,gBAAgB,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACP,gBAAgB,CAAC,IAAI,CACpB,6CAA6C,eAAe,CAAC,MAAM,CAAC,MAAM,WAAW,CACrF,CAAC;gBACF,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;oBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;oBAC1C,OAAO,CAAC,GAAG,CACV,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,IAAI,oCAAoC,EAAE,CACzE,CAAC;oBACF,OAAO,CAAC,GAAG,CACV,eAAe,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IACD,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnE,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,KAAqB,EACrB,KAAsB,EACtB,OAAsB;IAEtB,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACf,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,OAAO,gBAAgB,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,eAAO,MAAM,wBAAwB,EAAE,aAiCtC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,eAAO,MAAM,wBAAwB,EAAE,aAkCtC,CAAC"}
@@ -31,6 +31,7 @@ export const sanityPagebuilderFeature = {
31
31
  finalize: [
32
32
  { id: CREATE_LIFECYCLE_STEP_IDS.sanitySetupProject },
33
33
  { id: CREATE_LIFECYCLE_STEP_IDS.sanityMcpSetup },
34
+ { id: CREATE_LIFECYCLE_STEP_IDS.formatProject },
34
35
  ],
35
36
  },
36
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,oCAAoC,GACpC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAkB;IACtD,EAAE,EAAE,oCAAoC;IACxC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,uBAAuB;IAC9B,aAAa,EAAE,CAAC,wBAAwB,CAAC;IACzC,UAAU,CAAC,OAAO;QACjB,OAAO;YACN,WAAW,EAAE;gBACZ,YAAY,EAAE,uBAAuB,CAAC,YAAY;gBAClD,eAAe,EAAE,uBAAuB,CAAC,eAAe;gBACxD,OAAO,EAAE,uBAAuB,CAAC,OAAO;aACxC;YACD,SAAS,EAAE,uBAAuB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC;gBAC3D,EAAE,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;gBACvD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,GAAG,EAAE;gBACJ,EAAE,GAAG,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxD,EAAE,GAAG,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACrD,EAAE,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChD,oEAAoE;gBACpE,kDAAkD;gBAClD,EAAE,GAAG,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;aACnD;YACD,SAAS,EAAE;gBACV,QAAQ,EAAE;oBACT,EAAE,EAAE,EAAE,yBAAyB,CAAC,kBAAkB,EAAE;oBACpD,EAAE,EAAE,EAAE,yBAAyB,CAAC,cAAc,EAAE;iBAChD;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC;AAEF,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAmB;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChE,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,oCAAoC,GACpC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAkB;IACtD,EAAE,EAAE,oCAAoC;IACxC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,uBAAuB;IAC9B,aAAa,EAAE,CAAC,wBAAwB,CAAC;IACzC,UAAU,CAAC,OAAO;QACjB,OAAO;YACN,WAAW,EAAE;gBACZ,YAAY,EAAE,uBAAuB,CAAC,YAAY;gBAClD,eAAe,EAAE,uBAAuB,CAAC,eAAe;gBACxD,OAAO,EAAE,uBAAuB,CAAC,OAAO;aACxC;YACD,SAAS,EAAE,uBAAuB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC;gBAC3D,EAAE,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;gBACvD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,GAAG,EAAE;gBACJ,EAAE,GAAG,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxD,EAAE,GAAG,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACrD,EAAE,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChD,oEAAoE;gBACpE,kDAAkD;gBAClD,EAAE,GAAG,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;aACnD;YACD,SAAS,EAAE;gBACV,QAAQ,EAAE;oBACT,EAAE,EAAE,EAAE,yBAAyB,CAAC,kBAAkB,EAAE;oBACpD,EAAE,EAAE,EAAE,yBAAyB,CAAC,cAAc,EAAE;oBAChD,EAAE,EAAE,EAAE,yBAAyB,CAAC,aAAa,EAAE;iBAC/C;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC;AAEF,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAmB;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChE,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder-cache/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,eAAO,MAAM,6BAA6B,EAAE,aAsC3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder-cache/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,eAAO,MAAM,6BAA6B,EAAE,aAuC3C,CAAC"}
@@ -34,6 +34,7 @@ export const sanityPagebuilderCacheFeature = {
34
34
  finalize: [
35
35
  { id: CREATE_LIFECYCLE_STEP_IDS.sanitySetupProject },
36
36
  { id: CREATE_LIFECYCLE_STEP_IDS.sanityMcpSetup },
37
+ { id: CREATE_LIFECYCLE_STEP_IDS.formatProject },
37
38
  ],
38
39
  },
39
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder-cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,0CAA0C,EAC1C,oCAAoC,GACpC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,CAAC,MAAM,6BAA6B,GAAkB;IAC3D,EAAE,EAAE,0CAA0C;IAC9C,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,yCAAyC;IAChD,aAAa,EAAE;QACd,wBAAwB;QACxB,oCAAoC;KACpC;IACD,UAAU,CAAC,OAAO;QACjB,OAAO;YACN,WAAW,EAAE;gBACZ,YAAY,EAAE,4BAA4B,CAAC,YAAY;gBACvD,eAAe,EAAE,4BAA4B,CAAC,eAAe;gBAC7D,OAAO,EAAE,4BAA4B,CAAC,OAAO;aAC7C;YACD,SAAS,EAAE,4BAA4B,CAAC,aAAa,CAAC,GAAG,CACxD,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,YAAY,CAAC;gBACjE,EAAE,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;gBACvD,SAAS,EAAE,KAAK;aAChB,CAAC,CACF;YACD,GAAG,EAAE;gBACJ,EAAE,GAAG,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxD,EAAE,GAAG,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACrD,EAAE,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChD,oEAAoE;gBACpE,kDAAkD;gBAClD,EAAE,GAAG,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;aACnD;YACD,SAAS,EAAE;gBACV,QAAQ,EAAE;oBACT,EAAE,EAAE,EAAE,yBAAyB,CAAC,kBAAkB,EAAE;oBACpD,EAAE,EAAE,EAAE,yBAAyB,CAAC,cAAc,EAAE;iBAChD;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC;AAEF,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAmB;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChE,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder-cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,0CAA0C,EAC1C,oCAAoC,GACpC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,CAAC,MAAM,6BAA6B,GAAkB;IAC3D,EAAE,EAAE,0CAA0C;IAC9C,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,yCAAyC;IAChD,aAAa,EAAE;QACd,wBAAwB;QACxB,oCAAoC;KACpC;IACD,UAAU,CAAC,OAAO;QACjB,OAAO;YACN,WAAW,EAAE;gBACZ,YAAY,EAAE,4BAA4B,CAAC,YAAY;gBACvD,eAAe,EAAE,4BAA4B,CAAC,eAAe;gBAC7D,OAAO,EAAE,4BAA4B,CAAC,OAAO;aAC7C;YACD,SAAS,EAAE,4BAA4B,CAAC,aAAa,CAAC,GAAG,CACxD,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,YAAY,CAAC;gBACjE,EAAE,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;gBACvD,SAAS,EAAE,KAAK;aAChB,CAAC,CACF;YACD,GAAG,EAAE;gBACJ,EAAE,GAAG,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxD,EAAE,GAAG,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACrD,EAAE,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChD,oEAAoE;gBACpE,kDAAkD;gBAClD,EAAE,GAAG,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;aACnD;YACD,SAAS,EAAE;gBACV,QAAQ,EAAE;oBACT,EAAE,EAAE,EAAE,yBAAyB,CAAC,kBAAkB,EAAE;oBACpD,EAAE,EAAE,EAAE,yBAAyB,CAAC,cAAc,EAAE;oBAChD,EAAE,EAAE,EAAE,yBAAyB,CAAC,aAAa,EAAE;iBAC/C;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC;AAEF,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAmB;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChE,OAAO,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bsmnt",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "CLI to scaffold basement projects and add integrations",
6
6
  "type": "module",
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: launch-ready
3
+ description: >-
4
+ The rules a site has to meet before it launches: 404s, links, robots and
5
+ sitemap, metadata and share cards, accessibility, and production checks.
6
+ Use before a commit or pull request, when the user approves work ("looks
7
+ good", "ship it", "merge it"), when creating a route, and when asked whether
8
+ the site is ready to launch.
9
+ ---
10
+
11
+ # Launch ready
12
+
13
+ Two tiers:
14
+
15
+ - **Must not ship**: the site says something false, or something that matters
16
+ doesn't work.
17
+ - **Fix before launch**: a measurable cost, or a group of people the site fails.
18
+
19
+ Crawler and metadata rules apply to public pages. The Studio, API routes and
20
+ pages behind auth are exempt from those, not from the accessibility rules.
21
+
22
+ ## When to use it
23
+
24
+ | Moment | Check |
25
+ | --- | --- |
26
+ | Creating a route | Every rule that applies to the new route |
27
+ | Before a commit or PR, or when told to ship | The rules that apply to the files in the diff |
28
+ | Asked whether the site is ready, or before launch | Every rule, including `references/launch.md` |
29
+
30
+ Fix what belongs to the current change. List anything else you notice for the
31
+ user; don't fix it unasked. If a **Must not ship** rule fails in the diff, say so
32
+ before you commit.
33
+
34
+ ## Launch decisions
35
+
36
+ Some rules depend on choices each project makes. Read them from the
37
+ `## Launch decisions` section of `AGENTS.md`. If it's missing, ask the user,
38
+ then add it:
39
+
40
+ ```md
41
+ ## Launch decisions
42
+
43
+ - Indexed by search engines: yes
44
+ - AI crawlers: allowed
45
+ - llms.txt: no
46
+ - Consent required before tracking: no
47
+ - Replaces an existing site: no
48
+ ```
49
+
50
+ ## Running the checks
51
+
52
+ Most checks run against a production build:
53
+
54
+ ```bash
55
+ bun run build && bun run start
56
+ ```
57
+
58
+ Then request `localhost:3000`. The checks in `references/launch.md` need the
59
+ deployed URL. Report each rule as pass or fail with the output you saw.
60
+
61
+ ## Must not ship
62
+
63
+ | ID | Rule | File |
64
+ | --- | --- | --- |
65
+ | ROUTE-01 | Missing pages return 404 | `references/routing.md` |
66
+ | ROUTE-02 | No internal link is broken | `references/routing.md` |
67
+ | CRAWL-01 | Indexing matches the decision | `references/crawlers.md` |
68
+ | CRAWL-02 | Canonicals point at the right page | `references/crawlers.md` |
69
+ | META-01 | Every page has a real title | `references/metadata.md` |
70
+ | META-02 | Metadata is in the server HTML | `references/metadata.md` |
71
+ | META-03 | The share image loads | `references/metadata.md` |
72
+ | META-04 | No `localhost` URLs in production | `references/metadata.md` |
73
+ | CONTENT-01 | Indexed copy is in the server HTML | `references/content.md` |
74
+ | CONTENT-02 | No placeholder output | `references/content.md` |
75
+ | CONTENT-03 | Each fact has one source | `references/content.md` |
76
+ | CONTENT-04 | No test pages, drafts or staging links | `references/content.md` |
77
+ | SEC-01 | `NEXT_PUBLIC_` holds only public keys | `references/security.md` |
78
+ | LAUNCH-01 | Forms deliver on production | `references/launch.md` |
79
+ | LAUNCH-02 | CMS publishing updates production | `references/launch.md` |
80
+
81
+ ## Fix before launch
82
+
83
+ | ID | Rule | File |
84
+ | --- | --- | --- |
85
+ | CRAWL-03 | The sitemap lists every indexable page | `references/crawlers.md` |
86
+ | CRAWL-04 | The sitemap lists only live pages | `references/crawlers.md` |
87
+ | CRAWL-05 | AI crawler policy matches the decision | `references/crawlers.md` |
88
+ | META-05 | Titles are unique | `references/metadata.md` |
89
+ | META-06 | Public pages have a description | `references/metadata.md` |
90
+ | META-07 | `<html lang>` matches the content | `references/metadata.md` |
91
+ | CONTENT-05 | No starter leftovers | `references/content.md` |
92
+ | A11Y-01 | Every page has an `h1` | `references/a11y.md` |
93
+ | A11Y-02 | Everything works by keyboard | `references/a11y.md` |
94
+ | A11Y-03 | Icon-only controls have a name | `references/a11y.md` |
95
+ | A11Y-04 | Inputs have labels | `references/a11y.md` |
96
+ | A11Y-05 | Text meets contrast | `references/a11y.md` |
97
+ | A11Y-06 | Motion can be paused or reduced | `references/a11y.md` |
98
+ | A11Y-07 | Targets are big enough; zoom stays on | `references/a11y.md` |
99
+ | A11Y-08 | No horizontal scroll at 320px | `references/a11y.md` |
100
+ | SEC-02 | Tracking matches the consent decision | `references/security.md` |
101
+ | SEC-03 | No first-party console errors | `references/security.md` |
102
+ | PERF-01 | The LCP image isn't lazy | `references/performance.md` |
103
+ | PERF-02 | Image `sizes` match the layout | `references/performance.md` |
104
+ | PERF-03 | Responses are compressed | `references/performance.md` |
105
+ | LAUNCH-03 | One host | `references/launch.md` |
106
+ | LAUNCH-04 | Old URLs redirect on a relaunch | `references/launch.md` |
107
+
108
+ ## Recommended
109
+
110
+ - Share images are 1200×630.
111
+ - JSON-LD parses. The `json-ld` skill covers authoring it.
112
+ - Images are compressed and fonts are subset.
113
+ - Keep the security headers in `next.config.ts`.
114
+ - Remove the `fb:app_id` tag when there's no Facebook app.
@@ -0,0 +1,74 @@
1
+ # Accessibility
2
+
3
+ Contrast, motion and target size are design decisions. Report failures; don't
4
+ change brand colors or layout unasked.
5
+
6
+ ## A11Y-01 · Every page has an `h1`
7
+
8
+ **Fix before launch**
9
+
10
+ One `h1` that names the page. Screen reader users jump to it first.
11
+
12
+ **Check:** `curl -s localhost:3000/<route> | grep -c '<h1'` prints at least `1`.
13
+
14
+ ## A11Y-02 · Everything works by keyboard
15
+
16
+ **Fix before launch**
17
+
18
+ Interactive elements are real controls (`<button>`, `<Link>`, inputs), reachable
19
+ with Tab, with a visible focus style. A `<div onClick>` can't be reached
20
+ without a mouse. Menus and modals close on Escape and return focus.
21
+
22
+ **Check (browser):** Tab through the page. Every control is reachable, and
23
+ you can always see where focus is.
24
+
25
+ ## A11Y-03 · Icon-only controls have a name
26
+
27
+ **Fix before launch**
28
+
29
+ An icon-only button or link carries an `aria-label` or visually hidden text.
30
+ Otherwise a screen reader announces only "button".
31
+
32
+ ## A11Y-04 · Inputs have labels
33
+
34
+ **Fix before launch**
35
+
36
+ Each input has a `<label>`. A placeholder isn't one; it disappears as soon as
37
+ someone types. Fields for personal data carry the matching `autocomplete`
38
+ value (`email`, `name`, `tel`).
39
+
40
+ ## A11Y-05 · Text meets contrast
41
+
42
+ **Fix before launch**
43
+
44
+ Body text is at least 4.5:1 against its background, and large text (24px, or
45
+ 19px bold) at least 3:1. Logos, disabled controls and decorative text are
46
+ exempt.
47
+
48
+ **Check (browser):** Lighthouse's accessibility audit, or the axe DevTools
49
+ extension.
50
+
51
+ ## A11Y-06 · Motion can be paused or reduced
52
+
53
+ **Fix before launch**
54
+
55
+ Anything that moves on its own for more than 5 seconds (autoplay video,
56
+ marquees, carousels) has a pause control. Non-essential animation, smooth
57
+ scrolling included, respects `prefers-reduced-motion`.
58
+
59
+ ## A11Y-07 · Targets are big enough; zoom stays on
60
+
61
+ **Fix before launch**
62
+
63
+ Tap targets are at least 24×24px, or have 24px of clearance. Links inside a
64
+ sentence are exempt.
65
+
66
+ Never set `maximumScale: 1` or `userScalable: false` in the viewport. If iOS
67
+ zooms into a focused input, set the input's font size to at least 16px instead.
68
+
69
+ ## A11Y-08 · No horizontal scroll at 320px
70
+
71
+ **Fix before launch**
72
+
73
+ The page fits a 320px-wide viewport without horizontal scrolling. Maps, data
74
+ tables and diagrams are exempt.
@@ -0,0 +1,65 @@
1
+ # Content
2
+
3
+ ## CONTENT-01 · Indexed copy is in the server HTML
4
+
5
+ **Must not ship** · only if indexed
6
+
7
+ Text meant for search, link previews and AI is in the server HTML. Don't draw
8
+ it only in a canvas, and don't load it only through `dynamic(..., { ssr: false })`.
9
+ A WebGL scene can stay client-only; its headline and copy can't.
10
+
11
+ **Check:** a sentence from the page's main copy appears in
12
+ `curl -s localhost:3000/<route>`.
13
+
14
+ ## CONTENT-02 · No placeholder output
15
+
16
+ **Must not ship**
17
+
18
+ No `undefined`, `null`, `NaN`, `[object Object]` or lorem ipsum in rendered
19
+ text. These usually appear after launch, when an editor leaves a CMS field
20
+ empty, so render nothing for a missing field instead.
21
+
22
+ **Check:**
23
+
24
+ ```bash
25
+ curl -s localhost:3000/<route> | grep -noiE 'undefined|NaN|\[object Object\]|lorem ipsum'
26
+ ```
27
+
28
+ A match is a lead, not proof: documentation can say "returns `undefined`" on
29
+ purpose.
30
+
31
+ ## CONTENT-03 · Each fact has one source
32
+
33
+ **Must not ship**
34
+
35
+ A price, spec or limit shown in more than one place reads from one module or
36
+ one CMS field. Two copies drift, and the site contradicts itself.
37
+
38
+ **Check:** search the repo for the value. It appears once, where it's defined.
39
+
40
+ ## CONTENT-04 · No test pages, drafts or staging links
41
+
42
+ **Must not ship**
43
+
44
+ Test pages, unpublished drafts and links to staging or preview hosts aren't
45
+ reachable in production or listed in the sitemap.
46
+
47
+ **Check:** search the production HTML and `sitemap.xml` for `test`, `staging`,
48
+ `preview` and `vercel.app`.
49
+
50
+ ## CONTENT-05 · No starter leftovers
51
+
52
+ **Fix before launch**
53
+
54
+ Replace basement's placeholders with the site's own, wherever they remain:
55
+
56
+ - the `app/favicon.ico` every template ships
57
+ - the `"Basement Starter"` title in `app/layout.tsx`
58
+ - `siteName = "Basement"` in `lib/utils/metadata.ts`
59
+ - the `"Basement Next Starter"` homepage heading
60
+
61
+ **Check:**
62
+
63
+ ```bash
64
+ grep -rn 'Basement Starter\|Basement Next Starter\|siteName = "Basement"' app lib components
65
+ ```
@@ -0,0 +1,89 @@
1
+ # Crawlers
2
+
3
+ ## CRAWL-01 · Indexing matches the decision
4
+
5
+ **Must not ship** when production and the decision disagree
6
+
7
+ `app/robots.ts` and each page's `noIndex` follow *Indexed by search engines*.
8
+ Previews are never indexable.
9
+
10
+ The starter indexes only the host of `NEXT_PUBLIC_BASE_URL`, and on Vercel
11
+ only on a production deployment. Every other host, including `*.vercel.app`,
12
+ gets `X-Robots-Tag: noindex` and a disallow-all `robots.txt`. Without
13
+ `NEXT_PUBLIC_BASE_URL`, nothing is indexed.
14
+
15
+ **Check:**
16
+
17
+ ```bash
18
+ curl -s https://<production>/robots.txt
19
+ curl -sI https://<production>/ | grep -i x-robots-tag
20
+ curl -sI https://<preview>/ | grep -i x-robots-tag
21
+ ```
22
+
23
+ Production matches the decision. The preview prints `noindex`.
24
+
25
+ ## CRAWL-02 · Canonicals point at the right page
26
+
27
+ **Must not ship**
28
+
29
+ A canonical is absolute and points at a page that returns 200 and is indexable.
30
+
31
+ If `app/layout.tsx` sets `alternates.canonical: "/"`, every page that doesn't
32
+ set its own canonical inherits it, which points the whole site at the
33
+ homepage. Set it per page with `generatePageMetadata({ url })`, or remove it
34
+ from the layout.
35
+
36
+ If the layout declares an `en-US` alternate at `/en-US`, remove it unless a
37
+ route serves that locale.
38
+
39
+ **Check:**
40
+
41
+ ```bash
42
+ curl -s localhost:3000/<route> | grep -o '<link rel="canonical"[^>]*>'
43
+ ```
44
+
45
+ It names that route, not `/`.
46
+
47
+ ## CRAWL-03 · The sitemap lists every indexable page
48
+
49
+ **Fix before launch** · only if indexed
50
+
51
+ Build the sitemap from the same data as the routes: every static route, plus
52
+ each CMS document with a public URL. The starter's `app/sitemap.xml/route.ts`
53
+ lists only `/`; add each route to `getStaticEntries()`. When the sitemap reads
54
+ a CMS, a new content type needs adding to its query.
55
+
56
+ **Check:**
57
+
58
+ ```bash
59
+ curl -s localhost:3000/sitemap.xml | grep -c '<loc>'
60
+ ```
61
+
62
+ The count matches the number of public pages.
63
+
64
+ ## CRAWL-04 · The sitemap lists only live pages
65
+
66
+ **Fix before launch** · only if indexed
67
+
68
+ No sitemap URL redirects, 404s or is `noindex`, and each one uses the
69
+ production host.
70
+
71
+ **Check:**
72
+
73
+ ```bash
74
+ curl -s localhost:3000/sitemap.xml | grep -o '<loc>[^<]*' | cut -c6- |
75
+ while read -r u; do printf '%s %s\n' "$(curl -so /dev/null -w '%{http_code}' "$u")" "$u"; done
76
+ ```
77
+
78
+ Every line starts with `200`.
79
+
80
+ ## CRAWL-05 · AI crawler policy matches the decision
81
+
82
+ **Fix before launch**
83
+
84
+ - *AI crawlers: allowed* needs nothing.
85
+ - *AI crawlers: blocked* adds a `disallow: "/"` rule in `robots.ts` for each
86
+ agent: `GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`, `CCBot`.
87
+ - *llms.txt: yes* serves `/llms.txt`.
88
+
89
+ **Check:** `curl -s https://<production>/robots.txt` matches the decision.