From f4b4bb5dfd166ebce84cd7fb2abdcc9376d07f5c Mon Sep 17 00:00:00 2001 From: bntvllnt <32437578+bntvllnt@users.noreply.github.com> Date: Sun, 27 Sep 2026 19:28:46 +0200 Subject: [PATCH] feat: describe Vstack as part of the vllnt universe (0.1.0-canary.3) Claude-Session: https://claude.ai/code/session_01QibzbuYP9NMPNKJdURfxfE --- .claude-plugin/marketplace.json | 2 +- CHANGELOG.md | 4 ++++ VERSION | 2 +- plugins/claude/.claude-plugin/plugin.json | 6 +++--- plugins/claude/SOURCE.json | 2 +- plugins/codex/SOURCE.json | 2 +- plugins/codex/plugin.json | 4 ++-- plugins/cursor/.cursor-plugin/plugin.json | 4 ++-- plugins/cursor/SOURCE.json | 2 +- scripts/sync.py | 7 ++++--- tests/test_sync.py | 1 + 11 files changed, 21 insertions(+), 15 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c486983..0fc06ed 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,5 +1,5 @@ { - "description": "Evidence-led engineering workflows to plan, build, review, and ship software, with shared thinking, orchestration, and collaboration principles.", + "description": "Evidence-led engineering workflows to plan, build, review, and ship software with AI agents. Part of the vllnt universe: open, sovereign tools for freedom by design (vllnt.com).", "name": "vllnt-stack", "owner": { "name": "vllnt" diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c5661c..708d211 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +## 0.1.0-canary.3 + +- Describe Vstack as part of the vllnt universe and set the Claude plugin homepage to https://vllnt.com. + ## 0.1.0-canary.2 - Add a Claude plugin icon owned by this repository (`assets/claude-icon.svg`) and a clearer shared plugin and Claude marketplace description, both through the generator. diff --git a/VERSION b/VERSION index 2de5777..6cf7a46 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.0-canary.2 +0.1.0-canary.3 diff --git a/plugins/claude/.claude-plugin/plugin.json b/plugins/claude/.claude-plugin/plugin.json index e71b6ec..204a497 100644 --- a/plugins/claude/.claude-plugin/plugin.json +++ b/plugins/claude/.claude-plugin/plugin.json @@ -2,8 +2,8 @@ "author": { "name": "vllnt" }, - "description": "Evidence-led engineering workflows to plan, build, review, and ship software, with shared thinking, orchestration, and collaboration principles.", - "homepage": "https://github.com/vllnt/stack", + "description": "Evidence-led engineering workflows to plan, build, review, and ship software with AI agents. Part of the vllnt universe: open, sovereign tools for freedom by design (vllnt.com).", + "homepage": "https://vllnt.com", "keywords": [ "workflows", "engineering", @@ -13,5 +13,5 @@ "license": "MIT", "name": "vstack", "repository": "https://github.com/vllnt/stack", - "version": "0.1.0-canary.2" + "version": "0.1.0-canary.3" } diff --git a/plugins/claude/SOURCE.json b/plugins/claude/SOURCE.json index 3df7b24..7cf958e 100644 --- a/plugins/claude/SOURCE.json +++ b/plugins/claude/SOURCE.json @@ -1,7 +1,7 @@ { "files": { ".claude-plugin/icon.svg": "dc3b420724330eed1296c63c5c6d3290fa031d0eceb39180a2258f6992c76108", - ".claude-plugin/plugin.json": "0919a260d3a18cb7ff5af325773db6fe870ca9530707d40321c440e4405ee147", + ".claude-plugin/plugin.json": "ff44d6e276f70392c84dcfa3cf86f33ce5001ab864781dae8adbadbc90102689", "LICENSE": "24ba061a4603738ddd5105ef4abc198eeded5ac7efce23b360561816f4dd6559", "skills/build-landing-page/README.md": "46a280eadac8962180cf3f0c42eb0e845a3b0156a644569182d932881e1d51f8", "skills/build-landing-page/SKILL.md": "b08e4963d6149f3647b28a0d9dccdc8793812abab95a1d081d93699e142de0f0", diff --git a/plugins/codex/SOURCE.json b/plugins/codex/SOURCE.json index fdefa4f..ce064ad 100644 --- a/plugins/codex/SOURCE.json +++ b/plugins/codex/SOURCE.json @@ -1,7 +1,7 @@ { "files": { "LICENSE": "24ba061a4603738ddd5105ef4abc198eeded5ac7efce23b360561816f4dd6559", - "plugin.json": "49d516ebfeb52c9e1822809a2a3297383049163540f5bcf22f025238ce3adb32", + "plugin.json": "aea0fdbea75ce7f02be70116bf560bcffc31258b6def32b79d302f2aee307dd4", "skills/build-landing-page/README.md": "46a280eadac8962180cf3f0c42eb0e845a3b0156a644569182d932881e1d51f8", "skills/build-landing-page/SKILL.md": "b08e4963d6149f3647b28a0d9dccdc8793812abab95a1d081d93699e142de0f0", "skills/build-landing-page/references/copywriting-formulas.md": "6d19f6166e1badcfdda0af4f8b303160e94ee6e6149321157e12849654cc013e", diff --git a/plugins/codex/plugin.json b/plugins/codex/plugin.json index 30903eb..9569b5b 100644 --- a/plugins/codex/plugin.json +++ b/plugins/codex/plugin.json @@ -3,8 +3,8 @@ "author": { "name": "vllnt" }, - "description": "Evidence-led engineering workflows to plan, build, review, and ship software, with shared thinking, orchestration, and collaboration principles.", + "description": "Evidence-led engineering workflows to plan, build, review, and ship software with AI agents. Part of the vllnt universe: open, sovereign tools for freedom by design (vllnt.com).", "license": "MIT", "name": "vstack", - "version": "0.1.0-canary.2" + "version": "0.1.0-canary.3" } diff --git a/plugins/cursor/.cursor-plugin/plugin.json b/plugins/cursor/.cursor-plugin/plugin.json index 51e1c50..d93bf60 100644 --- a/plugins/cursor/.cursor-plugin/plugin.json +++ b/plugins/cursor/.cursor-plugin/plugin.json @@ -2,8 +2,8 @@ "author": { "name": "vllnt" }, - "description": "Evidence-led engineering workflows to plan, build, review, and ship software, with shared thinking, orchestration, and collaboration principles.", + "description": "Evidence-led engineering workflows to plan, build, review, and ship software with AI agents. Part of the vllnt universe: open, sovereign tools for freedom by design (vllnt.com).", "license": "MIT", "name": "vstack", - "version": "0.1.0-canary.2" + "version": "0.1.0-canary.3" } diff --git a/plugins/cursor/SOURCE.json b/plugins/cursor/SOURCE.json index 36a2dbb..b2c3d24 100644 --- a/plugins/cursor/SOURCE.json +++ b/plugins/cursor/SOURCE.json @@ -1,6 +1,6 @@ { "files": { - ".cursor-plugin/plugin.json": "1cc6f42293e41b85702cc04ca4aa89022eb0783f9a543af886f04f4f952b8f4f", + ".cursor-plugin/plugin.json": "3fbf8954a01a9f6a73fec13119d07eaa08e465fb3ac59c27cf711685cdd860f3", "LICENSE": "24ba061a4603738ddd5105ef4abc198eeded5ac7efce23b360561816f4dd6559", "rules/vstack-principles.mdc": "5234bc0506e0a328d6163cd83785d2f37dd1fc23ef84287d71e03b92459e064a", "skills/build-landing-page/README.md": "46a280eadac8962180cf3f0c42eb0e845a3b0156a644569182d932881e1d51f8", diff --git a/scripts/sync.py b/scripts/sync.py index 725eca9..6320550 100644 --- a/scripts/sync.py +++ b/scripts/sync.py @@ -21,8 +21,9 @@ ROOT = Path(__file__).resolve().parents[1] UPSTREAM = "https://github.com/vllnt/skills.git" REPOSITORY = "https://github.com/vllnt/stack" -DESCRIPTION = ("Evidence-led engineering workflows to plan, build, review, and ship software, " - "with shared thinking, orchestration, and collaboration principles.") +HOMEPAGE = "https://vllnt.com" +DESCRIPTION = ("Evidence-led engineering workflows to plan, build, review, and ship software with AI agents. " + "Part of the vllnt universe: open, sovereign tools for freedom by design (vllnt.com).") CLAUDE_ICON = ROOT / "assets" / "claude-icon.svg" HOSTS = ("claude", "codex", "cursor") PRINCIPLES = tuple(f"vllnt-{name}-principles" for name in ("thinking", "orchestration", "collaboration")) @@ -226,7 +227,7 @@ def build(files: dict[str, bytes], lock: dict, version: str) -> dict[str, bytes] "description": DESCRIPTION, "author": {"name": "vllnt"}, "license": "MIT"} if host == "claude": - manifest.update({"homepage": REPOSITORY, "repository": REPOSITORY, + manifest.update({"homepage": HOMEPAGE, "repository": REPOSITORY, "keywords": ["workflows", "engineering", "principles", "skills"]}) if host == "codex": manifest["$schema"] = "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json" diff --git a/tests/test_sync.py b/tests/test_sync.py index 6998182..081f8b3 100644 --- a/tests/test_sync.py +++ b/tests/test_sync.py @@ -66,6 +66,7 @@ def test_deterministic_standalone_packages_and_provenance(self): ("claude", "plugins/claude/.claude-plugin/plugin.json"), ("codex", "plugins/codex/plugin.json"), ("cursor", "plugins/cursor/.cursor-plugin/plugin.json"))} self.assertEqual(manifests["claude"]["repository"], "https://github.com/vllnt/stack") + self.assertEqual(manifests["claude"]["homepage"], "https://vllnt.com") self.assertNotIn("repository", manifests["codex"]) self.assertNotIn("repository", manifests["cursor"])