…bling
- cmd/sin-code/internal/autodev/: new stdlib-only bridge package (DefaultBin,
IsInstalled, ResolveAutodevBin, ResolveAutodevMCPBin, Version). 11 hermetic
unit tests under go test -race. No Python source vendored (M2 + AGENTS.md
§2/§3 hard rule 'NOT a place to vendor tool implementations').
- cmd/sin-code/autodev_cmd.go: cobra constructor (NewAutodevCmd) with three
subcommands: setup, doctor, version. Pattern matches gh_cmd.go / vane_cmd.go
(Bridged-External-Contract, M4 + v3.8.0+).
- cmd/sin-code/main.go: NewAutodevCmd wired into the root AddCommand chain
next to NewSummaryCmd; help text declares the bridging scope explicitly.
- cmd/sin-code/internal/mcpclient/registry.go: adds '{Name: "autodev",
Transport: "stdio", Command: "autodev-mcp"}' so sin-code MCP clients
(sin-code serve, sin-code chat) spawn autodev-mcp as a Python stdio MCP
sibling and merge the 6 autodev_* tools into the aggregate toolset the
agent loop sees.
- cmd/sin-code/internal/permission_defaults.go: 7 new rules (split M4 policy).
Read-only -> allow (autodev__status, autodev__lessons). Mutating -> ask
(autodev__init, autodev__run_experiment, autodev__swarm,
autodev__session_log). Backstop catch-all autodev__* -> ask (mirrors the
sin_bash default).
- ECOSYSTEM.md: new row under 'MCP Skill Servers' table with the literal
`autodev__*` marker required by the ecosystem-sync CI gate.
- requirements-ecosystem.txt: pinned OpenSIN-Code/autodev-cli@v0.4.0 in the
'MCP skill servers' section.
Sync enforcement: ecosystem-sync.yml CI gate is green for the autodev entry
across {registry.go, permission_defaults.go, ECOSYSTEM.md,
requirements-ecosystem.txt}; no drift. Sister-consumer cross-link:
OpenSIN-Code/SIN-Code-WebUI-v2@6a92d92 already exposes the same toolset
via lib/sin/mcp.ts:getAutodevTools(); Go-server integration is the missing
piece completed here.
Refs: OpenSIN-Code/autodev-cli@e8c948a (v0.4.0). Closes #73.
Context
OpenSIN-Code/autodev-cliv0.4.0 (Python, MIT) was already wired into theSIN-Code WebUI v2 via
lib/sin/mcp.ts:getAutodevTools(), but the Gosin-codebinary itself had zero autodev references —gh search code 'autodev' repo:OpenSIN-Code/SIN-Codereturns 0 hits. This PR completesthe integration on the Go side as a Bridged-External sibling.
What changes
cmd/sin-code/internal/autodev/— stdlib-only bridge package(DefaultBin / IsInstalled / ResolveAutodevBin /
ResolveAutodevMCPBin / Version). 11 hermetic tests, all green
under
go test -race.cmd/sin-code/autodev_cmd.go—NewAutodevCmdcobra constructorwith
setup/doctor/versionsubcommands. Pattern mirrorsgh_cmd.go (Bridged-External-Contract, M4 + v3.8.0+).
cmd/sin-code/internal/mcpclient/registry.go— registers{Name: "autodev", Transport: "stdio", Command: "autodev-mcp"}sosin-code serveandsin-code chatspawn autodev-mcp as a Pythonstdio MCP sibling.
cmd/sin-code/internal/permission_defaults.go— 7 split M4 rules(read-only → allow, mutating → ask, catch-all → ask).
ECOSYSTEM.md+requirements-ecosystem.txt— atomic sync per theecosystem-sync CI gate.
Quality gates (all green locally)
CGO_ENABLED=0 go build ./...exit 0CGO_ENABLED=0 go vet ./...exit 0go test -race ./cmd/sin-code/internal/autodev/...11/11 PASSgo test -race ./cmd/sin-code/internal/mcpclient/...PASSgo test -race ./cmd/sin-code/internal/ghbridge/...PASSecosystem-syncgate simulation:autodeventry green in all three SSoT files.Hard-rule compliance
Sister-consumer cross-link
OpenSIN-Code/SIN-Code-WebUI-v2@6a92d92already exposes the sameautodev_*toolset via the WebUI's MCP client. With this PR, the Gosin-code serveexposes the same toolset, so any MCP client (ClaudeCode, Codebuddy, custom Go consumer) gets identical
autodev__*tools.Smoke verification
Closes #73.