From a854e5b717ae1ef381b52a2f96365e26c1cba160 Mon Sep 17 00:00:00 2001 From: kochetkov-ma Date: Wed, 1 Jul 2026 08:18:13 +0100 Subject: [PATCH] v4.0.3: restrict 15 skills to user-only invocation across brewcode/brewdoc/brewtools --- .claude-plugin/marketplace.json | 10 +++++----- RELEASE-NOTES.md | 20 ++++++++++++++++++++ brewcode/.claude-plugin/plugin.json | 2 +- brewcode/README.md | 2 +- brewcode/package.json | 4 ++-- brewcode/skills/agents/SKILL.md | 1 + brewcode/skills/convention/SKILL.md | 1 + brewcode/skills/e2e/SKILL.md | 1 + brewcode/skills/rules/SKILL.md | 1 + brewcode/skills/skills/SKILL.md | 1 + brewcode/skills/spec/SKILL.md | 1 + brewcode/skills/teams/SKILL.md | 1 + brewdoc/.claude-plugin/plugin.json | 2 +- brewdoc/skills/guide/SKILL.md | 1 + brewdoc/skills/memory/SKILL.md | 1 + brewdoc/skills/my-claude/SKILL.md | 1 + brewtools/.claude-plugin/plugin.json | 2 +- brewtools/skills/manager/SKILL.md | 1 + brewtools/skills/plugin-update/SKILL.md | 1 + brewtools/skills/provider-switch/SKILL.md | 1 + brewtools/skills/task-board-init/SKILL.md | 1 + brewtools/skills/think-short/SKILL.md | 1 + brewui/.claude-plugin/plugin.json | 2 +- 23 files changed, 47 insertions(+), 12 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index b7a2e62..079cf35 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,13 +6,13 @@ }, "metadata": { "description": "Claude Code plugin suite: brewcode for infinite task execution, brewdoc for documentation tools, brewtools for text utilities, brewui for UI/visual/creative tools", - "version": "4.0.2" + "version": "4.0.3" }, "plugins": [ { "name": "brewcode", "description": "Brewcode - full-featured development platform for Claude Code: infinite focus tasks, prompt optimization, skill/agent creation, quorum reviews, rules management", - "version": "4.0.2", + "version": "4.0.3", "category": "productivity", "keywords": [ "brewcode", @@ -46,7 +46,7 @@ { "name": "brewdoc", "description": "Brewdoc - Claude Code documentation tools: auto-sync for skills/agents/rules, my-claude installation docs, memory optimization, md-to-pdf conversion", - "version": "4.0.2", + "version": "4.0.3", "category": "productivity", "keywords": [ "brewdoc", @@ -74,7 +74,7 @@ { "name": "brewtools", "description": "Brewtools - universal utilities for Claude Code: text optimization, humanization, secrets scanning", - "version": "4.0.2", + "version": "4.0.3", "category": "productivity", "keywords": [ "brewtools", @@ -102,7 +102,7 @@ { "name": "brewui", "description": "Placeholder for future UI/visual/creative tools (currently empty, installable)", - "version": "4.0.2", + "version": "4.0.3", "category": "productivity", "keywords": [ "ui", diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 37340e9..b45f79d 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -2,6 +2,26 @@ --- +## v4.0.3 (2026-07-01) + +> Restricts 15 skills across brewcode/brewdoc/brewtools to user-only invocation (`disable-model-invocation: true`) — side-effect or config-mutating skills (create agent/skill/team, generate spec/e2e/convention docs, sync rules, optimize memory, document installation, manager mode, plugin-update, provider-switch, task-board-init, think-short, guide) no longer auto-trigger from LLM description matching; still callable via `/plugin:skill`. + +> Docs: [agents](https://doc-claude.brewcode.app/brewcode/skills/agents/) | [convention](https://doc-claude.brewcode.app/brewcode/skills/convention/) | [e2e](https://doc-claude.brewcode.app/brewcode/skills/e2e/) | [rules](https://doc-claude.brewcode.app/brewcode/skills/rules/) | [skills](https://doc-claude.brewcode.app/brewcode/skills/skills/) | [spec](https://doc-claude.brewcode.app/brewcode/skills/spec/) | [teams](https://doc-claude.brewcode.app/brewcode/skills/teams/) | [guide](https://doc-claude.brewcode.app/brewdoc/skills/guide/) | [memory](https://doc-claude.brewcode.app/brewdoc/skills/memory/) | [my-claude](https://doc-claude.brewcode.app/brewdoc/skills/my-claude/) | [manager](https://doc-claude.brewcode.app/brewtools/skills/manager/) | [plugin-update](https://doc-claude.brewcode.app/brewtools/skills/plugin-update/) | [provider-switch](https://doc-claude.brewcode.app/brewtools/skills/provider-switch/) | [task-board-init](https://doc-claude.brewcode.app/brewtools/skills/task-board-init/) | [think-short](https://doc-claude.brewcode.app/brewtools/skills/think-short/) + +### brewcode +#### Changed +- **agents, convention, e2e, rules, skills, spec, teams:** added `disable-model-invocation: true` — user-invoked only, no more LLM auto-trigger on generic trigger words + +### brewdoc +#### Changed +- **guide, memory, my-claude:** added `disable-model-invocation: true` — user-invoked only + +### brewtools +#### Changed +- **manager, plugin-update, provider-switch, task-board-init, think-short:** added `disable-model-invocation: true` — user-invoked only, prevents accidental config/hook/provider mutation from ambiguous LLM-detected triggers + +--- + ## v4.0.2 (2026-06-30) > Patch fix — think-short's own smoke test was broken since the v4.0.0 family-roots purge. diff --git a/brewcode/.claude-plugin/plugin.json b/brewcode/.claude-plugin/plugin.json index 34a0f66..2b7f3a7 100644 --- a/brewcode/.claude-plugin/plugin.json +++ b/brewcode/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "brewcode", - "version": "4.0.2", + "version": "4.0.3", "description": "Brewcode - full-featured development platform for Claude Code: infinite focus tasks, prompt optimization, skill/agent creation, quorum reviews, rules management", "author": { "name": "Maksim Kochetkov", diff --git a/brewcode/README.md b/brewcode/README.md index b08f261..8483e3c 100644 --- a/brewcode/README.md +++ b/brewcode/README.md @@ -4,7 +4,7 @@ | Field | Value | |-------|-------| -| Version | 4.0.2 | +| Version | 4.0.3 | | Skills | 13 | | Agents | 12 | | Hooks | 2 | diff --git a/brewcode/package.json b/brewcode/package.json index aee592d..62bd08c 100644 --- a/brewcode/package.json +++ b/brewcode/package.json @@ -1,6 +1,6 @@ { "name": "claude-plugin-brewcode", - "version": "4.0.2", + "version": "4.0.3", "description": "Infinite task execution with automatic handoff for Claude Code", "keywords": [ "claude-code", @@ -36,6 +36,6 @@ }, "claude-plugin": { "name": "brewcode", - "version": "4.0.2" + "version": "4.0.3" } } diff --git a/brewcode/skills/agents/SKILL.md b/brewcode/skills/agents/SKILL.md index 9ce09ce..a1ddbea 100644 --- a/brewcode/skills/agents/SKILL.md +++ b/brewcode/skills/agents/SKILL.md @@ -2,6 +2,7 @@ name: brewcode:agents description: "Creates and improves Claude Code subagents. Triggers: create agent, improve agent, scaffold agent, fix agent." user-invocable: true +disable-model-invocation: true argument-hint: "" allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion, Skill] model: opus diff --git a/brewcode/skills/convention/SKILL.md b/brewcode/skills/convention/SKILL.md index d137615..e2fc0b0 100644 --- a/brewcode/skills/convention/SKILL.md +++ b/brewcode/skills/convention/SKILL.md @@ -1,6 +1,7 @@ --- name: brewcode:convention description: "Extracts etalon classes, patterns, architecture into convention docs. Triggers: extract conventions, etalon classes." +disable-model-invocation: true argument-hint: "[full|conventions|rules|paths ]" allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion, Skill model: opus diff --git a/brewcode/skills/e2e/SKILL.md b/brewcode/skills/e2e/SKILL.md index 9e8e8a4..1e5674a 100644 --- a/brewcode/skills/e2e/SKILL.md +++ b/brewcode/skills/e2e/SKILL.md @@ -2,6 +2,7 @@ name: brewcode:e2e description: "Orchestrates e2e testing: BDD scenarios, Playwright autotests. Triggers: e2e tests, BDD scenarios, write autotest." user-invocable: true +disable-model-invocation: true argument-hint: "[setup|create|update|review|rules|status] [prompt]" allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion, Skill, WebSearch, WebFetch] model: opus diff --git a/brewcode/skills/rules/SKILL.md b/brewcode/skills/rules/SKILL.md index 6c526c6..2448cdd 100644 --- a/brewcode/skills/rules/SKILL.md +++ b/brewcode/skills/rules/SKILL.md @@ -2,6 +2,7 @@ name: brewcode:rules description: "Syncs KNOWLEDGE.jsonl or session learnings to project rules. Triggers: rules, knowledge sync, extract rules." user-invocable: true +disable-model-invocation: true argument-hint: "" allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion, Skill] model: sonnet diff --git a/brewcode/skills/skills/SKILL.md b/brewcode/skills/skills/SKILL.md index 685fdc4..57e1ace 100644 --- a/brewcode/skills/skills/SKILL.md +++ b/brewcode/skills/skills/SKILL.md @@ -2,6 +2,7 @@ name: brewcode:skills description: "Lists, improves, creates Claude Code skills. Triggers: create skill, improve skill, fix skill activation." user-invocable: true +disable-model-invocation: true argument-hint: "" allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Task, WebSearch, WebFetch, AskUserQuestion, Skill] model: opus diff --git a/brewcode/skills/spec/SKILL.md b/brewcode/skills/spec/SKILL.md index dd2575a..1bca822 100644 --- a/brewcode/skills/spec/SKILL.md +++ b/brewcode/skills/spec/SKILL.md @@ -1,6 +1,7 @@ --- name: brewcode:spec description: "Creates SPEC.md task spec via research + interaction. Triggers: create SPEC.md, brewcode spec, write spec." +disable-model-invocation: true argument-hint: "[-n] | — -n/--noask: no questions to user" allowed-tools: Read, Write, Glob, Grep, Bash, Task, AskUserQuestion model: opus diff --git a/brewcode/skills/teams/SKILL.md b/brewcode/skills/teams/SKILL.md index b1c8929..fd9e568 100644 --- a/brewcode/skills/teams/SKILL.md +++ b/brewcode/skills/teams/SKILL.md @@ -2,6 +2,7 @@ name: brewcode:teams description: "Creates and manages dynamic teams of domain agents. Triggers: create team, agent team, team status, cleanup team." user-invocable: true +disable-model-invocation: true argument-hint: "[create [name] [prompt]|update [name]|status [name]|cleanup [name]]" allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion, Skill] model: opus diff --git a/brewdoc/.claude-plugin/plugin.json b/brewdoc/.claude-plugin/plugin.json index 4965af1..371d793 100644 --- a/brewdoc/.claude-plugin/plugin.json +++ b/brewdoc/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "brewdoc", - "version": "4.0.2", + "version": "4.0.3", "description": "Brewdoc - Claude Code documentation tools: auto-sync for skills/agents/rules, my-claude installation docs, memory optimization", "author": { "name": "Maksim Kochetkov", diff --git a/brewdoc/skills/guide/SKILL.md b/brewdoc/skills/guide/SKILL.md index 60b806e..cbc045c 100644 --- a/brewdoc/skills/guide/SKILL.md +++ b/brewdoc/skills/guide/SKILL.md @@ -2,6 +2,7 @@ name: brewdoc:guide description: Interactive guide and tutorial for brewcode plugin suite. Triggers - guide, tutorial, getting started, learn brewcode. user-invocable: true +disable-model-invocation: true argument-hint: "[topic] — no args = interactive menu. Topics: overview, installation, killer-flow, teams, skills-catalog, agents-catalog, customization, integration, advanced" allowed-tools: Read, Glob, Grep, Bash, WebSearch, AskUserQuestion model: haiku diff --git a/brewdoc/skills/memory/SKILL.md b/brewdoc/skills/memory/SKILL.md index 22dc9f0..ff5cc6c 100644 --- a/brewdoc/skills/memory/SKILL.md +++ b/brewdoc/skills/memory/SKILL.md @@ -3,6 +3,7 @@ name: brewdoc:memory description: Optimize Claude Code memory - dedupe, compress, organize CLAUDE.md. Triggers - optimize memory, memory cleanup. argument-hint: "— no args, runs 4-step interactive workflow" user-invocable: true +disable-model-invocation: true allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion model: opus --- diff --git a/brewdoc/skills/my-claude/SKILL.md b/brewdoc/skills/my-claude/SKILL.md index 95f71f6..64cabea 100644 --- a/brewdoc/skills/my-claude/SKILL.md +++ b/brewdoc/skills/my-claude/SKILL.md @@ -3,6 +3,7 @@ name: brewdoc:my-claude description: Document your Claude Code installation - setup, architecture, web research. Triggers - my claude, installation docs. argument-hint: "[ext [context]] | [r ] — no args = internal installation docs" user-invocable: true +disable-model-invocation: true allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Task, WebFetch, WebSearch, Skill, AskUserQuestion model: opus --- diff --git a/brewtools/.claude-plugin/plugin.json b/brewtools/.claude-plugin/plugin.json index a3813dd..88a4d89 100644 --- a/brewtools/.claude-plugin/plugin.json +++ b/brewtools/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "brewtools", - "version": "4.0.2", + "version": "4.0.3", "description": "Brewtools - universal utilities for Claude Code: text optimization, humanization, secrets scanning", "author": { "name": "Maksim Kochetkov", diff --git a/brewtools/skills/manager/SKILL.md b/brewtools/skills/manager/SKILL.md index 7ebb77d..4a13397 100644 --- a/brewtools/skills/manager/SKILL.md +++ b/brewtools/skills/manager/SKILL.md @@ -5,6 +5,7 @@ argument-hint: "[on|off|uninstall|status|level |edit|reset] | < allowed-tools: Read, Bash, AskUserQuestion model: sonnet user-invocable: true +disable-model-invocation: true --- # Manager diff --git a/brewtools/skills/plugin-update/SKILL.md b/brewtools/skills/plugin-update/SKILL.md index e9f820d..c01b194 100644 --- a/brewtools/skills/plugin-update/SKILL.md +++ b/brewtools/skills/plugin-update/SKILL.md @@ -2,6 +2,7 @@ name: brewtools:plugin-update description: Checks, installs, updates Claude Code plugins. Triggers - update plugins, check versions, обнови плагины. user-invocable: true +disable-model-invocation: true argument-hint: "[check|update|all] — no args = interactive. check = status only, update = prompt to update, all = everything non-interactive" allowed-tools: Read, Bash, AskUserQuestion, Write, WebFetch model: sonnet diff --git a/brewtools/skills/provider-switch/SKILL.md b/brewtools/skills/provider-switch/SKILL.md index d816367..0e0635b 100644 --- a/brewtools/skills/provider-switch/SKILL.md +++ b/brewtools/skills/provider-switch/SKILL.md @@ -5,6 +5,7 @@ argument-hint: "[status|setup|verify|model-check|help|] — no ar allowed-tools: Read, Write, Edit, Bash, AskUserQuestion, Glob, Grep model: opus user-invocable: true +disable-model-invocation: true --- [DICT: P=Phase, PRV=provider, EXEC=EXECUTE using Bash tool, AUQ=AskUserQuestion, REF=references, ALIAS=shell alias, CFG=configured, BASE=ANTHROPIC_BASE_URL, MOD=ANTHROPIC_DEFAULT_OPUS_MODEL] diff --git a/brewtools/skills/task-board-init/SKILL.md b/brewtools/skills/task-board-init/SKILL.md index 0944d21..90b44d5 100644 --- a/brewtools/skills/task-board-init/SKILL.md +++ b/brewtools/skills/task-board-init/SKILL.md @@ -7,6 +7,7 @@ model: opus meta: phases: [P0, P1, P2, P3, P4, P5, P5.5] user-invocable: true +disable-model-invocation: true --- [DICT: TT=task-tracker agent (generated), TB=task-board skill (generated), BRD=board.md, FEAT=.claude/features, EXCL=source-path exclusions, REL=release style (vX.Y.Z tag | commit SHA | no tag), DOM=domain id segment, FM=frontmatter] diff --git a/brewtools/skills/think-short/SKILL.md b/brewtools/skills/think-short/SKILL.md index 3af361a..d110a17 100644 --- a/brewtools/skills/think-short/SKILL.md +++ b/brewtools/skills/think-short/SKILL.md @@ -5,6 +5,7 @@ argument-hint: "[install|remove] [project|global] | free-text intent" allowed-tools: Read, Bash, AskUserQuestion, Task model: sonnet user-invocable: true +disable-model-invocation: true --- # Think-Short diff --git a/brewui/.claude-plugin/plugin.json b/brewui/.claude-plugin/plugin.json index a1822e5..ed6be94 100644 --- a/brewui/.claude-plugin/plugin.json +++ b/brewui/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "brewui", - "version": "4.0.2", + "version": "4.0.3", "description": "Brewui -- placeholder for future UI/visual/creative tools", "author": { "name": "Maksim Kochetkov",