@contentrain/skills 0.9.3 → 0.9.4

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # `@contentrain/skills`
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/%40contentrain%2Fskills?label=%40contentrain%2Fskills)](https://www.npmjs.com/package/@contentrain/skills)
4
- [![Agent Skills](https://img.shields.io/badge/Agent_Skills-15_skills-8B5CF6)](https://agentskills.io)
4
+ [![Agent Skills](https://img.shields.io/badge/Agent_Skills-16_skills-8B5CF6)](https://agentskills.io)
5
5
  [![GitHub source](https://img.shields.io/badge/source-Contentrain%2Fai-181717?logo=github)](https://github.com/Contentrain/ai/tree/main/packages/skills)
6
6
  [![Docs](https://img.shields.io/badge/docs-ai.contentrain.io-0f172a)](https://ai.contentrain.io/packages/skills)
7
7
 
@@ -45,7 +45,7 @@ Works with Claude Code, Cursor, Windsurf, GitHub Copilot, OpenAI Codex, Gemini C
45
45
 
46
46
  ### Agent Skills (standard format)
47
47
 
48
- Published under `skills/` — 15 production skills:
48
+ Published under `skills/` — 16 production skills:
49
49
 
50
50
  | Skill | Description |
51
51
  |-------|-------------|
@@ -128,7 +128,7 @@ This reduces always-loaded context from thousands of lines to just the essential
128
128
 
129
129
  `@contentrain/skills` is kept in lockstep with the MCP tool registry via cross-package parity tests (`tests/mcp-parity.test.ts`):
130
130
 
131
- - `skills/contentrain/references/mcp-tools.md` must have an `### <tool>` heading for every tool in the MCP `TOOL_NAMES` registry (currently 26: 21 core + 5 media).
131
+ - `skills/contentrain/references/mcp-tools.md` must have an `### <tool>` heading for every tool in the MCP `TOOL_NAMES` registry (currently 27: 22 core + 5 media).
132
132
  - Key skills (normalize, translate) must not reference legacy `contentrain/{operation}/...` branch prefixes — MCP now emits `cr/*`.
133
133
 
134
134
  When MCP's surface changes, these tests fail until the skill docs catch up.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentrain/skills",
3
- "version": "0.9.3",
3
+ "version": "0.9.4",
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.3",
64
+ "@contentrain/mcp": "3.4.3",
65
65
  "@contentrain/rules": "0.7.2",
66
- "@contentrain/wp-import": "0.4.1"
66
+ "@contentrain/wp-import": "0.4.6"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "tsdown src/index.ts --format esm,cjs --dts",
@@ -12,16 +12,19 @@ Contentrain is a Git-based, AI-first content management system. Content lives in
12
12
 
13
13
  ## Ecosystem Overview
14
14
 
15
- Contentrain consists of 6 packages that work together:
15
+ Contentrain consists of 9 packages that work together:
16
16
 
17
17
  | Package | Role | How agent uses it |
18
18
  |---|---|---|
19
- | @contentrain/mcp | 22 MCP tools (scan, apply, validate, merge, reconcile, doctor...) | MCP tool calls |
20
- | contentrain (CLI) | init, serve, generate, doctor, diff, status | Shell commands |
19
+ | @contentrain/mcp | 27 MCP tools (scan, apply, validate, merge, reconcile, doctor...) | MCP tool calls |
20
+ | contentrain (CLI) | init, serve, generate, doctor, diff, status, import | Shell commands |
21
21
  | @contentrain/types | Shared TypeScript contracts | Type safety |
22
22
  | @contentrain/query | Generated SDK client (Prisma-pattern) | `import from '#contentrain'` |
23
- | @contentrain/rules | Behavioral guardrails (~86 lines, always-loaded) | Auto-loaded by IDE |
23
+ | @contentrain/rules | Behavioral guardrails (~145 lines, always-loaded) | Auto-loaded by IDE |
24
24
  | @contentrain/skills | Procedural workflows (this file) | On-demand by agent |
25
+ | @contentrain/wp-import | WordPress WXR/REST → `RawIR` → a `.contentrain` store | `contentrain import wordpress` |
26
+ | @contentrain/emitter-astro | `ProjectIR` → a complete Astro project | Called by the migration engine |
27
+ | @contentrain/verify | Offline SEO, indexing, link and asset gates for a built site | `npx @contentrain/verify dist` |
25
28
 
26
29
  ### CLI Serve — Review & Approval Bridge
27
30
 
@@ -97,8 +97,8 @@ In v1, media fields store URL/path strings only. Upload and processing are out o
97
97
 
98
98
  | Type | Cardinality | Storage |
99
99
  |------|-------------|---------|
100
- | `relation` | One-to-one | `"entry-id"` (string) |
101
- | `relations` | One-to-many | `["id-1", "id-2"]` (string array) |
100
+ | `relation` | One-to-one | `"entry-id"` (string); `{ "model": "page", "ref": "entry-id" }` when `model` lists several targets |
101
+ | `relations` | One-to-many | `["id-1", "id-2"]` (string array); `[{ "model", "ref" }, …]` when `model` lists several targets |
102
102
 
103
103
  ### Relation Examples
104
104