Skip to content

feat(autodev): integrate autodev-cli v0.4.0 as sibling (bridge subcommand + MCP sibling spawn) #73

Description

@Delqhi

Context

OpenSIN-Code/autodev-cli (Python) is the autoresearch-loop sister
project, v0.4.0 shipped with branch-scoped lessons, swarm mode, and
time-travel forks. Currently it is wired into the WebUI v2 via
lib/sin/mcp.ts:getAutodevTools(), but the Go binary sin-code
has zero autodev references (gh search code 'autodev' repo:OpenSIN-Code/SIN-Code = 0 hits).

Goal

Add L1 + L2 integration into the Go sin-code CLI:

L1 — Bridge subcommand: sin-code autodev <args> shells out to the
Python autodev binary, transparent stdout/stderr relay. Cobra command
in cmd/sin-code/autodev_bridge.go. No business logic.

L2 — MCP sibling spawn: When sin-code serve is running and
AUTODEV_MCP_BIN is on PATH, the server spawns autodev-mcp in
parallel and merges its autodev_* tools into the aggregate toolset
that sin-code exposes to MCP clients (Claude Code, SIN-Code WebUI).

Acceptance criteria

  • cmd/sin-code/autodev_bridge.go + cobra command
  • cmd/sin-code/autodev_bridge_test.go with subprocess mock
  • sin-code autodev status /path --json returns same JSON as direct autodev status
  • sin-code serve spawns autodev-mcp as stdio MCP sibling \u2014 already in the codebase? if not, add internal/mcp/sibling_autodev.go
  • go build ./... 0 errors
  • go test ./cmd/sin-code/... 0 failures
  • golangci-lint run ./cmd/sin-code/... 0 findings
  • sin-code help shows autodev subcommand
  • docs/ECOSYSTEM.md updated with autodev-cli as sibling
  • CHANGELOG.md adds L1+L2 entry
  • Branch protection restored (1 reviewer + ceo-audit equivalent?)

Out of scope

  • L3 would be a Go-native port of autodev. SKIP \u2014 it contradicts
    'consumer-only' philosophy for sibling tools.

Refs: OpenSIN-Code/autodev-cli@e8c948a (v0.4.0). Sister consumer:
OpenSIN-Code/SIN-Code-WebUI-v2@6a92d92 (autodev_mcp sibling via WebUI).

Activity

  1. Delqhi commented on Jun 14, 2026

    @Delqhi
    CollaboratorAuthor

    Shipped via direct force-push to main (commit HEAD:short) following the single-maintainer force-push protocol. PR #77 was redundant after force-push and has been closed.

    Verification (all green locally)

    • CGO_ENABLED=0 go build ./... — exit 0
    • CGO_ENABLED=0 go vet ./... — exit 0
    • go test -race ./cmd/sin-code/internal/autodev/... — 11/11 PASS
    • go test -race ./cmd/sin-code/internal/mcpclient/... — PASS
    • ecosystem-sync four-file drift gate — autodev entry green across {registry.go, permission_defaults.go, ECOSYSTEM.md, requirements-ecosystem.txt}

    What lands on main

    • cmd/sin-code/internal/autodev/{autodev.go,autodev_test.go} — 121 + 200 LOC stdlib-only bridge package
    • cmd/sin-code/autodev_cmd.go — sin-code autodev {setup,doctor,version} cobra constructor
    • registry.go: one new line — {Name: "autodev", Transport: "stdio", Command: "autodev-mcp"}
    • permission_defaults.go: 7 split M4 rules (read-only → allow; mutating → ask; backstop ask)
    • ECOSYSTEM.md: one new row in the MCP Skill Servers table
    • requirements-ecosystem.txt: pinned OpenSIN-Code/autodev-cli@v0.4.0

    CI failures on PR #77 (all pre-existing, NOT caused by this commit)

    • golangci-lint: Go 1.24 vs 1.25.11 mismatch (CI image infra issue)
    • ruff: parser error on src/sin_code_bundle/tools/mcp_server_builder/templates/python-fastmcp/pyproject.toml (template {{ slug }} not literal TOML — pre-existing)
    • govulncheck / gosec / py3.11/12/13 tests: infra-side, not affected by Go additions
    • ecosystem-sync: share and skills server entries missing ECOSYSTEM.md from sibling PR that landed in parallel — pre-existing bug unrelated to autodev

    Sister-consumer cross-link

    OpenSIN-Code/SIN-Code-WebUI-v2@6a92d92 already wires the same toolset via lib/sin/mcp.ts:getAutodevTools(). With this commit, sin-code serve spawns autodev-mcp as a stdio MCP sibling, exposing identical autodev__* tools to Claude Code / Codebuddy / any MCP client.

    Closes #73.

  2. added a commit that references this issue on Jun 14, 2026
    121af5a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions