Skip to content

Development

Bob is a Go 1.26.5 module with a small VitePress documentation site and optional Glyphrun terminal contract. Building the site requires Node.js 22 or newer. Nothing here mutates a real repository; that discipline applies to Bob's own build too.

Setup

bash
git clone https://github.com/abdul-hamid-achik/bob
cd bob
go mod download
npm --prefix docs ci

Read the root AGENTS.md before changing package boundaries or safety behavior.

Verification

bash
task verify          # non-mutating canonical Go/security/build gate
task specs           # terminal behavior contract
task docs-build      # documentation links and production build
task ship            # complete local pre-release gate

Use task fmt deliberately when you want to rewrite Go formatting. Verification never formats or tidies files in place — it audits, it doesn't clean up after you.

Documentation

bash
task docs            # start the local site at 127.0.0.1
task docs-build      # production build
task docs-preview    # preview the production build

The development and preview servers bind to loopback intentionally. Do not expose them with --host 0.0.0.0; the publishable documentation artifact is the static output from task docs-build.

User-facing guides and reference pages belong in docs/. Normative product behavior lives on this site's reference pages — Manifest and CLI — rather than a root SPEC.md. Design decisions and working notes stay outside this published repository. Temporary notes, handoffs, and private filesystem details do not belong in the public repository.

Live integration test

The normal test suite never reads a user's MCPHub configuration. One opt-in smoke test exercises the installed Bob binary through MCPHub's local-agent scope while isolating telemetry:

bash
BOB_TEST_MCPHUB=1 go test ./internal/mcp -run TestMCPHubLocalAgentScopeRoute -v

Run it only when Bob is installed and MCPHub has the intended local-agent route.

Deterministic plans. Explicit authority. Honest integration boundaries.