Skip to content

Releases: llamadrive/bengo-toolkit

v3.8.2

Choose a tag to compare

@ym259 ym259 released this 13 Jul 14:05
e86b0f1

バグ修正のみの patch リリース(v3.8.1 → v3.8.2)。

修正

  • /typo-check が原本 DOCX を直接書き換えていた不具合を修正 (#38): 原本を編集せず、複製 {元ファイル名}_reviewed.docx を作ってから複製に対して校正・コメント付与を行う方式に変更。原本はバイト単位で無変更に保たれる。修正履歴(track changes)付きとはいえ原本ファイル自体が改変されており、track changes が無効化・破損した環境では原本に修正が追跡なしで焼き込まれ復元手段が無くなる懸念があった。複製先が既存の場合は上書き可否を確認する。
  • /quickstart の校正デモが同梱サンプルを破壊していた不具合を解消 (#38): デモ実行時にサンプル原本を in-place で書き換えていた。サンプルを試用フォルダへ複製してから実行する方式に変更。

影響範囲

DOCX を書き込むスキルは /typo-check のみ。/lawsuit-analysis/verify は DOCX を読取専用で扱うため影響なし。XLSX を扱う /template-fill は元からテンプレート原本を複製して outputs/ に出力する方式で、原本は無変更。

原本ファイルを扱う /typo-check 利用者は更新を推奨する。

v3.8.1

Choose a tag to compare

@ym259 ym259 released this 08 Jul 09:50
f6564bc

バグ修正のみの patch リリース(v3.8.0 → v3.8.1)。

修正

  • 訴訟分析レポートの table が空欄になる不具合を修正 (#32): /lawsuit-analysis の登場人物・主張と認否・証拠一覧の表で、列見出し・セルが空欄になっていた(.agent の table スキーマが同梱 renderer と乖離。列定義 id/namekey/label、認否を { "state": ... } に修正)。
  • /verify の agent-format 接続テストが常に失敗する不具合を修正 (#35): 有効な .agent でも常に検証エラーを返していた。render_agent_inline の上流不具合を回避し render_agent_file に切替。成果物・実描画には元から影響なし(自己診断のみ)。

いずれも既存 v3.8.0 install で発生していた不具合。更新を推奨する。

v3.7.9

Choose a tag to compare

@ym259 ym259 released this 30 May 08:28
e6b9d26

[3.7.9] - 2026-05-30

Added

  • /feedback/report-issue のエイリアス。feedback という語から
    コマンドを探す利用者が多いため、同一の動作をする別名コマンドを追加した。
    挙動は /report-issue と完全に同一で、内部的に同じ
    skills/report-issue/SKILL.md の手順を実行する。

Fixed

  • scripts/verify_mcp_integrity.py — 日本語 Windows(cp932)で
    UnicodeEncodeError により MCP 整合性チェックが一度も走らなかった問題を
    修正。main() 冒頭で stdout/stderr を UTF-8 に再構成する(既存の
    scripts/verify.py と同じ手法)。(#23, thanks @Just2enough)

v3.7.8

Choose a tag to compare

@ym259 ym259 released this 14 May 07:56
edbecdb

[3.7.8] - 2026-05-14

Added

  • /report-issue — 不具合の報告・機能の要望・感想を GitHub アカウント
    なしで送るためのスラッシュコマンド。利用者から種別と本文を聞き取り、
    プラグイン版・OS・実行環境などの自動診断情報を統合した Markdown 形式の
    下書きを ~/.claude-bengo/reports/feedback_<日時>.md に書き出す。下書きは
    OS 既定のテキストエディタ(macOS: TextEdit / Windows: メモ帳 / Linux:
    xdg-open)で自動的に開く。同時に
    llama-drive.com/bengo-toolkit/feedback
    のフィードバックフォームをブラウザで開く(種別・診断情報は URL の
    query param で渡してフォーム側が自動入力する)。利用者はエディタの本文を
    コピーしてフォームに貼り付け、内容を確認してから送信する。プラグインが
    自動送信することはなく、本文は URL に乗らないため、ブラウザ履歴や
    サーバアクセスログには本文が残らない。
  • skills/_lib/report.py — 上記コマンドの実装本体。emit サブコマンドで
    下書きの書き出し・エディタ起動・ブラウザ起動を担当する。本文はファイル
    経由または stdin で受け取り、URL には乗せない。--no-open で SSH / CI 等
    ヘッドレス環境向けにエディタ・ブラウザ起動を抑止できる。

v3.7.7

Choose a tag to compare

@ym259 ym259 released this 13 May 16:41
aef8183

[3.7.7] - 2026-05-14

Fixed

  • v3.7.6 で取りこぼした user-facing 文字列をプレーン日本語に統一
    skills/_lib/template_lib.py:489PIIFoundError メッセージ(PII /
    user スコープ / case スコープ が混在)を「クライアントの個人情報」
    「この PC の全案件で共通」「この案件のみ」へ書き換え。workspace.py
    firm-setup --unset 戻り値 JSON message・引数欠落時の error message も
    「事務所共有」「保存先フォルダのパス」表現に統一。firm-setup 実行時に
    自動生成される README.md も同様に書き直した。
  • /quickstart の同梱サンプル外パス拒否メッセージ — 内部実装の
    fixtures/ パスをユーザーに露出していたのを「お試しでは同梱サンプルのみ
    使える」表現に変更。
  • first_run.py 初回案内の HMAC 言及を平易化 — 「HMAC チェーン付き」を
    「改ざん検知付き」に置換。仕組み名ではなく目的をユーザーへ示す。
  • /template-list の操作一覧 — 「個人情報のコードレベルチェック」を
    「個人情報を自動チェック」に書き直し。
  • tests/menu_surface.sh の Cowork 漏れ検査パターン — quickstart の
    ブロック対象 4 件のうち 2 件(template-fill / lawsuit-analysis)が
    v3.7.6 の文言と合致せず trivially pass していたのを、現行タイトルの
    サブストリングに更新して実効性のあるアサートに直した。

v3.7.6

Choose a tag to compare

@ym259 ym259 released this 13 May 16:28
2c6b96f

[3.7.6] - 2026-05-14

Changed

  • ユーザー向け語彙をプレーンな日本語に統一 — テンプレート関連コマンド
    /template-create /template-fill /template-install /template-list
    /template-promote /template-demote /template-firm-setup)の確認質問・
    完了案内・エラーメッセージから「スコープ」「PII」「workspace」「lawyer」
    「OS 同期フォルダ」等の技術用語・英語混じり表現を排除し、それぞれ
    「保存場所」「個人情報」「案件フォルダ」「弁護士」「クラウド同期フォルダ」
    に置き換えた。--scope case/firm/user の CLI フラグは互換性のため維持。
    あわせて /audit-config /case-info /family-tree /typo-check
    /lawsuit-analysis /help でも同様の整理を行った。
  • CLAUDE.md に「ユーザー向け語彙」セクションを追加 — 今後新規 skill /
    command を足すときの語彙ルールを SSOT 化。プロンプト・確認質問・エラー
    メッセージ・サマリー出力に適用する一覧表を明記し、内部メカニズム説明
    (Step 0 ガード・Bash コードブロック・スクリプト名)は例外として除外。

v3.7.5

Choose a tag to compare

@ym259 ym259 released this 13 May 15:49
fc61e18

[3.7.5] - 2026-05-14

Fixed

  • .agent 出力の memory.observations が schema 違反になる不具合 (#18) —
    skills/family-tree/SKILL.mdskills/lawsuit-analysis/SKILL.md の AI
    生成ドラフト警告のテンプレートが {id, text} のオブジェクトを観測値として
    示していたが、upstream agent-format v0.1 の AgentMemory.observations
    array<string> を要求する(schemas/agent.schema.json)。オブジェクト形式は
    validation で reject され、公式 web viewer
    knorq-ai.github.io/agent-format)で「Schema validation failed」になる。
    両 SKILL.md の例文をプレーン文字列配列に差し替えた。

v3.7.4

Choose a tag to compare

@ym259 ym259 released this 13 May 14:39
7f0d387

[3.7.4] - 2026-05-13

Fixed

  • Windows での audit.py 並列書込が稀に取りこぼす不具合 (#16) —
    真因は audit.py の lock ではなく、v3.7.3 で導入した
    runtime._probe_local_fs() のレース。同関数は ~/.claude-bengo/.runtime-probe.tmp
    への write→unlink で local FS が使えるかを判定するが、全プロセスが
    同じパスを使うため Windows で並行 open/unlink が ERROR_SHARING_VIOLATION
    を投げ、probe が偽 False を返して surface を cowork と誤認した。
    cmd_record_is_cowork() が True なら silent exit 0 で抜けるため、
    fail=0・record だけが消える症状(ok=99, total=99)となっていた。
    probe ファイル名に os.getpid() を含めて per-PID 化し、レース自体を
    消した。
  • audit.py _FileLock の lock-budget を 30 秒に拡張(defense in depth)—
    Windows の msvcrt.locking(LK_LOCK, 1) は kernel 提供の retry が 10 回 /
    1 秒間隔(合計 10 秒)で諦めて IOError を投げる。CI worker の重 contention
    下で budget 不足になる潜在的経路を、LK_NBLCK(non-blocking)+ Python
    側 30 秒 budget + 10〜50ms exponential backoff で潰した。Linux / macOS
    fcntl.flock(LOCK_EX) 経路は影響なし。

v3.6.0

Choose a tag to compare

@ym259 ym259 released this 27 Apr 06:12
3e27bb6

v3.6.0 — Firm-scope templates (Phase 1, OS-synced folder)

Adds the third template scope — firm — between case and user. Enables firm-wide template sharing across multiple lawyers without an OAuth dance: each lawyer points the plugin at a local path that their OS sync client (Drive for desktop, Dropbox, OneDrive, SMB) is already syncing. The plugin treats it as a local directory; the OS handles sharing and permissions.

This is Phase 1 of the firm-scope work, designed in collaboration with two PE reviews (Anthropic + OpenAI Codex) over four iteration rounds. Phase 2/3 hardening is explicitly deferred.

What changed

  • New scope: firm. Resolver order is now case → firm → user. firm is silently skipped when unconfigured or unreachable, so existing case/user workflows are unchanged.
  • New command: /template-firm-setup <path>. Validates path exists + is dir + not under ~/.claude-bengo/. Writes firm_templates_path to ~/.claude-bengo/global.json. Drops a PII-warning README into the folder on first setup.
  • --scope firm accepted in /template-install and /template-create. /template-promote --to firm and /template-demote --from firm for firm round-trips.
  • firm writes go through the same PII gate as user (hard block via pii_scan.py). Bundled-template installs are manifest-verified and skip PII scan even at firm scope.
  • New exit code 6 + structured JSON error ({"code": "firm_unavailable", "state": "unconfigured"|"unreachable", ...}) when firm operations attempted while not reachable.

Setup (one-time per lawyer)

/template-firm-setup ~/Library/CloudStorage/GoogleDrive-xxx@firm.jp/Shared\ drives/事務所/法人テンプレート

Admin creates the Shared Drive folder once and grants editor access. Each lawyer runs the command above on their own machine.

Explicitly deferred

Phase What
2 Canonical xlsx hash + fill-time PII rescan + case-local sidecar cache
2 TOCTOU temp-copy on firm reads
3 Shape-diff [c]/[f]/[d] shadow drift prompt at fill time
3 Parent-mount-vs-leaf reachability remediation

These flow naturally from the v4 design and are tracked in CHANGELOG breadcrumbs.

Test coverage

  • workspace 40/40, template_lib 36/36, audit 18/18, verify 52/52, e2e 37/37 — all green
  • 4 dedicated tests pin exit-code-6 + structured-JSON contract for _cmd_install / _cmd_save_user firm-unavailable paths (caught by Codex review during PR #8)

Full changelog: https://github.com/llamadrive/claude-bengo/blob/main/CHANGELOG.md

v3.5.0

Choose a tag to compare

@ym259 ym259 released this 27 Apr 04:17
fcfa9c4

v3.5.0 — Template scope rename (globaluser)

Renames the firm-wide template scope from global to user because the storage
(~/.claude-bengo/templates/) is per-machine, per-lawyer — not actually firm-wide.
The global name is reserved for the upcoming firm scope, a Shared Drive-backed
store that will sit between case and user (case → firm → user) in a follow-up release.

No action required to upgrade. Storage paths, file layout, PII gate, and audit log
behavior are all unchanged. Existing ~/.claude-bengo/templates/ contents continue to
resolve as user scope automatically.

What changed

  • New canonical scope name: user (was global).
  • Resolver order: case → user. Will become case → firm → user once firm scope ships.
  • All command docs, SKILL.md files, and CLAUDE.md updated to use the new vocabulary.

Backward compatibility (one release; removed in 3.6.0)

For automation and scripts that hardcode the old name:

  • --scope global and scope="global" still accepted with a stderr deprecation warning.
  • workspace.global_templates_dir(), ensure_global_templates_dir(), global_templates_list()
    retained as thin aliases.
  • workspace.py templates JSON also emits global_templates_dir, "global" bucket,
    and shadowed_global field on case entries.
  • workspace.py resolve-template JSON adds scope_legacy ("global" when scope is "user").
  • Env var CLAUDE_BENGO_ALLOW_PII_ON_GLOBAL keeps its name (CI compatibility).

These all go away in 3.6.0. Update consumers now if you have any.

What's coming next

  • Firm scope (Phase 1): admin sets firm_templates_path to a local Drive-for-desktop /
    Dropbox / SMB folder; templates promoted there propagate to all lawyers via OS sync.
    Read-only at fill time, with case-local PII rescan cache and canonical xlsx hashing.
    Designed in collaboration with two PE reviews (Anthropic + OpenAI Codex) over four
    iteration rounds.

Test coverage

  • workspace 28/28, template_lib 20/20, audit 18/18, verify 52/52, e2e 37/37 — all green.

Full changelog: https://github.com/llamadrive/claude-bengo/blob/main/CHANGELOG.md