@se-studio/contentful-cms 3.11.3 → 3.12.1
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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/cli/local-cli-allowed.d.ts +1 -1
- package/dist/cli/local-cli-allowed.d.ts.map +1 -1
- package/dist/cli/local-cli-allowed.js +1 -0
- package/dist/cli/local-cli-allowed.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/commands/patterns.d.ts +4 -0
- package/dist/commands/patterns.d.ts.map +1 -0
- package/dist/commands/patterns.js +107 -0
- package/dist/commands/patterns.js.map +1 -0
- package/dist/contentful/cda-page.d.ts +27 -0
- package/dist/contentful/cda-page.d.ts.map +1 -0
- package/dist/contentful/cda-page.js +111 -0
- package/dist/contentful/cda-page.js.map +1 -0
- package/dist/contentful/cma-user-agent.d.ts +1 -1
- package/dist/editor-pack/capabilities.d.ts +2 -0
- package/dist/editor-pack/capabilities.d.ts.map +1 -1
- package/dist/editor-pack/capabilities.js +4 -0
- package/dist/editor-pack/capabilities.js.map +1 -1
- package/dist/editor-pack/generate.d.ts.map +1 -1
- package/dist/editor-pack/generate.js +10 -0
- package/dist/editor-pack/generate.js.map +1 -1
- package/dist/generated/help-topics.d.ts +1 -1
- package/dist/generated/help-topics.d.ts.map +1 -1
- package/dist/generated/help-topics.js +2 -2
- package/dist/generated/help-topics.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/patterns/census.d.ts +8 -0
- package/dist/patterns/census.d.ts.map +1 -0
- package/dist/patterns/census.js +197 -0
- package/dist/patterns/census.js.map +1 -0
- package/dist/patterns/cluster.d.ts +19 -0
- package/dist/patterns/cluster.d.ts.map +1 -0
- package/dist/patterns/cluster.js +353 -0
- package/dist/patterns/cluster.js.map +1 -0
- package/dist/patterns/markdown.d.ts +3 -0
- package/dist/patterns/markdown.d.ts.map +1 -0
- package/dist/patterns/markdown.js +88 -0
- package/dist/patterns/markdown.js.map +1 -0
- package/dist/patterns/types.d.ts +70 -0
- package/dist/patterns/types.d.ts.map +1 -0
- package/dist/patterns/types.js +2 -0
- package/dist/patterns/types.js.map +1 -0
- package/dist/patterns/write.d.ts +7 -0
- package/dist/patterns/write.d.ts.map +1 -0
- package/dist/patterns/write.js +16 -0
- package/dist/patterns/write.js.map +1 -0
- package/dist/project/doctor.d.ts.map +1 -1
- package/dist/project/doctor.js +8 -0
- package/dist/project/doctor.js.map +1 -1
- package/docs/editor-tasks/clone-page.md +2 -0
- package/docs/help/fields-article.md +2 -1
- package/docs/help/fields-page.md +2 -1
- package/docs/help/fields-taxonomy.md +3 -1
- package/docs/help/index.md +1 -0
- package/docs/help/patterns.md +33 -0
- package/docs/help/person-from-json.md +2 -1
- package/package.json +1 -1
- package/skills/core/SKILL.md +3 -1
- package/skills/editor-tasks/SKILL.md +4 -2
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
function pct(share) {
|
|
2
|
+
return `${Math.round(share * 100)}%`;
|
|
3
|
+
}
|
|
4
|
+
function familyLines(family, depth) {
|
|
5
|
+
const indent = ' '.repeat(depth);
|
|
6
|
+
const heading = `${indent}- **${family.id}** (${family.kind}, n=${String(family.n)})`;
|
|
7
|
+
const lines = [
|
|
8
|
+
heading,
|
|
9
|
+
`${indent} - URL: \`${family.urlPattern}\``,
|
|
10
|
+
`${indent} - Template: ${family.template} (${pct(family.templateShare)})`,
|
|
11
|
+
`${indent} - Majority stack (${pct(family.majorityShare)}, ${String(family.variantCount)} variants): \`${family.majorityFingerprint}\``,
|
|
12
|
+
];
|
|
13
|
+
if (family.skeleton.required.length > 0) {
|
|
14
|
+
lines.push(`${indent} - Required: ${family.skeleton.required.join(' → ')}`);
|
|
15
|
+
}
|
|
16
|
+
if (family.skeleton.optional.length > 0) {
|
|
17
|
+
lines.push(`${indent} - Optional: ${family.skeleton.optional.join(', ')}`);
|
|
18
|
+
}
|
|
19
|
+
if (family.cloneSlug) {
|
|
20
|
+
lines.push(`${indent} - Clone: \`${family.cloneSlug}\``);
|
|
21
|
+
}
|
|
22
|
+
if (family.sharedBlocks.length > 0) {
|
|
23
|
+
const shared = family.sharedBlocks
|
|
24
|
+
.slice(0, 6)
|
|
25
|
+
.map((block) => `${block.cmsLabel ?? block.id} (${block.type}×${String(block.n)})`)
|
|
26
|
+
.join('; ');
|
|
27
|
+
lines.push(`${indent} - Shared blocks (do not fork): ${shared}`);
|
|
28
|
+
}
|
|
29
|
+
if (family.notes.length > 0) {
|
|
30
|
+
lines.push(`${indent} - Flags: ${family.notes.join(', ')}`);
|
|
31
|
+
}
|
|
32
|
+
if (family.topTags && family.topTags.length > 0) {
|
|
33
|
+
const tags = family.topTags
|
|
34
|
+
.slice(0, 8)
|
|
35
|
+
.map((tag) => `${tag.slug} (${String(tag.n)})`)
|
|
36
|
+
.join(', ');
|
|
37
|
+
lines.push(`${indent} - Top tags: ${tags}`);
|
|
38
|
+
}
|
|
39
|
+
if (family.outliers.length > 0) {
|
|
40
|
+
lines.push(`${indent} - Outliers: ${family.outliers.map((s) => `\`${s}\``).join(', ')}`);
|
|
41
|
+
}
|
|
42
|
+
for (const child of family.children) {
|
|
43
|
+
lines.push(...familyLines(child, depth + 1));
|
|
44
|
+
}
|
|
45
|
+
return lines;
|
|
46
|
+
}
|
|
47
|
+
export function renderPagePatternsMarkdown(doc) {
|
|
48
|
+
const lines = [
|
|
49
|
+
'# Page patterns',
|
|
50
|
+
'',
|
|
51
|
+
'Published Delivery census of how this site is actually built. Read before cloning or creating a page or article.',
|
|
52
|
+
'',
|
|
53
|
+
`- **Project:** \`${doc.projectKey}\``,
|
|
54
|
+
`- **Shape:** ${doc.shape}`,
|
|
55
|
+
`- **Generated:** ${doc.generatedAt}`,
|
|
56
|
+
`- **Space:** \`${doc.spaceId}\` / \`${doc.environment}\``,
|
|
57
|
+
'',
|
|
58
|
+
'Match the URL or article type to a family. Clone `cloneSlug`. Reuse shared blocks; do not fork them.',
|
|
59
|
+
'',
|
|
60
|
+
'## Families',
|
|
61
|
+
'',
|
|
62
|
+
];
|
|
63
|
+
if (doc.families.length === 0) {
|
|
64
|
+
lines.push('_No families detected._', '');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
for (const family of doc.families) {
|
|
68
|
+
lines.push(...familyLines(family, 0));
|
|
69
|
+
}
|
|
70
|
+
lines.push('');
|
|
71
|
+
}
|
|
72
|
+
if (doc.uncategorizedPages.length > 0) {
|
|
73
|
+
lines.push('## Uncategorized pages', '');
|
|
74
|
+
lines.push('| Slug | Template | Depth | Stack |');
|
|
75
|
+
lines.push('|------|----------|------:|-------|');
|
|
76
|
+
const rows = doc.uncategorizedPages.slice(0, 40);
|
|
77
|
+
for (const page of rows) {
|
|
78
|
+
const stack = page.fingerprint.replace(/\|/g, '\\|');
|
|
79
|
+
lines.push(`| \`${page.slug}\` | ${page.template} | ${String(page.depth)} | \`${stack}\` |`);
|
|
80
|
+
}
|
|
81
|
+
if (doc.uncategorizedPages.length > 40) {
|
|
82
|
+
lines.push('', `_…${String(doc.uncategorizedPages.length - 40)} more_`);
|
|
83
|
+
}
|
|
84
|
+
lines.push('');
|
|
85
|
+
}
|
|
86
|
+
return `${lines.join('\n')}\n`;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/patterns/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export declare const PAGE_PATTERNS_VERSION: 1;
|
|
2
|
+
export type PatternKind = 'page-prefix' | 'article-type' | 'location' | 'template-thin';
|
|
3
|
+
export type PatternNote = 'empty-body' | 'template-owned' | 'low-majority-campaign' | 'unique-compositions';
|
|
4
|
+
export type SiteShape = 'hierarchical' | 'flat' | 'mixed';
|
|
5
|
+
export interface PatternSharedBlock {
|
|
6
|
+
id: string;
|
|
7
|
+
cmsLabel: string | null;
|
|
8
|
+
type: string;
|
|
9
|
+
n: number;
|
|
10
|
+
}
|
|
11
|
+
export interface PatternSkeleton {
|
|
12
|
+
required: string[];
|
|
13
|
+
optional: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface PatternFamily {
|
|
16
|
+
id: string;
|
|
17
|
+
kind: PatternKind;
|
|
18
|
+
urlPattern: string;
|
|
19
|
+
n: number;
|
|
20
|
+
template: string;
|
|
21
|
+
templateShare: number;
|
|
22
|
+
skeleton: PatternSkeleton;
|
|
23
|
+
majorityFingerprint: string;
|
|
24
|
+
majorityShare: number;
|
|
25
|
+
variantCount: number;
|
|
26
|
+
cloneSlug: string | null;
|
|
27
|
+
sharedBlocks: PatternSharedBlock[];
|
|
28
|
+
outliers: string[];
|
|
29
|
+
children: PatternFamily[];
|
|
30
|
+
notes: PatternNote[];
|
|
31
|
+
topTags?: {
|
|
32
|
+
slug: string;
|
|
33
|
+
n: number;
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
36
|
+
export interface UncategorizedPage {
|
|
37
|
+
slug: string;
|
|
38
|
+
template: string;
|
|
39
|
+
fingerprint: string;
|
|
40
|
+
depth: number;
|
|
41
|
+
}
|
|
42
|
+
export interface PagePatternsDocument {
|
|
43
|
+
version: typeof PAGE_PATTERNS_VERSION;
|
|
44
|
+
generatedAt: string;
|
|
45
|
+
spaceId: string;
|
|
46
|
+
environment: string;
|
|
47
|
+
projectKey: string;
|
|
48
|
+
shape: SiteShape;
|
|
49
|
+
families: PatternFamily[];
|
|
50
|
+
uncategorizedPages: UncategorizedPage[];
|
|
51
|
+
}
|
|
52
|
+
export interface CensusStackMember {
|
|
53
|
+
id: string;
|
|
54
|
+
slug: string;
|
|
55
|
+
hidden: boolean;
|
|
56
|
+
template: string;
|
|
57
|
+
stack: string[];
|
|
58
|
+
stackIds: string[];
|
|
59
|
+
blockLabels: Record<string, string>;
|
|
60
|
+
}
|
|
61
|
+
export interface CensusArticle extends CensusStackMember {
|
|
62
|
+
articleTypeSlug: string;
|
|
63
|
+
tagSlugs: string[];
|
|
64
|
+
}
|
|
65
|
+
export interface PatternCensus {
|
|
66
|
+
pages: CensusStackMember[];
|
|
67
|
+
articles: CensusArticle[];
|
|
68
|
+
locations: CensusStackMember[];
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/patterns/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,gBAAgB,GAChB,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,qBAAqB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/patterns/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PagePatternsDocument } from './types.js';
|
|
2
|
+
export declare function writePagePatternsFiles(outDir: string, doc: PagePatternsDocument): {
|
|
3
|
+
jsonPath: string;
|
|
4
|
+
mdPath: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function readPagePatternsJson(filePath: string): PagePatternsDocument;
|
|
7
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/patterns/write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,oBAAoB,GACxB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOtC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAG3E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { renderPagePatternsMarkdown } from './markdown.js';
|
|
4
|
+
export function writePagePatternsFiles(outDir, doc) {
|
|
5
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
6
|
+
const jsonPath = path.join(outDir, 'page-patterns.json');
|
|
7
|
+
const mdPath = path.join(outDir, 'page-patterns.md');
|
|
8
|
+
fs.writeFileSync(jsonPath, `${JSON.stringify(doc, null, 2)}\n`);
|
|
9
|
+
fs.writeFileSync(mdPath, renderPagePatternsMarkdown(doc));
|
|
10
|
+
return { jsonPath, mdPath };
|
|
11
|
+
}
|
|
12
|
+
export function readPagePatternsJson(filePath) {
|
|
13
|
+
const raw = fs.readFileSync(filePath, 'utf8');
|
|
14
|
+
return JSON.parse(raw);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/patterns/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,GAAyB;IAEzB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACrD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;AACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/project/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAiDD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/project/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAiDD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,aAAa,EAAE,CA8J7F"}
|
package/dist/project/doctor.js
CHANGED
|
@@ -121,6 +121,14 @@ export function runProjectDoctor(configPath, project) {
|
|
|
121
121
|
message: 'editor-pack has no articles.md — regenerate after adding articles playbook',
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
+
if (!hasSiteHandbook(repoRoot, project.projectKey, 'page-patterns.md') &&
|
|
125
|
+
!fs.existsSync(path.join(packDir, 'page-patterns.md'))) {
|
|
126
|
+
findings.push({
|
|
127
|
+
severity: 'warning',
|
|
128
|
+
code: 'page_patterns_missing',
|
|
129
|
+
message: `Add live family stacks with: cms-edit patterns generate --project-config ${resolvedConfig}`,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
124
132
|
if (!hasSiteHandbook(repoRoot, project.projectKey, 'pages.md')) {
|
|
125
133
|
findings.push({
|
|
126
134
|
severity: 'info',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/project/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/project/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
## Prerequisites
|
|
14
14
|
|
|
15
|
+
- Read `cms-edit://customer/page-patterns` and match the URL to a family
|
|
16
|
+
- Clone that family's `cloneSlug` unless the user named another source
|
|
15
17
|
- Identify source page slug and target slug/title
|
|
16
18
|
- Read `cms-edit://customer/components-index`
|
|
17
19
|
|
|
@@ -11,7 +11,8 @@ Read `cms-edit://customer/articles` for site-specific playbooks (press releases,
|
|
|
11
11
|
| Field | Type | Required | Description |
|
|
12
12
|
|---|---|---|---|
|
|
13
13
|
| `slug` | Text | Yes | URL slug without leading or trailing slash. Example: `part1/part2/part3` |
|
|
14
|
-
| `title` | Text | Yes |
|
|
14
|
+
| `title` | Text | Yes | Display title and on-page heading. Also the document `<title>` when `metaTitle` is empty |
|
|
15
|
+
| `metaTitle` | Text | No | Optional search-result title (`<title>`, Open Graph, Twitter). Does not change the on-page heading |
|
|
15
16
|
| `description` | Text | No | SEO meta description — keep under ~160 characters when used for meta |
|
|
16
17
|
| `subtitle` | Text | No | Display line on news/publication heroes (site-specific) |
|
|
17
18
|
| `cmsLabel` | Text | No | Label in Contentful's entry list. Defaults to `title` |
|
package/docs/help/fields-page.md
CHANGED
|
@@ -9,7 +9,8 @@ A `page` entry is the root of a web page's content tree. It has a slug, metadata
|
|
|
9
9
|
| Field | Type | Required | Description |
|
|
10
10
|
|---|---|---|---|
|
|
11
11
|
| `slug` | Text | Yes | URL slug without leading or trailing slash. Example: `part1/part2/part3`. Use `index` for the home page. |
|
|
12
|
-
| `title` | Text | Yes |
|
|
12
|
+
| `title` | Text | Yes | Display title and on-page heading. Also the document `<title>` when `metaTitle` is empty |
|
|
13
|
+
| `metaTitle` | Text | No | Optional search-result title (`<title>`, Open Graph, Twitter). Does not change the on-page heading |
|
|
13
14
|
| `description` | Text | No | SEO meta description |
|
|
14
15
|
| `cmsLabel` | Text | No | Label shown in Contentful's entry list. Defaults to `title` |
|
|
15
16
|
| `indexed` | Boolean | No | Whether the page is indexed by search engines |
|
|
@@ -42,6 +42,7 @@ All creates are draft-only. See `cms-edit help taxonomy-from-json` for batch boo
|
|
|
42
42
|
| `cmsLabel` | Text | Yes | Label in Contentful entry list (defaults to `--name`) |
|
|
43
43
|
| `slug` | Text | Yes | URL slug without leading or trailing slash. Example: `part1/part2/part3`. Use `index` for the home page. |
|
|
44
44
|
| `indexPageTitle` | Text | Yes | Title on article index page (defaults to `--name`) |
|
|
45
|
+
| `metaTitle` | Text | No | Optional search-result title for the index. Does not change the on-page heading |
|
|
45
46
|
| `indexPageDescription` | Text | Yes | Description on article index (defaults to `""`) |
|
|
46
47
|
| `featuredImage` | Link (Asset) | No | Featured image for index/social |
|
|
47
48
|
| `menu` | Link (Entry) | No | Navigation entry |
|
|
@@ -71,7 +72,8 @@ All creates are draft-only. See `cms-edit help taxonomy-from-json` for batch boo
|
|
|
71
72
|
| Field | Type | Required | Description |
|
|
72
73
|
|---|---|---|---|
|
|
73
74
|
| `cmsLabel` | Text | Yes | Label in Contentful (defaults to `--name`) |
|
|
74
|
-
| `name` | Text | Yes | Display name |
|
|
75
|
+
| `name` | Text | Yes | Display name and on-page heading |
|
|
76
|
+
| `metaTitle` | Text | No | Optional search-result title. Does not change the on-page heading |
|
|
75
77
|
| `tagType` | Link (Entry) | Yes | Parent tagType entry |
|
|
76
78
|
| `slug` | Text | Yes | URL slug without leading or trailing slash. Example: `part1/part2`. |
|
|
77
79
|
| `description` | Text | No | Short description |
|
package/docs/help/index.md
CHANGED
|
@@ -33,6 +33,7 @@ Available topics for `cms-edit help <topic>`:
|
|
|
33
33
|
| `fields-collection` | All fields on a `collection` entry |
|
|
34
34
|
| `fields-taxonomy` | All fields on `tagType`, `articleType`, and `tag` entries |
|
|
35
35
|
| `index-sync` | Build and use the local content index (CDA sync) |
|
|
36
|
+
| `patterns` | Census published page/article stacks (Delivery API) |
|
|
36
37
|
| `asset-review` | Visual asset quality review (filename, alt, size, dimensions) |
|
|
37
38
|
| `lookup` | Flat flags for `open`, `resolve`, and `nav open` |
|
|
38
39
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Help: patterns
|
|
2
|
+
|
|
3
|
+
Census **published** page and article construction from the Contentful Delivery API. Writes `page-patterns.json` and `page-patterns.md` for editor-pack and agents.
|
|
4
|
+
|
|
5
|
+
Local CLI only (same class as `editor-pack`). Hosted agents **read** `cms-edit://customer/page-patterns` after the pack is regenerated — they do not run generate.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cms-edit patterns generate --project-config cms-edit/<site>/project.json
|
|
11
|
+
cms-edit patterns show --project-config cms-edit/<site>/project.json
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Requires `CONTENTFUL_ACCESS_TOKEN` (Delivery token) in the app `.env.local`. Uses `spaceId` / `environment` from `project.json`.
|
|
15
|
+
|
|
16
|
+
Default output: `docs/cms-editor/<projectKey>/`. Then:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cms-edit editor-pack generate --project-config cms-edit/<site>/project.json
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## What it captures
|
|
23
|
+
|
|
24
|
+
- Slug-prefix page families (nested splits when a child prefix has ≥3 pages)
|
|
25
|
+
- Article types (empty body vs chained rich text)
|
|
26
|
+
- Location entries (even when `content` is empty)
|
|
27
|
+
- Required/optional stack types, shared block IDs, clone slug
|
|
28
|
+
|
|
29
|
+
Does **not** rewrite brand playbooks. Structure only.
|
|
30
|
+
|
|
31
|
+
## Agents
|
|
32
|
+
|
|
33
|
+
After the pack includes `page-patterns.md`, read `cms-edit://customer/page-patterns` before `task-clone-page` or creating a page/article in a known family.
|
|
@@ -37,7 +37,8 @@ All entries are created as **drafts**. Nothing is published automatically.
|
|
|
37
37
|
| Key | Required | Description |
|
|
38
38
|
|---|---|---|
|
|
39
39
|
| `slug` | Yes | URL slug |
|
|
40
|
-
| `name` | Yes | Display name |
|
|
40
|
+
| `name` | Yes | Display name and on-page heading. Document `<title>` uses this when `metaTitle` is empty |
|
|
41
|
+
| `metaTitle` | No | Optional search-result title. Pass it in `fields`. Does not change the on-page heading |
|
|
41
42
|
| `cmsLabel` | No | CMS label (defaults to `name`) |
|
|
42
43
|
| `jobTitle` | No | Job title (CLI flags override JSON `fields` on single-entry create) |
|
|
43
44
|
| `description` | No | Short description |
|
package/package.json
CHANGED
package/skills/core/SKILL.md
CHANGED
|
@@ -7,7 +7,9 @@ description: "Edit Contentful drafts via hosted cms-edit MCP (open → snapshot
|
|
|
7
7
|
|
|
8
8
|
Use this skill when you need to read or edit content in Contentful using **hosted cms-edit MCP** (`cms_edit` with an `args` array). Command names match the old CLI (`open` → `snapshot` → `read` → `set`/`rtf` → `diff` → `save`).
|
|
9
9
|
|
|
10
|
-
**Do not** run the local `cms-edit` binary for content. It refuses `open`, `save`, `set`, and other content commands. Local CLI is only for `host`, `editor-pack`, `project`, `schema`, and `guide`.
|
|
10
|
+
**Do not** run the local `cms-edit` binary for content. It refuses `open`, `save`, `set`, and other content commands. Local CLI is only for `host`, `editor-pack`, `patterns`, `project`, `schema`, and `guide`.
|
|
11
|
+
|
|
12
|
+
**Page patterns (local):** `cms-edit patterns generate --project-config cms-edit/<site>/project.json` writes live family stacks from the Delivery API. Hosted agents read `cms-edit://customer/page-patterns` after editor-pack generate.
|
|
11
13
|
|
|
12
14
|
**Before editing:** use skill **`contentful-cms-editor-tasks`** to read `tasks-index` and the matching capability playbook for this site (hosted MCP or local `cms-edit/<site>/editor-pack/`).
|
|
13
15
|
|
|
@@ -13,8 +13,9 @@ Use this skill **before any Contentful edit** to pick the right capability playb
|
|
|
13
13
|
2. **capabilities** — what content types and bulk mechanisms exist
|
|
14
14
|
3. **checklist** — pre-flight checks
|
|
15
15
|
4. **overview** + **routing** — site rules and URL shapes
|
|
16
|
-
5. **
|
|
17
|
-
6. **
|
|
16
|
+
5. **page-patterns** — live slug/article-type families, clone slugs, shared blocks (`cms-edit://customer/page-patterns`)
|
|
17
|
+
6. **task-*** playbook — steps, confirmation gates, out-of-scope
|
|
18
|
+
7. **components-index** — when creating or editing page content
|
|
18
19
|
|
|
19
20
|
## Hosted (Claude Integrations + OAuth)
|
|
20
21
|
|
|
@@ -47,6 +48,7 @@ Minimum reads:
|
|
|
47
48
|
- `capabilities.json`
|
|
48
49
|
- `tasks-index.md`
|
|
49
50
|
- `checklist.md`
|
|
51
|
+
- `page-patterns.md` (match the URL or article type to a family before clone)
|
|
50
52
|
- Matching `task-*.md` for the user's intent
|
|
51
53
|
|
|
52
54
|
Then use **`contentful-cms-core`** for `cms-edit` CLI commands.
|