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.
- package/dist/core/create/internal-ids.d.ts +1 -0
- package/dist/core/create/internal-ids.d.ts.map +1 -1
- package/dist/core/create/internal-ids.js +1 -0
- package/dist/core/create/internal-ids.js.map +1 -1
- package/dist/domain/skills.d.ts +5 -0
- package/dist/domain/skills.d.ts.map +1 -1
- package/dist/domain/skills.js +9 -1
- package/dist/domain/skills.js.map +1 -1
- package/dist/infrastructure/create/format-project.d.ts +9 -0
- package/dist/infrastructure/create/format-project.d.ts.map +1 -0
- package/dist/infrastructure/create/format-project.js +21 -0
- package/dist/infrastructure/create/format-project.js.map +1 -0
- package/dist/infrastructure/create/lifecycle-registry.d.ts.map +1 -1
- package/dist/infrastructure/create/lifecycle-registry.js +5 -0
- package/dist/infrastructure/create/lifecycle-registry.js.map +1 -1
- package/dist/modules/features/cms/sanity-pagebuilder/index.d.ts.map +1 -1
- package/dist/modules/features/cms/sanity-pagebuilder/index.js +1 -0
- package/dist/modules/features/cms/sanity-pagebuilder/index.js.map +1 -1
- package/dist/modules/features/cms/sanity-pagebuilder-cache/index.d.ts.map +1 -1
- package/dist/modules/features/cms/sanity-pagebuilder-cache/index.js +1 -0
- package/dist/modules/features/cms/sanity-pagebuilder-cache/index.js.map +1 -1
- package/package.json +1 -1
- package/src/agent-skills/launch-ready/SKILL.md +114 -0
- package/src/agent-skills/launch-ready/references/a11y.md +74 -0
- package/src/agent-skills/launch-ready/references/content.md +65 -0
- package/src/agent-skills/launch-ready/references/crawlers.md +89 -0
- package/src/agent-skills/launch-ready/references/launch.md +44 -0
- package/src/agent-skills/launch-ready/references/metadata.md +83 -0
- package/src/agent-skills/launch-ready/references/performance.md +36 -0
- package/src/agent-skills/launch-ready/references/routing.md +47 -0
- package/src/agent-skills/launch-ready/references/security.md +39 -0
- package/src/modules/features/cms/sanity/files/app/layout.tsx +2 -2
- package/src/modules/features/cms/sanity/files/lib/utils/metadata.ts +2 -2
- package/src/modules/features/cms/sanity/files/lib/utils/url.ts +6 -3
- package/src/modules/features/cms/sanity-pagebuilder/files/components/sanity/rich-text.tsx +3 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/redirect-import-dialog.tsx +538 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/csv.ts +88 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/fetchers/breadcrumbs.ts +22 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/page-builder-config.ts +15 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/queries.ts +20 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/redirect-import.ts +651 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/sanity.config.ts +2 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/redirect.ts +9 -6
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/structured-data.ts +8 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/metadata.ts +60 -6
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/page.ts +22 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/richText.ts +0 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/structure.ts +16 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/tags.ts +5 -2
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/scripts/sanity-typegen.ts +8 -11
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/metadata.ts +109 -136
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/components/sanity/rich-text.tsx +3 -1
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/components/redirect-import-dialog.tsx +538 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/csv.ts +88 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/fetchers/breadcrumbs.ts +25 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/page-builder-config.ts +15 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/queries.ts +20 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/redirect-import.ts +651 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/sanity.config.ts +2 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/layout/redirect.ts +9 -6
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/layout/structured-data.ts +8 -0
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/shared/metadata.ts +60 -6
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/shared/page.ts +22 -1
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/schemas/shared/richText.ts +0 -1
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/structure.ts +16 -1
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/integrations/sanity/tags.ts +6 -2
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/scripts/sanity-typegen.ts +8 -11
- package/src/modules/features/cms/sanity-pagebuilder-cache/files/lib/utils/metadata.ts +109 -136
- package/src/templates/next-default/.env.example +3 -1
- package/src/templates/next-default/app/layout.tsx +2 -1
- package/src/templates/next-default/app/robots.ts +9 -3
- package/src/templates/next-default/lib/utils/metadata.ts +2 -1
- package/src/templates/next-default/lib/utils/url.ts +20 -3
- package/src/templates/next-default/next.config.ts +16 -0
- package/src/templates/next-experiments/.env.example +3 -1
- package/src/templates/next-experiments/app/layout.tsx +2 -1
- package/src/templates/next-experiments/app/robots.ts +9 -3
- package/src/templates/next-experiments/lib/utils/metadata.ts +2 -1
- package/src/templates/next-experiments/lib/utils/url.ts +20 -3
- package/src/templates/next-experiments/next.config.ts +16 -0
- package/src/templates/next-pagebuilder/.env.example +3 -1
- package/src/templates/next-pagebuilder/.github/workflows/ci.yml +32 -8
- package/src/templates/next-pagebuilder/AGENTS.md +3 -0
- package/src/templates/next-pagebuilder/app/(content)/[[...slug]]/page.tsx +45 -7
- package/src/templates/next-pagebuilder/app/layout.tsx +3 -41
- package/src/templates/next-pagebuilder/app/robots.ts +9 -3
- package/src/templates/next-pagebuilder/biome.json +2 -1
- package/src/templates/next-pagebuilder/components/layout/footer/index.tsx +1 -1
- package/src/templates/next-pagebuilder/components/page-document/index.tsx +27 -35
- package/src/templates/next-pagebuilder/lefthook.yml +1 -1
- package/src/templates/next-pagebuilder/lib/integrations/sanity/sanity.types.ts +32 -29
- package/src/templates/next-pagebuilder/lib/utils/base-url.ts +18 -3
- package/src/templates/next-pagebuilder/lib/utils/breadcrumbs.ts +70 -0
- package/src/templates/next-pagebuilder/next.config.ts +16 -0
- package/src/templates/next-pagebuilder/package.json +1 -1
- package/src/templates/next-pagebuilder-cache/.env.example +3 -1
- package/src/templates/next-pagebuilder-cache/.github/workflows/ci.yml +32 -8
- package/src/templates/next-pagebuilder-cache/AGENTS.md +3 -0
- package/src/templates/next-pagebuilder-cache/app/(content)/[[...slug]]/page.tsx +46 -7
- package/src/templates/next-pagebuilder-cache/app/layout.tsx +5 -46
- package/src/templates/next-pagebuilder-cache/app/robots.ts +9 -3
- package/src/templates/next-pagebuilder-cache/biome.json +2 -1
- package/src/templates/next-pagebuilder-cache/components/layout/footer/index.tsx +1 -1
- package/src/templates/next-pagebuilder-cache/components/page-document/index.tsx +27 -35
- package/src/templates/next-pagebuilder-cache/lefthook.yml +1 -1
- package/src/templates/next-pagebuilder-cache/lib/integrations/sanity/sanity.types.ts +32 -29
- package/src/templates/next-pagebuilder-cache/lib/utils/base-url.ts +18 -3
- package/src/templates/next-pagebuilder-cache/lib/utils/breadcrumbs.ts +70 -0
- package/src/templates/next-pagebuilder-cache/next.config.ts +16 -0
- package/src/templates/next-pagebuilder-cache/package.json +1 -1
- package/src/templates/next-webgl/.env.example +3 -1
- package/src/templates/next-webgl/app/layout.tsx +2 -1
- package/src/templates/next-webgl/app/robots.ts +9 -3
- package/src/templates/next-webgl/lib/utils/metadata.ts +2 -1
- package/src/templates/next-webgl/lib/utils/url.ts +20 -3
- 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;
|
|
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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/domain/skills.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/domain/skills.js
CHANGED
|
@@ -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 = [
|
|
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,
|
|
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;
|
|
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":"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"}
|
|
@@ -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,
|
|
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"}
|
|
@@ -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;
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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
|
@@ -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.
|