@contentrain/skills 0.9.1 → 0.9.3
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentrain/skills",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "AI agent skills for Contentrain — workflow procedures, framework integration guides",
|
|
6
6
|
"type": "module",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"tsdown": "^0.21.0",
|
|
62
62
|
"typescript": "^5.7.0",
|
|
63
63
|
"vitest": "^3.0.0",
|
|
64
|
-
"@contentrain/mcp": "3.3.
|
|
65
|
-
"@contentrain/rules": "0.7.
|
|
66
|
-
"@contentrain/wp-import": "0.
|
|
64
|
+
"@contentrain/mcp": "3.3.3",
|
|
65
|
+
"@contentrain/rules": "0.7.2",
|
|
66
|
+
"@contentrain/wp-import": "0.4.1"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "tsdown src/index.ts --format esm,cjs --dts",
|
|
@@ -93,6 +93,8 @@ Create or update a model definition (upsert).
|
|
|
93
93
|
| `description` | string | No | Model description |
|
|
94
94
|
| `content_path` | string | No | Framework-relative path for content files |
|
|
95
95
|
| `locale_strategy` | string | No | `"file"` (default), `"suffix"`, `"directory"`, `"none"` |
|
|
96
|
+
| `form` | object | No | Runtime-owned public form settings (Studio). Not a tool input — an existing block is preserved across structural edits and named in `preserved_blocks` |
|
|
97
|
+
| `comments` | object | No | Runtime-owned public comments settings (Studio). Preserved the same way |
|
|
96
98
|
|
|
97
99
|
Notes:
|
|
98
100
|
- Upserts by model ID: existing model is updated, new model is created
|
|
@@ -50,11 +50,19 @@ WordPress status becomes Contentrain meta, not a field:
|
|
|
50
50
|
| WP | Contentrain |
|
|
51
51
|
|---|---|
|
|
52
52
|
| `publish`, `inherit` | `published` |
|
|
53
|
-
| `future` | `
|
|
53
|
+
| `future` | `published` + `publish_at` (a `future` post with no valid date fails the import) |
|
|
54
54
|
| `pending` | `in_review` |
|
|
55
55
|
| `trash` | `archived` |
|
|
56
56
|
| everything else (`draft`, `private`, …) | `draft` |
|
|
57
57
|
|
|
58
|
+
A scheduled post arrives as `published`, not as a draft, because `publish_at` is a
|
|
59
|
+
delivery gate on top of status and never changes it: a past `publish_at` does not
|
|
60
|
+
publish a draft, so `draft` + `publish_at` would keep a scheduled post invisible
|
|
61
|
+
forever. Tell the user that whatever renders the site must honour the publication
|
|
62
|
+
window — status alone is not enough, or an embargoed post ships early. The query
|
|
63
|
+
generator and the Astro loader do this in public-build mode
|
|
64
|
+
(`contentrain generate --published [--at <ISO>]`).
|
|
65
|
+
|
|
58
66
|
Comments map by approval: `1` → published · `spam`/`trash` → archived · anything else → `in_review`.
|
|
59
67
|
|
|
60
68
|
## Custom fields
|
|
@@ -68,7 +76,7 @@ Inferred types are a guess from one value. Check `meta_fields` and `acf_fields`
|
|
|
68
76
|
|
|
69
77
|
## What is not imported
|
|
70
78
|
|
|
71
|
-
Post types matching `attachment|nav_menu_item|wp_*|jp_*|pattern|revision|oembed_cache|customize_changeset|user_request|custom_css` are skipped and listed in `report.skipped_types
|
|
79
|
+
Post types matching `attachment|nav_menu_item|wp_*|jp_*|pattern|revision|oembed_cache|customize_changeset|user_request|custom_css` are skipped and listed in `report.skipped_types`, and so are theme / page-builder internals that store design rather than content: GeneratePress elements (`gp_elements`, `gp-elements`), GenerateBlocks styles (`gblocks_*`, `gblocks-*`), Elementor templates (`elementor_library`, `e-landing-page`) and form definitions (`wpcf7_contact_form`, `wpforms*`). Membership and other content-bearing CPTs stay; ACF field records stay too, since their cross-model parents are part of the lossless import. Attachments are not skipped content — they arrive as the `media` collection.
|
|
72
80
|
|
|
73
81
|
Also outside the import: themes, widgets, plugin settings, users' passwords and roles, and the media **files** themselves (only their metadata and URLs come across).
|
|
74
82
|
|