241 KiB
Release Notes
v4.7.1 (2026-08-06)
Docs: agent-router
brewtools
Fixed
- agent-router: an agent the router redirects TO can never be an agent the router flags.
neverFlagnow seeds withbrewcode:agent-creator,brewcode:skill-creator,brewcode:hook-creator,brewcode:bash-expert— spawning one of them is by definition already the right expert. Made structural rather than a hardcoded list:normalizeConfigunionsneverFlagwith everyexpertin the effectiveintentstable, so a customintentsentry exempts its own expert automatically. Tier-2 judge prompt short-circuits on the same set. The install runbook writes the full 8-entry list — a short list there would silently override the code default. 65 tests, all green
Docs: agent-router | agent-deadline | manager | semble
brewtools
Added
/brewtools:agent-router(EXPERIMENTAL): installer skill for a project-localPreToolUsehook on matcherAgent. When the main loop spawns a generic subagent type for a task a real expert owns, the spawn is denied and the expert is named; when the fit is only uncertain the hook appends a nudge instead; otherwise it stays silent. Modesstatus | install | level fast | level strict | disable | enable | uninstall | purge, all idempotent, foreign hooks never touched. Config at<project>/.claude/brewtools/agent-router.json(enabled, level, genericTypes, neverFlag, minScore, margin, intents)- tier 1 (default,
level fast): deterministic Node script, zero tokens, ~69 ms median including node startup; scores the project roster in.claude/agents/against the task text and routes to a plugin specialist (skill-creator/agent-creator/hook-creator/bash-expert) when no project agent fits. A project agent always beats a plugin specialist - tier 2 (opt-in,
level strict):type: "agent"hook, modelclaude-haiku-4-5-20251001, adjudicates ambiguous picks. Wired and installed/stripped correctly, but not yet behaviorally verified — treat as untested. Tier 1 cannot gate it: all matchingPreToolUsehooks run in parallel and none can skip another, which is why tier 2 is opt-in rather than triggered-on-doubt - fails open everywhere — bad input, unparsable config, missing roster, unwritable tmp all allow the spawn. Anti-loop guard keyed by (project root, session, normalized task text) so a deny can never deadlock the model: a repeat becomes a notice
- not registered in
brewtools/hooks/hooks.json; nothing is installed until the skill is run. 55 tests, all green
- tier 1 (default,
Fixed
- hook
timeoutunits: Claude Code hooktimeoutis seconds, not milliseconds (default 600).brewtools/hooks/hooks.jsonshipped2000/3000— 33 and 50 minute ceilings instead of 2 s and 3 s. Now2/3. Same bug fixed in themanagerhard-wall installer (5000->5) and in theagent-deadlinerunbook (guard5000->5, cleanup3000->3, bothwant=[...]verify arrays and the prose rationale)
brewcode
Fixed
- hook
timeoutunits:brewcode/hooks/hooks.json1000/3000->2/3(seconds).semblerunbook,semble-guidance.shverify/repair arrays and the hook contract tests corrected from5000to5
v4.6.0 (2026-08-05)
Docs: agents | skills | rules | spec | convention | teams | e2e | superreview | agent-creator | skill-creator | bash-expert | manager | think-short | task-board-init | agent-deadline | text-human | text-optimize | guide | memory
brewcode
Removed
- generic agents:
developer,architect,reviewer,testerdeleted. Every project generates its own agents in.claude/agents/(via/brewcode:teams create), so the generic four were dead weight that competed with the real specialists. brewcode now ships 5:agent-creator,skill-creator,hook-creator,bash-expert,bc-rules-organizer - docs: the 4 agent pages and their navigation entries removed; agent counts corrected across README, brewcode README, guide catalog and ASCII diagram (12/9 -> 8/5)
Changed
- agent selection: every internal spawn that named a generic agent now resolves to "the project's agent from
.claude/agents/, elsegeneral-purpose" —skills,agents,rules(reviewmode),spec(research fan-out + review gate),teams(C5/C7/C9 quorum),convention(P2Explorex10, P3Plan, P4 writers),e2e(e2e-architect/e2e-reviewerinstead of the plugin pair),brewdoc:memorysync,brewtools:text-humanmixed flow,brewtools:task-board-initanalysis agent A (Plan) - agent-creator: new step 6 — emit two guardrail blocks verbatim into every generated agent.
Output Disciplineis unconditional;Scope Fitonly for agents whose domain writes code/scripts/SQL/schemas/infra/config. Both added to the definition-of-done checklist; agent-creator appliesOutput Disciplineto its own report (agent paths + validation verdict, not full bodies) - teams agent-template: generated agents carry
Output Disciplineon completion (decide what the MAIN session needs, return verdict +file:line, bulk output ->.claude/reports/<ts>_<name>/, return the path) and aScope Fitblock that agent-creator strips for research/docs/review-only agents - teams: agent priority table reworded — plugin level is now "plugin specialist", fallback is
Explore/Plan/general-purpose
brewtools
Changed
- manager
++m: protocol step 6 — once ALL code is written (not per-piece), file one recommended final task to simplify the whole written code and strip over-engineering, delegated like any other task - manager
++r/++rr: a simplification pass ("over-engineered? simpler?") runs before the review proper - think-short: injected prompt gained "think short: minimal internal reasoning, no exploring aloud" and a post-write "can this be simpler?" pass; em-dash replaced with ASCII
- task-board-init: generated
task-trackeragent gained anOutput disciplinesection (verdict + task ids +file:line; no BRD/task-body/backlog dumps; bulk ->.claude/reports/<ts>_<name>/) plus a matching checklist item; analysis agent A is nowPlan - agent-deadline:
byAgentTypeexamples repointed from the deletedbrewcode:developertobrewtools:text-optimizer
codex
Fixed
- generate-compat.mjs: the generator is the source of truth for the Codex mirror and had drifted — regenerating silently reverted the v4.5.1/v4.5.2 manager content. Restored and updated, so the mirror now carries bounded-unit sizing, the six-field brief, the branch rule, the simplification step, and the v4.6.0 output-discipline/scope-fit templates
- mirror sync:
.codex/plugins/**and the per-plugin.codex/**trees regenerated — catches up superreview (incl. the newreferences/scope.md.template), text-optimize, text-human, agents, teams and task-board-init content that had drifted out of the mirror
Changed
- agents: managed Codex agent TOMLs 9 -> 4 (
agent-creator,bash-expert,hook-creatorfor brewcode plus the brewdoc/brewtools set);install-update.mjsandvalidate-compat.mjscounts updated - prompts: Codex
PROMPT_CONTEXTreplaced the old[SKILL?]/[HINT]pair with[ROLE]/[SPLIT]/[BRANCH], matching the Claudeforced-evalhook; brewtools SessionStart context now states the bounded-unit rule - forced-eval:
$-prefixed prompts are no longer skipped
v4.5.3 (2026-08-02)
Docs: semble
brewcode
Fixed
- semble state:
phaseself-heals fromabsentforawaiting_reload|verifying|ready— it writes the canonical init document atprereq_ready, then walks the legal chain hop by hop, each hop validated as usual; the legality table is unchanged, soabsent -> readyis still not a pair andabsent -> disabledis still refused - semble state: the second project in a session died at close-out with
illegal phase transition absent -> ready—initonly ran when MCP registration mutated, and registration is user-scoped, so every project after the first gotunchangedand never had a state file - semble state:
completetook one step, so a close-out passing the whole list failed withunknown step: prereq mcp permissions guidance agents warm smoke; it now accepts several steps as multiple arguments or as one whitespace-separated string - semble state: an unknown step token now names itself and writes nothing (exit 2) instead of being partially applied
- semble skill: step 4.3 printed a shell variable and so reported
completed:steps that were never recorded; it now reads the state file back and prints what is actually there
Changed
- semble state:
--jsonforphasegainedhealedandwalked;completegainedsteps. Single-stepcompleteis byte-compatible with before - semble docs: README notes Codebase Memory MCP as a possible future companion — not integrated, not installed
v4.5.2 (2026-08-02)
Docs: semble
brewcode
Added
- semble install: new
coreutilssubcommand runsbrew install coreutilsto providegtimeouton macOS;allnow runs check -> uv -> coreutils -> semble - semble report: new
timeoutkey —{backend, path, bounded, coreutils:{status,reason,changed}};boundedis alwaystrue - semble env:
SEMBLE_TIMEOUT_BINseam to point at a specific timeout binary;SP_SEARCH_TIMEOUTis now overridable
Fixed
- semble timeout:
sc_timeoutis unconditionally bounded —timeout, elsegtimeout, else a pure-bash watchdog that kills the whole process group and returns 124 - semble search:
sp_run_searchkept its 600 s bound when no timeout binary is present, instead of silently running unbounded - semble guidance:
semble-guidance.shJSON output was missing its trailing newline - semble skill: step 3 offers the coreutils install from the report instead of gating on exit 4, so it is no longer silently skipped
- semble tests:
suite-hooksranrunNodewith cwd at the repo root and read the developer's real.claude/semble/state.json
Changed
- semble install: coreutils is optional and soft — no brew, a failed brew,
SEMBLE_NO_NETWORK,SEMBLE_DRY_RUNor a missing--yesinsideallall yield status ok and exit 0; only a directcoreutilswithout--yesexits 4
v4.5.1 (2026-08-02)
Docs: brewcode/hooks | brewtools/prompt-injection | brewtools:manager
brewcode
Added
- forced-eval hook: new
[BRANCH]line —Stay on the current branch; none chosen -> main. No explicit branch/PR instruction -> work on main and take over ALL workspace changes, incl. from other sessions.A branch or PR is opt-in and stated by the user, never inferred; without it a session owns the whole working tree, including edits left by other sessions
Changed
- forced-eval hook:
[SPLIT]now bounds a unit by time as well as size (1 deliverable, ~5 files, ~20 min) and states the fan-out rule explicitly — a dependency must be a REAL data handoff, else parallel. Payload is 3 lines, still far under the 9K cap - codex mirror:
.codex/hooks/lib/prompt-cadence.mjscarries the same[SPLIT]widening and the new[BRANCH]line
brewtools
Changed
- manager
full+planmodeblocks (++m): two new paragraphs — widest fan-out (a dependency must be a REAL data handoff, else parallel; size a unit to ~20 min of agent work, longer -> split again) and the branch rule (current branch, none chosen -> main, no explicit branch/PR -> take over all workspace changes). Same additions in the.codexmanager mirrors
v4.5.0 (2026-08-02)
Docs: semble
brewcode
Added
- semble skill:
/brewcode:sembleinstalls and configures the Semble semantic code-search MCP server for any project — prompt-driven lifecycle (status, setup, resume, enable, disable, reindex, warm, optimize, update, remove, purge), routes free-text RU/EN, empty input defaults to read-only status - install: no Homebrew formula exists for Semble, so setup installs
uvvia brew and runs the exact pinuvx --from 'semble[mcp]==0.5.2' semble --content code config; a confirmation gate precedes any machine-level install - mcp: registers
semble_codeat user scope with an absoluteSEMBLE_CACHE_LOCATION; code and docs cache roots are isolated from the first release — docs is reserved, not registered - adoption: a
semble-firstproject rule, a SessionStart hook and an advisory-only PreToolUse search reminder that never blocks exactrg/Grep searches; project agents'tools:allowlists get both MCP tool names - reload boundary: setup writes a checkpoint before the MCP mutation and stops, because a newly registered MCP server is unusable until a new Claude Code session;
resumecontinues at verification - limits: no watcher/daemon exists;
.html/.htmand.json/.json5/.csv/.tsv/.psvare not in the code corpus; both MCP tools require an absoluterepoargument and returnstart_line/end_line(there is nolinefield)
v4.4.0 (2026-08-02)
grepai removed. The
/brewcode:grepaiskill, thebc-grepai-configuratoragent, the two project hooks it self-installed, thegrepai-firstrule template and every "usegrepai_searchfirst" instruction across all four plugins are gone. Every place that pointed at semantic search now points at the Bash search path (grep->ugrep,find->bfs,rg) that this macOS Claude Code build actually has. brewcode is now 8 skills / 9 agents.
Docs: brewcode overview | brewcode skills | brewcode agents | brewcode hooks | spec | convention | superreview | architect | developer | reviewer | skill-creator | agent-creator | guide | text-human | getting-started | installation | quickstart
brewcode
Removed
- grepai skill:
skills/grepai/deleted whole — SKILL.md, README,config.yaml.example, 14 shell scripts,scripts/lib/index-common.sh, and the two hook assets (grepai-session.mjs,grepai-reminder.mjs) it installed into consumer projects - bc-grepai-configurator: the internal config-generating agent is gone; agent roster 10 -> 9
- docs + template:
docs/grepai.mdandtemplates/rules/grepai-first.md.templatedeleted - hooks:
bc-grepai-configuratordropped from the system-agent allowlist inhooks/lib/utils.mjs
Changed
- architect / reviewer agents: reuse-first discovery and the "similar exists?" check now run through Bash (
grep/rg/find) instead ofgrepai_search. The instruction survives — only the tool changed - convention skill: discovery step moved to Bash search + Read; the "grepai unavailable" error row is gone
- superreview: Phase 1 exploration, the emitted
SKILL.md.templatesearch-first rule, the generated report's "Search tool used" field and the TypeScript/React hook-existence check all retargeted torg/grep/git ls-files - skill-creator / agent-creator: "grepai injection" generalised to "hook context injection" — the claim was always about UserPromptSubmit context, not about grepai
- docs:
docs/commands.mdrenumbered (grepai was command 2),docs/file-tree.mdstatistics recounted — 9 agents, 8 skills, 9 scripts, 2 templates, 5 docs
brewdoc
Changed
- guide: grepai removed from the skills catalog (brewcode 9 -> 8), the agents catalog (15 -> 12 plugin agents), the advanced-topics list (section 1 deleted, 2-4 renumbered), the installation smoke test (now
/brewcode:skills status) and the overview workflow. The Plugin Suite ASCII diagram was redrawn rather than line-deleted; brewui, which was missing entirely, is now shown
brewtools
Changed
- text-human: the semantic-search block in the java/python/typescript references is gone; the grep block is promoted from "fallback" to the primary pattern
repo
Changed
- docs site:
brewcode/skills/grepai.mdxdeleted, nav entry removed, 6 dead links to/brewcode/skills/grepai/fixed, and Ollama + bge-m3 dropped from the installation prerequisites — they were only ever needed as grepai's embedder. All counts and card grids recomputed;npm run buildgreen, 57 pages - rules:
.claude/rules/grepai-first.mddeleted; thelast_index_timeentry inavoid.mdwent with it (the lesson was purely about grepai's own YAML) - codex compat:
.codex/scripts/generate-compat.mjsno longer enumerates or generates the grepai skill mirror (-132 lines), so regeneration cannot reintroduce it
v4.3.0 (2026-08-02)
Repo-wide prompt audit (delegation contract, scope guards, dead-weight removal) plus subagent resource limits: verified frontmatter contract, calibrated
maxTurnsacross all agents, and the newagent-deadlineskill — a soft wall-clock deadline that forces a subagent to finalize instead of being killed.
Docs: brewcode hooks | spec | grepai | skills | agents | rules | teams | superreview | convention | e2e | developer | tester | reviewer | architect | skill-creator | agent-creator | hook-creator | bash-expert | memory | docsync | my-claude | publish | guide | manager | prompt-injection | task-board-init | text-human | text-optimize | provider-switch | secrets-scan | ssh | deploy | think-short | agent-deadline | plugin-update | ssh-admin | deploy-admin | text-optimizer
brewcode
Added
- skills:
## Delegationsection in every subagent-spawning skill (spec, skills, agents, rules, teams) — names the failure mode ("a big task handed to one agent = an agent gone for an hour"), caps one subagent at ONE bounded unit (one deliverable, ~<=5 files, ~<=10 steps), and requires a six-field spawn brief: GOAL / ROLE / SCOPE / CONTEXT / CONSUMER / DONE - superreview: the emitted
references/SKILL.md.templatecarries the same Delegation block, so every generated project-local review skill inherits the contract in the user's repo - agents:
## Scope guardin all 8 shipped agents (developer, tester, reviewer, architect, skill-creator, agent-creator, hook-creator, bash-expert) — size the task before starting; beyond one bounded unit, STOP and return a split proposal of 2-N subtasks with scope and suggested owner instead of grinding for an hour - agents: every agent now carries an explicit
maxTurns(developer 120, hook/skill/agent-creator 80, reviewer/architect/tester/bash-expert/bc-* 60) plus a role-specific## Checkpointingsection. Values are calibrated from real subagent transcripts in this repo (observed runs of 12-51 turns at ~10-20 s/turn), sized at ~2-3x a typical run:maxTurnsis a runaway backstop, not a budget — a tight limit loses the agent's final report, so it always ships paired with checkpointing - agent-creator: new
SA Resource Limitssection — no wall-clock timeout for a subagent exists anywhere (not frontmatter, notsettings.json, not an env var); table of what actually bounds one (CLAUDE_CODE_MAX_TURNS,API_TIMEOUT_MS,CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS, concurrency/session/spawn-depth caps, token caps);maxTurnsexhaustion behavior (files persist, final report is lost); which hooks fire inside a subagent loop; partial-result recovery via the subagent transcript,TaskOutput/TaskStop/SendMessage. Plus a definition of turn (one inference + its tool calls; parallel calls in one message count as one)
Fixed
- agent-creator: the documented frontmatter contract was inverted and actively harmful. It claimed
effort/maxTurns/disallowedToolswere "plugin agents only" and told authors to move an agent into plugin scope to make them work. Verified against both agent parsers in the Claude Code v2.1.220 binary, the truth is the reverse: those keys (plusmemory,background,model,skills) work in both scopes, whilepermissionMode/hooks/mcpServersare the ones ignored in plugin agents — the loader emitsPlugin agent file <path> sets <key>, which is ignored for plugin agentsfor each. Also documents the previously unlisted keysskills,memory,background,initialPrompt,observer,observerMessage,observeSubagents,isolation: remote(last five local-only) and thenameconstraints (no leading-, no:).isolationdemoted to low priority — not a default - agents: removed the dead keys the contract fix exposed —
mcpServers: [grepai]from architect/developer/reviewer/bc-grepai-configurator andpermissionModefrom bc-grepai-configurator/bc-rules-organizer/ssh-admin/deploy-admin. Every one was silently ignored and logged a warning at load;mcpServersin particular never granted these agents grepai (they inherit the session's MCP servers instead)
Changed
- forced-eval hook: payload is now the delegation pair only —
[ROLE]expert-first manager + new[SPLIT]bounded-unit/context-handoff line. The[SKILL?]skill-activation nudge is gone (modern models pick skills unaided), and the/-prefix skip went with it: a slash command can still carry a task worth delegating, so the reminder fires there too. Meta-reply skip list (yes/no/ok/number/single letter) unchanged - grepai: skill description gained
Triggers:for LLM auto-invocation; install/reindex/init scripts trimmed - reviewer agent: description gained
Triggers: review code, code review, review PR, check architecture, approve changes
Removed
- agents + skills: ~1300 net lines of dead weight — stack-detection tables, SOLID/clean-code lectures, and generic command tables the model already knows
brewdoc
Added
- memory, my-claude:
## Delegationsection with the six-field spawn brief
Changed
- docsync, guide, publish: prompt text trimmed; behavior and modes unchanged
brewtools
Added
- agent-deadline (NEW skill): soft wall-clock deadline for subagents. Claude Code has no subagent timeout, and
maxTurnssimply aborts the agent and discards its final report — this installs two hooks that force finalization instead.PreToolUsewarns the agent once at 80% of its budget, blocks everything but the finalization tools at 100%, and pasthardStopRatio(default 2x) narrows the allowance toWrite/Edit;SubagentStopreaps the state. Modes:status(default),install,disable,enable,uninstall,purge; project or global scope; default budget 20 min with optional per-agent_typeoverrides. Opt-in — installing the plugin does not enable it. Fail-open by construction: any hook error passes the call through. Honest limit, stated on the page: this is not a timeout — elapsed time is sampled only at tool-call boundaries, so a subagent stuck inside one 25-minuteBashis invisible until the next call (BASH_MAX_TIMEOUT_MSis the mitigation). 169 tests - manager: the
++m/++a/++rr/++rreference blocks now name the failure mode and carry the six-field spawn brief (GOAL / ROLE / SCOPE / CONTEXT / CONSUMER / DONE). Codewords themselves unchanged - task-board-init:
## Delegationsection, mirrored into the emittedreferences/03-task-board-skill.mdso generated task-board skills inherit it - text-human: per-block Delegation contract for the mixed flow
- agents:
## Scope guardin text-optimizer, ssh-admin, deploy-admin — ssh-admin and deploy-admin additionally split per host, repo, and environment
Fixed
- think-short: the global install/remove merge parsed
settings.jsoninside a swallowingtry/catchand then wrote unconditionally — one stray comma in~/.claude/settings.jsonand the whole file (model, env, the entireBash(rm *)deny-list, every foreign hook) was replaced by the two think-short entries. It now aborts and leaves the file byte-identical. Hook dedupe also compares full paths instead of basenames, so reinstalling into a different hooks dir no longer leaves a settings entry pointing at a deleted file - task-board-init: frontmatter
name:was baretask-board-init, missing thebrewtools:prefix - text-human: frontmatter was invalid YAML (unquoted
description/argument-hintcontaining--and:); both now quoted - provider-switch:
Taskadded toallowed-tools— phase P9 spawns 5 Tasks and previously could not
Changed
- manager: skill description 604 -> 231 chars, triggers preserved
- ssh, deploy, secrets-scan, think-short, text-optimize, plugin-update: generic
gh/docker/systemdcommand tables and stack-detection boilerplate removed
v4.2.4 (2026-07-30)
Docs: brewcode hooks
brewcode
Changed
- forced-eval:
[ROLE]line rewritten to expert-first delegation —Manager: scan agents (project .claude/agents/ first) — expert for this domain exists -> delegate regardless of size; no expert or trivial one-off -> self.
Removed
- forced-eval:
[HINT] Delegate heavy implementation...line — "heavy" let domain tasks (ssh, deploy, CI) self-execute even when a project expert agent existed; the trigger is now expert match, not task size
v4.2.3 (2026-07-24)
Docs: text-optimize | text-optimizer
brewtools
Added
- text-optimize: new rule category A - Aggressive Lossy (A.1 line fusion, A.2 low-value word drop, A.3 aggressive paraphrase, A.4 common-knowledge elision) — deep/max only; 52 rules / 8 categories (was 48/7)
- text-optimize: loss ledger for A.2/A.4 drops; verification label
elided-knownfor A.4 counts against the >=95% gate, A.2 is gate-neutral - text-optimizer agent: aggressive lossy pass wired into deep/max compress, verify labels, report loss ledger
Changed
- docs: rule counts 48 -> 52 across repo/plugin/skill READMEs + docs site pages; standalone sksh copy skills/text-optimizer synced
v4.2.2 (2026-07-20)
brewtools
Changed
- task-board-init: generated task-tracker agent pinned to model: sonnet
brewcode
Changed
- bc-grepai-configurator: model inherit -> sonnet
v4.2.1 (2026-07-20)
Docs: text-optimize | text-optimizer
brewtools
Changed
- docs: text-optimize and text-optimizer pages updated for v4.2.0 — five modes incl. opt-in max (
-x/--max), 48 rules across 7 categories, new Deduplication category D.1-D.6, L.1-L.8, per-mode verification gates (standard >=98%, deep >=95%, max >=95% + 100% sub-gate on numbers/names/negations/scope), dedup pass step in the agent flow - docs: agent page now lists the
Bashtool and the correct${CLAUDE_PLUGIN_ROOT}reference path (was a stale$BT_PLUGIN_ROOT) - docs: repo README and brewtools README rule count 30+ -> 48, added
-s/-xusage examples and agent documentation links
Fixed
- docs: 32 MDX pages linked to bare plugin slugs (
/brewtools/,/brewcode/,/brewdoc/) that return 404 — all now point at/{plugin}/overview/ - docs: removed unused
Badgeimports, converted over-long flow paragraphs into mode/rounds/gate tables, escaped globs, GitHub file links use/blob/
brewdoc
Changed
- guide: skills catalog row for
/brewtools:text-optimizerefreshed (5 modes, smart dedup, up to 4x)
v4.2.0 (2026-07-20)
Docs: text-optimize | text-optimizer
brewtools
Added
- dedup: new Deduplication rule category D.1-D.6 in
rules-review.md— exact/near/cross-format duplicate merge (most-specific variant wins), emphasis cap <=2 per document (full form early + <=1-line echo at end, 3+ collapse to 2), cross-file SSOT dedup with pointer + 1-line summary, wrong-merge guard (different scope/numbers/conditions = different facts). Rule count 42 -> 48, 7 categories - loss-budget: per-mode Loss Budget table — light/medium 100% lossless, standard >=98%, deep >=95%, max >=95% + 100% sub-gate on numbers/names/negations/scope qualifiers; dedup-merged facts count as preserved ((kept+merged)/total)
- verification: fact-inventory protocol at all verified modes; medium gains a self-check; max now runs 2 independent rounds — claim inventory (one predicate per claim) + self-QA probe (10-20 questions); dedup ledger with lost/distorted/merged loss-list labels
- compression: sentence-level zero-loss pruning + structure-aware compression (standard); Redundancy Factoring (phrase-DICT, path-prefix hoisting, header echo removal, number normalization) + LLMLingua-2 token-class keep/drop heuristics (deep); Chain-of-Density final pass B4 (max); emphasis-inflation downgrade + anti-laziness booster deletion (C.7/T.6)
- agent: text-optimizer agent gains
-x/--maxmode (opt-in), Step 3a dedup pass, 7-row verification table - tests:
test-optimize.sh34 -> 44 checks (D category,-xflag, Max/Dedup/Loss Budget sections, L.1-L.8)
Fixed
- skill: removed stale
$BT_PLUGIN_ROOT/pre-task.mjsreferences from SKILL.md orchestration (native${CLAUDE_PLUGIN_ROOT}substitution) - markdown: escaped raw
|inside backticked code spans in table cells (GFM cell splits) across rules-review, deep/max-compression - standalone:
skills/text-optimizersynced — L.8, C.7/C.8/T.10 surfaced in SKILL.md, D category, dedup pass, loss budget, v2.16.0; category table corrected to sum 48
v4.1.0 (2026-07-19)
New
/brewdoc:docsyncskill replaces the retiredauto-sync. docsync is a user-run, project-scoped generator: point it at any repo and it installs three project-local hooks (docsync-trackon Write/Edit/MultiEdit,docsync-watchon Read,docsync-gateon Stop) plus config into.claude/, then tracks documentation staleness by thelast_updatedfrontmatter date. When docs you touched this session are stale, the Stop hook blocks once and asks (via AskUserQuestion) whether to sync — never auto-syncs without confirmation. Prompt-driven modes (no rigid flags):init,status,sync [--all],reread,frontmatter,uninstall. Frontmatter schema:doc_type(llm|user|skip),last_updated,sync_procedure. The settings.json merge is non-clobbering (backup + abort-on-parse-fail + BOM-tolerant), hook paths use$CLAUDE_PROJECT_DIRfor portability, anduninstallremoves only docsync entries while preserving foreign hooks — verified against fresh, existing-hooks, and corrupt-settings projects.
The legacy
auto-syncskill, itsbd-auto-sync-processoragent, the oldauto-sync:*frontmatter tag mechanism (swept from ~44 files), and the skill-creator template injection were removed completely.
Docs: docsync | brewdoc overview
brewdoc
Added
- docsync: new hook-driven doc-staleness tracker with init/status/sync/reread/frontmatter/uninstall modes, project-local install, and confirm-before-sync gate
Removed
- auto-sync: retired the skill +
bd-auto-sync-processoragent +auto-sync:*frontmatter tags across the suite; replaced by docsync
v4.0.6 (2026-07-18)
Infra: production moved off the decommissioned Contabo VPS to Fornex (79.132.136.83, Ubuntu 24.04.4 LTS). The docs site doc-claude.brewcode.app was redeployed on the new host with no plugin behavior changes. SSH reference docs and the eurodns skill example were repointed to the new server IP.
brewtools
Changed
- ssh: best-practices
HostNameexample repointed to the new Fornex server IP (79.132.136.83)
v4.0.5 (2026-07-05)
New Manager codeword
++a(Architecture-first) plus a think-short comment-discipline gate.++ais a third independent codeword group alongside++m(manager) and++rr/++r(review): it injects a[DIRECTIVE: ARCHITECTURE-FIRST]block that forces an architecture pass before implementation — design fitting the project's existing architecture/patterns/rules, robust + scalable + simple (no over-engineering), reuse-first, clean seams. Mode-agnostic (same block in normal and plan mode; in plan mode it is written into the plan) and combinable with++m/++rr/++r. think-short now tells the model to comment like a human, not an AI — fewer comments, only where non-obvious, docstrings/JavaDoc/PyDoc kept.
Docs: manager | prompt-injection | think-short
brewtools
Added
- manager:
++acodeword — Architecture-first directive. Independent third group (combines with++mand the review group); injectsreferences/architect.md([DIRECTIVE: ARCHITECTURE-FIRST]); mode-agnostic, written into the plan in plan mode. Hook detection + injection order manager -> architect -> review;architectadded toVALID_MODES
Changed
- think-short: injected prompt gains a comment-discipline gate — comment like a human not an AI: fewer comments, only non-obvious logic / public APIs / docstrings; stop line-by-line AI-slop narration; docstrings (JavaDoc/PyDoc) kept, just terser
v4.0.4 (2026-07-05)
Strengthens Manager mode so the role survives the plan/exit boundary. The plan-mode block now forces the role INTO the plan itself (PREAMBLE restating
[ROLE: MANAGER]+ protocol, explicitSTEP 0= re-assume role + build the whole TaskGraph + delegate on exit), because the injected hook context dies when plan mode ends while the plan document persists. Bothfullandplanmodeprompt blocks recompacted (~35% shorter) without losing meaning. brewcode'sforced-evalreminder gains a standing[ROLE]manager delegation line.
Docs: manager
brewtools
Changed
- manager:
planmodeblock now bakes the manager role into the plan — PREAMBLE (role + 5-step protocol verbatim) and a literalSTEP 0(re-assume MANAGER, create the ENTIRE TaskGraph, then delegate) as the first implementation action; fixes the role evaporating on plan exit - manager:
full+planmodeprompt blocks recompacted (~35% fewer lines), same protocol and visceral framing preserved
brewcode
Changed
- forced-eval: always-on UserPromptSubmit reminder now appends a standing
[ROLE] You are the manager — delegate, do not implement directly.line alongside the existing[SKILL?]/[HINT]payload
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 | convention | e2e | rules | skills | spec | teams | guide | memory | my-claude | manager | plugin-update | provider-switch | task-board-init | 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.
Docs: think-short
brewtools
Fixed
- think-short:
SKILL.mdstill listedfamily-roots.mjsas a required asset and smoke-tested it, but the file was deleted in v4.0.0's family-roots purge — every install hit a false❌ missing family-roots.mjs. Removed the 3 stale references; asset list and smoke test now match the actual 3-script + prompt.md asset set.
v4.0.1 (2026-06-30)
Docs-only follow-up to v4.0.0 — purges leftover v3.19.0 task-system documentation debt from the site so docs match the real plugin.
Docs: brewcode overview | agents | grepai | superreview | getting-started | quickstart | installation
docs
Removed
- workflow page: deleted
brewcode/workflow.mdx(described the removed KNOWLEDGE/plan/start/handoff pipeline) + itsnavigation.tsentry - dead skill/agent refs: purged all links to removed skills (
/brewcode:setup,/brewcode:plan,/brewcode:start,/brewcode:standards-review,/brewcode:teardown) and removed agents (bc-coordinator,bc-knowledge-manager) across getting-started, quickstart, installation, overview, agents, and skill/agent pages - task-system framing: removed dead KNOWLEDGE auto-accumulation / post-task / coordinator-loop / "infinite task" descriptions
Changed
- brewcode counts reconciled: 9 skills (spec, grepai, convention, rules, superreview, skills, agents, teams, e2e), 10 agents, 2 hooks; suite total 4 hooks
- grepai: documented self-install behavior on its MDX page
- superreview: now documented as the generator of the project-tailored deep-review skill (review + standards merged)
v4.0.0 (2026-06-30)
MAJOR / breaking — injection-hook architecture removed across all plugins; plugin-root now resolved natively via
${CLAUDE_PLUGIN_ROOT}.
Docs: brewcode hooks | brewcode overview | grepai | superreview | skill-creator | agent-creator | brewdoc hooks | brewtools hooks | think-short | manager
brewcode
Removed
- pre-task.mjs: deleted; entire family-roots injection machinery removed (
hooks/lib/family-roots.mjs,.claude/scripts/check-family-roots.sh+ bump-version drift guard) - dead mode system:
getActiveMode,modes.json,[MODE:]/[EFFORT: terse-light]injections, SID/teams injection all removed;getActiveModedropped fromhooks/lib/utils.mjs - grepai always-on hooks:
grepai-session.mjs+grepai-reminder.mjsderegistered fromhooks.json; orphan sources deleted - skills/skills: Mode Switcher skill-generation pattern removed
Changed
- plugin-root (breaking): resolved NATIVELY via
${CLAUDE_PLUGIN_ROOT}substituted in each agent.mdat Task spawn — no more hook injection ofBC_PLUGIN_ROOT; all agents converted - forced-eval.mjs: stripped of mode/effort/plugin-root injection — now injects only the constant
[SKILL?]reminder - session-start.mjs: keeps version-check + plan-symlink + permission tag; mode/effort/root injection removed
- brewcode now registers exactly 2 hooks (forced-eval, session-start)
Added
- grepai self-install: self-contained assets (
skills/grepai/assets/{grepai-session.mjs,grepai-reminder.mjs,INSTALL.md});/brewcode:grepaidetects + installs hooks into project.claude/grepai/hooks/and merges into.claude/settings.json(jq + python3, no clobber), default project scope, reports - superreview skill (+ docs page)
brewdoc
Removed
- pre-task.mjs + lib/family-roots.mjs: deleted — brewdoc now ships ZERO hooks (
hooks.jsonis{"hooks":{}})
Changed
- bd-auto-sync-processor: resolves its root natively via
${CLAUDE_PLUGIN_ROOT}
brewtools
Removed
- pre-task.mjs + lib/family-roots.mjs: deleted;
skills/think-short/assets/family-roots.mjsremoved - skills debate, skill-toggle, agent-toggle: removed entirely (incl.
_shared/toggle)
Changed
- session-start.mjs: stripped of
BT_PLUGIN_ROOTinjection + session-id display (manager HARD-wall awareness kept) - think-short: task hook injects
${injection}\n\n${tool_input.prompt}, copies 4 files; E2E suite updated (family-roots tests removed) - brewtools registers 2 hooks (session-start, manager-prompt)
docs
Changed
- root
CLAUDE.md, all plugin READMEs,brewcode/docs/*,brewdoc/docs/hooks.md,web/docsMDX (hooks/overview/think-short/grepai/skills/agents) andbrewdoc/skills/guide/references/*updated to new hook inventory + native${CLAUDE_PLUGIN_ROOT}+ grepai self-install + Mode Switcher removal
v3.19.5 (2026-06-29)
brewcode
Removed
- session-start.mjs: dead lock-detection block removed (injected stale bc-coordinator/PLAN.md instructions)
- utils.mjs: 16 dead task/lock exported functions removed (backed deleted hooks)
- docs: remaining plan/start/KNOWLEDGE/PLAN.md stale refs cleaned from commands.md, file-tree.md, README.md
v3.19.4 (2026-06-29)
brewcode
Removed
- lib/knowledge.mjs: deleted (orphaned, zero imports)
- KNOWLEDGE.jsonl.template + brewcode.config.json knowledge settings: removed from setup
- report templates: brewcode/templates/reports/ deleted (only consumer was bc-coordinator)
- session-start.mjs: PLAN.md/KNOWLEDGE.jsonl handoff injection removed
- utils.mjs: DEFAULT_CONFIG.knowledge block + validateConfig knowledge checks removed
- all remaining stale references to deleted hooks (post-task, pre-compact, stop) cleaned from docs
v3.19.3 (2026-06-29)
brewcode
Removed
- bc-coordinator, bc-knowledge-manager agents: removed (coupled to deleted start skill)
- setup templates: PLAN.md.template + phase templates removed; setup now generates SPEC + KNOWLEDGE templates only
- hooks: post-task.mjs, pre-compact.mjs, stop.mjs deleted (dead start/coordinator flow); hooks.json PostToolUse/PreCompact/Stop entries removed; pre-task.mjs stripped of lock/KNOWLEDGE injection; utils.mjs isCoordinator() + coordinator system-agent entries removed
- docs/hooks.md: removed (entirely about start/coordinator flow)
- all remaining /brewcode:plan and /brewcode:start references purged from agents, README, docs, setup skill
v3.19.2 (2026-06-29)
brewcode
Removed
- teardown skill: brewcode:teardown removed
v3.19.1 (2026-06-29)
Docs: brewcode overview | setup skill | convention skill | e2e skill | rules skill | skills skill | agents skill | teams skill | teardown skill | standards-review skill
Partial revert of v3.19.0: only
plan+startstay removed. Everything else the strip removed is restored.
brewcode
Restored
- skills (9): setup, convention, e2e, rules, skills, agents, teams, teardown, standards-review — re-added; brewcode now ships 11 skills (these + spec + grepai)
- internal agents: bc-coordinator, bc-knowledge-manager, bc-rules-organizer
- hooks: pre-task.mjs, post-task.mjs, pre-compact.mjs, stop.mjs + lib/knowledge.mjs; session-start.mjs / utils.mjs task/lock/KNOWLEDGE logic
- templates: reports/ and skills/review/ template dirs
- internal docs: brewcode/docs/{flow,hooks,commands}.md
Removed
- plan + start skills: stay stripped — infinite task-execution flow retired; spec hands off to the
developeragent
v3.19.0 (2026-06-29)
Docs: brewcode overview | spec skill | grepai skill
brewcode
Removed
- task execution system: stripped plan, start, setup, rules, convention, teardown, teams, standards-review, skills, agents, e2e (11 skills removed; 2 kept: spec + grepai)
- internal agents: bc-coordinator, bc-knowledge-manager, bc-rules-organizer removed
- task-system hooks: pre-task.mjs, post-task.mjs, pre-compact.mjs, stop.mjs removed
- lib/knowledge.mjs: removed
- utils.mjs: task/lock functions removed; also dropped dead
knowledge/agents.systemconfig andisSystemAgent - session-start.mjs: KNOWLEDGE.jsonl + lock-file handoff logic stripped
- templates: reports/ and skills/ template dirs removed
- internal docs: brewcode/docs/{flow,hooks,commands}.md deleted; file-tree.md + grepai.md rewritten to current state
Changed
- brewcode reframed: lean skill + prompt-injection toolkit (spec authoring + semantic code search via grepai)
- spec skill: no longer depends on
/brewcode:setuptemplates or/brewcode:plan; hands the finished SPEC to thedeveloperagent - grepai docs: injection points updated for macOS CC (PreToolUse:Bash; native Grep/Glob removed)
v3.18.4 (2026-06-27)
Docs: brewdoc overview | brewtools overview | brewcode overview
Native Grep/Glob tools were removed on the macOS Claude Code build (v2.1.117+); code search now runs through Bash (shadow
grep->ugrep,find->bfs,rg). Agents that search MUST listBashin theirtools:.
brewcode
Fixed
- agent-creator: added
Bashtotools:— could no longer grep/find without it on macOS CC builds.
brewdoc
Fixed
- bd-auto-sync-processor: added
Bashtotools:— search now works on macOS CC builds.
brewtools
Fixed
- text-optimizer: added
Bashtotools:— search now works on macOS CC builds.
v3.18.3 (2026-06-27)
Docs: brewcode hooks
brewcode
Fixed
- grepai-reminder hook: retargeted from dead
PreToolUse:Glob|GreptoPreToolUse:Bash. Native Grep/Glob tools were removed on the macOS Claude Code build -- code search now runs through Bash (shadowgrep->ugrep,find->bfs,rg). The hook now gates on a search-command regex (grep/egrep/fgrep/ugrep/rg/ag/ack/find/bfs) so the grepai reminder still fires only on actual searches;.grepai/index.gobguard + 60s throttle preserved.
v3.18.2 (2026-06-27)
Docs: brewui overview
Brewui no longer ships any hooks -- they were dead weight (brewui has no skills/agents and never registered hooks in its manifest).
brewui
Removed
- hooks: deleted the entire
brewui/hooks/directory (hooks.json,session-start.mjs,pre-task.mjs,lib/utils.mjs). brewui registered no hooks inplugin.json, so these files were inert.BU_PLUGIN_ROOTis no longer injected (nothing consumed it). Docs scrubbed accordingly (brewui overview, brewui skills page, brewdoc guide hook catalog).
v3.18.1 (2026-06-27)
The manager-prompt.mjs hook now injects BOTH codeword groups (manager + review) together instead of only the first match.
brewtools
Fixed
- manager hook: the
manager-prompt.mjsUserPromptSubmit hook injected only the FIRST matched codeword, so typing both a manager codeword (++m/++mp) and a review codeword (++r/++rr) in one prompt silently dropped the review block. Now the two groups are detected independently and BOTH blocks are injected together (manager first, then review), regardless of how many codewords are typed. Longer prefixes still win within each group (++mp>++m,++rr>++r).
v3.18.0 (2026-06-27)
Docs: brewui overview | brewui skills | brewcode agents | brewdoc auto-sync
Documentation sync to reality: internal agents hidden from public docs, brewui shipped as an empty-but-installable placeholder, and skill/agent counts recomputed across all doc levels. Skill total is now 32; shipped agents 16.
brewui
Changed
- plugin: now ships as an empty, installable placeholder for future UI/visual/creative tools. The
image-genskill was removed andskills/is empty. Installing brewui still registers its hooks and reserves the/brewui:*namespace, with no commands yet. - docs: overview, skills, and agents pages rewritten to a "coming soon" placeholder; README, plugin manifest, and marketplace entry updated to the placeholder description.
brewcode
Changed
- agents:
bc-coordinator,bc-knowledge-manager,bc-grepai-configurator, andbc-rules-organizerare now documented as internal (spawned only by skills and hooks). Their dedicated doc pages were removed; summary tables, navigation, the architecture overview, and the README mark them internal with no deep links. - docs: removed a spurious
/brewcode:debaterow from the skill tables (debate is a brewtools skill); the brewcode skill count stays 13 and the suite total is recomputed to 32.
brewdoc
Changed
- agents:
bd-auto-sync-processordocumented as internal across the README, overview, the auto-sync skill page, and the guide catalog.
brewtools
Changed
- skill-toggle: running example updated from the removed
brewui:image-gento the existingbrewdoc:md-to-pdf.
v3.17.0 (2026-06-27)
Docs: brewcode hooks | brewtools manager
Hook modernization for Claude Code SDK 2.1.195. All changes are backward-compatible and presence-guarded -- zero behavior regression.
brewcode
Changed
- hooks:
session-startnow logspermission_modefor audit and bounds itsadditionalContextto ~9K (10K disk-spill safety threshold, CC 2.1.174).pre-taskskips KNOWLEDGE injection whenpermission_mode === 'plan'.forced-evalbounds itsadditionalContextto ~9K.
Fixed
- post-task: hardened subagent-failure detection to read
tool_result ?? tool_response-- the legacy field stays primary (zero regression) while future-proofing against the documented SDK field rename.
brewtools
Changed
- hooks:
session-startlogspermission_mode.manager-promptbounds injectedadditionalContextto ~9K at both output sites (codeword detection + HARD-wall logic UNCHANGED).hardmode-guardre-verified on 2026-06-27 that theagent_id/agent_typemain-vs-subagent discriminator still HOLDS on CC 2.1.195 (defensive comment added).
brewui
Changed
- hooks:
session-startlogspermission_mode.
v3.16.6 (2026-06-27)
Docs: hook-creator | brewcode hooks
brewcode
Changed
- docs: hooks reference synced to Claude Code 2.1.195 (empirically verified). Documented all 5 hook entry types -- added the previously-missing
mcp_tool(invokes + awaits a configured MCP server tool;server/tool/inputwith${...}interpolation; returned text parsed as command-style stdout JSON), and correctedprompt/agentto allow/block gates (LLM evaluates allow vs block+reason; their text is NOT injected into model context) rather than context injectors. Clarifiedhttp(POSTs full payload via axios, blocks for JSON response; user-prompt field namedprompt). Added control facts: hooks cannot select/change the model;updatedInputrewrites tool args on PreToolUse only (silently ignored on UserPromptSubmit).pre-task/post-taskmatchers shown asTask|Agent.
v3.16.5 (2026-06-18)
brewdoc:publish now auto-renders Markdown files as styled pages. A .md/.markdown file path is published via /api/html?format=markdown (pretty rendered) instead of /api/files (raw download). All other file types are unchanged — only Markdown files switch to the rendered path.
v3.16.4 (2026-06-17)
Provider-switch model-data accuracy pass: refreshed every provider model in the docs, not just GLM. Updated to Claude Opus 4.8, corrected GPT-5.5 to native OpenAI API (was mislabeled OpenRouter-only) and added GPT-5.5 Codex, set GLM-5.2 to 1M context with SWE-bench Pro 62.1% (self-reported) and dropped the unverified "#1" claim, and fixed MiniMax to MiniMax-M3 (1M). All vendor SWE-bench figures now carry a "(self-reported)" label since independent leaderboards had not yet listed the newest 2026 models.
v3.16.3 (2026-06-17)
Hotfix: finalizes the mobile horizontal-overflow fix.
- Moved the wide SWE-bench comparison table out of the DaisyUI
.alertcallout on the provider-switch page so it renders as a plain table that scrolls horizontally within itself, eliminating page-level overflow at mobile widths. Verified at 390px (page scrollWidth == viewport width).
v3.16.2 (2026-06-17)
Hotfix: completes the mobile horizontal-overflow fix from v3.16.1.
- Wide tables inside DaisyUI
.alertcallouts (e.g. the provider-switch SWE-bench table) now scroll within the callout instead of forcing page-level horizontal overflow at mobile widths.
v3.16.1 (2026-06-17)
Docs-only release: full 3-level documentation sync.
- Reconciled skill/agent/hook counts across all docs to ground truth (33 skills, 16 agents, 9 lifecycle hooks).
- Fixed provider-switch web-doc alias:
claudedeepseek->claudeds(matches the real skill alias). - Fixed mobile horizontal-overflow on documentation pages (DaisyUI
.alertgrid now usesminmax(0, 1fr)+min-width: 0). - Removed final GLM/Z.ai residue (
cogview) from image-gen provider discovery.
v3.16.0 (2026-06-17)
brewui
Changed
- provider-switch model refresh: updated the model catalog -- GLM bumped to GLM 5.2, Qwen to Qwen 3.7-plus, MiniMax to MiniMax-M3; DeepSeek stays on deepseek-v4-pro (unchanged); OpenRouter catalog refreshed.
Removed
- complete GLM Vision removal: dropped the
glm-design-to-codeskill, theglm-zai-specialistandglm-openrouter-specialistagents, theglm-design-to-code-trial, and the Z.ai provider from image-gen.
v3.15.0 (2026-06-14)
brewtools
Added
- manager: two new prompt-injection codewords.
++rr(Regression Review) injects anti-regression review discipline -- after each significant phase, review for no-regression + project standard + correctness, two-phase review->double-check->fix, with a mandatory final cross-review at task end.++r(Review) injects a lighter two-phase multi-agent review (review->double-check->fix) after each significant change. Both are codeword-only (no ambient/HARD-wall injection); detection order is++mp->++m->++rr->++r(longest-prefix first).
Changed
- manager docs: every codeword table across all doc levels (manager skill page, prompt-injection concept page, SKILL.md, READMEs, CLAUDE.md) now carries a plain-English decode for all four codewords (
++m= Manager,++mp= Manager for Plan,++rr= Regression Review,++r= Review).
v3.14.5 (2026-06-14)
brewtools
Fixed
- docs: removed Russian text that had leaked into rendered examples and trigger tables on the manager and think-short pages -- all examples and invocations are now English. The skills still accept Russian natural language; that is now noted in one English line per page pointing to the skill's SKILL.md for the full RU+EN trigger list. Repo-wide sweep confirms zero Cyrillic in any docs MDX.
v3.14.4 (2026-06-14)
Docs: brewtools:manager
brewtools
Changed
- docs (manager): surfaced the HARD wall for non-technical readers -- new visible "The HARD wall" section with a plain-language Callout, a concrete blocked-edit example (main session tries to edit a file -> blocked with a deny message -> delegates to a subagent that has full freedom), and an at-a-glance allowed/blocked table. Deep mechanics remain in the technical spoiler.
v3.14.3 (2026-06-14)
Docs: brewtools:manager | Prompt Injection
brewtools
Changed
- docs (manager): rewrote the manager page user-first. The top now shows only the essentials -- a plain-language intro, a highlighted before/after example (you type
++m <task>-> Claude receives an injected Manager contract + your task), simple codeword and everyday-command tables. All deep technical detail (HARD wall internals, tool buckets, strict/balanced, prompt-resolution chains, scopes, full intent reference) moved under collapsible<details>spoilers so a non-technical reader can ignore it.
v3.14.2 (2026-06-14)
Docs: Prompt Injection
docs-site
Fixed
- Tabs component: tab panels now initialize on direct page loads, not only on view-transition navigations. The init logic was extracted into
initTabs()and is invoked immediately AND onastro:page-load(idempotent via thedataset.initializedguard). Previously, on a hard load the tab group never hydrated -- both panels rendered stacked and tab switching was inert. Fixes the Tabs on the new Prompt Injection page plus installation and brewcode overview.
v3.14.1 (2026-06-14)
Docs: Prompt Injection | brewtools:manager
brewtools
Added
- docs: new "Prompt Injection" concept page explaining the
++m/++mpcodeword mechanism -- how theUserPromptSubmithook injects a full Manager operating contract viaadditionalContext(invisible to the user, fully in the model's context), the prompt-resolution fallback chain, and the codeword/HARD-wall trigger table. Two-way cross-links with the manager skill page.
Fixed
- docs: deduped brewtools skill sidebar
orderfrontmatter (3119 collision -> unique 3120-3125).
v3.14.0 (2026-06-14)
brewtools
Added
- task-board-init: generator skill that deploys a self-contained file-based Kanban into ANY target repo via multi-agent analysis. Four steps: (1) multi-agent repo analysis -> domains/id-prefixes, source-path exclusions, release style, doc language (confirmed via AskUserQuestion); (2) generates a parametrized
.claude/agents/task-tracker.mdcurator; (3) generates an on-demand.claude/skills/task-board/dashboard (view/add/move/backlog/groom, delegates heavy passes to task-tracker); (4) writes a paths-scoped.claude/rules/tasks.md(board canonical, folder==status, lifecycle, + run-task-tracker-at-task-start rule kept out of CLAUDE.md), scaffolds.claude/features/**, and runs a multi-agent doc sweep that migrates legacy backlog/feature docs into the board. Mirrors the brewpage-app/yasna-bot etalons.
Changed
- docs: full 4-level documentation pass for task-board-init (new MDX page, navigation.ts, plugin + repo README, guide catalog) and manager (clarified hard-one-shot auto-revert + manager-run no-wall-toggle distinction).
v3.13.0 (2026-06-14)
Docs: brewtools:manager
brewtools
Added
- manager: HARD Delegation Mode — opt-in PreToolUse wall installed per-project via
/brewtools:manager on. Blocks Write/Edit/NotebookEdit/WebFetch/MCP-write and mutating Bash in the main session; subagents stay free (agent_id linchpin). Self-contained guard (zero plugin imports), fail-open. - manager: new intents
on(install+arm),off(disarm, state-only),uninstall(deregister),level <strict|balanced>(Bash/WebSearch/MCP policy). Install-once + state-gate: guard registered in.claude/settings.local.json, runtime-gated by projectstate.json {hard, level}. Wall is PROJECT-ONLY. - manager: session-start banner
⛔ MANAGER HARD wall ONwhen armed.
Changed
- manager:
++m/++mpcodewords now ALWAYS fire (removed theenabledstate gate); when the wall is armed the Manager (full) block also auto-injects every turn.statusrewritten as the main explainer (codewords + wall state + level + toggle).
Notes
- Migration: legacy
state.json {enabled}is ignored; the wall defaults OFF (opt-in). Re-run/brewtools:manager onto arm.
v3.12.3 (2026-06-14)
Docs: brewcode/hooks
Theme: doc-accuracy follow-up to v3.12.2 — the public hooks page still described
forced-evalvia the oldupdatedInputchannel. Found by a project-wide final review that otherwise confirmed all 15 hooks, agents, and manifests are clean.
brewcode
Changed
- Docs match code: the
brewcode/hooksMDX page documentedforced-evalas emittingupdatedInputand "returning the modified prompt" — wrong since v3.12.2. Corrected toadditionalContext(UserPromptSubmit cannot rewrite the prompt), and the payload description updated to the current default ([SKILL?]skill-check always-on + light[HINT]; full Manager mode on-demand via++m). - Guide tightened:
topic-customizationno longer implies UserPromptSubmit can transform the prompt, and scopesupdatedInputto PreToolUse/PermissionRequest.
Final-review result: no remaining hook output-channel bugs across brewcode/brewdoc/brewtools/brewui;
hook-creator/agent-creatoragent guidance verified authoritative; all hook registrations and custom user hooks valid.
v3.12.2 (2026-06-14)
Theme: fix a silent
UserPromptSubmithook bug found via live debug-log analysis, and correct the hook-creator agent's output-channel guidance so the bug can't recur.
brewcode
Fixed
forced-eval.mjsskill-activation hook now actually reaches the model. It injected its[SKILL?]skill-check reminder viaupdatedInput.prompt, which Claude Code 2.1.x silently ignores onUserPromptSubmit(confirmed in a live debug log:unrecognized keys (ignored): updatedInput). Migrated to the supportedhookSpecificOutput.additionalContextchannel — the reminder now lands every turn. All skip logic (slash-commands, meta-replies, empty prompts) and the effort-level prefix are preserved.- Softer default reminder. The hook's default (no active mode) no longer asserts a hard always-on
[DELEGATE] You are a MANAGER … never implement directly; it now emits a light[HINT]to prefer delegation, with full Manager framing left to the on-demand++mcodeword (brewtools:manager). Removes redundancy with the manager skill and global instructions.
Changed
hook-creatoragent corrected. Its per-event output-channel reference was inaccurate (impliedupdatedInputwas a general context channel). Replaced with an authoritative per-event matrix:additionalContextfor SessionStart/UserPromptSubmit/PreToolUse/PostToolUse,updatedInputonly for PreToolUse/PermissionRequest,updatedToolOutputfor PostToolUse, andStop/SubagentStopacceptadditionalContextsince CC 2.1.163 — preventing this class of bug in generated hooks. An audit of all 15 hooks across the four plugins confirmed no other channel violations.
v3.12.1 (2026-06-13)
Docs: brewtools/skills/manager
Theme: multi-agent review hardening of v3.12.0
brewtools:manager— security + correctness fixes and repo-wide count consistency.
brewtools
Fixed
- Path-traversal guard:
resolvePromptPath(andresolvePrompt) now validatescopeandmodeagainst an allowlist before building a filesystem path — closes a traversal vector reachable via the skill'sedit/resetactions (which callunlinkSync/writeFileSync). - Lock safety:
writeStatenow throws instead of writing unlocked if the lock was not acquired, andreleaseLocknever unlinks a lock it does not own. Same guard applied to the shared_shared/toggle/deny.mjs(agent-toggle) which carried the identical latent bug. - Codeword anchoring:
++m/++mpnow match only as standalone tokens (anchored regex), so prompts like++moneyorx++mxno longer trigger Manager injection.++mp-before-++mordering preserved. - Override robustness: the prompt-text extractor accepts both
```and~~~fences, and the skill'seditaction seeds overrides un-wrapped — fixing silent truncation when an override contained a backtick fence. - Honest mode state: invalid
modein a state file is clamped tofull;statusnow labels the stored mode as an informational default (the codeword alone selects the injected block) instead of an inert "active mode".
Changed
- Count consistency: corrected stale skill/agent/hook counts across
brewtools/README.md(version + skills), rootREADME.md(brewtools 12 skills, missing rows added),getting-started.mdx,brewtools/skills.mdx(reconciled to all 12 skills incl. manager),installation.mdx(suite aggregate), the guide hook catalog (brewtools 3 hooks +manager-prompt.mjs), and projectCLAUDE.md.
v3.12.0 (2026-06-13)
Docs: brewtools/skills/manager
Theme: new
brewtools:managerskill + aUserPromptSubmithook that turns a short codeword into an on-demand, auto-injected "delegate-everything" Manager prompt — controllable by natural language, editable, and surviving plugin updates.
brewtools
Added
brewtools:managerskill — intent-driven control plane (RU+EN) for Manager mode. Turns natural language intoon/off/status/mode <full|planmode>/edit/reset(with--scope project|global), and runs any bare prompt as an inline Manager (builds a TaskGraph, delegates to the best-matching agent).statusprints the live state and the exact English block injected for each codeword.UserPromptSubmithook (manager-prompt.mjs) — detects a codeword anywhere in the prompt and injects the matching Manager block viaadditionalContextfor the same turn:++m-> full Manager block,++mp-> full + Plan Mode addon (++mpis tested before++mto avoid prefix collision). State-gated (enabled !== false), zero overhead when off or no codeword, and fully fail-safe — any error injects nothing and never breaks the prompt.- Editable, update-proof prompts. State resolves project (
.claude/brewtools/manager/state.json) -> global (~/.claude/manager/state.json) -> default{enabled:true, mode:"full"}. Prompt text resolves project override -> global override -> plugin default (references/{full,planmode}.md). Global writes go through bundled Node helpers (atomic lock + tmp + rename) since~/.claude/*is protected for the Write/Edit tools.
v3.11.0 (2026-06-12)
Theme: rebuild
brewtools:text-humanfrom a code-only cleaner into a universal, context-aware, flow-based humanizer backed by web-researched and adversarially-validated pattern catalogs.
brewtools
Changed
- text-human is now universal: works on source code, comments, docstrings/JavaDoc, technical docs, commits/PRs, published articles, and reddit/chat text -- not just code. A greedy flow-detection phase picks ONE of five domain flows from context (prompt + extension + content sniff) and announces it:
code,docs,social,article,mixed. - Two-pass model: PASS 1 strips validated AI tells, tiered by reliability -- HIGH-tier acts on a single hit, MED-tier acts only on co-occurring density, and behaviour-changing items (hallucinated refs, fabricated tickets, try/except-everything) are surfaced for review and never auto-edited. PASS 2 injects register-fit human style, gated per domain.
- Hard guards: human-injection is OFF for code / API docs / formal-contract; a global guard forbids injecting typos, errors, or fabricated references in any flow. Positioned honestly as "removes AI surface artifacts and fits register" -- it does not claim to detect authorship.
- Universal arguments: accepts a path, commit hash, folder, free-text prompt, path + prompt, or no args. The prompt both selects/overrides the flow and adds custom rules.
Added
- Validated pattern catalogs (
reference/ai-patterns.md,reference/human-patterns.md) and five flow references (reference/flows/{code,docs,social,article,mixed}.md). Catalogs are sourced from corpus studies, Wikipedia AI-cleanup consensus, and practitioner research, then filtered to drop high-false-positive folklore (em-dash, rule-of-three, smart quotes, "too clean" code). The existing per-language references (java/python/typescript) are retained and used by thecodeflow.
v3.10.0 (2026-06-11)
Docs: brewcode/agents/skill-creator | brewcode/agents/agent-creator | brewcode/agents/hook-creator | brewcode/hooks | brewtools/skills/plugin-update | faq | installation
Theme: sync the plugin suite with Claude Code 2.1.144-2.1.173 — remove false platform claims, document new features, shorten skill/agent descriptions, and deep-compress LLM-facing docs.
repo
Fixed
- plugin list claim was false: the suite documented that
claude plugin listdoes not exist. It has existed since CC 2.1.163.brewtools:plugin-updatenow usesclaude plugin list --jsonas the primary discovery path (objects:id, version, scope, enabled, installPath, installedAt, lastUpdated, mcpServers?;versionmay be"unknown"; prefixunset CLAUDECODE &&inside a session).discover-plugins.shis kept as the fallback for CC < 2.1.163. Fixed in SKILL.md, references, README,faq.mdx,installation.mdx, and the plugin-update MDX page. - "subagents cannot spawn subagents" was false: CC 2.1.172 allows nesting up to 5 levels. Corrected in
CLAUDE.md,agent-creator,skill-creator, guide refs, and MDX. Framed correctly: CC allows it, but the brewcode workflow still requires spawning from the main conversation (the 2-step report protocol binds the lock to one session and delivers report/coordinator instructions there; nested spawns bypass session binding, KNOWLEDGE injection, and the coordinator loop). - "Stop additionalContext does nothing" was false: Stop and SubagentStop hooks support
hookSpecificOutput.additionalContextsince CC 2.1.163. Corrected inhook-creatorandhooks.mdx.
brewcode
Added
- CC 2.1.144-2.1.173 platform facts across creator agents:
disallowed-toolsskill frontmatter (2.1.152),/reload-skills(2.1.152), root-levelSKILL.mdwith noskills/subdir (2.1.142),MessageDisplayhook event (2.1.152), SessionStartreloadSkills/sessionTitleoutputs (2.1.152),--safe-mode/CLAUDE_CODE_SAFE_MODEanddisableBundledSkills/CLAUDE_CODE_DISABLE_BUNDLED_SKILLS(2.1.169), post-session hook (2.1.169, self-hosted runner only — NOT a hooks.json event), and Fable 5 (claude-fable-5, Mythos-class above Opus, CC 2.1.170) added to agent model lists. - session-start hook sets sessionTitle:
session-start.mjsnow setshookSpecificOutput.sessionTitleto the active brewcode task name when a task lock exists (CC 2.1.152; ignored by older CC).
Changed
- Shorter skill/agent descriptions: every skill description trimmed to <= 120 chars (optimal ~100) and every agent description to <= 100 chars (optimal ~80), keeping the strongest distinct trigger keywords (EN + RU where present).
<example>blocks removed from creator-agent frontmatter. The skill/agent generators (skill-creator, agent-creator,skills,agents,teams,setup,e2e) now emit descriptions within these caps.
Optimization
Changed
- Deep/standard token compression of LLM-facing docs. Top files compressed (chars, deep batch + key agents):
| File | Before | After | Saved |
|---|---|---|---|
| brewcode/docs/flow.md | ~72.3K | ~57.5K | -20% |
| brewcode/docs/grepai.md | ~49.2K | ~16.8K | -66% |
| brewcode/docs/commands.md | ~39.4K | ~17.5K | -55% |
| brewcode/docs/hooks.md | ~30.7K | ~12.5K | -58% |
| brewcode/agents/skill-creator.md | ~50.8K | ~38.6K | -25% |
| brewcode/agents/hook-creator.md | ~44.8K | ~26.2K | -43% |
| brewcode/agents/agent-creator.md | ~30.1K | ~21.8K | -23% |
| brewui/skills/glm-design-to-code/SKILL.md | ~34.4K | ~21.5K | -37% |
Plus standard-mode passes on the remaining top-25 + Phase 1-2 touched files. Deep+key set: ~430.9K -> ~330.8K chars (~25K tokens, -23%). Frontmatter and all facts preserved; every compressed file passed a comprehension gate (32/32 questions) and path-existence check.
Next (deferred)
MessageDisplayhook adoption in brewcode hooks (2.1.152) — documented, not yet wired.- Nested subagents inside the brewcode workflow (2.1.172) — requires session-aware lock handling in
pre-task.mjs/post-task.mjsfirst.
v3.9.2 (2026-05-16)
repo
Fixed
- version sync restored: v3.9.1 was tagged with only
brewdoc/.claude-plugin/plugin.jsonbumped to 3.9.1; the other 5 version files (brewcode/brewtools/brewuiplugin.json,.claude-plugin/marketplace.json,brewcode/package.json) stayed on 3.9.0, breaking the cross-plugin version check used by/brewtools:plugin-update. v3.9.2 re-runsbump-version.shso all 6 JSON files share one version. No code changes in any plugin — version-sync release only.
v3.9.1 (2026-05-15)
brewdoc
Changed
- publish skill — owner-token semantics:
brewdoc/skills/publish/SKILL.mdHEADER comment in 5 history-file scaffolds now readsOwner tokens allow delete (no in-place PUT for sites; html/json/kv support PUT). Keep this file private.(wasOwner tokens allow update/delete. ...). AI agents reading the prior wording inferredPUT /api/sites/{ns}/{id}exists and hit 405; the corrected text disambiguates which resources accept PUT.
v3.9.0 (2026-05-12)
Docs: brewcode/skills/start | brewcode/agents/reviewer | brewcode/agents/architect | brewcode/agents/developer | brewtools/skills/plugin-update
brewcode
Added
- effort.level propagation:
pre-task.mjsandforced-eval.mjsnow read effort.level from session state and prepend an idempotent[EFFORT: <level> | MODE: terse-<variant>]line to delegated prompts. Downstream subagents inherit the parent's effort budget without explicit relay. /goalanchor in start:brewcode/skills/start/SKILL.mdStep 2 now anchors the user-stated goal as/goalfor stable reference across phases and handoffs.- CRITICAL: PRESERVE handoff emphasis:
pre-compact.mjswrites handoff blocks withCRITICAL: PRESERVEprefix; the summarizer empirically retains prefixed content at higher fidelity. Wording softened to avoid alarmist tone while keeping the emphasis hook. - ❌ CRITICAL KNOWLEDGE prefix:
pre-task.mjsprefixes injected KNOWLEDGE entries with❌ CRITICAL:for❌priority items, improving recall in long contexts. - mcpServers frontmatter (CLI-direct fallback):
reviewer.md,architect.md,developer.md,bc-grepai-configurator.mdnow declaremcpServers: [grepai]so the agent inherits the MCP server even when launched via CLI-direct flow (bypassing the parent session's auto-load).
brewtools
Added
- plugin-update Phase 2b (token-details table):
plugin-update/SKILL.mdadds a per-plugin token-cost table populated fromclaude plugin --helpexit-code precheck; degrades gracefully if--helpis unavailable on the running CC version. - plugin-update Phase 5b (prune): post-update prune of stale plugin cache versions, gated by the same
--helpprecheck. No-op on unsupported CC versions. - effort=low auto-enables think-short=light:
brewtools/hooks/session-start.mjsandpre-task.mjsdetect effort.level=low at session/task boundaries and auto-enablethink-short=lightfor the session, guarded by a session-marker to stay idempotent across reruns.
docs
Added
- agent/skill/hook-creator MDX: worktree.baseRef and bypassPermissions callouts added to
web/docs/src/content/docs/brewcode/agents/{agent,skill,hook}-creator.mdxclarifying baseRef pin semantics and the bypassPermissions guard interplay.
Notes
- v3.8.0 Migration & Rollback corrected post-release: the project-scope backup path (
<cwd>/.claude/brewtools/toggle-state.json.bak.pre-migration-<TS>) was added, and the unverifiedclaude plugin update --versionflag was replaced with a marketplace tag-ref pin (marketplace add ...#vX.Y.Z). No code change in v3.8.0; doc-only correction applied before this release.
v3.8.0 (2026-05-12)
Docs: brewtools/skills/skill-toggle | brewcode/skills/grepai | brewcode/skills/teardown
All plugins
Fixed
- hooks.json exec form (CRITICAL): all four plugins (
brewcode,brewdoc,brewtools,brewui) hadhooks.jsonentries using the broken dualcommand+argsform which Claude Code 2.1.139 silently ignored. Converted every entry to the proper exec form:"command":"node","args":["${CLAUDE_PLUGIN_ROOT}/hooks/<file>.mjs"]. Restores SessionStart, PreToolUse, PostToolUse, PreCompact, Stop hook dispatch across the suite.
brewtools
Added
- skill-toggle settings.json migration (CC 2.1.115+): skill enable/disable now uses the official
~/.claude/settings.jsonskillOverridesmechanism instead of file-rename (SKILL.md⇄_SKILL.md). Atomic writes (tmp + fsync + rename), lock-file identity check (PID + start-time), stale-lock recovery on crashed sessions. Survives plugin updates without filesystem mutation. - reapply-disables embedded migrator: one-shot SessionStart migrator detects legacy
toggle-state.jsonskill entries and rewrites them intoskillOverrides. Writes pre-migration backuptoggle-state.json.bak.pre-migration-<TS>BEFORE any deletion. Idempotent — no-op on subsequent sessions.
Changed
- skill-toggle helpers: new
helpers/directory consolidating settings.json read/write, lock management, and migration probes.
brewcode
Added
- grepai
alwaysLoad:true:mcp-check.shnow setsalwaysLoad:trueon the grepai MCP server via CLI-first / JSON-patch fallback (handles bothclaude mcpCLI presence and direct settings.json editing). Ensures grepai is hot at session-start without manual/mcpinvocation. - teardown
--fullmode (CC 2.1.115+):claude project purgeintegration with inlinePURGEconfirmation prompt, Claude Code version probe (claude --version), and partial-recoverability backup. Removes plugin data + project state in one atomic flow when user explicitly opts in.
Changed
- teardown SKILL.md: documents
--fullflag, version-gate behavior, and recovery path.
Migration & Rollback
- Auto-migration: On first SessionStart after upgrade, brewtools
reapply-disableshook migrates legacytoggle-state.jsonskill entries to~/.claude/settings.jsonskillOverrides. A backup is written totoggle-state.json.bak.pre-migration-<TS>BEFORE deletion. - Backup locations (BOTH scopes):
- Global scope:
~/.claude/plugins/data/brewtools-claude-brewcode/toggle-state.json.bak.pre-migration-<TS> - Project scope:
<cwd>/.claude/brewtools/toggle-state.json.bak.pre-migration-<TS>(one per project that had local skill disables)
- Global scope:
- Downgrade to v3.7.x — steps:
- Restore the pre-migration backup in whichever scope(s) you used:
cp toggle-state.json.bak.pre-migration-<TS> toggle-state.jsonat the matching path above. - (Optional) Manually remove the now-stale
skillOverridesblock from~/.claude/settings.json— v3.7.x ignores it, but the entries persist and may confuse future migrations or audits. - Re-pin to v3.7.19 by re-adding the marketplace at the tag ref:
claude plugin marketplace remove claude-brewcode && claude plugin marketplace add https://github.com/kochetkov-ma/claude-brewcode.git#v3.7.19 && claude plugin update brewtools@claude-brewcode(the--versionflag onclaude plugin updateis not a verified subcommand option — use the marketplace tag-ref pin instead).
- Restore the pre-migration backup in whichever scope(s) you used:
- agent-toggle unaffected — agent state still uses file-rename approach.
v3.7.19 (2026-05-12)
brewtools
Fixed
- plugin schema: removed
configblock fromplugin.json(Claude Code 2.1.139 dropped support; was a BLOCKER causing schema validation to fail). think-short defaults relocated to inlineDEFAULT_THINK_SHORTconstant inhelpers/state.mjs. Env-var overrideTHINK_SHORT_DEFAULTand global/project state files unchanged. - think-short env:
process.env.CLAUDE_SESSION_ID→process.env.CLAUDE_CODE_SESSION_ID(3 sites inSKILL.md). Template variable${CLAUDE_SESSION_ID}unchanged. - docs: updated fallback-chain documentation in MDX and SKILL.md to reflect removed plugin.json config block.
v3.7.18 (2026-05-12)
Docs: brewcode:setup
brewcode
Fixed
- setup.sh:
bash setup.sh review(andcollect_agentsfor global/plugin agents) aborted with rc=1 on the happy path underset -euo pipefail. The trailing filter pipelines at L164 (placeholder-warning filter) and L240/241/255/258 (agent-frontmattergrep | head | sed | tr | xargs) returned rc=1 when there was nothing to filter (no unresolved placeholders, noname:/description:line),pipefailpropagated through$(...), and the bare assignment tripped errexit. Appended|| trueto each pipeline. Downstream[ -n "$_unresolved" ]/[ -n "$name" ]already gate on empty result; defense-in-depthtest -f .../SKILL.mdat L183 still catches missing output. Completes v3.7.15 direction.
v3.7.17 (2026-05-01)
Docs: brewdoc:publish
brewdoc
Fixed
- publish docs: TTL default in
publish.mdx(L15, L78) andREADME.md(4 occurrences) said5 days— server truth is15(verified vsbrewpage-app application.yml: default-ttl-days: 15). Aligned with SKILL.md fixed in v3.7.16.
Added
- publish docs: "Companion tools" CardGrid section on the publish skill page — links to
brewpage-mcp(npm MCP server, multi-file support), OpenAPI Scalar spec atkochetkov-ma.github.io/brewpage-openapi, and the REST API base atbrewpage.app/api. Lets users discover non-Claude-Code paths to BrewPage Sites API.
v3.7.16 (2026-05-01)
Docs: brewdoc:publish
brewdoc
Fixed
- publish:
$PASS_Hwas defined as a single line OUTSIDE bash code fences while referenced INSIDE 5 separate curl blocks — each block ran in its own shell, so the variable was empty and password protection silently dropped on every upload. Replaced with per-blockPASS_H=()bash-array definition and"${PASS_H[@]}"quoted expansion in curl. Also fixed embedded-quote bug in the originalecho "-H \"X-Password: ...\""form (curl rejects the literal-quoted single arg). - publish: TTL default corrected from
5(stale doc) to15to match server config (brewpage-app application.yml: default-ttl-days: 15). Aligned in mode rules and limits sections. - publish: mode-detection rule tightened — explicit
ZIP → SITE / Directory → SITE / Single file → FILEand explicit fail-loud on directory with no.html(no silent guess).
Changed
- publish: trimmed redundant intro/duplicate notes (User-Agent note, duplicated ownerToken warning, etc.) to keep SKILL.md within line budget after PASS_H array additions across 5 blocks.
v3.7.15 (2026-04-29)
Docs: brewcode:setup | bc-rules-organizer
brewcode
Fixed
- setup.sh: placeholder warning now excludes known runtime placeholders (
{TIMESTAMP},{CONFIRMED_FINDINGS_JSON}, etc.) — previously every setup run emitted spurious "unresolved placeholders" warning even when all setup-time vars were resolved - README.md:
bc-rules-organizeragent table row corrected fromsonnettohaiku(was inconsistent with the actual agent frontmatter changed in v3.7.14)
Changed
- setup.sh: added inline comment documenting single-line constraint on env vars passed to
copy_review_skill(newlines in values break sed line-by-line substitution)
v3.7.14 (2026-04-29)
Docs: brewcode:setup | bc-rules-organizer | bc-coordinator
brewcode
Fixed
- bc-rules-organizer: model downgraded
sonnet→haiku— Sonnet inherited 1M context from parent session, triggering/extra-usagegate on Pro/Max OAuth accounts; Haiku is sufficient for rules classification - bc-coordinator: finalize mode now verifies artifact files exist on disk before building FINAL.md index; missing files marked
❌ missing, status downgraded tofailed(was silently ignored) - setup:
copy_review_skillreplacedcpwithsedsubstitution — 13 setup-time placeholders ({DETECTED_TECH},{AGENT_COUNT}, etc.) are now resolved at copy time; unresolved-placeholder warning added; sed delimiter switched from|to\x01to avoid collision with markdown table values - setup SKILL.md: ToolSearch preflight added at two sites (Phase 0 Step 2.5 + Phase 5) to load deferred
AskUserQuestionschema (required for Claude Code v2.1.107+)
Changed
- README: version field corrected from stale
3.4.29to current3.7.14 - bump-version.sh: now also updates
brewcode/README.mdversion table row and verifies it in the summary
v3.7.13 (2026-04-29)
brewtools
Changed
- provider-switch: DeepSeek alias renamed from
claudedeepseektoclaudeds(shorter, consistent with "Claude DS" naming)
v3.7.12 (2026-04-24)
brewtools
Changed
- provider-switch docs: top callout now includes a full SWE-bench snapshot table (Verified + Pro columns) for April 2026. Reflects GPT-5.5 (released April 23) as the new #1 on Verified at 88.7%; Opus 4.7 still wins Pro at 64.3%.
- provider-switch docs: DeepSeek V4 card — concrete scores added: Verified 80.6%, Pro 55.4%. "Top open-source SWE-bench" simplified to "Top open-source".
- provider-switch docs: OpenRouter card — now explicitly mentions GPT-5.5, GPT-5.3 Codex, Gemini 3.1 Pro as routable via
claudeor.
v3.7.11 (2026-04-24)
brewtools
Changed
- provider-switch docs: added SWE-bench Verified leaderboard link in the top "NEW DeepSeek" callout (with current top-3 scores) and in the DeepSeek card. Lets readers cross-check model rankings against the canonical source before switching providers.
v3.7.10 (2026-04-24)
brewtools
Changed
- provider-switch docs: top "NEW — DeepSeek V4" callout announcing the April 24 priority addition. Highlights 1.6T MoE, 1M context, thinking modes, verified 90% cache discount, no compat flags.
- provider-switch docs: SWE-bench badges realigned with actual April 2026 leaderboards. GLM "#1 SWE-bench" -> "Strong coding perf" (Opus 4.7 leads at 87.6%). DeepSeek V4 tagged "Top open-source SWE-bench".
- provider-switch docs: all four alt providers now marked "Cache verified". DeepSeek V4 — automatic 90% discount, DeepSeek API docs. Qwen — implicit 20% / explicit 10% per Alibaba billing. GLM — native backend auto-cache. MiniMax — documented pricing/TTL. Cost-per-request table updated with DeepSeek cached row.
v3.7.9 (2026-04-24)
brewtools
Added
- provider-switch: DeepSeek V4 as priority default provider. New reference
references/deepseek.md. Endpointhttps://api.deepseek.com/anthropic, modeldeepseek-v4-pro(1.6T MoE, 1M context). Aliasclaudedeepseek, key varDEEPSEEK_API_KEY. No compatibility flags required (DeepSeek silently ignoresanthropic-beta/anthropic-version). Verified via live API call (HTTP 200). - provider-switch: new mode keywords
deepseek|ds|dpsk|дипсик->provider-deepseek. Updateddetect-mode.sh,check-status.sh(newALIAS_DEEPSEEK/KEY_DEEPSEEKfields,api.deepseek.com-> provider=deepseek mapping),verify-providers.sh(newrun_deepseek).
Fixed
- provider-switch/verify-providers.sh: replaced
source ~/.zshrc(failed under bash withset -euo pipefailwhen zshrc contained zsh-only syntax) withgrep ^export+evalfor API-key vars only. Script no longer aborts before reaching curl.
v3.7.8 (2026-04-23)
Docs: plugin hooks internals — no user-facing skill/agent doc changes.
All plugins
Changed
- Unified logging directory: all plugin hook logs now land in
.claude/logs/{plugin}.log(brewcode, brewdoc, brewtools, brewui). Previously brewtools/brewui wrote.claude/brewtools.log/.claude/brewui.login the.claude/root; brewcode wrote.claude/tasks/logs/brewcode.log; brewdoc had no file logging. Single gitignored directory for all four. - Shared log-level config: single source of truth is
.claude/tasks/cfg/brewcode.config.json->logging.level(already used by brewcode). brewdoc/brewtools/brewui now read the same file. Override via envBREWCODE_LOG_LEVEL. Precedence: env > config >info. Levels:error|warn|info|debug|trace. - brewdoc: gained file logging (was stderr-only) and stderr format aligned with other plugins (no leading level tag).
- teardown.sh: removes
.claude/logs/(new unified dir) on brewcode teardown.
v3.7.7 (2026-04-22)
Docs: brewtools:think-short | brewtools:agent-toggle | brewtools:skill-toggle | brewui:glm-design-to-code | brewui:image-gen | brewtools:text-optimizer | brewui:glm-zai-specialist | brewcode:hook-creator | brewcode:skill-creator | brewcode:agent-creator | brewcode:tester | brewcode:developer
brewtools
Changed
- think-short: profile directives compressed with zero semantic loss.
light~35 -> ~20 tok,medium~70 -> ~35 tok,aggressive~200 -> ~120 tok. Removed redundant phrase examples, README-level justifications after dashes, duplicated directives. CriticalUser instructions always override these rulesretained in aggressive. All profiles now ASCII-only (em-dash -> hyphen), matching the profile's own rule. - think-short (SKILL.md): description frontmatter compressed ~480 -> ~60 tokens. English-only triggers. Lead sentence <=160 chars.
- agent-toggle / skill-toggle (SKILL.md): descriptions compressed ~255 -> ~45 tokens each. English-only triggers.
- text-optimizer (agent): description tuned to ~170 tokens - kept 2 examples since it is a frequently invoked agent.
- session-start hook: dropped redundant
brewtools: active | session: Xline fromadditionalContext(retained insystemMessageUI log). Saves ~30 tokens per session.
brewui
Changed
- glm-design-to-code / image-gen (SKILL.md): descriptions compressed ~55% each. English-only triggers.
- glm-zai-specialist (agent): description compressed ~247 -> ~50 tokens.
- session-start hook: same cleanup as brewtools - removed
active | session:line fromadditionalContext.
brewcode
Changed
- hook-creator / skill-creator / agent-creator (agents): descriptions tuned to ~180 tokens each with 2 high-signal examples - these agents are frequently invoked so examples retained intentionally.
- tester / developer (agents): descriptions compressed ~35%, example blocks removed (triggers already convey intent).
- skill-creator / agent-creator: new "Description Budget" section enforces <=100 tok (skills) / <=150 tok (agents) default, English-only triggers, <=1 example for future creations.
- skills/skills/SKILL.md / skills/agents/SKILL.md: creation flows now carry the same description-budget rule inline.
v3.7.6 (2026-04-21)
Docs: brewtools:think-short
brewtools
Changed
- think-short: profiles extended with tool discipline and "think before acting" directives.
lightnow includes "think through edits before executing";mediumgains Grep-before-Read, Edit-over-Write, parallel independent calls, no re-Read of just-edited files;aggressiveadds bundle-edits,replace_allfor N-identical edits, and gather-then-parallel-Edits pattern. Output-style directives retained in all profiles. Injection points unchanged (SessionStart + PreToolUse:Task). README profile table updated with new token estimates.
v3.7.5 (2026-04-20)
Docs: brewtools:think-short
brewtools
Fixed
- think-short: SKILL.md Bash examples now work when invoked via slash command from the main conversation. Fixes: (1)
$CLAUDE_PLUGIN_ROOTnot inherited by Bash tool — added dynamicBT_ROOTresolver (glob newest cache dir, no hardcoded version), (2) imports realigned with actual helper exports (writeState,resolveEffectiveState,getPaths,safeWriteJson), (3) removed doublethink-short think-short:log prefix by switching to thelogre-export fromstate.mjs, (4) P2 mutation simplified to a singlewriteState(scope, patch, cwd)call. Smoke-test block appended at the end of SKILL.md. Hooks and helpers unchanged.
v3.7.4 (2026-04-20)
Docs: brewtools:think-short
brewtools
Added
- think-short: new skill — toggle terse-output mode for Claude Code sessions. Injects brevity directives into the main conversation (SessionStart hook) and into sub-agent prompts (PreToolUse:Task hook). 3 profiles —
light/medium/aggressive. Commands:on,off,profile X,status,blacklist add|remove. NL parsing (RU+EN):включись,уровень 3,агрессивный,level 2,максимально, etc. Default blacklist skips agents that need verbose output (debate,docs-writer,architect). State merged via chainenv → project → global → plugin.json → hardcoded. Atomic state writes (O_NOFOLLOW, 0600). Cache-friendly — SessionStart profile is injected once and cached; PreToolUse:Task prepends first 2 lines of the profile fresh per sub-agent spawn. Disabled by default.
v3.7.3 (2026-04-19)
brewtools
Added
- provider-switch: compatibility flags table added to SKILL.md — documents required
CLAUDE_ENABLE_BYTE_WATCHDOG=0andCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1flags per provider - provider-switch (Z.ai/GLM): reference file now includes compatibility flags in documentation and alias template
- provider-switch (MiniMax): reference file now includes compatibility flags in documentation and alias template
- provider-switch (Qwen/DashScope): reference file now includes
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1in documentation and alias template
brewdoc / brewpage-publish
Changed
- publish: improved URL handling and verification flow
v3.7.2 (2026-04-18)
Docs: brewdoc:publish
brewdoc
Fixed
- publish (SITE): strip trailing slash from
.linkreturned by/api/sites— appending/routes to brewpage.app's own landing page instead of the uploaded site, and the JS redirect that rescues the no-slash form does not fire for the slash-dir form. URL is now stored and printed exactly as-is. - publish (SITE): output now includes an explicit warning not to append a trailing slash when sharing the URL.
- publish (SITE): Notes clarified that
curl-based verification is unreliable for SITE uploads (BrewPage landing serves a browser-only JS redirect) — use Playwright/browser_navigate or fetch<url>/index.htmlexplicitly.
v3.7.1 (2026-04-17)
Docs: brewcode skills | brewcode agents | brewtools skills | brewdoc skills | brewui skills
brewcode / brewdoc / brewtools / brewui
Changed
- docs: simplified H1 headings on all 48 skill/agent pages — name + optional 2–4 word subtitle, no invented slogans
- docs: removed all Russian text (рецепт/рецепты/скиллы/субагенты) from every MDX page
- docs: removed brewery metaphor (Recipe=Skill, Ingredients=KNOWLEDGE) from all doc rules and agent instructions
v3.7.0 (2026-04-17)
Docs: brewcode skills | brewcode agents | brewtools skills | brewdoc skills | brewui skills
brewcode / brewdoc / brewtools / brewui
Changed
- docs: full rewrite of all 45 legacy skill/agent MDX pages on the site to the new user-first etalon format. Every page now leads with one-line headline, Callout context, Quick reference table, When to use, Examples (≤8 line blocks), and a visual Flow timeline via
<Steps>. All bash/code internals moved into collapsed<details>spoilers so new users get an onboarding-friendly surface while technical readers still have full reference on demand. - docs: standardized section ordering and cross-link
<CardGrid>at the bottom of every page. Fixed MDX parser issues (brace/tilde/angle-bracket escaping) across the tree.
v3.6.2 (2026-04-16)
Docs: skill-toggle | agent-toggle
brewtools
Added
- skill-toggle / agent-toggle: interactive flow when invoked without explicit args. Phase I1 asks op (
status/disable/enable/list), Phase I2 prints the full catalog as a single space-separated line ofplugin:nametokens for Ctrl+F search, Phase I3 resolves + confirms once only if ambiguous (fuzzy phrase, duplicate name), Phase I4 always ends with a current-status dump. Explicit commands (disable brewui:image-gen) skip the flow entirely. - shared reference:
brewtools/skills/_shared/toggle/interactive-flow.md— full spec with decision matrix and anti-patterns, linked from both SKILL.md files.
v3.6.1 (2026-04-16)
Docs: skill-toggle | agent-toggle
brewtools
Fixed
- docs:
skill-toggleandagent-toggleMDX pages rewritten in English to match site language (v3.6.0 shipped them in Russian).
v3.6.0 (2026-04-16)
Docs: skill-toggle | agent-toggle
brewtools
Added
- skill-toggle: disable/enable individual plugin skills by renaming
SKILL.md⇄_SKILL.mdin the plugin cache. Two-tier scope (global$BT_PLUGIN_DATA/toggle-state.json+ project<cwd>/.claude/brewtools/toggle-state.json, project overrides global). Operations:disable,enable,status,list,reapply,prune. Addresses targets asplugin:name(e.g.brewui:image-gen). - agent-toggle: symmetric skill for agents — renames
<name>.md⇄_<name>.mdunderagents/. Same operations and scope model. - reapply-disables SessionStart hook: re-applies disables on the latest plugin version after
claude plugin update(new version dir ⇒ entry files reappear). Early-exit <500ms on empty state; reports drift (plugin_not_installed,file_missing) viaadditionalContext. - shared toggle library:
skills/_shared/toggle/{state,cache,apply}.mjs— atomic tmp+rename state writes, semver-latest selection across all marketplaces, idempotent rename primitives.
Workaround for upstream #47747, #22345 (no native per-skill/agent disable).
v3.5.2 (2026-04-12)
Docs: provider-switch
brewtools
Added
- provider-switch: prompt caching documentation — new Spoiler section on docs page with provider support table, MiniMax verified cache pricing, cost comparison
- provider-switch: MiniMax card badge
Prompt Cache— verified Anthropic-style prompt caching with documented pricing, response fields, TTL - provider-switch: MiniMax reference file — added "Prompt Caching (Verified)" section: cache read $0.06/M (80% savings), write $0.375/M, TTL 5 min, min 512 tokens
v3.5.1 (2026-04-12)
Docs: provider-switch
brewtools
Fixed
- provider-switch: detect-mode.sh — fuzzy typo matching before status fallback (
model-cehck→model-check,setuo→setup, etc.) - provider-switch: model-check mode — all 5 diagnostic questions sent in single prompt; model answers itself, user sees only Q&A table + verdict
v3.5.0 (2026-04-12)
Docs: provider-switch
brewtools
Changed
- provider-switch: unified alias template — all providers now use
ANTHROPIC_AUTH_TOKEN+ANTHROPIC_API_KEY=""(Bearer token + OAuth block). Z.ai switched from x-api-key to Bearer (verified both work) - provider-switch: new
verifymode — tests all configured tokens against endpoints with HTTP status report - provider-switch: new
model-checkmode — 5 diagnostic questions to identify which model is responding (runs inside provider session) - provider-switch: Qwen Singapore region requirement — callout, step-by-step key generation, format validation (
sk-ws-= wrong region) - provider-switch: updated docs — MDX page, skill README, plugin README with new modes and Qwen instructions
v3.4.82 (2026-04-12)
brewtools
Fixed
- provider-switch: fixed all provider dashboard links — Z.ai: z.ai/subscribe, Qwen: bailian.console.alibabacloud.com, MiniMax: platform.minimax.io. All English, all verified in browser with Login/Sign Up buttons.
v3.4.81 (2026-04-12)
docs
Fixed
- Spoiler component: tables inside collapsed Spoiler now have horizontal scroll on mobile (
overflow-x: auto). Prevents wide tables from breaking page layout.
v3.4.80 (2026-04-12)
Docs: provider-switch
brewtools
Changed
- provider-switch docs: complete page redesign — marketing-first structure. Problem/solution hero, weekly timeline visualization, cost comparison cards, prominent alias showcase, 3-step setup, provider cards with sign-up links. Technical details collapsed in Spoiler. Mobile-optimized, 102 lines vs 163 before.
v3.4.79 (2026-04-12)
Docs: brewtools overview | provider-switch
brewtools
Fixed
- docs audit: added missing provider-switch to CLAUDE.md skills table, overview.mdx (card + command + architecture tree), fixed stale README version (3.4.73 → 3.4.78). All 5 doc levels now consistent: 8 skills, 3 agents across filesystem, README, navigation.ts, MDX, guide catalog.
v3.4.78 (2026-04-12)
Docs: provider-switch
brewtools
Changed
- provider-switch: removed claude-max alias (unnecessary — open new terminal instead), no-dash alias names (claudeglm, claudeqwen, claudeminimax, claudeor), aliases launch claude automatically (one command), alias name customizable via AskUserQuestion during setup.
- docs: updated README and MDX to reflect all alias changes across all doc levels.
v3.4.77 (2026-04-12)
Docs: provider-switch
brewtools
Changed
- docs: provider-switch — single top model for all roles, updated OpenRouter model list (removed stale free models, added validated custom ID flow), corrected provider tables in README and MDX.
v3.4.76 (2026-04-12)
brewtools
Fixed
- provider-switch: single top model for all 3 Claude Code roles (opus/sonnet/haiku). Never split across weaker models. GLM = glm-5.1 everywhere, Qwen = qwen3.6-plus[1m] everywhere, OpenRouter = one user-selected model everywhere.
v3.4.75 (2026-04-12)
brewtools
Added
- provider-switch: hidden
updatemode for maintainer — spawns per-provider research agents, fetches latest models/pricing from official sources, diffs against current references, applies updates. Auto-sync frontmatter on all 5 provider reference files. Update protocol reference with per-provider sources and live test templates.
v3.4.74 (2026-04-12)
Docs: provider-switch
brewtools
Added
- docs: full documentation for
/brewtools:provider-switch— skill README, Astro MDX page, navigation.ts entry, plugin README row, guide catalog row. Quorum-reviewed (3 agents, 11 findings, 4 confirmed + fixed).
v3.4.73 (2026-04-12)
brewtools
Added
- provider-switch skill: new skill
/brewtools:provider-switch— configure Claude Code alternative API providers (Z.ai/GLM, Qwen/DashScope, MiniMax, OpenRouter). Interactive setup via AskUserQuestion: language selection (EN/RU/PT), provider selection, API key input, model selection for OpenRouter. Creates isolated shell aliases in ~/.zshrc with backup. Modes: status, setup, help, provider-specific. 6 reference files + 3 scripts.
brewcode
Changed
- agents: added protected-path v3.4.70 warnings to agent-creator, hook-creator, skill-creator agents — document Write restrictions for
~/.claude/*paths.
v3.4.72 (2026-04-11)
Docs: getting-started | installation | quickstart
docs
Fixed
- external link targeting: Added
rehype-external-linksplugin toastro.config.mjs— all markdown/MDX links with absolutehttp(s)://URLs now automatically gettarget="_blank" rel="noopener noreferrer". Internal relative links (/path/) open in the same tab. - Card.astro link targeting: Overlay (
absolute inset-0) and title<a>now detect external hrefs via/^https?:\/\//and applytarget="_blank" rel="noopener noreferrer"only when the href points to a different domain. Internal hrefs open in the same tab.
v3.4.71 (2026-04-11)
Docs: getting-started | installation
docs
Fixed
- Card broken layout:
Card.astrorendered as<a>whenhrefis set, causing nested<a>tags when slot content contained markdown links. Browser closed outer anchor early — card icon/title separated from description and content leaked outside the card. Fixed with stretched-link overlay pattern: card is now always adiv; anabsolute inset-0 z-0anchor covers the full card surface; slot content getsrelative z-[1]so inner links intercept clicks correctly. - getting-started, installation: restored inline links (
setup,spec,plan,start) inside Quick Start card — they were the trigger for the layout bug but are correct content; fix is in the component, not the content.
v3.4.70 (2026-04-11)
Docs: brewdoc:my-claude | brewdoc:guide | brewdoc:auto-sync
brewdoc
Fixed
- hook parity:
brewdoc/hooks/pre-task.mjsnow injectsBD_PLUGIN_DATA=${CLAUDE_PLUGIN_DATA}into subagent prompts, matching the pattern already used by brewcode/brewtools/brewui hooks. Previously brewdoc only exposedBD_PLUGIN_ROOT, breaking parity. - skill outputs migrated to project-relative paths:
/brewdoc:my-claude,/brewdoc:guide, and/brewdoc:auto-syncnow write to.claude/brewdoc/and.claude/auto-sync/inside the target project instead of~/.claude/brewdoc//~/.claude/auto-sync/. Reason: Claude Code's protected-path policy blocks Write to~/.claude/*in every permission mode, includingbypassPermissions. The hook-based permission layer runs AFTER the protected-path check, so no whitelist can override it. Verified empirically in headlessclaude -p. - legacy read-only fallback: my-claude documents a one-shot merge from
~/.claude/brewdoc/INDEX.jsonlinto the new project INDEX when the new location is empty. Legacy file is never written. - guide progress path:
brewdoc/skills/guide/scripts/progress.shnow prefers${CLAUDE_PROJECT_DIR:-.}/.claude/brewdoc/guide-progress.jsonand falls back to${BD_PLUGIN_DATA:-$HOME/.claude/brewdoc}/guide-progress.jsononly when the project dir is not writable.
brewcode
Changed
- permission-guard.sh whitelist: project-local
.claude/brewdoc/and.claude/auto-sync/added to both theis_allowed_path()helper (Bash tool) and the Edit/Write/MultiEdit case statement, mirroring the existing pattern for.claude/tasks/,.claude/reports/, etc.
Known limitation
$CLAUDE_PLUGIN_DATA(persistent plugin-state directory,~/.claude/plugins/data/<plugin-id>/) is not usable as a Write target in headlessclaude -pdue to the harness protected-path policy. PermissionRequest hooks cannot override — the check happens earlier in the pipeline. Until Anthropic relaxes this for~/.claude/plugins/data/, all skill outputs must target project-relative paths. Workaround documented per-skill; feedback filed upstream.
v3.4.69 (2026-04-11)
Docs: brewdoc:my-claude
brewdoc
Changed
- my-claude: repositioned as extended alternative to built-in
/team-onboarding(new in Claude Code 2.1.101). Added "vs /team-onboarding" section, updated description to emphasize web research, EXTERNAL/RESEARCH modes, and citation tracking.
Compatibility
- Claude Code 2.1.101: verified — subagent MCP tool inheritance fix benefits
bc-coordinatorand other Task-spawned agents (none of our agents currently reference MCP tools directly, so no silent regressions).context: forkskills (brewcode:setup,brewcode:teardown) confirmed — neither declares anagent:field, so the 2.1.101 frontmatter fix is a no-op for us. Settings resilience to unknown hook events benefits users running older vs newer Claude Code versions. - Claude Code 2.1.98: Bash permission hardening verified compatible — all skills use plain compound patterns (
cmd && echo "✅" || echo "❌"), no env-var prefix bypasses, no/dev/tcp/redirects, no backslash-escaped flags. - Monitor tool (2.1.98): evaluated as simplification opportunity for
brewcode:startpolling loop. Deferred — current flow uses single-passbc-coordinatordelegation, not polling, so Monitor doesn't cleanly replace existing logic.
v3.4.68 (2026-04-11)
Docs: review (dynamic) | setup | debate
docs
Added
- New page:
/brewcode/skills/review/— the dynamic per-project review skill. Until now this skill was mentioned but undocumented on the site (because it's generated into each target project by/brewcode:setup, not shipped with the plugin). New page covers: overview and clean distinction vs/brewcode:standards-review; full 7-phase pipeline (codebase study → group formation → parallel review → quorum collection → DoubleCheck → optional Critic + DoubleCheck-Critic → report); parameter reference (-q N-M,-q G-N-M,-c/--critic, default-q 3-2); quorum semantics (±5 line tolerance, ≥0.6 semantic similarity, merge rules); generation flow (Phase 3.5 of setup, 8 template placeholders, output in.claude/skills/brewcode-review/); tech-specific check tabs for Java/Spring, Node/TS, Python, Go; cross-links to setup, standards-review, reviewer agent, and brewtools/debate--reviewflag. - Navigation:
review (dynamic)added to the Brewcode → Skills sidebar as a 14th entry under standards-review. - Cross-links added: quickstart.mdx (Project setup Result list →
/brewcode/skills/review/), brewcode/skills/setup.mdx (Phase 4 Templates table + Verification table row), brewcode/skills.mdx (summary table adds a ★ "review (dynamic)" row + card + description paragraph), brewtools/skills/debate.mdx (Phase 8 bullet and--reviewflag table entry now link to the new page).
v3.4.67 (2026-04-11)
Docs: doc site
docs
Added
- Cross-entity linking across the whole site. Ran five parallel agents over the MDX content to convert plain-text skill/agent mentions into active Markdown links, including cross-plugin references (e.g. brewdoc
my-claude→ brewcoderevieweragent, brewtoolsdeploy→deploy-adminagent +sshskill, brewuiglm-design-to-codereviews → agents). Roughly 80 new links across 37 MDX files, covering every plugin's overview/skills/agents pages plus Getting Started / Installation / Quickstart / FAQ. Rules: first occurrence per H2 section, never inside code fences, never self-linking. Link style is plain Markdown — Tailwind prose handles hover underline, no custom classes or colors. - Broken-link sweep: full dist HTML scanned — 0 broken internal links out of 63 unique URLs.
Fixed
/brewcode:reviewvs/brewcode:standards-reviewdisambiguation./brewcode:reviewis a per-project dynamic skill created by/brewcode:setup, not a static page. One sub-agent incorrectly linked it to a non-existent/brewcode/skills/review/URL. Reverted all/brewcode:reviewmentions to plain inline code (no link) inbrewtools/skills/debate.mdxandbrewcode/skills/setup.mdx.
v3.4.66 (2026-04-11)
docs
Changed
- Search ranking — body downweighted to 0.2. v3.4.65 boosted titles via weight 10 + 30× duplication, but BM25 TF-saturation capped the score so pages with dozens of body mentions of common words ("start", "spec") still out-ranked the actual skill pages. Added a
data-pagefind-weight="0.2"wrapper around the whole article slot (viadisplay: contentsdiv so prose layout is unchanged). Net effect: title boost is ~50× stronger than body prose, which lets/brewcode/skills/start/,/brewcode/skills/spec/etc. beat pages that mention those words many times.
v3.4.65 (2026-04-11)
docs
Fixed
- Search result labels corrupted by title-boost span. v3.4.63's title boost used
data-pagefind-meta="title"on the duplicated span, which told Pagefind "this element IS the page title" — so result labels showed as"Agent Creator Agent Creator Agent Creator …"10×. Removed themetaattribute; Pagefind now falls back to the<h1>heading for the real title. Bumped title duplicates from 10× to 30× to further push BM25 term-frequency on title-matching queries.
v3.4.64 (2026-04-11)
Docs: Quickstart | Brewdoc Skills
docs
Fixed
- Steps component — nested list numbering corruption.
Steps.astroused.steps-timeline :global(li)which matched every descendant<li>, so any<ul>/<ol>inside a step body (e.g. the "Result: file list" in Quickstart Step 1) was treated as a continuation step — complete with circle counter, timeline bar, and broken grid layout. Rewrote the selector to direct-child only (:global(.steps-timeline > li)), explicitly restoredlist-style: disc/decimal+display: list-itemfor nestedul/ol/li, and added counter-reset so only top-level steps increment. Quickstart timeline now renders cleanly: "1 Project setup" with a bulleted file list inside, no fake steps 2–5. - Steps grid layout — title and body paragraph selectors tightened to direct children so nested prose keeps normal prose styling.
Changed
- Brewdoc sidebar structure aligned with other plugins. Brewdoc skill pages previously lived flat under
/brewdoc/<skill>/(auto-sync, my-claude, memory, md-to-pdf, publish, guide), while brewcode/brewtools/brewui use/<plugin>/skills/<skill>/with a dedicated Skills sidebar group. Moved all 6 brewdoc skill pages intocontent/docs/brewdoc/skills/, addedbrewdoc/skills.mdxindex page, updatednavigation.tsto use aSkillschildren group, fixed 15+ internal links inbrewdoc/overview.mdxand cross-page cards. All 65 pages build clean.
rules
Added
.claude/rules/astro-avoid.md— four new rules (#8–#10) covering Steps component nesting semantics, the direct-child selector fix history, and the plugin-skills directory convention. Agents editing MDX will pick them up via theweb/**/*.mdxpath glob.
v3.4.63 (2026-04-11)
Docs: Introduction
docs
Changed
- Search ranking — title boost amplified to ~100×: v3.4.62 added
data-pagefind-weight="10"on a single sr-only title element, but Pagefind's max weight (10) + one heading match still lost to pages with many body mentions of the same word. Verified on live site:"start"put the actual/brewcode:startskill page at rank 7, behind Agent Creator, Hook Creator, Guide, etc. Fix: duplicate the page title 10× inside the weighted sr-only element ({Array(10).fill(title).join(' ')}), yielding an effective ~100× BM25 boost. Title-matching pages should now consistently rank first.
v3.4.62 (2026-04-11)
Docs: Introduction
docs
Changed
- Search ranking — titles boosted 10×: Pagefind previously ranked pages by raw BM25 across body content, so typing
"start"surfaced every page that mentioned "start" in prose before the actual/brewcode:startskill page. Added ansr-onlyelement inside<article data-pagefind-body>inDocsLayout.astrowithdata-pagefind-weight="10"anddata-pagefind-meta="title"holding the page title. Result: page whose title matches the query ranks above body-only hits. Verified test cases:start,plan,debate,imageall surface their respective skill/agent pages first.
v3.4.61 (2026-04-11)
Docs: Introduction | Quickstart
docs
Fixed
- Card icons:
<Card icon="image">,<Card icon="plus">, and<Card icon="warning">rendered the literal words "image", "plus", "warning" in the UI (visible on the Introduction page forbrewui), becauseCard.astro'siconMapwas a strict whitelist that fell through torawIconon miss. Root cause + remediation:- Extended
iconMapto 65 entries — addedimage 🖼️,plus ➕,warning ⚠️, plus 30 more common icons (bell, bolt, bug, calendar, clock, cloud, database, gear, globe, graph, hammer, key, label, magic, megaphone, note, phone, pin, refresh, robot, scroll, shieldCheck, ship, target, test, tool, trophy, zap, …) so future pages have breathing room. - Unknown icon names now render a deterministic fallback (hash → stable pick from the map) and log
console.warnin build + browser, instead of leaking raw text into prose. A missing icon is visible and noisy without breaking the page. - Verified by independent re-scan: 38/38 icon names used across content are now present in
iconMap— zero missing.
- Extended
rules
Added
.claude/rules/astro-avoid.md#5,#6,#7— new path-scoped rules (now coveringweb/**/*.mdx) that explicitly forbid unlistedCardicons and raw exotic emoji in MDX, and require adding toiconMapbefore use. Agents touching Astro/MDX pages will pick this up automatically via the glob.
v3.4.60 (2026-04-11)
Docs: doc site
docs
Changed
- Search highlights: Pagefind default
<mark>background was saturated browser-yellow, visually harsh against the dark theme. Overridden in<style is:global>tooklch(var(--p) / 0.22)— soft DaisyUI primary tint, inherit text color, 2px padding + radius. Stays on-brand and legible without shouting.
v3.4.59 (2026-04-11)
Docs: Introduction
docs
Changed
- Introduction page: restructured to lead with the pitch, not the install command. Install prompt moved into a prominent
<Spoiler title="📦 How to install Brewcode — click to expand install instructions">block below the feature cards and plugin matrix, so first-time readers see "what is this" before "how to set it up". Added a "Four plugins, one suite" card grid as the headline section; refreshed counts to 28 skills / 18 agents.
v3.4.58 (2026-04-11)
Docs: doc site
docs
Fixed
- Search styling: Pagefind UI was rendering raw/unstyled (browser-default input outline, bare "Clear" button, no result separators) because
@pagefind/default-ui/css/ui.csswas never imported. Added explicitimport '@pagefind/default-ui/css/ui.css'inSearch.astroscript so Vite bundles the stylesheet; DaisyUI token overrides in<style is:global>still apply on top. - Header logo wrap on mobile: DaisyUI
.btndefaults toflex-wrap: wrap, so "Brewcode Docs" text wrapped under the logo image on narrow viewports, pushing the whole header onto two rows. Addedflex-nowrap whitespace-nowrap min-w-0+shrink-0on logo img +truncateon label; alsomin-w-0on the flex-1 Logo wrapper inHeader.astroso child can shrink.
v3.4.57 (2026-04-11)
Docs: doc site
docs
Fixed
- Search: docs search was completely non-functional —
Search.astrolistened only toastro:page-load, but the project does not enable Astro ViewTransitions, so neither PagefindUI nor button/shortcut handlers ever initialized. Rewrote client init to useDOMContentLoaded/immediate branch, split button listeners from the lazy@pagefind/default-uiimport so clicks work before Pagefind loads, and added aprocessTermquery normalizer (lowercase, strip diacritics, strip punctuation, collapse whitespace) so"GLM-design, to code!"matches"glm design to code". Cmd/Ctrl+K toggle and Escape close restored. - Search CSS: switched Pagefind CSS variables to DaisyUI
oklch(var(--p/--bc/--b2/--b3))tokens and added--pagefind-ui-scale: 0.9below 640px for mobile modal sizing. - GitHubBadge mobile: star badge was hidden entirely on
<640px(hidden sm:inline-flex). Added a compact mobile variant (inline-flex sm:hidden) with the GitHub Octocat icon + star count, tappable to the repo. A singlefetchnow updates both desktop and mobile counters.
v3.4.56 (2026-04-10)
Docs: FAQ
docs
Fixed
- FAQ: restored right-side Table of Contents for spoiler-only layout. New
tocItemsfrontmatter field on docs schema lets pages declare TOC entries explicitly when content uses components instead of markdown headings; merged into[...id].astroheading list. FAQ now lists 8 questions in TOC, each anchor opens the matching<Spoiler>automatically.
Changed
- Spoiler component: accepts
idprop, rendered on the<details>element. Auto-open script simplified — hash directly targets the spoiler element, scrolls into view smoothly, works viaDOMContentLoadedfallback (project does not enable Astro ViewTransitions). - TableOfContents: IntersectionObserver now also watches
details.spoiler[id]so the active TOC item highlights as users scroll past spoilers. - FAQ: removed
## Questionmarkdown headings — questions live solely in<Spoiler title="...">. Cleaner layout, no duplicated text above each spoiler.
v3.4.55 (2026-04-10)
Docs: FAQ | installation | brewcode overview | brewcode skills | brewdoc overview | brewtools overview | brewui overview
docs
Added
- FAQ: new spoiler "My install is too old — the skill isn't available" with bootstrap prompt for very old installs. First question now leads with the skill (Callout) and falls back to the prompt block. Every skill mention is an active link to its doc page.
Changed
- FAQ: "Shortcut" prose lines extracted into green
<Callout type="tip">blocks pointing to/brewtools:plugin-update. Install/update prompts now have explanatory intro and post-install Callout pointing to the skill. - installation:
/brewcode:setupand/brewtools:plugin-updatementions converted to active links to their skill pages. - brewcode/overview: Card and Tab content links
/brewcode:setup,/brewcode:start,/brewcode:standards-review,/brewcode:teamsto skill pages. - brewcode/skills: summary table — both the
SkillandCommandcolumns are now links to the per-skill page. - brewdoc/overview, brewtools/overview, brewui/overview: Commands tables — every skill cell is an active link.
v3.4.54 (2026-04-10)
brewdoc
Changed
- guide: refresh reference topics to current suite state — 4 plugins, 28 skills, 18 agents. Added
/brewtools:plugin-updaterow to skills catalog, hooks subsection listing all 12 shipped hooks intopic-customization.md, renamed "Three Plugins Overview" → "Four Plugins Overview" across SKILL.md, welcome menu, overview/installation/agents-catalog/skills-catalog topic files. Fixed stale counts: Brewtools Skills (6 → 7), Plugin Agents (17 → 18), Skills Catalog menu (27 → 28). - guide README: updated descriptions to include brewui, corrected skill/agent counts.
docs
Added
- Spoiler component: collapsible
<details>-based spoiler with animated chevron, hover state, and accessible focus outline — usable in any MDX page. - FAQ page: all 7 questions wrapped in collapsed spoilers so users can scan titles and expand only what they need. Added intro hint "Click any question to expand the answer."
Changed
- brewdoc/guide page: synced with skill changes — "Four Plugins Overview", all 4 plugins, all 28 skills, all 18 agents.
v3.4.53 (2026-04-10)
Docs: plugin-update | brewtools overview
brewtools
Added
- plugin-update: skill-level
README.mdwith Quick Start, Modes, Examples, Discovery Method, Tips.
Changed
- README.md: refresh skills table (3 → 7 entries), agents table (1 → 3), architecture tree, quick start, docs links, header tagline, stats.
docs
Changed
- brewtools/skills/plugin-update: expanded page — accurate 6-phase Steps flow, full
Quick reference, status-table example, Troubleshooting table, embeddedInstallPromptupdate prompt, explicit reload Callout, warning about non-existentclaude plugin listCLI. - brewtools/overview: add plugin-update card to skills grid, Commands table row, architecture tree entry.
v3.4.52 (2026-04-10)
Docs: plugin-update | FAQ | installation | guide
brewtools
Added
- plugin-update: new skill — checks installed plugins, installs missing brewcode plugins, updates outdated ones, reports versions. Interactive (default) or args
check|update|all. Uses filesystem discovery (notclaude plugin list, which does not exist).
brewdoc
Changed
- guide: Phase 0.5 plugin freshness check — offers to update outdated/missing brewcode plugins before starting the guide.
docs
Added
- FAQ: new page answering top install/update questions with copy-paste prompts
- Header: FAQ button between Search and GitHub badge
- InstallPrompt component: shared MDX component rendering coercive install/update prompts on every plugin overview and installation page
- UpdateNotice component: footer callout on every skill page pointing to
/brewtools:plugin-update
Changed
- installation: promote Updating section, add Callouts, tag
--plugin-diras developers-only
README
Added
- Install in 30 seconds: copyable install/update prompts at top of root README and each per-plugin README
- Fix missing
brewuirow and update skill counts
🔄 How to update brewcode plugins
Paste this prompt into a Claude Code session (it forces Claude to run the full command chain):
Execute these commands in this session, one by one, show full output for each, do not skip any:
1. claude plugin marketplace update claude-brewcode
2. claude plugin update brewcode@claude-brewcode
3. claude plugin update brewdoc@claude-brewcode
4. claude plugin update brewtools@claude-brewcode
5. claude plugin update brewui@claude-brewcode
After all 5 commands succeed, run `/reload-plugins` (or type `exit` then `claude` to restart). Do not summarize — run the commands now.
Or, if brewtools is already installed, just run /brewtools:plugin-update.
v3.4.51 (2026-04-09)
Docs: e2e
docs
Fixed
- e2e page: timeline (Steps) broken — replaced markdown numbered lists with explicit JSX
<li>elements
v3.4.50 (2026-04-09)
Docs: debate | brewtools | brewcode skills
brewcode
Changed
- skills: moved debate to brewtools plugin (13 skills remaining)
- docs: removed all "moved" stub pages (10 files deleted)
brewtools
Added
- skills: debate — multi-agent evidence-based debate orchestrator (moved from brewcode, now 6 skills)
docs
Added
- all pages: GitHub link cards on all 60 doc pages (Latest Release + View on GitHub)
- overview pages: installation guide quick-reference cards
Changed
- navigation: cleaned up all "(Moved)" entries
- all pages: updated plugin counts to 4 plugins, 27 skills, 17 agents
- guide: updated to cover all 4 plugins including brewui
Fixed
- license: corrected author name to Maksim Kochetkov
- debate: fixed /brewtools:review → /brewcode:review references
- imports: removed all unused MDX component imports
v3.4.49 (2026-04-08)
Docs: brewui image-gen
brewui
Changed
- image-gen: unified anti-slop strategy — merged forbidden patterns, story-first methodology, and style constraints into a single
anti-slop.mdreference
v3.4.48 (2026-04-07)
Docs: brewcode
brewui
Changed
- docs: added copyright notice © 2026 to docs site footer
v3.4.47 (2026-04-07)
Docs: brewtools ssh | brewtools deploy | brewui glm-design-to-code | brewtools ssh-admin | brewtools deploy-admin | brewui glm-openrouter-specialist | brewui glm-zai-specialist
brewcode
Changed
- skills: moved
glm-design-to-codeto brewui plugin (visual/creative tools) - skills: moved
sshanddeployto brewtools plugin (universal utilities) - agents: moved
glm-openrouter-specialistandglm-zai-specialistto brewui - agents: moved
ssh-adminanddeploy-adminto brewtools - docs: old brewcode pages replaced with redirect stubs pointing to new locations
brewtools
Added
- skills:
ssh-- SSH server management (moved from brewcode) - skills:
deploy-- GitHub Actions deployment (moved from brewcode) - agents:
ssh-admin-- SSH server administrator (moved from brewcode) - agents:
deploy-admin-- GitHub Actions administrator (moved from brewcode) - hooks:
pre-task.mjs-- injectsBT_PLUGIN_ROOTinto subagent prompts
brewui
Added
- skills:
glm-design-to-code-- GLM vision design-to-code (moved from brewcode) - agents:
glm-openrouter-specialist-- OpenRouter API routing (moved from brewcode) - agents:
glm-zai-specialist-- Z.ai GLM API expert (moved from brewcode) - hooks:
pre-task.mjs-- injectsBU_PLUGIN_ROOTinto subagent prompts
v3.4.46 (2026-04-07)
Docs: deploy skill | deploy-admin agent
brewcode
Added
- deploy skill: GitHub Actions deployment -- workflows, releases, GHCR, CI/CD with safety gates
- deploy skill: 6 modes: setup, create, release, deploy, monitor, update-agent
- deploy skill: 4 scripts: detect-mode, gh-env-check, workflow-discover, deploy-local-ops (CLAUDE.local.md CRUD)
- deploy skill: Safety classification: READ/CREATE (free), MODIFY/SERVICE (confirm), DELETE/PRIVILEGE (always confirm)
- deploy skill: 4 workflow templates: Build+Push GHCR, Deploy VPS, Release, Security Scan
- deploy skill: CLAUDE.local.md GitHub Config + Workflows sections (coexists with SSH sections)
- deploy skill: Dynamic deploy-admin agent generation from template with live workflow data
- deploy skill: SSH skill integration for VPS deploy targets and health checks
- deploy-admin agent: GitHub Actions and deployment agent with live workflow inventory, release flow, Docker/GHCR patterns
v3.4.45 (2026-04-07)
Docs: image-gen
brewui
Changed
- image-gen: Z.ai provider upgraded from CogView-4 to GLM-image (flagship model, top-tier quality, same $0.015/image)
- image-gen: Z.ai endpoint migrated from
open.bigmodel.cntoapi.z.ai - image-gen: Default Z.ai size updated to 1280x1280 with custom size support (512-2048px, multiples of 32)
- image-gen: Docs page updated with GLM-image promotional badge and Z.ai docs link
v3.4.44 (2026-04-07)
Docs: ssh skill | ssh-admin agent | image-gen
brewcode
Added
- ssh skill: Remote server management -- connect, configure, deploy, administer Linux servers with safety gates
- ssh skill: 5 modes: setup, connect, configure, execute, update-agent
- ssh skill: 4 scripts: detect-mode, ssh-env-check, server-discover, claude-local-ops (CLAUDE.local.md CRUD)
- ssh skill: Safety classification: READ/CREATE (free), MODIFY/SERVICE (confirm), DELETE/PRIVILEGE (always confirm)
- ssh skill: Server auto-discovery: OS, kernel, Docker, containers, disks, services, ports
- ssh skill: CLAUDE.local.md persistent config (gitignored) with server inventory
- ssh skill: Dynamic ssh-admin agent generation from template with live server data
- ssh skill: Robustness: fail-fast, loop protection (max retries), timeouts, manual fallback strategy
- ssh-admin agent: Linux server administrator -- SSH, Docker, Compose, systemd, Caddy/Nginx, security hardening
brewui
Changed
- image-gen: Added Brewpage publish tip for remote/headless image viewing
v3.4.43 (2026-04-07)
Docs: brewui overview | image-gen
brewui (NEW PLUGIN)
Added
- brewui plugin: New plugin for UI/visual/creative tools
- image-gen: AI image generation via 5 providers (Gemini Imagen 4, OpenRouter Gemini 2.5 Flash, OpenRouter GPT-5, Z.ai CogView-4, OpenAI DALL-E 3)
- anti-slop: Style-aware prompt engineering (photo, illustration, art)
- multi-mode: generate, edit, config, update
v3.4.42 (2026-04-06)
Docs: publish
brewdoc
Added
- publish: Multi-file site upload support — directories and ZIP archives via
/api/sitesendpoint - publish:
--entry <filename>argument for custom entry point override - publish: SITE content type with auto-detection (directory → ZIP + upload,
.zip→ direct upload) - publish: Entry file auto-detection:
--entryflag >index.html> first.htmlalphabetically - publish: Site pre-publish stats showing file count, total size, and detected entry file
- publish: History table extended with Type column (
html,json,file,site (N files))
v3.4.41 (2026-04-06)
Docs: publish
brewdoc
Changed
- publish: Reverted model from sonnet back to haiku for publish skill
v3.4.39 (2026-04-06)
Docs: publish
brewdoc
Changed
- publish: Atomic token handling — ownerToken never in conversation output, saved directly to history file
- publish: Namespace auto-suggestion generates meaningful slugs from content context (e.g.
api-docs,pricing)
v3.4.37 (2026-04-06)
brewcode
Fixed
- agents: Added
*_PLUGIN_ROOTguard toglm-zai-specialist,glm-openrouter-specialist,bc-coordinator— stop with clear error if plugin root missing from prompt context - docs: CLAUDE.md Architecture table — matcher updated to
PreToolUse:Task|Agent
Changed
- rules:
best-practice.md— added release docs links requirement (#8), autonomous release flow (#9), plugin root guard pattern (#10) - release process: CLAUDE.md Version Sync — autonomous commit/push/deploy, mandatory
> Docs:links in RELEASE-NOTES.md
brewdoc
Fixed
- agents: Added
BD_PLUGIN_ROOTguard tobd-auto-sync-processor— stop with clear error if plugin root missing
v3.4.36 (2026-04-06)
brewcode
Fixed
- hooks:
hooks.jsonmatcher"Task"changed to"Task|Agent"— pre-task.mjs and post-task.mjs now fire on Agent tool calls (renamed from Task in Claude Code ~v2.1.63) - teams: Agent template
agent-template.md— trace-ops.sh calls made optional (1 attempt max, skip silently on failure). Agents no longer hang whenBC_PLUGIN_ROOTis unavailable as shell env var - teams:
BC_PLUGIN_ROOTusage clarified as prompt-injected plain text, not shell env var — agents instructed to read value from prompt context and substitute literally
v3.4.35 (2026-04-06)
Docs: teams | skills | skill-creator | guide
brewcode
Changed
- teams: Added Review and Fix Pipeline (C5-C9) after agent creation — 3 parallel quorum reviewers, 2/3 consensus filter, verification, fix critical/important issues, re-verify with max 2 retry cycles. Flags:
--skip-review,--review
docs
Changed
- skills overview: Added Lifecycle timeline, Skill Management cross-refs, Independent Skills cards
- skills skill: Removed large bash scripts, added Cards for modes, Steps for 7-phase workflow, Tabs for details
- skill-creator: Added CardGrid for Skill Anatomy and Design Patterns, Steps for creation process, See Also cross-refs
- guide: Fixed Steps div wrappers, added domain CardGrid, Steps for How It Works flow
- publish: Fixed Steps div wrappers
- Card component: Extended iconMap with heart, money, library, fire, handshake, rocket, package
- all pages: Replaced raw emoji hex codes with named icons across getting-started, quickstart, installation, debate
Added
- README sync: All 28 README files synced with docs site (root, 3 plugins, 21 skills)
chore
.gitignore: ignore*.pngand.playwright-mcp/, untracked stale screenshots
v3.4.29 (2026-04-06)
Docs: skills | skill-creator
brewcode
Changed
- skills: Unified create/up flow with 7-phase pipeline (Discovery → User Interaction → Create/Improve → Validate → Review → E2E Testing → Summary). Added testing depth selection (Quick/Standard/Deep), review orchestration (Simple/Quorum with DoubleCheck verification), E2E testing via
claude -p, and structured summary reports - skill-creator: Added Step 5.7 (unit test generation for scripts/), Step 5.8 (README generation from template), pre-filled values support, Bash tool in agent toolset
- permission-guard: Added
.claude/teams/and.claude/memory/to auto-allowed directories
Added
- skills/references: 4 new templates —
review-prompt.md(quality review checklist),e2e-template.md(E2E test scenarios),readme-template.md(skill README with auto-sync),summary-template.md(Phase 6 report)
v3.4.28 (2026-04-05)
Docs: debate
brewcode
Added
- debate: New
/brewcode:debateskill — evidence-based multi-agent debate orchestration with Discovery phase (parallel codebase + web research before every debate), 3 modes (Challenge, Strategy, Critic), dynamic agent generation (2-5 agents), mandatory source citations for all arguments, sequential debates with JSONL logging, secretary summaries, and judge decisions
v3.4.26 (2026-04-04)
Docs: glm-design-to-code
brewcode
Added
- glm-design-to-code-trial: Standalone trial skill for
npx skillsdistribution (README.md + SKILL.md) - gitignore:
d2c-output/excluded from repo (generated test artifact)
v3.4.25 (2026-04-04)
Docs: glm-design-to-code
brewcode
Added
- glm-design-to-code: Smart intent detection — Opus auto-classifies user intent (reproduce, creative, enhance, modify, convert) from prompt text
- glm-design-to-code: Dual input for HTML — screenshots HTML file and sends both image + HTML source to GLM for better conversion
- glm-design-to-code: Custom instruction support —
GLM_INSTRUCTIONpassed to scripts as param 8, replaces hardcoded prompts
Changed
- glm-design-to-code: Profile prompts are now quality-only (no intent coupling) —
profile-max.md,profile-optimal.md,profile-efficient.md - glm-design-to-code:
glm-build-request.sh— params 8 (instruction) + 9 (html_source), rawfile for user_text, dual jq template - glm-design-to-code:
glm-build-text-request.sh— param 8 (instruction), rawfile for user_text (ARG_MAX safety) - glm-design-to-code: Resolved Configuration table shows Intent, Instruction, Dual Input rows
- glm-design-to-code: Step 3 payload routing: 5-way table (image/html-dual/html-text/text/url)
v3.4.24 (2026-04-03)
Docs: glm-design-to-code
brewcode
Changed
- glm-design-to-code: Removed
disable-model-invocation— skill now auto-triggers on natural phrases ("convert screenshot to code", "turn design into React") - glm-design-to-code: Optimized description for LLM auto-invocation (3 natural examples, explicit "external GLM API" signal)
- glm-design-to-code: Mandatory resolved configuration output before every API call (all modes: CREATE, REVIEW, FIX)
- glm-design-to-code: Parameter priority: prompt flags > inline text >
.env> defaults; raw text scanning for inline keys and model names - glm-design-to-code:
--modelauto-prefixz-ai/for OpenRouter, auto-strip for Z.ai
v3.4.23 (2026-04-03)
Docs: glm-design-to-code
brewcode
Fixed
- glm-design-to-code: Context window corrected to 202K (was 128K) across SKILL.md, README, docs
- glm-design-to-code: Replaced phantom model
glm-4.5-air:freewithglm-4.6v-flashin key validation - glm-design-to-code: Standardized pricing across all documentation ($0.01-0.08 range by profile)
- glm-design-to-code: API key flow now validates before saving to
.env(prevents invalid key persistence) - glm-design-to-code: Split API key provider choice and key entry into separate AskUserQuestion steps
- glm-design-to-code: Settings dialog now loops for multiple changes before confirming
- glm-design-to-code: REVIEW mode uses parsed
RESULT_IMAGEinstead of hardcoded path - Scripts: All 6 scripts now have +x execute permissions
- Scripts:
glm-request.shcurl timeout increased to 600s for large payloads - Scripts:
glm-request.shaddsHTTP-RefererandX-Titleheaders for OpenRouter requests - Scripts:
glm-extract.shallows spaces in output directory paths - Scripts:
glm-extract.shawksystem()call now quotes directory paths - Scripts:
glm-verify.shbackground timer PID tracked and cleaned up on--kill
docs
Enhanced
- glm-design-to-code.mdx: Added Design2Code Benchmark Comparison section (GLM-5V-Turbo 94.8 vs Claude Opus 4.6 77.3)
- glm-design-to-code.mdx: Added Our Research Results section with per-framework Tabs (HTML 9.5, React 8.0, Flutter 9.0)
- glm-design-to-code.mdx: Added External Resources CardGrid (Z.ai docs, OpenRouter, BenchLM, The Decoder)
- glm-design-to-code.mdx: Expanded Pipeline Flow Steps to 7 detailed steps
- glm-design-to-code.mdx: Updated GLM Models table context window to 202K
v3.4.22 (2026-04-03)
brewcode
Added
- New skill:
glm-design-to-code— GLM vision model-powered design-to-code generator- Three modes: CREATE (any input to code: screenshots, text descriptions, HTML, URLs), REVIEW (compare original vs result), FIX (apply feedback)
- Supports HTML/CSS, React 18, Flutter Web, custom frameworks
- Three quality profiles: maximum (pixel-perfect), optimal (balanced), efficient (fast)
- Dual provider support: Z.ai (direct) and OpenRouter
- Full pipeline: argument parsing, API key setup, payload build, API request, file extraction, build, verification
- Scripts: parse-args.sh, glm-build-request.sh, glm-build-text-request.sh, glm-request.sh, glm-extract.sh, glm-verify.sh
- Updated agents:
glm-zai-specialist,glm-openrouter-specialist— migrated script paths to plugin directory
v3.4.21 (2026-04-03)
docs
Added
/brewdoc:guidedocs page — guide.mdx with 9 topics, 3 domains, progress tracking, environment health check- Updated brewdoc overview.mdx: 6 skills, guide card + command row + directory tree entry
- Updated navigation.ts: guide link in Brewdoc section
v3.4.20 (2026-04-02)
brewdoc
Added
/brewdoc:guideskill — interactive teaching skill for the brewcode plugin suite: 9 topics across 3 domains (Getting Started, Core Workflow, Mastery), haiku-powered, progress tracking with JSON persistence, multilingual (EN/RU/PT), environment validation, section-by-section delivery with AskUserQuestion navigation- Guide scripts —
validate.sh(docs site, GitHub releases, installed versions, auto-update status),progress.sh(CRUD for guide progress JSON at~/.claude/brewdoc/) - 11 reference files — welcome banner + menu, ASCII architecture diagrams, 9 topic files covering all 22+ skills, 14+ agents, 9 hooks, killer flow pipeline, dynamic teams, customization, project integration, and power features
v3.4.19 (2026-04-02)
brewcode
Added
/brewcode:e2eskill — full-cycle E2E testing orchestration: 6 modes (setup, create, update, review, rules, status), 5 runtime agents created via agent-creator, BDD scenarios with YAML frontmatter, layered test architecture (stack-agnostic), quorum review (3 reviewers, 2/3 consensus), MAX_CYCLES=3 review loops- E2E references —
e2e-rules.md(24 rules, 6 categories),e2e-architecture.md(layered diagram + 4-stack mapping),agent-template.md(Rules Loading + Self-Check protocols), 6 mode flow files detect-mode.sh— POSIX sh argument parser for e2e skill (6 keywords, smart default: status if agents exist, setup otherwise)
docs
Updated
- New
/brewcode/skills/e2edocs page with modes, agents, architecture, quorum review - Updated skills.mdx (13 skills), overview.mdx (13 skills, e2e in directory tree + Components), navigation.ts
v3.4.17 (2026-04-02)
brewpage-publish
Fixed
- Security: W007 Insecure Credential Handling — ownerToken no longer appears in conversation output; curl + jq parsing + history save now execute atomically inside a single bash block; LLM only sees the published URL; password column removed from history table
v3.4.16 (2026-04-02)
brewcode
Changed
- Merged
/brewcode:installinto/brewcode:setup— prerequisites check (brew, coreutils, jq, grepai) now runs automatically as Phase 0 before project analysis; if all required tools are present, Phase 0 is skipped silently; interactive prompts via AskUserQuestion for missing components and optional grepai install
Removed
/brewcode:installskill — deleted; all functionality absorbed by/brewcode:setupPhase 0
v3.4.15 (2026-04-02)
brewcode
Changed
- Teams: session-scoped trace system — replaced 3 Markdown files (
tracking.md,issues.md,insights.md) with singletrace.jsonl; write viatrace-ops.sh add(Bash append, ~96% token savings vs Edit); cursor-based incremental reads forupdatemode trace-ops.sh— new POSIX sh utility:add(JSONL append),read(jq/grep filter),cursor(incremental bookmark),migrate(Markdown-to-JSONL conversion with.bakbackup)- SID injection in
pre-task.mjs— session ID (8 chars) auto-injected into all agent prompts when.claude/teams/exists verify-team.sh— checkstrace.jsonlinstead of 3 MD files; detects legacy files and suggests migration
v3.4.14 (2026-04-02)
brewcode
Added
/brewcode:teams— new skill: creates and manages dynamic teams of domain-specific agents; modes:create,update,status,cleanup; generates agent roster with tracking framework in.claude/teams/- Mode Switcher — skills can toggle persistent session-level behavioral modes via
brewcode.state.json; hooks inject mode instructions on every event (forced-eval.mjs,session-start.mjs,pre-task.mjs) getActiveMode()utility inhooks/lib/utils.mjs— reads active mode and loads instructions frommodes/{name}.mdbrewcode/modes/directory — mode instruction files; ships withmanager.mddefault- Mode Switcher design pattern added to
skill-creatoragent andhook-creatoragent - Step 2.5 in
/brewcode:skills create— auto-detects mode-switching intent and suggests Mode Switcher pattern - Dynamic Agent Resolution in
/brewcode:plan— checks.claude/teams/roster before plugin agents; priority: team > project > plugin > system
Changed
hook-creatoragent: updated to Claude Code v2.1.89+ — addedPermissionDeniedevent (26 events total),defersupport in PreToolUse,retryresponse for PermissionDenied
brewtools
Added
- NEW plugin — universal text utilities extracted from brewcode
- Skills:
text-optimize,text-human,secrets-scan - Agent:
text-optimizer BT_PLUGIN_ROOTinjected by SessionStart hook- Install:
claude plugin install brewtools@claude-brewcode
brewcode (removed)
text-optimize,text-human,secrets-scanskills — moved to brewtoolstext-optimizeragent — moved to brewtools- Fallback added to
convention/SKILL.mdP5 when brewtools not installed
v3.4.13 (2026-04-01)
docs
Fixed
- Steps timeline layout on publish docs page
v3.4.12 (2026-03-31)
docs
Fixed
- Steps alignment on brewpage/publish page — removed Badge tags and div wrappers
v3.4.11 (2026-03-31)
brewdoc
Added
- brewpage skill — publish text, markdown, JSON, or files to brewpage.app; interactive namespace + password selection; owner token saved to
.claude/brewpage-history.md; model: haiku
skills (marketplace)
Added
- brewpage skill — standalone marketplace skill with advertising footer; same functionality as brewdoc:brewpage
docs
Added
- brewdoc/brewpage docs page — full documentation with Steps, content-type table, namespace/password sections, owner token & history
- brewpage.app link and Callout on the brewpage docs page
Changed
- brewdoc overview updated: 5 skills, brewpage card, command row
v3.4.10 (2026-03-31)
brewcode
Added
- 15 individual skill pages -- full content from SKILL.md sources (setup, spec, plan, start, convention, rules, grepai, install, teardown, text-optimize, text-human, standards-review, skills, agents, secrets-scan)
- 13 individual agent pages -- full system prompt content (developer, tester, reviewer, architect, skill-creator, agent-creator, hook-creator, text-optimizer, bash-expert, bc-coordinator, bc-knowledge-manager, bc-grepai-configurator, bc-rules-organizer)
- permission-guard hook documented in hooks page (9th hook)
brewdoc
Added
- my-claude dedicated page -- moved from inline section in overview to standalone page
docs
Changed
- Collapsible sidebar -- Skills (15) and Agents (13) groups with
<details>/<summary>, auto-expand on current page - Index pages -- skills.mdx and agents.mdx converted from Tabs to CardGrid links
- Site expanded from 12 to 41 content pages (29 new)
v3.4.9 (2026-03-31)
brewcode
Changed
- hook-creator agent -- synced with HOOKS-REFERENCE: 14 to 25 events, version history, lifecycle diagrams, channel reliability matrix, expanded matcher patterns, output schemas, async recommendations
- agent-creator agent -- synced with AGENT-REFERENCE: added
initialPrompt,isolation,mcpServers,color,memoryfields; 10 bugs table; version history; architectural limitations; expanded validation checklist (6 to 12 items); debugging section - skill-creator agent -- synced with SKILL-REFERENCE: 10 bugs table; version history;
effortmax value;CLAUDE_SKILL_DIRversion fix (v2.1.69 to v2.1.71); 250-char description truncation;oncefield; architectural limitations - permission-guard hook -- added Bash tool to PermissionRequest matcher; network/dangerous command blocklist; restricted
rmto safe dirs; added.claude/tmp/,/tmp/,/private/tmp/to allowed paths
Added
- Reference auto-sync dependents --
dependentsfield in reference frontmatter for cascading updates to creator agents - Downstream tracking -- each reference document now lists dependent plugin artifacts
v3.4.8 (2026-03-30)
brewcode
Added
- permission-guard hook -- PermissionRequest hook auto-allows Edit/Write for project
.claude/subdirectories (tasks, reports, rules, skills, scripts, agents, hooks, private, convention, plans, settings, TASK.md, CLAUDE.md). Global~/.claude/excluded - forced-eval hook -- added
[DELEGATE]manager reminder to UserPromptSubmit alongside existing skill check
v3.4.6 (2026-03-13)
brewdoc
Changed
- memory skill — support for
autoMemoryDirectoryfrom.claude/settings.jsoninstead of hardcoded legacy path
Other
.gitignore— added.claude/memory/
v3.4.5 (2026-03-12)
brewcode
Changed
- skill-creator agent — added Skill Design Patterns section: Progressive Disclosure, Reference Splitting, Agents-as-References, Dynamic Context, Context Fork, Executable Bash, Skill Chaining, Background Knowledge, Pushy Description, Preloaded Skills
v3.4.4 (2026-03-06)
brewcode
Fixed
- Silent remote version check failure -- no message shown when GitHub API check times out (previously showed "(remote check failed)")
v3.4.2 (2026-03-05)
Main changes in v3.4.0.
brewcode
Added
- Claude Code version check -- session-start hook also checks npm registry for newer Claude Code CLI version
- Version notifications in UI -- update messages now shown in
systemMessage(visible to user), not justadditionalContext
Changed
- Version checks run in parallel -- brewcode + Claude Code checks via
Promise.allfor minimal latency - Regex version parsing --
claude -voutput parsed with\d+\.\d+\.\d+regex instead of split
v3.4.1 (2026-03-05)
Patch release. Main changes in v3.4.0.
brewcode
Fixed
- CI workflows -- codeql, semgrep, gitleaks now run only on branch push/PR, not on version tags
v3.4.0 (2026-03-05)
brewcode
Added
- Version check on session start --
session-start.mjschecks GitHub latest release; shows update notification if newer version available, fallback link on timeout/error
Changed
- Skills migrated to
${CLAUDE_SKILL_DIR}-- convention, grepai, install, rules, teardown skills now use${CLAUDE_SKILL_DIR}/scripts/...instead of relativescripts/...paths - skill-creator agent -- documented
${CLAUDE_SKILL_DIR}variable, updated resource path resolution section, added common mistakes - bash-expert agent -- updated plugin path guidance to distinguish
${CLAUDE_SKILL_DIR}(skills) vs$BC_PLUGIN_ROOT(agents) - hooks.md -- updated path resolution table with
${CLAUDE_SKILL_DIR}context
Fixed
- pre-task.mjs -- grepai detection now checks
index.gobexistence, not just.grepai/directory
v3.3.2 (2026-03-05)
brewcode
Added
- brewcode:convention skill -- Deep project analyzer that extracts etalon classes, patterns, and architecture by layer
- 4 modes:
full,conventions,rules,paths <p1,p2> - 20-layer analysis framework (14 main + 6 test) with multi-stack support
- 10 parallel agents for layer analysis → etalon selection → 3 convention docs generation
- Interactive rules extraction with batched AskUserQuestion flow
- CLAUDE.md update with etalon quick-reference table
- POSIX-compliant
convention.shscript for stack detection, scanning, validation
- 4 modes:
- brewcode:agents skill -- Interactive agent creation and improvement orchestrator
- Create mode: 3-question interactive setup (scope, model, CLAUDE.md update)
- Improve mode: improve existing agent by name or path
- Delegates to
agent-creatoragent for quality agent generation - Applies
text-optimizeafter creation/improvement - Optional CLAUDE.md agents table update
- bump-version.sh -- Single command to bump version across all 4 JSON files
Changed
- Updated CLAUDE.md: Version Sync section now uses
bump-version.sh, Update flow includes CLI commands
Fixed
- release.yml --
git branch --containsunreliable on detached HEAD; replaced withgit merge-base --is-ancestor - gitleaks.yml -- SARIF upload/artifact steps now skip when
results.sarifnot produced convention.sh: dotnet monorepo module detection (.sln/.csprojinhas_build_file())
brewdoc
Changed
- session-start hook removed -- brewdoc no longer injects
BD_PLUGIN_ROOTat session start - pre-task hook retained --
BD_PLUGIN_ROOTstill injected into subagent prompts forbd-auto-sync-processor - Skills use relative paths --
my-claudeuses plain relative paths;md-to-pdfandauto-syncbash commands use${CLAUDE_SKILL_DIR} - Updated
docs/hooks.md: rewritten to reflect 1 hook (was 2) - Updated
README.md,docs/commands.md: removed staleBD_PLUGIN_ROOTreferences - Version unified with brewcode suite (was 1.1.1)
Fixed
- AskUserQuestion compliance --
skills/my-claude/SKILL.md: addedAskUserQuestiontoallowed-tools, INDEX update prompt rewritten with explicit header/question/options
v3.0.2 (2026-02-28)
brewcode
Fixed
- AskUserQuestion compliance -- Added
AskUserQuestiontoallowed-tools/toolsin all files that require user interactionskills/text-human/SKILL.md-- missing tool + explicit instructions at lines 31, 35skills/grepai/SKILL.md-- missing tool + Mode: prompt rewritten with 4-option AskUserQuestionskills/start/SKILL.md-- missing tool in escalation path (3 fails)skills/skills/SKILL.md--createmode now asks invocation type before spawning skill-creatoragents/skill-creator.md-- clarified foreground-only context for AskUserQuestionagents/agent-creator.md-- missing tool added totools:
v3.0.1 (2026-02-28) -- Failure Path & Deadlock Fixes
brewcode
Fixed
- post-task.mjs -- branched success/failure messages: on failure, instructs retry/escalate instead of "write report + call coordinator" (P1-1 critical)
- start/SKILL.md -- failure cascade to transitive dependents when escalation exhausted; deadlock detection safety net in execution loop (P1-2 critical)
- start/SKILL.md -- persist failure to KNOWLEDGE.jsonl before retry for post-compact context (P1-3 critical)
- start/SKILL.md -- fixed "ISSUES_TABLE from coordinator output" -> "from verification report" (P1-4)
- stop.mjs -- catch block no longer deletes lock on transient error; preserves lock for recovery (P1-5)
- bc-coordinator.md, PLAN.md.template -- documented Task API as source of truth; fixed misleading terminal status docs (P1-6)
- start/SKILL.md -- added is_error guard for coordinator call: log warning, proceed to TaskUpdate (P1-7)
- start/SKILL.md -- moved phase-to-TaskID mapping from NOTE to explicit Sub-step 4a (P1-8)
- stop.mjs -- added defense-in-depth comment for redundant validateTaskPath (P1-9)
- pre-compact.mjs -- changed artifact validation log level from warn -> debug with "(agent may still be executing)" (P1-10)
- pre-compact.mjs -- fixed terminal status check:
=== 'finished'->TERMINAL_STATUSES.has()(regression fix from review) - bc-coordinator.md -- finalize mode now accepts
statusparameter ("finished" default, "failed" for deadlock/cascade)
Updated Files
brewcode/hooks/post-task.mjsbrewcode/hooks/stop.mjsbrewcode/hooks/pre-compact.mjsbrewcode/agents/bc-coordinator.mdbrewcode/skills/start/SKILL.mdbrewcode/skills/setup/templates/PLAN.md.template
v3.0.0 (2026-02-28) -- Task API Architecture
brewcode
Breaking Changes
- PLAN.md format -- new 3-line header (status, current_phase, total_phases)
- Phase details -- moved from inline PLAN.md to
phases/directory - Re-run
/brewcode:setupto get new templates
Added
- Task API integration -- TaskCreate/TaskUpdate/TaskList for phase management
phases/directory -- individual phase files for agents (1-research.md,1V-verify-research.md,FR-final-review.md, etc.)- Phase Registry table -- slim overview in PLAN.md for manager (replaces inline phase details)
- Parallel execution -- tasks in same Parallel group spawn simultaneously via multiple TaskCreate calls
- Lighter coordinator -- bc-coordinator now handles knowledge extraction + report verification only
- Fix phase protocol -- automatic
{N}F-fix-{name}.mdfile generation on verification failure phase.md.template-- execution phase templatephase-verify.md.template-- verification phase templatephase-fix.md.template-- fix phase template (dynamic)phase-final-review.md.template-- final review template
Changed
- pre-task.mjs -- v3 task context injection (phase file reminder for agents)
- post-task.mjs -- Task API instructions for manager
- pre-compact.mjs -- v3-aware handoff message
- session-start.mjs -- Task API reminder on active v3 task
- plan/SKILL.md -- generates
phases/directory alongside slim PLAN.md - start/SKILL.md -- uses Task API instead of reading phases inline; manager never reads
phases/files - docs/commands.md -- updated plan and start sections for v3
- docs/file-tree.md -- added
phases/directory to task structure - README.md -- v3 flow description, updated task structure
Backward Compatibility
- v2 tasks continue working (parseTask fallback, hooks detect v3 via
phases/directory presence) - No changes to: SPEC skill, KNOWLEDGE format, grepai hooks, review skill, teardown skill
v2.16.4 (2026-02-28)
brewcode
Added
- bc-knowledge-manager -- new
prune-rulesmode: removes avoids/best-practice entries from KNOWLEDGE.jsonl after export to rules, leaves only info entries - start/SKILL.md -- Step 5 (Complete): added mandatory
bc-knowledge-managercall withprune-rulesmode afterbrewcode:rules
Changed
- docs/flow.md -- added section g) KNOWLEDGE Pipeline with full lifecycle diagram
- docs/commands.md --
/brewcode:startsection supplemented with "KNOWLEDGE -> Rules (automatic)" subsection - skills/start/README.md -- steps 7-8 describe actualization and cleanup of KNOWLEDGE
- README.md (root) -- "Knowledge lifecycle" section describes accumulation and conversion of KNOWLEDGE
v2.16.3 (2026-02-28)
brewcode
Added
- standards-review SKILL.md -- Phase 0: asks user via
AskUserQuestionbefore analysis -- whether to run/simplifyat the end or not - standards-review SKILL.md -- Phase 7: conditional
Skill(simplify)invocation after report if user chose "Yes" - standards-review SKILL.md -- added
AskUserQuestionandSkilltoallowed-tools
v2.16.2 (2026-02-28)
brewcode
Fixed
- spec SKILL.md -- Feature Splitting Check now numbered as step 2.5 in the ordered workflow instead of a floating section
- spec SKILL.md -- reviewer loop capped at MAX 3 iterations with user escalation
- SPEC-creation.md -- added Scope row to Consolidation Rules table
- SPEC-creation.md -- fixed timing estimate from "3 turns" to "5-8 turns depending on review iterations"
- SPEC-creation.md -- fixed
Task(agent=...)toTask(subagent_type=...)for Claude Code Task tool API consistency - plan SKILL.md -- fixed
subagent_type="reviewer"tosubagent_type="brewcode:reviewer"in traceability check (Step 7) - plan SKILL.md -- added Lightweight Plan Review step (2 agents, 2/2 consensus) to Plan Mode workflow
- plan SKILL.md -- clarified KNOWLEDGE.jsonl creation as 0-byte empty file with explicit
touchcommand - plan SKILL.md -- added gap remediation instruction after traceability check (Step 7)
v2.16.1 (2026-02-28)
brewcode
Added
- SPEC.md.template -- added Success Metrics, Non-Functional Requirements, and Acceptance Criteria sections
- Success Metrics: measurable targets with how-to-measure column
- NFR: Performance, Security, Scalability, Reliability with specific targets
- Acceptance Criteria: Given/When/Then format for verifiable conditions
- spec SKILL.md -- enhanced requirements gathering and feature splitting
- Expanded from 1-4 to 3-7 questions, batched up to 4 per AskUserQuestion call
- 5 mandatory question categories: Scope, NFR, Acceptance Criteria, Constraints, Edge cases
- Feature Splitting Check: auto-suggests task split when scope >3 areas or >12 phases
- Added NFR/Quality row to partition research areas table
- SPEC-creation.md -- added NFR category, AC consolidation guidance, updated example partition
- PLAN.md.template -- added Technology Choices section (decision, rationale, alternatives)
- plan SKILL.md -- improved quorum review and traceability
- Mixed quorum: Plan + architect + reviewer (replaces 3x Plan agents)
- Technology Choices substep (5.5) for documenting non-trivial decisions
- Traceability check: Scope items, Acceptance Criteria, NFR all mapped to phases
Updated Files
| File | Change |
|---|---|
skills/setup/templates/SPEC.md.template |
+3 sections: Success Metrics, NFR, Acceptance Criteria |
skills/spec/SKILL.md |
Enhanced questions, feature splitting, NFR/Quality area |
skills/spec/references/SPEC-creation.md |
NFR category, AC guidance, updated example |
skills/plan/SKILL.md |
Mixed quorum, tech choices step, traceability |
skills/setup/templates/PLAN.md.template |
+Technology Choices section |
plugin.json |
Version 2.16.0 -> 2.16.1 |
v2.16.0 (2026-02-28)
brewcode
Removed
brewcode:auto-syncskill -- moved to dedicatedbrewdocpluginbd-auto-sync-processoragent -- moved tobrewdocplugin
Notes
- Users of
/brewcode:auto-syncshould installbrewdocplugin and use/brewdoc:auto-sync
brewdoc
New Skills
brewdoc:md-to-pdf-- Markdown to PDF converter with dual engine support (reportlab/weasyprint), style customization, test mode, dependency management
Initial Release (v1.0.0)
brewdoc:auto-sync-- Universal documentation sync (moved from brewcode)brewdoc:my-claude-- Generate Claude Code installation docsbrewdoc:memory-- Optimize Claude Code memory files interactively
v2.15.7 (2026-02-26)
brewcode
Fixed
- plugin.json -- removed explicit
"hooks": "./hooks/hooks.json"from manifesthooks/hooks.jsonis auto-discovered by Claude Code, explicit declaration caused duplicate loading error- Error: "Duplicate hooks file detected: ./hooks/hooks.json resolves to already-loaded file"
Updated Files
| File | Change |
|---|---|
plugin.json |
Removed hooks field (auto-discovered) |
v2.15.6 (2026-02-21)
brewcode
Changed
- agent-creator agent -- added "Reference-Aware Skills" section
- Guidance for agents spawned from skills with
references/directories - Size-based approach: <50 lines inline into prompt, >50 lines use
$BC_PLUGIN_ROOTpath
- Guidance for agents spawned from skills with
- skill-creator agent -- added "Reference Splitting Strategy" section
- When to split references into per-mode files (criteria & thresholds)
- Loading patterns: conditional (lazy), unconditional single, unconditional multi
- 3-step pattern template (detect -> read -> validate)
- New anti-pattern: "All references loaded unconditionally in multi-mode skill"
Updated Files
| File | Change |
|---|---|
agents/agent-creator.md |
Reference-Aware Skills section |
agents/skill-creator.md |
Reference Splitting Strategy section, loading patterns, anti-pattern |
v2.15.5 (2026-02-20)
brewcode
Changed
- auto-sync --
<auto-sync-override>body block replaced with frontmatter fieldauto-sync-override:(multiline YAML) - bd-auto-sync-processor -- reads override from frontmatter; optionally synthesizes and writes
auto-sync-override:to frontmatter when not defined by prompt or file body - sync-doc/agent/skill/rule --
preserve:references updated to frontmatter field - skills skill -- renamed from
skillsuptoskillsfor naming consistency
[2.15.4] - 2026-02-19
brewcode
Added
- spec/plan SKILL.md --
-n/--noaskflag to skip all user questions and auto-approve defaultsspec: skips AskUserQuestion in requirements gathering and SPEC validation stepsplan: skips phase-split presentation and review result confirmation- Argument hint updated:
[-n] <description>for spec,[-n] [task-dir|SPEC.md|plan-file]for plan
Fixed
- auto-sync review fixes -- 11 issues resolved from code review
- C10: Removed dead code in
index-ops.sh(macOS date detection, both branches identical) - C3: Agent description "sub-agents" -> "direct tool calls" in
bd-auto-sync-processor.md - C16: Override wording "augment (not replace)" -> "augment or selectively override"
- C18: Fixed misleading coordinator comment (post-task.mjs skip note)
- C7: Removed NEXT ACTION section (no task directory for standalone auto-sync)
- C4: Replaced unreachable
claude-code-guidereferences withGrepacross 6 files - C5: INDEX update now conditional on error status (errors skip update for retry)
- C17: Added
preserve:override guidance to all 5 instruction files - C2: Wired optimize flag end-to-end (SKILL.md -> agent -> instructions)
- PLUGIN_ROOT: Fixed input format --
{plugin_root}->$BC_PLUGIN_ROOT(hook-injected) - Tool column: Removed stale
Explore (...)wrapper from 5 instruction files
- C10: Removed dead code in
Updated Files
| File | Change |
|---|---|
agents/bd-auto-sync-processor.md |
7 fixes: description, trust table, override, coordinator, NEXT ACTION, optimize, PLUGIN_ROOT |
skills/auto-sync/SKILL.md |
Error-conditional INDEX update, optimize flag pass-through |
skills/auto-sync/scripts/index-ops.sh |
Dead code removal |
skills/auto-sync/instructions/sync-skill.md |
Tool names, preserve guidance |
skills/auto-sync/instructions/sync-agent.md |
Tool names, preserve guidance |
skills/auto-sync/instructions/sync-config.md |
Tool names, preserve guidance |
skills/auto-sync/instructions/sync-doc.md |
Tool names, preserve guidance |
skills/auto-sync/instructions/sync-rule.md |
Tool names, preserve guidance |
[2.15.3] - 2026-02-18
brewcode
Fixed
- update-plugin.sh --
claude plugincommands reset stdout in non-TTY- Output buffered to
/tmp/brewcode-update.logviatee - Uninstall+install flow when cache is missing (
updateskips reinstall) - Version match check (plugin.json <-> marketplace.json) before start
- Filesystem verification after install (cache dir + file count)
jqfor JSON parsing instead of fragilegrep+sed
- Output buffered to
- clean-plugin-cache.sh -- added
--allflag for full cache wipe- Fixed
${@}crash withset -uwhen no arguments passed
- Fixed
Updated Files
| File | Change |
|---|---|
.claude/scripts/update-plugin.sh |
Log buffering, uninstall+install, jq, verification |
.claude/scripts/clean-plugin-cache.sh |
--all flag, set -euo pipefail, ERR trap |
[2.15.2] - 2026-02-18
brewcode
Changed
- Documentation -- translated all docs from Russian to English
INSTALL.md,README.md,grepai.md-- full translationdocs/commands.md,docs/file-tree.md,docs/flow.md,docs/hooks.md-- full translation
- README.md -- added 6 missing skills to commands table
mcp-config,secrets-scan,skillsup,standards-review,text-optimize,text-human
Updated Files
| File | Change |
|---|---|
README.md |
Added missing skills, fixed doc link text |
brewcode/INSTALL.md |
RU -> EN |
brewcode/README.md |
RU -> EN |
brewcode/docs/commands.md |
RU -> EN |
brewcode/docs/file-tree.md |
RU -> EN |
brewcode/docs/flow.md |
RU -> EN |
brewcode/docs/hooks.md |
RU -> EN |
brewcode/grepai.md |
RU -> EN |
[2.15.1] - 2026-02-16
brewcode
Added
- forced-eval hook -- auto-skill activation via plugin hooks
hooks/forced-eval.mjs-- UserPromptSubmit hook (84% skill activation rate)- Reminder:
[SKILL?] Check available skills. If one matches this request, use Skill tool before responding. - No manual installation required -- works automatically with plugin
Changed
- skillsup skill -- removed
setupmode (hook now in plugin)- Modes:
list,up,create(was:list,setup,up,create)
- Modes:
Removed
skillsup/scripts/install-hook.sh-- moved to plugin hooksskillsup/references/forced-eval-hook.mjs-- moved to plugin hookssetup/references/forced-eval-hook.mjs-- not needed (plugin hook)- Phase 5 from setup skill -- hook installation not needed
[2.15.0] - 2026-02-15
brewcode
Changed
- Distribution -- plugin renamed
focus-task->brewcode, marketplace re-registeredrepositoryURL fixed:user/->kochetkov-ma/- Added
homepage,author.url,tags,metadatablock to marketplace.json - Removed placeholder
owner.email
- CLAUDE.md -- added Distribution section, fixed skills count (10 -> 15)
- update-plugin.sh -- fixed path
plugins/brewcode/->brewcode/ - claude-plugin-guide skill -- major update (v2.0.0)
- Fixed:
agentsfield IS supported in plugin.json - Added: all 14 hook events, hook types (command/prompt/agent)
- Added: auto-update, team config, marketplace restrictions
- Updated: official docs URLs (code.claude.com)
- Fixed:
Files
.claude-plugin/marketplace.json-- full metadata, correct URLsbrewcode/.claude-plugin/plugin.json-- added homepage, author.url.claude/scripts/update-plugin.sh-- fixed version path.claude/skills/claude-plugin-guide/SKILL.md-- v2.0.0CLAUDE.md-- Distribution section
[2.14.3] - 2026-02-13
brewcode
Changed
- auto-sync skill -- excluded managed directories from auto-scan
rules/,agents/,skills/no longer scanned in PROJECT/GLOBAL modes- Explicit path required:
/brewcode:auto-sync .claude/rules - Prevents unintended mass updates to structured content
Files
skills/auto-sync/SKILL.md-- added managed directories documentationskills/auto-sync/scripts/discover.sh-- added exclusion logic
[2.14.2] - 2026-02-13
brewcode
Changed
- text-optimize skill -- description converted to one-line format
- Matches agent description style:
"Optimizes text/docs for LLM efficiency. Triggers: ..." - Removed multi-line
|YAML block, replaced with single quoted string
- Matches agent description style:
Files
skills/text-optimize/SKILL.md-- description field
[2.14.1] - 2026-02-13
brewcode
Changed
- skill-creator agent -- description rules tightened
- ONE line only (no multiline
|in YAML) - 150-300 chars limit (was 1024)
- Template:
[What it does]. Use when - [scenarios]. Trigger keywords - [keywords]. Triggers -section dropped (saves ~80 chars)- All examples updated to single-line format
- Validation checklists updated
- ONE line only (no multiline
Files
agents/skill-creator.md-- 10 edits across description rules, template, examples, validation
[2.14.0] - 2026-02-13
brewcode
Added
- text-optimize rules -- 4 new rules from multi-agent research (8 parallel agents)
- S.7: Consistent Terminology -- one term per concept, no synonyms. Source: agent-skills best-practices (official)
- S.8: One-Level Reference Depth -- no ref chaining A->B->C. Source: agent-skills best-practices (official)
- P.5: Instruction Order (Anchoring) -- critical constraints first. Source: ACM FAT 2025 (peer-reviewed)
- P.6: Default Over Options -- recommend one default, exceptions only. Source: agent-skills best-practices (official)
- 2 new anti-patterns: overloading single prompts, over-focusing on wording
- Total rules: 27 -> 31 (27 verified, 4 conditional)
Changed
- text-optimizer agent -- Step 0 validation rewritten
- Removed Bash
test -f(agent doesn't have Bash tool) - Now uses Read tool + header verification (
## C - Claude Behavior,## Summary) - Explicit stop condition if read fails or headers missing
- Removed Bash
- text-optimizer agent -- Step 2 rule ranges updated (S.1-S.8, P.1-P.6)
- text-optimize SKILL.md -- Rule ID Quick Reference, ID-to-Rule Mapping, Mode-to-Rules updated for new rules
Files
skills/text-optimize/references/rules-review.md-- +4 rules, +2 anti-patterns, +1 sourceskills/text-optimize/SKILL.md-- updated tables and mappingsagents/text-optimizer.md-- Step 0 rewrite, Step 2 range update
[2.13.2] - 2026-02-13
brewcode
Fixed
-
skill-creator agent -- path resolution rules clarified
- Added
CRITICAL: USE RELATIVE PATHS!warning - Direct calls (Read, Bash in SKILL.md) -> relative paths (
scripts/foo.sh) - Exception: passing path to agent via Task tool -> use
$BC_PLUGIN_ROOT - Table with NEVER / ALWAYS examples
- Added
-
skillsup skill -- fixed absolute paths bug
- Changed
$BC_PLUGIN_ROOT/skills/skillsup/scripts/...->scripts/... - 3 bash commands now use relative paths
- Changed
Files
agents/skill-creator.md-- Resource Path Resolution section rewrittenskills/skillsup/SKILL.md-- relative paths for bash commands
[2.13.1] - 2026-02-13
brewcode
Changed
-
skill-creator agent -- invocation type awareness
- Added
AskUserQuestiontool for clarifying who invokes skill - User-only skills (
disable-model-invocation: true) get simple one-liner description - LLM-invocable skills require full trigger optimization
- Decision table: user-only vs LLM-only vs both
- Added
-
skillsup skill -- simplified description
- One-liner description (user-invocable only, no triggers needed)
- Added
AskUserQuestionto allowed-tools
Files
agents/skill-creator.md-- invocation type section, description optimization splitskills/skillsup/SKILL.md-- simplified frontmatter
[2.13.0] - 2026-02-13
brewcode
Added
- skillsup skill -- skill management with 84% activation rate
listmode: scan global/project/plugin skills as markdown tablesetupmode: install forced-eval hook (UserPromptSubmit) + settings.jsonupmode: improve skills via skill-creator agent (parallel for folders)createmode: research (Explore + WebSearch) then create skill- Shorthand:
/skillsup <path>defaults toupmode - Based on Scott Spence forced-eval technique
Files
skills/skillsup/SKILL.md-- main skill with 4 modesskills/skillsup/README.md-- documentationskills/skillsup/scripts/list-skills.sh-- scans 3 locationsskills/skillsup/scripts/install-hook.sh-- installs hook + updates settingsskills/skillsup/references/forced-eval-hook.mjs-- UserPromptSubmit hook
[2.12.4] - 2026-02-13
brewcode
Changed
- skill-creator agent -- major update for activation reliability
- Added "Activation Reality" section: 20-50% baseline rate, GitHub issues
- Added "Criticality Strategy": Critical -> slash command (100%), Important -> optimized (50-72%)
- Added "Description Optimization": trigger keywords pattern, "Use when:" template
- Added "Activation Checklist" in validation step
- Added "Troubleshooting Activation" section with debug steps
- Updated all examples with optimized descriptions
- Verified all GitHub issues are OPEN: #10768, #13919, #15136, #9716
- Removed closed/duplicate issues: #12679, #4182, #17283
Sources
[2.12.3] - 2026-02-12
brewcode
Changed
-
Skill path normalization -- all skills now use relative paths
- Removed unreliable
$FT_PLUGINvariable (bash isolation issues) - Removed non-existent
$CLAUDE_PLUGIN_ROOTreferences - Removed cache path hacks (
ls -vd ~/.claude/plugins/cache/...) - Skills reference own resources via relative paths:
scripts/,references/
- Removed unreliable
-
Agent path normalization -- agents use injected
$BC_PLUGIN_ROOT- Removed
{PLUGIN_ROOT}placeholders from agent docs - Agents receive
BC_PLUGIN_ROOTvia pre-task.mjs injection - Fixed bc-coordinator.md and bash-expert.md
- Removed
-
File reorganization -- templates moved to skill directories
scripts/teardown.sh->skills/teardown/scripts/teardown.shtemplates/SPEC-creation.md->skills/spec/references/SPEC-creation.mdtemplates/*.template(4 files) ->skills/setup/templates/setup.shupdated to use newSETUP_TEMPLATESpath
Updated Files
| File | Change |
|---|---|
skills/teardown/SKILL.md |
Relative scripts/teardown.sh |
skills/text-optimize/SKILL.md |
$BC_PLUGIN_ROOT + context instruction |
skills/standards-review/SKILL.md |
Relative references/ paths |
skills/grepai/SKILL.md |
Relative paths (13 scripts) + agent context |
skills/setup/SKILL.md |
Relative paths (7 scripts) + agent context |
skills/spec/SKILL.md |
Agent context instructions |
skills/plan/SKILL.md |
Agent context instructions |
skills/auto-sync/SKILL.md |
Relative paths + agent context |
skills/rules/SKILL.md |
Relative paths + agent context |
skills/text-human/SKILL.md |
Agent context instructions |
skills/install/SKILL.md |
Relative paths (8 scripts) |
skills/setup/scripts/setup.sh |
SETUP_TEMPLATES variable |
agents/bc-coordinator.md |
$BC_PLUGIN_ROOT for templates |
agents/bash-expert.md |
$BC_PLUGIN_ROOT instructions |
[2.12.2] - 2026-02-12
brewcode
Added
- skill-creator agent -- "Resource Path Resolution" section
- Documents that skills receive base directory at execution
- Relative paths to resources (references/, scripts/, assets/) resolve automatically
Updated Files
| File | Change |
|---|---|
agents/skill-creator.md |
Added Resource Path Resolution section |
[2.12.1] - 2026-02-12
brewcode
Added
- BC_PLUGIN_ROOT injection -- plugin root path available to skills and agents
session-start.mjs: injectsBC_PLUGIN_ROOTintoadditionalContextfor main conversationpre-task.mjs: injectsBC_PLUGIN_ROOTas first injection for ALL subagents- Enables skills to reference plugin files:
$BC_PLUGIN_ROOT/skills/text-optimize/references/...
Updated Files
| File | Change |
|---|---|
hooks/session-start.mjs |
BC_PLUGIN_ROOT in additionalContext |
hooks/pre-task.mjs |
BC_PLUGIN_ROOT injection for all agents |
docs/hooks.md |
"BC_PLUGIN_ROOT variable" section |
CLAUDE.md |
"Plugin Variables" section |
[2.12.0] - 2026-02-11
brewcode
Fixed
-
Skill frontmatter -- removed invalid
context: sessionfrom 5 skills- auto-sync, grepai, spec, plan, start -- now use inline mode (required for Task tool)
-
EXECUTE markers -- added missing markers to bash blocks
- auto-sync: 3 blocks in sync phase (Setup INDEX, discover.sh, index-ops.sh)
- secrets-scan: Phase 1 setup block
-
STOP conditions -- added after critical bash blocks
- secrets-scan:
> **STOP if ERROR** -- must run in git repository
- secrets-scan:
-
text-optimize -- fixed
subagent_type: "brewcode:text-optimizer"->"text-optimizer"
Added
- spec/references/SPEC-creation.md -- parallel research instructions and consolidation rules (125 lines)
- scripts/teardown.sh -- restored plugin-level cleanup script
Changed
- spec/SKILL.md -- references updated to
references/SPEC-creation.md - teardown -- script moved from skill directory to
brewcode/scripts/
Structure Improvements
| Skill | Before | After |
|---|---|---|
| spec | 78% | 90% |
| auto-sync | 85% | 100% |
| secrets-scan | 71% | 97% |
| teardown | 60% | 90% |
[2.10.0] - 2026-02-11
brewcode
Added
- Agent documentation enriched -- 3 agents updated with official plugin-dev content
| Agent | New Sections | Examples |
|---|---|---|
agent-creator.md |
Agent Architect Process (6 steps), System Prompt Patterns (4 archetypes), Color Semantics, Triggering Examples Guide | code-reviewer, test-generator, doc-generator, security-analyzer |
skill-creator.md |
Official Six-Step Creation Process, Word Budget (1,500-2,000), Scripts Design guidance | commit, pr-review, codebase-qa, deploy |
hook-creator.md |
10 Hook Patterns (Official), Advanced Techniques (Multi-Stage, State Sharing, Caching), Hook Type Selection, Lifecycle Note | Security Gate, Test Enforcement, Context Injection, Tool Logger |
Changed
- skill-creator.md -- Creation Process section rewritten to Official Six-Step format
- Step 2: Plan Reusable Contents (scripts, reference docs, assets)
- Step 5: Validate and Test with detailed checklist
- Word budget: 1,500-2,000 words target
Sources
claude-plugins-official/plugins/plugin-dev/skills/agent-development/claude-plugins-official/plugins/plugin-dev/skills/skill-development/claude-plugins-official/plugins/plugin-dev/skills/hook-development/
[2.9.5] - 2026-02-11
brewcode
Fixed
- setup SKILL.md Phase 5 -- explicit instructions to use script output verbatim
- Added CRITICAL warning: DO NOT add agents manually
- Step 1: clarified output is ready-to-insert content
- Step 4: must read
/tmp/agents-section.mdand use EXACT content - Prevents LLM from ignoring script output and adding internal agents
[2.9.4] - 2026-02-11
brewcode
Changed
- setup.sh
agentsmode -- excludes internal plugin agents from listing- Internal agents (bc-coordinator, bc-grepai-configurator, bc-knowledge-manager) not shown
- These agents are only called by the plugin itself, not by users
Updated Files
skills/setup/scripts/setup.sh-- INTERNAL_AGENTS filter added
[2.9.2] - 2026-02-11
brewcode
Added
- setup.sh
agentsmode -- collects agents for CLAUDE.md update- Outputs LLM-optimized table with 3 columns: Name, Scope, Purpose
- Collects: system agents (hardcoded), global (~/.claude/agents/), plugin (PLUGIN_ROOT/agents/)
- Purpose truncated to 5 words for token efficiency
- SKILL.md Phase 5 -- Update Global CLAUDE.md Agents
- Collects agents via
setup.sh agents - LLM analyzes existing CLAUDE.md to find agent sections
- User confirmation before replacement
- Edit-based replacement preserves non-agent content
- Collects agents via
Updated Files
| File | Change |
|---|---|
skills/setup/scripts/setup.sh |
Added collect_agents() function, agents mode |
skills/setup/SKILL.md |
Added Phase 5 with 4 steps |
[2.9.1] - 2026-02-10
brewcode
Fixed
- hooks.md -- synchronized handoff entry type documentation
writeHandoffEntry()uses"t":"check"for priority during compactification- Documentation incorrectly stated
"t":"info"
[2.9.0] - 2026-02-10
brewcode
Added
- bc-rules-organizer agent -- plugin agent for rules organization
- Moved from global
~/.claude/agents/rules-organizer.mdto pluginagents/bc-rules-organizer.md - Added
Bashtool,permissionMode: acceptEdits - Aligned table formats with rules skill:
| # | Avoid | Instead | Why |,| # | Practice | Context | Source | - Numbered entries, max 20 rows, semantic deduplication, specialized
{prefix}-*.mdfiles
- Moved from global
Changed
- Rules skill -> delegator -- skill delegates all work to
bc-rules-organizeragent- Removed
context: session(inline, can spawn agents via Task) allowed-tools:Read, Write, Edit, Glob, Grep, Bash->Read, Bash, Task- Skill handles: mode detection, knowledge preparation, agent spawn
- Agent handles: extraction, optimization, file creation, validation
- Removed
- Removed
rules-organizerfrom global agents -- no longer in system agents list- Updated
hooks/lib/utils.mjs,templates/brewcode.config.json.template,docs/hooks.md
- Updated
Updated Files
| File | Change |
|---|---|
agents/bc-rules-organizer.md |
NEW -- moved from global, ft- prefix, Bash tool |
skills/rules/SKILL.md |
Rewrite: thin delegator to bc-rules-organizer |
hooks/lib/utils.mjs |
Removed rules-organizer from system agents |
templates/brewcode.config.json.template |
Removed rules-organizer from agents |
docs/hooks.md |
Removed rules-organizer from default agents |
[2.8.0] - 2026-02-10
brewcode
Added
- Rules skill enhanced -- 4 modes for flexible rule management
session-- Extract from conversation context (default)file-- Extract from KNOWLEDGE.jsonl fileprompt-- Targeted update with instruction (/brewcode:rules <path> <prompt>)list-- Show all existing rule files
- Specialized rule files -- prefix-based rules for domain separation
- Pattern:
{prefix}-avoid.md,{prefix}-best-practice.md - Examples:
test-avoid.md,sql-best-practice.md,security-avoid.md - Auto-created when prompt mode detects target domain
- Pattern:
Changed
- rules.sh -- added
list_rules()andcreate_specialized()functions - SKILL.md -- updated
argument_hint: "[mode] [path] [prompt]", new mode detection table
Updated Files
| File | Change |
|---|---|
skills/rules/SKILL.md |
4 modes, specialized files docs, prompt mode logic |
skills/rules/scripts/rules.sh |
list_rules(), create_specialized(), updated validation |
[2.7.2] - 2026-02-09
brewcode
Fixed
- Hook message routing -- fixed
systemMessagevsadditionalContextacross 4 hookssession-start.mjs: addedsystemMessagewith plugin path + session ID for user consolegrepai-session.mjs: moved "USE grepai_search FIRST" fromsystemMessagetoadditionalContextpre-compact.mjs: replaced<ft-handoff>XML block with short status insystemMessagestop.mjs: split blockreason(user) fromadditionalContext(Claude instructions)
- docs/hooks.md -- 16 discrepancies fixed via multi-agent verification
- Removed undocumented session mapping feature (4 references)
- Fixed post-task timeout: 30s -> 5s (matched hooks.json)
- Fixed all post-task prompts:
systemMessage->additionalContext - Added PID-file detection for watch/mcp-serve (v2.7.0 feature)
- Added grepai-reminder 60s throttle documentation
- Updated role detection patterns (added qa, sdet, auditor, engineer, builder, fixer)
- Removed
catfield from KNOWLEDGE.jsonl format (removed in v2.7.0) - Fixed TASK.md -> PLAN.md in stop block message and lifecycle diagram
Updated Files
| File | Change |
|---|---|
hooks/session-start.mjs |
Added systemMessage with plugin path |
hooks/grepai-session.mjs |
Reminder -> additionalContext |
hooks/pre-compact.mjs |
Short status instead of XML block |
hooks/stop.mjs |
Split reason/additionalContext |
docs/hooks.md |
16 fixes across all sections |
[2.7.1] - 2026-02-09
brewcode
Fixed
- Review skill
context: fork->session-- review template hadcontext: forkwhich prevents Task tool usage; review is built entirely on parallel agent spawning via Task tool, soforkmade it non-functional- File:
templates/skills/review/SKILL.md.template
- File:
[2.7.0] - 2026-02-09
brewcode
Added
- docs/ directory -- 4 comprehensive documentation files extracted from README.md
commands.md,file-tree.md,flow.md,hooks.md(~166KB total)
- llm-text-rules.md -- shared LLM text rules for auto-sync instructions (DRY)
- HOOKS-REFERENCE.md -- Claude Code hooks reference (
user/features/) - Security hardening -- path traversal protection, atomic lock/state writes, bind race detection
validateTaskPath(),createLock()with tmp+rename pattern- Lock schema validation with auto-cleanup of corrupted locks
- Config recursion guard -- prevents infinite loop in
loadConfig()via_loadingConfigflag - Deep merge for nested config --
knowledge.validation,agents.systemproperly merged - Grepai reminder throttling -- max once per 60s via
.grepai/.reminder-ts - PID-file-based process detection --
watch.pid/mcp-serve.pidbefore pgrep fallback - Expanded status model --
cancelled,errorstatuses in bc-coordinator;handoffat init - Handoff-after-compact context -- session-start injects re-read instruction on compact source
- Teardown confirmation --
AskUserQuestionprompt for non-dry-run teardown <instructions>tags -- added to spec, plan, start SKILL.md for proper skill boundaries
Changed
- README.md rewritten -- 836 -> 101 lines; detailed docs moved to
docs/ - KNOWLEDGE.jsonl schema simplified -- removed
cat(category) andscopefields - MANIFEST.md eliminated -- all references removed from coordinator, templates, hooks
- Scope-aware retention removed -- flat
maxEntries=100replaces global:50/task:20 split - Compact threshold -- 50% -> 80% of maxEntries
- Hook output routing -- multiple hooks switched to
hookSpecificOutput.additionalContext - SessionStart hooks split -- session-start.mjs and grepai-session.mjs run independently
- Phase detection improved -- h2/h3 support, excludes verification phases, checkbox counting
- Constraint injection expanded -- ALL constraints for every non-system agent; expanded role regex
- Shell script hardening --
set -euo pipefail,command -vreplacingwhich, curl timeouts - bc-coordinator -- simplified status updates, removed MANIFEST,
catfield removed - bc-knowledge-manager -- removed scope/categories, dedup key 100 chars, maxEntries 100
- Config simplified -- removed
autoCompactThreshold,retention,stop.maxAttempts - PLAN.md.template -- simplified metadata, added
r(R&D) iteration type, removed MANIFEST - SPEC.md.template -- added Scope section, simplified headers
- Rule templates -- removed
description:from YAML frontmatter - package.json -- version synced to 2.7.0, author name corrected
- install.sh --
|| truefor version extractions,mktempfor temp files
Fixed
- Config recursion infinite loop --
log -> shouldLog -> getLogLevel -> loadConfig -> log - Config cache never populated --
cachedConfigCwdplaced after unreachable validation - Shallow config merge -- nested keys (
knowledge.validation,agents.system) lost - Lock bind race condition -- atomic tmp+rename with ownership verification
- State file corruption --
saveState()now uses atomic writes - Path traversal in TASK.md -- rejects
.., anchors regex - stop.mjs crash --
typeofguard onsession_id, error handler cleans lock - stop.mjs references TASK.md -- corrected to PLAN.md
- pre-compact null task -- added null check for
parseTask()return - install.sh pipeline failures --
|| trueprevents silent exits underset -euo pipefail - grepai index error swallowed -- now reports "error" and logs warning
Removed
templates/hooks/grepai-session.mjs.template-- built-in hook replaces templatetemplates/reports/MANIFEST.md.template-- MANIFEST concept removedtemplates/review-report.md.template-- review reporting simplified- 6 exported functions --
extractStatus,findCurrentPhase,writeSessionInfo,getTaskDirFromSession,classifyScope,appendKnowledgeValidated cat/scopefields from KNOWLEDGE.jsonl schema- Config keys --
autoCompactThreshold,retention,stop.maxAttempts,removeOrphansAfterDays .claude/tasks/specs/directory creation in setup.sh
Breaking Changes
- KNOWLEDGE.jsonl:
catandscopefields no longer written (existing entries tolerated) - MANIFEST.md no longer created/maintained
- 6 functions removed from public API (validateEntry, classifyScope, etc.)
getReportsDir()signature:cwdparameter removed
[2.6.0] - 2026-02-08
brewcode
Added
- 2-stage creation flow --
spec->plan(replaces monolithiccreate)/brewcode:spec-- Creates SPEC through research + AskUserQuestion interaction/brewcode:plan-- Creates PLAN from SPEC or Plan Mode file with user approval/brewcode:create-- Removed (usespec+planseparately)
- User interaction during creation -- AskUserQuestion for clarifying scope, validating decisions
- Task directory structure -- All task files grouped in
{TS}_{NAME}_task/directory - Session mapping --
sessions/{session_id}.infofor O(1) task lookup - Per-task lock --
.lockinside task directory (was globalcfg/.brewcode.lock)
Breaking Changes
- Task files moved from flat
.claude/tasks/to.claude/tasks/{TS}_{NAME}_task/ TASK.mdrenamed toPLAN.md- SPEC moved from
specs/to task directory KNOWLEDGE.jsonlmoved to task directory- Reports directory renamed to
artifacts/inside task directory - Phase directory naming:
phase_{P}/iter_{N}_{type}/->{P}-{N}{T}/ TASK.md.templaterenamed toPLAN.md.template
Updated Files
| File | Change |
|---|---|
skills/spec/SKILL.md |
NEW -- spec creation skill (7-step workflow) |
skills/plan/SKILL.md |
NEW -- plan creation skill (dual input: SPEC/Plan Mode) |
skills/create/ |
Removed (replaced by spec + plan) |
templates/PLAN.md.template |
NEW -- renamed from TASK.md.template |
templates/SPEC.md.template |
Rewrite: analytical format (91 -> 42 lines) |
templates/SPEC-creation.md |
Updated paths and section names |
hooks/lib/utils.mjs |
Major refactor: 5 new functions, per-task lock |
hooks/pre-compact.mjs |
Compact phase dirs, artifacts/ |
hooks/stop.mjs |
Per-task lock path |
hooks/session-start.mjs |
Session mapping |
hooks/pre-task.mjs |
Absolute path fix for knowledge |
agents/bc-coordinator.md |
Artifacts paths, PLAN.md refs |
agents/bd-auto-sync-processor.md |
Artifacts path |
templates/reports/MANIFEST.md.template |
Removed |
templates/reports/FINAL.md.template |
Artifacts index |
templates/instructions-template.md |
Full path migration |
templates/rules/post-agent-protocol.md.template |
Path glob fix |
skills/start/SKILL.md |
PLAN.md, artifacts paths |
skills/setup/SKILL.md |
PLAN.md.template refs |
skills/setup/scripts/setup.sh |
PLAN.md.template sync |
skills/teardown/SKILL.md |
Task dir structure |
skills/teardown/teardown.sh |
Task dir references |
README.md |
Full path migration (20+ refs) |
Migration
Existing tasks are not automatically migrated. New tasks use the new structure.
Run /brewcode:setup to update adapted templates.
[2.5.0] - 2026-02-08
brewcode
Changed
- Auto-sync INDEX v2 -- simplified from 8 fields to 4 (
p,t,u,pr)- Removed:
m(mtime),h(hash),v(version),s(status) - Dates: ISO8601 ->
YYYY-MM-DD - Protocol values:
default/custom->default/override - New type:
config(forCLAUDE.mdfiles)
- Removed:
- Auto-sync instructions system -- type-specific sync instructions
- New:
instructions/sync-{skill,agent,doc,rule,config}.md-- per-type verification checklists and research directions - Processor loads instructions dynamically instead of hardcoded logic
<auto-sync-protocol>-><auto-sync-override>with 3 fields:sources,focus,preserve
- New:
- Auto-sync SKILL.md rewrite -- simplified phases, added
-o/--optimizeflagcontext: fork->context: session(access to conversation context)- Added
Skillto allowed-tools - INIT mode simplified (no custom protocol prompt generation)
- bd-auto-sync-processor rewrite -- 364 -> 135 lines (-63%)
- Removed
Tasktool dependency -- direct Glob/Grep/Read/WebFetch calls - Loads per-type instruction files for verification checklist
- Model: opus -> sonnet
- Removed
- bc-coordinator: inline compaction -- removed
Tasktool from agent tools- Auto-compact now inline: read -> dedupe -> sort -> trim -> write
- No longer spawns bc-knowledge-manager for compaction
- bc-grepai-configurator: direct tool calls -- removed
Tasktool dependency- Phase 2: Explore agents -> direct Glob/Grep/Read calls
- Skills context:
fork->session-- auto-sync, create, grepai skills now run in session context - detect-mode.sh: FLAGS support -- 3-field output
MODE|ARG|FLAGS,-o/--optimizeflag - index-ops.sh simplified -- removed
query,hash,mtimecommands; addedthreshold_datehelper; macOS/Linux date compatibility - Review skill: Critic mode -- new
-c/--criticflag for Devil's Advocate phase- Phase 5.5 Critic + Phase 5.75 DoubleCheck Critic
- P0 priority for verified critic findings
- Auto-enable via keywords: critic
- Visual ASCII workflow diagrams in README
Added
skills/auto-sync/instructions/-- 5 type-specific instruction filesautoSyncconfig section --intervalDays,retention,optimize,parallelAgents- Validation for
autoSyncnumeric fields inutils.mjs
Fixed
- Agent name typo --
prompt-optimizer->text-optimizerin config and hooks - Removed stale PROTOCOL_REMINDER -- pre-agent priming string removed from
pre-task.mjs
Removed
skills/auto-sync/references/doc-types.md(replaced by instructions/)skills/auto-sync/references/protocol-default.md(replaced by instructions/)user/CLAUDE-CODE-RELEASES-2025-2026.mduser/CLAUDE-CODE-TASK-MANAGER-GUIDE.mduser/CONTEXT-INJECTION-GUIDE.md
Updated Files
| File | Change |
|---|---|
skills/auto-sync/SKILL.md |
Rewrite: simplified phases, -o flag, context: session |
skills/auto-sync/README.md |
Updated to match new INDEX format and override block |
skills/auto-sync/scripts/detect-mode.sh |
3-field output with FLAGS |
skills/auto-sync/scripts/discover.sh |
Updated type detection |
skills/auto-sync/scripts/index-ops.sh |
Simplified commands, date compat |
agents/bd-auto-sync-processor.md |
Rewrite: direct tools, instruction loading |
agents/bc-coordinator.md |
Inline compaction, removed Task tool |
agents/bc-grepai-configurator.md |
Direct tool calls, removed Task tool |
hooks/lib/utils.mjs |
autoSync config, agent name fix |
hooks/pre-task.mjs |
Removed PROTOCOL_REMINDER |
skills/create/SKILL.md |
context: fork -> session |
skills/grepai/SKILL.md |
context: fork -> session |
templates/auto-sync/INDEX.jsonl.template |
4-field format |
templates/brewcode.config.json.template |
autoSync section |
templates/skills/review/SKILL.md.template |
Critic phase, argument-hint |
templates/skills/review/references/agent-prompt.md |
Critic prompt |
templates/skills/review/references/report-template.md |
P0 priority section |
README.md |
Critic mode docs, workflow diagrams |
[2.4.1] - 2026-02-06
brewcode
Fixed
- C1: Role detection false positive --
name.includes('arch')->name.includes('architect')inpre-task.mjs- "search", "research", "archive" no longer misclassified as DEV role
- C2: INIT casing bug -- sed now strips first word unconditionally (was
[Ii]nitonly)INIT path.mdandiNiT path.mdnow correctly outputINIT|path.md
- H1: Stale
/brewcode:docin CLAUDE.md -- replaced with/brewcode:auto-sync - H2: Phantom
syncmode in description -- replaced with actual 6 modes - M1: Bare
initerror --detect-mode.shnow exits with error forinitwithout path - M2: Phase ordering -- STATUS/INIT phases moved before Phase 1 Setup in SKILL.md
- M3: Agent count -- README.md updated to 4 agents (added bd-auto-sync-processor)
- M4: Historical accuracy -- [2.3.0] modes list shows original values with note
- M5:
ARGS_HEREplaceholder -- replaced with$ARGUMENTSin SKILL.md - L1: Dead code -- collapsed identical if/else FILE detection branches
- L2: discover.sh JSON bug -- replaced pipe subshell with sed (comma separator fix)
- L3: Invalid hex hash --
d4e5f6g7->d4e5f607in INDEX.jsonl.template - L4: Related docs -- added auto-sync skill and bd-auto-sync-processor agent links
[2.4.0] - 2026-02-06
brewcode
Changed
- Auto-sync modes -- removed CREATE mode, added STATUS + INIT
- Removed:
create skill,create agent,create docmodes - Added:
status-- diagnostic report of INDEX state + non-indexed files - Added:
init <path> [prompt]-- add auto-sync tag + custom protocol to existing document - INIT supports LLM-optimized
<auto-sync-protocol>block generation - Phases renumbered: 6 -> 5 (CREATE phase removed)
- Modes:
status,init,global,project(default),file,folder
- Removed:
Updated Files
| File | Change |
|---|---|
skills/auto-sync/SKILL.md |
Removed Phase 2 CREATE, added STATUS + INIT phases, renumbered |
skills/auto-sync/scripts/detect-mode.sh |
Removed CREATE detection, added STATUS + INIT |
skills/auto-sync/README.md |
Updated docs, flow diagram, phase numbering |
README.md |
Updated auto-sync description and mode table |
RELEASE-NOTES.md |
Updated modes list |
[2.3.1] - 2026-02-05
brewcode
Changed
- Auto-tagging --
/brewcode:auto-syncaddsauto-sync: enabledto .md files- PROJECT/FOLDER/GLOBAL modes find ALL .md files and tag them
- SKILL.md/agent.md -> YAML frontmatter
- Other .md ->
<!-- auto-sync:enabled -->after title - No manual migration required
[2.3.0] - 2026-02-05
brewcode
Features
- KILLER FEATURE:
/brewcode:auto-sync- Universal documentation system- Replaces
/brewcode:doc - Modes (v2.3.0):
create skill|agent|doc,sync,global,project,path(CREATE removed in 2.4.0) - LLM-optimized JSONL INDEX for tracking documents
- Auto-detects document types (skill, agent, doc, rule)
- Parallel processing with
bd-auto-sync-processoragent - Custom protocols via
<auto-sync-protocol>block - Stale detection (7 days threshold)
- Replaces
Added
bd-auto-sync-processoragent for document processing- INDEX.jsonl.template for tracking synced documents
- Scripts:
discover.sh,index-ops.sh,detect-mode.sh - References:
protocol-default.md,doc-types.md
Removed
/brewcode:docskill (replaced by/brewcode:auto-sync)
Migration
If you were using /brewcode:doc, use /brewcode:auto-sync instead:
/brewcode:doc update->/brewcode:auto-sync/brewcode:doc sync->/brewcode:auto-sync
v2.2.0 (2026-02-04)
brewcode
Added
-
Role-based constraint injection -- auto-injection of constraints into agent prompts
- New tags in TASK.md:
<!-- ALL -->,<!-- DEV -->,<!-- TEST -->,<!-- REVIEW --> pre-task.mjs: role detection by agent name (developer->DEV, tester->TEST, reviewer->REVIEW)- Constraints injected at prompt start before execution
- New tags in TASK.md:
-
Knowledge validation -- filter useless entries
- Blocklist: "Working on...", "Let me...", "Looks good", "Phase N", etc.
- Min 15 chars, technical density check
validateEntry(),appendKnowledge()(with validation)
-
Scope-aware retention -- separate global/task storage
- Auto-classification: avoids->global, handoff->task, arch/config/api->global
- Compaction retains: global:50, task:20 entries
Changed
| File | Change |
|---|---|
TASK.md.template |
Added Role Constraints section with examples |
brewcode.config.json.template |
knowledge.validation: enabled, blocklist, densityCheck; knowledge.retention: global:50, task:20; constraints.enabled: true |
Updated Files
| File | Change |
|---|---|
hooks/pre-task.mjs |
Role detection, constraint injection |
hooks/lib/knowledge.mjs |
validateEntry, appendKnowledge, localCompact |
templates/TASK.md.template |
Role Constraints section |
templates/brewcode.config.json.template |
validation, retention, constraints |
agents/bc-coordinator.md |
Updated for constraints |
agents/bc-knowledge-manager.md |
Scope documentation |
v2.1.2 (2026-02-02)
brewcode
Changed
- Review skill consolidation -- removed duplicate, kept only template
- Removed:
skills/review/(static version) - Kept:
templates/skills/review/SKILL.md.template(generated) - Added:
templates/skills/review/references/(agent-prompt.md, report-template.md) - Updated: SKILL.md.template (+quorum algorithm, matching/merge rules, DoubleCheck prompt, error handling)
- Updated: setup.sh (copies references/)
- Updated: README.md (link to template)
- Removed:
v2.1.1 (2026-02-01)
brewcode
Fixed
- Agent triggers YAML -- replaced
Trigger:withTriggers -in agent descriptions- bc-coordinator.md, bc-knowledge-manager.md
- Colon in value broke YAML parsing
v2.1.0 (2026-02-01)
brewcode
Changed
-
Documentation sync -- major documentation update
- README.md: PostToolUse hook, NEXT ACTION protocol, hook matrix (7 hooks)
- CLAUDE.md: hook documentation, skill namespacing table
- grepai.md: line refs, timeout info
- user/coordinator.md: complete rewrite with NEXT ACTION
-
Template namespacing -- skill names in templates
templates/skills/review/SKILL.md.template:brewcode:reviewtemplates/review-report.md.template:brewcode:review
-
Protocol terminology -- unified
WRITE report -> CALL bc-coordinator
Updated Files
| File | Change |
|---|---|
README.md |
PostToolUse, NEXT ACTION, hook matrix |
grepai.md |
line refs :24, timeout (1s) |
templates/skills/review/SKILL.md.template |
name: brewcode:review |
templates/review-report.md.template |
brewcode:review footer |
skills/review/references/report-template.md |
brewcode:review |
CLAUDE.md (root) |
7 hooks documentation |
v2.0.73 (2026-02-01)
brewcode
Changed
- Skill namespacing -- added remaining skills
create->brewcode:createdoc->brewcode:doc
Updated Files
| File | Change |
|---|---|
skills/create/SKILL.md |
name: brewcode:create |
skills/doc/SKILL.md |
name: brewcode:doc |
v2.0.72 (2026-02-01)
brewcode
Changed
- Skill namespacing -- unified skill names with namespace
brewcode:review->brewcode:reviewrules->brewcode:rulesstart->brewcode:start
- Skill descriptions -- formatting
- Removed colons after "Triggers" in all skills
- Simplified argument-hint for
docandrules
Updated Files
| File | Change |
|---|---|
skills/review/SKILL.md |
name: brewcode:review |
skills/rules/SKILL.md |
name: brewcode:rules, argument-hint |
skills/start/SKILL.md |
name: brewcode:start |
skills/create/SKILL.md |
triggers formatting |
skills/doc/SKILL.md |
triggers formatting, argument-hint |
v2.0.71 (2026-02-01)
brewcode
Fixed
- Skill argument hints -- improved argument hints
doc: description lists modesModes - create, update, analyze, sync, alldoc: argument-hint simplified to[create|update|analyze|sync] <path>rules: argument-hint shows session mode[<path>] (empty = session mode)
Updated Files
| File | Change |
|---|---|
skills/doc/SKILL.md |
description + argument-hint |
skills/rules/SKILL.md |
argument-hint |
v2.0.68 (2026-02-01)
brewcode
Fixed
- skills/install/SKILL.md -- Output Rules for correct display
- Added Output Rules section: show FULL output, preserve tables
- Each phase has
-> Show:and-> Explain:hints - Phase 5 skipped if grepai already installed
v2.0.67 (2026-02-01)
brewcode
Fixed
- Plugin installation -- version bump to apply pending changes from v2.0.66
v2.0.66 (2026-02-01)
brewcode
Changed
- skills/install/SKILL.md -- token optimization (-42%)
- Added triggers: "install brewcode", "setup prerequisites"
- Replaced verbose JSON with compact tables
- skills/install/scripts/install.sh -- improved summary
- New format:
| Component | Status | Installed | Latest | - Shows installed AND latest available version
- Logs performed actions (Actions Performed)
- Helper functions:
log_action(),clear_actions()
- New format:
Removed
- skills/install/scripts/ -- removed 8 duplicate scripts (all in install.sh)
v2.0.65 (2026-02-01)
brewcode
Added
- skills/install -- new interactive plugin installer
- Single script
install.shwith parameters (state, required, grepai, etc.) - AskUserQuestion for optional components (ollama, grepai)
- Required timeout symlink with confirmation
- Helper functions:
ollama_running(),wait_for_ollama(),get_grepai_versions()
- Single script
Fixed
| File | Fix |
|---|---|
grepai/upgrade.sh |
grepai --version -> grepai version |
grepai/infra-check.sh |
grepai --version -> grepai version |
bc-grepai-configurator.md |
grepai --version -> grepai version |
- install.sh -- security & reliability fixes:
- curl with
--connect-timeout 2 --max-time 5 NONINTERACTIVE=1for Homebrew- Retry loop for ollama start (10 attempts)
- Guard for
ollama list(checkcommand -v ollama) - Symlink safety check (do not overwrite regular files)
- Version fallback
${VER:-unknown}
- curl with
Changed
- grepai skill -- removed
installmode, now separate skill/install - detect-mode.sh -- removed
installmode from grepai
v2.0.64 (2026-02-01)
brewcode
Fixed
-
grepai-reminder.mjs -- added async/stdin pattern
- Reads
input.cwdfrom stdin instead ofprocess.cwd() - Added try/catch with
output({})on errors - Consistency with other hooks (grepai-session, pre-task)
- Reads
-
grepai-session.mjs -- added MCP server check
- New function
checkMcpServer()checksgrepai mcp-serve additionalContextinjected only if MCP server available- Prevents useless grepai_search calls
- New function
-
mcp-check.sh -- 4 security/reliability fixes
mkdir -pbefore creating settings.jsontrap 'rm -f "$TMP_FILE"' EXITfor temp file cleanup- Path injection fix: path via
os.environ['SETTINGS_FILE'] - JSON validation after each write
-
create-rule.sh -- fallback frontmatter fix
globs:->paths:(Claude Code format)- Removed
alwaysApply:(Cursor-only field)
-
grepai.md -- documentation frontmatter fix
- 3 places:
globs:->paths:,alwaysApply:-> removed
- 3 places:
-
SKILL.md -- simplified ARGS instruction
- Removed confusing
ARGS_HEREplaceholder - Direct use of
$ARGUMENTS
- Removed confusing
Changed
- All 12 grepai scripts -- added
set -euo pipefail- detect-mode.sh, infra-check.sh, init-index.sh, start.sh, stop.sh
- reindex.sh, optimize.sh, upgrade.sh, status.sh, verify.sh
- create-rule.sh, mcp-check.sh
v2.0.63 (2026-02-01)
brewcode
Changed
- pre-task.mjs -- removed
systemMessagefrom UI- grepai reminder and knowledge injection in agent prompts works as before
- Logging to
brewcode.logpreserved - UI no longer shows "brewcode: grepai: injected"
v2.0.62 (2026-02-01)
brewcode
Changed
- create-rule.sh -- grepai rule always rewritten from template
- Removed file existence check
- Each
/brewcode:grepai setupupdates rule to current version
v2.0.61 (2026-02-01)
brewcode
Fixed
- pre-task.mjs -- grepai reminder injected for ALL agents
- Previously Explore, Plan, Bash, etc. were in system agents list -> skipped
- Now: grepai reminder -> ALL agents, knowledge injection -> only non-system
- Fixed syntax (unclosed if block)
v2.0.60 (2026-02-01)
brewcode
Fixed
- pre-task.mjs -- critical JSON structure fix
updatedInputmoved insidehookSpecificOutput(per docs)- Added
permissionDecision: 'allow'to apply changes - Without this fix, injection into agent prompts did NOT work
v2.0.59 (2026-02-01)
brewcode
Fixed
- Hooks use correct fields -- fixed per Claude Code docs
systemMessage-> shown to useradditionalContext-> goes to Claude context- For agents: reminder injected in
updatedInput.prompt
- grepai-session.mjs --
hookSpecificOutput.additionalContextfor SessionStart - grepai-reminder.mjs --
hookSpecificOutput.additionalContextfor PreToolUse Glob/Grep - pre-task.mjs -- reminder in agent prompt (not in parent's additionalContext)
v2.0.58 (2026-02-01)
brewcode
Changed
- grepai reminder everywhere -- single imperative message
grepai: USE grepai_search FIRST for code exploration
- grepai-session.mjs -- reminder at session start (when grepai ready)
- pre-task.mjs -- reminder for ALL agents (Explore, developer, etc.)
- grepai-reminder.mjs -- strengthened:
consider->USE FIRST - create-rule.sh -- adds Code Search section to project CLAUDE.md
v2.0.57 (2026-02-01)
brewcode
Changed
- grepai-reminder.mjs -- systemMessage instead of console.log
- Claude now sees reminder in context
- Message:
grepai MCP available -- consider FIRST!
v2.0.56 (2026-02-01)
brewcode
Changed
- mcp-check.sh -- automatic
allowedToolssetup for grepai- Adds
mcp__grepai__*to~/.claude/settings.json - Removes
[destructive]prompts for read-only tools
- Adds
- grepai-first.md.template -- shortened and improved
- Removed duplication with MCP descriptions
- Added inline call->response examples
- Reference to MCP: "Params -> MCP descriptions"
- status.sh, verify.sh -- show Permissions status
Updated Files
| File | Change |
|---|---|
skills/grepai/scripts/mcp-check.sh |
allowedTools auto-config |
skills/grepai/scripts/status.sh |
Permissions status |
skills/grepai/scripts/verify.sh |
Permissions check |
skills/grepai/SKILL.md |
Phase 2 docs |
templates/rules/grepai-first.md.template |
inline examples, no MCP duplication |
v2.0.55 (2026-01-31)
brewcode
Changed
- setup.sh --
grepai-first.mdsynced on every setup- Uses
sync_template(updates if changed) - No manual deletion needed for updates
- Uses
Updated Files
| File | Change |
|---|---|
skills/setup/scripts/setup.sh |
sync grepai-first.md on setup |
v2.0.54 (2026-01-31)
brewcode
Changed
- grepai-first.md.template -- complete rewrite
- Tools table with params
limit?,compact? <examples>with JSON responses for search/callers/graph- Table
limit + compact-> response -> workflow - Removed obvious content (Grep/Glob -- Claude knows)
- Tools table with params
Updated Files
| File | Change |
|---|---|
templates/rules/grepai-first.md.template |
search types, compact mode, examples |
v2.0.53 (2026-01-31)
brewcode
Added
- grepai-reminder hook -- PreToolUse hook for Glob/Grep tools
- Reminds Claude to prefer
grepai_searchwhen.grepai/exists - Debug logging via
log()utility - Non-blocking (exit 0), soft reminder only
- Reminds Claude to prefer
Updated Files
| File | Change |
|---|---|
hooks/grepai-reminder.mjs |
New hook script |
hooks/hooks.json |
Added PreToolUse matcher for Glob|Grep |
v2.0.52 (2026-01-31)
brewcode
Fixed
- grepai indexing uses
grepai watch--grepai initdoes NOT build index, only creates configreindex.sh: complete rewrite -- usesgrepai watch, polls for "Initial scan complete"init-index.sh: rewritten -- usesgrepai watch, skips if index exists- Added .grepai directory validation to init-index.sh
- Dynamic timeouts based on file count (2 min to 60 min)
Changed
- Log paths -- all scripts use
.grepai/logs/grepai-watch.log - Documentation -- updated SKILL.md and bc-grepai-configurator.md with correct
grepai watchreferences
Updated Files
| File | Change |
|---|---|
skills/grepai/scripts/reindex.sh |
Complete rewrite for grepai watch |
skills/grepai/scripts/init-index.sh |
Rewritten with validation |
skills/grepai/SKILL.md |
Updated log paths, watch references |
agents/bc-grepai-configurator.md |
Updated Phase 5, troubleshooting |
v2.0.51 (2026-01-31)
brewcode
Fixed
- reindex.sh index.gob wait -- wait up to 30s for index.gob after watch starts
- Fixes race condition where "index.gob missing" shown before watch creates it
- Shows progress: "Waiting for index.gob (watch is building)..."
v2.0.50 (2026-01-31)
brewcode
Fixed
- grepai indexing synchronous -- scripts wait for
grepai initto complete before starting watchinit-index.sh: runs init synchronously withteeto log, then starts watchreindex.sh: same fix -- waits for init, logs to.grepai/logs/grepai-init.logSKILL.md: updated warnings to reflect synchronous behaviorbc-grepai-configurator.md: updated Phase 5 indexing notes
Changed
- Log output -- init progress goes to
.grepai/logs/grepai-init.logwith timestamps - Duration tracking -- scripts show actual indexing time on completion
Updated Files
| File | Change |
|---|---|
skills/grepai/scripts/init-index.sh |
Synchronous init with logging |
skills/grepai/scripts/reindex.sh |
Synchronous init with logging |
skills/grepai/SKILL.md |
Updated async->sync warnings |
agents/bc-grepai-configurator.md |
Updated Phase 5 notes |
v2.0.49 (2026-01-31)
brewcode
Added
-
grepai gitignore docs -- documented gitignore behavior and limitations
bc-grepai-configurator.md: new "## gitignore Behavior" section- Explains 3 layers: global gitignore -> local -> config.yaml
ignore: - Workarounds table, diagnostic commands
- Updated Phase 2 agent #5 to check global gitignore
-
grepai indexing time estimates -- scripts show file count and ETA
init-index.sh: counts files, shows ETA, background indexing noticereindex.sh: same improvementsstatus.sh: shows "indexing in progress" from log activitySKILL.md: warnings after Phase 4 and reindex modebc-grepai-configurator.md: indexing time table in Phase 5
Changed
- grepai-first.md -- added Limitations section (gitignore behavior)
- CLAUDE.md -- added "### Limitations (gitignore)" in grepai section
Updated Files
| File | Change |
|---|---|
agents/bc-grepai-configurator.md |
gitignore docs, indexing time table |
skills/grepai/SKILL.md |
async indexing warnings |
skills/grepai/scripts/init-index.sh |
file count, ETA, progress commands |
skills/grepai/scripts/reindex.sh |
file count, ETA, progress commands |
skills/grepai/scripts/status.sh |
indexing progress detection |
.claude/rules/grepai-first.md |
gitignore limitations |
CLAUDE.md |
gitignore limitations |
v2.0.47 (2026-01-31)
brewcode
Removed
- Symlinks -- removed all symlink-related functionality
- Claude Code fixed plugin skill display (#18949)
- Removed Phase 5 (Enable Autocomplete) from
/brewcode:setup - Removed
linkmode from setup skill - Removed symlink creation from
setup.sh - Removed symlink removal from
/brewcode:teardown
Changed
- Skill triggers -- updated to colon syntax
/brewcode-*->/brewcode:*(plugin namespace)brewcode-reviewdirectory remains for project-local skill
Updated Files
| File | Change |
|---|---|
skills/setup/SKILL.md |
Removed Phase 5, link mode, symlink output |
skills/setup/scripts/setup.sh |
Removed symlinks mode and functions |
skills/teardown/SKILL.md |
Removed symlink mentions |
skills/teardown/teardown.sh |
Removed symlink removal loop |
skills/review/SKILL.md |
Updated trigger to :review |
skills/doc/SKILL.md |
Updated trigger to :doc |
agents/bc-coordinator.md |
Updated skill references |
templates/instructions-template.md |
Updated all skill references |
README.md |
Removed symlink references, updated examples |
CLAUDE.md |
Updated /brewcode:setup description |
v2.0.46 (2026-01-31)
brewcode
Fixed
- status.sh -- version detection for grepai CLI
- Fixed:
grepai version(subcommand) instead of--version(flag) - Fixed: macOS compatibility (removed
timeoutcommand) - Shows:
grepai: v0.25.0 (brew: v0.24.1)
- Fixed:
v2.0.45 (2026-01-31)
brewcode
Added
- grepai skill --
upgrademode for CLI updates via Homebrewscripts/upgrade.sh-- version check + brew upgrade- Keywords: upgrade, brew
- status.sh -- version comparison (current vs latest)
- Shows
v0.23.0 (v0.24.0 available)when outdated
- Shows
Changed
- bc-grepai-configurator -- optimized for LLM (-32% tokens)
- Fixed MCP paths (
~/.claude.jsoninstead of~/.claude/mcp.json) - Added
compactparam togrepai_trace_graph - Added MCP Integration phase (Phase 4)
- Fixed MCP paths (
- grepai-first.md.template -- improved clarity
- Fixed
--compactsyntax (wascompact:true) - Added WebSearch row to decision table
- Removed unverified "3-7 words" guideline
- Fixed
- grepai-session.mjs -- Windows compatibility
- Added platform check for
pgrep(macOS/Linux only) - Documented limitation in header comment
- Added platform check for
- SKILL.md -- removed unused
Globfrom allowed-tools
Fixed
- init-index.sh -- added explicit
exit 0 - detect-mode.sh -- added
(unrecognized text) -> promptto Mode Reference
Updated Files
| File | Change |
|---|---|
agents/bc-grepai-configurator.md |
MCP paths, trace params, -32% tokens |
templates/rules/grepai-first.md.template |
--compact, WebSearch, clarity |
skills/grepai/SKILL.md |
upgrade mode, allowed-tools |
skills/grepai/scripts/upgrade.sh |
NEW -- brew upgrade |
skills/grepai/scripts/status.sh |
version comparison |
skills/grepai/scripts/detect-mode.sh |
upgrade keywords |
skills/grepai/scripts/init-index.sh |
exit 0 |
hooks/grepai-session.mjs |
Windows check |
v2.0.44 (2026-01-30)
brewcode
Added
- bc-grepai-configurator -- added "Supported File Extensions" section
- Full list of 50+ extensions from
indexer/scanner.go - Explicit
.mjs/.cjs/.mts/.ctsNOT supported warning - Auto-excluded files list (minified, bundles, binaries, >1MB)
- Full list of 50+ extensions from
Changed
- bc-grepai-configurator -- updated
.mjsconstraint with source link to scanner.go
Updated Files
| File | Change |
|---|---|
agents/bc-grepai-configurator.md |
Added extensions table, source links |
v2.0.43 (2026-01-30)
brewcode
Added
- Setup
linkmode -- quick symlink refresh without full setup- Usage:
/brewcode:setup link - Use after plugin update to refresh
~/.claude/skills/brewcode-*symlinks
- Usage:
- RELEASE-NOTES.md -- changelog with format and protocol
Changed
- CLAUDE.md -- added requirement to update RELEASE-NOTES.md before plugin version bump
Updated Files
| File | Change |
|---|---|
skills/setup/SKILL.md |
Added link mode with Mode Detection section |
RELEASE-NOTES.md |
New file |
v2.0.42 (2026-01-30)
brewcode
Fixed
- Rules frontmatter documentation -- corrected invalid fields
globs-> NOT supported (was incorrectly used)alwaysApply-> NOT supported (Cursor field, not Claude Code)paths-> Only valid field for conditional loading
Updated Files
| File | Change |
|---|---|
skills/rules/SKILL.md |
Added frontmatter reference section |
agents/bc-knowledge-manager.md |
Added rules frontmatter reference |
Known Issues
- Bug #16299: Lazy loading not working -- all rules load at session start regardless of
paths
Documentation Sources
| Topic | URL |
|---|---|
| Official Rules Docs | code.claude.com/docs/en/memory |
| YAML Syntax Fix | Issue #13905 |
| Lazy Loading Bug | Issue #16299 |
v2.0.41 and earlier
See git history for previous changes.
Format
## vX.Y.Z (YYYY-MM-DD)
### Added | Changed | Fixed | Removed | Deprecated | Security
- **Feature/Component** -- description
- Details if needed
### Updated Files (optional)
### Known Issues (optional)
### Breaking Changes (if any)
Protocol
| Rule | Description |
|---|---|
| Versioning | SemVer: MAJOR.MINOR.PATCH |
| MAJOR | Breaking changes, incompatible API |
| MINOR | New features, backward compatible |
| PATCH | Bug fixes, documentation |
| Order | Newest first |
| Sources | Link to issues/docs when relevant |