From f0f33379871d84d1e6a6f2ae4583f43981c79b32 Mon Sep 17 00:00:00 2001 From: jules-t <134786036+jules-t@users.noreply.github.com> Date: Thu, 15 Oct 2026 17:01:19 +0100 Subject: [PATCH] Sync the data/ rule from Control's skills and release 0.6.2 The publish-content skill and its participation reference now say that files under data/ belong to live-participation posts: Control refuses them, with data_without_rules, in a post without rules.html (gdiffer decision 0126). Both distributions are refreshed from Control's verified public skill snapshot. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 7 +++++++ directory/differ/.claude-plugin/plugin.json | 2 +- directory/differ/.codex-plugin/plugin.json | 2 +- directory/differ/plugin.json | 2 +- directory/differ/skills.lock.json | 8 ++++---- directory/differ/skills/publish-content/SKILL.md | 5 ++++- .../skills/publish-content/references/participation.md | 4 +++- package-lock.json | 4 ++-- package.json | 2 +- plugins/differ/.claude-plugin/plugin.json | 2 +- plugins/differ/.codex-plugin/plugin.json | 2 +- plugins/differ/plugin.json | 2 +- plugins/differ/scripts/differ.cjs | 2 +- plugins/differ/skills.lock.json | 8 ++++---- plugins/differ/skills/publish-content/SKILL.md | 5 ++++- .../skills/publish-content/references/participation.md | 4 +++- 16 files changed, 39 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 674c22a..a3f192b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.6.2 + +- Say in the publish-content skill and its participation reference that files + under `data/` belong to live-participation posts: Control refuses them, with + `data_without_rules`, in a post without `rules.html` (gdiffer decision 0126). +- Refresh both distributions from Control's verified public skill snapshot. + ## 0.6.0 - Call them diffs: a post made from someone's published post is a diff, in the diff --git a/directory/differ/.claude-plugin/plugin.json b/directory/differ/.claude-plugin/plugin.json index b4ce4d4..a6bd35b 100644 --- a/directory/differ/.claude-plugin/plugin.json +++ b/directory/differ/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "differ", - "version": "0.6.1", + "version": "0.6.2", "description": "Create, preview, publish and revise interactive social posts.", "author": { "name": "Sky Valley", diff --git a/directory/differ/.codex-plugin/plugin.json b/directory/differ/.codex-plugin/plugin.json index 5d60d63..08fdb1a 100644 --- a/directory/differ/.codex-plugin/plugin.json +++ b/directory/differ/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "differ", - "version": "0.6.1", + "version": "0.6.2", "description": "Create, preview, publish and revise interactive social posts.", "author": { "name": "Sky Valley", diff --git a/directory/differ/plugin.json b/directory/differ/plugin.json index cf449b8..31ab5c9 100644 --- a/directory/differ/plugin.json +++ b/directory/differ/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "differ", - "version": "0.6.1", + "version": "0.6.2", "description": "Create, preview, publish and revise interactive social posts.", "author": { "name": "Sky Valley", diff --git a/directory/differ/skills.lock.json b/directory/differ/skills.lock.json index 985d2fc..4d094f6 100644 --- a/directory/differ/skills.lock.json +++ b/directory/differ/skills.lock.json @@ -12,8 +12,8 @@ }, { "uri": "skill://publish-content/SKILL.md", - "digest": "sha256:132436fd378af087cf1558ca49458c93ae206d721a49bd966c57dadf52f6d108", - "size": 5494 + "digest": "sha256:4438bcd406a2c60a776619077730442f3c01000a84a2a6f6b6e70eb7ea9b87a9", + "size": 5726 }, { "uri": "skill://publish-content/examples/board/README.md", @@ -127,8 +127,8 @@ }, { "uri": "skill://publish-content/references/participation.md", - "digest": "sha256:cda548b481ae958728be9594a3933a993cf2bad01b58eeaee1c3adda6d3f88d0", - "size": 8109 + "digest": "sha256:980076c9a4d63a1e6c05f335ab12351e064ee7993af0cd2f8f471e43bc9edf95", + "size": 8232 }, { "uri": "skill://publish-content/references/setup.md", diff --git a/directory/differ/skills/publish-content/SKILL.md b/directory/differ/skills/publish-content/SKILL.md index ee7dff7..4171956 100644 --- a/directory/differ/skills/publish-content/SKILL.md +++ b/directory/differ/skills/publish-content/SKILL.md @@ -10,7 +10,10 @@ brief was given. Each post has its own origin on differ.page and normal browser storage and capabilities, subject to the browser's permission prompts. Private audiences and arbitrary Node servers are unsupported. For shared durable state, use the document runtime described in [participation](references/participation.md). -A post is at most 256 files and 20 MiB. Guests can publish and interact locally; +A post is at most 256 files and 20 MiB. Files under `data/` need a root +`rules.html`, since only live participation serves them; a bundle with them and +no `rules.html` is refused with the code data_without_rules, so put static +assets in another folder, such as `assets/`. Guests can publish and interact locally; the post must be claimed before signed-in visitors can contribute shared state. ## Choose the path diff --git a/directory/differ/skills/publish-content/references/participation.md b/directory/differ/skills/publish-content/references/participation.md index 0e2a1ba..6d80b71 100644 --- a/directory/differ/skills/publish-content/references/participation.md +++ b/directory/differ/skills/publish-content/references/participation.md @@ -8,7 +8,9 @@ No Node process or external database is needed. Runtime paths are reserved: authored version, `/data/` is live data and `/uploads/` is participant media. Keep app code and rules outside `data/`. A `data/*.html`, `.json` or `.txt` -file in the bundle is a seed, applied once to that path. Revisions keep existing +file in the bundle is a seed, applied once to that path. Seeds need the root +`rules.html`: a bundle with files under `data/` and no `rules.html` is refused +(`data_without_rules`). Revisions keep existing participation, including deleted seeds. A diff starts fresh from the selected authored files, rules and seeds. Never download live visitor data into a diff. Use relative authored asset URLs to stay on the selected version; root URLs diff --git a/package-lock.json b/package-lock.json index 685fc5c..b0aaff0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "differ-plugin", - "version": "0.6.1", + "version": "0.6.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "differ-plugin", - "version": "0.6.1", + "version": "0.6.2", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "1.32.1", diff --git a/package.json b/package.json index 77209eb..254e2b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "differ-plugin", - "version": "0.6.1", + "version": "0.6.2", "private": true, "type": "module", "engines": { diff --git a/plugins/differ/.claude-plugin/plugin.json b/plugins/differ/.claude-plugin/plugin.json index b4ce4d4..a6bd35b 100644 --- a/plugins/differ/.claude-plugin/plugin.json +++ b/plugins/differ/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "differ", - "version": "0.6.1", + "version": "0.6.2", "description": "Create, preview, publish and revise interactive social posts.", "author": { "name": "Sky Valley", diff --git a/plugins/differ/.codex-plugin/plugin.json b/plugins/differ/.codex-plugin/plugin.json index 5d60d63..08fdb1a 100644 --- a/plugins/differ/.codex-plugin/plugin.json +++ b/plugins/differ/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "differ", - "version": "0.6.1", + "version": "0.6.2", "description": "Create, preview, publish and revise interactive social posts.", "author": { "name": "Sky Valley", diff --git a/plugins/differ/plugin.json b/plugins/differ/plugin.json index cf449b8..31ab5c9 100644 --- a/plugins/differ/plugin.json +++ b/plugins/differ/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "differ", - "version": "0.6.1", + "version": "0.6.2", "description": "Create, preview, publish and revise interactive social posts.", "author": { "name": "Sky Valley", diff --git a/plugins/differ/scripts/differ.cjs b/plugins/differ/scripts/differ.cjs index 2a499ba..edb6b10 100644 --- a/plugins/differ/scripts/differ.cjs +++ b/plugins/differ/scripts/differ.cjs @@ -37201,7 +37201,7 @@ function inspectVideo(input2) { // package.json var package_default = { name: "differ-plugin", - version: "0.6.1", + version: "0.6.2", private: true, type: "module", engines: { diff --git a/plugins/differ/skills.lock.json b/plugins/differ/skills.lock.json index 985d2fc..4d094f6 100644 --- a/plugins/differ/skills.lock.json +++ b/plugins/differ/skills.lock.json @@ -12,8 +12,8 @@ }, { "uri": "skill://publish-content/SKILL.md", - "digest": "sha256:132436fd378af087cf1558ca49458c93ae206d721a49bd966c57dadf52f6d108", - "size": 5494 + "digest": "sha256:4438bcd406a2c60a776619077730442f3c01000a84a2a6f6b6e70eb7ea9b87a9", + "size": 5726 }, { "uri": "skill://publish-content/examples/board/README.md", @@ -127,8 +127,8 @@ }, { "uri": "skill://publish-content/references/participation.md", - "digest": "sha256:cda548b481ae958728be9594a3933a993cf2bad01b58eeaee1c3adda6d3f88d0", - "size": 8109 + "digest": "sha256:980076c9a4d63a1e6c05f335ab12351e064ee7993af0cd2f8f471e43bc9edf95", + "size": 8232 }, { "uri": "skill://publish-content/references/setup.md", diff --git a/plugins/differ/skills/publish-content/SKILL.md b/plugins/differ/skills/publish-content/SKILL.md index ee7dff7..4171956 100644 --- a/plugins/differ/skills/publish-content/SKILL.md +++ b/plugins/differ/skills/publish-content/SKILL.md @@ -10,7 +10,10 @@ brief was given. Each post has its own origin on differ.page and normal browser storage and capabilities, subject to the browser's permission prompts. Private audiences and arbitrary Node servers are unsupported. For shared durable state, use the document runtime described in [participation](references/participation.md). -A post is at most 256 files and 20 MiB. Guests can publish and interact locally; +A post is at most 256 files and 20 MiB. Files under `data/` need a root +`rules.html`, since only live participation serves them; a bundle with them and +no `rules.html` is refused with the code data_without_rules, so put static +assets in another folder, such as `assets/`. Guests can publish and interact locally; the post must be claimed before signed-in visitors can contribute shared state. ## Choose the path diff --git a/plugins/differ/skills/publish-content/references/participation.md b/plugins/differ/skills/publish-content/references/participation.md index 0e2a1ba..6d80b71 100644 --- a/plugins/differ/skills/publish-content/references/participation.md +++ b/plugins/differ/skills/publish-content/references/participation.md @@ -8,7 +8,9 @@ No Node process or external database is needed. Runtime paths are reserved: authored version, `/data/` is live data and `/uploads/` is participant media. Keep app code and rules outside `data/`. A `data/*.html`, `.json` or `.txt` -file in the bundle is a seed, applied once to that path. Revisions keep existing +file in the bundle is a seed, applied once to that path. Seeds need the root +`rules.html`: a bundle with files under `data/` and no `rules.html` is refused +(`data_without_rules`). Revisions keep existing participation, including deleted seeds. A diff starts fresh from the selected authored files, rules and seeds. Never download live visitor data into a diff. Use relative authored asset URLs to stay on the selected version; root URLs