You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SpecBridge v0.5: local MCP server, interactive task execution, and Claude Code plugin (#5)
* SpecBridge v0.5: local MCP server, interactive task execution, and Claude Code plugin
Add packages/mcp-server: a local stdio MCP server (pinned
@modelcontextprotocol/sdk 1.29.0, protocol baseline 2025-11-25) exposing the
shared core packages as 21 typed tools, 7 read-only resources, and 4
workflow prompts, with the stable SBMCP001-020 error envelope, bounded
paginated outputs, a per-project write mutex, stderr-only structured
logging, and pinned project-root resolution. The CLI gains
`mcp serve|doctor|manifest|tools` and `run recover-lock`.
Add the direct interactive execution lifecycle in @specbridge/execution:
task_begin -> the current host session edits source -> task_complete
(plus task_abort), reusing the v0.3 Git snapshots, trusted verification
commands, evidence evaluation, append-only evidence, and the verified-only
surgical checkbox update. A repository-local lock file serializes runs
across processes; recovery is explicit and never automatic. Run schemas
gain interactive kinds and lifecycle fields, backward compatibly.
Add the self-contained Claude Code plugin
(integrations/claude-code-plugin/specbridge): bundled cli.cjs and
mcp-server.cjs (no node_modules, no monorepo paths), POSIX and Windows CLI
wrappers, eight namespaced skills (approve is human-only via
disable-model-invocation), a repository-local marketplace
(.claude-plugin/marketplace.json), a third-party license report, a SHA-256
checksum manifest, and a reproducible release ZIP. New scripts:
build:plugin, validate:plugin, verify:plugin-bundle (mandatory
isolated-copy verification), mcp:inspect.
Safety: no arbitrary filesystem/shell/Git MCP tool, no model-controlled
stage approval, no nested Claude invocation from plugin or MCP paths
(enforced by content scans and tests), candidate hash binding between
validate and apply, and no automatic Git mutations of any kind.
All versions move to 0.5.0. 631 tests pass (520 regression + 111 new),
plus 32 CLI smoke checks and 8 isolated bundle checks.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Make plugin license-file discovery filesystem-case-independent
The license report generator probed a fixed list of file names with
existsSync, which behaves differently across filesystems: on Windows
(case-insensitive) "LICENSE.md" matched express-rate-limit's and ms's
"license.md", while on Linux it did not — so the ubuntu CI rebuild produced
a different THIRD_PARTY_LICENSES.txt (and checksum manifest) than the
committed artifact, failing the plugin-bundle reproducibility check.
Discovery now lists the package directory and matches names against a
case-insensitive licen[cs]e pattern with a deterministic sort, so every
platform selects the same file. The committed artifact was already the
complete report (generated on the case-insensitive side); only the script
needed the fix, and ubuntu now reproduces the committed bytes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments